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

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/inc/Puma/CTree.h

  • 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
 
#ifndef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
2
 
#define __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
3
 
#define __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
 
1
#ifndef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
2
#define __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
3
#define __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_inc_Puma_CTree_h__
4
4
 
5
5
#ifndef __ac_h_
6
6
#define __ac_h_
 
7
#ifdef __cplusplus
7
8
namespace AC {
8
9
  typedef const char* Type;
9
10
  enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
18
19
    ~ResultBuffer () { ((T*)_data)->T::~T(); }
19
20
    operator T& () const { return *(T*)_data; }
20
21
  };
 
22
  template <typename T, typename N> struct TL {
 
23
    typedef T type; typedef N next; enum { ARGS = next::ARGS + 1 };
 
24
  };
 
25
  struct TLE { enum { ARGS = 0 }; };
 
26
  template <typename T> struct Referred { typedef T type; };
 
27
  template <typename T> struct Referred<T &> { typedef T type; };
 
28
  template <typename TL, int I> struct Arg {
 
29
    typedef typename Arg<typename TL::next, I - 1>::Type Type;
 
30
    typedef typename Referred<Type>::type ReferredType;
 
31
  };
 
32
  template <typename TL> struct Arg<TL, 0> {
 
33
    typedef typename TL::type Type;
 
34
    typedef typename Referred<Type>::type ReferredType;
 
35
  };
21
36
  template <class Aspect, int Index>
22
37
  struct CFlow {
23
38
    static int &instance () {
31
46
}
32
47
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
33
48
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
 
49
#endif // __cplusplus
34
50
#endif // __ac_h_
35
 
#endif // __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
36
 
 
37
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38
 
 
39
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
51
#endif // __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
52
 
 
53
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54
 
 
55
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
40
56
 
41
57
#ifndef __ac_fwd_ExtACTree__
42
58
#define __ac_fwd_ExtACTree__
43
59
class ExtACTree;
44
60
namespace AC {
45
61
  template <class JoinPoint>
46
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
62
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
47
63
  template <class JoinPoint>
48
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
64
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
49
65
}
50
66
#endif
51
67
 
52
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
53
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
68
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
69
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
54
70
#endif
55
71
 
56
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57
 
 
58
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
59
 
#include "ExtACTree.ah"
60
 
#include "CCExprResolveH.ah"
61
 
#include "CExprResolveH.ah"
62
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
63
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
64
 
 
65
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66
73
// This file is part of PUMA.
67
74
// Copyright (C) 1999-2003  The PUMA developer team.
68
75
//                                                                
107
114
class     CT_DefaultStmt;
108
115
class     CT_TryStmt;
109
116
class   CT_Expression;
 
117
class     CT_Call;
 
118
class       CT_CallExpr;
 
119
class       CT_ImplicitCall;
110
120
class     CT_ThrowExpr;
111
121
class     CT_NewExpr;
112
122
class     CT_DeleteExpr;
127
137
class     CT_IfThenExpr;
128
138
class     CT_CmpdLiteral;
129
139
class     CT_IndexExpr;
130
 
class     CT_CallExpr;
131
140
class     CT_CastExpr;
132
141
class     CT_StaticCast;
133
142
class       CT_ConstCast;
174
183
class     CT_NamespaceDef;
175
184
class     CT_NamespaceAliasDef;
176
185
class     CT_UsingDirective;
 
186
class     CT_Condition;
177
187
class   CT_List;
178
188
class     CT_CmpdStmt;
179
189
class     CT_DeclSpecSeq;
204
214
class     CT_TemplateArgList;
205
215
class   CT_Token;
206
216
class   CT_Error;
207
 
class   CT_Condition;
208
217
class   CT_BaseSpec;
209
218
class   CT_AccessSpec;
210
219
class   CT_ArrayDelimiter;
244
253
/*                                                                           */
245
254
/*****************************************************************************/
246
255
 
247
 
 
248
 
#line 249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
256
/** \file
 
257
 *  C/C++ syntax tree classes.
 
258
 *  \see Puma::CTree */
 
259
 
 
260
/** \class CTree CTree.h Puma/CTree.h
 
261
 *  Base class for all C/C++ syntax tree classes. */
 
262
 
 
263
#line 264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
249
264
} // closed Puma
 
265
class CCExprResolve;
 
266
class CExprResolve;
250
267
class WinIfExists;
251
268
class WinImportHandler;
252
269
class WinMacros;
253
 
class CMatchSyntax;
254
 
class ExtGnu;
 
270
class WinAsm;
 
271
class WinDeclSpecs;
 
272
class WinMemberExplSpec;
 
273
class WinTypeKeywords;
 
274
class WinFriend;
255
275
class ExtAC;
256
276
class ExtACBuilderCoupling;
257
277
class ExtACSyntaxCoupling;
258
278
class ExtACTree;
259
279
class ExtACKeywords;
260
 
class WinAsm;
261
 
class WinDeclSpecs;
262
 
class WinMemberExplSpec;
263
 
class WinTypeKeywords;
 
280
class ExtGnu;
264
281
class PragmaOnceUnitState;
265
282
class PragmaOnce;
266
 
class CCExprResolve;
267
 
class CExprResolve;
268
 
namespace Puma {
269
 
 
270
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
283
class CMatchSyntax;
 
284
namespace Puma {
 
285
 
 
286
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
287
 
 
288
#line 289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
289
} // closed Puma
 
290
 
 
291
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
292
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
293
#include "CCExprResolveH.ah"
 
294
#endif
 
295
namespace Puma {
 
296
 
 
297
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
298
 
 
299
#line 300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
300
} // closed Puma
 
301
 
 
302
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
303
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
304
#include "CExprResolveH.ah"
 
305
#endif
 
306
namespace Puma {
 
307
 
 
308
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
271
309
class CTree {
272
 
#line 273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
310
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
311
  friend class ::CCExprResolve;
 
312
  friend class ::CExprResolve;
273
313
  friend class ::WinIfExists;
274
314
  friend class ::WinImportHandler;
275
315
  friend class ::WinMacros;
276
 
  friend class ::CMatchSyntax;
277
 
  friend class ::ExtGnu;
 
316
  friend class ::WinAsm;
 
317
  friend class ::WinDeclSpecs;
 
318
  friend class ::WinMemberExplSpec;
 
319
  friend class ::WinTypeKeywords;
 
320
  friend class ::WinFriend;
278
321
  friend class ::ExtAC;
279
322
  friend class ::ExtACBuilderCoupling;
280
323
  friend class ::ExtACSyntaxCoupling;
281
324
  friend class ::ExtACTree;
282
325
  friend class ::ExtACKeywords;
283
 
  friend class ::WinAsm;
284
 
  friend class ::WinDeclSpecs;
285
 
  friend class ::WinMemberExplSpec;
286
 
  friend class ::WinTypeKeywords;
 
326
  friend class ::ExtGnu;
287
327
  friend class ::PragmaOnceUnitState;
288
328
  friend class ::PragmaOnce;
289
 
  friend class ::CCExprResolve;
290
 
  friend class ::CExprResolve;
291
 
 
292
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
329
  friend class ::CMatchSyntax;
 
330
 
 
331
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
332
 
 
333
  CTree * _parent;
293
334
 
294
335
public:
295
336
  /*DEBUG*/static int alloc;
296
337
  /*DEBUG*/static int release;
297
338
 
298
339
protected:
299
 
  CTree *Son (CTree * const *, int, int) const;
300
 
  int Sons (CTree * const *, int) const;
301
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
340
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
341
   *  \param sons The sons array.
 
342
   *  \param len Length of the sons array.
 
343
   *  \param n Index of the son.
 
344
   *  \return The n-th son or NULL. */
 
345
  CTree *Son (CTree * const *sons, int len, int n) const;
 
346
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
347
   *  \param sons The sons array.
 
348
   *  \param len Length of the sons array. */
 
349
  int Sons (CTree * const *sons, int len) const;
 
350
  /** Replace a son.
 
351
   *  \param sons The sons array.
 
352
   *  \param len Length of the sons array.
 
353
   *  \param old_son The son to replace.
 
354
   *  \param new_son The new son. */
 
355
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
356
  /** Replace a son if it equals the given son.
 
357
   *  \param son The actual son.
 
358
   *  \param old_son The son to replace, must match the actual son.
 
359
   *  \param new_son The new son, overwrites the actual son. */
 
360
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
361
  /** Add a new son.
 
362
   *  \param son The actual son.
 
363
   *  \param new_son The new son, overwrites the actual son. */
 
364
  void AddSon (CTree *&son, CTree *new_son);
 
365
  /** Set the parent tree node.
 
366
   *  \param parent The new parent tree node. */
 
367
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
368
  /** Set the parent tree node of the given tree node.
 
369
   *  \param node The tree node.
 
370
   *  \param parent The new parent. */
 
371
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
302
372
  
303
373
protected:
304
 
  CTree () { /*DEBUG*/alloc++; }
 
374
  /** Default constructor. */
 
375
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
305
376
 
306
377
public:
 
378
  /** Destructor. */
307
379
  virtual ~CTree () { /*DEBUG*/release++; }
 
380
  /** Get the number of sons. */
308
381
  virtual int Sons () const = 0;
 
382
  /** Get the n-th son.
 
383
   *  \param n The index of the son.
 
384
   *  \return The n-th son or NULL. */
309
385
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
386
  /** Get the node name (node identifier). */
310
387
  virtual const char *NodeName () const = 0;
 
388
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
389
   *  \return The token or NULL. */
311
390
  virtual Token *token () const;
 
391
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
392
   *  \return The token or NULL. */
312
393
  virtual Token *end_token () const;
 
394
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
395
   *  \return The token node or NULL. */
313
396
  virtual CT_Token *token_node () const;
 
397
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
398
   *  \return The token node or NULL. */
314
399
  virtual CT_Token *end_token_node () const;
315
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
400
  /** Replace a son.
 
401
   *  \param old_son The son to replace.
 
402
   *  \param new_son The son with which to replace. */
 
403
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
404
  /** Get the parent node.
 
405
   *  \return The parent node or NULL. */
 
406
  virtual CTree *Parent () const { return (CTree*)_parent; }
316
407
 
317
408
public: // semantic information
 
409
  /** Get the semantic type of the node.
 
410
   *  \return The type object or NULL. */
318
411
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
412
  /** Get the calculated value of the expression.
 
413
   *  \return The value object or NULL. */
319
414
  virtual CExprValue *Value () const { return (CExprValue*)0; }
320
415
  
 
416
  /** Get the semantic scope of the node.
 
417
   *  \return The scope object or NULL. */
 
418
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
419
  /** Get the semantic value of the node.
 
420
   *  \return The value object or NULL. */
321
421
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
422
  /** Get the semantic object of the node.
 
423
   *  \return The semantic object or NULL. */
322
424
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
323
425
  
324
426
public: // node classification function
 
427
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
428
   *  \return The CT_SimpleName node or NULL. */
325
429
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
430
  /** Get a pointer to CT_String if the current node represents a string.
 
431
   *  \return The CT_String node or NULL. */
 
432
  virtual CT_String *IsString () { return 0; }
 
433
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
434
   *  \return The CT_Declarator pointer or NULL. */
326
435
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
436
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
437
   *  \return The CT_Statement pointer or NULL. */
 
438
  virtual CT_Statement *IsStatement () { return 0; }
 
439
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
440
   *  \return The CT_Expression pointer or NULL. */
 
441
  virtual CT_Expression *IsExpression () { return 0; }
 
442
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
443
   *  \return The CT_Decl pointer or NULL. */
 
444
  virtual CT_Decl *IsDeclaration () { return 0; }
 
445
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
446
   *  \return The CT_Call pointer or NULL. */
 
447
  virtual CT_Call *IsCall () { return 0; }
327
448
   private:
328
449
  typedef CTree CCExprResolveCTree;
329
450
 
330
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
451
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
331
452
 public :
332
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
453
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
333
454
  typedef CTree CExprResolveCTree;
334
455
 
335
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
456
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
336
457
 public :
337
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
338
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
458
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
459
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
339
460
};
340
461
 
 
462
/** \class CT_Error CTree.h Puma/CTree.h
 
463
 *  Error tree node that is inserted into the tree for syntactic constructs
 
464
 *  that could not be parsed. */
341
465
 
342
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
466
#line 467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
343
467
} // closed Puma
 
468
class CCExprResolve;
 
469
class CExprResolve;
344
470
class WinIfExists;
345
471
class WinImportHandler;
346
472
class WinMacros;
347
 
class CMatchSyntax;
348
 
class ExtGnu;
 
473
class WinAsm;
 
474
class WinDeclSpecs;
 
475
class WinMemberExplSpec;
 
476
class WinTypeKeywords;
 
477
class WinFriend;
349
478
class ExtAC;
350
479
class ExtACBuilderCoupling;
351
480
class ExtACSyntaxCoupling;
352
481
class ExtACTree;
353
482
class ExtACKeywords;
354
 
class WinAsm;
355
 
class WinDeclSpecs;
356
 
class WinMemberExplSpec;
357
 
class WinTypeKeywords;
 
483
class ExtGnu;
358
484
class PragmaOnceUnitState;
359
485
class PragmaOnce;
360
 
class CCExprResolve;
361
 
class CExprResolve;
 
486
class CMatchSyntax;
362
487
namespace Puma {
363
488
 
364
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
489
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
365
490
class CT_Error : public CTree {
366
 
#line 367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
491
#line 492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
492
  friend class ::CCExprResolve;
 
493
  friend class ::CExprResolve;
367
494
  friend class ::WinIfExists;
368
495
  friend class ::WinImportHandler;
369
496
  friend class ::WinMacros;
370
 
  friend class ::CMatchSyntax;
371
 
  friend class ::ExtGnu;
 
497
  friend class ::WinAsm;
 
498
  friend class ::WinDeclSpecs;
 
499
  friend class ::WinMemberExplSpec;
 
500
  friend class ::WinTypeKeywords;
 
501
  friend class ::WinFriend;
372
502
  friend class ::ExtAC;
373
503
  friend class ::ExtACBuilderCoupling;
374
504
  friend class ::ExtACSyntaxCoupling;
375
505
  friend class ::ExtACTree;
376
506
  friend class ::ExtACKeywords;
377
 
  friend class ::WinAsm;
378
 
  friend class ::WinDeclSpecs;
379
 
  friend class ::WinMemberExplSpec;
380
 
  friend class ::WinTypeKeywords;
 
507
  friend class ::ExtGnu;
381
508
  friend class ::PragmaOnceUnitState;
382
509
  friend class ::PragmaOnce;
383
 
  friend class ::CCExprResolve;
384
 
  friend class ::CExprResolve;
 
510
  friend class ::CMatchSyntax;
385
511
 
386
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
512
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
387
513
 
388
514
public:
 
515
  /** Get the identifier for this node type. Can be compared with NodeName(). */
389
516
  static const char *NodeId ();
 
517
  /** Get the name of the node. Can be compared with NodeId(). */
390
518
  const char *NodeName () const { return NodeId (); }
 
519
  /** Get the number of sons. */
391
520
  int Sons () const { return 0; }
392
521
};
393
522
 
 
523
/** \class CT_Token CTree.h Puma/CTree.h
 
524
 *  Tree node representing a single token in the source code. */
394
525
 
395
 
#line 396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
526
#line 527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
396
527
} // closed Puma
 
528
class CCExprResolve;
 
529
class CExprResolve;
397
530
class WinIfExists;
398
531
class WinImportHandler;
399
532
class WinMacros;
400
 
class CMatchSyntax;
401
 
class ExtGnu;
 
533
class WinAsm;
 
534
class WinDeclSpecs;
 
535
class WinMemberExplSpec;
 
536
class WinTypeKeywords;
 
537
class WinFriend;
402
538
class ExtAC;
403
539
class ExtACBuilderCoupling;
404
540
class ExtACSyntaxCoupling;
405
541
class ExtACTree;
406
542
class ExtACKeywords;
407
 
class WinAsm;
408
 
class WinDeclSpecs;
409
 
class WinMemberExplSpec;
410
 
class WinTypeKeywords;
 
543
class ExtGnu;
411
544
class PragmaOnceUnitState;
412
545
class PragmaOnce;
413
 
class CCExprResolve;
414
 
class CExprResolve;
 
546
class CMatchSyntax;
415
547
namespace Puma {
416
548
 
417
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
549
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
418
550
class CT_Token : public CTree {
419
 
#line 420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
551
#line 552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
552
  friend class ::CCExprResolve;
 
553
  friend class ::CExprResolve;
420
554
  friend class ::WinIfExists;
421
555
  friend class ::WinImportHandler;
422
556
  friend class ::WinMacros;
423
 
  friend class ::CMatchSyntax;
424
 
  friend class ::ExtGnu;
 
557
  friend class ::WinAsm;
 
558
  friend class ::WinDeclSpecs;
 
559
  friend class ::WinMemberExplSpec;
 
560
  friend class ::WinTypeKeywords;
 
561
  friend class ::WinFriend;
425
562
  friend class ::ExtAC;
426
563
  friend class ::ExtACBuilderCoupling;
427
564
  friend class ::ExtACSyntaxCoupling;
428
565
  friend class ::ExtACTree;
429
566
  friend class ::ExtACKeywords;
430
 
  friend class ::WinAsm;
431
 
  friend class ::WinDeclSpecs;
432
 
  friend class ::WinMemberExplSpec;
433
 
  friend class ::WinTypeKeywords;
 
567
  friend class ::ExtGnu;
434
568
  friend class ::PragmaOnceUnitState;
435
569
  friend class ::PragmaOnce;
436
 
  friend class ::CCExprResolve;
437
 
  friend class ::CExprResolve;
 
570
  friend class ::CMatchSyntax;
438
571
 
439
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
572
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
440
573
 
441
574
  Token *_token;
442
575
  unsigned long int _number;
443
576
  
444
577
public:
445
 
  CT_Token (Token *t, unsigned long int n = 0) : 
446
 
    _token (t), _number (n) {}
 
578
  /** Constructor. 
 
579
   *  \param token The represented token.
 
580
   *  \param number The token number (a consecutive number). */
 
581
  CT_Token (Token *token, unsigned long int number = 0) : 
 
582
    _token (token), _number (number) {}
 
583
  /** Get the identifier for this node type. Can be compared with NodeName(). */
447
584
  static const char *NodeId ();
 
585
  /** Get the name of the node. Can be compared with NodeId(). */
448
586
  const char *NodeName () const { return NodeId (); }
 
587
  /** Get the number of sons. */
449
588
  int Sons () const { return 0; }
 
589
  /** Get the represented token. */
450
590
  Token *token () const { return _token; }
 
591
  /** Get the represented token. */
451
592
  Token *end_token () const { return _token; }
 
593
  /** Get this. */
452
594
  CT_Token *token_node () const { return (CT_Token*)this; }
 
595
  /** Get this. */
453
596
  CT_Token *end_token_node () const { return (CT_Token*)this; }
454
 
  void Number (unsigned long int n) { _number = n; }
 
597
  /** Set the token number. 
 
598
   *  \param number The token number. */ 
 
599
  void Number (unsigned long int number) { _number = number; }
 
600
  /** Get the token number. Can be used to indentify this token. */
455
601
  unsigned long int Number () const { return _number; }
456
 
  // special new / delete with reusing memory
 
602
  
 
603
public:
 
604
  /** Own new operator reusing memory. */
457
605
  void *operator new (size_t);
458
 
  void  operator delete (void *);
 
606
  /** Own delete operator. */
 
607
  void operator delete (void *);
459
608
};
460
609
 
461
610
/*****************************************************************************/
464
613
/*                                                                           */
465
614
/*****************************************************************************/
466
615
 
 
616
/** \class CT_List CTree.h Puma/CTree.h
 
617
 *  Base class for tree nodes representing lists. */
467
618
 
468
 
#line 469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
619
#line 620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
469
620
} // closed Puma
 
621
class CCExprResolve;
 
622
class CExprResolve;
470
623
class WinIfExists;
471
624
class WinImportHandler;
472
625
class WinMacros;
473
 
class CMatchSyntax;
474
 
class ExtGnu;
 
626
class WinAsm;
 
627
class WinDeclSpecs;
 
628
class WinMemberExplSpec;
 
629
class WinTypeKeywords;
 
630
class WinFriend;
475
631
class ExtAC;
476
632
class ExtACBuilderCoupling;
477
633
class ExtACSyntaxCoupling;
478
634
class ExtACTree;
479
635
class ExtACKeywords;
480
 
class WinAsm;
481
 
class WinDeclSpecs;
482
 
class WinMemberExplSpec;
483
 
class WinTypeKeywords;
 
636
class ExtGnu;
484
637
class PragmaOnceUnitState;
485
638
class PragmaOnce;
486
 
class CCExprResolve;
487
 
class CExprResolve;
 
639
class CMatchSyntax;
488
640
namespace Puma {
489
641
 
490
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
642
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
491
643
class CT_List : public CTree {
492
 
#line 493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
644
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
645
  friend class ::CCExprResolve;
 
646
  friend class ::CExprResolve;
493
647
  friend class ::WinIfExists;
494
648
  friend class ::WinImportHandler;
495
649
  friend class ::WinMacros;
496
 
  friend class ::CMatchSyntax;
497
 
  friend class ::ExtGnu;
 
650
  friend class ::WinAsm;
 
651
  friend class ::WinDeclSpecs;
 
652
  friend class ::WinMemberExplSpec;
 
653
  friend class ::WinTypeKeywords;
 
654
  friend class ::WinFriend;
498
655
  friend class ::ExtAC;
499
656
  friend class ::ExtACBuilderCoupling;
500
657
  friend class ::ExtACSyntaxCoupling;
501
658
  friend class ::ExtACTree;
502
659
  friend class ::ExtACKeywords;
503
 
  friend class ::WinAsm;
504
 
  friend class ::WinDeclSpecs;
505
 
  friend class ::WinMemberExplSpec;
506
 
  friend class ::WinTypeKeywords;
 
660
  friend class ::ExtGnu;
507
661
  friend class ::PragmaOnceUnitState;
508
662
  friend class ::PragmaOnce;
509
 
  friend class ::CCExprResolve;
510
 
  friend class ::CExprResolve;
 
663
  friend class ::CMatchSyntax;
511
664
 
512
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
665
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
513
666
 
514
667
  Array<CTree*> _sons;
515
668
  int _properties;
516
669
 
517
670
protected:
 
671
  /** Constructor.
 
672
   *  \param size The initial list size.
 
673
   *  \param incr The initial increment count. 
 
674
   *  \param props The list properties (bit array). */
518
675
  CT_List(int size = 5, int incr = 5, int props = 0) : 
519
676
    _sons (size, incr), _properties (props) {}
520
677
 
521
678
public:
 
679
  /** List properties. */
522
680
  enum {
523
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
524
 
    CLOSE = 2,
525
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
526
 
    SEPARATORS = 4,   // the list has separators like ','
527
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
528
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
529
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
530
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
681
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
682
    CLOSE = 2,        /** List has an end token */
 
683
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
684
    SEPARATORS = 4,   /** List has separators, like ',' */
 
685
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
686
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
687
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
688
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
531
689
  };
532
690
 
 
691
  /** Get the number of list entries. */
533
692
  int Entries () const;
534
 
  CTree *Entry (int no) const;
 
693
  /** Get the n-th list entry.
 
694
   *  \param n The index of the entry. 
 
695
   *  \return The list entry or NULL. */
 
696
  CTree *Entry (int n) const;
 
697
  /** Get the number of sons. */
535
698
  int Sons () const { return _sons.length (); }
 
699
  /** Get the n-th son.
 
700
   *  \param n The index of the son. 
 
701
   *  \return The n-th son or NULL. */
536
702
  CTree *Son (int n) const { return _sons.lookup (n); }
 
703
  /** Get the list properties. */
537
704
  int GetProperties () const { return _properties; }
 
705
  /** Add a list property.
 
706
   *  \param p The property to add. */
538
707
  void AddProperties (int p) { _properties |= p; }
539
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
540
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
541
 
  void InsertSon (CTree *, CTree *);  // before given son
542
 
  void ReplaceSon (CTree *, CTree *);
543
 
  void RemoveSon (CTree *);
 
708
  /** Add a son.
 
709
   *  \param s The son to add. */
 
710
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
711
  /** Prepend a son.
 
712
   *  \param s The son to prepend. */
 
713
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
714
  /** Insert a son before another son.
 
715
   *  \param before The son to insert the new son before.
 
716
   *  \param son The son to insert. */
 
717
  void InsertSon (CTree *before, CTree *son); 
 
718
  /** Replace a son.
 
719
   *  \param old_son The son to replace.
 
720
   *  \param new_son The new son. */
 
721
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
722
  /** Remove a son.
 
723
   *  \param son The son to remove. */
 
724
  void RemoveSon (CTree *son);
 
725
  /** Insert a son at the given index. 
 
726
   *  \param idx The index at which to insert.
 
727
   *  \param s The son to insert. */
544
728
  void InsertSon (int idx, CTree *s)
545
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
729
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
730
  /** Replace the son at the given index.
 
731
   *  \param idx The index of the son to replace.
 
732
   *  \param s The new son. */
546
733
  void ReplaceSon (int idx, CTree *s) 
547
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
734
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
735
  /** Remove the son at the given index. 
 
736
   *  \param idx The index of the son to remove. */
548
737
  void RemoveSon (int idx) 
549
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
738
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
550
739
};
551
740
 
 
741
/** \class CT_ExprList CTree.h Puma/CTree.h
 
742
 *  Tree node representing an expression list. */
552
743
 
553
 
#line 554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
744
#line 745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
554
745
} // closed Puma
 
746
class CCExprResolve;
 
747
class CExprResolve;
555
748
class WinIfExists;
556
749
class WinImportHandler;
557
750
class WinMacros;
558
 
class CMatchSyntax;
559
 
class ExtGnu;
 
751
class WinAsm;
 
752
class WinDeclSpecs;
 
753
class WinMemberExplSpec;
 
754
class WinTypeKeywords;
 
755
class WinFriend;
560
756
class ExtAC;
561
757
class ExtACBuilderCoupling;
562
758
class ExtACSyntaxCoupling;
563
759
class ExtACTree;
564
760
class ExtACKeywords;
565
 
class WinAsm;
566
 
class WinDeclSpecs;
567
 
class WinMemberExplSpec;
568
 
class WinTypeKeywords;
 
761
class ExtGnu;
569
762
class PragmaOnceUnitState;
570
763
class PragmaOnce;
571
 
class CCExprResolve;
572
 
class CExprResolve;
 
764
class CMatchSyntax;
573
765
namespace Puma {
574
766
 
575
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
767
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
576
768
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
577
 
#line 578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
769
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
770
  friend class ::CCExprResolve;
 
771
  friend class ::CExprResolve;
578
772
  friend class ::WinIfExists;
579
773
  friend class ::WinImportHandler;
580
774
  friend class ::WinMacros;
581
 
  friend class ::CMatchSyntax;
582
 
  friend class ::ExtGnu;
 
775
  friend class ::WinAsm;
 
776
  friend class ::WinDeclSpecs;
 
777
  friend class ::WinMemberExplSpec;
 
778
  friend class ::WinTypeKeywords;
 
779
  friend class ::WinFriend;
583
780
  friend class ::ExtAC;
584
781
  friend class ::ExtACBuilderCoupling;
585
782
  friend class ::ExtACSyntaxCoupling;
586
783
  friend class ::ExtACTree;
587
784
  friend class ::ExtACKeywords;
588
 
  friend class ::WinAsm;
589
 
  friend class ::WinDeclSpecs;
590
 
  friend class ::WinMemberExplSpec;
591
 
  friend class ::WinTypeKeywords;
 
785
  friend class ::ExtGnu;
592
786
  friend class ::PragmaOnceUnitState;
593
787
  friend class ::PragmaOnce;
594
 
  friend class ::CCExprResolve;
595
 
  friend class ::CExprResolve;
 
788
  friend class ::CMatchSyntax;
596
789
 
597
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
790
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
598
791
 
599
792
public:
 
793
  /** Constructor. */
600
794
  CT_ExprList () { AddProperties (SEPARATORS); }
 
795
  /** Get the identifier for this node type. Can be compared with NodeName(). */
601
796
  static const char *NodeId ();
 
797
  /** Get the name of the node. Can be compared with NodeId(). */
602
798
  const char *NodeName () const { return NodeId (); }
603
799
 
 
800
  /** Get the type of the last expression in the expression list.
 
801
   *  \return The type or NULL. */
604
802
  CTypeInfo *Type () const { return type; }
 
803
  /** Get the value of the last expression in the expression list.
 
804
   *  \return The value of NULL. */
605
805
  CExprValue *Value () const { return value; }
 
806
  /** Get the semantic value of the node. */
606
807
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
808
  /** Get the semantic object of the node. */
607
809
  CSemObject *SemObject () const { return (CSemObject*)this; }
608
810
};
609
811
 
 
812
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
813
 *  Tree node representing a list of declarators. */
610
814
 
611
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
815
#line 816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
612
816
} // closed Puma
 
817
class CCExprResolve;
 
818
class CExprResolve;
613
819
class WinIfExists;
614
820
class WinImportHandler;
615
821
class WinMacros;
616
 
class CMatchSyntax;
617
 
class ExtGnu;
 
822
class WinAsm;
 
823
class WinDeclSpecs;
 
824
class WinMemberExplSpec;
 
825
class WinTypeKeywords;
 
826
class WinFriend;
618
827
class ExtAC;
619
828
class ExtACBuilderCoupling;
620
829
class ExtACSyntaxCoupling;
621
830
class ExtACTree;
622
831
class ExtACKeywords;
623
 
class WinAsm;
624
 
class WinDeclSpecs;
625
 
class WinMemberExplSpec;
626
 
class WinTypeKeywords;
 
832
class ExtGnu;
627
833
class PragmaOnceUnitState;
628
834
class PragmaOnce;
629
 
class CCExprResolve;
630
 
class CExprResolve;
 
835
class CMatchSyntax;
631
836
namespace Puma {
632
837
 
633
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
838
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
634
839
class CT_DeclaratorList : public CT_List {
635
 
#line 636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
840
#line 841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
841
  friend class ::CCExprResolve;
 
842
  friend class ::CExprResolve;
636
843
  friend class ::WinIfExists;
637
844
  friend class ::WinImportHandler;
638
845
  friend class ::WinMacros;
639
 
  friend class ::CMatchSyntax;
640
 
  friend class ::ExtGnu;
 
846
  friend class ::WinAsm;
 
847
  friend class ::WinDeclSpecs;
 
848
  friend class ::WinMemberExplSpec;
 
849
  friend class ::WinTypeKeywords;
 
850
  friend class ::WinFriend;
641
851
  friend class ::ExtAC;
642
852
  friend class ::ExtACBuilderCoupling;
643
853
  friend class ::ExtACSyntaxCoupling;
644
854
  friend class ::ExtACTree;
645
855
  friend class ::ExtACKeywords;
646
 
  friend class ::WinAsm;
647
 
  friend class ::WinDeclSpecs;
648
 
  friend class ::WinMemberExplSpec;
649
 
  friend class ::WinTypeKeywords;
 
856
  friend class ::ExtGnu;
650
857
  friend class ::PragmaOnceUnitState;
651
858
  friend class ::PragmaOnce;
652
 
  friend class ::CCExprResolve;
653
 
  friend class ::CExprResolve;
 
859
  friend class ::CMatchSyntax;
654
860
 
655
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
861
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
656
862
 
657
863
public:
 
864
  /** Get the identifier for this node type. Can be compared with NodeName(). */
658
865
  static const char *NodeId ();
 
866
  /** Get the name of the node. Can be compared with NodeId(). */
659
867
  const char *NodeName () const { return NodeId (); }
660
868
};
661
869
 
 
870
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
871
 *  Tree node representing a list of enumerator constants. */
662
872
 
663
 
#line 664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
873
#line 874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
664
874
} // closed Puma
 
875
class CCExprResolve;
 
876
class CExprResolve;
665
877
class WinIfExists;
666
878
class WinImportHandler;
667
879
class WinMacros;
668
 
class CMatchSyntax;
669
 
class ExtGnu;
 
880
class WinAsm;
 
881
class WinDeclSpecs;
 
882
class WinMemberExplSpec;
 
883
class WinTypeKeywords;
 
884
class WinFriend;
670
885
class ExtAC;
671
886
class ExtACBuilderCoupling;
672
887
class ExtACSyntaxCoupling;
673
888
class ExtACTree;
674
889
class ExtACKeywords;
675
 
class WinAsm;
676
 
class WinDeclSpecs;
677
 
class WinMemberExplSpec;
678
 
class WinTypeKeywords;
 
890
class ExtGnu;
679
891
class PragmaOnceUnitState;
680
892
class PragmaOnce;
681
 
class CCExprResolve;
682
 
class CExprResolve;
 
893
class CMatchSyntax;
683
894
namespace Puma {
684
895
 
685
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
896
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
686
897
class CT_EnumeratorList : public CT_List {
687
 
#line 688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
898
#line 899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
899
  friend class ::CCExprResolve;
 
900
  friend class ::CExprResolve;
688
901
  friend class ::WinIfExists;
689
902
  friend class ::WinImportHandler;
690
903
  friend class ::WinMacros;
691
 
  friend class ::CMatchSyntax;
692
 
  friend class ::ExtGnu;
 
904
  friend class ::WinAsm;
 
905
  friend class ::WinDeclSpecs;
 
906
  friend class ::WinMemberExplSpec;
 
907
  friend class ::WinTypeKeywords;
 
908
  friend class ::WinFriend;
693
909
  friend class ::ExtAC;
694
910
  friend class ::ExtACBuilderCoupling;
695
911
  friend class ::ExtACSyntaxCoupling;
696
912
  friend class ::ExtACTree;
697
913
  friend class ::ExtACKeywords;
698
 
  friend class ::WinAsm;
699
 
  friend class ::WinDeclSpecs;
700
 
  friend class ::WinMemberExplSpec;
701
 
  friend class ::WinTypeKeywords;
 
914
  friend class ::ExtGnu;
702
915
  friend class ::PragmaOnceUnitState;
703
916
  friend class ::PragmaOnce;
704
 
  friend class ::CCExprResolve;
705
 
  friend class ::CExprResolve;
 
917
  friend class ::CMatchSyntax;
706
918
 
707
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
919
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
708
920
 
709
921
public:
 
922
  /** Constructor. */
710
923
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
924
  /** Get the identifier for this node type. Can be compared with NodeName(). */
711
925
  static const char *NodeId ();
 
926
  /** Get the name of the node. Can be compared with NodeId(). */
712
927
  const char *NodeName () const { return NodeId (); }
713
928
};
714
929
   
 
930
/** \class CT_DeclList CTree.h Puma/CTree.h
 
931
 *  Tree node representing a list of declarations. */
715
932
 
716
 
#line 717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
933
#line 934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
717
934
} // closed Puma
 
935
class CCExprResolve;
 
936
class CExprResolve;
718
937
class WinIfExists;
719
938
class WinImportHandler;
720
939
class WinMacros;
721
 
class CMatchSyntax;
722
 
class ExtGnu;
 
940
class WinAsm;
 
941
class WinDeclSpecs;
 
942
class WinMemberExplSpec;
 
943
class WinTypeKeywords;
 
944
class WinFriend;
723
945
class ExtAC;
724
946
class ExtACBuilderCoupling;
725
947
class ExtACSyntaxCoupling;
726
948
class ExtACTree;
727
949
class ExtACKeywords;
728
 
class WinAsm;
729
 
class WinDeclSpecs;
730
 
class WinMemberExplSpec;
731
 
class WinTypeKeywords;
 
950
class ExtGnu;
732
951
class PragmaOnceUnitState;
733
952
class PragmaOnce;
734
 
class CCExprResolve;
735
 
class CExprResolve;
 
953
class CMatchSyntax;
736
954
namespace Puma {
737
955
 
738
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
956
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
739
957
class CT_DeclList : public CT_List {
740
 
#line 741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
958
#line 959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
959
  friend class ::CCExprResolve;
 
960
  friend class ::CExprResolve;
741
961
  friend class ::WinIfExists;
742
962
  friend class ::WinImportHandler;
743
963
  friend class ::WinMacros;
744
 
  friend class ::CMatchSyntax;
745
 
  friend class ::ExtGnu;
 
964
  friend class ::WinAsm;
 
965
  friend class ::WinDeclSpecs;
 
966
  friend class ::WinMemberExplSpec;
 
967
  friend class ::WinTypeKeywords;
 
968
  friend class ::WinFriend;
746
969
  friend class ::ExtAC;
747
970
  friend class ::ExtACBuilderCoupling;
748
971
  friend class ::ExtACSyntaxCoupling;
749
972
  friend class ::ExtACTree;
750
973
  friend class ::ExtACKeywords;
751
 
  friend class ::WinAsm;
752
 
  friend class ::WinDeclSpecs;
753
 
  friend class ::WinMemberExplSpec;
754
 
  friend class ::WinTypeKeywords;
 
974
  friend class ::ExtGnu;
755
975
  friend class ::PragmaOnceUnitState;
756
976
  friend class ::PragmaOnce;
757
 
  friend class ::CCExprResolve;
758
 
  friend class ::CExprResolve;
 
977
  friend class ::CMatchSyntax;
759
978
 
760
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
979
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
761
980
 
762
981
public:
 
982
  /** Constructor. 
 
983
   *  \param size The initial size of the list.
 
984
   *  \param incr The initial increment count of the list. */
763
985
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
986
  /** Get the identifier for this node type. Can be compared with NodeName(). */
764
987
  static const char *NodeId ();
 
988
  /** Get the name of the node. Can be compared with NodeId(). */
765
989
  const char *NodeName () const { return NodeId (); }
 
990
  /** Set the linkage specifiers to each declaration in the list.
 
991
   *  \param l The linkage specifiers node. */
766
992
  void Linkage (CT_LinkageSpec *l);
767
993
};
768
994
 
 
995
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
996
 *  Tree node representing a sequence of declaration specifiers. */
769
997
 
770
 
#line 771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
998
#line 999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
771
999
} // closed Puma
 
1000
class CCExprResolve;
 
1001
class CExprResolve;
772
1002
class WinIfExists;
773
1003
class WinImportHandler;
774
1004
class WinMacros;
775
 
class CMatchSyntax;
776
 
class ExtGnu;
 
1005
class WinAsm;
 
1006
class WinDeclSpecs;
 
1007
class WinMemberExplSpec;
 
1008
class WinTypeKeywords;
 
1009
class WinFriend;
777
1010
class ExtAC;
778
1011
class ExtACBuilderCoupling;
779
1012
class ExtACSyntaxCoupling;
780
1013
class ExtACTree;
781
1014
class ExtACKeywords;
782
 
class WinAsm;
783
 
class WinDeclSpecs;
784
 
class WinMemberExplSpec;
785
 
class WinTypeKeywords;
 
1015
class ExtGnu;
786
1016
class PragmaOnceUnitState;
787
1017
class PragmaOnce;
788
 
class CCExprResolve;
789
 
class CExprResolve;
 
1018
class CMatchSyntax;
790
1019
namespace Puma {
791
1020
 
792
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1021
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
793
1022
class CT_DeclSpecSeq : public CT_List {
794
 
#line 795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1023
#line 1024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1024
  friend class ::CCExprResolve;
 
1025
  friend class ::CExprResolve;
795
1026
  friend class ::WinIfExists;
796
1027
  friend class ::WinImportHandler;
797
1028
  friend class ::WinMacros;
798
 
  friend class ::CMatchSyntax;
799
 
  friend class ::ExtGnu;
 
1029
  friend class ::WinAsm;
 
1030
  friend class ::WinDeclSpecs;
 
1031
  friend class ::WinMemberExplSpec;
 
1032
  friend class ::WinTypeKeywords;
 
1033
  friend class ::WinFriend;
800
1034
  friend class ::ExtAC;
801
1035
  friend class ::ExtACBuilderCoupling;
802
1036
  friend class ::ExtACSyntaxCoupling;
803
1037
  friend class ::ExtACTree;
804
1038
  friend class ::ExtACKeywords;
805
 
  friend class ::WinAsm;
806
 
  friend class ::WinDeclSpecs;
807
 
  friend class ::WinMemberExplSpec;
808
 
  friend class ::WinTypeKeywords;
 
1039
  friend class ::ExtGnu;
809
1040
  friend class ::PragmaOnceUnitState;
810
1041
  friend class ::PragmaOnce;
811
 
  friend class ::CCExprResolve;
812
 
  friend class ::CExprResolve;
 
1042
  friend class ::CMatchSyntax;
813
1043
 
814
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1044
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
815
1045
 
816
1046
public:
 
1047
  /** Get the identifier for this node type. Can be compared with NodeName(). */
817
1048
  static const char *NodeId ();
 
1049
  /** Get the name of the node. Can be compared with NodeId(). */
818
1050
  const char *NodeName () const { return NodeId (); }
819
1051
};
820
1052
 
 
1053
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
1054
 *  Tree node representing a compound statement. */
821
1055
 
822
 
#line 823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1056
#line 1057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
823
1057
} // closed Puma
 
1058
class CCExprResolve;
 
1059
class CExprResolve;
824
1060
class WinIfExists;
825
1061
class WinImportHandler;
826
1062
class WinMacros;
827
 
class CMatchSyntax;
828
 
class ExtGnu;
 
1063
class WinAsm;
 
1064
class WinDeclSpecs;
 
1065
class WinMemberExplSpec;
 
1066
class WinTypeKeywords;
 
1067
class WinFriend;
829
1068
class ExtAC;
830
1069
class ExtACBuilderCoupling;
831
1070
class ExtACSyntaxCoupling;
832
1071
class ExtACTree;
833
1072
class ExtACKeywords;
834
 
class WinAsm;
835
 
class WinDeclSpecs;
836
 
class WinMemberExplSpec;
837
 
class WinTypeKeywords;
 
1073
class ExtGnu;
838
1074
class PragmaOnceUnitState;
839
1075
class PragmaOnce;
840
 
class CCExprResolve;
841
 
class CExprResolve;
 
1076
class CMatchSyntax;
842
1077
namespace Puma {
843
1078
 
844
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1079
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
845
1080
class CT_CmpdStmt : public CT_List, public CSemScope {
846
 
#line 847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1081
#line 1082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1082
  friend class ::CCExprResolve;
 
1083
  friend class ::CExprResolve;
847
1084
  friend class ::WinIfExists;
848
1085
  friend class ::WinImportHandler;
849
1086
  friend class ::WinMacros;
850
 
  friend class ::CMatchSyntax;
851
 
  friend class ::ExtGnu;
 
1087
  friend class ::WinAsm;
 
1088
  friend class ::WinDeclSpecs;
 
1089
  friend class ::WinMemberExplSpec;
 
1090
  friend class ::WinTypeKeywords;
 
1091
  friend class ::WinFriend;
852
1092
  friend class ::ExtAC;
853
1093
  friend class ::ExtACBuilderCoupling;
854
1094
  friend class ::ExtACSyntaxCoupling;
855
1095
  friend class ::ExtACTree;
856
1096
  friend class ::ExtACKeywords;
857
 
  friend class ::WinAsm;
858
 
  friend class ::WinDeclSpecs;
859
 
  friend class ::WinMemberExplSpec;
860
 
  friend class ::WinTypeKeywords;
 
1097
  friend class ::ExtGnu;
861
1098
  friend class ::PragmaOnceUnitState;
862
1099
  friend class ::PragmaOnce;
863
 
  friend class ::CCExprResolve;
864
 
  friend class ::CExprResolve;
 
1100
  friend class ::CMatchSyntax;
865
1101
 
866
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1102
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
867
1103
 
868
1104
public:
 
1105
  /* Constructor. */
869
1106
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
1107
  /** Get the identifier for this node type. Can be compared with NodeName(). */
870
1108
  static const char *NodeId ();
 
1109
  /** Get the name of the node. Can be compared with NodeId(). */
871
1110
  const char *NodeName () const { return NodeId (); }
 
1111
  /** Get the local scope of the compound statement. */
 
1112
  CSemScope *SemScope () const { return (CSemScope*)this; }
872
1113
};
873
1114
 
 
1115
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
1116
 *  Tree node representing an exception handler sequence. */
874
1117
 
875
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1118
#line 1119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
876
1119
} // closed Puma
 
1120
class CCExprResolve;
 
1121
class CExprResolve;
877
1122
class WinIfExists;
878
1123
class WinImportHandler;
879
1124
class WinMacros;
880
 
class CMatchSyntax;
881
 
class ExtGnu;
 
1125
class WinAsm;
 
1126
class WinDeclSpecs;
 
1127
class WinMemberExplSpec;
 
1128
class WinTypeKeywords;
 
1129
class WinFriend;
882
1130
class ExtAC;
883
1131
class ExtACBuilderCoupling;
884
1132
class ExtACSyntaxCoupling;
885
1133
class ExtACTree;
886
1134
class ExtACKeywords;
887
 
class WinAsm;
888
 
class WinDeclSpecs;
889
 
class WinMemberExplSpec;
890
 
class WinTypeKeywords;
 
1135
class ExtGnu;
891
1136
class PragmaOnceUnitState;
892
1137
class PragmaOnce;
893
 
class CCExprResolve;
894
 
class CExprResolve;
 
1138
class CMatchSyntax;
895
1139
namespace Puma {
896
1140
 
897
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1141
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
898
1142
class CT_HandlerSeq : public CT_List {
899
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1143
#line 1144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1144
  friend class ::CCExprResolve;
 
1145
  friend class ::CExprResolve;
900
1146
  friend class ::WinIfExists;
901
1147
  friend class ::WinImportHandler;
902
1148
  friend class ::WinMacros;
903
 
  friend class ::CMatchSyntax;
904
 
  friend class ::ExtGnu;
 
1149
  friend class ::WinAsm;
 
1150
  friend class ::WinDeclSpecs;
 
1151
  friend class ::WinMemberExplSpec;
 
1152
  friend class ::WinTypeKeywords;
 
1153
  friend class ::WinFriend;
905
1154
  friend class ::ExtAC;
906
1155
  friend class ::ExtACBuilderCoupling;
907
1156
  friend class ::ExtACSyntaxCoupling;
908
1157
  friend class ::ExtACTree;
909
1158
  friend class ::ExtACKeywords;
910
 
  friend class ::WinAsm;
911
 
  friend class ::WinDeclSpecs;
912
 
  friend class ::WinMemberExplSpec;
913
 
  friend class ::WinTypeKeywords;
 
1159
  friend class ::ExtGnu;
914
1160
  friend class ::PragmaOnceUnitState;
915
1161
  friend class ::PragmaOnce;
916
 
  friend class ::CCExprResolve;
917
 
  friend class ::CExprResolve;
 
1162
  friend class ::CMatchSyntax;
918
1163
 
919
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1164
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
920
1165
 
921
1166
public:
 
1167
  /** Get the identifier for this node type. Can be compared with NodeName(). */
922
1168
  static const char *NodeId ();
 
1169
  /** Get the name of the node. Can be compared with NodeId(). */
923
1170
  const char *NodeName () const { return NodeId (); }
924
1171
};
925
1172
 
 
1173
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
1174
 *  Tree node representing a template parameter list. */
926
1175
 
927
 
#line 928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1176
#line 1177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
928
1177
} // closed Puma
 
1178
class CCExprResolve;
 
1179
class CExprResolve;
929
1180
class WinIfExists;
930
1181
class WinImportHandler;
931
1182
class WinMacros;
932
 
class CMatchSyntax;
933
 
class ExtGnu;
 
1183
class WinAsm;
 
1184
class WinDeclSpecs;
 
1185
class WinMemberExplSpec;
 
1186
class WinTypeKeywords;
 
1187
class WinFriend;
934
1188
class ExtAC;
935
1189
class ExtACBuilderCoupling;
936
1190
class ExtACSyntaxCoupling;
937
1191
class ExtACTree;
938
1192
class ExtACKeywords;
939
 
class WinAsm;
940
 
class WinDeclSpecs;
941
 
class WinMemberExplSpec;
942
 
class WinTypeKeywords;
 
1193
class ExtGnu;
943
1194
class PragmaOnceUnitState;
944
1195
class PragmaOnce;
945
 
class CCExprResolve;
946
 
class CExprResolve;
 
1196
class CMatchSyntax;
947
1197
namespace Puma {
948
1198
 
949
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1199
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
950
1200
class CT_TemplateParamList : public CT_List, public CSemScope {
951
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1201
#line 1202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1202
  friend class ::CCExprResolve;
 
1203
  friend class ::CExprResolve;
952
1204
  friend class ::WinIfExists;
953
1205
  friend class ::WinImportHandler;
954
1206
  friend class ::WinMacros;
955
 
  friend class ::CMatchSyntax;
956
 
  friend class ::ExtGnu;
 
1207
  friend class ::WinAsm;
 
1208
  friend class ::WinDeclSpecs;
 
1209
  friend class ::WinMemberExplSpec;
 
1210
  friend class ::WinTypeKeywords;
 
1211
  friend class ::WinFriend;
957
1212
  friend class ::ExtAC;
958
1213
  friend class ::ExtACBuilderCoupling;
959
1214
  friend class ::ExtACSyntaxCoupling;
960
1215
  friend class ::ExtACTree;
961
1216
  friend class ::ExtACKeywords;
962
 
  friend class ::WinAsm;
963
 
  friend class ::WinDeclSpecs;
964
 
  friend class ::WinMemberExplSpec;
965
 
  friend class ::WinTypeKeywords;
 
1217
  friend class ::ExtGnu;
966
1218
  friend class ::PragmaOnceUnitState;
967
1219
  friend class ::PragmaOnce;
968
 
  friend class ::CCExprResolve;
969
 
  friend class ::CExprResolve;
 
1220
  friend class ::CMatchSyntax;
970
1221
 
971
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1222
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
972
1223
 
973
1224
public:
974
1225
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
1226
  /** Get the identifier for this node type. Can be compared with NodeName(). */
975
1227
  static const char *NodeId ();
 
1228
  /** Get the name of the node. Can be compared with NodeId(). */
976
1229
  const char *NodeName () const { return NodeId (); }
 
1230
  /** Get the scope of the template parameter list. */
 
1231
  CSemScope *SemScope () const { return (CSemScope*)this; }
977
1232
};
978
1233
 
 
1234
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
1235
 *  Tree node representing a template argument list. */
979
1236
 
980
 
#line 981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1237
#line 1238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
981
1238
} // closed Puma
 
1239
class CCExprResolve;
 
1240
class CExprResolve;
982
1241
class WinIfExists;
983
1242
class WinImportHandler;
984
1243
class WinMacros;
985
 
class CMatchSyntax;
986
 
class ExtGnu;
 
1244
class WinAsm;
 
1245
class WinDeclSpecs;
 
1246
class WinMemberExplSpec;
 
1247
class WinTypeKeywords;
 
1248
class WinFriend;
987
1249
class ExtAC;
988
1250
class ExtACBuilderCoupling;
989
1251
class ExtACSyntaxCoupling;
990
1252
class ExtACTree;
991
1253
class ExtACKeywords;
992
 
class WinAsm;
993
 
class WinDeclSpecs;
994
 
class WinMemberExplSpec;
995
 
class WinTypeKeywords;
 
1254
class ExtGnu;
996
1255
class PragmaOnceUnitState;
997
1256
class PragmaOnce;
998
 
class CCExprResolve;
999
 
class CExprResolve;
 
1257
class CMatchSyntax;
1000
1258
namespace Puma {
1001
1259
 
1002
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1260
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1003
1261
class CT_TemplateArgList : public CT_List {
1004
 
#line 1005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1262
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1263
  friend class ::CCExprResolve;
 
1264
  friend class ::CExprResolve;
1005
1265
  friend class ::WinIfExists;
1006
1266
  friend class ::WinImportHandler;
1007
1267
  friend class ::WinMacros;
1008
 
  friend class ::CMatchSyntax;
1009
 
  friend class ::ExtGnu;
 
1268
  friend class ::WinAsm;
 
1269
  friend class ::WinDeclSpecs;
 
1270
  friend class ::WinMemberExplSpec;
 
1271
  friend class ::WinTypeKeywords;
 
1272
  friend class ::WinFriend;
1010
1273
  friend class ::ExtAC;
1011
1274
  friend class ::ExtACBuilderCoupling;
1012
1275
  friend class ::ExtACSyntaxCoupling;
1013
1276
  friend class ::ExtACTree;
1014
1277
  friend class ::ExtACKeywords;
1015
 
  friend class ::WinAsm;
1016
 
  friend class ::WinDeclSpecs;
1017
 
  friend class ::WinMemberExplSpec;
1018
 
  friend class ::WinTypeKeywords;
 
1278
  friend class ::ExtGnu;
1019
1279
  friend class ::PragmaOnceUnitState;
1020
1280
  friend class ::PragmaOnce;
1021
 
  friend class ::CCExprResolve;
1022
 
  friend class ::CExprResolve;
 
1281
  friend class ::CMatchSyntax;
1023
1282
 
1024
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1283
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1025
1284
 
1026
1285
public:
 
1286
  /** Constructor. */
1027
1287
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
1288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1028
1289
  static const char *NodeId ();
 
1290
  /** Get the name of the node. Can be compared with NodeId(). */
1029
1291
  const char *NodeName () const { return NodeId (); }
1030
1292
};
1031
1293
 
1035
1297
/*                                                                           */
1036
1298
/*****************************************************************************/
1037
1299
 
 
1300
/** \class CT_Expression CTree.h Puma/CTree.h
 
1301
 *  Base class for all expression tree nodes. */
1038
1302
 
1039
 
#line 1040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1303
#line 1304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1040
1304
} // closed Puma
 
1305
class CCExprResolve;
 
1306
class CExprResolve;
1041
1307
class WinIfExists;
1042
1308
class WinImportHandler;
1043
1309
class WinMacros;
1044
 
class CMatchSyntax;
1045
 
class ExtGnu;
 
1310
class WinAsm;
 
1311
class WinDeclSpecs;
 
1312
class WinMemberExplSpec;
 
1313
class WinTypeKeywords;
 
1314
class WinFriend;
1046
1315
class ExtAC;
1047
1316
class ExtACBuilderCoupling;
1048
1317
class ExtACSyntaxCoupling;
1049
1318
class ExtACTree;
1050
1319
class ExtACKeywords;
1051
 
class WinAsm;
1052
 
class WinDeclSpecs;
1053
 
class WinMemberExplSpec;
1054
 
class WinTypeKeywords;
 
1320
class ExtGnu;
1055
1321
class PragmaOnceUnitState;
1056
1322
class PragmaOnce;
1057
 
class CCExprResolve;
1058
 
class CExprResolve;
1059
 
namespace Puma {
1060
 
 
1061
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1323
class CMatchSyntax;
 
1324
namespace Puma {
 
1325
 
 
1326
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1327
 
 
1328
#line 1329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1329
} // closed Puma
 
1330
 
 
1331
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1332
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1333
#include "CCExprResolveH.ah"
 
1334
#endif
 
1335
namespace Puma {
 
1336
 
 
1337
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1338
 
 
1339
#line 1340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1340
} // closed Puma
 
1341
 
 
1342
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1343
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1344
#include "CExprResolveH.ah"
 
1345
#endif
 
1346
namespace Puma {
 
1347
 
 
1348
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1062
1349
class CT_Expression : public CTree, public CSemValue {
1063
 
#line 1064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1350
#line 1351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1351
  friend class ::CCExprResolve;
 
1352
  friend class ::CExprResolve;
1064
1353
  friend class ::WinIfExists;
1065
1354
  friend class ::WinImportHandler;
1066
1355
  friend class ::WinMacros;
1067
 
  friend class ::CMatchSyntax;
1068
 
  friend class ::ExtGnu;
 
1356
  friend class ::WinAsm;
 
1357
  friend class ::WinDeclSpecs;
 
1358
  friend class ::WinMemberExplSpec;
 
1359
  friend class ::WinTypeKeywords;
 
1360
  friend class ::WinFriend;
1069
1361
  friend class ::ExtAC;
1070
1362
  friend class ::ExtACBuilderCoupling;
1071
1363
  friend class ::ExtACSyntaxCoupling;
1072
1364
  friend class ::ExtACTree;
1073
1365
  friend class ::ExtACKeywords;
1074
 
  friend class ::WinAsm;
1075
 
  friend class ::WinDeclSpecs;
1076
 
  friend class ::WinMemberExplSpec;
1077
 
  friend class ::WinTypeKeywords;
 
1366
  friend class ::ExtGnu;
1078
1367
  friend class ::PragmaOnceUnitState;
1079
1368
  friend class ::PragmaOnce;
1080
 
  friend class ::CCExprResolve;
1081
 
  friend class ::CExprResolve;
 
1369
  friend class ::CMatchSyntax;
1082
1370
 
1083
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1371
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1084
1372
 
1085
1373
protected:
 
1374
  /** Constructor. */
1086
1375
  CT_Expression () {}
1087
1376
 
1088
1377
public:
 
1378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1089
1379
  static const char *NodeId ();
 
1380
  /** Get the name of the node. Can be compared with NodeId(). */
1090
1381
  const char *NodeName () const { return NodeId (); }
 
1382
  /** Get the type of the expression.
 
1383
   *  \return The type information object or NULL. */
1091
1384
  CTypeInfo *Type () const { return type; }
 
1385
  /** Get the value of the expression.
 
1386
   *  \return The value object or NULL. */
1092
1387
  CExprValue *Value () const { return value; }
 
1388
  /** Get the semantic value information of the expression.
 
1389
   *  \return The value object or NULL. */
1093
1390
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
1391
  /** Get this. */
 
1392
  virtual CT_Expression *IsExpression () { return this; }
1094
1393
   private:
1095
1394
  typedef CT_Expression CCExprResolveExpr;
1096
1395
 
1097
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
1396
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1098
1397
 public :
1099
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
1398
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1100
1399
  typedef CT_Expression CExprResolveExpr;
1101
1400
 
1102
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1103
 
 public :
1104
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1105
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1106
 
};
1107
 
 
1108
 
 
1109
 
#line 1110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1110
 
} // closed Puma
1111
 
class WinIfExists;
1112
 
class WinImportHandler;
1113
 
class WinMacros;
1114
 
class CMatchSyntax;
1115
 
class ExtGnu;
1116
 
class ExtAC;
1117
 
class ExtACBuilderCoupling;
1118
 
class ExtACSyntaxCoupling;
1119
 
class ExtACTree;
1120
 
class ExtACKeywords;
1121
 
class WinAsm;
1122
 
class WinDeclSpecs;
1123
 
class WinMemberExplSpec;
1124
 
class WinTypeKeywords;
1125
 
class PragmaOnceUnitState;
1126
 
class PragmaOnce;
1127
 
class CCExprResolve;
1128
 
class CExprResolve;
1129
 
namespace Puma {
1130
 
 
1131
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1401
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
1402
 public :
 
1403
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
1404
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1405
};
 
1406
 
 
1407
/** \class CT_Call CTree.h Puma/CTree.h
 
1408
 *  Tree node representing explicit or implicit function calls 
 
1409
 *  including built-in or user-defined functions and overloaded
 
1410
 *  operators. */
 
1411
 
 
1412
#line 1413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1413
} // closed Puma
 
1414
class CCExprResolve;
 
1415
class CExprResolve;
 
1416
class WinIfExists;
 
1417
class WinImportHandler;
 
1418
class WinMacros;
 
1419
class WinAsm;
 
1420
class WinDeclSpecs;
 
1421
class WinMemberExplSpec;
 
1422
class WinTypeKeywords;
 
1423
class WinFriend;
 
1424
class ExtAC;
 
1425
class ExtACBuilderCoupling;
 
1426
class ExtACSyntaxCoupling;
 
1427
class ExtACTree;
 
1428
class ExtACKeywords;
 
1429
class ExtGnu;
 
1430
class PragmaOnceUnitState;
 
1431
class PragmaOnce;
 
1432
class CMatchSyntax;
 
1433
namespace Puma {
 
1434
 
 
1435
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1436
 
 
1437
#line 1438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1438
} // closed Puma
 
1439
 
 
1440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1442
#include "CCExprResolveH.ah"
 
1443
#endif
 
1444
namespace Puma {
 
1445
 
 
1446
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1447
 
 
1448
#line 1449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1449
} // closed Puma
 
1450
 
 
1451
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1452
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1453
#include "CExprResolveH.ah"
 
1454
#endif
 
1455
namespace Puma {
 
1456
 
 
1457
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1458
class CT_Call : public CT_Expression, public CSemObject {
 
1459
#line 1460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1460
  friend class ::CCExprResolve;
 
1461
  friend class ::CExprResolve;
 
1462
  friend class ::WinIfExists;
 
1463
  friend class ::WinImportHandler;
 
1464
  friend class ::WinMacros;
 
1465
  friend class ::WinAsm;
 
1466
  friend class ::WinDeclSpecs;
 
1467
  friend class ::WinMemberExplSpec;
 
1468
  friend class ::WinTypeKeywords;
 
1469
  friend class ::WinFriend;
 
1470
  friend class ::ExtAC;
 
1471
  friend class ::ExtACBuilderCoupling;
 
1472
  friend class ::ExtACSyntaxCoupling;
 
1473
  friend class ::ExtACTree;
 
1474
  friend class ::ExtACKeywords;
 
1475
  friend class ::ExtGnu;
 
1476
  friend class ::PragmaOnceUnitState;
 
1477
  friend class ::PragmaOnce;
 
1478
  friend class ::CMatchSyntax;
 
1479
 
 
1480
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1481
 
 
1482
protected:
 
1483
  /** Constructor. */
 
1484
  CT_Call () {}
 
1485
  
 
1486
public:
 
1487
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
1488
  static const char *NodeId ();
 
1489
  /** Get the name of the node. Can be compared with NodeId(). */
 
1490
  const char *NodeName () const { return NodeId (); }
 
1491
  /** Get the semantic information of the call.
 
1492
   *  \return The semantic information or NULL. */
 
1493
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
1494
  /** Get this. */
 
1495
  CT_Call *IsCall () { return this; }
 
1496
   private:
 
1497
  typedef CT_Call CCExprResolveExpr;
 
1498
 
 
1499
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
1500
 public :
 
1501
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
1502
  typedef CT_Call CExprResolveExpr;
 
1503
 
 
1504
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
1505
 public :
 
1506
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
1507
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1508
};
 
1509
 
 
1510
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
1511
 *  Tree node representing implicit function calls detected by
 
1512
 *  the semantic analysis. */
 
1513
 
 
1514
#line 1515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1515
} // closed Puma
 
1516
class CCExprResolve;
 
1517
class CExprResolve;
 
1518
class WinIfExists;
 
1519
class WinImportHandler;
 
1520
class WinMacros;
 
1521
class WinAsm;
 
1522
class WinDeclSpecs;
 
1523
class WinMemberExplSpec;
 
1524
class WinTypeKeywords;
 
1525
class WinFriend;
 
1526
class ExtAC;
 
1527
class ExtACBuilderCoupling;
 
1528
class ExtACSyntaxCoupling;
 
1529
class ExtACTree;
 
1530
class ExtACKeywords;
 
1531
class ExtGnu;
 
1532
class PragmaOnceUnitState;
 
1533
class PragmaOnce;
 
1534
class CMatchSyntax;
 
1535
namespace Puma {
 
1536
 
 
1537
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1538
 
 
1539
#line 1540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1540
} // closed Puma
 
1541
 
 
1542
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1543
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1544
#include "CCExprResolveH.ah"
 
1545
#endif
 
1546
namespace Puma {
 
1547
 
 
1548
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1549
 
 
1550
#line 1551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1551
} // closed Puma
 
1552
 
 
1553
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1554
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1555
#include "CExprResolveH.ah"
 
1556
#endif
 
1557
namespace Puma {
 
1558
 
 
1559
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1560
class CT_ImplicitCall : public CT_Call {
 
1561
#line 1562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1562
  friend class ::CCExprResolve;
 
1563
  friend class ::CExprResolve;
 
1564
  friend class ::WinIfExists;
 
1565
  friend class ::WinImportHandler;
 
1566
  friend class ::WinMacros;
 
1567
  friend class ::WinAsm;
 
1568
  friend class ::WinDeclSpecs;
 
1569
  friend class ::WinMemberExplSpec;
 
1570
  friend class ::WinTypeKeywords;
 
1571
  friend class ::WinFriend;
 
1572
  friend class ::ExtAC;
 
1573
  friend class ::ExtACBuilderCoupling;
 
1574
  friend class ::ExtACSyntaxCoupling;
 
1575
  friend class ::ExtACTree;
 
1576
  friend class ::ExtACKeywords;
 
1577
  friend class ::ExtGnu;
 
1578
  friend class ::PragmaOnceUnitState;
 
1579
  friend class ::PragmaOnce;
 
1580
  friend class ::CMatchSyntax;
 
1581
 
 
1582
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1583
 
 
1584
  CTree *_arg;
 
1585
 
 
1586
public:
 
1587
  /** Constructor.
 
1588
   *  \param arg The call argument. */
 
1589
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
1590
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
1591
  static const char *NodeId ();
 
1592
  /** Get the name of the node. Can be compared with NodeId(). */
 
1593
  const char *NodeName () const { return NodeId (); }
 
1594
  /** Get the number of sons. */
 
1595
  int Sons () const { return 1; }
 
1596
  /** Get the n-th son.
 
1597
   *  \param n The index of the son.
 
1598
   *  \return The n-th son or NULL. */
 
1599
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
1600
  /** Replace a son.
 
1601
   *  \param old_son The son to replace.
 
1602
   *  \param new_son The new son. */
 
1603
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
1604
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
1605
   private:
 
1606
  typedef CT_ImplicitCall CCExprResolveExpr;
 
1607
 
 
1608
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
1609
 public :
 
1610
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
1611
  typedef CT_ImplicitCall CExprResolveExpr;
 
1612
 
 
1613
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
1614
 public :
 
1615
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
1616
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1617
};
 
1618
 
 
1619
/** \class CT_String CTree.h Puma/CTree.h
 
1620
 *  Tree node representing a string literal. */
 
1621
 
 
1622
#line 1623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1623
} // closed Puma
 
1624
class CCExprResolve;
 
1625
class CExprResolve;
 
1626
class WinIfExists;
 
1627
class WinImportHandler;
 
1628
class WinMacros;
 
1629
class WinAsm;
 
1630
class WinDeclSpecs;
 
1631
class WinMemberExplSpec;
 
1632
class WinTypeKeywords;
 
1633
class WinFriend;
 
1634
class ExtAC;
 
1635
class ExtACBuilderCoupling;
 
1636
class ExtACSyntaxCoupling;
 
1637
class ExtACTree;
 
1638
class ExtACKeywords;
 
1639
class ExtGnu;
 
1640
class PragmaOnceUnitState;
 
1641
class PragmaOnce;
 
1642
class CMatchSyntax;
 
1643
namespace Puma {
 
1644
 
 
1645
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1646
 
 
1647
#line 1648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1648
} // closed Puma
 
1649
 
 
1650
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1651
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1652
#include "CCExprResolveH.ah"
 
1653
#endif
 
1654
namespace Puma {
 
1655
 
 
1656
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1657
 
 
1658
#line 1659 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1659
} // closed Puma
 
1660
 
 
1661
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1662
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1663
#include "CExprResolveH.ah"
 
1664
#endif
 
1665
namespace Puma {
 
1666
 
 
1667
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1132
1668
class CT_String : public CT_List, public CSemValue {
1133
 
#line 1134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1669
#line 1670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1670
  friend class ::CCExprResolve;
 
1671
  friend class ::CExprResolve;
1134
1672
  friend class ::WinIfExists;
1135
1673
  friend class ::WinImportHandler;
1136
1674
  friend class ::WinMacros;
1137
 
  friend class ::CMatchSyntax;
1138
 
  friend class ::ExtGnu;
 
1675
  friend class ::WinAsm;
 
1676
  friend class ::WinDeclSpecs;
 
1677
  friend class ::WinMemberExplSpec;
 
1678
  friend class ::WinTypeKeywords;
 
1679
  friend class ::WinFriend;
1139
1680
  friend class ::ExtAC;
1140
1681
  friend class ::ExtACBuilderCoupling;
1141
1682
  friend class ::ExtACSyntaxCoupling;
1142
1683
  friend class ::ExtACTree;
1143
1684
  friend class ::ExtACKeywords;
1144
 
  friend class ::WinAsm;
1145
 
  friend class ::WinDeclSpecs;
1146
 
  friend class ::WinMemberExplSpec;
1147
 
  friend class ::WinTypeKeywords;
 
1685
  friend class ::ExtGnu;
1148
1686
  friend class ::PragmaOnceUnitState;
1149
1687
  friend class ::PragmaOnce;
1150
 
  friend class ::CCExprResolve;
1151
 
  friend class ::CExprResolve;
 
1688
  friend class ::CMatchSyntax;
1152
1689
 
1153
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1690
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1154
1691
 
1155
1692
public:
 
1693
  /** Constructor. 
 
1694
   *  \param size The number of sub-strings. */
1156
1695
  CT_String (int size) : CT_List (size, 1) {}
 
1696
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1157
1697
  static const char *NodeId ();
 
1698
  /** Get the name of the node. Can be compared with NodeId(). */
1158
1699
  const char *NodeName () const { return NodeId (); }
1159
1700
 
 
1701
  /** Get the type of the string. 
 
1702
   *  \return The type or NULL. */
1160
1703
  CTypeInfo *Type () const { return type; }
 
1704
  /** Get the string value.
 
1705
   *  \return The value or NULL. */
1161
1706
  CExprValue *Value () const { return value; }
 
1707
  /** Get the semantic value info object.
 
1708
   *  \return The semantic value object or NULL. */
1162
1709
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
1710
  /** Get this. */
 
1711
  virtual CT_String *IsString () { return this; }
1163
1712
   private:
1164
1713
  typedef CT_String CCExprResolveExpr;
1165
1714
 
1166
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
1715
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1167
1716
 public :
1168
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
1717
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1169
1718
  typedef CT_String CExprResolveExpr;
1170
1719
 
1171
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
1720
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1172
1721
 public :
1173
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1174
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1722
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
1723
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1175
1724
};
1176
1725
 
 
1726
/** \class CT_WideString CTree.h Puma/CTree.h
 
1727
 *  Tree node representing a wide string literal. */
1177
1728
 
1178
 
#line 1179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1729
#line 1730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1179
1730
} // closed Puma
 
1731
class CCExprResolve;
 
1732
class CExprResolve;
1180
1733
class WinIfExists;
1181
1734
class WinImportHandler;
1182
1735
class WinMacros;
1183
 
class CMatchSyntax;
1184
 
class ExtGnu;
 
1736
class WinAsm;
 
1737
class WinDeclSpecs;
 
1738
class WinMemberExplSpec;
 
1739
class WinTypeKeywords;
 
1740
class WinFriend;
1185
1741
class ExtAC;
1186
1742
class ExtACBuilderCoupling;
1187
1743
class ExtACSyntaxCoupling;
1188
1744
class ExtACTree;
1189
1745
class ExtACKeywords;
1190
 
class WinAsm;
1191
 
class WinDeclSpecs;
1192
 
class WinMemberExplSpec;
1193
 
class WinTypeKeywords;
 
1746
class ExtGnu;
1194
1747
class PragmaOnceUnitState;
1195
1748
class PragmaOnce;
1196
 
class CCExprResolve;
1197
 
class CExprResolve;
1198
 
namespace Puma {
1199
 
 
1200
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1749
class CMatchSyntax;
 
1750
namespace Puma {
 
1751
 
 
1752
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1753
 
 
1754
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1755
} // closed Puma
 
1756
 
 
1757
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1758
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1759
#include "CCExprResolveH.ah"
 
1760
#endif
 
1761
namespace Puma {
 
1762
 
 
1763
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1764
 
 
1765
#line 1766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1766
} // closed Puma
 
1767
 
 
1768
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1769
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1770
#include "CExprResolveH.ah"
 
1771
#endif
 
1772
namespace Puma {
 
1773
 
 
1774
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1201
1775
class CT_WideString : public CT_String {
1202
 
#line 1203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1776
#line 1777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1777
  friend class ::CCExprResolve;
 
1778
  friend class ::CExprResolve;
1203
1779
  friend class ::WinIfExists;
1204
1780
  friend class ::WinImportHandler;
1205
1781
  friend class ::WinMacros;
1206
 
  friend class ::CMatchSyntax;
1207
 
  friend class ::ExtGnu;
 
1782
  friend class ::WinAsm;
 
1783
  friend class ::WinDeclSpecs;
 
1784
  friend class ::WinMemberExplSpec;
 
1785
  friend class ::WinTypeKeywords;
 
1786
  friend class ::WinFriend;
1208
1787
  friend class ::ExtAC;
1209
1788
  friend class ::ExtACBuilderCoupling;
1210
1789
  friend class ::ExtACSyntaxCoupling;
1211
1790
  friend class ::ExtACTree;
1212
1791
  friend class ::ExtACKeywords;
1213
 
  friend class ::WinAsm;
1214
 
  friend class ::WinDeclSpecs;
1215
 
  friend class ::WinMemberExplSpec;
1216
 
  friend class ::WinTypeKeywords;
 
1792
  friend class ::ExtGnu;
1217
1793
  friend class ::PragmaOnceUnitState;
1218
1794
  friend class ::PragmaOnce;
1219
 
  friend class ::CCExprResolve;
1220
 
  friend class ::CExprResolve;
 
1795
  friend class ::CMatchSyntax;
1221
1796
 
1222
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1797
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1223
1798
 
1224
1799
public:
 
1800
  /** Constructor.
 
1801
   *  \param size The number of sub-strings. */
1225
1802
  CT_WideString (int size) : CT_String (size) {}
 
1803
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1226
1804
  static const char *NodeId ();
 
1805
  /** Get the name of the node. Can be compared with NodeId(). */
1227
1806
  const char *NodeName () const { return NodeId (); }
1228
1807
   private:
1229
1808
  typedef CT_WideString CCExprResolveExpr;
1230
1809
 
1231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
1810
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1232
1811
 public :
1233
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
1812
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1234
1813
  typedef CT_WideString CExprResolveExpr;
1235
1814
 
1236
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
1815
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1237
1816
 public :
1238
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1239
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1817
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
1818
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1240
1819
};
1241
1820
 
 
1821
/** \class CT_Integer CTree.h Puma/CTree.h
 
1822
 *  Tree node representing an integer constant. */
1242
1823
 
1243
 
#line 1244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1824
#line 1825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1244
1825
} // closed Puma
 
1826
class CCExprResolve;
 
1827
class CExprResolve;
1245
1828
class WinIfExists;
1246
1829
class WinImportHandler;
1247
1830
class WinMacros;
1248
 
class CMatchSyntax;
1249
 
class ExtGnu;
 
1831
class WinAsm;
 
1832
class WinDeclSpecs;
 
1833
class WinMemberExplSpec;
 
1834
class WinTypeKeywords;
 
1835
class WinFriend;
1250
1836
class ExtAC;
1251
1837
class ExtACBuilderCoupling;
1252
1838
class ExtACSyntaxCoupling;
1253
1839
class ExtACTree;
1254
1840
class ExtACKeywords;
1255
 
class WinAsm;
1256
 
class WinDeclSpecs;
1257
 
class WinMemberExplSpec;
1258
 
class WinTypeKeywords;
 
1841
class ExtGnu;
1259
1842
class PragmaOnceUnitState;
1260
1843
class PragmaOnce;
1261
 
class CCExprResolve;
1262
 
class CExprResolve;
1263
 
namespace Puma {
1264
 
 
1265
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1844
class CMatchSyntax;
 
1845
namespace Puma {
 
1846
 
 
1847
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1848
 
 
1849
#line 1850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1850
} // closed Puma
 
1851
 
 
1852
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1853
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1854
#include "CCExprResolveH.ah"
 
1855
#endif
 
1856
namespace Puma {
 
1857
 
 
1858
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1859
 
 
1860
#line 1861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1861
} // closed Puma
 
1862
 
 
1863
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1864
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1865
#include "CExprResolveH.ah"
 
1866
#endif
 
1867
namespace Puma {
 
1868
 
 
1869
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1266
1870
class CT_Integer : public CT_Expression {
1267
 
#line 1268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1871
#line 1872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1872
  friend class ::CCExprResolve;
 
1873
  friend class ::CExprResolve;
1268
1874
  friend class ::WinIfExists;
1269
1875
  friend class ::WinImportHandler;
1270
1876
  friend class ::WinMacros;
1271
 
  friend class ::CMatchSyntax;
1272
 
  friend class ::ExtGnu;
 
1877
  friend class ::WinAsm;
 
1878
  friend class ::WinDeclSpecs;
 
1879
  friend class ::WinMemberExplSpec;
 
1880
  friend class ::WinTypeKeywords;
 
1881
  friend class ::WinFriend;
1273
1882
  friend class ::ExtAC;
1274
1883
  friend class ::ExtACBuilderCoupling;
1275
1884
  friend class ::ExtACSyntaxCoupling;
1276
1885
  friend class ::ExtACTree;
1277
1886
  friend class ::ExtACKeywords;
1278
 
  friend class ::WinAsm;
1279
 
  friend class ::WinDeclSpecs;
1280
 
  friend class ::WinMemberExplSpec;
1281
 
  friend class ::WinTypeKeywords;
 
1887
  friend class ::ExtGnu;
1282
1888
  friend class ::PragmaOnceUnitState;
1283
1889
  friend class ::PragmaOnce;
1284
 
  friend class ::CCExprResolve;
1285
 
  friend class ::CExprResolve;
 
1890
  friend class ::CMatchSyntax;
1286
1891
 
1287
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1892
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1288
1893
 
1289
1894
  CTree *_value;  // CT_Token
1290
1895
 
1291
1896
public:
1292
 
  CT_Integer (CTree *t) : _value (t) {}
 
1897
  /** Constructor.
 
1898
   *  \param token The token containing the integer value. */
 
1899
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
1900
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1293
1901
  static const char *NodeId ();
 
1902
  /** Get the name of the node. Can be compared with NodeId(). */
1294
1903
  const char *NodeName () const { return NodeId (); }
 
1904
  /** Get the number of sons. */
1295
1905
  int Sons () const { return _value ? 1 : 0; }
 
1906
  /** Get the n-th son.
 
1907
   *  \param n The index of the son.
 
1908
   *  \return The n-th son or NULL. */
1296
1909
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
1910
  /** Replace a son.
 
1911
   *  \param old_son The son to replace.
 
1912
   *  \param new_son The new son. */
1297
1913
  void ReplaceSon (CTree *old_son, CTree *new_son) 
1298
 
   { if (old_son == _value) _value = new_son; }
 
1914
   { CTree::ReplaceSon (_value, old_son, new_son); }
1299
1915
   private:
1300
1916
  typedef CT_Integer CCExprResolveExpr;
1301
1917
 
1302
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
1918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1303
1919
 public :
1304
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
1920
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1305
1921
  typedef CT_Integer CExprResolveExpr;
1306
1922
 
1307
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
1923
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1308
1924
 public :
1309
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1310
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1925
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
1926
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1311
1927
};
1312
1928
 
 
1929
/** \class CT_Character CTree.h Puma/CTree.h
 
1930
 *  Tree node representing a single character constant. */
1313
1931
 
1314
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1932
#line 1933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1315
1933
} // closed Puma
 
1934
class CCExprResolve;
 
1935
class CExprResolve;
1316
1936
class WinIfExists;
1317
1937
class WinImportHandler;
1318
1938
class WinMacros;
1319
 
class CMatchSyntax;
1320
 
class ExtGnu;
 
1939
class WinAsm;
 
1940
class WinDeclSpecs;
 
1941
class WinMemberExplSpec;
 
1942
class WinTypeKeywords;
 
1943
class WinFriend;
1321
1944
class ExtAC;
1322
1945
class ExtACBuilderCoupling;
1323
1946
class ExtACSyntaxCoupling;
1324
1947
class ExtACTree;
1325
1948
class ExtACKeywords;
1326
 
class WinAsm;
1327
 
class WinDeclSpecs;
1328
 
class WinMemberExplSpec;
1329
 
class WinTypeKeywords;
 
1949
class ExtGnu;
1330
1950
class PragmaOnceUnitState;
1331
1951
class PragmaOnce;
1332
 
class CCExprResolve;
1333
 
class CExprResolve;
1334
 
namespace Puma {
1335
 
 
1336
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1952
class CMatchSyntax;
 
1953
namespace Puma {
 
1954
 
 
1955
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1956
 
 
1957
#line 1958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1958
} // closed Puma
 
1959
 
 
1960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
1962
#include "CCExprResolveH.ah"
 
1963
#endif
 
1964
namespace Puma {
 
1965
 
 
1966
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
1967
 
 
1968
#line 1969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1969
} // closed Puma
 
1970
 
 
1971
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1972
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
1973
#include "CExprResolveH.ah"
 
1974
#endif
 
1975
namespace Puma {
 
1976
 
 
1977
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1337
1978
class CT_Character : public CT_Expression {
1338
 
#line 1339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1979
#line 1980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
1980
  friend class ::CCExprResolve;
 
1981
  friend class ::CExprResolve;
1339
1982
  friend class ::WinIfExists;
1340
1983
  friend class ::WinImportHandler;
1341
1984
  friend class ::WinMacros;
1342
 
  friend class ::CMatchSyntax;
1343
 
  friend class ::ExtGnu;
 
1985
  friend class ::WinAsm;
 
1986
  friend class ::WinDeclSpecs;
 
1987
  friend class ::WinMemberExplSpec;
 
1988
  friend class ::WinTypeKeywords;
 
1989
  friend class ::WinFriend;
1344
1990
  friend class ::ExtAC;
1345
1991
  friend class ::ExtACBuilderCoupling;
1346
1992
  friend class ::ExtACSyntaxCoupling;
1347
1993
  friend class ::ExtACTree;
1348
1994
  friend class ::ExtACKeywords;
1349
 
  friend class ::WinAsm;
1350
 
  friend class ::WinDeclSpecs;
1351
 
  friend class ::WinMemberExplSpec;
1352
 
  friend class ::WinTypeKeywords;
 
1995
  friend class ::ExtGnu;
1353
1996
  friend class ::PragmaOnceUnitState;
1354
1997
  friend class ::PragmaOnce;
1355
 
  friend class ::CCExprResolve;
1356
 
  friend class ::CExprResolve;
 
1998
  friend class ::CMatchSyntax;
1357
1999
 
1358
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2000
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1359
2001
 
1360
2002
  CTree *_value;  // CT_Token
1361
2003
 
1362
2004
public:
1363
 
  CT_Character (CTree *t) : _value (t) {}
 
2005
  /** Constructor.
 
2006
   *  \param token The token containing the character value. */
 
2007
  CT_Character (CTree *token) { AddSon (_value, token); }
 
2008
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1364
2009
  static const char *NodeId ();
 
2010
  /** Get the name of the node. Can be compared with NodeId(). */
1365
2011
  const char *NodeName () const { return NodeId (); }
 
2012
  /** Get the number of sons. */
1366
2013
  int Sons () const { return 1; }
 
2014
  /** Get the n-th son.
 
2015
   *  \param n The index of the son.
 
2016
   *  \return The n-th son or NULL. */
1367
2017
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
2018
  /** Replace a son.
 
2019
   *  \param old_son The son to replace.
 
2020
   *  \param new_son The new son. */
1368
2021
  void ReplaceSon (CTree *old_son, CTree *new_son) 
1369
 
   { if (old_son == _value) _value = new_son; }
 
2022
   { CTree::ReplaceSon (_value, old_son, new_son); }
1370
2023
   private:
1371
2024
  typedef CT_Character CCExprResolveExpr;
1372
2025
 
1373
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2026
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1374
2027
 public :
1375
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2028
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1376
2029
  typedef CT_Character CExprResolveExpr;
1377
2030
 
1378
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2031
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1379
2032
 public :
1380
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1381
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2033
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2034
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1382
2035
};
1383
2036
 
 
2037
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
2038
 *  Tree node representing a wide character constant. */
1384
2039
 
1385
 
#line 1386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2040
#line 2041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1386
2041
} // closed Puma
 
2042
class CCExprResolve;
 
2043
class CExprResolve;
1387
2044
class WinIfExists;
1388
2045
class WinImportHandler;
1389
2046
class WinMacros;
1390
 
class CMatchSyntax;
1391
 
class ExtGnu;
 
2047
class WinAsm;
 
2048
class WinDeclSpecs;
 
2049
class WinMemberExplSpec;
 
2050
class WinTypeKeywords;
 
2051
class WinFriend;
1392
2052
class ExtAC;
1393
2053
class ExtACBuilderCoupling;
1394
2054
class ExtACSyntaxCoupling;
1395
2055
class ExtACTree;
1396
2056
class ExtACKeywords;
1397
 
class WinAsm;
1398
 
class WinDeclSpecs;
1399
 
class WinMemberExplSpec;
1400
 
class WinTypeKeywords;
 
2057
class ExtGnu;
1401
2058
class PragmaOnceUnitState;
1402
2059
class PragmaOnce;
1403
 
class CCExprResolve;
1404
 
class CExprResolve;
1405
 
namespace Puma {
1406
 
 
1407
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2060
class CMatchSyntax;
 
2061
namespace Puma {
 
2062
 
 
2063
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2064
 
 
2065
#line 2066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2066
} // closed Puma
 
2067
 
 
2068
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2069
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2070
#include "CCExprResolveH.ah"
 
2071
#endif
 
2072
namespace Puma {
 
2073
 
 
2074
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2075
 
 
2076
#line 2077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2077
} // closed Puma
 
2078
 
 
2079
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2080
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2081
#include "CExprResolveH.ah"
 
2082
#endif
 
2083
namespace Puma {
 
2084
 
 
2085
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1408
2086
class CT_WideCharacter : public CT_Character {
1409
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2087
#line 2088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2088
  friend class ::CCExprResolve;
 
2089
  friend class ::CExprResolve;
1410
2090
  friend class ::WinIfExists;
1411
2091
  friend class ::WinImportHandler;
1412
2092
  friend class ::WinMacros;
1413
 
  friend class ::CMatchSyntax;
1414
 
  friend class ::ExtGnu;
 
2093
  friend class ::WinAsm;
 
2094
  friend class ::WinDeclSpecs;
 
2095
  friend class ::WinMemberExplSpec;
 
2096
  friend class ::WinTypeKeywords;
 
2097
  friend class ::WinFriend;
1415
2098
  friend class ::ExtAC;
1416
2099
  friend class ::ExtACBuilderCoupling;
1417
2100
  friend class ::ExtACSyntaxCoupling;
1418
2101
  friend class ::ExtACTree;
1419
2102
  friend class ::ExtACKeywords;
1420
 
  friend class ::WinAsm;
1421
 
  friend class ::WinDeclSpecs;
1422
 
  friend class ::WinMemberExplSpec;
1423
 
  friend class ::WinTypeKeywords;
 
2103
  friend class ::ExtGnu;
1424
2104
  friend class ::PragmaOnceUnitState;
1425
2105
  friend class ::PragmaOnce;
1426
 
  friend class ::CCExprResolve;
1427
 
  friend class ::CExprResolve;
1428
 
 
1429
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1430
 
 
1431
 
  CTree *_value;  // CT_Token
 
2106
  friend class ::CMatchSyntax;
 
2107
 
 
2108
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1432
2109
 
1433
2110
public:
1434
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
2111
  /** Constructor.
 
2112
   *  \param token The token containing the wide character value. */
 
2113
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
2114
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1435
2115
  static const char *NodeId ();
 
2116
  /** Get the name of the node. Can be compared with NodeId(). */
1436
2117
  const char *NodeName () const { return NodeId (); }
1437
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
1438
 
   { if (old_son == _value) _value = new_son; }
1439
2118
   private:
1440
2119
  typedef CT_WideCharacter CCExprResolveExpr;
1441
2120
 
1442
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2121
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1443
2122
 public :
1444
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2123
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1445
2124
  typedef CT_WideCharacter CExprResolveExpr;
1446
2125
 
1447
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2126
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1448
2127
 public :
1449
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1450
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2128
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2129
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1451
2130
};
1452
2131
 
 
2132
/** \class CT_Float CTree.h Puma/CTree.h
 
2133
 *  Tree node representing a floating point constant. */
1453
2134
 
1454
 
#line 1455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2135
#line 2136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1455
2136
} // closed Puma
 
2137
class CCExprResolve;
 
2138
class CExprResolve;
1456
2139
class WinIfExists;
1457
2140
class WinImportHandler;
1458
2141
class WinMacros;
1459
 
class CMatchSyntax;
1460
 
class ExtGnu;
 
2142
class WinAsm;
 
2143
class WinDeclSpecs;
 
2144
class WinMemberExplSpec;
 
2145
class WinTypeKeywords;
 
2146
class WinFriend;
1461
2147
class ExtAC;
1462
2148
class ExtACBuilderCoupling;
1463
2149
class ExtACSyntaxCoupling;
1464
2150
class ExtACTree;
1465
2151
class ExtACKeywords;
1466
 
class WinAsm;
1467
 
class WinDeclSpecs;
1468
 
class WinMemberExplSpec;
1469
 
class WinTypeKeywords;
 
2152
class ExtGnu;
1470
2153
class PragmaOnceUnitState;
1471
2154
class PragmaOnce;
1472
 
class CCExprResolve;
1473
 
class CExprResolve;
1474
 
namespace Puma {
1475
 
 
1476
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2155
class CMatchSyntax;
 
2156
namespace Puma {
 
2157
 
 
2158
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2159
 
 
2160
#line 2161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2161
} // closed Puma
 
2162
 
 
2163
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2164
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2165
#include "CCExprResolveH.ah"
 
2166
#endif
 
2167
namespace Puma {
 
2168
 
 
2169
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2170
 
 
2171
#line 2172 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2172
} // closed Puma
 
2173
 
 
2174
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2175
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2176
#include "CExprResolveH.ah"
 
2177
#endif
 
2178
namespace Puma {
 
2179
 
 
2180
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1477
2181
class CT_Float : public CT_Expression {
1478
 
#line 1479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2182
#line 2183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2183
  friend class ::CCExprResolve;
 
2184
  friend class ::CExprResolve;
1479
2185
  friend class ::WinIfExists;
1480
2186
  friend class ::WinImportHandler;
1481
2187
  friend class ::WinMacros;
1482
 
  friend class ::CMatchSyntax;
1483
 
  friend class ::ExtGnu;
 
2188
  friend class ::WinAsm;
 
2189
  friend class ::WinDeclSpecs;
 
2190
  friend class ::WinMemberExplSpec;
 
2191
  friend class ::WinTypeKeywords;
 
2192
  friend class ::WinFriend;
1484
2193
  friend class ::ExtAC;
1485
2194
  friend class ::ExtACBuilderCoupling;
1486
2195
  friend class ::ExtACSyntaxCoupling;
1487
2196
  friend class ::ExtACTree;
1488
2197
  friend class ::ExtACKeywords;
1489
 
  friend class ::WinAsm;
1490
 
  friend class ::WinDeclSpecs;
1491
 
  friend class ::WinMemberExplSpec;
1492
 
  friend class ::WinTypeKeywords;
 
2198
  friend class ::ExtGnu;
1493
2199
  friend class ::PragmaOnceUnitState;
1494
2200
  friend class ::PragmaOnce;
1495
 
  friend class ::CCExprResolve;
1496
 
  friend class ::CExprResolve;
 
2201
  friend class ::CMatchSyntax;
1497
2202
 
1498
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2203
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1499
2204
 
1500
2205
  CTree *_value;  // CT_Token
1501
2206
 
1502
2207
public:
1503
 
  CT_Float (CTree *t) : _value (t) {}
 
2208
  /** Constructor.
 
2209
   *  \param token The token containing the floating point value. */
 
2210
  CT_Float (CTree *token) { AddSon (_value, token); }
 
2211
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1504
2212
  static const char *NodeId ();
 
2213
  /** Get the name of the node. Can be compared with NodeId(). */
1505
2214
  const char *NodeName () const { return NodeId (); }
 
2215
  /** Get the number of sons. */
1506
2216
  int Sons () const { return 1; }
 
2217
  /** Get the n-th son.
 
2218
   *  \param n The index of the son.
 
2219
   *  \return The n-th son or NULL. */
1507
2220
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
2221
  /** Replace a son.
 
2222
   *  \param old_son The son to replace.
 
2223
   *  \param new_son The new son. */
1508
2224
  void ReplaceSon (CTree *old_son, CTree *new_son) 
1509
 
   { if (old_son == _value) _value = new_son; }
 
2225
   { CTree::ReplaceSon (_value, old_son, new_son); }
1510
2226
   private:
1511
2227
  typedef CT_Float CCExprResolveExpr;
1512
2228
 
1513
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2229
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1514
2230
 public :
1515
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2231
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1516
2232
  typedef CT_Float CExprResolveExpr;
1517
2233
 
1518
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2234
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1519
2235
 public :
1520
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1521
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2236
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2237
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1522
2238
};
1523
2239
 
 
2240
/** \class CT_Bool CTree.h Puma/CTree.h
 
2241
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
1524
2242
 
1525
 
#line 1526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2243
#line 2244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1526
2244
} // closed Puma
 
2245
class CCExprResolve;
 
2246
class CExprResolve;
1527
2247
class WinIfExists;
1528
2248
class WinImportHandler;
1529
2249
class WinMacros;
1530
 
class CMatchSyntax;
1531
 
class ExtGnu;
 
2250
class WinAsm;
 
2251
class WinDeclSpecs;
 
2252
class WinMemberExplSpec;
 
2253
class WinTypeKeywords;
 
2254
class WinFriend;
1532
2255
class ExtAC;
1533
2256
class ExtACBuilderCoupling;
1534
2257
class ExtACSyntaxCoupling;
1535
2258
class ExtACTree;
1536
2259
class ExtACKeywords;
1537
 
class WinAsm;
1538
 
class WinDeclSpecs;
1539
 
class WinMemberExplSpec;
1540
 
class WinTypeKeywords;
 
2260
class ExtGnu;
1541
2261
class PragmaOnceUnitState;
1542
2262
class PragmaOnce;
1543
 
class CCExprResolve;
1544
 
class CExprResolve;
1545
 
namespace Puma {
1546
 
 
1547
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2263
class CMatchSyntax;
 
2264
namespace Puma {
 
2265
 
 
2266
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2267
 
 
2268
#line 2269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2269
} // closed Puma
 
2270
 
 
2271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2273
#include "CCExprResolveH.ah"
 
2274
#endif
 
2275
namespace Puma {
 
2276
 
 
2277
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2278
 
 
2279
#line 2280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2280
} // closed Puma
 
2281
 
 
2282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2284
#include "CExprResolveH.ah"
 
2285
#endif
 
2286
namespace Puma {
 
2287
 
 
2288
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1548
2289
class CT_Bool : public CT_Expression {
1549
 
#line 1550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2290
#line 2291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2291
  friend class ::CCExprResolve;
 
2292
  friend class ::CExprResolve;
1550
2293
  friend class ::WinIfExists;
1551
2294
  friend class ::WinImportHandler;
1552
2295
  friend class ::WinMacros;
1553
 
  friend class ::CMatchSyntax;
1554
 
  friend class ::ExtGnu;
 
2296
  friend class ::WinAsm;
 
2297
  friend class ::WinDeclSpecs;
 
2298
  friend class ::WinMemberExplSpec;
 
2299
  friend class ::WinTypeKeywords;
 
2300
  friend class ::WinFriend;
1555
2301
  friend class ::ExtAC;
1556
2302
  friend class ::ExtACBuilderCoupling;
1557
2303
  friend class ::ExtACSyntaxCoupling;
1558
2304
  friend class ::ExtACTree;
1559
2305
  friend class ::ExtACKeywords;
1560
 
  friend class ::WinAsm;
1561
 
  friend class ::WinDeclSpecs;
1562
 
  friend class ::WinMemberExplSpec;
1563
 
  friend class ::WinTypeKeywords;
 
2306
  friend class ::ExtGnu;
1564
2307
  friend class ::PragmaOnceUnitState;
1565
2308
  friend class ::PragmaOnce;
1566
 
  friend class ::CCExprResolve;
1567
 
  friend class ::CExprResolve;
 
2309
  friend class ::CMatchSyntax;
1568
2310
 
1569
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2311
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1570
2312
 
1571
2313
  CTree *_value;  // CT_Token
1572
2314
 
1573
2315
public:
1574
 
  CT_Bool (CTree *t) : _value (t) {}
 
2316
  /** Constructor.
 
2317
   *  \param token The token containing the boolean value. */
 
2318
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
2319
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1575
2320
  static const char *NodeId ();
 
2321
  /** Get the name of the node. Can be compared with NodeId(). */
1576
2322
  const char *NodeName () const { return NodeId (); }
 
2323
  /** Get the number of sons. */
1577
2324
  int Sons () const { return 1; }
 
2325
  /** Get the n-th son.
 
2326
   *  \param n The index of the son.
 
2327
   *  \return The n-th son or NULL. */
1578
2328
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
2329
  /** Replace a son.
 
2330
   *  \param old_son The son to replace.
 
2331
   *  \param new_son The new son. */
1579
2332
  void ReplaceSon (CTree *old_son, CTree *new_son) 
1580
 
   { if (old_son == _value) _value = new_son; }
 
2333
   { CTree::ReplaceSon (_value, old_son, new_son); }
1581
2334
   private:
1582
2335
  typedef CT_Bool CCExprResolveExpr;
1583
2336
 
1584
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2337
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1585
2338
 public :
1586
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2339
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1587
2340
  typedef CT_Bool CExprResolveExpr;
1588
2341
 
1589
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2342
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1590
2343
 public :
1591
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1592
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2344
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2345
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1593
2346
};
1594
2347
 
 
2348
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
2349
 *  Tree node representing a braced expression, e.g. (a+b). */
1595
2350
 
1596
 
#line 1597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2351
#line 2352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1597
2352
} // closed Puma
 
2353
class CCExprResolve;
 
2354
class CExprResolve;
1598
2355
class WinIfExists;
1599
2356
class WinImportHandler;
1600
2357
class WinMacros;
1601
 
class CMatchSyntax;
1602
 
class ExtGnu;
 
2358
class WinAsm;
 
2359
class WinDeclSpecs;
 
2360
class WinMemberExplSpec;
 
2361
class WinTypeKeywords;
 
2362
class WinFriend;
1603
2363
class ExtAC;
1604
2364
class ExtACBuilderCoupling;
1605
2365
class ExtACSyntaxCoupling;
1606
2366
class ExtACTree;
1607
2367
class ExtACKeywords;
1608
 
class WinAsm;
1609
 
class WinDeclSpecs;
1610
 
class WinMemberExplSpec;
1611
 
class WinTypeKeywords;
 
2368
class ExtGnu;
1612
2369
class PragmaOnceUnitState;
1613
2370
class PragmaOnce;
1614
 
class CCExprResolve;
1615
 
class CExprResolve;
1616
 
namespace Puma {
1617
 
 
1618
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2371
class CMatchSyntax;
 
2372
namespace Puma {
 
2373
 
 
2374
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2375
 
 
2376
#line 2377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2377
} // closed Puma
 
2378
 
 
2379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2381
#include "CCExprResolveH.ah"
 
2382
#endif
 
2383
namespace Puma {
 
2384
 
 
2385
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2386
 
 
2387
#line 2388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2388
} // closed Puma
 
2389
 
 
2390
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2391
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2392
#include "CExprResolveH.ah"
 
2393
#endif
 
2394
namespace Puma {
 
2395
 
 
2396
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1619
2397
class CT_BracedExpr : public CT_Expression {
1620
 
#line 1621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2398
#line 2399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2399
  friend class ::CCExprResolve;
 
2400
  friend class ::CExprResolve;
1621
2401
  friend class ::WinIfExists;
1622
2402
  friend class ::WinImportHandler;
1623
2403
  friend class ::WinMacros;
1624
 
  friend class ::CMatchSyntax;
1625
 
  friend class ::ExtGnu;
 
2404
  friend class ::WinAsm;
 
2405
  friend class ::WinDeclSpecs;
 
2406
  friend class ::WinMemberExplSpec;
 
2407
  friend class ::WinTypeKeywords;
 
2408
  friend class ::WinFriend;
1626
2409
  friend class ::ExtAC;
1627
2410
  friend class ::ExtACBuilderCoupling;
1628
2411
  friend class ::ExtACSyntaxCoupling;
1629
2412
  friend class ::ExtACTree;
1630
2413
  friend class ::ExtACKeywords;
1631
 
  friend class ::WinAsm;
1632
 
  friend class ::WinDeclSpecs;
1633
 
  friend class ::WinMemberExplSpec;
1634
 
  friend class ::WinTypeKeywords;
 
2414
  friend class ::ExtGnu;
1635
2415
  friend class ::PragmaOnceUnitState;
1636
2416
  friend class ::PragmaOnce;
1637
 
  friend class ::CCExprResolve;
1638
 
  friend class ::CExprResolve;
 
2417
  friend class ::CMatchSyntax;
1639
2418
 
1640
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2419
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1641
2420
 
1642
2421
  CTree *sons[3]; // open, expr, close
1643
2422
 
1644
2423
public:
 
2424
  /** Constructor.
 
2425
   *  \param o The opening brace.
 
2426
   *  \param e The enclosed expression.
 
2427
   *  \param c The closing brace. */
1645
2428
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
1646
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
2429
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
1647
2430
  }
 
2431
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1648
2432
  static const char *NodeId ();
 
2433
  /** Get the name of the node. Can be compared with NodeId(). */
1649
2434
  const char *NodeName () const { return NodeId (); }
 
2435
  /** Get the number of sons. */
1650
2436
  int Sons () const { return 3; }
 
2437
  /** Get the n-th son.
 
2438
   *  \param n The index of the son.
 
2439
   *  \return The n-th son or NULL. */
1651
2440
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
2441
  /** Get the enclosed expression. */
1652
2442
  CTree *Expr () const { return sons[1]; }
 
2443
  /** Get the type of the enclosed expression. */
1653
2444
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
2445
  /** Get the value of the enclosed expression. */
1654
2446
  CExprValue *Value () const { return Expr ()->Value (); }
 
2447
  /** Get the semantic value object. */
1655
2448
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
2449
  /** Replace a son.
 
2450
   *  \param old_son The son to replace.
 
2451
   *  \param new_son The new son. */
1656
2452
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
1657
2453
    CTree::ReplaceSon (sons, 3, old_son, new_son);
1658
2454
  }
1659
2455
   private:
1660
2456
  typedef CT_BracedExpr CCExprResolveExpr;
1661
2457
 
1662
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2458
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1663
2459
 public :
1664
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2460
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1665
2461
  typedef CT_BracedExpr CExprResolveExpr;
1666
2462
 
1667
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2463
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1668
2464
 public :
1669
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1670
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2465
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2466
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1671
2467
};
1672
2468
 
 
2469
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
2470
 *  Base class for all tree nodes representing a name. */
1673
2471
 
1674
 
#line 1675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2472
#line 2473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1675
2473
} // closed Puma
 
2474
class CCExprResolve;
 
2475
class CExprResolve;
1676
2476
class WinIfExists;
1677
2477
class WinImportHandler;
1678
2478
class WinMacros;
1679
 
class CMatchSyntax;
1680
 
class ExtGnu;
 
2479
class WinAsm;
 
2480
class WinDeclSpecs;
 
2481
class WinMemberExplSpec;
 
2482
class WinTypeKeywords;
 
2483
class WinFriend;
1681
2484
class ExtAC;
1682
2485
class ExtACBuilderCoupling;
1683
2486
class ExtACSyntaxCoupling;
1684
2487
class ExtACTree;
1685
2488
class ExtACKeywords;
1686
 
class WinAsm;
1687
 
class WinDeclSpecs;
1688
 
class WinMemberExplSpec;
1689
 
class WinTypeKeywords;
 
2489
class ExtGnu;
1690
2490
class PragmaOnceUnitState;
1691
2491
class PragmaOnce;
1692
 
class CCExprResolve;
1693
 
class CExprResolve;
1694
 
namespace Puma {
1695
 
 
1696
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2492
class CMatchSyntax;
 
2493
namespace Puma {
 
2494
 
 
2495
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2496
 
 
2497
#line 2498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2498
} // closed Puma
 
2499
 
 
2500
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2501
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2502
#include "CCExprResolveH.ah"
 
2503
#endif
 
2504
namespace Puma {
 
2505
 
 
2506
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2507
 
 
2508
#line 2509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2509
} // closed Puma
 
2510
 
 
2511
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2512
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2513
#include "CExprResolveH.ah"
 
2514
#endif
 
2515
namespace Puma {
 
2516
 
 
2517
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1697
2518
class CT_SimpleName : public CT_List, public Printable, 
1698
2519
                      public CSemValue, public CSemObject {
1699
 
#line 1700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2520
#line 2521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2521
  friend class ::CCExprResolve;
 
2522
  friend class ::CExprResolve;
1700
2523
  friend class ::WinIfExists;
1701
2524
  friend class ::WinImportHandler;
1702
2525
  friend class ::WinMacros;
1703
 
  friend class ::CMatchSyntax;
1704
 
  friend class ::ExtGnu;
 
2526
  friend class ::WinAsm;
 
2527
  friend class ::WinDeclSpecs;
 
2528
  friend class ::WinMemberExplSpec;
 
2529
  friend class ::WinTypeKeywords;
 
2530
  friend class ::WinFriend;
1705
2531
  friend class ::ExtAC;
1706
2532
  friend class ::ExtACBuilderCoupling;
1707
2533
  friend class ::ExtACSyntaxCoupling;
1708
2534
  friend class ::ExtACTree;
1709
2535
  friend class ::ExtACKeywords;
1710
 
  friend class ::WinAsm;
1711
 
  friend class ::WinDeclSpecs;
1712
 
  friend class ::WinMemberExplSpec;
1713
 
  friend class ::WinTypeKeywords;
 
2536
  friend class ::ExtGnu;
1714
2537
  friend class ::PragmaOnceUnitState;
1715
2538
  friend class ::PragmaOnce;
1716
 
  friend class ::CCExprResolve;
1717
 
  friend class ::CExprResolve;
 
2539
  friend class ::CMatchSyntax;
1718
2540
 
1719
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2541
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1720
2542
 
1721
2543
protected:
 
2544
  /** Constructor.
 
2545
   *  \param size The number of sub-names (for qualified names). */
1722
2546
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
2547
  /** Constructor.
 
2548
   *  \param size The number of sub-names (for qualified names). 
 
2549
   *  \param properties Additional name list properties (for root qualified names). */
1723
2550
  CT_SimpleName (int size, int properties) : 
1724
2551
    CT_List (size, 2, properties) {}
1725
2552
  
1726
2553
public:
 
2554
  /** Constructor.
 
2555
   *  \param n The sub-tree containing the name. */
1727
2556
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
2557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1728
2558
  static const char *NodeId ();
 
2559
  /** Get the name of the node. Can be compared with NodeId(). */
1729
2560
  const char *NodeName () const { return NodeId (); }
 
2561
  /** Get the string containing the name. */
1730
2562
  virtual const char *Text () const 
1731
2563
   { return Son (Sons ()-1)->token ()->text (); }
 
2564
  /** Print the name on the given stream. 
 
2565
   *  \param os The output stream. */
1732
2566
  virtual void print (ostream &os) const { os << Text (); }
 
2567
  /** Get this. */
1733
2568
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
2569
  /** Get the type of the entity represented by the name. */
1734
2570
  CTypeInfo *Type () const { return type; }
 
2571
  /** Get the value of the entity represented by the name. */ 
1735
2572
  CExprValue *Value () const { return value; }
 
2573
  /** Get the sematic value information object. */
1736
2574
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
2575
  /** Get the sematic information object. */
1737
2576
  CSemObject *SemObject () const { return (CSemObject*)this; }
1738
 
  // special new / delete with reusing memory
1739
 
  void *operator new (size_t);
1740
 
  void  operator delete (void *);
1741
 
  // classification function
 
2577
  /** Get this. */
1742
2578
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
2579
 
 
2580
public:
 
2581
  /** Own new operator reusing memory. */
 
2582
  void *operator new (size_t);
 
2583
  /** Own delete operator. */
 
2584
  void operator delete (void *);
1743
2585
   private:
1744
2586
  typedef CT_SimpleName CCExprResolveExpr;
1745
2587
 
1746
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2588
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1747
2589
 public :
1748
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2590
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1749
2591
  typedef CT_SimpleName CExprResolveExpr;
1750
2592
 
1751
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2593
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1752
2594
 public :
1753
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1754
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2595
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2596
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1755
2597
};
1756
2598
 
 
2599
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
2600
 *  Base class for tree nodes representing a special name, like destructor names. */
1757
2601
 
1758
 
#line 1759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2602
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1759
2603
} // closed Puma
 
2604
class CCExprResolve;
 
2605
class CExprResolve;
1760
2606
class WinIfExists;
1761
2607
class WinImportHandler;
1762
2608
class WinMacros;
1763
 
class CMatchSyntax;
1764
 
class ExtGnu;
 
2609
class WinAsm;
 
2610
class WinDeclSpecs;
 
2611
class WinMemberExplSpec;
 
2612
class WinTypeKeywords;
 
2613
class WinFriend;
1765
2614
class ExtAC;
1766
2615
class ExtACBuilderCoupling;
1767
2616
class ExtACSyntaxCoupling;
1768
2617
class ExtACTree;
1769
2618
class ExtACKeywords;
1770
 
class WinAsm;
1771
 
class WinDeclSpecs;
1772
 
class WinMemberExplSpec;
1773
 
class WinTypeKeywords;
 
2619
class ExtGnu;
1774
2620
class PragmaOnceUnitState;
1775
2621
class PragmaOnce;
1776
 
class CCExprResolve;
1777
 
class CExprResolve;
1778
 
namespace Puma {
1779
 
 
1780
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2622
class CMatchSyntax;
 
2623
namespace Puma {
 
2624
 
 
2625
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2626
 
 
2627
#line 2628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2628
} // closed Puma
 
2629
 
 
2630
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2631
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2632
#include "CCExprResolveH.ah"
 
2633
#endif
 
2634
namespace Puma {
 
2635
 
 
2636
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2637
 
 
2638
#line 2639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2639
} // closed Puma
 
2640
 
 
2641
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2642
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2643
#include "CExprResolveH.ah"
 
2644
#endif
 
2645
namespace Puma {
 
2646
 
 
2647
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1781
2648
class CT_SpecialName : public CT_SimpleName {
1782
 
#line 1783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2649
#line 2650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2650
  friend class ::CCExprResolve;
 
2651
  friend class ::CExprResolve;
1783
2652
  friend class ::WinIfExists;
1784
2653
  friend class ::WinImportHandler;
1785
2654
  friend class ::WinMacros;
1786
 
  friend class ::CMatchSyntax;
1787
 
  friend class ::ExtGnu;
 
2655
  friend class ::WinAsm;
 
2656
  friend class ::WinDeclSpecs;
 
2657
  friend class ::WinMemberExplSpec;
 
2658
  friend class ::WinTypeKeywords;
 
2659
  friend class ::WinFriend;
1788
2660
  friend class ::ExtAC;
1789
2661
  friend class ::ExtACBuilderCoupling;
1790
2662
  friend class ::ExtACSyntaxCoupling;
1791
2663
  friend class ::ExtACTree;
1792
2664
  friend class ::ExtACKeywords;
1793
 
  friend class ::WinAsm;
1794
 
  friend class ::WinDeclSpecs;
1795
 
  friend class ::WinMemberExplSpec;
1796
 
  friend class ::WinTypeKeywords;
 
2665
  friend class ::ExtGnu;
1797
2666
  friend class ::PragmaOnceUnitState;
1798
2667
  friend class ::PragmaOnce;
1799
 
  friend class ::CCExprResolve;
1800
 
  friend class ::CExprResolve;
 
2668
  friend class ::CMatchSyntax;
1801
2669
 
1802
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2670
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1803
2671
 
1804
2672
  char *_name;
1805
2673
  
1806
2674
protected:
 
2675
  /** Constructor.
 
2676
   *  \param size The number of sub-names (for qualified names). */
1807
2677
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
1808
2678
  
1809
2679
public:
 
2680
  /** Destructor. Deletes the name string. */
1810
2681
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
2682
  /** Get the string containing the name. */
1811
2683
  const char *Text () const { return _name; }
 
2684
  /** Set the name. The name is copied.
 
2685
   *  \param n The name. */
1812
2686
  void Name (const char *n) { 
1813
2687
    if (n) { 
1814
2688
      _name = new char[strlen(n) + 1];
1815
2689
      strcpy (_name,n);
1816
2690
    }
1817
2691
  }
1818
 
  // special new / delete with reusing memory
 
2692
 
 
2693
public:
 
2694
  /** Own new operator reusing memory. */
1819
2695
  void *operator new (size_t);
1820
 
  void  operator delete (void *);
 
2696
  /** Own delete operator. */
 
2697
  void operator delete (void *);
1821
2698
   private:
1822
2699
  typedef CT_SpecialName CCExprResolveExpr;
1823
2700
 
1824
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2701
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1825
2702
 public :
1826
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2703
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1827
2704
  typedef CT_SpecialName CExprResolveExpr;
1828
2705
 
1829
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2706
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1830
2707
 public :
1831
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1832
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2708
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2709
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1833
2710
};
1834
2711
 
 
2712
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
2713
 *  Tree node representing a private name. Private names 
 
2714
 *  are generated names for abstract declarators etc. */
1835
2715
 
1836
 
#line 1837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2716
#line 2717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1837
2717
} // closed Puma
 
2718
class CCExprResolve;
 
2719
class CExprResolve;
1838
2720
class WinIfExists;
1839
2721
class WinImportHandler;
1840
2722
class WinMacros;
1841
 
class CMatchSyntax;
1842
 
class ExtGnu;
 
2723
class WinAsm;
 
2724
class WinDeclSpecs;
 
2725
class WinMemberExplSpec;
 
2726
class WinTypeKeywords;
 
2727
class WinFriend;
1843
2728
class ExtAC;
1844
2729
class ExtACBuilderCoupling;
1845
2730
class ExtACSyntaxCoupling;
1846
2731
class ExtACTree;
1847
2732
class ExtACKeywords;
1848
 
class WinAsm;
1849
 
class WinDeclSpecs;
1850
 
class WinMemberExplSpec;
1851
 
class WinTypeKeywords;
 
2733
class ExtGnu;
1852
2734
class PragmaOnceUnitState;
1853
2735
class PragmaOnce;
1854
 
class CCExprResolve;
1855
 
class CExprResolve;
1856
 
namespace Puma {
1857
 
 
1858
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2736
class CMatchSyntax;
 
2737
namespace Puma {
 
2738
 
 
2739
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2740
 
 
2741
#line 2742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2742
} // closed Puma
 
2743
 
 
2744
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2745
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2746
#include "CCExprResolveH.ah"
 
2747
#endif
 
2748
namespace Puma {
 
2749
 
 
2750
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2751
 
 
2752
#line 2753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2753
} // closed Puma
 
2754
 
 
2755
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2756
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2757
#include "CExprResolveH.ah"
 
2758
#endif
 
2759
namespace Puma {
 
2760
 
 
2761
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1859
2762
class CT_PrivateName : public CT_SpecialName {
1860
 
#line 1861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2763
#line 2764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2764
  friend class ::CCExprResolve;
 
2765
  friend class ::CExprResolve;
1861
2766
  friend class ::WinIfExists;
1862
2767
  friend class ::WinImportHandler;
1863
2768
  friend class ::WinMacros;
1864
 
  friend class ::CMatchSyntax;
1865
 
  friend class ::ExtGnu;
 
2769
  friend class ::WinAsm;
 
2770
  friend class ::WinDeclSpecs;
 
2771
  friend class ::WinMemberExplSpec;
 
2772
  friend class ::WinTypeKeywords;
 
2773
  friend class ::WinFriend;
1866
2774
  friend class ::ExtAC;
1867
2775
  friend class ::ExtACBuilderCoupling;
1868
2776
  friend class ::ExtACSyntaxCoupling;
1869
2777
  friend class ::ExtACTree;
1870
2778
  friend class ::ExtACKeywords;
1871
 
  friend class ::WinAsm;
1872
 
  friend class ::WinDeclSpecs;
1873
 
  friend class ::WinMemberExplSpec;
1874
 
  friend class ::WinTypeKeywords;
 
2779
  friend class ::ExtGnu;
1875
2780
  friend class ::PragmaOnceUnitState;
1876
2781
  friend class ::PragmaOnce;
1877
 
  friend class ::CCExprResolve;
1878
 
  friend class ::CExprResolve;
 
2782
  friend class ::CMatchSyntax;
1879
2783
 
1880
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2784
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1881
2785
 
1882
2786
public:
 
2787
  /** Constructor.
 
2788
   *  \param n The private (generated) name. */
1883
2789
  CT_PrivateName (const char *n) { Name (n); }
 
2790
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1884
2791
  static const char *NodeId ();
 
2792
  /** Get the name of the node. Can be compared with NodeId(). */
1885
2793
  const char *NodeName () const { return NodeId (); }
 
2794
  /** Get the number of sons. */
1886
2795
  int Sons () const { return 0; }
 
2796
  /** Get the n-th son.
 
2797
   *  \param n The index of the son.
 
2798
   *  \return The n-th son or NULL. */
1887
2799
  CTree *Son (int n) const { return (CTree*)0; }
1888
 
  // special new / delete with reusing memory
 
2800
 
 
2801
public:
 
2802
  /** Own new operator reusing memory. */
1889
2803
  void *operator new (size_t);
1890
 
  void  operator delete (void *);
 
2804
  /** Own delete operator. */
 
2805
  void operator delete (void *);
1891
2806
   private:
1892
2807
  typedef CT_PrivateName CCExprResolveExpr;
1893
2808
 
1894
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2809
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1895
2810
 public :
1896
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2811
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1897
2812
  typedef CT_PrivateName CExprResolveExpr;
1898
2813
 
1899
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2814
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1900
2815
 public :
1901
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1902
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2816
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2817
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1903
2818
};
1904
2819
 
 
2820
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
2821
 *  Tree node representing a destructor name. */
1905
2822
 
1906
 
#line 1907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2823
#line 2824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1907
2824
} // closed Puma
 
2825
class CCExprResolve;
 
2826
class CExprResolve;
1908
2827
class WinIfExists;
1909
2828
class WinImportHandler;
1910
2829
class WinMacros;
1911
 
class CMatchSyntax;
1912
 
class ExtGnu;
 
2830
class WinAsm;
 
2831
class WinDeclSpecs;
 
2832
class WinMemberExplSpec;
 
2833
class WinTypeKeywords;
 
2834
class WinFriend;
1913
2835
class ExtAC;
1914
2836
class ExtACBuilderCoupling;
1915
2837
class ExtACSyntaxCoupling;
1916
2838
class ExtACTree;
1917
2839
class ExtACKeywords;
1918
 
class WinAsm;
1919
 
class WinDeclSpecs;
1920
 
class WinMemberExplSpec;
1921
 
class WinTypeKeywords;
 
2840
class ExtGnu;
1922
2841
class PragmaOnceUnitState;
1923
2842
class PragmaOnce;
1924
 
class CCExprResolve;
1925
 
class CExprResolve;
1926
 
namespace Puma {
1927
 
 
1928
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2843
class CMatchSyntax;
 
2844
namespace Puma {
 
2845
 
 
2846
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2847
 
 
2848
#line 2849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2849
} // closed Puma
 
2850
 
 
2851
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2852
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2853
#include "CCExprResolveH.ah"
 
2854
#endif
 
2855
namespace Puma {
 
2856
 
 
2857
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2858
 
 
2859
#line 2860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2860
} // closed Puma
 
2861
 
 
2862
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2863
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2864
#include "CExprResolveH.ah"
 
2865
#endif
 
2866
namespace Puma {
 
2867
 
 
2868
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1929
2869
class CT_DestructorName : public CT_SpecialName {
1930
 
#line 1931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2870
#line 2871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2871
  friend class ::CCExprResolve;
 
2872
  friend class ::CExprResolve;
1931
2873
  friend class ::WinIfExists;
1932
2874
  friend class ::WinImportHandler;
1933
2875
  friend class ::WinMacros;
1934
 
  friend class ::CMatchSyntax;
1935
 
  friend class ::ExtGnu;
 
2876
  friend class ::WinAsm;
 
2877
  friend class ::WinDeclSpecs;
 
2878
  friend class ::WinMemberExplSpec;
 
2879
  friend class ::WinTypeKeywords;
 
2880
  friend class ::WinFriend;
1936
2881
  friend class ::ExtAC;
1937
2882
  friend class ::ExtACBuilderCoupling;
1938
2883
  friend class ::ExtACSyntaxCoupling;
1939
2884
  friend class ::ExtACTree;
1940
2885
  friend class ::ExtACKeywords;
1941
 
  friend class ::WinAsm;
1942
 
  friend class ::WinDeclSpecs;
1943
 
  friend class ::WinMemberExplSpec;
1944
 
  friend class ::WinTypeKeywords;
 
2886
  friend class ::ExtGnu;
1945
2887
  friend class ::PragmaOnceUnitState;
1946
2888
  friend class ::PragmaOnce;
1947
 
  friend class ::CCExprResolve;
1948
 
  friend class ::CExprResolve;
 
2889
  friend class ::CMatchSyntax;
1949
2890
 
1950
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2891
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1951
2892
 
1952
2893
public:
1953
 
  CT_DestructorName (CTree *, CTree *);
 
2894
  /** Constructor.
 
2895
   *  \param t The tilde operator.
 
2896
   *  \param n The class name. */
 
2897
  CT_DestructorName (CTree *t, CTree *n);
 
2898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
1954
2899
  static const char *NodeId ();
 
2900
  /** Get the name of the node. Can be compared with NodeId(). */
1955
2901
  const char *NodeName () const { return NodeId (); }
1956
 
  // special new / delete with reusing memory
 
2902
 
 
2903
public:
 
2904
  /** Own new operator reusing memory. */
1957
2905
  void *operator new (size_t);
1958
 
  void  operator delete (void *);
 
2906
  /** Own delete operator. */
 
2907
  void operator delete (void *);
1959
2908
   private:
1960
2909
  typedef CT_DestructorName CCExprResolveExpr;
1961
2910
 
1962
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
2911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1963
2912
 public :
1964
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
2913
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
1965
2914
  typedef CT_DestructorName CExprResolveExpr;
1966
2915
 
1967
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
2916
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1968
2917
 public :
1969
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1970
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2918
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
2919
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1971
2920
};
1972
2921
 
 
2922
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
2923
 *  Tree node representing a template name. */
1973
2924
 
1974
 
#line 1975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2925
#line 2926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1975
2926
} // closed Puma
 
2927
class CCExprResolve;
 
2928
class CExprResolve;
1976
2929
class WinIfExists;
1977
2930
class WinImportHandler;
1978
2931
class WinMacros;
1979
 
class CMatchSyntax;
1980
 
class ExtGnu;
 
2932
class WinAsm;
 
2933
class WinDeclSpecs;
 
2934
class WinMemberExplSpec;
 
2935
class WinTypeKeywords;
 
2936
class WinFriend;
1981
2937
class ExtAC;
1982
2938
class ExtACBuilderCoupling;
1983
2939
class ExtACSyntaxCoupling;
1984
2940
class ExtACTree;
1985
2941
class ExtACKeywords;
1986
 
class WinAsm;
1987
 
class WinDeclSpecs;
1988
 
class WinMemberExplSpec;
1989
 
class WinTypeKeywords;
 
2942
class ExtGnu;
1990
2943
class PragmaOnceUnitState;
1991
2944
class PragmaOnce;
1992
 
class CCExprResolve;
1993
 
class CExprResolve;
1994
 
namespace Puma {
1995
 
 
1996
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2945
class CMatchSyntax;
 
2946
namespace Puma {
 
2947
 
 
2948
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2949
 
 
2950
#line 2951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2951
} // closed Puma
 
2952
 
 
2953
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2954
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
2955
#include "CCExprResolveH.ah"
 
2956
#endif
 
2957
namespace Puma {
 
2958
 
 
2959
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2960
 
 
2961
#line 2962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2962
} // closed Puma
 
2963
 
 
2964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
2966
#include "CExprResolveH.ah"
 
2967
#endif
 
2968
namespace Puma {
 
2969
 
 
2970
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1997
2971
class CT_TemplateName : public CT_SpecialName {
1998
 
#line 1999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2972
#line 2973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
2973
  friend class ::CCExprResolve;
 
2974
  friend class ::CExprResolve;
1999
2975
  friend class ::WinIfExists;
2000
2976
  friend class ::WinImportHandler;
2001
2977
  friend class ::WinMacros;
2002
 
  friend class ::CMatchSyntax;
2003
 
  friend class ::ExtGnu;
 
2978
  friend class ::WinAsm;
 
2979
  friend class ::WinDeclSpecs;
 
2980
  friend class ::WinMemberExplSpec;
 
2981
  friend class ::WinTypeKeywords;
 
2982
  friend class ::WinFriend;
2004
2983
  friend class ::ExtAC;
2005
2984
  friend class ::ExtACBuilderCoupling;
2006
2985
  friend class ::ExtACSyntaxCoupling;
2007
2986
  friend class ::ExtACTree;
2008
2987
  friend class ::ExtACKeywords;
2009
 
  friend class ::WinAsm;
2010
 
  friend class ::WinDeclSpecs;
2011
 
  friend class ::WinMemberExplSpec;
2012
 
  friend class ::WinTypeKeywords;
 
2988
  friend class ::ExtGnu;
2013
2989
  friend class ::PragmaOnceUnitState;
2014
2990
  friend class ::PragmaOnce;
2015
 
  friend class ::CCExprResolve;
2016
 
  friend class ::CExprResolve;
 
2991
  friend class ::CMatchSyntax;
2017
2992
 
2018
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
2993
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2019
2994
 
2020
2995
public:
 
2996
  /** Constructor.
 
2997
   *  \param n The template class or function name.
 
2998
   *  \param a The template argument list. */
2021
2999
  CT_TemplateName (CTree *n, CTree *a) 
2022
3000
   { AddSon (n); AddSon (a); }
 
3001
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2023
3002
  static const char *NodeId ();
 
3003
  /** Get the name of the node. Can be compared with NodeId(). */
2024
3004
  const char *NodeName () const { return NodeId (); }
 
3005
  /** Get the template argument list. */
2025
3006
  CT_TemplateArgList *Arguments () const 
2026
3007
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
3008
  /** Get the template class or function name. */
2027
3009
  CT_SimpleName *TemplateName () const 
2028
3010
   { return (CT_SimpleName*)Son (Sons ()-2); }
2029
3011
  // may change in the future
2030
3012
  const char *Text () const { return TemplateName ()->Text (); }
2031
 
  // special new / delete with reusing memory
 
3013
 
 
3014
public:
 
3015
  /** Own new operator reusing memory. */
2032
3016
  void *operator new (size_t);
2033
 
  void  operator delete (void *);
 
3017
  /** Own delete operator. */
 
3018
  void operator delete (void *);
2034
3019
   private:
2035
3020
  typedef CT_TemplateName CCExprResolveExpr;
2036
3021
 
2037
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3022
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2038
3023
 public :
2039
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3024
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2040
3025
  typedef CT_TemplateName CExprResolveExpr;
2041
3026
 
2042
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3027
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2043
3028
 public :
2044
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2045
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3029
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3030
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2046
3031
};
2047
3032
 
 
3033
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
3034
 *  Tree node representing the name of an overloaded operator. */
2048
3035
 
2049
 
#line 2050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3036
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2050
3037
} // closed Puma
 
3038
class CCExprResolve;
 
3039
class CExprResolve;
2051
3040
class WinIfExists;
2052
3041
class WinImportHandler;
2053
3042
class WinMacros;
2054
 
class CMatchSyntax;
2055
 
class ExtGnu;
 
3043
class WinAsm;
 
3044
class WinDeclSpecs;
 
3045
class WinMemberExplSpec;
 
3046
class WinTypeKeywords;
 
3047
class WinFriend;
2056
3048
class ExtAC;
2057
3049
class ExtACBuilderCoupling;
2058
3050
class ExtACSyntaxCoupling;
2059
3051
class ExtACTree;
2060
3052
class ExtACKeywords;
2061
 
class WinAsm;
2062
 
class WinDeclSpecs;
2063
 
class WinMemberExplSpec;
2064
 
class WinTypeKeywords;
 
3053
class ExtGnu;
2065
3054
class PragmaOnceUnitState;
2066
3055
class PragmaOnce;
2067
 
class CCExprResolve;
2068
 
class CExprResolve;
2069
 
namespace Puma {
2070
 
 
2071
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3056
class CMatchSyntax;
 
3057
namespace Puma {
 
3058
 
 
3059
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3060
 
 
3061
#line 3062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3062
} // closed Puma
 
3063
 
 
3064
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3065
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3066
#include "CCExprResolveH.ah"
 
3067
#endif
 
3068
namespace Puma {
 
3069
 
 
3070
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3071
 
 
3072
#line 3073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3073
} // closed Puma
 
3074
 
 
3075
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3076
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3077
#include "CExprResolveH.ah"
 
3078
#endif
 
3079
namespace Puma {
 
3080
 
 
3081
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2072
3082
class CT_OperatorName : public CT_SpecialName {
2073
 
#line 2074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3083
#line 3084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3084
  friend class ::CCExprResolve;
 
3085
  friend class ::CExprResolve;
2074
3086
  friend class ::WinIfExists;
2075
3087
  friend class ::WinImportHandler;
2076
3088
  friend class ::WinMacros;
2077
 
  friend class ::CMatchSyntax;
2078
 
  friend class ::ExtGnu;
 
3089
  friend class ::WinAsm;
 
3090
  friend class ::WinDeclSpecs;
 
3091
  friend class ::WinMemberExplSpec;
 
3092
  friend class ::WinTypeKeywords;
 
3093
  friend class ::WinFriend;
2079
3094
  friend class ::ExtAC;
2080
3095
  friend class ::ExtACBuilderCoupling;
2081
3096
  friend class ::ExtACSyntaxCoupling;
2082
3097
  friend class ::ExtACTree;
2083
3098
  friend class ::ExtACKeywords;
2084
 
  friend class ::WinAsm;
2085
 
  friend class ::WinDeclSpecs;
2086
 
  friend class ::WinMemberExplSpec;
2087
 
  friend class ::WinTypeKeywords;
 
3099
  friend class ::ExtGnu;
2088
3100
  friend class ::PragmaOnceUnitState;
2089
3101
  friend class ::PragmaOnce;
2090
 
  friend class ::CCExprResolve;
2091
 
  friend class ::CExprResolve;
 
3102
  friend class ::CMatchSyntax;
2092
3103
 
2093
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3104
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2094
3105
 
2095
3106
  int _oper;
2096
3107
 
2097
3108
public:
2098
 
  enum { // complex operators
2099
 
    FCT_CALL = -100,
2100
 
    SUBSCRIPT,
2101
 
    NEW_ARRAY,
2102
 
    DEL_ARRAY
 
3109
  /** Complex operator types. */
 
3110
  enum { 
 
3111
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
3112
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
3113
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
3114
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
2103
3115
  };
2104
3116
 
2105
3117
public:
2106
 
  CT_OperatorName (CTree *);
2107
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
3118
  /** Constructor.
 
3119
   *  \param op The token containing the operator. */
 
3120
  CT_OperatorName (CTree *op);
 
3121
  /** Constructor.
 
3122
   *  \param f The operator function keyword 'operator'.
 
3123
   *  \param op The token containing the operator. 
 
3124
   *  \param o The token of '[' or '('.
 
3125
   *  \param c The token of ']' or ')'. */
 
3126
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
3127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2108
3128
  static const char *NodeId ();
 
3129
  /** Get the name of the node. Can be compared with NodeId(). */
2109
3130
  const char *NodeName () const { return NodeId (); }
 
3131
  /** Get the operator type (either the token type or one of 
 
3132
   *  the complex operator types). */
2110
3133
  int Operator () const { return _oper; }
2111
 
  // special new / delete with reusing memory
 
3134
 
 
3135
public:
 
3136
  /** Own new operator reusing memory. */
2112
3137
  void *operator new (size_t);
2113
 
  void  operator delete (void *);
 
3138
  /** Own delete operator. */
 
3139
  void operator delete (void *);
2114
3140
   private:
2115
3141
  typedef CT_OperatorName CCExprResolveExpr;
2116
3142
 
2117
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3143
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2118
3144
 public :
2119
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3145
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2120
3146
  typedef CT_OperatorName CExprResolveExpr;
2121
3147
 
2122
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3148
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2123
3149
 public :
2124
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2125
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3150
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3151
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2126
3152
};
2127
3153
 
 
3154
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
3155
 *  Tree node representing the name of a conversion function. */
2128
3156
 
2129
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3157
#line 3158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2130
3158
} // closed Puma
 
3159
class CCExprResolve;
 
3160
class CExprResolve;
2131
3161
class WinIfExists;
2132
3162
class WinImportHandler;
2133
3163
class WinMacros;
2134
 
class CMatchSyntax;
2135
 
class ExtGnu;
 
3164
class WinAsm;
 
3165
class WinDeclSpecs;
 
3166
class WinMemberExplSpec;
 
3167
class WinTypeKeywords;
 
3168
class WinFriend;
2136
3169
class ExtAC;
2137
3170
class ExtACBuilderCoupling;
2138
3171
class ExtACSyntaxCoupling;
2139
3172
class ExtACTree;
2140
3173
class ExtACKeywords;
2141
 
class WinAsm;
2142
 
class WinDeclSpecs;
2143
 
class WinMemberExplSpec;
2144
 
class WinTypeKeywords;
 
3174
class ExtGnu;
2145
3175
class PragmaOnceUnitState;
2146
3176
class PragmaOnce;
2147
 
class CCExprResolve;
2148
 
class CExprResolve;
2149
 
namespace Puma {
2150
 
 
2151
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3177
class CMatchSyntax;
 
3178
namespace Puma {
 
3179
 
 
3180
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3181
 
 
3182
#line 3183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3183
} // closed Puma
 
3184
 
 
3185
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3186
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3187
#include "CCExprResolveH.ah"
 
3188
#endif
 
3189
namespace Puma {
 
3190
 
 
3191
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3192
 
 
3193
#line 3194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3194
} // closed Puma
 
3195
 
 
3196
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3197
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3198
#include "CExprResolveH.ah"
 
3199
#endif
 
3200
namespace Puma {
 
3201
 
 
3202
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2152
3203
class CT_ConversionName : public CT_SpecialName {
2153
 
#line 2154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3204
#line 3205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3205
  friend class ::CCExprResolve;
 
3206
  friend class ::CExprResolve;
2154
3207
  friend class ::WinIfExists;
2155
3208
  friend class ::WinImportHandler;
2156
3209
  friend class ::WinMacros;
2157
 
  friend class ::CMatchSyntax;
2158
 
  friend class ::ExtGnu;
 
3210
  friend class ::WinAsm;
 
3211
  friend class ::WinDeclSpecs;
 
3212
  friend class ::WinMemberExplSpec;
 
3213
  friend class ::WinTypeKeywords;
 
3214
  friend class ::WinFriend;
2159
3215
  friend class ::ExtAC;
2160
3216
  friend class ::ExtACBuilderCoupling;
2161
3217
  friend class ::ExtACSyntaxCoupling;
2162
3218
  friend class ::ExtACTree;
2163
3219
  friend class ::ExtACKeywords;
2164
 
  friend class ::WinAsm;
2165
 
  friend class ::WinDeclSpecs;
2166
 
  friend class ::WinMemberExplSpec;
2167
 
  friend class ::WinTypeKeywords;
 
3220
  friend class ::ExtGnu;
2168
3221
  friend class ::PragmaOnceUnitState;
2169
3222
  friend class ::PragmaOnce;
2170
 
  friend class ::CCExprResolve;
2171
 
  friend class ::CExprResolve;
 
3223
  friend class ::CMatchSyntax;
2172
3224
 
2173
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3225
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2174
3226
 
2175
3227
public:
2176
 
  CT_ConversionName (CTree *, CTree *);
 
3228
  /** Constructor.
 
3229
   *  \param f The operator function keyword 'operator'.
 
3230
   *  \param t The sub-tree containing the conversion type. */
 
3231
  CT_ConversionName (CTree *f, CTree *t);
 
3232
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2177
3233
  static const char *NodeId ();
 
3234
  /** Get the name of the node. Can be compared with NodeId(). */
2178
3235
  const char *NodeName () const { return NodeId (); }
 
3236
  /** Get the conversion type. */
2179
3237
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
2180
 
  // special new / delete with reusing memory
 
3238
 
 
3239
public:
 
3240
  /** Own new operator reusing memory. */
2181
3241
  void *operator new (size_t);
2182
 
  void  operator delete (void *);
 
3242
  /** Own delete operator. */
 
3243
  void operator delete (void *);
2183
3244
   private:
2184
3245
  typedef CT_ConversionName CCExprResolveExpr;
2185
3246
 
2186
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2187
3248
 public :
2188
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3249
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2189
3250
  typedef CT_ConversionName CExprResolveExpr;
2190
3251
 
2191
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3252
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2192
3253
 public :
2193
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2194
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3254
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3255
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2195
3256
};
2196
3257
 
 
3258
/** \class CT_QualName CTree.h Puma/CTree.h
 
3259
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
2197
3260
 
2198
 
#line 2199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3261
#line 3262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2199
3262
} // closed Puma
 
3263
class CCExprResolve;
 
3264
class CExprResolve;
2200
3265
class WinIfExists;
2201
3266
class WinImportHandler;
2202
3267
class WinMacros;
2203
 
class CMatchSyntax;
2204
 
class ExtGnu;
 
3268
class WinAsm;
 
3269
class WinDeclSpecs;
 
3270
class WinMemberExplSpec;
 
3271
class WinTypeKeywords;
 
3272
class WinFriend;
2205
3273
class ExtAC;
2206
3274
class ExtACBuilderCoupling;
2207
3275
class ExtACSyntaxCoupling;
2208
3276
class ExtACTree;
2209
3277
class ExtACKeywords;
2210
 
class WinAsm;
2211
 
class WinDeclSpecs;
2212
 
class WinMemberExplSpec;
2213
 
class WinTypeKeywords;
 
3278
class ExtGnu;
2214
3279
class PragmaOnceUnitState;
2215
3280
class PragmaOnce;
2216
 
class CCExprResolve;
2217
 
class CExprResolve;
2218
 
namespace Puma {
2219
 
 
2220
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3281
class CMatchSyntax;
 
3282
namespace Puma {
 
3283
 
 
3284
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3285
 
 
3286
#line 3287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3287
} // closed Puma
 
3288
 
 
3289
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3290
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3291
#include "CCExprResolveH.ah"
 
3292
#endif
 
3293
namespace Puma {
 
3294
 
 
3295
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3296
 
 
3297
#line 3298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3298
} // closed Puma
 
3299
 
 
3300
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3301
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3302
#include "CExprResolveH.ah"
 
3303
#endif
 
3304
namespace Puma {
 
3305
 
 
3306
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2221
3307
class CT_QualName : public CT_SimpleName {
2222
 
#line 2223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3308
#line 3309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3309
  friend class ::CCExprResolve;
 
3310
  friend class ::CExprResolve;
2223
3311
  friend class ::WinIfExists;
2224
3312
  friend class ::WinImportHandler;
2225
3313
  friend class ::WinMacros;
2226
 
  friend class ::CMatchSyntax;
2227
 
  friend class ::ExtGnu;
 
3314
  friend class ::WinAsm;
 
3315
  friend class ::WinDeclSpecs;
 
3316
  friend class ::WinMemberExplSpec;
 
3317
  friend class ::WinTypeKeywords;
 
3318
  friend class ::WinFriend;
2228
3319
  friend class ::ExtAC;
2229
3320
  friend class ::ExtACBuilderCoupling;
2230
3321
  friend class ::ExtACSyntaxCoupling;
2231
3322
  friend class ::ExtACTree;
2232
3323
  friend class ::ExtACKeywords;
2233
 
  friend class ::WinAsm;
2234
 
  friend class ::WinDeclSpecs;
2235
 
  friend class ::WinMemberExplSpec;
2236
 
  friend class ::WinTypeKeywords;
 
3324
  friend class ::ExtGnu;
2237
3325
  friend class ::PragmaOnceUnitState;
2238
3326
  friend class ::PragmaOnce;
2239
 
  friend class ::CCExprResolve;
2240
 
  friend class ::CExprResolve;
 
3327
  friend class ::CMatchSyntax;
2241
3328
 
2242
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3329
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2243
3330
 
2244
3331
public:
 
3332
  /** Constructor.
 
3333
   *  \param size The initial number sub-names plus separators. */
2245
3334
  CT_QualName (int size = 3) : 
2246
3335
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
3336
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2247
3337
  static const char *NodeId ();
 
3338
  /** Get the name of the node. Can be compared with NodeId(). */
2248
3339
  const char *NodeName () const { return NodeId (); }
2249
 
  void print (ostream &) const;
 
3340
  /** Print the qualified name on the given stream. 
 
3341
   *  \param os The output stream. */
 
3342
  void print (ostream &os) const;
 
3343
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
2250
3344
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
3345
  /** Get the string containing the last name of the qualified name. */
2251
3346
  const char *Text () const { return Name ()->Text (); }
 
3347
  /** Get the type of the last name. */
2252
3348
  CTypeInfo *Type () const { return Name ()->Type (); }
 
3349
  /** Get the value of the last name. */
2253
3350
  CExprValue *Value () const { return Name ()->Value (); }
 
3351
  /** Get the semantic value object of the last name. */
2254
3352
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
3353
  /** Get the semantic information object of the last name. */
2255
3354
  CSemObject *SemObject () const { return Name ()->SemObject (); }
2256
 
  // special new / delete with reusing memory
 
3355
 
 
3356
public:
 
3357
  /** Own new operator reusing memory. */
2257
3358
  void *operator new (size_t);
2258
 
  void  operator delete (void *);
 
3359
  /** Own delete operator. */
 
3360
  void operator delete (void *);
2259
3361
   private:
2260
3362
  typedef CT_QualName CCExprResolveExpr;
2261
3363
 
2262
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3364
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2263
3365
 public :
2264
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3366
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2265
3367
  typedef CT_QualName CExprResolveExpr;
2266
3368
 
2267
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3369
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2268
3370
 public :
2269
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2270
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3371
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3372
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2271
3373
};
2272
3374
 
 
3375
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
3376
 *  Tree node representing a qualified name with introducing name separator,
 
3377
 *  e.g. ::X::Y::Z. */
2273
3378
 
2274
 
#line 2275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3379
#line 3380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2275
3380
} // closed Puma
 
3381
class CCExprResolve;
 
3382
class CExprResolve;
2276
3383
class WinIfExists;
2277
3384
class WinImportHandler;
2278
3385
class WinMacros;
2279
 
class CMatchSyntax;
2280
 
class ExtGnu;
 
3386
class WinAsm;
 
3387
class WinDeclSpecs;
 
3388
class WinMemberExplSpec;
 
3389
class WinTypeKeywords;
 
3390
class WinFriend;
2281
3391
class ExtAC;
2282
3392
class ExtACBuilderCoupling;
2283
3393
class ExtACSyntaxCoupling;
2284
3394
class ExtACTree;
2285
3395
class ExtACKeywords;
2286
 
class WinAsm;
2287
 
class WinDeclSpecs;
2288
 
class WinMemberExplSpec;
2289
 
class WinTypeKeywords;
 
3396
class ExtGnu;
2290
3397
class PragmaOnceUnitState;
2291
3398
class PragmaOnce;
2292
 
class CCExprResolve;
2293
 
class CExprResolve;
2294
 
namespace Puma {
2295
 
 
2296
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3399
class CMatchSyntax;
 
3400
namespace Puma {
 
3401
 
 
3402
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3403
 
 
3404
#line 3405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3405
} // closed Puma
 
3406
 
 
3407
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3408
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3409
#include "CCExprResolveH.ah"
 
3410
#endif
 
3411
namespace Puma {
 
3412
 
 
3413
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3414
 
 
3415
#line 3416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3416
} // closed Puma
 
3417
 
 
3418
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3419
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3420
#include "CExprResolveH.ah"
 
3421
#endif
 
3422
namespace Puma {
 
3423
 
 
3424
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2297
3425
class CT_RootQualName : public CT_QualName {
2298
 
#line 2299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3426
#line 3427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3427
  friend class ::CCExprResolve;
 
3428
  friend class ::CExprResolve;
2299
3429
  friend class ::WinIfExists;
2300
3430
  friend class ::WinImportHandler;
2301
3431
  friend class ::WinMacros;
2302
 
  friend class ::CMatchSyntax;
2303
 
  friend class ::ExtGnu;
 
3432
  friend class ::WinAsm;
 
3433
  friend class ::WinDeclSpecs;
 
3434
  friend class ::WinMemberExplSpec;
 
3435
  friend class ::WinTypeKeywords;
 
3436
  friend class ::WinFriend;
2304
3437
  friend class ::ExtAC;
2305
3438
  friend class ::ExtACBuilderCoupling;
2306
3439
  friend class ::ExtACSyntaxCoupling;
2307
3440
  friend class ::ExtACTree;
2308
3441
  friend class ::ExtACKeywords;
2309
 
  friend class ::WinAsm;
2310
 
  friend class ::WinDeclSpecs;
2311
 
  friend class ::WinMemberExplSpec;
2312
 
  friend class ::WinTypeKeywords;
 
3442
  friend class ::ExtGnu;
2313
3443
  friend class ::PragmaOnceUnitState;
2314
3444
  friend class ::PragmaOnce;
2315
 
  friend class ::CCExprResolve;
2316
 
  friend class ::CExprResolve;
 
3445
  friend class ::CMatchSyntax;
2317
3446
 
2318
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3447
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2319
3448
 
2320
3449
public:
 
3450
  /** Constructor.
 
3451
   *  \param size Initial number of sub-name plus separator. */
2321
3452
  CT_RootQualName (int size = 2) : 
2322
3453
    CT_QualName (size) { AddProperties (INTRO); }
 
3454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2323
3455
  static const char *NodeId ();
 
3456
  /** Get the name of the node. Can be compared with NodeId(). */
2324
3457
  const char *NodeName () const { return NodeId (); }
2325
 
  // special new / delete with reusing memory
 
3458
 
 
3459
public:
 
3460
  /** Own new operator reusing memory. */
2326
3461
  void *operator new (size_t);
2327
 
  void  operator delete (void *);
 
3462
  /** Own delete operator. */
 
3463
  void operator delete (void *);
2328
3464
   private:
2329
3465
  typedef CT_RootQualName CCExprResolveExpr;
2330
3466
 
2331
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3467
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2332
3468
 public :
2333
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3469
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2334
3470
  typedef CT_RootQualName CExprResolveExpr;
2335
3471
 
2336
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3472
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2337
3473
 public :
2338
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2339
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3474
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3475
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2340
3476
};
2341
3477
 
 
3478
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
3479
 *  Tree node representing a binary expression, e.g. a+b. */
2342
3480
 
2343
 
#line 2344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3481
#line 3482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2344
3482
} // closed Puma
 
3483
class CCExprResolve;
 
3484
class CExprResolve;
2345
3485
class WinIfExists;
2346
3486
class WinImportHandler;
2347
3487
class WinMacros;
2348
 
class CMatchSyntax;
2349
 
class ExtGnu;
 
3488
class WinAsm;
 
3489
class WinDeclSpecs;
 
3490
class WinMemberExplSpec;
 
3491
class WinTypeKeywords;
 
3492
class WinFriend;
2350
3493
class ExtAC;
2351
3494
class ExtACBuilderCoupling;
2352
3495
class ExtACSyntaxCoupling;
2353
3496
class ExtACTree;
2354
3497
class ExtACKeywords;
2355
 
class WinAsm;
2356
 
class WinDeclSpecs;
2357
 
class WinMemberExplSpec;
2358
 
class WinTypeKeywords;
 
3498
class ExtGnu;
2359
3499
class PragmaOnceUnitState;
2360
3500
class PragmaOnce;
2361
 
class CCExprResolve;
2362
 
class CExprResolve;
2363
 
namespace Puma {
2364
 
 
2365
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2366
 
class CT_BinaryExpr : public CT_Expression {
2367
 
#line 2368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3501
class CMatchSyntax;
 
3502
namespace Puma {
 
3503
 
 
3504
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3505
 
 
3506
#line 3507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3507
} // closed Puma
 
3508
 
 
3509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3511
#include "CCExprResolveH.ah"
 
3512
#endif
 
3513
namespace Puma {
 
3514
 
 
3515
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3516
 
 
3517
#line 3518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3518
} // closed Puma
 
3519
 
 
3520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3522
#include "CExprResolveH.ah"
 
3523
#endif
 
3524
namespace Puma {
 
3525
 
 
3526
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3527
class CT_BinaryExpr : public CT_Call {
 
3528
#line 3529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3529
  friend class ::CCExprResolve;
 
3530
  friend class ::CExprResolve;
2368
3531
  friend class ::WinIfExists;
2369
3532
  friend class ::WinImportHandler;
2370
3533
  friend class ::WinMacros;
2371
 
  friend class ::CMatchSyntax;
2372
 
  friend class ::ExtGnu;
 
3534
  friend class ::WinAsm;
 
3535
  friend class ::WinDeclSpecs;
 
3536
  friend class ::WinMemberExplSpec;
 
3537
  friend class ::WinTypeKeywords;
 
3538
  friend class ::WinFriend;
2373
3539
  friend class ::ExtAC;
2374
3540
  friend class ::ExtACBuilderCoupling;
2375
3541
  friend class ::ExtACSyntaxCoupling;
2376
3542
  friend class ::ExtACTree;
2377
3543
  friend class ::ExtACKeywords;
2378
 
  friend class ::WinAsm;
2379
 
  friend class ::WinDeclSpecs;
2380
 
  friend class ::WinMemberExplSpec;
2381
 
  friend class ::WinTypeKeywords;
 
3544
  friend class ::ExtGnu;
2382
3545
  friend class ::PragmaOnceUnitState;
2383
3546
  friend class ::PragmaOnce;
2384
 
  friend class ::CCExprResolve;
2385
 
  friend class ::CExprResolve;
 
3547
  friend class ::CMatchSyntax;
2386
3548
 
2387
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3549
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2388
3550
 
2389
3551
  CTree *sons[3]; // expr, oper, expr
2390
3552
 
2391
3553
public:
 
3554
  /** Constructor. 
 
3555
   *  \param l Left hand side of the expression. 
 
3556
   *  \param o The operator token. 
 
3557
   *  \param r Right hand side of the expression. */
2392
3558
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
2393
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
3559
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
2394
3560
  }
 
3561
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2395
3562
  static const char *NodeId ();
 
3563
  /** Get the name of the node. Can be compared with NodeId(). */
2396
3564
  const char *NodeName () const { return NodeId (); }
 
3565
  /** Get the number of sons. */
2397
3566
  int Sons () const { return 3; }
 
3567
  /** Get the n-th son.
 
3568
   *  \param n The index of the son.
 
3569
   *  \return The n-th son or NULL. */
2398
3570
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
3571
  /** Replace a son.
 
3572
   *  \param old_son The son to replace.
 
3573
   *  \param new_son The new son. */
2399
3574
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
2400
3575
    CTree::ReplaceSon (sons, 3, old_son, new_son);
2401
3576
  }
2402
3577
   private:
2403
3578
  typedef CT_BinaryExpr CCExprResolveExpr;
2404
3579
 
2405
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3580
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2406
3581
 public :
2407
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3582
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2408
3583
  typedef CT_BinaryExpr CExprResolveExpr;
2409
3584
 
2410
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3585
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2411
3586
 public :
2412
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2413
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3587
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3588
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2414
3589
};
2415
3590
 
 
3591
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
3592
 *  Tree node representing a member pointer expression, e.g. a->b. */
2416
3593
 
2417
 
#line 2418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3594
#line 3595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2418
3595
} // closed Puma
 
3596
class CCExprResolve;
 
3597
class CExprResolve;
2419
3598
class WinIfExists;
2420
3599
class WinImportHandler;
2421
3600
class WinMacros;
2422
 
class CMatchSyntax;
2423
 
class ExtGnu;
 
3601
class WinAsm;
 
3602
class WinDeclSpecs;
 
3603
class WinMemberExplSpec;
 
3604
class WinTypeKeywords;
 
3605
class WinFriend;
2424
3606
class ExtAC;
2425
3607
class ExtACBuilderCoupling;
2426
3608
class ExtACSyntaxCoupling;
2427
3609
class ExtACTree;
2428
3610
class ExtACKeywords;
2429
 
class WinAsm;
2430
 
class WinDeclSpecs;
2431
 
class WinMemberExplSpec;
2432
 
class WinTypeKeywords;
 
3611
class ExtGnu;
2433
3612
class PragmaOnceUnitState;
2434
3613
class PragmaOnce;
2435
 
class CCExprResolve;
2436
 
class CExprResolve;
2437
 
namespace Puma {
2438
 
 
2439
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2440
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
2441
 
#line 2442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3614
class CMatchSyntax;
 
3615
namespace Puma {
 
3616
 
 
3617
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3618
 
 
3619
#line 3620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3620
} // closed Puma
 
3621
 
 
3622
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3623
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3624
#include "CCExprResolveH.ah"
 
3625
#endif
 
3626
namespace Puma {
 
3627
 
 
3628
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3629
 
 
3630
#line 3631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3631
} // closed Puma
 
3632
 
 
3633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3635
#include "CExprResolveH.ah"
 
3636
#endif
 
3637
namespace Puma {
 
3638
 
 
3639
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3640
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
3641
#line 3642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3642
  friend class ::CCExprResolve;
 
3643
  friend class ::CExprResolve;
2442
3644
  friend class ::WinIfExists;
2443
3645
  friend class ::WinImportHandler;
2444
3646
  friend class ::WinMacros;
2445
 
  friend class ::CMatchSyntax;
2446
 
  friend class ::ExtGnu;
 
3647
  friend class ::WinAsm;
 
3648
  friend class ::WinDeclSpecs;
 
3649
  friend class ::WinMemberExplSpec;
 
3650
  friend class ::WinTypeKeywords;
 
3651
  friend class ::WinFriend;
2447
3652
  friend class ::ExtAC;
2448
3653
  friend class ::ExtACBuilderCoupling;
2449
3654
  friend class ::ExtACSyntaxCoupling;
2450
3655
  friend class ::ExtACTree;
2451
3656
  friend class ::ExtACKeywords;
2452
 
  friend class ::WinAsm;
2453
 
  friend class ::WinDeclSpecs;
2454
 
  friend class ::WinMemberExplSpec;
2455
 
  friend class ::WinTypeKeywords;
 
3657
  friend class ::ExtGnu;
2456
3658
  friend class ::PragmaOnceUnitState;
2457
3659
  friend class ::PragmaOnce;
2458
 
  friend class ::CCExprResolve;
2459
 
  friend class ::CExprResolve;
2460
 
 
2461
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2462
 
 
 
3660
  friend class ::CMatchSyntax;
 
3661
 
 
3662
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3663
 
 
3664
  CTree *sons[3]; // expr, oper, expr
 
3665
  
2463
3666
public:
2464
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
2465
 
    CT_BinaryExpr (e, o, i) {}
 
3667
  /** Constructor.
 
3668
   *  \param e Expression on which to call the member.
 
3669
   *  \param o The arrow operator token.
 
3670
   *  \param i The member name. */
 
3671
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
3672
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
3673
  }
 
3674
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2466
3675
  static const char *NodeId ();
 
3676
  /** Get the name of the node. Can be compared with NodeId(). */
2467
3677
  const char *NodeName () const { return NodeId (); }
2468
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
3678
  /** Get the number of sons. */
 
3679
  int Sons () const { return 3; }
 
3680
  /** Get the n-th son.
 
3681
   *  \param n The index of the son.
 
3682
   *  \return The n-th son or NULL. */
 
3683
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
3684
  /** Replace a son.
 
3685
   *  \param old_son The son to replace.
 
3686
   *  \param new_son The new son. */
 
3687
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
3688
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
3689
  }
2469
3690
   private:
2470
3691
  typedef CT_MembPtrExpr CCExprResolveExpr;
2471
3692
 
2472
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3693
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2473
3694
 public :
2474
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3695
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2475
3696
  typedef CT_MembPtrExpr CExprResolveExpr;
2476
3697
 
2477
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3698
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2478
3699
 public :
2479
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2480
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3700
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3701
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2481
3702
};
2482
3703
 
 
3704
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
3705
 *  Tree node representing a member reference expression, e.g. a.b. */
2483
3706
 
2484
 
#line 2485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3707
#line 3708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2485
3708
} // closed Puma
 
3709
class CCExprResolve;
 
3710
class CExprResolve;
2486
3711
class WinIfExists;
2487
3712
class WinImportHandler;
2488
3713
class WinMacros;
2489
 
class CMatchSyntax;
2490
 
class ExtGnu;
 
3714
class WinAsm;
 
3715
class WinDeclSpecs;
 
3716
class WinMemberExplSpec;
 
3717
class WinTypeKeywords;
 
3718
class WinFriend;
2491
3719
class ExtAC;
2492
3720
class ExtACBuilderCoupling;
2493
3721
class ExtACSyntaxCoupling;
2494
3722
class ExtACTree;
2495
3723
class ExtACKeywords;
2496
 
class WinAsm;
2497
 
class WinDeclSpecs;
2498
 
class WinMemberExplSpec;
2499
 
class WinTypeKeywords;
 
3724
class ExtGnu;
2500
3725
class PragmaOnceUnitState;
2501
3726
class PragmaOnce;
2502
 
class CCExprResolve;
2503
 
class CExprResolve;
2504
 
namespace Puma {
2505
 
 
2506
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3727
class CMatchSyntax;
 
3728
namespace Puma {
 
3729
 
 
3730
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3731
 
 
3732
#line 3733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3733
} // closed Puma
 
3734
 
 
3735
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3736
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3737
#include "CCExprResolveH.ah"
 
3738
#endif
 
3739
namespace Puma {
 
3740
 
 
3741
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3742
 
 
3743
#line 3744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3744
} // closed Puma
 
3745
 
 
3746
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3747
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3748
#include "CExprResolveH.ah"
 
3749
#endif
 
3750
namespace Puma {
 
3751
 
 
3752
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2507
3753
class CT_MembRefExpr : public CT_MembPtrExpr {
2508
 
#line 2509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3754
#line 3755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3755
  friend class ::CCExprResolve;
 
3756
  friend class ::CExprResolve;
2509
3757
  friend class ::WinIfExists;
2510
3758
  friend class ::WinImportHandler;
2511
3759
  friend class ::WinMacros;
2512
 
  friend class ::CMatchSyntax;
2513
 
  friend class ::ExtGnu;
 
3760
  friend class ::WinAsm;
 
3761
  friend class ::WinDeclSpecs;
 
3762
  friend class ::WinMemberExplSpec;
 
3763
  friend class ::WinTypeKeywords;
 
3764
  friend class ::WinFriend;
2514
3765
  friend class ::ExtAC;
2515
3766
  friend class ::ExtACBuilderCoupling;
2516
3767
  friend class ::ExtACSyntaxCoupling;
2517
3768
  friend class ::ExtACTree;
2518
3769
  friend class ::ExtACKeywords;
2519
 
  friend class ::WinAsm;
2520
 
  friend class ::WinDeclSpecs;
2521
 
  friend class ::WinMemberExplSpec;
2522
 
  friend class ::WinTypeKeywords;
 
3770
  friend class ::ExtGnu;
2523
3771
  friend class ::PragmaOnceUnitState;
2524
3772
  friend class ::PragmaOnce;
2525
 
  friend class ::CCExprResolve;
2526
 
  friend class ::CExprResolve;
 
3773
  friend class ::CMatchSyntax;
2527
3774
 
2528
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3775
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2529
3776
 
2530
3777
public:
 
3778
  /** Constructor.
 
3779
   *  \param e Expression on which to call the member.
 
3780
   *  \param o The dot operator.
 
3781
   *  \param i The member name. */
2531
3782
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
2532
3783
    CT_MembPtrExpr (e, o, i) {}
 
3784
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2533
3785
  static const char *NodeId ();
 
3786
  /** Get the name of the node. Can be compared with NodeId(). */
2534
3787
  const char *NodeName () const { return NodeId (); }
2535
3788
   private:
2536
3789
  typedef CT_MembRefExpr CCExprResolveExpr;
2537
3790
 
2538
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3791
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2539
3792
 public :
2540
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3793
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2541
3794
  typedef CT_MembRefExpr CExprResolveExpr;
2542
3795
 
2543
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3796
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2544
3797
 public :
2545
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2546
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3798
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3799
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2547
3800
};
2548
3801
 
 
3802
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
3803
 *  Base class for tree nodes representing unary expressions. */
2549
3804
 
2550
 
#line 2551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3805
#line 3806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2551
3806
} // closed Puma
 
3807
class CCExprResolve;
 
3808
class CExprResolve;
2552
3809
class WinIfExists;
2553
3810
class WinImportHandler;
2554
3811
class WinMacros;
2555
 
class CMatchSyntax;
2556
 
class ExtGnu;
 
3812
class WinAsm;
 
3813
class WinDeclSpecs;
 
3814
class WinMemberExplSpec;
 
3815
class WinTypeKeywords;
 
3816
class WinFriend;
2557
3817
class ExtAC;
2558
3818
class ExtACBuilderCoupling;
2559
3819
class ExtACSyntaxCoupling;
2560
3820
class ExtACTree;
2561
3821
class ExtACKeywords;
2562
 
class WinAsm;
2563
 
class WinDeclSpecs;
2564
 
class WinMemberExplSpec;
2565
 
class WinTypeKeywords;
 
3822
class ExtGnu;
2566
3823
class PragmaOnceUnitState;
2567
3824
class PragmaOnce;
2568
 
class CCExprResolve;
2569
 
class CExprResolve;
2570
 
namespace Puma {
2571
 
 
2572
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2573
 
class CT_UnaryExpr : public CT_Expression {
2574
 
#line 2575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3825
class CMatchSyntax;
 
3826
namespace Puma {
 
3827
 
 
3828
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3829
 
 
3830
#line 3831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3831
} // closed Puma
 
3832
 
 
3833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3835
#include "CCExprResolveH.ah"
 
3836
#endif
 
3837
namespace Puma {
 
3838
 
 
3839
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3840
 
 
3841
#line 3842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3842
} // closed Puma
 
3843
 
 
3844
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3845
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3846
#include "CExprResolveH.ah"
 
3847
#endif
 
3848
namespace Puma {
 
3849
 
 
3850
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3851
class CT_UnaryExpr : public CT_Call {
 
3852
#line 3853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3853
  friend class ::CCExprResolve;
 
3854
  friend class ::CExprResolve;
2575
3855
  friend class ::WinIfExists;
2576
3856
  friend class ::WinImportHandler;
2577
3857
  friend class ::WinMacros;
2578
 
  friend class ::CMatchSyntax;
2579
 
  friend class ::ExtGnu;
 
3858
  friend class ::WinAsm;
 
3859
  friend class ::WinDeclSpecs;
 
3860
  friend class ::WinMemberExplSpec;
 
3861
  friend class ::WinTypeKeywords;
 
3862
  friend class ::WinFriend;
2580
3863
  friend class ::ExtAC;
2581
3864
  friend class ::ExtACBuilderCoupling;
2582
3865
  friend class ::ExtACSyntaxCoupling;
2583
3866
  friend class ::ExtACTree;
2584
3867
  friend class ::ExtACKeywords;
2585
 
  friend class ::WinAsm;
2586
 
  friend class ::WinDeclSpecs;
2587
 
  friend class ::WinMemberExplSpec;
2588
 
  friend class ::WinTypeKeywords;
 
3868
  friend class ::ExtGnu;
2589
3869
  friend class ::PragmaOnceUnitState;
2590
3870
  friend class ::PragmaOnce;
2591
 
  friend class ::CCExprResolve;
2592
 
  friend class ::CExprResolve;
 
3871
  friend class ::CMatchSyntax;
2593
3872
 
2594
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3873
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2595
3874
 
2596
3875
  CTree *sons[2]; // oper, expr
2597
3876
 
2598
3877
public:
2599
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
3878
  /** Constructor.
 
3879
   *  \param o The unary operator.
 
3880
   *  \param e The expression on which the operator is invoked. */
 
3881
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
3882
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2600
3883
  static const char *NodeId ();
 
3884
  /** Get the name of the node. Can be compared with NodeId(). */
2601
3885
  const char *NodeName () const { return NodeId (); }
 
3886
  /** Get the number of sons. */
2602
3887
  int Sons () const { return 2; }
 
3888
  /** Get the n-th son.
 
3889
   *  \param n The index of the son.
 
3890
   *  \return The n-th son or NULL. */
2603
3891
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
3892
  /** Replace a son.
 
3893
   *  \param old_son The son to replace.
 
3894
   *  \param new_son The new son. */
2604
3895
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
2605
3896
    CTree::ReplaceSon (sons, 2, old_son, new_son);
2606
3897
  }
 
3898
  /** Get the expression node. */
2607
3899
  CTree *Expr () const { return sons[1]; }
2608
3900
   private:
2609
3901
  typedef CT_UnaryExpr CCExprResolveExpr;
2610
3902
 
2611
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
3903
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2612
3904
 public :
2613
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
3905
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2614
3906
  typedef CT_UnaryExpr CExprResolveExpr;
2615
3907
 
2616
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
3908
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2617
3909
 public :
2618
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2619
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3910
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
3911
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2620
3912
};
2621
3913
 
 
3914
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
3915
 *  Tree node representing a postfix expression, e.g. a++. */
2622
3916
 
2623
 
#line 2624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3917
#line 3918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2624
3918
} // closed Puma
 
3919
class CCExprResolve;
 
3920
class CExprResolve;
2625
3921
class WinIfExists;
2626
3922
class WinImportHandler;
2627
3923
class WinMacros;
2628
 
class CMatchSyntax;
2629
 
class ExtGnu;
 
3924
class WinAsm;
 
3925
class WinDeclSpecs;
 
3926
class WinMemberExplSpec;
 
3927
class WinTypeKeywords;
 
3928
class WinFriend;
2630
3929
class ExtAC;
2631
3930
class ExtACBuilderCoupling;
2632
3931
class ExtACSyntaxCoupling;
2633
3932
class ExtACTree;
2634
3933
class ExtACKeywords;
2635
 
class WinAsm;
2636
 
class WinDeclSpecs;
2637
 
class WinMemberExplSpec;
2638
 
class WinTypeKeywords;
 
3934
class ExtGnu;
2639
3935
class PragmaOnceUnitState;
2640
3936
class PragmaOnce;
2641
 
class CCExprResolve;
2642
 
class CExprResolve;
2643
 
namespace Puma {
2644
 
 
2645
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3937
class CMatchSyntax;
 
3938
namespace Puma {
 
3939
 
 
3940
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3941
 
 
3942
#line 3943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3943
} // closed Puma
 
3944
 
 
3945
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3946
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
3947
#include "CCExprResolveH.ah"
 
3948
#endif
 
3949
namespace Puma {
 
3950
 
 
3951
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3952
 
 
3953
#line 3954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3954
} // closed Puma
 
3955
 
 
3956
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3957
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
3958
#include "CExprResolveH.ah"
 
3959
#endif
 
3960
namespace Puma {
 
3961
 
 
3962
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2646
3963
class CT_PostfixExpr : public CT_UnaryExpr {
2647
 
#line 2648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3964
#line 3965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
3965
  friend class ::CCExprResolve;
 
3966
  friend class ::CExprResolve;
2648
3967
  friend class ::WinIfExists;
2649
3968
  friend class ::WinImportHandler;
2650
3969
  friend class ::WinMacros;
2651
 
  friend class ::CMatchSyntax;
2652
 
  friend class ::ExtGnu;
 
3970
  friend class ::WinAsm;
 
3971
  friend class ::WinDeclSpecs;
 
3972
  friend class ::WinMemberExplSpec;
 
3973
  friend class ::WinTypeKeywords;
 
3974
  friend class ::WinFriend;
2653
3975
  friend class ::ExtAC;
2654
3976
  friend class ::ExtACBuilderCoupling;
2655
3977
  friend class ::ExtACSyntaxCoupling;
2656
3978
  friend class ::ExtACTree;
2657
3979
  friend class ::ExtACKeywords;
2658
 
  friend class ::WinAsm;
2659
 
  friend class ::WinDeclSpecs;
2660
 
  friend class ::WinMemberExplSpec;
2661
 
  friend class ::WinTypeKeywords;
 
3980
  friend class ::ExtGnu;
2662
3981
  friend class ::PragmaOnceUnitState;
2663
3982
  friend class ::PragmaOnce;
2664
 
  friend class ::CCExprResolve;
2665
 
  friend class ::CExprResolve;
 
3983
  friend class ::CMatchSyntax;
2666
3984
 
2667
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3985
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2668
3986
 
2669
3987
public:
 
3988
  /** Constructor.
 
3989
   *  \param e The expression on which to invoke the operator. 
 
3990
   *  \param o The postfix operator. */
2670
3991
  CT_PostfixExpr (CTree *e, CTree *o) :
2671
3992
    CT_UnaryExpr (e, o) {}
 
3993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2672
3994
  static const char *NodeId ();
 
3995
  /** Get the name of the node. Can be compared with NodeId(). */
2673
3996
  const char *NodeName () const { return NodeId (); }
2674
3997
   private:
2675
3998
  typedef CT_PostfixExpr CCExprResolveExpr;
2676
3999
 
2677
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4000
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2678
4001
 public :
2679
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4002
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2680
4003
  typedef CT_PostfixExpr CExprResolveExpr;
2681
4004
 
2682
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2683
4006
 public :
2684
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2685
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4007
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4008
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2686
4009
};
2687
4010
 
 
4011
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
4012
 *  Tree node representing an address expression, e.g. &a. */
2688
4013
 
2689
 
#line 2690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4014
#line 4015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2690
4015
} // closed Puma
 
4016
class CCExprResolve;
 
4017
class CExprResolve;
2691
4018
class WinIfExists;
2692
4019
class WinImportHandler;
2693
4020
class WinMacros;
2694
 
class CMatchSyntax;
2695
 
class ExtGnu;
 
4021
class WinAsm;
 
4022
class WinDeclSpecs;
 
4023
class WinMemberExplSpec;
 
4024
class WinTypeKeywords;
 
4025
class WinFriend;
2696
4026
class ExtAC;
2697
4027
class ExtACBuilderCoupling;
2698
4028
class ExtACSyntaxCoupling;
2699
4029
class ExtACTree;
2700
4030
class ExtACKeywords;
2701
 
class WinAsm;
2702
 
class WinDeclSpecs;
2703
 
class WinMemberExplSpec;
2704
 
class WinTypeKeywords;
 
4031
class ExtGnu;
2705
4032
class PragmaOnceUnitState;
2706
4033
class PragmaOnce;
2707
 
class CCExprResolve;
2708
 
class CExprResolve;
2709
 
namespace Puma {
2710
 
 
2711
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4034
class CMatchSyntax;
 
4035
namespace Puma {
 
4036
 
 
4037
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4038
 
 
4039
#line 4040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4040
} // closed Puma
 
4041
 
 
4042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4044
#include "CCExprResolveH.ah"
 
4045
#endif
 
4046
namespace Puma {
 
4047
 
 
4048
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4049
 
 
4050
#line 4051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4051
} // closed Puma
 
4052
 
 
4053
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4054
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4055
#include "CExprResolveH.ah"
 
4056
#endif
 
4057
namespace Puma {
 
4058
 
 
4059
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2712
4060
class CT_AddrExpr : public CT_UnaryExpr {
2713
 
#line 2714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4061
#line 4062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4062
  friend class ::CCExprResolve;
 
4063
  friend class ::CExprResolve;
2714
4064
  friend class ::WinIfExists;
2715
4065
  friend class ::WinImportHandler;
2716
4066
  friend class ::WinMacros;
2717
 
  friend class ::CMatchSyntax;
2718
 
  friend class ::ExtGnu;
 
4067
  friend class ::WinAsm;
 
4068
  friend class ::WinDeclSpecs;
 
4069
  friend class ::WinMemberExplSpec;
 
4070
  friend class ::WinTypeKeywords;
 
4071
  friend class ::WinFriend;
2719
4072
  friend class ::ExtAC;
2720
4073
  friend class ::ExtACBuilderCoupling;
2721
4074
  friend class ::ExtACSyntaxCoupling;
2722
4075
  friend class ::ExtACTree;
2723
4076
  friend class ::ExtACKeywords;
2724
 
  friend class ::WinAsm;
2725
 
  friend class ::WinDeclSpecs;
2726
 
  friend class ::WinMemberExplSpec;
2727
 
  friend class ::WinTypeKeywords;
 
4077
  friend class ::ExtGnu;
2728
4078
  friend class ::PragmaOnceUnitState;
2729
4079
  friend class ::PragmaOnce;
2730
 
  friend class ::CCExprResolve;
2731
 
  friend class ::CExprResolve;
 
4080
  friend class ::CMatchSyntax;
2732
4081
 
2733
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4082
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2734
4083
 
2735
4084
public:
 
4085
  /** Constructor.
 
4086
   *  \param o The address operator, i.e. '&'.
 
4087
   *  \param e The expression from which to take the address. */
2736
4088
  CT_AddrExpr (CTree *o, CTree *e) :
2737
4089
    CT_UnaryExpr (o, e) {}
 
4090
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2738
4091
  static const char *NodeId ();
 
4092
  /** Get the name of the node. Can be compared with NodeId(). */
2739
4093
  const char *NodeName () const { return NodeId (); }
2740
4094
   private:
2741
4095
  typedef CT_AddrExpr CCExprResolveExpr;
2742
4096
 
2743
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4097
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2744
4098
 public :
2745
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4099
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2746
4100
  typedef CT_AddrExpr CExprResolveExpr;
2747
4101
 
2748
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4102
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2749
4103
 public :
2750
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2751
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4104
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4105
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2752
4106
};
2753
4107
 
 
4108
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
4109
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
2754
4110
 
2755
 
#line 2756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4111
#line 4112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2756
4112
} // closed Puma
 
4113
class CCExprResolve;
 
4114
class CExprResolve;
2757
4115
class WinIfExists;
2758
4116
class WinImportHandler;
2759
4117
class WinMacros;
2760
 
class CMatchSyntax;
2761
 
class ExtGnu;
 
4118
class WinAsm;
 
4119
class WinDeclSpecs;
 
4120
class WinMemberExplSpec;
 
4121
class WinTypeKeywords;
 
4122
class WinFriend;
2762
4123
class ExtAC;
2763
4124
class ExtACBuilderCoupling;
2764
4125
class ExtACSyntaxCoupling;
2765
4126
class ExtACTree;
2766
4127
class ExtACKeywords;
2767
 
class WinAsm;
2768
 
class WinDeclSpecs;
2769
 
class WinMemberExplSpec;
2770
 
class WinTypeKeywords;
 
4128
class ExtGnu;
2771
4129
class PragmaOnceUnitState;
2772
4130
class PragmaOnce;
2773
 
class CCExprResolve;
2774
 
class CExprResolve;
2775
 
namespace Puma {
2776
 
 
2777
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4131
class CMatchSyntax;
 
4132
namespace Puma {
 
4133
 
 
4134
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4135
 
 
4136
#line 4137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4137
} // closed Puma
 
4138
 
 
4139
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4140
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4141
#include "CCExprResolveH.ah"
 
4142
#endif
 
4143
namespace Puma {
 
4144
 
 
4145
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4146
 
 
4147
#line 4148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4148
} // closed Puma
 
4149
 
 
4150
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4151
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4152
#include "CExprResolveH.ah"
 
4153
#endif
 
4154
namespace Puma {
 
4155
 
 
4156
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2778
4157
class CT_DerefExpr : public CT_UnaryExpr {
2779
 
#line 2780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4158
#line 4159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4159
  friend class ::CCExprResolve;
 
4160
  friend class ::CExprResolve;
2780
4161
  friend class ::WinIfExists;
2781
4162
  friend class ::WinImportHandler;
2782
4163
  friend class ::WinMacros;
2783
 
  friend class ::CMatchSyntax;
2784
 
  friend class ::ExtGnu;
 
4164
  friend class ::WinAsm;
 
4165
  friend class ::WinDeclSpecs;
 
4166
  friend class ::WinMemberExplSpec;
 
4167
  friend class ::WinTypeKeywords;
 
4168
  friend class ::WinFriend;
2785
4169
  friend class ::ExtAC;
2786
4170
  friend class ::ExtACBuilderCoupling;
2787
4171
  friend class ::ExtACSyntaxCoupling;
2788
4172
  friend class ::ExtACTree;
2789
4173
  friend class ::ExtACKeywords;
2790
 
  friend class ::WinAsm;
2791
 
  friend class ::WinDeclSpecs;
2792
 
  friend class ::WinMemberExplSpec;
2793
 
  friend class ::WinTypeKeywords;
 
4174
  friend class ::ExtGnu;
2794
4175
  friend class ::PragmaOnceUnitState;
2795
4176
  friend class ::PragmaOnce;
2796
 
  friend class ::CCExprResolve;
2797
 
  friend class ::CExprResolve;
 
4177
  friend class ::CMatchSyntax;
2798
4178
 
2799
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4179
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2800
4180
 
2801
4181
public:
 
4182
  /** Constructor.
 
4183
   *  \param o The dereferencing operator, i.e. '*'.
 
4184
   *  \param e The expression to dereference. */
2802
4185
  CT_DerefExpr (CTree *o, CTree *e) :
2803
4186
    CT_UnaryExpr (o, e) {}
 
4187
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2804
4188
  static const char *NodeId ();
 
4189
  /** Get the name of the node. Can be compared with NodeId(). */
2805
4190
  const char *NodeName () const { return NodeId (); }
2806
4191
   private:
2807
4192
  typedef CT_DerefExpr CCExprResolveExpr;
2808
4193
 
2809
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4194
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2810
4195
 public :
2811
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4196
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2812
4197
  typedef CT_DerefExpr CExprResolveExpr;
2813
4198
 
2814
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4199
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2815
4200
 public :
2816
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2817
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4201
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4202
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2818
4203
};
2819
4204
 
 
4205
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
4206
 *  Tree node representing a delete expression, e.g. delete a. */
2820
4207
 
2821
 
#line 2822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4208
#line 4209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2822
4209
} // closed Puma
 
4210
class CCExprResolve;
 
4211
class CExprResolve;
2823
4212
class WinIfExists;
2824
4213
class WinImportHandler;
2825
4214
class WinMacros;
2826
 
class CMatchSyntax;
2827
 
class ExtGnu;
 
4215
class WinAsm;
 
4216
class WinDeclSpecs;
 
4217
class WinMemberExplSpec;
 
4218
class WinTypeKeywords;
 
4219
class WinFriend;
2828
4220
class ExtAC;
2829
4221
class ExtACBuilderCoupling;
2830
4222
class ExtACSyntaxCoupling;
2831
4223
class ExtACTree;
2832
4224
class ExtACKeywords;
2833
 
class WinAsm;
2834
 
class WinDeclSpecs;
2835
 
class WinMemberExplSpec;
2836
 
class WinTypeKeywords;
 
4225
class ExtGnu;
2837
4226
class PragmaOnceUnitState;
2838
4227
class PragmaOnce;
2839
 
class CCExprResolve;
2840
 
class CExprResolve;
2841
 
namespace Puma {
2842
 
 
2843
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4228
class CMatchSyntax;
 
4229
namespace Puma {
 
4230
 
 
4231
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4232
 
 
4233
#line 4234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4234
} // closed Puma
 
4235
 
 
4236
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4237
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4238
#include "CCExprResolveH.ah"
 
4239
#endif
 
4240
namespace Puma {
 
4241
 
 
4242
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4243
 
 
4244
#line 4245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4245
} // closed Puma
 
4246
 
 
4247
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4248
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4249
#include "CExprResolveH.ah"
 
4250
#endif
 
4251
namespace Puma {
 
4252
 
 
4253
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2844
4254
class CT_DeleteExpr : public CT_Expression, public CSemObject {
2845
 
#line 2846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4255
#line 4256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4256
  friend class ::CCExprResolve;
 
4257
  friend class ::CExprResolve;
2846
4258
  friend class ::WinIfExists;
2847
4259
  friend class ::WinImportHandler;
2848
4260
  friend class ::WinMacros;
2849
 
  friend class ::CMatchSyntax;
2850
 
  friend class ::ExtGnu;
 
4261
  friend class ::WinAsm;
 
4262
  friend class ::WinDeclSpecs;
 
4263
  friend class ::WinMemberExplSpec;
 
4264
  friend class ::WinTypeKeywords;
 
4265
  friend class ::WinFriend;
2851
4266
  friend class ::ExtAC;
2852
4267
  friend class ::ExtACBuilderCoupling;
2853
4268
  friend class ::ExtACSyntaxCoupling;
2854
4269
  friend class ::ExtACTree;
2855
4270
  friend class ::ExtACKeywords;
2856
 
  friend class ::WinAsm;
2857
 
  friend class ::WinDeclSpecs;
2858
 
  friend class ::WinMemberExplSpec;
2859
 
  friend class ::WinTypeKeywords;
 
4271
  friend class ::ExtGnu;
2860
4272
  friend class ::PragmaOnceUnitState;
2861
4273
  friend class ::PragmaOnce;
2862
 
  friend class ::CCExprResolve;
2863
 
  friend class ::CExprResolve;
 
4274
  friend class ::CMatchSyntax;
2864
4275
 
2865
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4276
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2866
4277
 
2867
4278
  CTree *sons[2]; // oper, expr
2868
4279
 
2869
4280
public:
2870
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
4281
  /** Constructor.
 
4282
   *  \param op The delete operator.
 
4283
   *  \param e The expression representing the object to delete. */
 
4284
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
4285
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2871
4286
  static const char *NodeId ();
 
4287
  /** Get the name of the node. Can be compared with NodeId(). */
2872
4288
  const char *NodeName () const { return NodeId (); }
 
4289
  /** Get the number of sons. */
2873
4290
  int Sons () const { return 2; }
 
4291
  /** Get the n-th son.
 
4292
   *  \param n The index of the son.
 
4293
   *  \return The n-th son or NULL. */
2874
4294
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
4295
  /** Replace a son.
 
4296
   *  \param old_son The son to replace.
 
4297
   *  \param new_son The new son. */
2875
4298
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
2876
4299
    CTree::ReplaceSon (sons, 2, old_son, new_son);
2877
4300
  }
 
4301
  /** Get the expression. */
2878
4302
  CTree *Expr () const { return sons[1]; }
 
4303
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
2879
4304
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
4305
  /** Get the semantic information object. */
2880
4306
  CSemObject *SemObject () const { return (CSemObject*)this; }
2881
4307
   private:
2882
4308
  typedef CT_DeleteExpr CCExprResolveExpr;
2883
4309
 
2884
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4310
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2885
4311
 public :
2886
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4312
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2887
4313
  typedef CT_DeleteExpr CExprResolveExpr;
2888
4314
 
2889
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4315
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2890
4316
 public :
2891
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2892
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4317
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4318
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2893
4319
};
2894
4320
 
 
4321
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
4322
 *  Tree node representing a new expression, e.g. new A(). */
2895
4323
 
2896
 
#line 2897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4324
#line 4325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2897
4325
} // closed Puma
 
4326
class CCExprResolve;
 
4327
class CExprResolve;
2898
4328
class WinIfExists;
2899
4329
class WinImportHandler;
2900
4330
class WinMacros;
2901
 
class CMatchSyntax;
2902
 
class ExtGnu;
 
4331
class WinAsm;
 
4332
class WinDeclSpecs;
 
4333
class WinMemberExplSpec;
 
4334
class WinTypeKeywords;
 
4335
class WinFriend;
2903
4336
class ExtAC;
2904
4337
class ExtACBuilderCoupling;
2905
4338
class ExtACSyntaxCoupling;
2906
4339
class ExtACTree;
2907
4340
class ExtACKeywords;
2908
 
class WinAsm;
2909
 
class WinDeclSpecs;
2910
 
class WinMemberExplSpec;
2911
 
class WinTypeKeywords;
 
4341
class ExtGnu;
2912
4342
class PragmaOnceUnitState;
2913
4343
class PragmaOnce;
2914
 
class CCExprResolve;
2915
 
class CExprResolve;
2916
 
namespace Puma {
2917
 
 
2918
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4344
class CMatchSyntax;
 
4345
namespace Puma {
 
4346
 
 
4347
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4348
 
 
4349
#line 4350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4350
} // closed Puma
 
4351
 
 
4352
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4353
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4354
#include "CCExprResolveH.ah"
 
4355
#endif
 
4356
namespace Puma {
 
4357
 
 
4358
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4359
 
 
4360
#line 4361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4361
} // closed Puma
 
4362
 
 
4363
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4364
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4365
#include "CExprResolveH.ah"
 
4366
#endif
 
4367
namespace Puma {
 
4368
 
 
4369
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2919
4370
class CT_NewExpr : public CT_Expression, public CSemObject {
2920
 
#line 2921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4371
#line 4372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4372
  friend class ::CCExprResolve;
 
4373
  friend class ::CExprResolve;
2921
4374
  friend class ::WinIfExists;
2922
4375
  friend class ::WinImportHandler;
2923
4376
  friend class ::WinMacros;
2924
 
  friend class ::CMatchSyntax;
2925
 
  friend class ::ExtGnu;
 
4377
  friend class ::WinAsm;
 
4378
  friend class ::WinDeclSpecs;
 
4379
  friend class ::WinMemberExplSpec;
 
4380
  friend class ::WinTypeKeywords;
 
4381
  friend class ::WinFriend;
2926
4382
  friend class ::ExtAC;
2927
4383
  friend class ::ExtACBuilderCoupling;
2928
4384
  friend class ::ExtACSyntaxCoupling;
2929
4385
  friend class ::ExtACTree;
2930
4386
  friend class ::ExtACKeywords;
2931
 
  friend class ::WinAsm;
2932
 
  friend class ::WinDeclSpecs;
2933
 
  friend class ::WinMemberExplSpec;
2934
 
  friend class ::WinTypeKeywords;
 
4387
  friend class ::ExtGnu;
2935
4388
  friend class ::PragmaOnceUnitState;
2936
4389
  friend class ::PragmaOnce;
2937
 
  friend class ::CCExprResolve;
2938
 
  friend class ::CExprResolve;
 
4390
  friend class ::CMatchSyntax;
2939
4391
 
2940
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4392
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2941
4393
 
2942
4394
  CTree *sons[6]; // oper, placement, open, type, close, init
2943
4395
 
2944
4396
public:
 
4397
  /** Constructor.
 
4398
   *  \param op The new operator.
 
4399
   *  \param p The optional placement expression.
 
4400
   *  \param o The optional left parenthesis around the type identifier.
 
4401
   *  \param t The type identifier specifying the type of the object to create.
 
4402
   *  \param c The optional right parenthesis around the type identifier.
 
4403
   *  \param i The optional initializer. */
2945
4404
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
2946
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
4405
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
4406
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
2947
4407
  }
 
4408
  /** Get the identifier for this node type. Can be compared with NodeName(). */
2948
4409
  static const char *NodeId ();
 
4410
  /** Get the name of the node. Can be compared with NodeId(). */
2949
4411
  const char *NodeName () const { return NodeId (); }
 
4412
  /** Get the number of sons. */
2950
4413
  int Sons () const { return CTree::Sons (sons, 6); }
 
4414
  /** Get the n-th son.
 
4415
   *  \param n The index of the son.
 
4416
   *  \return The n-th son or NULL. */
2951
4417
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
4418
  /** Replace a son.
 
4419
   *  \param old_son The son to replace.
 
4420
   *  \param new_son The new son. */
2952
4421
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
2953
4422
    CTree::ReplaceSon (sons, 6, old_son, new_son);
2954
4423
  }
 
4424
  /** Get the operator name. */
2955
4425
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
4426
  /** Get the placement expression. */
2956
4427
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
4428
  /** Get the initializer. */
2957
4429
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
4430
  /** Get the type of the object to create. */
2958
4431
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
4432
  /** Get the semantic information object. */
2959
4433
  CSemObject *SemObject () const { return (CSemObject*)this; }
2960
4434
   private:
2961
4435
  typedef CT_NewExpr CCExprResolveExpr;
2962
4436
 
2963
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4437
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2964
4438
 public :
2965
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4439
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
2966
4440
  typedef CT_NewExpr CExprResolveExpr;
2967
4441
 
2968
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4442
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2969
4443
 public :
2970
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2971
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4444
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4445
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2972
4446
};
2973
4447
 
 
4448
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
4449
 *  Tree node representing an if-then expression, 
 
4450
 *  e.g. a>0?a:b or a?:b. */
2974
4451
 
2975
 
#line 2976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4452
#line 4453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2976
4453
} // closed Puma
 
4454
class CCExprResolve;
 
4455
class CExprResolve;
2977
4456
class WinIfExists;
2978
4457
class WinImportHandler;
2979
4458
class WinMacros;
2980
 
class CMatchSyntax;
2981
 
class ExtGnu;
 
4459
class WinAsm;
 
4460
class WinDeclSpecs;
 
4461
class WinMemberExplSpec;
 
4462
class WinTypeKeywords;
 
4463
class WinFriend;
2982
4464
class ExtAC;
2983
4465
class ExtACBuilderCoupling;
2984
4466
class ExtACSyntaxCoupling;
2985
4467
class ExtACTree;
2986
4468
class ExtACKeywords;
2987
 
class WinAsm;
2988
 
class WinDeclSpecs;
2989
 
class WinMemberExplSpec;
2990
 
class WinTypeKeywords;
 
4469
class ExtGnu;
2991
4470
class PragmaOnceUnitState;
2992
4471
class PragmaOnce;
2993
 
class CCExprResolve;
2994
 
class CExprResolve;
2995
 
namespace Puma {
2996
 
 
2997
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4472
class CMatchSyntax;
 
4473
namespace Puma {
 
4474
 
 
4475
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4476
 
 
4477
#line 4478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4478
} // closed Puma
 
4479
 
 
4480
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4481
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4482
#include "CCExprResolveH.ah"
 
4483
#endif
 
4484
namespace Puma {
 
4485
 
 
4486
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4487
 
 
4488
#line 4489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4489
} // closed Puma
 
4490
 
 
4491
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4492
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4493
#include "CExprResolveH.ah"
 
4494
#endif
 
4495
namespace Puma {
 
4496
 
 
4497
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2998
4498
class CT_IfThenExpr : public CT_Expression {
2999
 
#line 3000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4499
#line 4500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4500
  friend class ::CCExprResolve;
 
4501
  friend class ::CExprResolve;
3000
4502
  friend class ::WinIfExists;
3001
4503
  friend class ::WinImportHandler;
3002
4504
  friend class ::WinMacros;
3003
 
  friend class ::CMatchSyntax;
3004
 
  friend class ::ExtGnu;
 
4505
  friend class ::WinAsm;
 
4506
  friend class ::WinDeclSpecs;
 
4507
  friend class ::WinMemberExplSpec;
 
4508
  friend class ::WinTypeKeywords;
 
4509
  friend class ::WinFriend;
3005
4510
  friend class ::ExtAC;
3006
4511
  friend class ::ExtACBuilderCoupling;
3007
4512
  friend class ::ExtACSyntaxCoupling;
3008
4513
  friend class ::ExtACTree;
3009
4514
  friend class ::ExtACKeywords;
3010
 
  friend class ::WinAsm;
3011
 
  friend class ::WinDeclSpecs;
3012
 
  friend class ::WinMemberExplSpec;
3013
 
  friend class ::WinTypeKeywords;
 
4515
  friend class ::ExtGnu;
3014
4516
  friend class ::PragmaOnceUnitState;
3015
4517
  friend class ::PragmaOnce;
3016
 
  friend class ::CCExprResolve;
3017
 
  friend class ::CExprResolve;
 
4518
  friend class ::CMatchSyntax;
3018
4519
 
3019
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4520
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3020
4521
 
3021
4522
  CTree *sons[5]; // cond, oper, left, colon, right
3022
4523
 
3023
4524
public:
 
4525
  /** Constructor.
 
4526
   *  \param c1 The condition expression.
 
4527
   *  \param o The question mark operator. 
 
4528
   *  \param l The expression to the left of the colon.
 
4529
   *  \param c2 The colon operator.
 
4530
   *  \param r The expression to the right of the colon. */ 
3024
4531
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
3025
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
4532
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
4533
    AddSon (sons[3], c2); AddSon (sons[4], r);
3026
4534
  }
 
4535
  /** Constructor.
 
4536
   *  \param c1 The condition expression.
 
4537
   *  \param o The question mark operator. 
 
4538
   *  \param c2 The colon operator.
 
4539
   *  \param r The expression to the right of the colon. */ 
3027
4540
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
3028
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
4541
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
4542
    AddSon (sons[3], c2); AddSon (sons[4], r);
3029
4543
  }
 
4544
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3030
4545
  static const char *NodeId ();
 
4546
  /** Get the name of the node. Can be compared with NodeId(). */
3031
4547
  const char *NodeName () const { return NodeId (); }
 
4548
  /** Get the number of sons. */
3032
4549
  int Sons () const { return CTree::Sons (sons, 5); }
 
4550
  /** Get the n-th son.
 
4551
   *  \param n The index of the son.
 
4552
   *  \return The n-th son or NULL. */
3033
4553
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
4554
  /** Get the condition expression. */
3034
4555
  CTree *Condition () const { return sons[0]; }
 
4556
  /** Get the left expression (condition=true). */
3035
4557
  CTree *LeftOperand () const { return sons[2]; }
 
4558
  /** Get the right expression (condition=false). */
3036
4559
  CTree *RightOperand () const { return sons[4]; }
 
4560
  /** Replace a son.
 
4561
   *  \param old_son The son to replace.
 
4562
   *  \param new_son The new son. */
3037
4563
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3038
4564
    CTree::ReplaceSon (sons, 5, old_son, new_son);
3039
4565
  }
3040
4566
   private:
3041
4567
  typedef CT_IfThenExpr CCExprResolveExpr;
3042
4568
 
3043
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4569
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3044
4570
 public :
3045
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4571
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3046
4572
  typedef CT_IfThenExpr CExprResolveExpr;
3047
4573
 
3048
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4574
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3049
4575
 public :
3050
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3051
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4576
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4577
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3052
4578
};
3053
4579
 
 
4580
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
4581
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
3054
4582
 
3055
 
#line 3056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4583
#line 4584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3056
4584
} // closed Puma
 
4585
class CCExprResolve;
 
4586
class CExprResolve;
3057
4587
class WinIfExists;
3058
4588
class WinImportHandler;
3059
4589
class WinMacros;
3060
 
class CMatchSyntax;
3061
 
class ExtGnu;
 
4590
class WinAsm;
 
4591
class WinDeclSpecs;
 
4592
class WinMemberExplSpec;
 
4593
class WinTypeKeywords;
 
4594
class WinFriend;
3062
4595
class ExtAC;
3063
4596
class ExtACBuilderCoupling;
3064
4597
class ExtACSyntaxCoupling;
3065
4598
class ExtACTree;
3066
4599
class ExtACKeywords;
3067
 
class WinAsm;
3068
 
class WinDeclSpecs;
3069
 
class WinMemberExplSpec;
3070
 
class WinTypeKeywords;
 
4600
class ExtGnu;
3071
4601
class PragmaOnceUnitState;
3072
4602
class PragmaOnce;
3073
 
class CCExprResolve;
3074
 
class CExprResolve;
3075
 
namespace Puma {
3076
 
 
3077
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4603
class CMatchSyntax;
 
4604
namespace Puma {
 
4605
 
 
4606
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4607
 
 
4608
#line 4609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4609
} // closed Puma
 
4610
 
 
4611
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4612
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4613
#include "CCExprResolveH.ah"
 
4614
#endif
 
4615
namespace Puma {
 
4616
 
 
4617
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4618
 
 
4619
#line 4620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4620
} // closed Puma
 
4621
 
 
4622
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4623
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4624
#include "CExprResolveH.ah"
 
4625
#endif
 
4626
namespace Puma {
 
4627
 
 
4628
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3078
4629
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
3079
 
#line 3080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4630
#line 4631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4631
  friend class ::CCExprResolve;
 
4632
  friend class ::CExprResolve;
3080
4633
  friend class ::WinIfExists;
3081
4634
  friend class ::WinImportHandler;
3082
4635
  friend class ::WinMacros;
3083
 
  friend class ::CMatchSyntax;
3084
 
  friend class ::ExtGnu;
 
4636
  friend class ::WinAsm;
 
4637
  friend class ::WinDeclSpecs;
 
4638
  friend class ::WinMemberExplSpec;
 
4639
  friend class ::WinTypeKeywords;
 
4640
  friend class ::WinFriend;
3085
4641
  friend class ::ExtAC;
3086
4642
  friend class ::ExtACBuilderCoupling;
3087
4643
  friend class ::ExtACSyntaxCoupling;
3088
4644
  friend class ::ExtACTree;
3089
4645
  friend class ::ExtACKeywords;
3090
 
  friend class ::WinAsm;
3091
 
  friend class ::WinDeclSpecs;
3092
 
  friend class ::WinMemberExplSpec;
3093
 
  friend class ::WinTypeKeywords;
 
4646
  friend class ::ExtGnu;
3094
4647
  friend class ::PragmaOnceUnitState;
3095
4648
  friend class ::PragmaOnce;
3096
 
  friend class ::CCExprResolve;
3097
 
  friend class ::CExprResolve;
 
4649
  friend class ::CMatchSyntax;
3098
4650
 
3099
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4651
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3100
4652
 
3101
4653
  CTree *sons[4]; // open, type, close, init
3102
4654
 
3103
4655
public:
 
4656
  /** Constructor.
 
4657
   *  \param r Left parenthesis of the type name.
 
4658
   *  \param t The type name.
 
4659
   *  \param cr Right parenthesis of the type name.
 
4660
   *  \param i The initializer list. */
3104
4661
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
3105
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
4662
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
4663
    AddSon (sons[2], cr); AddSon (sons[3], i);
3106
4664
  }
 
4665
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3107
4666
  static const char *NodeId ();
 
4667
  /** Get the name of the node. Can be compared with NodeId(). */
3108
4668
  const char *NodeName () const { return NodeId (); }
 
4669
  /** Get the number of sons. */
3109
4670
  int Sons () const { return 4; }
 
4671
  /** Get the n-th son.
 
4672
   *  \param n The index of the son.
 
4673
   *  \return The n-th son or NULL. */
3110
4674
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
4675
  /** Replace a son.
 
4676
   *  \param old_son The son to replace.
 
4677
   *  \param new_son The new son. */
3111
4678
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3112
4679
    CTree::ReplaceSon (sons, 4, old_son, new_son);
3113
4680
  }
 
4681
  /** Get the type name. */
3114
4682
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
4683
  /** Get the initializer list. */
3115
4684
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
4685
  /** Get the semantic information object. */
3116
4686
  CSemObject *SemObject () const { return (CSemObject*)this; }
3117
4687
   private:
3118
4688
  typedef CT_CmpdLiteral CCExprResolveExpr;
3119
4689
 
3120
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4690
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3121
4691
 public :
3122
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4692
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3123
4693
  typedef CT_CmpdLiteral CExprResolveExpr;
3124
4694
 
3125
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4695
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3126
4696
 public :
3127
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3128
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4697
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4698
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3129
4699
};
3130
4700
 
 
4701
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
4702
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
3131
4703
 
3132
 
#line 3133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4704
#line 4705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3133
4705
} // closed Puma
 
4706
class CCExprResolve;
 
4707
class CExprResolve;
3134
4708
class WinIfExists;
3135
4709
class WinImportHandler;
3136
4710
class WinMacros;
3137
 
class CMatchSyntax;
3138
 
class ExtGnu;
 
4711
class WinAsm;
 
4712
class WinDeclSpecs;
 
4713
class WinMemberExplSpec;
 
4714
class WinTypeKeywords;
 
4715
class WinFriend;
3139
4716
class ExtAC;
3140
4717
class ExtACBuilderCoupling;
3141
4718
class ExtACSyntaxCoupling;
3142
4719
class ExtACTree;
3143
4720
class ExtACKeywords;
3144
 
class WinAsm;
3145
 
class WinDeclSpecs;
3146
 
class WinMemberExplSpec;
3147
 
class WinTypeKeywords;
 
4721
class ExtGnu;
3148
4722
class PragmaOnceUnitState;
3149
4723
class PragmaOnce;
3150
 
class CCExprResolve;
3151
 
class CExprResolve;
3152
 
namespace Puma {
3153
 
 
3154
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4724
class CMatchSyntax;
 
4725
namespace Puma {
 
4726
 
 
4727
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4728
 
 
4729
#line 4730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4730
} // closed Puma
 
4731
 
 
4732
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4733
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4734
#include "CCExprResolveH.ah"
 
4735
#endif
 
4736
namespace Puma {
 
4737
 
 
4738
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4739
 
 
4740
#line 4741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4741
} // closed Puma
 
4742
 
 
4743
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4744
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4745
#include "CExprResolveH.ah"
 
4746
#endif
 
4747
namespace Puma {
 
4748
 
 
4749
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3155
4750
class CT_ConstructExpr : public CT_Expression, public CSemObject {
3156
 
#line 3157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4751
#line 4752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4752
  friend class ::CCExprResolve;
 
4753
  friend class ::CExprResolve;
3157
4754
  friend class ::WinIfExists;
3158
4755
  friend class ::WinImportHandler;
3159
4756
  friend class ::WinMacros;
3160
 
  friend class ::CMatchSyntax;
3161
 
  friend class ::ExtGnu;
 
4757
  friend class ::WinAsm;
 
4758
  friend class ::WinDeclSpecs;
 
4759
  friend class ::WinMemberExplSpec;
 
4760
  friend class ::WinTypeKeywords;
 
4761
  friend class ::WinFriend;
3162
4762
  friend class ::ExtAC;
3163
4763
  friend class ::ExtACBuilderCoupling;
3164
4764
  friend class ::ExtACSyntaxCoupling;
3165
4765
  friend class ::ExtACTree;
3166
4766
  friend class ::ExtACKeywords;
3167
 
  friend class ::WinAsm;
3168
 
  friend class ::WinDeclSpecs;
3169
 
  friend class ::WinMemberExplSpec;
3170
 
  friend class ::WinTypeKeywords;
 
4767
  friend class ::ExtGnu;
3171
4768
  friend class ::PragmaOnceUnitState;
3172
4769
  friend class ::PragmaOnce;
3173
 
  friend class ::CCExprResolve;
3174
 
  friend class ::CExprResolve;
 
4770
  friend class ::CMatchSyntax;
3175
4771
 
3176
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4772
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3177
4773
 
3178
4774
  CTree *sons[2]; // type, init
3179
4775
 
3180
4776
public:
3181
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
4777
  /** Constructor.
 
4778
   *  \param t The type name.
 
4779
   *  \param i The initializer list. */
 
4780
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
4781
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3182
4782
  static const char *NodeId ();
 
4783
  /** Get the name of the node. Can be compared with NodeId(). */
3183
4784
  const char *NodeName () const { return NodeId (); }
 
4785
  /** Get the number of sons. */
3184
4786
  int Sons () const { return 2; }
 
4787
  /** Get the n-th son.
 
4788
   *  \param n The index of the son.
 
4789
   *  \return The n-th son or NULL. */
3185
4790
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
4791
  /** Replace a son.
 
4792
   *  \param old_son The son to replace.
 
4793
   *  \param new_son The new son. */
3186
4794
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3187
4795
    CTree::ReplaceSon (sons, 2, old_son, new_son);
3188
4796
  }
 
4797
  /** Get the type name. */
3189
4798
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
4799
  /** Get the initializer. */
3190
4800
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
4801
  /** Get the semantic information object. */
3191
4802
  CSemObject *SemObject () const { return (CSemObject*)this; }
3192
4803
   private:
3193
4804
  typedef CT_ConstructExpr CCExprResolveExpr;
3194
4805
 
3195
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4806
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3196
4807
 public :
3197
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4808
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3198
4809
  typedef CT_ConstructExpr CExprResolveExpr;
3199
4810
 
3200
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4811
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3201
4812
 public :
3202
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3203
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4813
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4814
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3204
4815
};
3205
4816
 
 
4817
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
4818
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
3206
4819
 
3207
 
#line 3208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4820
#line 4821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3208
4821
} // closed Puma
 
4822
class CCExprResolve;
 
4823
class CExprResolve;
3209
4824
class WinIfExists;
3210
4825
class WinImportHandler;
3211
4826
class WinMacros;
3212
 
class CMatchSyntax;
3213
 
class ExtGnu;
 
4827
class WinAsm;
 
4828
class WinDeclSpecs;
 
4829
class WinMemberExplSpec;
 
4830
class WinTypeKeywords;
 
4831
class WinFriend;
3214
4832
class ExtAC;
3215
4833
class ExtACBuilderCoupling;
3216
4834
class ExtACSyntaxCoupling;
3217
4835
class ExtACTree;
3218
4836
class ExtACKeywords;
3219
 
class WinAsm;
3220
 
class WinDeclSpecs;
3221
 
class WinMemberExplSpec;
3222
 
class WinTypeKeywords;
 
4837
class ExtGnu;
3223
4838
class PragmaOnceUnitState;
3224
4839
class PragmaOnce;
3225
 
class CCExprResolve;
3226
 
class CExprResolve;
3227
 
namespace Puma {
3228
 
 
3229
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4840
class CMatchSyntax;
 
4841
namespace Puma {
 
4842
 
 
4843
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4844
 
 
4845
#line 4846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4846
} // closed Puma
 
4847
 
 
4848
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4849
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4850
#include "CCExprResolveH.ah"
 
4851
#endif
 
4852
namespace Puma {
 
4853
 
 
4854
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4855
 
 
4856
#line 4857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4857
} // closed Puma
 
4858
 
 
4859
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4860
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4861
#include "CExprResolveH.ah"
 
4862
#endif
 
4863
namespace Puma {
 
4864
 
 
4865
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3230
4866
class CT_ThrowExpr : public CT_Expression {
3231
 
#line 3232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4867
#line 4868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4868
  friend class ::CCExprResolve;
 
4869
  friend class ::CExprResolve;
3232
4870
  friend class ::WinIfExists;
3233
4871
  friend class ::WinImportHandler;
3234
4872
  friend class ::WinMacros;
3235
 
  friend class ::CMatchSyntax;
3236
 
  friend class ::ExtGnu;
 
4873
  friend class ::WinAsm;
 
4874
  friend class ::WinDeclSpecs;
 
4875
  friend class ::WinMemberExplSpec;
 
4876
  friend class ::WinTypeKeywords;
 
4877
  friend class ::WinFriend;
3237
4878
  friend class ::ExtAC;
3238
4879
  friend class ::ExtACBuilderCoupling;
3239
4880
  friend class ::ExtACSyntaxCoupling;
3240
4881
  friend class ::ExtACTree;
3241
4882
  friend class ::ExtACKeywords;
3242
 
  friend class ::WinAsm;
3243
 
  friend class ::WinDeclSpecs;
3244
 
  friend class ::WinMemberExplSpec;
3245
 
  friend class ::WinTypeKeywords;
 
4883
  friend class ::ExtGnu;
3246
4884
  friend class ::PragmaOnceUnitState;
3247
4885
  friend class ::PragmaOnce;
3248
 
  friend class ::CCExprResolve;
3249
 
  friend class ::CExprResolve;
 
4886
  friend class ::CMatchSyntax;
3250
4887
 
3251
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4888
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3252
4889
 
3253
4890
  CTree *sons[2]; // throw, expr
3254
4891
 
3255
4892
public:
3256
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
4893
  /** Constructor.
 
4894
   *  \param t The 'throw' keyword.
 
4895
   *  \param e The expression. */
 
4896
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
4897
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3257
4898
  static const char *NodeId ();
 
4899
  /** Get the name of the node. Can be compared with NodeId(). */
3258
4900
  const char *NodeName () const { return NodeId (); }
 
4901
  /** Get the number of sons. */
3259
4902
  int Sons () const { return CTree::Sons (sons, 2); }
 
4903
  /** Get the n-th son.
 
4904
   *  \param n The index of the son.
 
4905
   *  \return The n-th son or NULL. */
3260
4906
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
4907
  /** Replace a son.
 
4908
   *  \param old_son The son to replace.
 
4909
   *  \param new_son The new son. */
3261
4910
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3262
4911
    CTree::ReplaceSon (sons, 2, old_son, new_son);
3263
4912
  }
 
4913
  /** Get the expression. */
3264
4914
  CTree *Expr () const { return sons[1]; }
3265
4915
   private:
3266
4916
  typedef CT_ThrowExpr CCExprResolveExpr;
3267
4917
 
3268
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
4918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3269
4919
 public :
3270
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
4920
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3271
4921
  typedef CT_ThrowExpr CExprResolveExpr;
3272
4922
 
3273
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
4923
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3274
4924
 public :
3275
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3276
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4925
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
4926
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3277
4927
};
3278
4928
 
 
4929
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
4930
 *  Tree node representing an index expression. */
3279
4931
 
3280
 
#line 3281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4932
#line 4933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3281
4933
} // closed Puma
 
4934
class CCExprResolve;
 
4935
class CExprResolve;
3282
4936
class WinIfExists;
3283
4937
class WinImportHandler;
3284
4938
class WinMacros;
3285
 
class CMatchSyntax;
3286
 
class ExtGnu;
 
4939
class WinAsm;
 
4940
class WinDeclSpecs;
 
4941
class WinMemberExplSpec;
 
4942
class WinTypeKeywords;
 
4943
class WinFriend;
3287
4944
class ExtAC;
3288
4945
class ExtACBuilderCoupling;
3289
4946
class ExtACSyntaxCoupling;
3290
4947
class ExtACTree;
3291
4948
class ExtACKeywords;
3292
 
class WinAsm;
3293
 
class WinDeclSpecs;
3294
 
class WinMemberExplSpec;
3295
 
class WinTypeKeywords;
 
4949
class ExtGnu;
3296
4950
class PragmaOnceUnitState;
3297
4951
class PragmaOnce;
3298
 
class CCExprResolve;
3299
 
class CExprResolve;
3300
 
namespace Puma {
3301
 
 
3302
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3303
 
class CT_IndexExpr : public CT_Expression {
3304
 
#line 3305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4952
class CMatchSyntax;
 
4953
namespace Puma {
 
4954
 
 
4955
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4956
 
 
4957
#line 4958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4958
} // closed Puma
 
4959
 
 
4960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
4962
#include "CCExprResolveH.ah"
 
4963
#endif
 
4964
namespace Puma {
 
4965
 
 
4966
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4967
 
 
4968
#line 4969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4969
} // closed Puma
 
4970
 
 
4971
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4972
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
4973
#include "CExprResolveH.ah"
 
4974
#endif
 
4975
namespace Puma {
 
4976
 
 
4977
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
4978
class CT_IndexExpr : public CT_Call {
 
4979
#line 4980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
4980
  friend class ::CCExprResolve;
 
4981
  friend class ::CExprResolve;
3305
4982
  friend class ::WinIfExists;
3306
4983
  friend class ::WinImportHandler;
3307
4984
  friend class ::WinMacros;
3308
 
  friend class ::CMatchSyntax;
3309
 
  friend class ::ExtGnu;
 
4985
  friend class ::WinAsm;
 
4986
  friend class ::WinDeclSpecs;
 
4987
  friend class ::WinMemberExplSpec;
 
4988
  friend class ::WinTypeKeywords;
 
4989
  friend class ::WinFriend;
3310
4990
  friend class ::ExtAC;
3311
4991
  friend class ::ExtACBuilderCoupling;
3312
4992
  friend class ::ExtACSyntaxCoupling;
3313
4993
  friend class ::ExtACTree;
3314
4994
  friend class ::ExtACKeywords;
3315
 
  friend class ::WinAsm;
3316
 
  friend class ::WinDeclSpecs;
3317
 
  friend class ::WinMemberExplSpec;
3318
 
  friend class ::WinTypeKeywords;
 
4995
  friend class ::ExtGnu;
3319
4996
  friend class ::PragmaOnceUnitState;
3320
4997
  friend class ::PragmaOnce;
3321
 
  friend class ::CCExprResolve;
3322
 
  friend class ::CExprResolve;
 
4998
  friend class ::CMatchSyntax;
3323
4999
 
3324
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5000
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3325
5001
 
3326
5002
  CTree *sons[4]; // expr, open, index, close
3327
5003
 
3328
5004
public:
 
5005
  /** Constructor.
 
5006
   *  \param e The expression on which to invoke the index operator.
 
5007
   *  \param o Left parenthesis of the index expression.
 
5008
   *  \param i The index expression. 
 
5009
   *  \param c Right parenthesis of the index expression. */
3329
5010
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
3330
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
5011
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
5012
    AddSon (sons[2], i); AddSon (sons[3], c);
3331
5013
  }
 
5014
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3332
5015
  static const char *NodeId ();
 
5016
  /** Get the name of the node. Can be compared with NodeId(). */
3333
5017
  const char *NodeName () const { return NodeId (); }
 
5018
  /** Get the number of sons. */
3334
5019
  int Sons () const { return 4; }
 
5020
  /** Get the n-th son.
 
5021
   *  \param n The index of the son.
 
5022
   *  \return The n-th son or NULL. */
3335
5023
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
5024
  /** Replace a son.
 
5025
   *  \param old_son The son to replace.
 
5026
   *  \param new_son The new son. */
3336
5027
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3337
5028
    CTree::ReplaceSon (sons, 4, old_son, new_son);
3338
5029
  }
3339
5030
   private:
3340
5031
  typedef CT_IndexExpr CCExprResolveExpr;
3341
5032
 
3342
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5033
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3343
5034
 public :
3344
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5035
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3345
5036
  typedef CT_IndexExpr CExprResolveExpr;
3346
5037
 
3347
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5038
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3348
5039
 public :
3349
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3350
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5040
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5041
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3351
5042
};
3352
5043
 
 
5044
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
5045
 *  Tree node representing a function call expression, e.g. f(i). */
3353
5046
 
3354
 
#line 3355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5047
#line 5048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3355
5048
} // closed Puma
 
5049
class CCExprResolve;
 
5050
class CExprResolve;
3356
5051
class WinIfExists;
3357
5052
class WinImportHandler;
3358
5053
class WinMacros;
3359
 
class CMatchSyntax;
3360
 
class ExtGnu;
 
5054
class WinAsm;
 
5055
class WinDeclSpecs;
 
5056
class WinMemberExplSpec;
 
5057
class WinTypeKeywords;
 
5058
class WinFriend;
3361
5059
class ExtAC;
3362
5060
class ExtACBuilderCoupling;
3363
5061
class ExtACSyntaxCoupling;
3364
5062
class ExtACTree;
3365
5063
class ExtACKeywords;
3366
 
class WinAsm;
3367
 
class WinDeclSpecs;
3368
 
class WinMemberExplSpec;
3369
 
class WinTypeKeywords;
 
5064
class ExtGnu;
3370
5065
class PragmaOnceUnitState;
3371
5066
class PragmaOnce;
3372
 
class CCExprResolve;
3373
 
class CExprResolve;
3374
 
namespace Puma {
3375
 
 
3376
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3377
 
class CT_CallExpr : public CT_Expression, public CSemObject {
3378
 
#line 3379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5067
class CMatchSyntax;
 
5068
namespace Puma {
 
5069
 
 
5070
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5071
 
 
5072
#line 5073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5073
} // closed Puma
 
5074
 
 
5075
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5076
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5077
#include "CCExprResolveH.ah"
 
5078
#endif
 
5079
namespace Puma {
 
5080
 
 
5081
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5082
 
 
5083
#line 5084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5084
} // closed Puma
 
5085
 
 
5086
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5087
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5088
#include "CExprResolveH.ah"
 
5089
#endif
 
5090
namespace Puma {
 
5091
 
 
5092
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5093
class CT_CallExpr : public CT_Call {
 
5094
#line 5095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5095
  friend class ::CCExprResolve;
 
5096
  friend class ::CExprResolve;
3379
5097
  friend class ::WinIfExists;
3380
5098
  friend class ::WinImportHandler;
3381
5099
  friend class ::WinMacros;
3382
 
  friend class ::CMatchSyntax;
3383
 
  friend class ::ExtGnu;
 
5100
  friend class ::WinAsm;
 
5101
  friend class ::WinDeclSpecs;
 
5102
  friend class ::WinMemberExplSpec;
 
5103
  friend class ::WinTypeKeywords;
 
5104
  friend class ::WinFriend;
3384
5105
  friend class ::ExtAC;
3385
5106
  friend class ::ExtACBuilderCoupling;
3386
5107
  friend class ::ExtACSyntaxCoupling;
3387
5108
  friend class ::ExtACTree;
3388
5109
  friend class ::ExtACKeywords;
3389
 
  friend class ::WinAsm;
3390
 
  friend class ::WinDeclSpecs;
3391
 
  friend class ::WinMemberExplSpec;
3392
 
  friend class ::WinTypeKeywords;
 
5110
  friend class ::ExtGnu;
3393
5111
  friend class ::PragmaOnceUnitState;
3394
5112
  friend class ::PragmaOnce;
3395
 
  friend class ::CCExprResolve;
3396
 
  friend class ::CExprResolve;
 
5113
  friend class ::CMatchSyntax;
3397
5114
 
3398
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5115
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3399
5116
 
3400
5117
  CTree *sons[2]; // expr, args
3401
5118
 
3402
5119
public:
3403
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
3404
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
5120
  /** Constructor.
 
5121
   *  \param e The expression on which the call is invoked. */
 
5122
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
5123
  /** Constructor.
 
5124
   *  \param e The expression on which the call is invoked.
 
5125
   *  \param l The argument list of the call. */
 
5126
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
5127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3405
5128
  static const char *NodeId ();
 
5129
  /** Get the name of the node. Can be compared with NodeId(). */
3406
5130
  const char *NodeName () const { return NodeId (); }
 
5131
  /** Get the number of sons. */
3407
5132
  int Sons () const { return CTree::Sons (sons, 2); }
 
5133
  /** Get the n-th son.
 
5134
   *  \param n The index of the son.
 
5135
   *  \return The n-th son or NULL. */
3408
5136
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
5137
  /** Replace a son.
 
5138
   *  \param old_son The son to replace.
 
5139
   *  \param new_son The new son. */
3409
5140
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3410
5141
    CTree::ReplaceSon (sons, 2, old_son, new_son);
3411
5142
  }
3412
5143
  CTree *Expr () const { return sons[0]; }
3413
5144
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
3414
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
3415
5145
   private:
3416
5146
  typedef CT_CallExpr CCExprResolveExpr;
3417
5147
 
3418
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5148
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3419
5149
 public :
3420
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5150
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3421
5151
  typedef CT_CallExpr CExprResolveExpr;
3422
5152
 
3423
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5153
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3424
5154
 public :
3425
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3426
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5155
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5156
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3427
5157
};
3428
5158
 
 
5159
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
5160
 *  Tree node representing a cast expression, e.g. (int)a. */
3429
5161
 
3430
 
#line 3431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5162
#line 5163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3431
5163
} // closed Puma
 
5164
class CCExprResolve;
 
5165
class CExprResolve;
3432
5166
class WinIfExists;
3433
5167
class WinImportHandler;
3434
5168
class WinMacros;
3435
 
class CMatchSyntax;
3436
 
class ExtGnu;
 
5169
class WinAsm;
 
5170
class WinDeclSpecs;
 
5171
class WinMemberExplSpec;
 
5172
class WinTypeKeywords;
 
5173
class WinFriend;
3437
5174
class ExtAC;
3438
5175
class ExtACBuilderCoupling;
3439
5176
class ExtACSyntaxCoupling;
3440
5177
class ExtACTree;
3441
5178
class ExtACKeywords;
3442
 
class WinAsm;
3443
 
class WinDeclSpecs;
3444
 
class WinMemberExplSpec;
3445
 
class WinTypeKeywords;
 
5179
class ExtGnu;
3446
5180
class PragmaOnceUnitState;
3447
5181
class PragmaOnce;
3448
 
class CCExprResolve;
3449
 
class CExprResolve;
3450
 
namespace Puma {
3451
 
 
3452
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5182
class CMatchSyntax;
 
5183
namespace Puma {
 
5184
 
 
5185
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5186
 
 
5187
#line 5188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5188
} // closed Puma
 
5189
 
 
5190
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5191
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5192
#include "CCExprResolveH.ah"
 
5193
#endif
 
5194
namespace Puma {
 
5195
 
 
5196
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5197
 
 
5198
#line 5199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5199
} // closed Puma
 
5200
 
 
5201
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5202
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5203
#include "CExprResolveH.ah"
 
5204
#endif
 
5205
namespace Puma {
 
5206
 
 
5207
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3453
5208
class CT_CastExpr : public CT_Expression {
3454
 
#line 3455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5209
#line 5210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5210
  friend class ::CCExprResolve;
 
5211
  friend class ::CExprResolve;
3455
5212
  friend class ::WinIfExists;
3456
5213
  friend class ::WinImportHandler;
3457
5214
  friend class ::WinMacros;
3458
 
  friend class ::CMatchSyntax;
3459
 
  friend class ::ExtGnu;
 
5215
  friend class ::WinAsm;
 
5216
  friend class ::WinDeclSpecs;
 
5217
  friend class ::WinMemberExplSpec;
 
5218
  friend class ::WinTypeKeywords;
 
5219
  friend class ::WinFriend;
3460
5220
  friend class ::ExtAC;
3461
5221
  friend class ::ExtACBuilderCoupling;
3462
5222
  friend class ::ExtACSyntaxCoupling;
3463
5223
  friend class ::ExtACTree;
3464
5224
  friend class ::ExtACKeywords;
3465
 
  friend class ::WinAsm;
3466
 
  friend class ::WinDeclSpecs;
3467
 
  friend class ::WinMemberExplSpec;
3468
 
  friend class ::WinTypeKeywords;
 
5225
  friend class ::ExtGnu;
3469
5226
  friend class ::PragmaOnceUnitState;
3470
5227
  friend class ::PragmaOnce;
3471
 
  friend class ::CCExprResolve;
3472
 
  friend class ::CExprResolve;
 
5228
  friend class ::CMatchSyntax;
3473
5229
 
3474
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5230
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3475
5231
 
3476
5232
  CTree *sons[4]; // open, type, close, expr
3477
5233
 
3478
5234
public:
 
5235
  /** Constructor.
 
5236
   *  \param o Left parenthesis of the type name.
 
5237
   *  \param t The type to cast to.
 
5238
   *  \param c Right parenthesis of the type name. 
 
5239
   *  \param e The expression to cast. */
3479
5240
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
3480
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
5241
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
5242
    AddSon (sons[2], c); AddSon (sons[3], e);
3481
5243
  }
 
5244
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3482
5245
  static const char *NodeId ();
 
5246
  /** Get the name of the node. Can be compared with NodeId(). */
3483
5247
  const char *NodeName () const { return NodeId (); }
 
5248
  /** Get the number of sons. */
3484
5249
  int Sons () const { return 4; }
 
5250
  /** Get the n-th son.
 
5251
   *  \param n The index of the son.
 
5252
   *  \return The n-th son or NULL. */
3485
5253
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
5254
  /** Replace a son.
 
5255
   *  \param old_son The son to replace.
 
5256
   *  \param new_son The new son. */
3486
5257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3487
5258
    CTree::ReplaceSon (sons, 4, old_son, new_son);
3488
5259
  }
 
5260
  /** Get the casted expression. */
3489
5261
  CTree *Expr () const { return sons[3]; }
 
5262
  /** Get the type to cast to. */
3490
5263
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
3491
5264
   private:
3492
5265
  typedef CT_CastExpr CCExprResolveExpr;
3493
5266
 
3494
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5267
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3495
5268
 public :
3496
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5269
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3497
5270
  typedef CT_CastExpr CExprResolveExpr;
3498
5271
 
3499
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5272
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3500
5273
 public :
3501
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3502
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5274
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5275
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3503
5276
};
3504
5277
 
 
5278
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
5279
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
3505
5280
 
3506
 
#line 3507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5281
#line 5282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3507
5282
} // closed Puma
 
5283
class CCExprResolve;
 
5284
class CExprResolve;
3508
5285
class WinIfExists;
3509
5286
class WinImportHandler;
3510
5287
class WinMacros;
3511
 
class CMatchSyntax;
3512
 
class ExtGnu;
 
5288
class WinAsm;
 
5289
class WinDeclSpecs;
 
5290
class WinMemberExplSpec;
 
5291
class WinTypeKeywords;
 
5292
class WinFriend;
3513
5293
class ExtAC;
3514
5294
class ExtACBuilderCoupling;
3515
5295
class ExtACSyntaxCoupling;
3516
5296
class ExtACTree;
3517
5297
class ExtACKeywords;
3518
 
class WinAsm;
3519
 
class WinDeclSpecs;
3520
 
class WinMemberExplSpec;
3521
 
class WinTypeKeywords;
 
5298
class ExtGnu;
3522
5299
class PragmaOnceUnitState;
3523
5300
class PragmaOnce;
3524
 
class CCExprResolve;
3525
 
class CExprResolve;
3526
 
namespace Puma {
3527
 
 
3528
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5301
class CMatchSyntax;
 
5302
namespace Puma {
 
5303
 
 
5304
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5305
 
 
5306
#line 5307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5307
} // closed Puma
 
5308
 
 
5309
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5310
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5311
#include "CCExprResolveH.ah"
 
5312
#endif
 
5313
namespace Puma {
 
5314
 
 
5315
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5316
 
 
5317
#line 5318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5318
} // closed Puma
 
5319
 
 
5320
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5321
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5322
#include "CExprResolveH.ah"
 
5323
#endif
 
5324
namespace Puma {
 
5325
 
 
5326
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3529
5327
class CT_StaticCast : public CT_Expression {
3530
 
#line 3531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5328
#line 5329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5329
  friend class ::CCExprResolve;
 
5330
  friend class ::CExprResolve;
3531
5331
  friend class ::WinIfExists;
3532
5332
  friend class ::WinImportHandler;
3533
5333
  friend class ::WinMacros;
3534
 
  friend class ::CMatchSyntax;
3535
 
  friend class ::ExtGnu;
 
5334
  friend class ::WinAsm;
 
5335
  friend class ::WinDeclSpecs;
 
5336
  friend class ::WinMemberExplSpec;
 
5337
  friend class ::WinTypeKeywords;
 
5338
  friend class ::WinFriend;
3536
5339
  friend class ::ExtAC;
3537
5340
  friend class ::ExtACBuilderCoupling;
3538
5341
  friend class ::ExtACSyntaxCoupling;
3539
5342
  friend class ::ExtACTree;
3540
5343
  friend class ::ExtACKeywords;
3541
 
  friend class ::WinAsm;
3542
 
  friend class ::WinDeclSpecs;
3543
 
  friend class ::WinMemberExplSpec;
3544
 
  friend class ::WinTypeKeywords;
 
5344
  friend class ::ExtGnu;
3545
5345
  friend class ::PragmaOnceUnitState;
3546
5346
  friend class ::PragmaOnce;
3547
 
  friend class ::CCExprResolve;
3548
 
  friend class ::CExprResolve;
 
5347
  friend class ::CMatchSyntax;
3549
5348
 
3550
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5349
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3551
5350
 
3552
5351
  CTree *sons[5]; // cast, open, type, close, expr
3553
5352
 
3554
5353
public:
 
5354
  /** Constructor.
 
5355
   *  \param cst The cast operator, i.e. 'static_cast'.
 
5356
   *  \param o Left arrow bracket of the type name.
 
5357
   *  \param t The type to cast to.
 
5358
   *  \param c Right array bracket of the type name.
 
5359
   *  \param e The expression to cast. */
3555
5360
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
3556
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
5361
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
5362
    AddSon (sons[3], c); AddSon (sons[4], e);
3557
5363
  }
 
5364
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3558
5365
  static const char *NodeId ();
 
5366
  /** Get the name of the node. Can be compared with NodeId(). */
3559
5367
  const char *NodeName () const { return NodeId (); }
 
5368
  /** Get the number of sons. */
3560
5369
  int Sons () const { return 5; }
 
5370
  /** Get the n-th son.
 
5371
   *  \param n The index of the son.
 
5372
   *  \return The n-th son or NULL. */
3561
5373
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
5374
  /** Replace a son.
 
5375
   *  \param old_son The son to replace.
 
5376
   *  \param new_son The new son. */
3562
5377
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3563
5378
    CTree::ReplaceSon (sons, 5, old_son, new_son);
3564
5379
  }
 
5380
  /** Get the casted expression. */
3565
5381
  CTree *Expr () const { return sons[4]; }
 
5382
  /** Get the type to cast to. */
3566
5383
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
3567
5384
   private:
3568
5385
  typedef CT_StaticCast CCExprResolveExpr;
3569
5386
 
3570
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5387
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3571
5388
 public :
3572
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5389
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3573
5390
  typedef CT_StaticCast CExprResolveExpr;
3574
5391
 
3575
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5392
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3576
5393
 public :
3577
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3578
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5394
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5395
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3579
5396
};
3580
5397
 
 
5398
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
5399
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
3581
5400
 
3582
 
#line 3583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5401
#line 5402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3583
5402
} // closed Puma
 
5403
class CCExprResolve;
 
5404
class CExprResolve;
3584
5405
class WinIfExists;
3585
5406
class WinImportHandler;
3586
5407
class WinMacros;
3587
 
class CMatchSyntax;
3588
 
class ExtGnu;
 
5408
class WinAsm;
 
5409
class WinDeclSpecs;
 
5410
class WinMemberExplSpec;
 
5411
class WinTypeKeywords;
 
5412
class WinFriend;
3589
5413
class ExtAC;
3590
5414
class ExtACBuilderCoupling;
3591
5415
class ExtACSyntaxCoupling;
3592
5416
class ExtACTree;
3593
5417
class ExtACKeywords;
3594
 
class WinAsm;
3595
 
class WinDeclSpecs;
3596
 
class WinMemberExplSpec;
3597
 
class WinTypeKeywords;
 
5418
class ExtGnu;
3598
5419
class PragmaOnceUnitState;
3599
5420
class PragmaOnce;
3600
 
class CCExprResolve;
3601
 
class CExprResolve;
3602
 
namespace Puma {
3603
 
 
3604
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5421
class CMatchSyntax;
 
5422
namespace Puma {
 
5423
 
 
5424
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5425
 
 
5426
#line 5427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5427
} // closed Puma
 
5428
 
 
5429
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5430
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5431
#include "CCExprResolveH.ah"
 
5432
#endif
 
5433
namespace Puma {
 
5434
 
 
5435
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5436
 
 
5437
#line 5438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5438
} // closed Puma
 
5439
 
 
5440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5442
#include "CExprResolveH.ah"
 
5443
#endif
 
5444
namespace Puma {
 
5445
 
 
5446
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3605
5447
class CT_ConstCast : public CT_StaticCast {
3606
 
#line 3607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5448
#line 5449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5449
  friend class ::CCExprResolve;
 
5450
  friend class ::CExprResolve;
3607
5451
  friend class ::WinIfExists;
3608
5452
  friend class ::WinImportHandler;
3609
5453
  friend class ::WinMacros;
3610
 
  friend class ::CMatchSyntax;
3611
 
  friend class ::ExtGnu;
 
5454
  friend class ::WinAsm;
 
5455
  friend class ::WinDeclSpecs;
 
5456
  friend class ::WinMemberExplSpec;
 
5457
  friend class ::WinTypeKeywords;
 
5458
  friend class ::WinFriend;
3612
5459
  friend class ::ExtAC;
3613
5460
  friend class ::ExtACBuilderCoupling;
3614
5461
  friend class ::ExtACSyntaxCoupling;
3615
5462
  friend class ::ExtACTree;
3616
5463
  friend class ::ExtACKeywords;
3617
 
  friend class ::WinAsm;
3618
 
  friend class ::WinDeclSpecs;
3619
 
  friend class ::WinMemberExplSpec;
3620
 
  friend class ::WinTypeKeywords;
 
5464
  friend class ::ExtGnu;
3621
5465
  friend class ::PragmaOnceUnitState;
3622
5466
  friend class ::PragmaOnce;
3623
 
  friend class ::CCExprResolve;
3624
 
  friend class ::CExprResolve;
 
5467
  friend class ::CMatchSyntax;
3625
5468
 
3626
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5469
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3627
5470
 
3628
5471
public:
 
5472
  /** Constructor.
 
5473
   *  \param cst The cast operator, i.e. 'const_cast'.
 
5474
   *  \param o Left arrow bracket of the type name.
 
5475
   *  \param t The type to cast to.
 
5476
   *  \param c Right array bracket of the type name.
 
5477
   *  \param e The expression to cast. */
3629
5478
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
3630
5479
    CT_StaticCast (cst, o, t, c, e) {}
 
5480
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3631
5481
  static const char *NodeId ();
 
5482
  /** Get the name of the node. Can be compared with NodeId(). */
3632
5483
  const char *NodeName () const { return NodeId (); }
3633
5484
   private:
3634
5485
  typedef CT_ConstCast CCExprResolveExpr;
3635
5486
 
3636
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5487
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3637
5488
 public :
3638
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5489
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3639
5490
  typedef CT_ConstCast CExprResolveExpr;
3640
5491
 
3641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5492
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3642
5493
 public :
3643
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3644
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5494
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5495
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3645
5496
};
3646
5497
 
 
5498
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
5499
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
3647
5500
 
3648
 
#line 3649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5501
#line 5502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3649
5502
} // closed Puma
 
5503
class CCExprResolve;
 
5504
class CExprResolve;
3650
5505
class WinIfExists;
3651
5506
class WinImportHandler;
3652
5507
class WinMacros;
3653
 
class CMatchSyntax;
3654
 
class ExtGnu;
 
5508
class WinAsm;
 
5509
class WinDeclSpecs;
 
5510
class WinMemberExplSpec;
 
5511
class WinTypeKeywords;
 
5512
class WinFriend;
3655
5513
class ExtAC;
3656
5514
class ExtACBuilderCoupling;
3657
5515
class ExtACSyntaxCoupling;
3658
5516
class ExtACTree;
3659
5517
class ExtACKeywords;
3660
 
class WinAsm;
3661
 
class WinDeclSpecs;
3662
 
class WinMemberExplSpec;
3663
 
class WinTypeKeywords;
 
5518
class ExtGnu;
3664
5519
class PragmaOnceUnitState;
3665
5520
class PragmaOnce;
3666
 
class CCExprResolve;
3667
 
class CExprResolve;
3668
 
namespace Puma {
3669
 
 
3670
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5521
class CMatchSyntax;
 
5522
namespace Puma {
 
5523
 
 
5524
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5525
 
 
5526
#line 5527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5527
} // closed Puma
 
5528
 
 
5529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5531
#include "CCExprResolveH.ah"
 
5532
#endif
 
5533
namespace Puma {
 
5534
 
 
5535
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5536
 
 
5537
#line 5538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5538
} // closed Puma
 
5539
 
 
5540
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5541
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5542
#include "CExprResolveH.ah"
 
5543
#endif
 
5544
namespace Puma {
 
5545
 
 
5546
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3671
5547
class CT_ReintCast : public CT_StaticCast {
3672
 
#line 3673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5548
#line 5549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5549
  friend class ::CCExprResolve;
 
5550
  friend class ::CExprResolve;
3673
5551
  friend class ::WinIfExists;
3674
5552
  friend class ::WinImportHandler;
3675
5553
  friend class ::WinMacros;
3676
 
  friend class ::CMatchSyntax;
3677
 
  friend class ::ExtGnu;
 
5554
  friend class ::WinAsm;
 
5555
  friend class ::WinDeclSpecs;
 
5556
  friend class ::WinMemberExplSpec;
 
5557
  friend class ::WinTypeKeywords;
 
5558
  friend class ::WinFriend;
3678
5559
  friend class ::ExtAC;
3679
5560
  friend class ::ExtACBuilderCoupling;
3680
5561
  friend class ::ExtACSyntaxCoupling;
3681
5562
  friend class ::ExtACTree;
3682
5563
  friend class ::ExtACKeywords;
3683
 
  friend class ::WinAsm;
3684
 
  friend class ::WinDeclSpecs;
3685
 
  friend class ::WinMemberExplSpec;
3686
 
  friend class ::WinTypeKeywords;
 
5564
  friend class ::ExtGnu;
3687
5565
  friend class ::PragmaOnceUnitState;
3688
5566
  friend class ::PragmaOnce;
3689
 
  friend class ::CCExprResolve;
3690
 
  friend class ::CExprResolve;
 
5567
  friend class ::CMatchSyntax;
3691
5568
 
3692
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5569
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3693
5570
 
3694
5571
public:
 
5572
  /** Constructor.
 
5573
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
5574
   *  \param o Left arrow bracket of the type name.
 
5575
   *  \param t The type to cast to.
 
5576
   *  \param c Right array bracket of the type name.
 
5577
   *  \param e The expression to cast. */
3695
5578
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
3696
5579
    CT_StaticCast (cst, o, t, c, e) {}
 
5580
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3697
5581
  static const char *NodeId ();
 
5582
  /** Get the name of the node. Can be compared with NodeId(). */
3698
5583
  const char *NodeName () const { return NodeId (); }
3699
5584
   private:
3700
5585
  typedef CT_ReintCast CCExprResolveExpr;
3701
5586
 
3702
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5587
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3703
5588
 public :
3704
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5589
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3705
5590
  typedef CT_ReintCast CExprResolveExpr;
3706
5591
 
3707
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5592
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3708
5593
 public :
3709
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3710
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5594
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5595
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3711
5596
};
3712
5597
 
 
5598
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
5599
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
3713
5600
 
3714
 
#line 3715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5601
#line 5602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3715
5602
} // closed Puma
 
5603
class CCExprResolve;
 
5604
class CExprResolve;
3716
5605
class WinIfExists;
3717
5606
class WinImportHandler;
3718
5607
class WinMacros;
3719
 
class CMatchSyntax;
3720
 
class ExtGnu;
 
5608
class WinAsm;
 
5609
class WinDeclSpecs;
 
5610
class WinMemberExplSpec;
 
5611
class WinTypeKeywords;
 
5612
class WinFriend;
3721
5613
class ExtAC;
3722
5614
class ExtACBuilderCoupling;
3723
5615
class ExtACSyntaxCoupling;
3724
5616
class ExtACTree;
3725
5617
class ExtACKeywords;
3726
 
class WinAsm;
3727
 
class WinDeclSpecs;
3728
 
class WinMemberExplSpec;
3729
 
class WinTypeKeywords;
 
5618
class ExtGnu;
3730
5619
class PragmaOnceUnitState;
3731
5620
class PragmaOnce;
3732
 
class CCExprResolve;
3733
 
class CExprResolve;
3734
 
namespace Puma {
3735
 
 
3736
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5621
class CMatchSyntax;
 
5622
namespace Puma {
 
5623
 
 
5624
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5625
 
 
5626
#line 5627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5627
} // closed Puma
 
5628
 
 
5629
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5630
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5631
#include "CCExprResolveH.ah"
 
5632
#endif
 
5633
namespace Puma {
 
5634
 
 
5635
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5636
 
 
5637
#line 5638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5638
} // closed Puma
 
5639
 
 
5640
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5641
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5642
#include "CExprResolveH.ah"
 
5643
#endif
 
5644
namespace Puma {
 
5645
 
 
5646
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3737
5647
class CT_DynamicCast : public CT_StaticCast {
3738
 
#line 3739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5648
#line 5649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5649
  friend class ::CCExprResolve;
 
5650
  friend class ::CExprResolve;
3739
5651
  friend class ::WinIfExists;
3740
5652
  friend class ::WinImportHandler;
3741
5653
  friend class ::WinMacros;
3742
 
  friend class ::CMatchSyntax;
3743
 
  friend class ::ExtGnu;
 
5654
  friend class ::WinAsm;
 
5655
  friend class ::WinDeclSpecs;
 
5656
  friend class ::WinMemberExplSpec;
 
5657
  friend class ::WinTypeKeywords;
 
5658
  friend class ::WinFriend;
3744
5659
  friend class ::ExtAC;
3745
5660
  friend class ::ExtACBuilderCoupling;
3746
5661
  friend class ::ExtACSyntaxCoupling;
3747
5662
  friend class ::ExtACTree;
3748
5663
  friend class ::ExtACKeywords;
3749
 
  friend class ::WinAsm;
3750
 
  friend class ::WinDeclSpecs;
3751
 
  friend class ::WinMemberExplSpec;
3752
 
  friend class ::WinTypeKeywords;
 
5664
  friend class ::ExtGnu;
3753
5665
  friend class ::PragmaOnceUnitState;
3754
5666
  friend class ::PragmaOnce;
3755
 
  friend class ::CCExprResolve;
3756
 
  friend class ::CExprResolve;
 
5667
  friend class ::CMatchSyntax;
3757
5668
 
3758
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5669
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3759
5670
 
3760
5671
public:
 
5672
  /** Constructor.
 
5673
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
5674
   *  \param o Left arrow bracket of the type name.
 
5675
   *  \param t The type to cast to.
 
5676
   *  \param c Right array bracket of the type name.
 
5677
   *  \param e The expression to cast. */
3761
5678
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
3762
5679
    CT_StaticCast (cst, o, t, c, e) {}
 
5680
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3763
5681
  static const char *NodeId ();
 
5682
  /** Get the name of the node. Can be compared with NodeId(). */
3764
5683
  const char *NodeName () const { return NodeId (); }
3765
5684
   private:
3766
5685
  typedef CT_DynamicCast CCExprResolveExpr;
3767
5686
 
3768
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5687
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3769
5688
 public :
3770
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5689
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3771
5690
  typedef CT_DynamicCast CExprResolveExpr;
3772
5691
 
3773
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5692
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3774
5693
 public :
3775
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3776
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5694
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5695
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3777
5696
};
3778
5697
 
 
5698
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
5699
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
5700
 *  where 1.2 is implicitely casted from float to int. */
3779
5701
 
3780
 
#line 3781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5702
#line 5703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3781
5703
} // closed Puma
 
5704
class CCExprResolve;
 
5705
class CExprResolve;
3782
5706
class WinIfExists;
3783
5707
class WinImportHandler;
3784
5708
class WinMacros;
3785
 
class CMatchSyntax;
3786
 
class ExtGnu;
 
5709
class WinAsm;
 
5710
class WinDeclSpecs;
 
5711
class WinMemberExplSpec;
 
5712
class WinTypeKeywords;
 
5713
class WinFriend;
3787
5714
class ExtAC;
3788
5715
class ExtACBuilderCoupling;
3789
5716
class ExtACSyntaxCoupling;
3790
5717
class ExtACTree;
3791
5718
class ExtACKeywords;
3792
 
class WinAsm;
3793
 
class WinDeclSpecs;
3794
 
class WinMemberExplSpec;
3795
 
class WinTypeKeywords;
 
5719
class ExtGnu;
3796
5720
class PragmaOnceUnitState;
3797
5721
class PragmaOnce;
3798
 
class CCExprResolve;
3799
 
class CExprResolve;
3800
 
namespace Puma {
3801
 
 
3802
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5722
class CMatchSyntax;
 
5723
namespace Puma {
 
5724
 
 
5725
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5726
 
 
5727
#line 5728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5728
} // closed Puma
 
5729
 
 
5730
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5731
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5732
#include "CCExprResolveH.ah"
 
5733
#endif
 
5734
namespace Puma {
 
5735
 
 
5736
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5737
 
 
5738
#line 5739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5739
} // closed Puma
 
5740
 
 
5741
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5742
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5743
#include "CExprResolveH.ah"
 
5744
#endif
 
5745
namespace Puma {
 
5746
 
 
5747
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3803
5748
class CT_ImplicitCast : public CT_Expression {
3804
 
#line 3805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5749
#line 5750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5750
  friend class ::CCExprResolve;
 
5751
  friend class ::CExprResolve;
3805
5752
  friend class ::WinIfExists;
3806
5753
  friend class ::WinImportHandler;
3807
5754
  friend class ::WinMacros;
3808
 
  friend class ::CMatchSyntax;
3809
 
  friend class ::ExtGnu;
 
5755
  friend class ::WinAsm;
 
5756
  friend class ::WinDeclSpecs;
 
5757
  friend class ::WinMemberExplSpec;
 
5758
  friend class ::WinTypeKeywords;
 
5759
  friend class ::WinFriend;
3810
5760
  friend class ::ExtAC;
3811
5761
  friend class ::ExtACBuilderCoupling;
3812
5762
  friend class ::ExtACSyntaxCoupling;
3813
5763
  friend class ::ExtACTree;
3814
5764
  friend class ::ExtACKeywords;
3815
 
  friend class ::WinAsm;
3816
 
  friend class ::WinDeclSpecs;
3817
 
  friend class ::WinMemberExplSpec;
3818
 
  friend class ::WinTypeKeywords;
 
5765
  friend class ::ExtGnu;
3819
5766
  friend class ::PragmaOnceUnitState;
3820
5767
  friend class ::PragmaOnce;
3821
 
  friend class ::CCExprResolve;
3822
 
  friend class ::CExprResolve;
 
5768
  friend class ::CMatchSyntax;
3823
5769
 
3824
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5770
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3825
5771
 
3826
5772
  CTree *_expr; // casted expression
3827
5773
 
3828
5774
public:
3829
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
5775
  /** Constructor.
 
5776
   *  \param e The expression that is implicitely casted. */
 
5777
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
5778
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3830
5779
  static const char *NodeId ();
 
5780
  /** Get the name of the node. Can be compared with NodeId(). */
3831
5781
  const char *NodeName () const { return NodeId (); }
 
5782
  /** Get the number of sons. */
3832
5783
  int Sons () const { return 1; }
 
5784
  /** Get the n-th son.
 
5785
   *  \param n The index of the son.
 
5786
   *  \return The n-th son or NULL. */
3833
5787
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
5788
  /** Get the casted expression. */
3834
5789
  CTree *Expr () const { return _expr; }
 
5790
  /** Replace a son.
 
5791
   *  \param old_son The son to replace.
 
5792
   *  \param new_son The new son. */
3835
5793
  void ReplaceSon (CTree *old_son, CTree *new_son) 
3836
 
   { if (old_son == _expr) _expr = new_son; }
 
5794
   { CTree::ReplaceSon (_expr, old_son, new_son); }
3837
5795
   private:
3838
5796
  typedef CT_ImplicitCast CCExprResolveExpr;
3839
5797
 
3840
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5798
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3841
5799
 public :
3842
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5800
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3843
5801
  typedef CT_ImplicitCast CExprResolveExpr;
3844
5802
 
3845
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5803
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3846
5804
 public :
3847
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3848
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5805
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5806
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3849
5807
};
3850
5808
 
 
5809
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
5810
 *  Tree node representing a typeid expression, e.g. typeid(X). */
3851
5811
 
3852
 
#line 3853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5812
#line 5813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3853
5813
} // closed Puma
 
5814
class CCExprResolve;
 
5815
class CExprResolve;
3854
5816
class WinIfExists;
3855
5817
class WinImportHandler;
3856
5818
class WinMacros;
3857
 
class CMatchSyntax;
3858
 
class ExtGnu;
 
5819
class WinAsm;
 
5820
class WinDeclSpecs;
 
5821
class WinMemberExplSpec;
 
5822
class WinTypeKeywords;
 
5823
class WinFriend;
3859
5824
class ExtAC;
3860
5825
class ExtACBuilderCoupling;
3861
5826
class ExtACSyntaxCoupling;
3862
5827
class ExtACTree;
3863
5828
class ExtACKeywords;
3864
 
class WinAsm;
3865
 
class WinDeclSpecs;
3866
 
class WinMemberExplSpec;
3867
 
class WinTypeKeywords;
 
5829
class ExtGnu;
3868
5830
class PragmaOnceUnitState;
3869
5831
class PragmaOnce;
3870
 
class CCExprResolve;
3871
 
class CExprResolve;
3872
 
namespace Puma {
3873
 
 
3874
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5832
class CMatchSyntax;
 
5833
namespace Puma {
 
5834
 
 
5835
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5836
 
 
5837
#line 5838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5838
} // closed Puma
 
5839
 
 
5840
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5841
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5842
#include "CCExprResolveH.ah"
 
5843
#endif
 
5844
namespace Puma {
 
5845
 
 
5846
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5847
 
 
5848
#line 5849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5849
} // closed Puma
 
5850
 
 
5851
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5852
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5853
#include "CExprResolveH.ah"
 
5854
#endif
 
5855
namespace Puma {
 
5856
 
 
5857
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3875
5858
class CT_TypeidExpr : public CT_Expression {
3876
 
#line 3877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5859
#line 5860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5860
  friend class ::CCExprResolve;
 
5861
  friend class ::CExprResolve;
3877
5862
  friend class ::WinIfExists;
3878
5863
  friend class ::WinImportHandler;
3879
5864
  friend class ::WinMacros;
3880
 
  friend class ::CMatchSyntax;
3881
 
  friend class ::ExtGnu;
 
5865
  friend class ::WinAsm;
 
5866
  friend class ::WinDeclSpecs;
 
5867
  friend class ::WinMemberExplSpec;
 
5868
  friend class ::WinTypeKeywords;
 
5869
  friend class ::WinFriend;
3882
5870
  friend class ::ExtAC;
3883
5871
  friend class ::ExtACBuilderCoupling;
3884
5872
  friend class ::ExtACSyntaxCoupling;
3885
5873
  friend class ::ExtACTree;
3886
5874
  friend class ::ExtACKeywords;
3887
 
  friend class ::WinAsm;
3888
 
  friend class ::WinDeclSpecs;
3889
 
  friend class ::WinMemberExplSpec;
3890
 
  friend class ::WinTypeKeywords;
 
5875
  friend class ::ExtGnu;
3891
5876
  friend class ::PragmaOnceUnitState;
3892
5877
  friend class ::PragmaOnce;
3893
 
  friend class ::CCExprResolve;
3894
 
  friend class ::CExprResolve;
 
5878
  friend class ::CMatchSyntax;
3895
5879
 
3896
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5880
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3897
5881
 
3898
5882
  CTree *sons[4]; // typeid, open, type_id/expr, close
3899
5883
 
3900
5884
public:
 
5885
  /** Constructor.
 
5886
   *  \param tid The 'typeid' operator.
 
5887
   *  \param o The left parenthesis of the type name or expression.
 
5888
   *  \param e The expression or type name for which to get the type identifier.
 
5889
   *  \param c The right parenthesis of the type name or expression. */
3901
5890
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
3902
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
5891
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
5892
    AddSon (sons[2], e); AddSon (sons[3], c);
3903
5893
  }
 
5894
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3904
5895
  static const char *NodeId ();
 
5896
  /** Get the name of the node. Can be compared with NodeId(). */
3905
5897
  const char *NodeName () const { return NodeId (); }
 
5898
  /** Get the number of sons. */
3906
5899
  int Sons () const { return 4; }
 
5900
  /** Get the n-th son.
 
5901
   *  \param n The index of the son.
 
5902
   *  \return The n-th son or NULL. */
3907
5903
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
5904
  /** Replace a son.
 
5905
   *  \param old_son The son to replace.
 
5906
   *  \param new_son The new son. */
3908
5907
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3909
5908
    CTree::ReplaceSon (sons, 4, old_son, new_son);
3910
5909
  }
 
5910
  /** Get the typeid argument, i.e. the expression or type name for
 
5911
   *  which to get the type identifier. */
3911
5912
  CTree *Arg () const { return sons[2]; }
3912
5913
   private:
3913
5914
  typedef CT_TypeidExpr CCExprResolveExpr;
3914
5915
 
3915
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
5916
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3916
5917
 public :
3917
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
5918
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3918
5919
  typedef CT_TypeidExpr CExprResolveExpr;
3919
5920
 
3920
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
5921
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3921
5922
 public :
3922
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3923
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5923
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
5924
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3924
5925
};
3925
5926
 
 
5927
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
5928
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
3926
5929
 
3927
 
#line 3928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5930
#line 5931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3928
5931
} // closed Puma
 
5932
class CCExprResolve;
 
5933
class CExprResolve;
3929
5934
class WinIfExists;
3930
5935
class WinImportHandler;
3931
5936
class WinMacros;
3932
 
class CMatchSyntax;
3933
 
class ExtGnu;
 
5937
class WinAsm;
 
5938
class WinDeclSpecs;
 
5939
class WinMemberExplSpec;
 
5940
class WinTypeKeywords;
 
5941
class WinFriend;
3934
5942
class ExtAC;
3935
5943
class ExtACBuilderCoupling;
3936
5944
class ExtACSyntaxCoupling;
3937
5945
class ExtACTree;
3938
5946
class ExtACKeywords;
3939
 
class WinAsm;
3940
 
class WinDeclSpecs;
3941
 
class WinMemberExplSpec;
3942
 
class WinTypeKeywords;
 
5947
class ExtGnu;
3943
5948
class PragmaOnceUnitState;
3944
5949
class PragmaOnce;
3945
 
class CCExprResolve;
3946
 
class CExprResolve;
3947
 
namespace Puma {
3948
 
 
3949
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5950
class CMatchSyntax;
 
5951
namespace Puma {
 
5952
 
 
5953
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5954
 
 
5955
#line 5956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5956
} // closed Puma
 
5957
 
 
5958
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5959
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
5960
#include "CCExprResolveH.ah"
 
5961
#endif
 
5962
namespace Puma {
 
5963
 
 
5964
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5965
 
 
5966
#line 5967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5967
} // closed Puma
 
5968
 
 
5969
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5970
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
5971
#include "CExprResolveH.ah"
 
5972
#endif
 
5973
namespace Puma {
 
5974
 
 
5975
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3950
5976
class CT_SizeofExpr : public CT_Expression {
3951
 
#line 3952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5977
#line 5978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
5978
  friend class ::CCExprResolve;
 
5979
  friend class ::CExprResolve;
3952
5980
  friend class ::WinIfExists;
3953
5981
  friend class ::WinImportHandler;
3954
5982
  friend class ::WinMacros;
3955
 
  friend class ::CMatchSyntax;
3956
 
  friend class ::ExtGnu;
 
5983
  friend class ::WinAsm;
 
5984
  friend class ::WinDeclSpecs;
 
5985
  friend class ::WinMemberExplSpec;
 
5986
  friend class ::WinTypeKeywords;
 
5987
  friend class ::WinFriend;
3957
5988
  friend class ::ExtAC;
3958
5989
  friend class ::ExtACBuilderCoupling;
3959
5990
  friend class ::ExtACSyntaxCoupling;
3960
5991
  friend class ::ExtACTree;
3961
5992
  friend class ::ExtACKeywords;
3962
 
  friend class ::WinAsm;
3963
 
  friend class ::WinDeclSpecs;
3964
 
  friend class ::WinMemberExplSpec;
3965
 
  friend class ::WinTypeKeywords;
 
5993
  friend class ::ExtGnu;
3966
5994
  friend class ::PragmaOnceUnitState;
3967
5995
  friend class ::PragmaOnce;
3968
 
  friend class ::CCExprResolve;
3969
 
  friend class ::CExprResolve;
 
5996
  friend class ::CMatchSyntax;
3970
5997
 
3971
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
5998
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3972
5999
 
3973
6000
  CTree *sons[5]; // key, open, type, close, expr
3974
6001
 
3975
6002
public:
 
6003
  /** Constructor.
 
6004
   *  \param k The 'sizeof' keyword.
 
6005
   *  \param o Left parenthesis around the type name.
 
6006
   *  \param t The type from which to get the size.
 
6007
   *  \param c Right parenthesis around the type name. */
3976
6008
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
3977
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
6009
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
6010
    AddSon (sons[3], c); AddSon (sons[4], 0);
3978
6011
  }
 
6012
  /** Constructor.
 
6013
   *  \param k The 'sizeof' keyword.
 
6014
   *  \param e The expression from which to get the size. */
3979
6015
  CT_SizeofExpr (CTree *k, CTree *e) {
3980
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
6016
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
6017
    AddSon (sons[3], 0); AddSon (sons[4], e);
3981
6018
  }
 
6019
  /** Get the identifier for this node type. Can be compared with NodeName(). */
3982
6020
  static const char *NodeId ();
 
6021
  /** Get the name of the node. Can be compared with NodeId(). */
3983
6022
  const char *NodeName () const { return NodeId (); }
 
6023
  /** Get the number of sons. */
3984
6024
  int Sons () const { return CTree::Sons (sons, 5); }
 
6025
  /** Get the n-th son.
 
6026
   *  \param n The index of the son.
 
6027
   *  \return The n-th son or NULL. */
3985
6028
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
6029
  /** Replace a son.
 
6030
   *  \param old_son The son to replace.
 
6031
   *  \param new_son The new son. */
3986
6032
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
3987
6033
    CTree::ReplaceSon (sons, 5, old_son, new_son);
3988
6034
  }
 
6035
  /** Get the expression. */
3989
6036
  CTree *Expr () const { return sons[4]; }
 
6037
  /** Get the type name. */
3990
6038
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
3991
6039
   private:
3992
6040
  typedef CT_SizeofExpr CCExprResolveExpr;
3993
6041
 
3994
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6042
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3995
6043
 public :
3996
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
6044
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
3997
6045
  typedef CT_SizeofExpr CExprResolveExpr;
3998
6046
 
3999
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6047
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4000
6048
 public :
4001
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
4002
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6049
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6050
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4003
6051
};
4004
6052
 
 
6053
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
6054
 *  Tree node representing an index designator, i.e. [1]. */
4005
6055
 
4006
 
#line 4007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6056
#line 6057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4007
6057
} // closed Puma
 
6058
class CCExprResolve;
 
6059
class CExprResolve;
4008
6060
class WinIfExists;
4009
6061
class WinImportHandler;
4010
6062
class WinMacros;
4011
 
class CMatchSyntax;
4012
 
class ExtGnu;
 
6063
class WinAsm;
 
6064
class WinDeclSpecs;
 
6065
class WinMemberExplSpec;
 
6066
class WinTypeKeywords;
 
6067
class WinFriend;
4013
6068
class ExtAC;
4014
6069
class ExtACBuilderCoupling;
4015
6070
class ExtACSyntaxCoupling;
4016
6071
class ExtACTree;
4017
6072
class ExtACKeywords;
4018
 
class WinAsm;
4019
 
class WinDeclSpecs;
4020
 
class WinMemberExplSpec;
4021
 
class WinTypeKeywords;
 
6073
class ExtGnu;
4022
6074
class PragmaOnceUnitState;
4023
6075
class PragmaOnce;
4024
 
class CCExprResolve;
4025
 
class CExprResolve;
4026
 
namespace Puma {
4027
 
 
4028
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6076
class CMatchSyntax;
 
6077
namespace Puma {
 
6078
 
 
6079
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6080
 
 
6081
#line 6082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6082
} // closed Puma
 
6083
 
 
6084
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6085
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6086
#include "CCExprResolveH.ah"
 
6087
#endif
 
6088
namespace Puma {
 
6089
 
 
6090
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6091
 
 
6092
#line 6093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6093
} // closed Puma
 
6094
 
 
6095
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6096
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6097
#include "CExprResolveH.ah"
 
6098
#endif
 
6099
namespace Puma {
 
6100
 
 
6101
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4029
6102
class CT_IndexDesignator : public CT_Expression {
4030
 
#line 4031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6103
#line 6104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6104
  friend class ::CCExprResolve;
 
6105
  friend class ::CExprResolve;
4031
6106
  friend class ::WinIfExists;
4032
6107
  friend class ::WinImportHandler;
4033
6108
  friend class ::WinMacros;
4034
 
  friend class ::CMatchSyntax;
4035
 
  friend class ::ExtGnu;
 
6109
  friend class ::WinAsm;
 
6110
  friend class ::WinDeclSpecs;
 
6111
  friend class ::WinMemberExplSpec;
 
6112
  friend class ::WinTypeKeywords;
 
6113
  friend class ::WinFriend;
4036
6114
  friend class ::ExtAC;
4037
6115
  friend class ::ExtACBuilderCoupling;
4038
6116
  friend class ::ExtACSyntaxCoupling;
4039
6117
  friend class ::ExtACTree;
4040
6118
  friend class ::ExtACKeywords;
4041
 
  friend class ::WinAsm;
4042
 
  friend class ::WinDeclSpecs;
4043
 
  friend class ::WinMemberExplSpec;
4044
 
  friend class ::WinTypeKeywords;
 
6119
  friend class ::ExtGnu;
4045
6120
  friend class ::PragmaOnceUnitState;
4046
6121
  friend class ::PragmaOnce;
4047
 
  friend class ::CCExprResolve;
4048
 
  friend class ::CExprResolve;
 
6122
  friend class ::CMatchSyntax;
4049
6123
 
4050
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6124
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4051
6125
 
4052
6126
  CTree *sons[3]; // open, index, close
4053
6127
 
4054
6128
public:
 
6129
  /** Constructor.
 
6130
   *  \param o Left bracket of the index designator.
 
6131
   *  \param i The index expression.
 
6132
   *  \param c Right bracket of the index designator. */
4055
6133
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
4056
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
6134
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
4057
6135
  }
 
6136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4058
6137
  static const char *NodeId ();
 
6138
  /** Get the name of the node. Can be compared with NodeId(). */
4059
6139
  const char *NodeName () const { return NodeId (); }
 
6140
  /** Get the number of sons. */
4060
6141
  int Sons () const { return 3; }
 
6142
  /** Get the n-th son.
 
6143
   *  \param n The index of the son.
 
6144
   *  \return The n-th son or NULL. */
4061
6145
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
6146
  /** Replace a son.
 
6147
   *  \param old_son The son to replace.
 
6148
   *  \param new_son The new son. */
4062
6149
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4063
6150
    CTree::ReplaceSon (sons, 3, old_son, new_son);
4064
6151
  }
4065
6152
   private:
4066
6153
  typedef CT_IndexDesignator CCExprResolveExpr;
4067
6154
 
4068
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6155
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4069
6156
 public :
4070
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
6157
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
4071
6158
  typedef CT_IndexDesignator CExprResolveExpr;
4072
6159
 
4073
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6160
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4074
6161
 public :
4075
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
4076
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6162
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6163
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4077
6164
};
4078
6165
 
 
6166
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
6167
 *  Tree node representing a member designator, e.g. .a. */
4079
6168
 
4080
 
#line 4081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6169
#line 6170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4081
6170
} // closed Puma
 
6171
class CCExprResolve;
 
6172
class CExprResolve;
4082
6173
class WinIfExists;
4083
6174
class WinImportHandler;
4084
6175
class WinMacros;
4085
 
class CMatchSyntax;
4086
 
class ExtGnu;
 
6176
class WinAsm;
 
6177
class WinDeclSpecs;
 
6178
class WinMemberExplSpec;
 
6179
class WinTypeKeywords;
 
6180
class WinFriend;
4087
6181
class ExtAC;
4088
6182
class ExtACBuilderCoupling;
4089
6183
class ExtACSyntaxCoupling;
4090
6184
class ExtACTree;
4091
6185
class ExtACKeywords;
4092
 
class WinAsm;
4093
 
class WinDeclSpecs;
4094
 
class WinMemberExplSpec;
4095
 
class WinTypeKeywords;
 
6186
class ExtGnu;
4096
6187
class PragmaOnceUnitState;
4097
6188
class PragmaOnce;
4098
 
class CCExprResolve;
4099
 
class CExprResolve;
4100
 
namespace Puma {
4101
 
 
4102
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6189
class CMatchSyntax;
 
6190
namespace Puma {
 
6191
 
 
6192
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6193
 
 
6194
#line 6195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6195
} // closed Puma
 
6196
 
 
6197
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6198
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6199
#include "CCExprResolveH.ah"
 
6200
#endif
 
6201
namespace Puma {
 
6202
 
 
6203
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6204
 
 
6205
#line 6206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6206
} // closed Puma
 
6207
 
 
6208
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6209
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6210
#include "CExprResolveH.ah"
 
6211
#endif
 
6212
namespace Puma {
 
6213
 
 
6214
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4103
6215
class CT_MembDesignator : public CT_Expression {
4104
 
#line 4105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6216
#line 6217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6217
  friend class ::CCExprResolve;
 
6218
  friend class ::CExprResolve;
4105
6219
  friend class ::WinIfExists;
4106
6220
  friend class ::WinImportHandler;
4107
6221
  friend class ::WinMacros;
4108
 
  friend class ::CMatchSyntax;
4109
 
  friend class ::ExtGnu;
 
6222
  friend class ::WinAsm;
 
6223
  friend class ::WinDeclSpecs;
 
6224
  friend class ::WinMemberExplSpec;
 
6225
  friend class ::WinTypeKeywords;
 
6226
  friend class ::WinFriend;
4110
6227
  friend class ::ExtAC;
4111
6228
  friend class ::ExtACBuilderCoupling;
4112
6229
  friend class ::ExtACSyntaxCoupling;
4113
6230
  friend class ::ExtACTree;
4114
6231
  friend class ::ExtACKeywords;
4115
 
  friend class ::WinAsm;
4116
 
  friend class ::WinDeclSpecs;
4117
 
  friend class ::WinMemberExplSpec;
4118
 
  friend class ::WinTypeKeywords;
 
6232
  friend class ::ExtGnu;
4119
6233
  friend class ::PragmaOnceUnitState;
4120
6234
  friend class ::PragmaOnce;
4121
 
  friend class ::CCExprResolve;
4122
 
  friend class ::CExprResolve;
 
6235
  friend class ::CMatchSyntax;
4123
6236
 
4124
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6237
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4125
6238
 
4126
6239
  CTree *sons[2]; // dot, member
4127
6240
 
4128
6241
public:
4129
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
6242
  /** Constructor.
 
6243
   *  \param d The dot before the member name.
 
6244
   *  \param m The member name. */
 
6245
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
6246
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4130
6247
  static const char *NodeId ();
 
6248
  /** Get the name of the node. Can be compared with NodeId(). */
4131
6249
  const char *NodeName () const { return NodeId (); }
 
6250
  /** Get the number of sons. */
4132
6251
  int Sons () const { return 2; }
 
6252
  /** Get the n-th son.
 
6253
   *  \param n The index of the son.
 
6254
   *  \return The n-th son or NULL. */
4133
6255
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
6256
  /** Replace a son.
 
6257
   *  \param old_son The son to replace.
 
6258
   *  \param new_son The new son. */
4134
6259
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4135
6260
    CTree::ReplaceSon (sons, 2, old_son, new_son);
4136
6261
  }
4137
6262
   private:
4138
6263
  typedef CT_MembDesignator CCExprResolveExpr;
4139
6264
 
4140
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6265
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4141
6266
 public :
4142
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
6267
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
4143
6268
  typedef CT_MembDesignator CExprResolveExpr;
4144
6269
 
4145
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6270
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4146
6271
 public :
4147
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
4148
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6272
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
6273
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4149
6274
};
4150
6275
 
 
6276
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
6277
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
4151
6278
 
4152
 
#line 4153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6279
#line 6280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4153
6280
} // closed Puma
 
6281
class CCExprResolve;
 
6282
class CExprResolve;
4154
6283
class WinIfExists;
4155
6284
class WinImportHandler;
4156
6285
class WinMacros;
4157
 
class CMatchSyntax;
4158
 
class ExtGnu;
 
6286
class WinAsm;
 
6287
class WinDeclSpecs;
 
6288
class WinMemberExplSpec;
 
6289
class WinTypeKeywords;
 
6290
class WinFriend;
4159
6291
class ExtAC;
4160
6292
class ExtACBuilderCoupling;
4161
6293
class ExtACSyntaxCoupling;
4162
6294
class ExtACTree;
4163
6295
class ExtACKeywords;
4164
 
class WinAsm;
4165
 
class WinDeclSpecs;
4166
 
class WinMemberExplSpec;
4167
 
class WinTypeKeywords;
 
6296
class ExtGnu;
4168
6297
class PragmaOnceUnitState;
4169
6298
class PragmaOnce;
4170
 
class CCExprResolve;
4171
 
class CExprResolve;
 
6299
class CMatchSyntax;
4172
6300
namespace Puma {
4173
6301
 
4174
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6302
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4175
6303
class CT_DesignatorSeq : public CT_List, public CSemValue {
4176
 
#line 4177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6304
#line 6305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6305
  friend class ::CCExprResolve;
 
6306
  friend class ::CExprResolve;
4177
6307
  friend class ::WinIfExists;
4178
6308
  friend class ::WinImportHandler;
4179
6309
  friend class ::WinMacros;
4180
 
  friend class ::CMatchSyntax;
4181
 
  friend class ::ExtGnu;
 
6310
  friend class ::WinAsm;
 
6311
  friend class ::WinDeclSpecs;
 
6312
  friend class ::WinMemberExplSpec;
 
6313
  friend class ::WinTypeKeywords;
 
6314
  friend class ::WinFriend;
4182
6315
  friend class ::ExtAC;
4183
6316
  friend class ::ExtACBuilderCoupling;
4184
6317
  friend class ::ExtACSyntaxCoupling;
4185
6318
  friend class ::ExtACTree;
4186
6319
  friend class ::ExtACKeywords;
4187
 
  friend class ::WinAsm;
4188
 
  friend class ::WinDeclSpecs;
4189
 
  friend class ::WinMemberExplSpec;
4190
 
  friend class ::WinTypeKeywords;
 
6320
  friend class ::ExtGnu;
4191
6321
  friend class ::PragmaOnceUnitState;
4192
6322
  friend class ::PragmaOnce;
4193
 
  friend class ::CCExprResolve;
4194
 
  friend class ::CExprResolve;
 
6323
  friend class ::CMatchSyntax;
4195
6324
 
4196
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6325
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4197
6326
 
4198
6327
public:
 
6328
  /** Constructor.
 
6329
   *  \param size Initial number of designators. */
4199
6330
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
6331
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4200
6332
  static const char *NodeId ();
 
6333
  /** Get the name of the node. Can be compared with NodeId(). */
4201
6334
  const char *NodeName () const { return NodeId (); }
4202
6335
 
 
6336
  /** Get the type of the entity to initialize. */
4203
6337
  CTypeInfo *Type () const { return type; }
 
6338
  /** Get the value of the entity to initialize. */
4204
6339
  CExprValue *Value () const { return value; }
 
6340
  /** Get the semantic value object. */
4205
6341
  CSemValue *SemValue () const { return (CSemValue*)this; }
4206
6342
};
4207
6343
 
4211
6347
/*                                                                           */
4212
6348
/*****************************************************************************/
4213
6349
 
 
6350
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
6351
 *  Base class for all tree nodes representing declaration specifiers. */
4214
6352
 
4215
 
#line 4216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6353
#line 6354 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4216
6354
} // closed Puma
 
6355
class CCExprResolve;
 
6356
class CExprResolve;
4217
6357
class WinIfExists;
4218
6358
class WinImportHandler;
4219
6359
class WinMacros;
4220
 
class CMatchSyntax;
4221
 
class ExtGnu;
 
6360
class WinAsm;
 
6361
class WinDeclSpecs;
 
6362
class WinMemberExplSpec;
 
6363
class WinTypeKeywords;
 
6364
class WinFriend;
4222
6365
class ExtAC;
4223
6366
class ExtACBuilderCoupling;
4224
6367
class ExtACSyntaxCoupling;
4225
6368
class ExtACTree;
4226
6369
class ExtACKeywords;
4227
 
class WinAsm;
4228
 
class WinDeclSpecs;
4229
 
class WinMemberExplSpec;
4230
 
class WinTypeKeywords;
 
6370
class ExtGnu;
4231
6371
class PragmaOnceUnitState;
4232
6372
class PragmaOnce;
4233
 
class CCExprResolve;
4234
 
class CExprResolve;
 
6373
class CMatchSyntax;
4235
6374
namespace Puma {
4236
6375
 
4237
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6376
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4238
6377
class CT_DeclSpec : public CTree {
4239
 
#line 4240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6378
#line 6379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6379
  friend class ::CCExprResolve;
 
6380
  friend class ::CExprResolve;
4240
6381
  friend class ::WinIfExists;
4241
6382
  friend class ::WinImportHandler;
4242
6383
  friend class ::WinMacros;
4243
 
  friend class ::CMatchSyntax;
4244
 
  friend class ::ExtGnu;
 
6384
  friend class ::WinAsm;
 
6385
  friend class ::WinDeclSpecs;
 
6386
  friend class ::WinMemberExplSpec;
 
6387
  friend class ::WinTypeKeywords;
 
6388
  friend class ::WinFriend;
4245
6389
  friend class ::ExtAC;
4246
6390
  friend class ::ExtACBuilderCoupling;
4247
6391
  friend class ::ExtACSyntaxCoupling;
4248
6392
  friend class ::ExtACTree;
4249
6393
  friend class ::ExtACKeywords;
4250
 
  friend class ::WinAsm;
4251
 
  friend class ::WinDeclSpecs;
4252
 
  friend class ::WinMemberExplSpec;
4253
 
  friend class ::WinTypeKeywords;
 
6394
  friend class ::ExtGnu;
4254
6395
  friend class ::PragmaOnceUnitState;
4255
6396
  friend class ::PragmaOnce;
4256
 
  friend class ::CCExprResolve;
4257
 
  friend class ::CExprResolve;
 
6397
  friend class ::CMatchSyntax;
4258
6398
 
4259
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6399
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4260
6400
 
4261
6401
protected:
 
6402
  /** Constructor. */
4262
6403
  CT_DeclSpec () {}
4263
6404
};
4264
6405
 
 
6406
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
6407
 *  Tree node representing a primitive declaration specifier. */
4265
6408
 
4266
 
#line 4267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6409
#line 6410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4267
6410
} // closed Puma
 
6411
class CCExprResolve;
 
6412
class CExprResolve;
4268
6413
class WinIfExists;
4269
6414
class WinImportHandler;
4270
6415
class WinMacros;
4271
 
class CMatchSyntax;
4272
 
class ExtGnu;
 
6416
class WinAsm;
 
6417
class WinDeclSpecs;
 
6418
class WinMemberExplSpec;
 
6419
class WinTypeKeywords;
 
6420
class WinFriend;
4273
6421
class ExtAC;
4274
6422
class ExtACBuilderCoupling;
4275
6423
class ExtACSyntaxCoupling;
4276
6424
class ExtACTree;
4277
6425
class ExtACKeywords;
4278
 
class WinAsm;
4279
 
class WinDeclSpecs;
4280
 
class WinMemberExplSpec;
4281
 
class WinTypeKeywords;
 
6426
class ExtGnu;
4282
6427
class PragmaOnceUnitState;
4283
6428
class PragmaOnce;
4284
 
class CCExprResolve;
4285
 
class CExprResolve;
 
6429
class CMatchSyntax;
4286
6430
namespace Puma {
4287
6431
 
4288
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6432
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4289
6433
class CT_PrimDeclSpec : public CT_DeclSpec {
4290
 
#line 4291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6434
#line 6435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6435
  friend class ::CCExprResolve;
 
6436
  friend class ::CExprResolve;
4291
6437
  friend class ::WinIfExists;
4292
6438
  friend class ::WinImportHandler;
4293
6439
  friend class ::WinMacros;
4294
 
  friend class ::CMatchSyntax;
4295
 
  friend class ::ExtGnu;
 
6440
  friend class ::WinAsm;
 
6441
  friend class ::WinDeclSpecs;
 
6442
  friend class ::WinMemberExplSpec;
 
6443
  friend class ::WinTypeKeywords;
 
6444
  friend class ::WinFriend;
4296
6445
  friend class ::ExtAC;
4297
6446
  friend class ::ExtACBuilderCoupling;
4298
6447
  friend class ::ExtACSyntaxCoupling;
4299
6448
  friend class ::ExtACTree;
4300
6449
  friend class ::ExtACKeywords;
4301
 
  friend class ::WinAsm;
4302
 
  friend class ::WinDeclSpecs;
4303
 
  friend class ::WinMemberExplSpec;
4304
 
  friend class ::WinTypeKeywords;
 
6450
  friend class ::ExtGnu;
4305
6451
  friend class ::PragmaOnceUnitState;
4306
6452
  friend class ::PragmaOnce;
4307
 
  friend class ::CCExprResolve;
4308
 
  friend class ::CExprResolve;
 
6453
  friend class ::CMatchSyntax;
4309
6454
 
4310
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6455
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4311
6456
 
4312
6457
public:
4313
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
4314
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
4315
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
4316
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
4317
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
4318
 
              // AspectC++ specific type specifier
4319
 
              PDS_UNKNOWN_T,
4320
 
              // Win specific declaration specifiers
4321
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
4322
 
              PDS_UNKNOWN, PDS_NUM };
 
6458
  /** Declaration specifier types. */
 
6459
  enum Type { 
 
6460
    PDS_FRIEND,    /** friend */
 
6461
    PDS_TYPEDEF,   /** typedef */
 
6462
    PDS_AUTO,      /** auto */
 
6463
    PDS_REGISTER,  /** register */
 
6464
    PDS_STATIC,    /** static */
 
6465
    PDS_EXTERN,    /** extern */
 
6466
    PDS_MUTABLE,   /** mutable */
 
6467
    PDS_INLINE,    /** inline */
 
6468
    PDS_VIRTUAL,   /** virtual */
 
6469
    PDS_EXPLICIT,  /** explicit */
 
6470
    PDS_CONST,     /** const */
 
6471
    PDS_VOLATILE,  /** volatile */
 
6472
    PDS_RESTRICT,  /** restrict */
 
6473
    PDS_CHAR,      /** char */
 
6474
    PDS_WCHAR_T,   /** wchar_t */
 
6475
    PDS_BOOL,      /** bool */
 
6476
    PDS_SHORT,     /** short */
 
6477
    PDS_INT,       /** int */
 
6478
    PDS_LONG,      /** long */
 
6479
    PDS_SIGNED,    /** signed */
 
6480
    PDS_UNSIGNED,  /** unsigned */
 
6481
    PDS_FLOAT,     /** float */
 
6482
    PDS_DOUBLE,    /** double */
 
6483
    PDS_VOID,      /** void */
 
6484
    // AspectC++ specific type specifier
 
6485
    PDS_UNKNOWN_T, /** unknown_t */
 
6486
    // Win specific declaration specifiers
 
6487
    PDS_CDECL,     /** __cdecl */
 
6488
    PDS_STDCALL,   /** __stdcall */
 
6489
    PDS_FASTCALL,  /** __fastcall */
 
6490
    PDS_INT64,     /** __int64 */
 
6491
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
6492
    PDS_NUM        /** Number of declaration specifier types. */
 
6493
  };
4323
6494
 
4324
6495
private:
4325
6496
  Type _type;
4326
 
  CT_Token *_token;
 
6497
  CTree *_token; // has to be a CT_Token
4327
6498
 
4328
6499
  void determine_type ();
4329
6500
 
4330
6501
public:
4331
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
6502
  /** Constructor.
 
6503
   *  \param t The token containing the declaration specifier. */
 
6504
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
6505
  /** Constructor.
 
6506
   *  \param t The declaration specifier type. */
4332
6507
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
6508
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4333
6509
  static const char *NodeId ();
 
6510
  /** Get the name of the node. Can be compared with NodeId(). */
4334
6511
  const char *NodeName () const { return NodeId (); }
 
6512
  /** Get the number of sons. */
4335
6513
  int Sons () const { return _token ? 1 : 0; }
 
6514
  /** Get the n-th son.
 
6515
   *  \param n The index of the son.
 
6516
   *  \return The n-th son or NULL. */
4336
6517
  CTree *Son (int n) const 
4337
6518
   { return (n == 0) ? _token : (CTree*)0; }
 
6519
  /** Get the textual representation of the declaration specifier.
 
6520
   *  \return The string representation or " ". */
4338
6521
  const char *SpecText () const 
4339
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
6522
   { return _token ? _token->token ()->text () : " "; }
 
6523
  /** Get the declaration specifier type. */
4340
6524
  Type SpecType () const { return _type; }
 
6525
  /** Number of declaration specifier types. */
4341
6526
  static const int NumTypes = PDS_NUM;
 
6527
  /** Replace a son.
 
6528
   *  \param old_son The son to replace.
 
6529
   *  \param new_son The new son. */
 
6530
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
6531
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
6532
    determine_type ();
 
6533
  }
4342
6534
};
4343
6535
 
 
6536
/** \class CT_NamedType CTree.h Puma/CTree.h
 
6537
 *  Tree node representing a named type, e.g. (int*)a. 
 
6538
 *  where int* is a type with a generated name. */
4344
6539
 
4345
 
#line 4346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6540
#line 6541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4346
6541
} // closed Puma
 
6542
class CCExprResolve;
 
6543
class CExprResolve;
4347
6544
class WinIfExists;
4348
6545
class WinImportHandler;
4349
6546
class WinMacros;
4350
 
class CMatchSyntax;
4351
 
class ExtGnu;
 
6547
class WinAsm;
 
6548
class WinDeclSpecs;
 
6549
class WinMemberExplSpec;
 
6550
class WinTypeKeywords;
 
6551
class WinFriend;
4352
6552
class ExtAC;
4353
6553
class ExtACBuilderCoupling;
4354
6554
class ExtACSyntaxCoupling;
4355
6555
class ExtACTree;
4356
6556
class ExtACKeywords;
4357
 
class WinAsm;
4358
 
class WinDeclSpecs;
4359
 
class WinMemberExplSpec;
4360
 
class WinTypeKeywords;
 
6557
class ExtGnu;
4361
6558
class PragmaOnceUnitState;
4362
6559
class PragmaOnce;
4363
 
class CCExprResolve;
4364
 
class CExprResolve;
 
6560
class CMatchSyntax;
4365
6561
namespace Puma {
4366
6562
 
4367
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6563
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4368
6564
class CT_NamedType : public CT_DeclSpec, public CSemObject {
4369
 
#line 4370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6565
#line 6566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6566
  friend class ::CCExprResolve;
 
6567
  friend class ::CExprResolve;
4370
6568
  friend class ::WinIfExists;
4371
6569
  friend class ::WinImportHandler;
4372
6570
  friend class ::WinMacros;
4373
 
  friend class ::CMatchSyntax;
4374
 
  friend class ::ExtGnu;
 
6571
  friend class ::WinAsm;
 
6572
  friend class ::WinDeclSpecs;
 
6573
  friend class ::WinMemberExplSpec;
 
6574
  friend class ::WinTypeKeywords;
 
6575
  friend class ::WinFriend;
4375
6576
  friend class ::ExtAC;
4376
6577
  friend class ::ExtACBuilderCoupling;
4377
6578
  friend class ::ExtACSyntaxCoupling;
4378
6579
  friend class ::ExtACTree;
4379
6580
  friend class ::ExtACKeywords;
4380
 
  friend class ::WinAsm;
4381
 
  friend class ::WinDeclSpecs;
4382
 
  friend class ::WinMemberExplSpec;
4383
 
  friend class ::WinTypeKeywords;
 
6581
  friend class ::ExtGnu;
4384
6582
  friend class ::PragmaOnceUnitState;
4385
6583
  friend class ::PragmaOnce;
4386
 
  friend class ::CCExprResolve;
4387
 
  friend class ::CExprResolve;
 
6584
  friend class ::CMatchSyntax;
4388
6585
 
4389
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6586
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4390
6587
 
4391
6588
  CTree *sons[2]; // declspecs, declarator
4392
6589
 
4393
6590
public:
4394
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
6591
  /** Constructor.
 
6592
   *  \param dss The declaration specifier sequence of the type.
 
6593
   *  \param d The type declarator. */
 
6594
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
6595
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4395
6596
  static const char *NodeId ();
 
6597
  /** Get the name of the node. Can be compared with NodeId(). */
4396
6598
  const char *NodeName () const { return NodeId (); }
 
6599
  /** Get the number of sons. */
4397
6600
  int Sons () const { return CTree::Sons (sons, 2); }
 
6601
  /** Get the n-th son.
 
6602
   *  \param n The index of the son.
 
6603
   *  \return The n-th son or NULL. */
4398
6604
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
6605
  /** Get the declarator. */
4399
6606
  CTree *Declarator () const { return sons[1]; }
 
6607
  /** Replace a son.
 
6608
   *  \param old_son The son to replace.
 
6609
   *  \param new_son The new son. */
4400
6610
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4401
6611
    CTree::ReplaceSon (sons, 2, old_son, new_son);
4402
6612
  }
 
6613
  /** Get the semantic information object. */
4403
6614
  CSemObject *SemObject () const { return (CSemObject*)this; }
4404
6615
};
4405
6616
      
 
6617
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
6618
 *  Tree node representing a class specifier, e.g. class X. */
4406
6619
 
4407
 
#line 4408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6620
#line 6621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4408
6621
} // closed Puma
 
6622
class CCExprResolve;
 
6623
class CExprResolve;
4409
6624
class WinIfExists;
4410
6625
class WinImportHandler;
4411
6626
class WinMacros;
4412
 
class CMatchSyntax;
4413
 
class ExtGnu;
 
6627
class WinAsm;
 
6628
class WinDeclSpecs;
 
6629
class WinMemberExplSpec;
 
6630
class WinTypeKeywords;
 
6631
class WinFriend;
4414
6632
class ExtAC;
4415
6633
class ExtACBuilderCoupling;
4416
6634
class ExtACSyntaxCoupling;
4417
6635
class ExtACTree;
4418
6636
class ExtACKeywords;
4419
 
class WinAsm;
4420
 
class WinDeclSpecs;
4421
 
class WinMemberExplSpec;
4422
 
class WinTypeKeywords;
 
6637
class ExtGnu;
4423
6638
class PragmaOnceUnitState;
4424
6639
class PragmaOnce;
4425
 
class CCExprResolve;
4426
 
class CExprResolve;
 
6640
class CMatchSyntax;
4427
6641
namespace Puma {
4428
6642
 
4429
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6643
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4430
6644
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
4431
 
#line 4432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6645
#line 6646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6646
  friend class ::CCExprResolve;
 
6647
  friend class ::CExprResolve;
4432
6648
  friend class ::WinIfExists;
4433
6649
  friend class ::WinImportHandler;
4434
6650
  friend class ::WinMacros;
4435
 
  friend class ::CMatchSyntax;
4436
 
  friend class ::ExtGnu;
 
6651
  friend class ::WinAsm;
 
6652
  friend class ::WinDeclSpecs;
 
6653
  friend class ::WinMemberExplSpec;
 
6654
  friend class ::WinTypeKeywords;
 
6655
  friend class ::WinFriend;
4437
6656
  friend class ::ExtAC;
4438
6657
  friend class ::ExtACBuilderCoupling;
4439
6658
  friend class ::ExtACSyntaxCoupling;
4440
6659
  friend class ::ExtACTree;
4441
6660
  friend class ::ExtACKeywords;
4442
 
  friend class ::WinAsm;
4443
 
  friend class ::WinDeclSpecs;
4444
 
  friend class ::WinMemberExplSpec;
4445
 
  friend class ::WinTypeKeywords;
 
6661
  friend class ::ExtGnu;
4446
6662
  friend class ::PragmaOnceUnitState;
4447
6663
  friend class ::PragmaOnce;
4448
 
  friend class ::CCExprResolve;
4449
 
  friend class ::CExprResolve;
 
6664
  friend class ::CMatchSyntax;
4450
6665
 
4451
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6666
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4452
6667
 
4453
6668
  CTree *sons[2]; // key, name
4454
6669
  
4455
6670
public:
4456
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
6671
  /** Constructor.
 
6672
   *  \param k The 'class' or 'struct' keyword.
 
6673
   *  \param n The class name. */
 
6674
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
6675
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4457
6676
  static const char *NodeId ();
 
6677
  /** Get the name of the node. Can be compared with NodeId(). */
4458
6678
  const char *NodeName () const { return NodeId (); }
 
6679
  /** Get the number of sons. */
4459
6680
  int Sons () const { return 2; }
 
6681
  /** Get the n-th son.
 
6682
   *  \param n The index of the son.
 
6683
   *  \return The n-th son or NULL. */
4460
6684
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
6685
  /** Get the class name. */
4461
6686
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
6687
  /** Get the semantic information object. */
4462
6688
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
6689
  /** Replace a son.
 
6690
   *  \param old_son The son to replace.
 
6691
   *  \param new_son The new son. */
4463
6692
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4464
6693
    CTree::ReplaceSon (sons, 2, old_son, new_son);
4465
6694
  }
4466
6695
};
4467
6696
 
 
6697
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
6698
 *  Tree node representing a union specifier, e.g. union X. */
4468
6699
 
4469
 
#line 4470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6700
#line 6701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4470
6701
} // closed Puma
 
6702
class CCExprResolve;
 
6703
class CExprResolve;
4471
6704
class WinIfExists;
4472
6705
class WinImportHandler;
4473
6706
class WinMacros;
4474
 
class CMatchSyntax;
4475
 
class ExtGnu;
 
6707
class WinAsm;
 
6708
class WinDeclSpecs;
 
6709
class WinMemberExplSpec;
 
6710
class WinTypeKeywords;
 
6711
class WinFriend;
4476
6712
class ExtAC;
4477
6713
class ExtACBuilderCoupling;
4478
6714
class ExtACSyntaxCoupling;
4479
6715
class ExtACTree;
4480
6716
class ExtACKeywords;
4481
 
class WinAsm;
4482
 
class WinDeclSpecs;
4483
 
class WinMemberExplSpec;
4484
 
class WinTypeKeywords;
 
6717
class ExtGnu;
4485
6718
class PragmaOnceUnitState;
4486
6719
class PragmaOnce;
4487
 
class CCExprResolve;
4488
 
class CExprResolve;
 
6720
class CMatchSyntax;
4489
6721
namespace Puma {
4490
6722
 
4491
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6723
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4492
6724
class CT_UnionSpec : public CT_ClassSpec {
4493
 
#line 4494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6725
#line 6726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6726
  friend class ::CCExprResolve;
 
6727
  friend class ::CExprResolve;
4494
6728
  friend class ::WinIfExists;
4495
6729
  friend class ::WinImportHandler;
4496
6730
  friend class ::WinMacros;
4497
 
  friend class ::CMatchSyntax;
4498
 
  friend class ::ExtGnu;
 
6731
  friend class ::WinAsm;
 
6732
  friend class ::WinDeclSpecs;
 
6733
  friend class ::WinMemberExplSpec;
 
6734
  friend class ::WinTypeKeywords;
 
6735
  friend class ::WinFriend;
4499
6736
  friend class ::ExtAC;
4500
6737
  friend class ::ExtACBuilderCoupling;
4501
6738
  friend class ::ExtACSyntaxCoupling;
4502
6739
  friend class ::ExtACTree;
4503
6740
  friend class ::ExtACKeywords;
4504
 
  friend class ::WinAsm;
4505
 
  friend class ::WinDeclSpecs;
4506
 
  friend class ::WinMemberExplSpec;
4507
 
  friend class ::WinTypeKeywords;
 
6741
  friend class ::ExtGnu;
4508
6742
  friend class ::PragmaOnceUnitState;
4509
6743
  friend class ::PragmaOnce;
4510
 
  friend class ::CCExprResolve;
4511
 
  friend class ::CExprResolve;
 
6744
  friend class ::CMatchSyntax;
4512
6745
 
4513
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6746
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4514
6747
 
4515
6748
public:
 
6749
  /** Constructor.
 
6750
   *  \param k The 'union' keyword.
 
6751
   *  \param n The name of the union. */
4516
6752
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
6753
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4517
6754
  static const char *NodeId ();
 
6755
  /** Get the name of the node. Can be compared with NodeId(). */
4518
6756
  const char *NodeName () const { return NodeId (); }
4519
6757
};
4520
6758
 
 
6759
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
6760
 *  Tree node representing an enumeration specifier, e.g. enum X. */
4521
6761
 
4522
 
#line 4523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6762
#line 6763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4523
6763
} // closed Puma
 
6764
class CCExprResolve;
 
6765
class CExprResolve;
4524
6766
class WinIfExists;
4525
6767
class WinImportHandler;
4526
6768
class WinMacros;
4527
 
class CMatchSyntax;
4528
 
class ExtGnu;
 
6769
class WinAsm;
 
6770
class WinDeclSpecs;
 
6771
class WinMemberExplSpec;
 
6772
class WinTypeKeywords;
 
6773
class WinFriend;
4529
6774
class ExtAC;
4530
6775
class ExtACBuilderCoupling;
4531
6776
class ExtACSyntaxCoupling;
4532
6777
class ExtACTree;
4533
6778
class ExtACKeywords;
4534
 
class WinAsm;
4535
 
class WinDeclSpecs;
4536
 
class WinMemberExplSpec;
4537
 
class WinTypeKeywords;
 
6779
class ExtGnu;
4538
6780
class PragmaOnceUnitState;
4539
6781
class PragmaOnce;
4540
 
class CCExprResolve;
4541
 
class CExprResolve;
 
6782
class CMatchSyntax;
4542
6783
namespace Puma {
4543
6784
 
4544
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6785
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4545
6786
class CT_EnumSpec : public CT_ClassSpec {
4546
 
#line 4547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6787
#line 6788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6788
  friend class ::CCExprResolve;
 
6789
  friend class ::CExprResolve;
4547
6790
  friend class ::WinIfExists;
4548
6791
  friend class ::WinImportHandler;
4549
6792
  friend class ::WinMacros;
4550
 
  friend class ::CMatchSyntax;
4551
 
  friend class ::ExtGnu;
 
6793
  friend class ::WinAsm;
 
6794
  friend class ::WinDeclSpecs;
 
6795
  friend class ::WinMemberExplSpec;
 
6796
  friend class ::WinTypeKeywords;
 
6797
  friend class ::WinFriend;
4552
6798
  friend class ::ExtAC;
4553
6799
  friend class ::ExtACBuilderCoupling;
4554
6800
  friend class ::ExtACSyntaxCoupling;
4555
6801
  friend class ::ExtACTree;
4556
6802
  friend class ::ExtACKeywords;
4557
 
  friend class ::WinAsm;
4558
 
  friend class ::WinDeclSpecs;
4559
 
  friend class ::WinMemberExplSpec;
4560
 
  friend class ::WinTypeKeywords;
 
6803
  friend class ::ExtGnu;
4561
6804
  friend class ::PragmaOnceUnitState;
4562
6805
  friend class ::PragmaOnce;
4563
 
  friend class ::CCExprResolve;
4564
 
  friend class ::CExprResolve;
 
6806
  friend class ::CMatchSyntax;
4565
6807
 
4566
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6808
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4567
6809
 
4568
6810
public:
 
6811
  /** Constructor.
 
6812
   *  \param k The 'enum' keyword. 
 
6813
   *  \param n The name of the enumeration. */
4569
6814
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
6815
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4570
6816
  static const char *NodeId ();
 
6817
  /** Get the name of the node. Can be compared with NodeId(). */
4571
6818
  const char *NodeName () const { return NodeId (); }
4572
6819
};
4573
6820
 
 
6821
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
6822
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
4574
6823
 
4575
 
#line 4576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6824
#line 6825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4576
6825
} // closed Puma
 
6826
class CCExprResolve;
 
6827
class CExprResolve;
4577
6828
class WinIfExists;
4578
6829
class WinImportHandler;
4579
6830
class WinMacros;
4580
 
class CMatchSyntax;
4581
 
class ExtGnu;
 
6831
class WinAsm;
 
6832
class WinDeclSpecs;
 
6833
class WinMemberExplSpec;
 
6834
class WinTypeKeywords;
 
6835
class WinFriend;
4582
6836
class ExtAC;
4583
6837
class ExtACBuilderCoupling;
4584
6838
class ExtACSyntaxCoupling;
4585
6839
class ExtACTree;
4586
6840
class ExtACKeywords;
4587
 
class WinAsm;
4588
 
class WinDeclSpecs;
4589
 
class WinMemberExplSpec;
4590
 
class WinTypeKeywords;
 
6841
class ExtGnu;
4591
6842
class PragmaOnceUnitState;
4592
6843
class PragmaOnce;
4593
 
class CCExprResolve;
4594
 
class CExprResolve;
 
6844
class CMatchSyntax;
4595
6845
namespace Puma {
4596
6846
 
4597
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6847
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4598
6848
class CT_ExceptionSpec : public CT_DeclSpec {
4599
 
#line 4600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6849
#line 6850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6850
  friend class ::CCExprResolve;
 
6851
  friend class ::CExprResolve;
4600
6852
  friend class ::WinIfExists;
4601
6853
  friend class ::WinImportHandler;
4602
6854
  friend class ::WinMacros;
4603
 
  friend class ::CMatchSyntax;
4604
 
  friend class ::ExtGnu;
 
6855
  friend class ::WinAsm;
 
6856
  friend class ::WinDeclSpecs;
 
6857
  friend class ::WinMemberExplSpec;
 
6858
  friend class ::WinTypeKeywords;
 
6859
  friend class ::WinFriend;
4605
6860
  friend class ::ExtAC;
4606
6861
  friend class ::ExtACBuilderCoupling;
4607
6862
  friend class ::ExtACSyntaxCoupling;
4608
6863
  friend class ::ExtACTree;
4609
6864
  friend class ::ExtACKeywords;
4610
 
  friend class ::WinAsm;
4611
 
  friend class ::WinDeclSpecs;
4612
 
  friend class ::WinMemberExplSpec;
4613
 
  friend class ::WinTypeKeywords;
 
6865
  friend class ::ExtGnu;
4614
6866
  friend class ::PragmaOnceUnitState;
4615
6867
  friend class ::PragmaOnce;
4616
 
  friend class ::CCExprResolve;
4617
 
  friend class ::CExprResolve;
 
6868
  friend class ::CMatchSyntax;
4618
6869
 
4619
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6870
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4620
6871
 
4621
6872
  CTree *sons[2]; // throw, type_id_list
4622
6873
  
4623
6874
public:
4624
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
6875
  /** Constructor.
 
6876
   *  \param k The 'throw' keyword.
 
6877
   *  \param l The type list for the exception type to throw. */
 
6878
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
6879
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4625
6880
  static const char *NodeId ();
 
6881
  /** Get the name of the node. Can be compared with NodeId(). */
4626
6882
  const char *NodeName () const { return NodeId (); }
 
6883
  /** Get the number of sons. */
4627
6884
  int Sons () const { return 2; }
 
6885
  /** Get the n-th son.
 
6886
   *  \param n The index of the son.
 
6887
   *  \return The n-th son or NULL. */
4628
6888
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
6889
  /** Get the exception type list. */
4629
6890
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
6891
  /** Replace a son.
 
6892
   *  \param old_son The son to replace.
 
6893
   *  \param new_son The new son. */
4630
6894
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4631
6895
    CTree::ReplaceSon (sons, 2, old_son, new_son);
4632
6896
  }
4638
6902
/*                                                                           */
4639
6903
/*****************************************************************************/
4640
6904
 
 
6905
/** \class CT_Decl CTree.h Puma/CTree.h
 
6906
 *  Base class for all tree nodes representing declarations. */
4641
6907
 
4642
 
#line 4643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6908
#line 6909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4643
6909
} // closed Puma
 
6910
class CCExprResolve;
 
6911
class CExprResolve;
4644
6912
class WinIfExists;
4645
6913
class WinImportHandler;
4646
6914
class WinMacros;
4647
 
class CMatchSyntax;
4648
 
class ExtGnu;
 
6915
class WinAsm;
 
6916
class WinDeclSpecs;
 
6917
class WinMemberExplSpec;
 
6918
class WinTypeKeywords;
 
6919
class WinFriend;
4649
6920
class ExtAC;
4650
6921
class ExtACBuilderCoupling;
4651
6922
class ExtACSyntaxCoupling;
4652
6923
class ExtACTree;
4653
6924
class ExtACKeywords;
4654
 
class WinAsm;
4655
 
class WinDeclSpecs;
4656
 
class WinMemberExplSpec;
4657
 
class WinTypeKeywords;
 
6925
class ExtGnu;
4658
6926
class PragmaOnceUnitState;
4659
6927
class PragmaOnce;
4660
 
class CCExprResolve;
4661
 
class CExprResolve;
 
6928
class CMatchSyntax;
4662
6929
namespace Puma {
4663
6930
 
4664
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6931
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4665
6932
class CT_Decl : public CTree {
4666
 
#line 4667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6933
#line 6934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6934
  friend class ::CCExprResolve;
 
6935
  friend class ::CExprResolve;
4667
6936
  friend class ::WinIfExists;
4668
6937
  friend class ::WinImportHandler;
4669
6938
  friend class ::WinMacros;
4670
 
  friend class ::CMatchSyntax;
4671
 
  friend class ::ExtGnu;
 
6939
  friend class ::WinAsm;
 
6940
  friend class ::WinDeclSpecs;
 
6941
  friend class ::WinMemberExplSpec;
 
6942
  friend class ::WinTypeKeywords;
 
6943
  friend class ::WinFriend;
4672
6944
  friend class ::ExtAC;
4673
6945
  friend class ::ExtACBuilderCoupling;
4674
6946
  friend class ::ExtACSyntaxCoupling;
4675
6947
  friend class ::ExtACTree;
4676
6948
  friend class ::ExtACKeywords;
4677
 
  friend class ::WinAsm;
4678
 
  friend class ::WinDeclSpecs;
4679
 
  friend class ::WinMemberExplSpec;
4680
 
  friend class ::WinTypeKeywords;
 
6949
  friend class ::ExtGnu;
4681
6950
  friend class ::PragmaOnceUnitState;
4682
6951
  friend class ::PragmaOnce;
4683
 
  friend class ::CCExprResolve;
4684
 
  friend class ::CExprResolve;
 
6952
  friend class ::CMatchSyntax;
4685
6953
 
4686
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6954
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4687
6955
 
4688
6956
  CT_LinkageSpec *_linkage;
 
6957
  
4689
6958
protected:
 
6959
  /** Constructor. */
4690
6960
  CT_Decl () : _linkage (0) {}
 
6961
  
4691
6962
public:
 
6963
  /** Set the linkage of the declared entity.
 
6964
   *  \param l The linkage specifiers. */
4692
6965
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
6966
  /** Get the linkage specifiers. */
4693
6967
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
6968
  /** Get this. */
 
6969
  virtual CT_Decl *IsDeclaration () { return this; }
4694
6970
};
4695
6971
 
 
6972
/** \class CT_Program CTree.h Puma/CTree.h
 
6973
 *  Root node of C/C++ syntax tree. */
4696
6974
 
4697
 
#line 4698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
6975
#line 6976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4698
6976
} // closed Puma
 
6977
class CCExprResolve;
 
6978
class CExprResolve;
4699
6979
class WinIfExists;
4700
6980
class WinImportHandler;
4701
6981
class WinMacros;
4702
 
class CMatchSyntax;
4703
 
class ExtGnu;
 
6982
class WinAsm;
 
6983
class WinDeclSpecs;
 
6984
class WinMemberExplSpec;
 
6985
class WinTypeKeywords;
 
6986
class WinFriend;
4704
6987
class ExtAC;
4705
6988
class ExtACBuilderCoupling;
4706
6989
class ExtACSyntaxCoupling;
4707
6990
class ExtACTree;
4708
6991
class ExtACKeywords;
4709
 
class WinAsm;
4710
 
class WinDeclSpecs;
4711
 
class WinMemberExplSpec;
4712
 
class WinTypeKeywords;
 
6992
class ExtGnu;
4713
6993
class PragmaOnceUnitState;
4714
6994
class PragmaOnce;
4715
 
class CCExprResolve;
4716
 
class CExprResolve;
 
6995
class CMatchSyntax;
4717
6996
namespace Puma {
4718
6997
 
4719
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6998
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4720
6999
class CT_Program : public CT_DeclList, public CSemScope {
4721
 
#line 4722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7000
#line 7001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7001
  friend class ::CCExprResolve;
 
7002
  friend class ::CExprResolve;
4722
7003
  friend class ::WinIfExists;
4723
7004
  friend class ::WinImportHandler;
4724
7005
  friend class ::WinMacros;
4725
 
  friend class ::CMatchSyntax;
4726
 
  friend class ::ExtGnu;
 
7006
  friend class ::WinAsm;
 
7007
  friend class ::WinDeclSpecs;
 
7008
  friend class ::WinMemberExplSpec;
 
7009
  friend class ::WinTypeKeywords;
 
7010
  friend class ::WinFriend;
4727
7011
  friend class ::ExtAC;
4728
7012
  friend class ::ExtACBuilderCoupling;
4729
7013
  friend class ::ExtACSyntaxCoupling;
4730
7014
  friend class ::ExtACTree;
4731
7015
  friend class ::ExtACKeywords;
4732
 
  friend class ::WinAsm;
4733
 
  friend class ::WinDeclSpecs;
4734
 
  friend class ::WinMemberExplSpec;
4735
 
  friend class ::WinTypeKeywords;
 
7016
  friend class ::ExtGnu;
4736
7017
  friend class ::PragmaOnceUnitState;
4737
7018
  friend class ::PragmaOnce;
4738
 
  friend class ::CCExprResolve;
4739
 
  friend class ::CExprResolve;
 
7019
  friend class ::CMatchSyntax;
4740
7020
 
4741
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7021
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4742
7022
 
4743
7023
public:
 
7024
  /** Constructor.
 
7025
   *  \param size The initial number of declarations in the program.
 
7026
   *  \param incr The initial increment count. */
4744
7027
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
7028
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4745
7029
  static const char *NodeId ();
 
7030
  /** Get the name of the node. Can be compared with NodeId(). */
4746
7031
  const char *NodeName () const { return NodeId (); }
 
7032
  /** Get the semantic scope object. */
 
7033
  CSemScope *SemScope () const { return (CSemScope*)this; }
4747
7034
};
4748
7035
   
 
7036
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
7037
 *  Tree node representing an object declaration, e.g. int *i. */
4749
7038
 
4750
 
#line 4751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7039
#line 7040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4751
7040
} // closed Puma
 
7041
class CCExprResolve;
 
7042
class CExprResolve;
4752
7043
class WinIfExists;
4753
7044
class WinImportHandler;
4754
7045
class WinMacros;
4755
 
class CMatchSyntax;
4756
 
class ExtGnu;
 
7046
class WinAsm;
 
7047
class WinDeclSpecs;
 
7048
class WinMemberExplSpec;
 
7049
class WinTypeKeywords;
 
7050
class WinFriend;
4757
7051
class ExtAC;
4758
7052
class ExtACBuilderCoupling;
4759
7053
class ExtACSyntaxCoupling;
4760
7054
class ExtACTree;
4761
7055
class ExtACKeywords;
4762
 
class WinAsm;
4763
 
class WinDeclSpecs;
4764
 
class WinMemberExplSpec;
4765
 
class WinTypeKeywords;
 
7056
class ExtGnu;
4766
7057
class PragmaOnceUnitState;
4767
7058
class PragmaOnce;
4768
 
class CCExprResolve;
4769
 
class CExprResolve;
 
7059
class CMatchSyntax;
4770
7060
namespace Puma {
4771
7061
 
4772
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7062
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4773
7063
class CT_ObjDecl : public CT_Decl {
4774
 
#line 4775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7064
#line 7065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7065
  friend class ::CCExprResolve;
 
7066
  friend class ::CExprResolve;
4775
7067
  friend class ::WinIfExists;
4776
7068
  friend class ::WinImportHandler;
4777
7069
  friend class ::WinMacros;
4778
 
  friend class ::CMatchSyntax;
4779
 
  friend class ::ExtGnu;
 
7070
  friend class ::WinAsm;
 
7071
  friend class ::WinDeclSpecs;
 
7072
  friend class ::WinMemberExplSpec;
 
7073
  friend class ::WinTypeKeywords;
 
7074
  friend class ::WinFriend;
4780
7075
  friend class ::ExtAC;
4781
7076
  friend class ::ExtACBuilderCoupling;
4782
7077
  friend class ::ExtACSyntaxCoupling;
4783
7078
  friend class ::ExtACTree;
4784
7079
  friend class ::ExtACKeywords;
4785
 
  friend class ::WinAsm;
4786
 
  friend class ::WinDeclSpecs;
4787
 
  friend class ::WinMemberExplSpec;
4788
 
  friend class ::WinTypeKeywords;
 
7080
  friend class ::ExtGnu;
4789
7081
  friend class ::PragmaOnceUnitState;
4790
7082
  friend class ::PragmaOnce;
4791
 
  friend class ::CCExprResolve;
4792
 
  friend class ::CExprResolve;
 
7083
  friend class ::CMatchSyntax;
4793
7084
 
4794
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7085
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4795
7086
 
4796
7087
  CTree *sons[3]; // declspecs, declarators, colon
4797
7088
 
4798
7089
public:
 
7090
  /** Constructor.
 
7091
   *  \param dsl The declaration specifier sequence.
 
7092
   *  \param dl The declarator list.
 
7093
   *  \param c Optional colon. */
4799
7094
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
4800
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
7095
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
4801
7096
  }
 
7097
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4802
7098
  static const char *NodeId ();
 
7099
  /** Get the name of the node. Can be compared with NodeId(). */
4803
7100
  const char *NodeName () const { return NodeId (); }
 
7101
  /** Get the number of sons. */
4804
7102
  int Sons () const { return 3; }
 
7103
  /** Get the n-th son.
 
7104
   *  \param n The index of the son.
 
7105
   *  \return The n-th son or NULL. */
4805
7106
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
7107
  /** Get the declaration specifier sequence. */
4806
7108
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
7109
  /** Get the declarator list. */
4807
7110
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
7111
  /** Replace a son.
 
7112
   *  \param old_son The son to replace.
 
7113
   *  \param new_son The new son. */
4808
7114
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4809
7115
    CTree::ReplaceSon (sons, 3, old_son, new_son);
4810
7116
  }
4811
7117
};
4812
7118
 
 
7119
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
7120
 *  Tree node representing a template declaration. */
4813
7121
 
4814
 
#line 4815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7122
#line 7123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4815
7123
} // closed Puma
 
7124
class CCExprResolve;
 
7125
class CExprResolve;
4816
7126
class WinIfExists;
4817
7127
class WinImportHandler;
4818
7128
class WinMacros;
4819
 
class CMatchSyntax;
4820
 
class ExtGnu;
 
7129
class WinAsm;
 
7130
class WinDeclSpecs;
 
7131
class WinMemberExplSpec;
 
7132
class WinTypeKeywords;
 
7133
class WinFriend;
4821
7134
class ExtAC;
4822
7135
class ExtACBuilderCoupling;
4823
7136
class ExtACSyntaxCoupling;
4824
7137
class ExtACTree;
4825
7138
class ExtACKeywords;
4826
 
class WinAsm;
4827
 
class WinDeclSpecs;
4828
 
class WinMemberExplSpec;
4829
 
class WinTypeKeywords;
 
7139
class ExtGnu;
4830
7140
class PragmaOnceUnitState;
4831
7141
class PragmaOnce;
4832
 
class CCExprResolve;
4833
 
class CExprResolve;
 
7142
class CMatchSyntax;
4834
7143
namespace Puma {
4835
7144
 
4836
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7145
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4837
7146
class CT_TemplateDecl : public CT_Decl, public CSemScope {
4838
 
#line 4839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7147
#line 7148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7148
  friend class ::CCExprResolve;
 
7149
  friend class ::CExprResolve;
4839
7150
  friend class ::WinIfExists;
4840
7151
  friend class ::WinImportHandler;
4841
7152
  friend class ::WinMacros;
4842
 
  friend class ::CMatchSyntax;
4843
 
  friend class ::ExtGnu;
 
7153
  friend class ::WinAsm;
 
7154
  friend class ::WinDeclSpecs;
 
7155
  friend class ::WinMemberExplSpec;
 
7156
  friend class ::WinTypeKeywords;
 
7157
  friend class ::WinFriend;
4844
7158
  friend class ::ExtAC;
4845
7159
  friend class ::ExtACBuilderCoupling;
4846
7160
  friend class ::ExtACSyntaxCoupling;
4847
7161
  friend class ::ExtACTree;
4848
7162
  friend class ::ExtACKeywords;
4849
 
  friend class ::WinAsm;
4850
 
  friend class ::WinDeclSpecs;
4851
 
  friend class ::WinMemberExplSpec;
4852
 
  friend class ::WinTypeKeywords;
 
7163
  friend class ::ExtGnu;
4853
7164
  friend class ::PragmaOnceUnitState;
4854
7165
  friend class ::PragmaOnce;
4855
 
  friend class ::CCExprResolve;
4856
 
  friend class ::CExprResolve;
 
7166
  friend class ::CMatchSyntax;
4857
7167
 
4858
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7168
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4859
7169
 
4860
7170
  CTree *sons[3]; // export, param_list, decl
4861
7171
 
4862
7172
public:
 
7173
  /** Constructor.
 
7174
   *  \param e Optional 'export' keyword. 
 
7175
   *  \param p The template parameter list.
 
7176
   *  \param d The class or function declaration. */
4863
7177
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
4864
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
7178
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
4865
7179
  }
 
7180
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4866
7181
  static const char *NodeId ();
 
7182
  /** Get the name of the node. Can be compared with NodeId(). */
4867
7183
  const char *NodeName () const { return NodeId (); }
 
7184
  /** Get the number of sons. */
4868
7185
  int Sons () const { return CTree::Sons (sons, 3); }
 
7186
  /** Get the n-th son.
 
7187
   *  \param n The index of the son.
 
7188
   *  \return The n-th son or NULL. */
4869
7189
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
7190
  /** Replace a son.
 
7191
   *  \param old_son The son to replace.
 
7192
   *  \param new_son The new son. */
4870
7193
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4871
7194
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
4872
7195
  }
 
7196
  /** Get the 'export' keyword. */
4873
7197
  CTree *Export () const { return sons[0]; }
 
7198
  /** Get the template parameter list. */
4874
7199
  CT_TemplateParamList *Parameters () const { 
4875
7200
    return (CT_TemplateParamList*)sons[1]; 
4876
7201
  }
 
7202
  /** Get the class or function declaration. */
4877
7203
  CTree *Declaration () const { return sons[2]; }
 
7204
  /** Get the semantic scope object. */
 
7205
  CSemScope *SemScope () const { return (CSemScope*)this; }
4878
7206
};
4879
7207
 
 
7208
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
7209
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
4880
7210
 
4881
 
#line 4882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7211
#line 7212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4882
7212
} // closed Puma
 
7213
class CCExprResolve;
 
7214
class CExprResolve;
4883
7215
class WinIfExists;
4884
7216
class WinImportHandler;
4885
7217
class WinMacros;
4886
 
class CMatchSyntax;
4887
 
class ExtGnu;
 
7218
class WinAsm;
 
7219
class WinDeclSpecs;
 
7220
class WinMemberExplSpec;
 
7221
class WinTypeKeywords;
 
7222
class WinFriend;
4888
7223
class ExtAC;
4889
7224
class ExtACBuilderCoupling;
4890
7225
class ExtACSyntaxCoupling;
4891
7226
class ExtACTree;
4892
7227
class ExtACKeywords;
4893
 
class WinAsm;
4894
 
class WinDeclSpecs;
4895
 
class WinMemberExplSpec;
4896
 
class WinTypeKeywords;
 
7228
class ExtGnu;
4897
7229
class PragmaOnceUnitState;
4898
7230
class PragmaOnce;
4899
 
class CCExprResolve;
4900
 
class CExprResolve;
 
7231
class CMatchSyntax;
4901
7232
namespace Puma {
4902
7233
 
4903
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7234
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4904
7235
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
4905
 
#line 4906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7236
#line 7237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7237
  friend class ::CCExprResolve;
 
7238
  friend class ::CExprResolve;
4906
7239
  friend class ::WinIfExists;
4907
7240
  friend class ::WinImportHandler;
4908
7241
  friend class ::WinMacros;
4909
 
  friend class ::CMatchSyntax;
4910
 
  friend class ::ExtGnu;
 
7242
  friend class ::WinAsm;
 
7243
  friend class ::WinDeclSpecs;
 
7244
  friend class ::WinMemberExplSpec;
 
7245
  friend class ::WinTypeKeywords;
 
7246
  friend class ::WinFriend;
4911
7247
  friend class ::ExtAC;
4912
7248
  friend class ::ExtACBuilderCoupling;
4913
7249
  friend class ::ExtACSyntaxCoupling;
4914
7250
  friend class ::ExtACTree;
4915
7251
  friend class ::ExtACKeywords;
4916
 
  friend class ::WinAsm;
4917
 
  friend class ::WinDeclSpecs;
4918
 
  friend class ::WinMemberExplSpec;
4919
 
  friend class ::WinTypeKeywords;
 
7252
  friend class ::ExtGnu;
4920
7253
  friend class ::PragmaOnceUnitState;
4921
7254
  friend class ::PragmaOnce;
4922
 
  friend class ::CCExprResolve;
4923
 
  friend class ::CExprResolve;
 
7255
  friend class ::CMatchSyntax;
4924
7256
 
4925
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7257
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4926
7258
 
4927
7259
protected:
 
7260
  /** Constructor. */
4928
7261
  CT_TemplateParamDecl () {}
4929
7262
  
4930
7263
public:
 
7264
  /** Get the template default argument. */
4931
7265
  virtual CT_ExprList *DefaultArgument () const = 0;
 
7266
  /** Get the semantic information object. */
4932
7267
  CSemObject *SemObject () const { return (CSemObject*)this; }
4933
7268
};
4934
7269
 
4935
7270
 
4936
 
#line 4937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7271
#line 7272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4937
7272
} // closed Puma
 
7273
class CCExprResolve;
 
7274
class CExprResolve;
4938
7275
class WinIfExists;
4939
7276
class WinImportHandler;
4940
7277
class WinMacros;
4941
 
class CMatchSyntax;
4942
 
class ExtGnu;
 
7278
class WinAsm;
 
7279
class WinDeclSpecs;
 
7280
class WinMemberExplSpec;
 
7281
class WinTypeKeywords;
 
7282
class WinFriend;
4943
7283
class ExtAC;
4944
7284
class ExtACBuilderCoupling;
4945
7285
class ExtACSyntaxCoupling;
4946
7286
class ExtACTree;
4947
7287
class ExtACKeywords;
4948
 
class WinAsm;
4949
 
class WinDeclSpecs;
4950
 
class WinMemberExplSpec;
4951
 
class WinTypeKeywords;
 
7288
class ExtGnu;
4952
7289
class PragmaOnceUnitState;
4953
7290
class PragmaOnce;
4954
 
class CCExprResolve;
4955
 
class CExprResolve;
 
7291
class CMatchSyntax;
4956
7292
namespace Puma {
4957
7293
 
4958
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7294
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4959
7295
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
4960
 
#line 4961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7296
#line 7297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7297
  friend class ::CCExprResolve;
 
7298
  friend class ::CExprResolve;
4961
7299
  friend class ::WinIfExists;
4962
7300
  friend class ::WinImportHandler;
4963
7301
  friend class ::WinMacros;
4964
 
  friend class ::CMatchSyntax;
4965
 
  friend class ::ExtGnu;
 
7302
  friend class ::WinAsm;
 
7303
  friend class ::WinDeclSpecs;
 
7304
  friend class ::WinMemberExplSpec;
 
7305
  friend class ::WinTypeKeywords;
 
7306
  friend class ::WinFriend;
4966
7307
  friend class ::ExtAC;
4967
7308
  friend class ::ExtACBuilderCoupling;
4968
7309
  friend class ::ExtACSyntaxCoupling;
4969
7310
  friend class ::ExtACTree;
4970
7311
  friend class ::ExtACKeywords;
4971
 
  friend class ::WinAsm;
4972
 
  friend class ::WinDeclSpecs;
4973
 
  friend class ::WinMemberExplSpec;
4974
 
  friend class ::WinTypeKeywords;
 
7312
  friend class ::ExtGnu;
4975
7313
  friend class ::PragmaOnceUnitState;
4976
7314
  friend class ::PragmaOnce;
4977
 
  friend class ::CCExprResolve;
4978
 
  friend class ::CExprResolve;
 
7315
  friend class ::CMatchSyntax;
4979
7316
 
4980
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7317
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4981
7318
 
4982
7319
  CTree *sons[3]; // declspecs, declarator, init
4983
7320
 
4984
7321
public:
4985
7322
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
4986
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
7323
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
4987
7324
  }
 
7325
  /** Get the identifier for this node type. Can be compared with NodeName(). */
4988
7326
  static const char *NodeId ();
 
7327
  /** Get the name of the node. Can be compared with NodeId(). */
4989
7328
  const char *NodeName () const { return NodeId (); }
 
7329
  /** Get the number of sons. */
4990
7330
  int Sons () const { return CTree::Sons (sons, 3); }
 
7331
  /** Get the n-th son.
 
7332
   *  \param n The index of the son.
 
7333
   *  \return The n-th son or NULL. */
4991
7334
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
4992
7335
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
4993
7336
  CTree *Declarator () const { return sons[1]; }
4994
7337
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
4995
7338
  CSemObject *SemObject () const { return (CSemObject*)this; }
4996
 
  void Initializer (CTree *i) { sons[2] = i; }
 
7339
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
7340
  /** Replace a son.
 
7341
   *  \param old_son The son to replace.
 
7342
   *  \param new_son The new son. */
4997
7343
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
4998
7344
    CTree::ReplaceSon (sons, 3, old_son, new_son);
4999
7345
  }
5000
7346
};
5001
7347
 
5002
7348
 
5003
 
#line 5004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7349
#line 7350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5004
7350
} // closed Puma
 
7351
class CCExprResolve;
 
7352
class CExprResolve;
5005
7353
class WinIfExists;
5006
7354
class WinImportHandler;
5007
7355
class WinMacros;
5008
 
class CMatchSyntax;
5009
 
class ExtGnu;
 
7356
class WinAsm;
 
7357
class WinDeclSpecs;
 
7358
class WinMemberExplSpec;
 
7359
class WinTypeKeywords;
 
7360
class WinFriend;
5010
7361
class ExtAC;
5011
7362
class ExtACBuilderCoupling;
5012
7363
class ExtACSyntaxCoupling;
5013
7364
class ExtACTree;
5014
7365
class ExtACKeywords;
5015
 
class WinAsm;
5016
 
class WinDeclSpecs;
5017
 
class WinMemberExplSpec;
5018
 
class WinTypeKeywords;
 
7366
class ExtGnu;
5019
7367
class PragmaOnceUnitState;
5020
7368
class PragmaOnce;
5021
 
class CCExprResolve;
5022
 
class CExprResolve;
 
7369
class CMatchSyntax;
5023
7370
namespace Puma {
5024
7371
 
5025
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7372
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5026
7373
class CT_TypeParamDecl : public CT_TemplateParamDecl {
5027
 
#line 5028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7374
#line 7375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7375
  friend class ::CCExprResolve;
 
7376
  friend class ::CExprResolve;
5028
7377
  friend class ::WinIfExists;
5029
7378
  friend class ::WinImportHandler;
5030
7379
  friend class ::WinMacros;
5031
 
  friend class ::CMatchSyntax;
5032
 
  friend class ::ExtGnu;
 
7380
  friend class ::WinAsm;
 
7381
  friend class ::WinDeclSpecs;
 
7382
  friend class ::WinMemberExplSpec;
 
7383
  friend class ::WinTypeKeywords;
 
7384
  friend class ::WinFriend;
5033
7385
  friend class ::ExtAC;
5034
7386
  friend class ::ExtACBuilderCoupling;
5035
7387
  friend class ::ExtACSyntaxCoupling;
5036
7388
  friend class ::ExtACTree;
5037
7389
  friend class ::ExtACKeywords;
5038
 
  friend class ::WinAsm;
5039
 
  friend class ::WinDeclSpecs;
5040
 
  friend class ::WinMemberExplSpec;
5041
 
  friend class ::WinTypeKeywords;
 
7390
  friend class ::ExtGnu;
5042
7391
  friend class ::PragmaOnceUnitState;
5043
7392
  friend class ::PragmaOnce;
5044
 
  friend class ::CCExprResolve;
5045
 
  friend class ::CExprResolve;
 
7393
  friend class ::CMatchSyntax;
5046
7394
 
5047
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7395
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5048
7396
 
5049
7397
  CTree *sons[4]; // params, key, id, init
5050
7398
 
5051
7399
public:
5052
7400
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
5053
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
7401
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
7402
    AddSon (sons[2], id); AddSon (sons[3], i);
5054
7403
  }
 
7404
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5055
7405
  static const char *NodeId ();
 
7406
  /** Get the name of the node. Can be compared with NodeId(). */
5056
7407
  const char *NodeName () const { return NodeId (); }
 
7408
  /** Get the number of sons. */
5057
7409
  int Sons () const { return CTree::Sons (sons, 4); }
 
7410
  /** Get the n-th son.
 
7411
   *  \param n The index of the son.
 
7412
   *  \return The n-th son or NULL. */
5058
7413
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
5059
7414
  CT_TemplateParamList *Parameters () const { 
5060
7415
    return (CT_TemplateParamList*)sons[0]; 
5061
7416
  }
5062
7417
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
5063
7418
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
5064
 
  void Initializer (CTree *i) { sons[3] = i; }
 
7419
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
7420
  /** Replace a son.
 
7421
   *  \param old_son The son to replace.
 
7422
   *  \param new_son The new son. */
5065
7423
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5066
7424
    CTree::ReplaceSon (sons, 4, old_son, new_son);
5067
7425
  }
5068
7426
};
5069
7427
 
5070
7428
 
5071
 
#line 5072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7429
#line 7430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5072
7430
} // closed Puma
 
7431
class CCExprResolve;
 
7432
class CExprResolve;
5073
7433
class WinIfExists;
5074
7434
class WinImportHandler;
5075
7435
class WinMacros;
5076
 
class CMatchSyntax;
5077
 
class ExtGnu;
 
7436
class WinAsm;
 
7437
class WinDeclSpecs;
 
7438
class WinMemberExplSpec;
 
7439
class WinTypeKeywords;
 
7440
class WinFriend;
5078
7441
class ExtAC;
5079
7442
class ExtACBuilderCoupling;
5080
7443
class ExtACSyntaxCoupling;
5081
7444
class ExtACTree;
5082
7445
class ExtACKeywords;
5083
 
class WinAsm;
5084
 
class WinDeclSpecs;
5085
 
class WinMemberExplSpec;
5086
 
class WinTypeKeywords;
 
7446
class ExtGnu;
5087
7447
class PragmaOnceUnitState;
5088
7448
class PragmaOnce;
5089
 
class CCExprResolve;
5090
 
class CExprResolve;
 
7449
class CMatchSyntax;
5091
7450
namespace Puma {
5092
7451
 
5093
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7452
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5094
7453
class CT_EnumDef : public CT_Decl, public CSemObject {
5095
 
#line 5096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7454
#line 7455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7455
  friend class ::CCExprResolve;
 
7456
  friend class ::CExprResolve;
5096
7457
  friend class ::WinIfExists;
5097
7458
  friend class ::WinImportHandler;
5098
7459
  friend class ::WinMacros;
5099
 
  friend class ::CMatchSyntax;
5100
 
  friend class ::ExtGnu;
 
7460
  friend class ::WinAsm;
 
7461
  friend class ::WinDeclSpecs;
 
7462
  friend class ::WinMemberExplSpec;
 
7463
  friend class ::WinTypeKeywords;
 
7464
  friend class ::WinFriend;
5101
7465
  friend class ::ExtAC;
5102
7466
  friend class ::ExtACBuilderCoupling;
5103
7467
  friend class ::ExtACSyntaxCoupling;
5104
7468
  friend class ::ExtACTree;
5105
7469
  friend class ::ExtACKeywords;
5106
 
  friend class ::WinAsm;
5107
 
  friend class ::WinDeclSpecs;
5108
 
  friend class ::WinMemberExplSpec;
5109
 
  friend class ::WinTypeKeywords;
 
7470
  friend class ::ExtGnu;
5110
7471
  friend class ::PragmaOnceUnitState;
5111
7472
  friend class ::PragmaOnce;
5112
 
  friend class ::CCExprResolve;
5113
 
  friend class ::CExprResolve;
 
7473
  friend class ::CMatchSyntax;
5114
7474
 
5115
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7475
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5116
7476
 
5117
7477
  CTree *sons[3]; // key, name, enumerators
5118
7478
 
5119
7479
public:
5120
7480
  CT_EnumDef (CTree *k, CTree *n) {
5121
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
7481
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
5122
7482
  }
 
7483
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5123
7484
  static const char *NodeId ();
 
7485
  /** Get the name of the node. Can be compared with NodeId(). */
5124
7486
  const char *NodeName () const { return NodeId (); }
 
7487
  /** Get the number of sons. */
5125
7488
  int Sons () const { return CTree::Sons (sons, 3); }
 
7489
  /** Get the n-th son.
 
7490
   *  \param n The index of the son.
 
7491
   *  \return The n-th son or NULL. */
5126
7492
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
5127
7493
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
5128
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
7494
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
5129
7495
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
7496
  /** Replace a son.
 
7497
   *  \param old_son The son to replace.
 
7498
   *  \param new_son The new son. */
5130
7499
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5131
7500
    CTree::ReplaceSon (sons, 3, old_son, new_son);
5132
7501
  }
5134
7503
};
5135
7504
 
5136
7505
 
5137
 
#line 5138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7506
#line 7507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5138
7507
} // closed Puma
 
7508
class CCExprResolve;
 
7509
class CExprResolve;
5139
7510
class WinIfExists;
5140
7511
class WinImportHandler;
5141
7512
class WinMacros;
5142
 
class CMatchSyntax;
5143
 
class ExtGnu;
 
7513
class WinAsm;
 
7514
class WinDeclSpecs;
 
7515
class WinMemberExplSpec;
 
7516
class WinTypeKeywords;
 
7517
class WinFriend;
5144
7518
class ExtAC;
5145
7519
class ExtACBuilderCoupling;
5146
7520
class ExtACSyntaxCoupling;
5147
7521
class ExtACTree;
5148
7522
class ExtACKeywords;
5149
 
class WinAsm;
5150
 
class WinDeclSpecs;
5151
 
class WinMemberExplSpec;
5152
 
class WinTypeKeywords;
 
7523
class ExtGnu;
5153
7524
class PragmaOnceUnitState;
5154
7525
class PragmaOnce;
5155
 
class CCExprResolve;
5156
 
class CExprResolve;
 
7526
class CMatchSyntax;
5157
7527
namespace Puma {
5158
7528
 
5159
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7529
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5160
7530
class CT_Enumerator : public CT_Decl, public CSemObject {
5161
 
#line 5162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7531
#line 7532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7532
  friend class ::CCExprResolve;
 
7533
  friend class ::CExprResolve;
5162
7534
  friend class ::WinIfExists;
5163
7535
  friend class ::WinImportHandler;
5164
7536
  friend class ::WinMacros;
5165
 
  friend class ::CMatchSyntax;
5166
 
  friend class ::ExtGnu;
 
7537
  friend class ::WinAsm;
 
7538
  friend class ::WinDeclSpecs;
 
7539
  friend class ::WinMemberExplSpec;
 
7540
  friend class ::WinTypeKeywords;
 
7541
  friend class ::WinFriend;
5167
7542
  friend class ::ExtAC;
5168
7543
  friend class ::ExtACBuilderCoupling;
5169
7544
  friend class ::ExtACSyntaxCoupling;
5170
7545
  friend class ::ExtACTree;
5171
7546
  friend class ::ExtACKeywords;
5172
 
  friend class ::WinAsm;
5173
 
  friend class ::WinDeclSpecs;
5174
 
  friend class ::WinMemberExplSpec;
5175
 
  friend class ::WinTypeKeywords;
 
7547
  friend class ::ExtGnu;
5176
7548
  friend class ::PragmaOnceUnitState;
5177
7549
  friend class ::PragmaOnce;
5178
 
  friend class ::CCExprResolve;
5179
 
  friend class ::CExprResolve;
 
7550
  friend class ::CMatchSyntax;
5180
7551
 
5181
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7552
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5182
7553
 
5183
7554
  CTree *sons[2]; // name, init
5184
7555
 
5185
7556
public:
5186
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
7557
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
7558
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5187
7559
  static const char *NodeId ();
 
7560
  /** Get the name of the node. Can be compared with NodeId(). */
5188
7561
  const char *NodeName () const { return NodeId (); }
 
7562
  /** Get the number of sons. */
5189
7563
  int Sons () const { return CTree::Sons (sons, 2); }
 
7564
  /** Get the n-th son.
 
7565
   *  \param n The index of the son.
 
7566
   *  \return The n-th son or NULL. */
5190
7567
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
5191
7568
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
5192
 
  void Initializer (CTree *i) { sons[1] = i; }
 
7569
  void Initializer (CTree *i) { AddSon (sons[1], i); }
5193
7570
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
7571
  /** Replace a son.
 
7572
   *  \param old_son The son to replace.
 
7573
   *  \param new_son The new son. */
5194
7574
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5195
7575
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
5196
7576
  }
5198
7578
};
5199
7579
 
5200
7580
 
5201
 
#line 5202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7581
#line 7582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5202
7582
} // closed Puma
 
7583
class CCExprResolve;
 
7584
class CExprResolve;
5203
7585
class WinIfExists;
5204
7586
class WinImportHandler;
5205
7587
class WinMacros;
5206
 
class CMatchSyntax;
5207
 
class ExtGnu;
 
7588
class WinAsm;
 
7589
class WinDeclSpecs;
 
7590
class WinMemberExplSpec;
 
7591
class WinTypeKeywords;
 
7592
class WinFriend;
5208
7593
class ExtAC;
5209
7594
class ExtACBuilderCoupling;
5210
7595
class ExtACSyntaxCoupling;
5211
7596
class ExtACTree;
5212
7597
class ExtACKeywords;
5213
 
class WinAsm;
5214
 
class WinDeclSpecs;
5215
 
class WinMemberExplSpec;
5216
 
class WinTypeKeywords;
 
7598
class ExtGnu;
5217
7599
class PragmaOnceUnitState;
5218
7600
class PragmaOnce;
5219
 
class CCExprResolve;
5220
 
class CExprResolve;
 
7601
class CMatchSyntax;
5221
7602
namespace Puma {
5222
7603
 
5223
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7604
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5224
7605
class CT_FctDef : public CT_Decl, public CSemObject {
5225
 
#line 5226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7606
#line 7607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7607
  friend class ::CCExprResolve;
 
7608
  friend class ::CExprResolve;
5226
7609
  friend class ::WinIfExists;
5227
7610
  friend class ::WinImportHandler;
5228
7611
  friend class ::WinMacros;
5229
 
  friend class ::CMatchSyntax;
5230
 
  friend class ::ExtGnu;
 
7612
  friend class ::WinAsm;
 
7613
  friend class ::WinDeclSpecs;
 
7614
  friend class ::WinMemberExplSpec;
 
7615
  friend class ::WinTypeKeywords;
 
7616
  friend class ::WinFriend;
5231
7617
  friend class ::ExtAC;
5232
7618
  friend class ::ExtACBuilderCoupling;
5233
7619
  friend class ::ExtACSyntaxCoupling;
5234
7620
  friend class ::ExtACTree;
5235
7621
  friend class ::ExtACKeywords;
5236
 
  friend class ::WinAsm;
5237
 
  friend class ::WinDeclSpecs;
5238
 
  friend class ::WinMemberExplSpec;
5239
 
  friend class ::WinTypeKeywords;
 
7622
  friend class ::ExtGnu;
5240
7623
  friend class ::PragmaOnceUnitState;
5241
7624
  friend class ::PragmaOnce;
5242
 
  friend class ::CCExprResolve;
5243
 
  friend class ::CExprResolve;
 
7625
  friend class ::CMatchSyntax;
5244
7626
 
5245
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7627
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5246
7628
 
5247
7629
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
5248
7630
 
5249
7631
public:
5250
7632
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
5251
7633
             CTree *b, CTree *hs) {
5252
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
5253
 
    sons[5] = b; sons[6] = hs; 
 
7634
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
7635
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
7636
    AddSon (sons[6], hs); 
5254
7637
  }
 
7638
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5255
7639
  static const char *NodeId ();
 
7640
  /** Get the name of the node. Can be compared with NodeId(). */
5256
7641
  const char *NodeName () const { return NodeId (); }
 
7642
  /** Get the number of sons. */
5257
7643
  int Sons () const { return CTree::Sons (sons, 7); }
 
7644
  /** Get the n-th son.
 
7645
   *  \param n The index of the son.
 
7646
   *  \return The n-th son or NULL. */
5258
7647
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
5259
7648
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
5260
7649
  CTree *Declarator () const { return sons[1]; }
5264
7653
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
5265
7654
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
5266
7655
  CSemObject *SemObject () const { return (CSemObject*)this; }
5267
 
  void CtorInit (CTree *i) { sons[3] = i; }
5268
 
  void Body (CTree *b) { sons[5] = b; }
 
7656
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
7657
  void Body (CTree *b) { AddSon (sons[5], b); }
5269
7658
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
5270
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
7659
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
7660
    AddSon (sons[5], b); AddSon (sons[6], h);
5271
7661
  }
 
7662
  /** Replace a son.
 
7663
   *  \param old_son The son to replace.
 
7664
   *  \param new_son The new son. */
5272
7665
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5273
7666
    CTree::ReplaceSon (sons, 7, old_son, new_son);
5274
7667
  }
5275
7668
};
5276
7669
 
5277
7670
 
5278
 
#line 5279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7671
#line 7672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5279
7672
} // closed Puma
 
7673
class CCExprResolve;
 
7674
class CExprResolve;
5280
7675
class WinIfExists;
5281
7676
class WinImportHandler;
5282
7677
class WinMacros;
5283
 
class CMatchSyntax;
5284
 
class ExtGnu;
 
7678
class WinAsm;
 
7679
class WinDeclSpecs;
 
7680
class WinMemberExplSpec;
 
7681
class WinTypeKeywords;
 
7682
class WinFriend;
5285
7683
class ExtAC;
5286
7684
class ExtACBuilderCoupling;
5287
7685
class ExtACSyntaxCoupling;
5288
7686
class ExtACTree;
5289
7687
class ExtACKeywords;
5290
 
class WinAsm;
5291
 
class WinDeclSpecs;
5292
 
class WinMemberExplSpec;
5293
 
class WinTypeKeywords;
 
7688
class ExtGnu;
5294
7689
class PragmaOnceUnitState;
5295
7690
class PragmaOnce;
5296
 
class CCExprResolve;
5297
 
class CExprResolve;
 
7691
class CMatchSyntax;
5298
7692
namespace Puma {
5299
7693
 
5300
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7694
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5301
7695
class CT_AsmDef : public CT_Decl {
5302
 
#line 5303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7696
#line 7697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7697
  friend class ::CCExprResolve;
 
7698
  friend class ::CExprResolve;
5303
7699
  friend class ::WinIfExists;
5304
7700
  friend class ::WinImportHandler;
5305
7701
  friend class ::WinMacros;
5306
 
  friend class ::CMatchSyntax;
5307
 
  friend class ::ExtGnu;
 
7702
  friend class ::WinAsm;
 
7703
  friend class ::WinDeclSpecs;
 
7704
  friend class ::WinMemberExplSpec;
 
7705
  friend class ::WinTypeKeywords;
 
7706
  friend class ::WinFriend;
5308
7707
  friend class ::ExtAC;
5309
7708
  friend class ::ExtACBuilderCoupling;
5310
7709
  friend class ::ExtACSyntaxCoupling;
5311
7710
  friend class ::ExtACTree;
5312
7711
  friend class ::ExtACKeywords;
5313
 
  friend class ::WinAsm;
5314
 
  friend class ::WinDeclSpecs;
5315
 
  friend class ::WinMemberExplSpec;
5316
 
  friend class ::WinTypeKeywords;
 
7712
  friend class ::ExtGnu;
5317
7713
  friend class ::PragmaOnceUnitState;
5318
7714
  friend class ::PragmaOnce;
5319
 
  friend class ::CCExprResolve;
5320
 
  friend class ::CExprResolve;
 
7715
  friend class ::CMatchSyntax;
5321
7716
 
5322
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7717
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5323
7718
 
5324
7719
  CTree *sons[5]; // asm, open, str, close, semi_colon
5325
7720
 
5326
7721
public:
5327
7722
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
5328
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
7723
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
7724
    AddSon (sons[3], c); AddSon (sons[4], sc); 
5329
7725
  }
 
7726
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5330
7727
  static const char *NodeId ();
 
7728
  /** Get the name of the node. Can be compared with NodeId(). */
5331
7729
  const char *NodeName () const { return NodeId (); }
 
7730
  /** Get the number of sons. */
5332
7731
  int Sons () const { return 5; }
 
7732
  /** Get the n-th son.
 
7733
   *  \param n The index of the son.
 
7734
   *  \return The n-th son or NULL. */
5333
7735
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
5334
7736
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
7737
  /** Replace a son.
 
7738
   *  \param old_son The son to replace.
 
7739
   *  \param new_son The new son. */
5335
7740
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5336
7741
    CTree::ReplaceSon (sons, 5, old_son, new_son);
5337
7742
  }
5338
7743
};
5339
7744
 
5340
7745
 
5341
 
#line 5342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7746
#line 7747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5342
7747
} // closed Puma
 
7748
class CCExprResolve;
 
7749
class CExprResolve;
5343
7750
class WinIfExists;
5344
7751
class WinImportHandler;
5345
7752
class WinMacros;
5346
 
class CMatchSyntax;
5347
 
class ExtGnu;
 
7753
class WinAsm;
 
7754
class WinDeclSpecs;
 
7755
class WinMemberExplSpec;
 
7756
class WinTypeKeywords;
 
7757
class WinFriend;
5348
7758
class ExtAC;
5349
7759
class ExtACBuilderCoupling;
5350
7760
class ExtACSyntaxCoupling;
5351
7761
class ExtACTree;
5352
7762
class ExtACKeywords;
5353
 
class WinAsm;
5354
 
class WinDeclSpecs;
5355
 
class WinMemberExplSpec;
5356
 
class WinTypeKeywords;
 
7763
class ExtGnu;
5357
7764
class PragmaOnceUnitState;
5358
7765
class PragmaOnce;
5359
 
class CCExprResolve;
5360
 
class CExprResolve;
 
7766
class CMatchSyntax;
5361
7767
namespace Puma {
5362
7768
 
5363
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7769
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5364
7770
class CT_Handler : public CT_Decl, public CSemScope {
5365
 
#line 5366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7771
#line 7772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7772
  friend class ::CCExprResolve;
 
7773
  friend class ::CExprResolve;
5366
7774
  friend class ::WinIfExists;
5367
7775
  friend class ::WinImportHandler;
5368
7776
  friend class ::WinMacros;
5369
 
  friend class ::CMatchSyntax;
5370
 
  friend class ::ExtGnu;
 
7777
  friend class ::WinAsm;
 
7778
  friend class ::WinDeclSpecs;
 
7779
  friend class ::WinMemberExplSpec;
 
7780
  friend class ::WinTypeKeywords;
 
7781
  friend class ::WinFriend;
5371
7782
  friend class ::ExtAC;
5372
7783
  friend class ::ExtACBuilderCoupling;
5373
7784
  friend class ::ExtACSyntaxCoupling;
5374
7785
  friend class ::ExtACTree;
5375
7786
  friend class ::ExtACKeywords;
5376
 
  friend class ::WinAsm;
5377
 
  friend class ::WinDeclSpecs;
5378
 
  friend class ::WinMemberExplSpec;
5379
 
  friend class ::WinTypeKeywords;
 
7787
  friend class ::ExtGnu;
5380
7788
  friend class ::PragmaOnceUnitState;
5381
7789
  friend class ::PragmaOnce;
5382
 
  friend class ::CCExprResolve;
5383
 
  friend class ::CExprResolve;
 
7790
  friend class ::CMatchSyntax;
5384
7791
 
5385
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7792
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5386
7793
 
5387
7794
  CTree *sons[3]; // catch, exception_decl, stmt
5388
7795
 
5389
7796
public:
5390
7797
  CT_Handler (CTree *c, CTree *e, CTree *s) {
5391
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
7798
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
5392
7799
  }
 
7800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5393
7801
  static const char *NodeId ();
 
7802
  /** Get the name of the node. Can be compared with NodeId(). */
5394
7803
  const char *NodeName () const { return NodeId (); }
 
7804
  /** Get the number of sons. */
5395
7805
  int Sons () const { return 3; }
 
7806
  /** Get the n-th son.
 
7807
   *  \param n The index of the son.
 
7808
   *  \return The n-th son or NULL. */
5396
7809
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
5397
7810
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
5398
7811
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
7812
  /** Replace a son.
 
7813
   *  \param old_son The son to replace.
 
7814
   *  \param new_son The new son. */
5399
7815
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5400
7816
    CTree::ReplaceSon (sons, 3, old_son, new_son);
5401
7817
  }
 
7818
  CSemScope *SemScope () const { return (CSemScope*)this; }
5402
7819
};
5403
7820
 
5404
7821
 
5405
 
#line 5406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7822
#line 7823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5406
7823
} // closed Puma
 
7824
class CCExprResolve;
 
7825
class CExprResolve;
5407
7826
class WinIfExists;
5408
7827
class WinImportHandler;
5409
7828
class WinMacros;
5410
 
class CMatchSyntax;
5411
 
class ExtGnu;
 
7829
class WinAsm;
 
7830
class WinDeclSpecs;
 
7831
class WinMemberExplSpec;
 
7832
class WinTypeKeywords;
 
7833
class WinFriend;
5412
7834
class ExtAC;
5413
7835
class ExtACBuilderCoupling;
5414
7836
class ExtACSyntaxCoupling;
5415
7837
class ExtACTree;
5416
7838
class ExtACKeywords;
5417
 
class WinAsm;
5418
 
class WinDeclSpecs;
5419
 
class WinMemberExplSpec;
5420
 
class WinTypeKeywords;
 
7839
class ExtGnu;
5421
7840
class PragmaOnceUnitState;
5422
7841
class PragmaOnce;
5423
 
class CCExprResolve;
5424
 
class CExprResolve;
 
7842
class CMatchSyntax;
5425
7843
namespace Puma {
5426
7844
 
5427
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7845
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5428
7846
class CT_LinkageSpec : public CT_Decl {
5429
 
#line 5430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7847
#line 7848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7848
  friend class ::CCExprResolve;
 
7849
  friend class ::CExprResolve;
5430
7850
  friend class ::WinIfExists;
5431
7851
  friend class ::WinImportHandler;
5432
7852
  friend class ::WinMacros;
5433
 
  friend class ::CMatchSyntax;
5434
 
  friend class ::ExtGnu;
 
7853
  friend class ::WinAsm;
 
7854
  friend class ::WinDeclSpecs;
 
7855
  friend class ::WinMemberExplSpec;
 
7856
  friend class ::WinTypeKeywords;
 
7857
  friend class ::WinFriend;
5435
7858
  friend class ::ExtAC;
5436
7859
  friend class ::ExtACBuilderCoupling;
5437
7860
  friend class ::ExtACSyntaxCoupling;
5438
7861
  friend class ::ExtACTree;
5439
7862
  friend class ::ExtACKeywords;
5440
 
  friend class ::WinAsm;
5441
 
  friend class ::WinDeclSpecs;
5442
 
  friend class ::WinMemberExplSpec;
5443
 
  friend class ::WinTypeKeywords;
 
7863
  friend class ::ExtGnu;
5444
7864
  friend class ::PragmaOnceUnitState;
5445
7865
  friend class ::PragmaOnce;
5446
 
  friend class ::CCExprResolve;
5447
 
  friend class ::CExprResolve;
 
7866
  friend class ::CMatchSyntax;
5448
7867
 
5449
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7868
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5450
7869
 
5451
7870
  CTree *sons[5]; // extern, str, open, decls, close
5452
7871
 
5453
7872
public:
5454
7873
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
5455
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
7874
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
7875
    AddSon (sons[3], d); AddSon (sons[4], c);
5456
7876
    if (isList ())
5457
7877
      ((CT_DeclList*)Decls ())->Linkage (this);
5458
7878
    else
5459
7879
      ((CT_Decl*)Decls ())->Linkage (this);
5460
7880
  }
 
7881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5461
7882
  static const char *NodeId ();
 
7883
  /** Get the name of the node. Can be compared with NodeId(). */
5462
7884
  const char *NodeName () const { return NodeId (); }
 
7885
  /** Get the number of sons. */
5463
7886
  int Sons () const { return CTree::Sons (sons, 5); }
 
7887
  /** Get the n-th son.
 
7888
   *  \param n The index of the son.
 
7889
   *  \return The n-th son or NULL. */
5464
7890
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
5465
7891
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
5466
7892
  CTree *Decls () const { return sons[3]; }
5467
7893
  bool isList () const {
5468
7894
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
5469
7895
  }
 
7896
  /** Replace a son.
 
7897
   *  \param old_son The son to replace.
 
7898
   *  \param new_son The new son. */
5470
7899
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5471
7900
    CTree::ReplaceSon (sons, 5, old_son, new_son);
5472
7901
  }
5473
7902
};
5474
7903
 
5475
7904
 
5476
 
#line 5477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7905
#line 7906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5477
7906
} // closed Puma
 
7907
class CCExprResolve;
 
7908
class CExprResolve;
5478
7909
class WinIfExists;
5479
7910
class WinImportHandler;
5480
7911
class WinMacros;
5481
 
class CMatchSyntax;
5482
 
class ExtGnu;
 
7912
class WinAsm;
 
7913
class WinDeclSpecs;
 
7914
class WinMemberExplSpec;
 
7915
class WinTypeKeywords;
 
7916
class WinFriend;
5483
7917
class ExtAC;
5484
7918
class ExtACBuilderCoupling;
5485
7919
class ExtACSyntaxCoupling;
5486
7920
class ExtACTree;
5487
7921
class ExtACKeywords;
5488
 
class WinAsm;
5489
 
class WinDeclSpecs;
5490
 
class WinMemberExplSpec;
5491
 
class WinTypeKeywords;
 
7922
class ExtGnu;
5492
7923
class PragmaOnceUnitState;
5493
7924
class PragmaOnce;
5494
 
class CCExprResolve;
5495
 
class CExprResolve;
 
7925
class CMatchSyntax;
5496
7926
namespace Puma {
5497
7927
 
5498
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7928
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5499
7929
class CT_ArgDecl : public CT_Decl, public CSemObject {
5500
 
#line 5501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7930
#line 7931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7931
  friend class ::CCExprResolve;
 
7932
  friend class ::CExprResolve;
5501
7933
  friend class ::WinIfExists;
5502
7934
  friend class ::WinImportHandler;
5503
7935
  friend class ::WinMacros;
5504
 
  friend class ::CMatchSyntax;
5505
 
  friend class ::ExtGnu;
 
7936
  friend class ::WinAsm;
 
7937
  friend class ::WinDeclSpecs;
 
7938
  friend class ::WinMemberExplSpec;
 
7939
  friend class ::WinTypeKeywords;
 
7940
  friend class ::WinFriend;
5506
7941
  friend class ::ExtAC;
5507
7942
  friend class ::ExtACBuilderCoupling;
5508
7943
  friend class ::ExtACSyntaxCoupling;
5509
7944
  friend class ::ExtACTree;
5510
7945
  friend class ::ExtACKeywords;
5511
 
  friend class ::WinAsm;
5512
 
  friend class ::WinDeclSpecs;
5513
 
  friend class ::WinMemberExplSpec;
5514
 
  friend class ::WinTypeKeywords;
 
7946
  friend class ::ExtGnu;
5515
7947
  friend class ::PragmaOnceUnitState;
5516
7948
  friend class ::PragmaOnce;
5517
 
  friend class ::CCExprResolve;
5518
 
  friend class ::CExprResolve;
 
7949
  friend class ::CMatchSyntax;
5519
7950
 
5520
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7951
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5521
7952
 
5522
7953
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
5523
7954
 
5524
7955
public:
5525
7956
  CT_ArgDecl (CTree *dsl, CTree *d) {
5526
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
7957
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
7958
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
5527
7959
  }
5528
7960
  CT_ArgDecl (CTree *ellipsis) {
5529
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
7961
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
7962
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
5530
7963
  }
 
7964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5531
7965
  static const char *NodeId ();
 
7966
  /** Get the name of the node. Can be compared with NodeId(). */
5532
7967
  const char *NodeName () const { return NodeId (); }
 
7968
  /** Get the number of sons. */
5533
7969
  int Sons () const { return CTree::Sons (sons, 4); }
 
7970
  /** Get the n-th son.
 
7971
   *  \param n The index of the son.
 
7972
   *  \return The n-th son or NULL. */
5534
7973
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
5535
7974
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
5536
7975
  CTree *Declarator () const { return sons[1]; }
5537
7976
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
5538
7977
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
5539
7978
  CSemObject *SemObject () const { return (CSemObject*)this; }
5540
 
  void Initializer (CTree *i) { sons[2] = i; }
 
7979
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
7980
  /** Replace a son.
 
7981
   *  \param old_son The son to replace.
 
7982
   *  \param new_son The new son. */
5541
7983
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5542
7984
    CTree::ReplaceSon (sons, 4, old_son, new_son);
5543
7985
  }
5544
7986
};
5545
7987
 
5546
7988
 
5547
 
#line 5548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
7989
#line 7990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5548
7990
} // closed Puma
 
7991
class CCExprResolve;
 
7992
class CExprResolve;
5549
7993
class WinIfExists;
5550
7994
class WinImportHandler;
5551
7995
class WinMacros;
5552
 
class CMatchSyntax;
5553
 
class ExtGnu;
 
7996
class WinAsm;
 
7997
class WinDeclSpecs;
 
7998
class WinMemberExplSpec;
 
7999
class WinTypeKeywords;
 
8000
class WinFriend;
5554
8001
class ExtAC;
5555
8002
class ExtACBuilderCoupling;
5556
8003
class ExtACSyntaxCoupling;
5557
8004
class ExtACTree;
5558
8005
class ExtACKeywords;
5559
 
class WinAsm;
5560
 
class WinDeclSpecs;
5561
 
class WinMemberExplSpec;
5562
 
class WinTypeKeywords;
 
8006
class ExtGnu;
5563
8007
class PragmaOnceUnitState;
5564
8008
class PragmaOnce;
5565
 
class CCExprResolve;
5566
 
class CExprResolve;
 
8009
class CMatchSyntax;
5567
8010
namespace Puma {
5568
8011
 
5569
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8012
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5570
8013
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
5571
 
#line 5572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8014
#line 8015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8015
  friend class ::CCExprResolve;
 
8016
  friend class ::CExprResolve;
5572
8017
  friend class ::WinIfExists;
5573
8018
  friend class ::WinImportHandler;
5574
8019
  friend class ::WinMacros;
5575
 
  friend class ::CMatchSyntax;
5576
 
  friend class ::ExtGnu;
 
8020
  friend class ::WinAsm;
 
8021
  friend class ::WinDeclSpecs;
 
8022
  friend class ::WinMemberExplSpec;
 
8023
  friend class ::WinTypeKeywords;
 
8024
  friend class ::WinFriend;
5577
8025
  friend class ::ExtAC;
5578
8026
  friend class ::ExtACBuilderCoupling;
5579
8027
  friend class ::ExtACSyntaxCoupling;
5580
8028
  friend class ::ExtACTree;
5581
8029
  friend class ::ExtACKeywords;
5582
 
  friend class ::WinAsm;
5583
 
  friend class ::WinDeclSpecs;
5584
 
  friend class ::WinMemberExplSpec;
5585
 
  friend class ::WinTypeKeywords;
 
8030
  friend class ::ExtGnu;
5586
8031
  friend class ::PragmaOnceUnitState;
5587
8032
  friend class ::PragmaOnce;
5588
 
  friend class ::CCExprResolve;
5589
 
  friend class ::CExprResolve;
 
8033
  friend class ::CMatchSyntax;
5590
8034
 
5591
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8035
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5592
8036
 
5593
8037
public:
5594
8038
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
5595
8039
   CT_DeclList (size, 2) { AddProperties (props); }
 
8040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5596
8041
  static const char *NodeId ();
 
8042
  /** Get the name of the node. Can be compared with NodeId(). */
5597
8043
  const char *NodeName () const { return NodeId (); }
 
8044
  CSemScope *SemScope () const { return (CSemScope*)this; }
5598
8045
};
5599
8046
 
5600
8047
 
5601
 
#line 5602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8048
#line 8049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5602
8049
} // closed Puma
 
8050
class CCExprResolve;
 
8051
class CExprResolve;
5603
8052
class WinIfExists;
5604
8053
class WinImportHandler;
5605
8054
class WinMacros;
5606
 
class CMatchSyntax;
5607
 
class ExtGnu;
 
8055
class WinAsm;
 
8056
class WinDeclSpecs;
 
8057
class WinMemberExplSpec;
 
8058
class WinTypeKeywords;
 
8059
class WinFriend;
5608
8060
class ExtAC;
5609
8061
class ExtACBuilderCoupling;
5610
8062
class ExtACSyntaxCoupling;
5611
8063
class ExtACTree;
5612
8064
class ExtACKeywords;
5613
 
class WinAsm;
5614
 
class WinDeclSpecs;
5615
 
class WinMemberExplSpec;
5616
 
class WinTypeKeywords;
 
8065
class ExtGnu;
5617
8066
class PragmaOnceUnitState;
5618
8067
class PragmaOnce;
5619
 
class CCExprResolve;
5620
 
class CExprResolve;
 
8068
class CMatchSyntax;
5621
8069
namespace Puma {
5622
8070
 
5623
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8071
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5624
8072
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
5625
 
#line 5626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8073
#line 8074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8074
  friend class ::CCExprResolve;
 
8075
  friend class ::CExprResolve;
5626
8076
  friend class ::WinIfExists;
5627
8077
  friend class ::WinImportHandler;
5628
8078
  friend class ::WinMacros;
5629
 
  friend class ::CMatchSyntax;
5630
 
  friend class ::ExtGnu;
 
8079
  friend class ::WinAsm;
 
8080
  friend class ::WinDeclSpecs;
 
8081
  friend class ::WinMemberExplSpec;
 
8082
  friend class ::WinTypeKeywords;
 
8083
  friend class ::WinFriend;
5631
8084
  friend class ::ExtAC;
5632
8085
  friend class ::ExtACBuilderCoupling;
5633
8086
  friend class ::ExtACSyntaxCoupling;
5634
8087
  friend class ::ExtACTree;
5635
8088
  friend class ::ExtACKeywords;
5636
 
  friend class ::WinAsm;
5637
 
  friend class ::WinDeclSpecs;
5638
 
  friend class ::WinMemberExplSpec;
5639
 
  friend class ::WinTypeKeywords;
 
8089
  friend class ::ExtGnu;
5640
8090
  friend class ::PragmaOnceUnitState;
5641
8091
  friend class ::PragmaOnce;
5642
 
  friend class ::CCExprResolve;
5643
 
  friend class ::CExprResolve;
 
8092
  friend class ::CMatchSyntax;
5644
8093
 
5645
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8094
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5646
8095
 
5647
8096
public:
5648
8097
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
8098
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5649
8099
  static const char *NodeId ();
 
8100
  /** Get the name of the node. Can be compared with NodeId(). */
5650
8101
  const char *NodeName () const { return NodeId (); }
 
8102
  CSemScope *SemScope () const { return (CSemScope*)this; }
5651
8103
};
5652
8104
 
5653
8105
 
5654
 
#line 5655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8106
#line 8107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5655
8107
} // closed Puma
 
8108
class CCExprResolve;
 
8109
class CExprResolve;
5656
8110
class WinIfExists;
5657
8111
class WinImportHandler;
5658
8112
class WinMacros;
5659
 
class CMatchSyntax;
5660
 
class ExtGnu;
 
8113
class WinAsm;
 
8114
class WinDeclSpecs;
 
8115
class WinMemberExplSpec;
 
8116
class WinTypeKeywords;
 
8117
class WinFriend;
5661
8118
class ExtAC;
5662
8119
class ExtACBuilderCoupling;
5663
8120
class ExtACSyntaxCoupling;
5664
8121
class ExtACTree;
5665
8122
class ExtACKeywords;
5666
 
class WinAsm;
5667
 
class WinDeclSpecs;
5668
 
class WinMemberExplSpec;
5669
 
class WinTypeKeywords;
 
8123
class ExtGnu;
5670
8124
class PragmaOnceUnitState;
5671
8125
class PragmaOnce;
5672
 
class CCExprResolve;
5673
 
class CExprResolve;
 
8126
class CMatchSyntax;
5674
8127
namespace Puma {
5675
8128
 
5676
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8129
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5677
8130
class CT_ArgNameList : public CT_ArgDeclList {
5678
 
#line 5679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8131
#line 8132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8132
  friend class ::CCExprResolve;
 
8133
  friend class ::CExprResolve;
5679
8134
  friend class ::WinIfExists;
5680
8135
  friend class ::WinImportHandler;
5681
8136
  friend class ::WinMacros;
5682
 
  friend class ::CMatchSyntax;
5683
 
  friend class ::ExtGnu;
 
8137
  friend class ::WinAsm;
 
8138
  friend class ::WinDeclSpecs;
 
8139
  friend class ::WinMemberExplSpec;
 
8140
  friend class ::WinTypeKeywords;
 
8141
  friend class ::WinFriend;
5684
8142
  friend class ::ExtAC;
5685
8143
  friend class ::ExtACBuilderCoupling;
5686
8144
  friend class ::ExtACSyntaxCoupling;
5687
8145
  friend class ::ExtACTree;
5688
8146
  friend class ::ExtACKeywords;
5689
 
  friend class ::WinAsm;
5690
 
  friend class ::WinDeclSpecs;
5691
 
  friend class ::WinMemberExplSpec;
5692
 
  friend class ::WinTypeKeywords;
 
8147
  friend class ::ExtGnu;
5693
8148
  friend class ::PragmaOnceUnitState;
5694
8149
  friend class ::PragmaOnce;
5695
 
  friend class ::CCExprResolve;
5696
 
  friend class ::CExprResolve;
 
8150
  friend class ::CMatchSyntax;
5697
8151
 
5698
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8152
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5699
8153
 
5700
8154
public:
5701
8155
  CT_ArgNameList () : CT_ArgDeclList () {}
 
8156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5702
8157
  static const char *NodeId ();
 
8158
  /** Get the name of the node. Can be compared with NodeId(). */
5703
8159
  const char *NodeName () const { return NodeId (); }
5704
8160
};
5705
8161
 
5706
8162
 
5707
 
#line 5708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8163
#line 8164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5708
8164
} // closed Puma
 
8165
class CCExprResolve;
 
8166
class CExprResolve;
5709
8167
class WinIfExists;
5710
8168
class WinImportHandler;
5711
8169
class WinMacros;
5712
 
class CMatchSyntax;
5713
 
class ExtGnu;
 
8170
class WinAsm;
 
8171
class WinDeclSpecs;
 
8172
class WinMemberExplSpec;
 
8173
class WinTypeKeywords;
 
8174
class WinFriend;
5714
8175
class ExtAC;
5715
8176
class ExtACBuilderCoupling;
5716
8177
class ExtACSyntaxCoupling;
5717
8178
class ExtACTree;
5718
8179
class ExtACKeywords;
5719
 
class WinAsm;
5720
 
class WinDeclSpecs;
5721
 
class WinMemberExplSpec;
5722
 
class WinTypeKeywords;
 
8180
class ExtGnu;
5723
8181
class PragmaOnceUnitState;
5724
8182
class PragmaOnce;
5725
 
class CCExprResolve;
5726
 
class CExprResolve;
 
8183
class CMatchSyntax;
5727
8184
namespace Puma {
5728
8185
 
5729
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8186
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5730
8187
class CT_NamespaceDef : public CT_Decl, public CSemObject {
5731
 
#line 5732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8188
#line 8189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8189
  friend class ::CCExprResolve;
 
8190
  friend class ::CExprResolve;
5732
8191
  friend class ::WinIfExists;
5733
8192
  friend class ::WinImportHandler;
5734
8193
  friend class ::WinMacros;
5735
 
  friend class ::CMatchSyntax;
5736
 
  friend class ::ExtGnu;
 
8194
  friend class ::WinAsm;
 
8195
  friend class ::WinDeclSpecs;
 
8196
  friend class ::WinMemberExplSpec;
 
8197
  friend class ::WinTypeKeywords;
 
8198
  friend class ::WinFriend;
5737
8199
  friend class ::ExtAC;
5738
8200
  friend class ::ExtACBuilderCoupling;
5739
8201
  friend class ::ExtACSyntaxCoupling;
5740
8202
  friend class ::ExtACTree;
5741
8203
  friend class ::ExtACKeywords;
5742
 
  friend class ::WinAsm;
5743
 
  friend class ::WinDeclSpecs;
5744
 
  friend class ::WinMemberExplSpec;
5745
 
  friend class ::WinTypeKeywords;
 
8204
  friend class ::ExtGnu;
5746
8205
  friend class ::PragmaOnceUnitState;
5747
8206
  friend class ::PragmaOnce;
5748
 
  friend class ::CCExprResolve;
5749
 
  friend class ::CExprResolve;
 
8207
  friend class ::CMatchSyntax;
5750
8208
 
5751
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8209
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5752
8210
 
5753
8211
  CTree *sons[3]; // ns, name, members
5754
8212
 
5755
8213
public:
5756
8214
  CT_NamespaceDef (CTree *n, CTree *nm) {
5757
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
8215
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
5758
8216
  }
5759
8217
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
5760
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
8218
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
5761
8219
  }
 
8220
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5762
8221
  static const char *NodeId ();
 
8222
  /** Get the name of the node. Can be compared with NodeId(). */
5763
8223
  const char *NodeName () const { return NodeId (); }
 
8224
  /** Get the number of sons. */
5764
8225
  int Sons () const { return CTree::Sons (sons, 3); }
 
8226
  /** Get the n-th son.
 
8227
   *  \param n The index of the son.
 
8228
   *  \return The n-th son or NULL. */
5765
8229
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
5766
 
  void Members (CTree *m) { sons[2] = m; }
 
8230
  void Members (CTree *m) { AddSon (sons[2], m); }
5767
8231
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
5768
8232
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
5769
8233
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
8234
  /** Replace a son.
 
8235
   *  \param old_son The son to replace.
 
8236
   *  \param new_son The new son. */
5770
8237
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5771
8238
    CTree::ReplaceSon (sons, 3, old_son, new_son);
5772
8239
  }
5773
8240
};
5774
8241
 
5775
8242
 
5776
 
#line 5777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8243
#line 8244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5777
8244
} // closed Puma
 
8245
class CCExprResolve;
 
8246
class CExprResolve;
5778
8247
class WinIfExists;
5779
8248
class WinImportHandler;
5780
8249
class WinMacros;
5781
 
class CMatchSyntax;
5782
 
class ExtGnu;
 
8250
class WinAsm;
 
8251
class WinDeclSpecs;
 
8252
class WinMemberExplSpec;
 
8253
class WinTypeKeywords;
 
8254
class WinFriend;
5783
8255
class ExtAC;
5784
8256
class ExtACBuilderCoupling;
5785
8257
class ExtACSyntaxCoupling;
5786
8258
class ExtACTree;
5787
8259
class ExtACKeywords;
5788
 
class WinAsm;
5789
 
class WinDeclSpecs;
5790
 
class WinMemberExplSpec;
5791
 
class WinTypeKeywords;
 
8260
class ExtGnu;
5792
8261
class PragmaOnceUnitState;
5793
8262
class PragmaOnce;
5794
 
class CCExprResolve;
5795
 
class CExprResolve;
 
8263
class CMatchSyntax;
5796
8264
namespace Puma {
5797
8265
 
5798
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8266
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5799
8267
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
5800
 
#line 5801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8268
#line 8269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8269
  friend class ::CCExprResolve;
 
8270
  friend class ::CExprResolve;
5801
8271
  friend class ::WinIfExists;
5802
8272
  friend class ::WinImportHandler;
5803
8273
  friend class ::WinMacros;
5804
 
  friend class ::CMatchSyntax;
5805
 
  friend class ::ExtGnu;
 
8274
  friend class ::WinAsm;
 
8275
  friend class ::WinDeclSpecs;
 
8276
  friend class ::WinMemberExplSpec;
 
8277
  friend class ::WinTypeKeywords;
 
8278
  friend class ::WinFriend;
5806
8279
  friend class ::ExtAC;
5807
8280
  friend class ::ExtACBuilderCoupling;
5808
8281
  friend class ::ExtACSyntaxCoupling;
5809
8282
  friend class ::ExtACTree;
5810
8283
  friend class ::ExtACKeywords;
5811
 
  friend class ::WinAsm;
5812
 
  friend class ::WinDeclSpecs;
5813
 
  friend class ::WinMemberExplSpec;
5814
 
  friend class ::WinTypeKeywords;
 
8284
  friend class ::ExtGnu;
5815
8285
  friend class ::PragmaOnceUnitState;
5816
8286
  friend class ::PragmaOnce;
5817
 
  friend class ::CCExprResolve;
5818
 
  friend class ::CExprResolve;
 
8287
  friend class ::CMatchSyntax;
5819
8288
 
5820
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8289
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5821
8290
 
5822
8291
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
5823
8292
 
5824
8293
public:
5825
8294
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
5826
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
8295
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
8296
    AddSon (sons[3], nm); AddSon (sons[4], s); 
5827
8297
  }
 
8298
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5828
8299
  static const char *NodeId ();
 
8300
  /** Get the name of the node. Can be compared with NodeId(). */
5829
8301
  const char *NodeName () const { return NodeId (); }
 
8302
  /** Get the number of sons. */
5830
8303
  int Sons () const { return 5; }
 
8304
  /** Get the n-th son.
 
8305
   *  \param n The index of the son.
 
8306
   *  \return The n-th son or NULL. */
5831
8307
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
5832
8308
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
5833
8309
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
5834
8310
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
8311
  /** Replace a son.
 
8312
   *  \param old_son The son to replace.
 
8313
   *  \param new_son The new son. */
5835
8314
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5836
8315
    CTree::ReplaceSon (sons, 5, old_son, new_son);
5837
8316
  }
5838
8317
};
5839
8318
 
5840
8319
 
5841
 
#line 5842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8320
#line 8321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5842
8321
} // closed Puma
 
8322
class CCExprResolve;
 
8323
class CExprResolve;
5843
8324
class WinIfExists;
5844
8325
class WinImportHandler;
5845
8326
class WinMacros;
5846
 
class CMatchSyntax;
5847
 
class ExtGnu;
 
8327
class WinAsm;
 
8328
class WinDeclSpecs;
 
8329
class WinMemberExplSpec;
 
8330
class WinTypeKeywords;
 
8331
class WinFriend;
5848
8332
class ExtAC;
5849
8333
class ExtACBuilderCoupling;
5850
8334
class ExtACSyntaxCoupling;
5851
8335
class ExtACTree;
5852
8336
class ExtACKeywords;
5853
 
class WinAsm;
5854
 
class WinDeclSpecs;
5855
 
class WinMemberExplSpec;
5856
 
class WinTypeKeywords;
 
8337
class ExtGnu;
5857
8338
class PragmaOnceUnitState;
5858
8339
class PragmaOnce;
5859
 
class CCExprResolve;
5860
 
class CExprResolve;
 
8340
class CMatchSyntax;
5861
8341
namespace Puma {
5862
8342
 
5863
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8343
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5864
8344
class CT_UsingDirective : public CT_Decl {
5865
 
#line 5866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8345
#line 8346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8346
  friend class ::CCExprResolve;
 
8347
  friend class ::CExprResolve;
5866
8348
  friend class ::WinIfExists;
5867
8349
  friend class ::WinImportHandler;
5868
8350
  friend class ::WinMacros;
5869
 
  friend class ::CMatchSyntax;
5870
 
  friend class ::ExtGnu;
 
8351
  friend class ::WinAsm;
 
8352
  friend class ::WinDeclSpecs;
 
8353
  friend class ::WinMemberExplSpec;
 
8354
  friend class ::WinTypeKeywords;
 
8355
  friend class ::WinFriend;
5871
8356
  friend class ::ExtAC;
5872
8357
  friend class ::ExtACBuilderCoupling;
5873
8358
  friend class ::ExtACSyntaxCoupling;
5874
8359
  friend class ::ExtACTree;
5875
8360
  friend class ::ExtACKeywords;
5876
 
  friend class ::WinAsm;
5877
 
  friend class ::WinDeclSpecs;
5878
 
  friend class ::WinMemberExplSpec;
5879
 
  friend class ::WinTypeKeywords;
 
8361
  friend class ::ExtGnu;
5880
8362
  friend class ::PragmaOnceUnitState;
5881
8363
  friend class ::PragmaOnce;
5882
 
  friend class ::CCExprResolve;
5883
 
  friend class ::CExprResolve;
 
8364
  friend class ::CMatchSyntax;
5884
8365
 
5885
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8366
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5886
8367
 
5887
8368
  CTree *sons[4]; // using, ns, name, semi_colon
5888
8369
 
5889
8370
public:
5890
8371
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
5891
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
8372
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
8373
    AddSon (sons[3], s); 
5892
8374
  }
 
8375
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5893
8376
  static const char *NodeId ();
 
8377
  /** Get the name of the node. Can be compared with NodeId(). */
5894
8378
  const char *NodeName () const { return NodeId (); }
 
8379
  /** Get the number of sons. */
5895
8380
  int Sons () const { return 4; }
 
8381
  /** Get the n-th son.
 
8382
   *  \param n The index of the son.
 
8383
   *  \return The n-th son or NULL. */
5896
8384
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
5897
8385
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
8386
  /** Replace a son.
 
8387
   *  \param old_son The son to replace.
 
8388
   *  \param new_son The new son. */
5898
8389
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
5899
8390
    CTree::ReplaceSon (sons, 4, old_son, new_son);
5900
8391
  }
5907
8398
/*****************************************************************************/
5908
8399
 
5909
8400
 
5910
 
#line 5911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8401
#line 8402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5911
8402
} // closed Puma
 
8403
class CCExprResolve;
 
8404
class CExprResolve;
5912
8405
class WinIfExists;
5913
8406
class WinImportHandler;
5914
8407
class WinMacros;
5915
 
class CMatchSyntax;
5916
 
class ExtGnu;
 
8408
class WinAsm;
 
8409
class WinDeclSpecs;
 
8410
class WinMemberExplSpec;
 
8411
class WinTypeKeywords;
 
8412
class WinFriend;
5917
8413
class ExtAC;
5918
8414
class ExtACBuilderCoupling;
5919
8415
class ExtACSyntaxCoupling;
5920
8416
class ExtACTree;
5921
8417
class ExtACKeywords;
5922
 
class WinAsm;
5923
 
class WinDeclSpecs;
5924
 
class WinMemberExplSpec;
5925
 
class WinTypeKeywords;
 
8418
class ExtGnu;
5926
8419
class PragmaOnceUnitState;
5927
8420
class PragmaOnce;
5928
 
class CCExprResolve;
5929
 
class CExprResolve;
 
8421
class CMatchSyntax;
5930
8422
namespace Puma {
5931
8423
 
5932
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8424
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5933
8425
class CT_Declarator : public CTree {
5934
 
#line 5935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8426
#line 8427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8427
  friend class ::CCExprResolve;
 
8428
  friend class ::CExprResolve;
5935
8429
  friend class ::WinIfExists;
5936
8430
  friend class ::WinImportHandler;
5937
8431
  friend class ::WinMacros;
5938
 
  friend class ::CMatchSyntax;
5939
 
  friend class ::ExtGnu;
 
8432
  friend class ::WinAsm;
 
8433
  friend class ::WinDeclSpecs;
 
8434
  friend class ::WinMemberExplSpec;
 
8435
  friend class ::WinTypeKeywords;
 
8436
  friend class ::WinFriend;
5940
8437
  friend class ::ExtAC;
5941
8438
  friend class ::ExtACBuilderCoupling;
5942
8439
  friend class ::ExtACSyntaxCoupling;
5943
8440
  friend class ::ExtACTree;
5944
8441
  friend class ::ExtACKeywords;
5945
 
  friend class ::WinAsm;
5946
 
  friend class ::WinDeclSpecs;
5947
 
  friend class ::WinMemberExplSpec;
5948
 
  friend class ::WinTypeKeywords;
 
8442
  friend class ::ExtGnu;
5949
8443
  friend class ::PragmaOnceUnitState;
5950
8444
  friend class ::PragmaOnce;
5951
 
  friend class ::CCExprResolve;
5952
 
  friend class ::CExprResolve;
 
8445
  friend class ::CMatchSyntax;
5953
8446
 
5954
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8447
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5955
8448
 
5956
8449
protected:
5957
8450
  CT_Declarator () {}
5966
8459
};
5967
8460
 
5968
8461
 
5969
 
#line 5970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8462
#line 8463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5970
8463
} // closed Puma
 
8464
class CCExprResolve;
 
8465
class CExprResolve;
5971
8466
class WinIfExists;
5972
8467
class WinImportHandler;
5973
8468
class WinMacros;
5974
 
class CMatchSyntax;
5975
 
class ExtGnu;
 
8469
class WinAsm;
 
8470
class WinDeclSpecs;
 
8471
class WinMemberExplSpec;
 
8472
class WinTypeKeywords;
 
8473
class WinFriend;
5976
8474
class ExtAC;
5977
8475
class ExtACBuilderCoupling;
5978
8476
class ExtACSyntaxCoupling;
5979
8477
class ExtACTree;
5980
8478
class ExtACKeywords;
5981
 
class WinAsm;
5982
 
class WinDeclSpecs;
5983
 
class WinMemberExplSpec;
5984
 
class WinTypeKeywords;
 
8479
class ExtGnu;
5985
8480
class PragmaOnceUnitState;
5986
8481
class PragmaOnce;
5987
 
class CCExprResolve;
5988
 
class CExprResolve;
 
8482
class CMatchSyntax;
5989
8483
namespace Puma {
5990
8484
 
5991
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8485
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5992
8486
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
5993
 
#line 5994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8487
#line 8488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8488
  friend class ::CCExprResolve;
 
8489
  friend class ::CExprResolve;
5994
8490
  friend class ::WinIfExists;
5995
8491
  friend class ::WinImportHandler;
5996
8492
  friend class ::WinMacros;
5997
 
  friend class ::CMatchSyntax;
5998
 
  friend class ::ExtGnu;
 
8493
  friend class ::WinAsm;
 
8494
  friend class ::WinDeclSpecs;
 
8495
  friend class ::WinMemberExplSpec;
 
8496
  friend class ::WinTypeKeywords;
 
8497
  friend class ::WinFriend;
5999
8498
  friend class ::ExtAC;
6000
8499
  friend class ::ExtACBuilderCoupling;
6001
8500
  friend class ::ExtACSyntaxCoupling;
6002
8501
  friend class ::ExtACTree;
6003
8502
  friend class ::ExtACKeywords;
6004
 
  friend class ::WinAsm;
6005
 
  friend class ::WinDeclSpecs;
6006
 
  friend class ::WinMemberExplSpec;
6007
 
  friend class ::WinTypeKeywords;
 
8503
  friend class ::ExtGnu;
6008
8504
  friend class ::PragmaOnceUnitState;
6009
8505
  friend class ::PragmaOnce;
6010
 
  friend class ::CCExprResolve;
6011
 
  friend class ::CExprResolve;
6012
 
 
6013
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6014
 
 
6015
 
  CTree *sons[2]; // declarator, init
 
8506
  friend class ::CMatchSyntax;
 
8507
 
 
8508
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8509
 
 
8510
  CTree *sons[3]; // declarator, ext, init
6016
8511
  CTree *obj_decl;
6017
8512
 
6018
8513
public:
6019
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
6020
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
8514
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
8515
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
8516
    AddSon (obj_decl, 0); 
6021
8517
  }
 
8518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6022
8519
  static const char *NodeId ();
 
8520
  /** Get the name of the node. Can be compared with NodeId(). */
6023
8521
  const char *NodeName () const { return NodeId (); }
6024
 
  int Sons () const { return CTree::Sons (sons, 2); }
6025
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
8522
  /** Get the number of sons. */
 
8523
  int Sons () const { return CTree::Sons (sons, 3); }
 
8524
  /** Get the n-th son.
 
8525
   *  \param n The index of the son.
 
8526
   *  \return The n-th son or NULL. */
 
8527
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6026
8528
  CTree *Declarator () const { return sons[0]; }
6027
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
8529
  CTree *Extension () const { return sons[1]; }
 
8530
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
6028
8531
  CSemObject *SemObject () const { return (CSemObject*)this; }
6029
8532
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
6030
 
  void Initializer (CTree* i) { sons[1] = i; }
6031
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
8533
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
8534
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
8535
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
8536
  /** Replace a son.
 
8537
   *  \param old_son The son to replace.
 
8538
   *  \param new_son The new son. */
6032
8539
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6033
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
8540
    CTree::ReplaceSon (sons, 3, old_son, new_son);
6034
8541
  }
6035
8542
};
6036
8543
 
6037
8544
 
6038
 
#line 6039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8545
#line 8546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6039
8546
} // closed Puma
 
8547
class CCExprResolve;
 
8548
class CExprResolve;
6040
8549
class WinIfExists;
6041
8550
class WinImportHandler;
6042
8551
class WinMacros;
6043
 
class CMatchSyntax;
6044
 
class ExtGnu;
 
8552
class WinAsm;
 
8553
class WinDeclSpecs;
 
8554
class WinMemberExplSpec;
 
8555
class WinTypeKeywords;
 
8556
class WinFriend;
6045
8557
class ExtAC;
6046
8558
class ExtACBuilderCoupling;
6047
8559
class ExtACSyntaxCoupling;
6048
8560
class ExtACTree;
6049
8561
class ExtACKeywords;
6050
 
class WinAsm;
6051
 
class WinDeclSpecs;
6052
 
class WinMemberExplSpec;
6053
 
class WinTypeKeywords;
 
8562
class ExtGnu;
6054
8563
class PragmaOnceUnitState;
6055
8564
class PragmaOnce;
6056
 
class CCExprResolve;
6057
 
class CExprResolve;
 
8565
class CMatchSyntax;
6058
8566
namespace Puma {
6059
8567
 
6060
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8568
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6061
8569
class CT_BracedDeclarator : public CT_Declarator {
6062
 
#line 6063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8570
#line 8571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8571
  friend class ::CCExprResolve;
 
8572
  friend class ::CExprResolve;
6063
8573
  friend class ::WinIfExists;
6064
8574
  friend class ::WinImportHandler;
6065
8575
  friend class ::WinMacros;
6066
 
  friend class ::CMatchSyntax;
6067
 
  friend class ::ExtGnu;
 
8576
  friend class ::WinAsm;
 
8577
  friend class ::WinDeclSpecs;
 
8578
  friend class ::WinMemberExplSpec;
 
8579
  friend class ::WinTypeKeywords;
 
8580
  friend class ::WinFriend;
6068
8581
  friend class ::ExtAC;
6069
8582
  friend class ::ExtACBuilderCoupling;
6070
8583
  friend class ::ExtACSyntaxCoupling;
6071
8584
  friend class ::ExtACTree;
6072
8585
  friend class ::ExtACKeywords;
6073
 
  friend class ::WinAsm;
6074
 
  friend class ::WinDeclSpecs;
6075
 
  friend class ::WinMemberExplSpec;
6076
 
  friend class ::WinTypeKeywords;
 
8586
  friend class ::ExtGnu;
6077
8587
  friend class ::PragmaOnceUnitState;
6078
8588
  friend class ::PragmaOnce;
6079
 
  friend class ::CCExprResolve;
6080
 
  friend class ::CExprResolve;
 
8589
  friend class ::CMatchSyntax;
6081
8590
 
6082
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8591
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6083
8592
 
6084
8593
  CTree *sons[4]; // open, win_specs, declarator, close
6085
8594
 
6086
8595
public:
6087
8596
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
6088
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
8597
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
8598
    AddSon (sons[2], d); AddSon (sons[3], c); 
6089
8599
  }
6090
8600
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
6091
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
8601
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
8602
    AddSon (sons[2], d); AddSon (sons[3], c); 
6092
8603
  }
 
8604
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6093
8605
  static const char *NodeId ();
 
8606
  /** Get the name of the node. Can be compared with NodeId(). */
6094
8607
  const char *NodeName () const { return NodeId (); }
 
8608
  /** Get the number of sons. */
6095
8609
  int Sons () const { return CTree::Sons (sons, 4); }
 
8610
  /** Get the n-th son.
 
8611
   *  \param n The index of the son.
 
8612
   *  \return The n-th son or NULL. */
6096
8613
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
6097
8614
  CTree *Declarator () const { return sons[2]; }
 
8615
  /** Replace a son.
 
8616
   *  \param old_son The son to replace.
 
8617
   *  \param new_son The new son. */
6098
8618
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6099
8619
    CTree::ReplaceSon (sons, 4, old_son, new_son);
6100
8620
  }
6101
8621
};
6102
8622
 
6103
8623
 
6104
 
#line 6105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8624
#line 8625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6105
8625
} // closed Puma
 
8626
class CCExprResolve;
 
8627
class CExprResolve;
6106
8628
class WinIfExists;
6107
8629
class WinImportHandler;
6108
8630
class WinMacros;
6109
 
class CMatchSyntax;
6110
 
class ExtGnu;
 
8631
class WinAsm;
 
8632
class WinDeclSpecs;
 
8633
class WinMemberExplSpec;
 
8634
class WinTypeKeywords;
 
8635
class WinFriend;
6111
8636
class ExtAC;
6112
8637
class ExtACBuilderCoupling;
6113
8638
class ExtACSyntaxCoupling;
6114
8639
class ExtACTree;
6115
8640
class ExtACKeywords;
6116
 
class WinAsm;
6117
 
class WinDeclSpecs;
6118
 
class WinMemberExplSpec;
6119
 
class WinTypeKeywords;
 
8641
class ExtGnu;
6120
8642
class PragmaOnceUnitState;
6121
8643
class PragmaOnce;
6122
 
class CCExprResolve;
6123
 
class CExprResolve;
 
8644
class CMatchSyntax;
6124
8645
namespace Puma {
6125
8646
 
6126
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8647
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6127
8648
class CT_ArrayDelimiter : public CTree {
6128
 
#line 6129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8649
#line 8650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8650
  friend class ::CCExprResolve;
 
8651
  friend class ::CExprResolve;
6129
8652
  friend class ::WinIfExists;
6130
8653
  friend class ::WinImportHandler;
6131
8654
  friend class ::WinMacros;
6132
 
  friend class ::CMatchSyntax;
6133
 
  friend class ::ExtGnu;
 
8655
  friend class ::WinAsm;
 
8656
  friend class ::WinDeclSpecs;
 
8657
  friend class ::WinMemberExplSpec;
 
8658
  friend class ::WinTypeKeywords;
 
8659
  friend class ::WinFriend;
6134
8660
  friend class ::ExtAC;
6135
8661
  friend class ::ExtACBuilderCoupling;
6136
8662
  friend class ::ExtACSyntaxCoupling;
6137
8663
  friend class ::ExtACTree;
6138
8664
  friend class ::ExtACKeywords;
6139
 
  friend class ::WinAsm;
6140
 
  friend class ::WinDeclSpecs;
6141
 
  friend class ::WinMemberExplSpec;
6142
 
  friend class ::WinTypeKeywords;
 
8665
  friend class ::ExtGnu;
6143
8666
  friend class ::PragmaOnceUnitState;
6144
8667
  friend class ::PragmaOnce;
6145
 
  friend class ::CCExprResolve;
6146
 
  friend class ::CExprResolve;
 
8668
  friend class ::CMatchSyntax;
6147
8669
 
6148
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8670
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6149
8671
 
6150
8672
  CTree *sons[4]; // star, static, quals, expr
6151
8673
  bool pos0;
6152
8674
 
6153
8675
public:
6154
8676
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
6155
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
8677
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
8678
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
6156
8679
  }
 
8680
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6157
8681
  static const char *NodeId ();
 
8682
  /** Get the name of the node. Can be compared with NodeId(). */
6158
8683
  const char *NodeName () const { return NodeId (); }
 
8684
  /** Get the number of sons. */
6159
8685
  int Sons () const { return CTree::Sons (sons, 4); }
 
8686
  /** Get the n-th son.
 
8687
   *  \param n The index of the son.
 
8688
   *  \return The n-th son or NULL. */
6160
8689
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
6161
8690
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
6162
8691
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
6163
8692
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
6164
8693
  CTree *Expr () const { return sons[3]; }
 
8694
  /** Replace a son.
 
8695
   *  \param old_son The son to replace.
 
8696
   *  \param new_son The new son. */
6165
8697
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6166
8698
    CTree::ReplaceSon (sons, 4, old_son, new_son);
6167
8699
  }
6168
8700
};
6169
8701
 
6170
8702
 
6171
 
#line 6172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8703
#line 8704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6172
8704
} // closed Puma
 
8705
class CCExprResolve;
 
8706
class CExprResolve;
6173
8707
class WinIfExists;
6174
8708
class WinImportHandler;
6175
8709
class WinMacros;
6176
 
class CMatchSyntax;
6177
 
class ExtGnu;
 
8710
class WinAsm;
 
8711
class WinDeclSpecs;
 
8712
class WinMemberExplSpec;
 
8713
class WinTypeKeywords;
 
8714
class WinFriend;
6178
8715
class ExtAC;
6179
8716
class ExtACBuilderCoupling;
6180
8717
class ExtACSyntaxCoupling;
6181
8718
class ExtACTree;
6182
8719
class ExtACKeywords;
6183
 
class WinAsm;
6184
 
class WinDeclSpecs;
6185
 
class WinMemberExplSpec;
6186
 
class WinTypeKeywords;
 
8720
class ExtGnu;
6187
8721
class PragmaOnceUnitState;
6188
8722
class PragmaOnce;
6189
 
class CCExprResolve;
6190
 
class CExprResolve;
 
8723
class CMatchSyntax;
6191
8724
namespace Puma {
6192
8725
 
6193
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8726
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6194
8727
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
6195
 
#line 6196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8728
#line 8729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8729
  friend class ::CCExprResolve;
 
8730
  friend class ::CExprResolve;
6196
8731
  friend class ::WinIfExists;
6197
8732
  friend class ::WinImportHandler;
6198
8733
  friend class ::WinMacros;
6199
 
  friend class ::CMatchSyntax;
6200
 
  friend class ::ExtGnu;
 
8734
  friend class ::WinAsm;
 
8735
  friend class ::WinDeclSpecs;
 
8736
  friend class ::WinMemberExplSpec;
 
8737
  friend class ::WinTypeKeywords;
 
8738
  friend class ::WinFriend;
6201
8739
  friend class ::ExtAC;
6202
8740
  friend class ::ExtACBuilderCoupling;
6203
8741
  friend class ::ExtACSyntaxCoupling;
6204
8742
  friend class ::ExtACTree;
6205
8743
  friend class ::ExtACKeywords;
6206
 
  friend class ::WinAsm;
6207
 
  friend class ::WinDeclSpecs;
6208
 
  friend class ::WinMemberExplSpec;
6209
 
  friend class ::WinTypeKeywords;
 
8744
  friend class ::ExtGnu;
6210
8745
  friend class ::PragmaOnceUnitState;
6211
8746
  friend class ::PragmaOnce;
6212
 
  friend class ::CCExprResolve;
6213
 
  friend class ::CExprResolve;
 
8747
  friend class ::CMatchSyntax;
6214
8748
 
6215
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8749
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6216
8750
 
6217
8751
  CTree *sons[4]; // declarator, open, delim, close
6218
8752
 
6219
8753
public:
6220
8754
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
6221
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
8755
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
8756
    AddSon (sons[2], ad); AddSon (sons[3], c); 
6222
8757
  }
 
8758
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6223
8759
  static const char *NodeId ();
 
8760
  /** Get the name of the node. Can be compared with NodeId(). */
6224
8761
  const char *NodeName () const { return NodeId (); }
 
8762
  /** Get the number of sons. */
6225
8763
  int Sons () const { return 4; }
 
8764
  /** Get the n-th son.
 
8765
   *  \param n The index of the son.
 
8766
   *  \return The n-th son or NULL. */
6226
8767
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
6227
8768
  CTree *Declarator () const { return sons[0]; }
6228
8769
  CT_ArrayDelimiter *Delimiter () const 
6229
8770
   { return (CT_ArrayDelimiter*)sons[2]; }
 
8771
  /** Replace a son.
 
8772
   *  \param old_son The son to replace.
 
8773
   *  \param new_son The new son. */
6230
8774
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6231
8775
    CTree::ReplaceSon (sons, 4, old_son, new_son);
6232
8776
  }
6236
8780
};
6237
8781
 
6238
8782
 
6239
 
#line 6240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8783
#line 8784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6240
8784
} // closed Puma
 
8785
class CCExprResolve;
 
8786
class CExprResolve;
6241
8787
class WinIfExists;
6242
8788
class WinImportHandler;
6243
8789
class WinMacros;
6244
 
class CMatchSyntax;
6245
 
class ExtGnu;
 
8790
class WinAsm;
 
8791
class WinDeclSpecs;
 
8792
class WinMemberExplSpec;
 
8793
class WinTypeKeywords;
 
8794
class WinFriend;
6246
8795
class ExtAC;
6247
8796
class ExtACBuilderCoupling;
6248
8797
class ExtACSyntaxCoupling;
6249
8798
class ExtACTree;
6250
8799
class ExtACKeywords;
6251
 
class WinAsm;
6252
 
class WinDeclSpecs;
6253
 
class WinMemberExplSpec;
6254
 
class WinTypeKeywords;
 
8800
class ExtGnu;
6255
8801
class PragmaOnceUnitState;
6256
8802
class PragmaOnce;
6257
 
class CCExprResolve;
6258
 
class CExprResolve;
 
8803
class CMatchSyntax;
6259
8804
namespace Puma {
6260
8805
 
6261
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8806
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6262
8807
class CT_FctDeclarator : public CT_Declarator {
6263
 
#line 6264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8808
#line 8809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8809
  friend class ::CCExprResolve;
 
8810
  friend class ::CExprResolve;
6264
8811
  friend class ::WinIfExists;
6265
8812
  friend class ::WinImportHandler;
6266
8813
  friend class ::WinMacros;
6267
 
  friend class ::CMatchSyntax;
6268
 
  friend class ::ExtGnu;
 
8814
  friend class ::WinAsm;
 
8815
  friend class ::WinDeclSpecs;
 
8816
  friend class ::WinMemberExplSpec;
 
8817
  friend class ::WinTypeKeywords;
 
8818
  friend class ::WinFriend;
6269
8819
  friend class ::ExtAC;
6270
8820
  friend class ::ExtACBuilderCoupling;
6271
8821
  friend class ::ExtACSyntaxCoupling;
6272
8822
  friend class ::ExtACTree;
6273
8823
  friend class ::ExtACKeywords;
6274
 
  friend class ::WinAsm;
6275
 
  friend class ::WinDeclSpecs;
6276
 
  friend class ::WinMemberExplSpec;
6277
 
  friend class ::WinTypeKeywords;
 
8824
  friend class ::ExtGnu;
6278
8825
  friend class ::PragmaOnceUnitState;
6279
8826
  friend class ::PragmaOnce;
6280
 
  friend class ::CCExprResolve;
6281
 
  friend class ::CExprResolve;
 
8827
  friend class ::CMatchSyntax;
6282
8828
 
6283
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8829
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6284
8830
 
6285
8831
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
6286
8832
 
6287
8833
public:
6288
8834
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
6289
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
8835
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
8836
    AddSon (sons[2], cv); AddSon (sons[3], es); 
6290
8837
  }
 
8838
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6291
8839
  static const char *NodeId ();
 
8840
  /** Get the name of the node. Can be compared with NodeId(). */
6292
8841
  const char *NodeName () const { return NodeId (); }
 
8842
  /** Get the number of sons. */
6293
8843
  int Sons () const { return CTree::Sons (sons, 4); }
 
8844
  /** Get the n-th son.
 
8845
   *  \param n The index of the son.
 
8846
   *  \return The n-th son or NULL. */
6294
8847
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
6295
8848
  CTree *Declarator () const { return sons[0]; }
6296
8849
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
6297
8850
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
6298
8851
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
8852
  /** Replace a son.
 
8853
   *  \param old_son The son to replace.
 
8854
   *  \param new_son The new son. */
6299
8855
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6300
8856
    CTree::ReplaceSon (sons, 4, old_son, new_son);
6301
8857
  }
6302
8858
};
6303
8859
 
6304
8860
 
6305
 
#line 6306 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8861
#line 8862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6306
8862
} // closed Puma
 
8863
class CCExprResolve;
 
8864
class CExprResolve;
6307
8865
class WinIfExists;
6308
8866
class WinImportHandler;
6309
8867
class WinMacros;
6310
 
class CMatchSyntax;
6311
 
class ExtGnu;
 
8868
class WinAsm;
 
8869
class WinDeclSpecs;
 
8870
class WinMemberExplSpec;
 
8871
class WinTypeKeywords;
 
8872
class WinFriend;
6312
8873
class ExtAC;
6313
8874
class ExtACBuilderCoupling;
6314
8875
class ExtACSyntaxCoupling;
6315
8876
class ExtACTree;
6316
8877
class ExtACKeywords;
6317
 
class WinAsm;
6318
 
class WinDeclSpecs;
6319
 
class WinMemberExplSpec;
6320
 
class WinTypeKeywords;
 
8878
class ExtGnu;
6321
8879
class PragmaOnceUnitState;
6322
8880
class PragmaOnce;
6323
 
class CCExprResolve;
6324
 
class CExprResolve;
 
8881
class CMatchSyntax;
6325
8882
namespace Puma {
6326
8883
 
6327
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8884
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6328
8885
class CT_RefDeclarator : public CT_Declarator {
6329
 
#line 6330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8886
#line 8887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8887
  friend class ::CCExprResolve;
 
8888
  friend class ::CExprResolve;
6330
8889
  friend class ::WinIfExists;
6331
8890
  friend class ::WinImportHandler;
6332
8891
  friend class ::WinMacros;
6333
 
  friend class ::CMatchSyntax;
6334
 
  friend class ::ExtGnu;
 
8892
  friend class ::WinAsm;
 
8893
  friend class ::WinDeclSpecs;
 
8894
  friend class ::WinMemberExplSpec;
 
8895
  friend class ::WinTypeKeywords;
 
8896
  friend class ::WinFriend;
6335
8897
  friend class ::ExtAC;
6336
8898
  friend class ::ExtACBuilderCoupling;
6337
8899
  friend class ::ExtACSyntaxCoupling;
6338
8900
  friend class ::ExtACTree;
6339
8901
  friend class ::ExtACKeywords;
6340
 
  friend class ::WinAsm;
6341
 
  friend class ::WinDeclSpecs;
6342
 
  friend class ::WinMemberExplSpec;
6343
 
  friend class ::WinTypeKeywords;
 
8902
  friend class ::ExtGnu;
6344
8903
  friend class ::PragmaOnceUnitState;
6345
8904
  friend class ::PragmaOnce;
6346
 
  friend class ::CCExprResolve;
6347
 
  friend class ::CExprResolve;
 
8905
  friend class ::CMatchSyntax;
6348
8906
 
6349
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8907
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6350
8908
 
6351
8909
  CTree *sons[2]; // ref, declarator
6352
8910
 
6353
8911
public:
6354
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
8912
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
8913
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6355
8914
  static const char *NodeId ();
 
8915
  /** Get the name of the node. Can be compared with NodeId(). */
6356
8916
  const char *NodeName () const { return NodeId (); }
 
8917
  /** Get the number of sons. */
6357
8918
  int Sons () const { return 2; }
 
8919
  /** Get the n-th son.
 
8920
   *  \param n The index of the son.
 
8921
   *  \return The n-th son or NULL. */
6358
8922
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
6359
8923
  CTree *Declarator () const { return sons[1]; }
 
8924
  /** Replace a son.
 
8925
   *  \param old_son The son to replace.
 
8926
   *  \param new_son The new son. */
6360
8927
  void ReplaceSon (CTree *old_son, CTree *new_son) {
6361
8928
    CTree::ReplaceSon (sons, 2, old_son, new_son);
6362
8929
  }
6363
8930
};
6364
8931
 
6365
8932
 
6366
 
#line 6367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8933
#line 8934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6367
8934
} // closed Puma
 
8935
class CCExprResolve;
 
8936
class CExprResolve;
6368
8937
class WinIfExists;
6369
8938
class WinImportHandler;
6370
8939
class WinMacros;
6371
 
class CMatchSyntax;
6372
 
class ExtGnu;
 
8940
class WinAsm;
 
8941
class WinDeclSpecs;
 
8942
class WinMemberExplSpec;
 
8943
class WinTypeKeywords;
 
8944
class WinFriend;
6373
8945
class ExtAC;
6374
8946
class ExtACBuilderCoupling;
6375
8947
class ExtACSyntaxCoupling;
6376
8948
class ExtACTree;
6377
8949
class ExtACKeywords;
6378
 
class WinAsm;
6379
 
class WinDeclSpecs;
6380
 
class WinMemberExplSpec;
6381
 
class WinTypeKeywords;
 
8950
class ExtGnu;
6382
8951
class PragmaOnceUnitState;
6383
8952
class PragmaOnce;
6384
 
class CCExprResolve;
6385
 
class CExprResolve;
 
8953
class CMatchSyntax;
6386
8954
namespace Puma {
6387
8955
 
6388
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8956
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6389
8957
class CT_PtrDeclarator : public CT_Declarator {
6390
 
#line 6391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8958
#line 8959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
8959
  friend class ::CCExprResolve;
 
8960
  friend class ::CExprResolve;
6391
8961
  friend class ::WinIfExists;
6392
8962
  friend class ::WinImportHandler;
6393
8963
  friend class ::WinMacros;
6394
 
  friend class ::CMatchSyntax;
6395
 
  friend class ::ExtGnu;
 
8964
  friend class ::WinAsm;
 
8965
  friend class ::WinDeclSpecs;
 
8966
  friend class ::WinMemberExplSpec;
 
8967
  friend class ::WinTypeKeywords;
 
8968
  friend class ::WinFriend;
6396
8969
  friend class ::ExtAC;
6397
8970
  friend class ::ExtACBuilderCoupling;
6398
8971
  friend class ::ExtACSyntaxCoupling;
6399
8972
  friend class ::ExtACTree;
6400
8973
  friend class ::ExtACKeywords;
6401
 
  friend class ::WinAsm;
6402
 
  friend class ::WinDeclSpecs;
6403
 
  friend class ::WinMemberExplSpec;
6404
 
  friend class ::WinTypeKeywords;
 
8974
  friend class ::ExtGnu;
6405
8975
  friend class ::PragmaOnceUnitState;
6406
8976
  friend class ::PragmaOnce;
6407
 
  friend class ::CCExprResolve;
6408
 
  friend class ::CExprResolve;
 
8977
  friend class ::CMatchSyntax;
6409
8978
 
6410
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8979
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6411
8980
 
6412
8981
  CTree *sons[3]; // ptr, cv_quals, declarator
6413
8982
 
6414
8983
public:
6415
8984
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
6416
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
8985
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
6417
8986
  }
 
8987
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6418
8988
  static const char *NodeId ();
 
8989
  /** Get the name of the node. Can be compared with NodeId(). */
6419
8990
  const char *NodeName () const { return NodeId (); }
 
8991
  /** Get the number of sons. */
6420
8992
  int Sons () const { return CTree::Sons (sons, 3); }
 
8993
  /** Get the n-th son.
 
8994
   *  \param n The index of the son.
 
8995
   *  \return The n-th son or NULL. */
6421
8996
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6422
8997
  CTree *Declarator () const { return sons[2]; }
6423
8998
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
8999
  /** Replace a son.
 
9000
   *  \param old_son The son to replace.
 
9001
   *  \param new_son The new son. */
6424
9002
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6425
9003
    CTree::ReplaceSon (sons, 3, old_son, new_son);
6426
9004
  }
6427
9005
};
6428
9006
 
6429
9007
 
6430
 
#line 6431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9008
#line 9009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6431
9009
} // closed Puma
 
9010
class CCExprResolve;
 
9011
class CExprResolve;
6432
9012
class WinIfExists;
6433
9013
class WinImportHandler;
6434
9014
class WinMacros;
6435
 
class CMatchSyntax;
6436
 
class ExtGnu;
 
9015
class WinAsm;
 
9016
class WinDeclSpecs;
 
9017
class WinMemberExplSpec;
 
9018
class WinTypeKeywords;
 
9019
class WinFriend;
6437
9020
class ExtAC;
6438
9021
class ExtACBuilderCoupling;
6439
9022
class ExtACSyntaxCoupling;
6440
9023
class ExtACTree;
6441
9024
class ExtACKeywords;
6442
 
class WinAsm;
6443
 
class WinDeclSpecs;
6444
 
class WinMemberExplSpec;
6445
 
class WinTypeKeywords;
 
9025
class ExtGnu;
6446
9026
class PragmaOnceUnitState;
6447
9027
class PragmaOnce;
6448
 
class CCExprResolve;
6449
 
class CExprResolve;
 
9028
class CMatchSyntax;
6450
9029
namespace Puma {
6451
9030
 
6452
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9031
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6453
9032
class CT_MembPtrDeclarator : public CT_Declarator {
6454
 
#line 6455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9033
#line 9034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9034
  friend class ::CCExprResolve;
 
9035
  friend class ::CExprResolve;
6455
9036
  friend class ::WinIfExists;
6456
9037
  friend class ::WinImportHandler;
6457
9038
  friend class ::WinMacros;
6458
 
  friend class ::CMatchSyntax;
6459
 
  friend class ::ExtGnu;
 
9039
  friend class ::WinAsm;
 
9040
  friend class ::WinDeclSpecs;
 
9041
  friend class ::WinMemberExplSpec;
 
9042
  friend class ::WinTypeKeywords;
 
9043
  friend class ::WinFriend;
6460
9044
  friend class ::ExtAC;
6461
9045
  friend class ::ExtACBuilderCoupling;
6462
9046
  friend class ::ExtACSyntaxCoupling;
6463
9047
  friend class ::ExtACTree;
6464
9048
  friend class ::ExtACKeywords;
6465
 
  friend class ::WinAsm;
6466
 
  friend class ::WinDeclSpecs;
6467
 
  friend class ::WinMemberExplSpec;
6468
 
  friend class ::WinTypeKeywords;
 
9049
  friend class ::ExtGnu;
6469
9050
  friend class ::PragmaOnceUnitState;
6470
9051
  friend class ::PragmaOnce;
6471
 
  friend class ::CCExprResolve;
6472
 
  friend class ::CExprResolve;
 
9052
  friend class ::CMatchSyntax;
6473
9053
 
6474
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9054
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6475
9055
 
6476
9056
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
6477
9057
 
6478
9058
public:
6479
9059
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
6480
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
9060
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
9061
    AddSon (sons[3], q); AddSon (sons[4], d); 
6481
9062
  }
 
9063
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6482
9064
  static const char *NodeId ();
 
9065
  /** Get the name of the node. Can be compared with NodeId(). */
6483
9066
  const char *NodeName () const { return NodeId (); }
 
9067
  /** Get the number of sons. */
6484
9068
  int Sons () const { return CTree::Sons (sons, 5); }
 
9069
  /** Get the n-th son.
 
9070
   *  \param n The index of the son.
 
9071
   *  \return The n-th son or NULL. */
6485
9072
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
6486
9073
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
6487
9074
  CTree *Declarator () const { return sons[4]; }
6488
9075
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
9076
  /** Replace a son.
 
9077
   *  \param old_son The son to replace.
 
9078
   *  \param new_son The new son. */
6489
9079
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6490
9080
    CTree::ReplaceSon (sons, 5, old_son, new_son);
6491
9081
  }
6492
9082
};
6493
9083
 
6494
9084
 
6495
 
#line 6496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9085
#line 9086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6496
9086
} // closed Puma
 
9087
class CCExprResolve;
 
9088
class CExprResolve;
6497
9089
class WinIfExists;
6498
9090
class WinImportHandler;
6499
9091
class WinMacros;
6500
 
class CMatchSyntax;
6501
 
class ExtGnu;
 
9092
class WinAsm;
 
9093
class WinDeclSpecs;
 
9094
class WinMemberExplSpec;
 
9095
class WinTypeKeywords;
 
9096
class WinFriend;
6502
9097
class ExtAC;
6503
9098
class ExtACBuilderCoupling;
6504
9099
class ExtACSyntaxCoupling;
6505
9100
class ExtACTree;
6506
9101
class ExtACKeywords;
6507
 
class WinAsm;
6508
 
class WinDeclSpecs;
6509
 
class WinMemberExplSpec;
6510
 
class WinTypeKeywords;
 
9102
class ExtGnu;
6511
9103
class PragmaOnceUnitState;
6512
9104
class PragmaOnce;
6513
 
class CCExprResolve;
6514
 
class CExprResolve;
 
9105
class CMatchSyntax;
6515
9106
namespace Puma {
6516
9107
 
6517
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9108
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6518
9109
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
6519
 
#line 6520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9110
#line 9111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9111
  friend class ::CCExprResolve;
 
9112
  friend class ::CExprResolve;
6520
9113
  friend class ::WinIfExists;
6521
9114
  friend class ::WinImportHandler;
6522
9115
  friend class ::WinMacros;
6523
 
  friend class ::CMatchSyntax;
6524
 
  friend class ::ExtGnu;
 
9116
  friend class ::WinAsm;
 
9117
  friend class ::WinDeclSpecs;
 
9118
  friend class ::WinMemberExplSpec;
 
9119
  friend class ::WinTypeKeywords;
 
9120
  friend class ::WinFriend;
6525
9121
  friend class ::ExtAC;
6526
9122
  friend class ::ExtACBuilderCoupling;
6527
9123
  friend class ::ExtACSyntaxCoupling;
6528
9124
  friend class ::ExtACTree;
6529
9125
  friend class ::ExtACKeywords;
6530
 
  friend class ::WinAsm;
6531
 
  friend class ::WinDeclSpecs;
6532
 
  friend class ::WinMemberExplSpec;
6533
 
  friend class ::WinTypeKeywords;
 
9126
  friend class ::ExtGnu;
6534
9127
  friend class ::PragmaOnceUnitState;
6535
9128
  friend class ::PragmaOnce;
6536
 
  friend class ::CCExprResolve;
6537
 
  friend class ::CExprResolve;
 
9129
  friend class ::CMatchSyntax;
6538
9130
 
6539
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9131
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6540
9132
 
6541
9133
  CTree *sons[3]; // declarator, colon, expr
6542
9134
 
6543
9135
public:
6544
9136
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
6545
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
9137
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
6546
9138
  }
 
9139
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6547
9140
  static const char *NodeId ();
 
9141
  /** Get the name of the node. Can be compared with NodeId(). */
6548
9142
  const char *NodeName () const { return NodeId (); }
 
9143
  /** Get the number of sons. */
6549
9144
  int Sons () const { return CTree::Sons (sons, 3); }
 
9145
  /** Get the n-th son.
 
9146
   *  \param n The index of the son.
 
9147
   *  \return The n-th son or NULL. */
6550
9148
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6551
9149
  CTree *Declarator () const { return sons[0]; }
6552
9150
  CTree *Expr () const { return sons[2]; }
6553
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
9151
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
6554
9152
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
9153
  /** Replace a son.
 
9154
   *  \param old_son The son to replace.
 
9155
   *  \param new_son The new son. */
6555
9156
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6556
9157
    CTree::ReplaceSon (sons, 3, old_son, new_son);
6557
9158
  }
6564
9165
/*****************************************************************************/
6565
9166
 
6566
9167
 
6567
 
#line 6568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9168
#line 9169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6568
9169
} // closed Puma
 
9170
class CCExprResolve;
 
9171
class CExprResolve;
6569
9172
class WinIfExists;
6570
9173
class WinImportHandler;
6571
9174
class WinMacros;
6572
 
class CMatchSyntax;
6573
 
class ExtGnu;
 
9175
class WinAsm;
 
9176
class WinDeclSpecs;
 
9177
class WinMemberExplSpec;
 
9178
class WinTypeKeywords;
 
9179
class WinFriend;
6574
9180
class ExtAC;
6575
9181
class ExtACBuilderCoupling;
6576
9182
class ExtACSyntaxCoupling;
6577
9183
class ExtACTree;
6578
9184
class ExtACKeywords;
6579
 
class WinAsm;
6580
 
class WinDeclSpecs;
6581
 
class WinMemberExplSpec;
6582
 
class WinTypeKeywords;
 
9185
class ExtGnu;
6583
9186
class PragmaOnceUnitState;
6584
9187
class PragmaOnce;
6585
 
class CCExprResolve;
6586
 
class CExprResolve;
 
9188
class CMatchSyntax;
6587
9189
namespace Puma {
6588
9190
 
6589
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9191
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6590
9192
class CT_Statement : public CTree {
6591
 
#line 6592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9193
#line 9194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9194
  friend class ::CCExprResolve;
 
9195
  friend class ::CExprResolve;
6592
9196
  friend class ::WinIfExists;
6593
9197
  friend class ::WinImportHandler;
6594
9198
  friend class ::WinMacros;
6595
 
  friend class ::CMatchSyntax;
6596
 
  friend class ::ExtGnu;
 
9199
  friend class ::WinAsm;
 
9200
  friend class ::WinDeclSpecs;
 
9201
  friend class ::WinMemberExplSpec;
 
9202
  friend class ::WinTypeKeywords;
 
9203
  friend class ::WinFriend;
6597
9204
  friend class ::ExtAC;
6598
9205
  friend class ::ExtACBuilderCoupling;
6599
9206
  friend class ::ExtACSyntaxCoupling;
6600
9207
  friend class ::ExtACTree;
6601
9208
  friend class ::ExtACKeywords;
6602
 
  friend class ::WinAsm;
6603
 
  friend class ::WinDeclSpecs;
6604
 
  friend class ::WinMemberExplSpec;
6605
 
  friend class ::WinTypeKeywords;
 
9209
  friend class ::ExtGnu;
6606
9210
  friend class ::PragmaOnceUnitState;
6607
9211
  friend class ::PragmaOnce;
6608
 
  friend class ::CCExprResolve;
6609
 
  friend class ::CExprResolve;
 
9212
  friend class ::CMatchSyntax;
6610
9213
 
6611
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9214
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6612
9215
 
6613
9216
protected:
6614
9217
  CT_Statement () {}
 
9218
  virtual CT_Statement *IsStatement () { return this; }
6615
9219
};
6616
9220
 
6617
9221
 
6618
 
#line 6619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9222
#line 9223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6619
9223
} // closed Puma
 
9224
class CCExprResolve;
 
9225
class CExprResolve;
6620
9226
class WinIfExists;
6621
9227
class WinImportHandler;
6622
9228
class WinMacros;
6623
 
class CMatchSyntax;
6624
 
class ExtGnu;
 
9229
class WinAsm;
 
9230
class WinDeclSpecs;
 
9231
class WinMemberExplSpec;
 
9232
class WinTypeKeywords;
 
9233
class WinFriend;
6625
9234
class ExtAC;
6626
9235
class ExtACBuilderCoupling;
6627
9236
class ExtACSyntaxCoupling;
6628
9237
class ExtACTree;
6629
9238
class ExtACKeywords;
6630
 
class WinAsm;
6631
 
class WinDeclSpecs;
6632
 
class WinMemberExplSpec;
6633
 
class WinTypeKeywords;
 
9239
class ExtGnu;
6634
9240
class PragmaOnceUnitState;
6635
9241
class PragmaOnce;
6636
 
class CCExprResolve;
6637
 
class CExprResolve;
 
9242
class CMatchSyntax;
6638
9243
namespace Puma {
6639
9244
 
6640
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9245
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6641
9246
class CT_LabelStmt : public CT_Statement {
6642
 
#line 6643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9247
#line 9248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9248
  friend class ::CCExprResolve;
 
9249
  friend class ::CExprResolve;
6643
9250
  friend class ::WinIfExists;
6644
9251
  friend class ::WinImportHandler;
6645
9252
  friend class ::WinMacros;
6646
 
  friend class ::CMatchSyntax;
6647
 
  friend class ::ExtGnu;
 
9253
  friend class ::WinAsm;
 
9254
  friend class ::WinDeclSpecs;
 
9255
  friend class ::WinMemberExplSpec;
 
9256
  friend class ::WinTypeKeywords;
 
9257
  friend class ::WinFriend;
6648
9258
  friend class ::ExtAC;
6649
9259
  friend class ::ExtACBuilderCoupling;
6650
9260
  friend class ::ExtACSyntaxCoupling;
6651
9261
  friend class ::ExtACTree;
6652
9262
  friend class ::ExtACKeywords;
6653
 
  friend class ::WinAsm;
6654
 
  friend class ::WinDeclSpecs;
6655
 
  friend class ::WinMemberExplSpec;
6656
 
  friend class ::WinTypeKeywords;
 
9263
  friend class ::ExtGnu;
6657
9264
  friend class ::PragmaOnceUnitState;
6658
9265
  friend class ::PragmaOnce;
6659
 
  friend class ::CCExprResolve;
6660
 
  friend class ::CExprResolve;
 
9266
  friend class ::CMatchSyntax;
6661
9267
 
6662
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9268
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6663
9269
 
6664
9270
  CTree *sons[3]; // id, colon, stmt
6665
9271
 
6666
9272
public:
6667
9273
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
6668
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
9274
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
6669
9275
  }
 
9276
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6670
9277
  static const char *NodeId ();
 
9278
  /** Get the name of the node. Can be compared with NodeId(). */
6671
9279
  const char *NodeName () const { return NodeId (); }
 
9280
  /** Get the number of sons. */
6672
9281
  int Sons () const { return 3; }
 
9282
  /** Get the n-th son.
 
9283
   *  \param n The index of the son.
 
9284
   *  \return The n-th son or NULL. */
6673
9285
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6674
9286
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
6675
9287
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
9288
  /** Replace a son.
 
9289
   *  \param old_son The son to replace.
 
9290
   *  \param new_son The new son. */
6676
9291
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6677
9292
    CTree::ReplaceSon (sons, 3, old_son, new_son);
6678
9293
  }
6679
9294
};
6680
9295
 
6681
9296
 
6682
 
#line 6683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9297
#line 9298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6683
9298
} // closed Puma
 
9299
class CCExprResolve;
 
9300
class CExprResolve;
6684
9301
class WinIfExists;
6685
9302
class WinImportHandler;
6686
9303
class WinMacros;
6687
 
class CMatchSyntax;
6688
 
class ExtGnu;
 
9304
class WinAsm;
 
9305
class WinDeclSpecs;
 
9306
class WinMemberExplSpec;
 
9307
class WinTypeKeywords;
 
9308
class WinFriend;
6689
9309
class ExtAC;
6690
9310
class ExtACBuilderCoupling;
6691
9311
class ExtACSyntaxCoupling;
6692
9312
class ExtACTree;
6693
9313
class ExtACKeywords;
6694
 
class WinAsm;
6695
 
class WinDeclSpecs;
6696
 
class WinMemberExplSpec;
6697
 
class WinTypeKeywords;
 
9314
class ExtGnu;
6698
9315
class PragmaOnceUnitState;
6699
9316
class PragmaOnce;
6700
 
class CCExprResolve;
6701
 
class CExprResolve;
 
9317
class CMatchSyntax;
6702
9318
namespace Puma {
6703
9319
 
6704
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9320
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6705
9321
class CT_DefaultStmt : public CT_Statement {
6706
 
#line 6707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9322
#line 9323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9323
  friend class ::CCExprResolve;
 
9324
  friend class ::CExprResolve;
6707
9325
  friend class ::WinIfExists;
6708
9326
  friend class ::WinImportHandler;
6709
9327
  friend class ::WinMacros;
6710
 
  friend class ::CMatchSyntax;
6711
 
  friend class ::ExtGnu;
 
9328
  friend class ::WinAsm;
 
9329
  friend class ::WinDeclSpecs;
 
9330
  friend class ::WinMemberExplSpec;
 
9331
  friend class ::WinTypeKeywords;
 
9332
  friend class ::WinFriend;
6712
9333
  friend class ::ExtAC;
6713
9334
  friend class ::ExtACBuilderCoupling;
6714
9335
  friend class ::ExtACSyntaxCoupling;
6715
9336
  friend class ::ExtACTree;
6716
9337
  friend class ::ExtACKeywords;
6717
 
  friend class ::WinAsm;
6718
 
  friend class ::WinDeclSpecs;
6719
 
  friend class ::WinMemberExplSpec;
6720
 
  friend class ::WinTypeKeywords;
 
9338
  friend class ::ExtGnu;
6721
9339
  friend class ::PragmaOnceUnitState;
6722
9340
  friend class ::PragmaOnce;
6723
 
  friend class ::CCExprResolve;
6724
 
  friend class ::CExprResolve;
 
9341
  friend class ::CMatchSyntax;
6725
9342
 
6726
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9343
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6727
9344
 
6728
9345
  CTree *sons[3]; // keyword, colon, stmt
6729
9346
 
6730
9347
public:
6731
9348
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
6732
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
9349
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
6733
9350
  }
 
9351
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6734
9352
  static const char *NodeId ();
 
9353
  /** Get the name of the node. Can be compared with NodeId(). */
6735
9354
  const char *NodeName () const { return NodeId (); }
 
9355
  /** Get the number of sons. */
6736
9356
  int Sons () const { return 3; }
 
9357
  /** Get the n-th son.
 
9358
   *  \param n The index of the son.
 
9359
   *  \return The n-th son or NULL. */
6737
9360
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6738
9361
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
9362
  /** Replace a son.
 
9363
   *  \param old_son The son to replace.
 
9364
   *  \param new_son The new son. */
6739
9365
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6740
9366
    CTree::ReplaceSon (sons, 3, old_son, new_son);
6741
9367
  }
6742
9368
};
6743
9369
 
6744
9370
 
6745
 
#line 6746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9371
#line 9372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6746
9372
} // closed Puma
 
9373
class CCExprResolve;
 
9374
class CExprResolve;
6747
9375
class WinIfExists;
6748
9376
class WinImportHandler;
6749
9377
class WinMacros;
6750
 
class CMatchSyntax;
6751
 
class ExtGnu;
 
9378
class WinAsm;
 
9379
class WinDeclSpecs;
 
9380
class WinMemberExplSpec;
 
9381
class WinTypeKeywords;
 
9382
class WinFriend;
6752
9383
class ExtAC;
6753
9384
class ExtACBuilderCoupling;
6754
9385
class ExtACSyntaxCoupling;
6755
9386
class ExtACTree;
6756
9387
class ExtACKeywords;
6757
 
class WinAsm;
6758
 
class WinDeclSpecs;
6759
 
class WinMemberExplSpec;
6760
 
class WinTypeKeywords;
 
9388
class ExtGnu;
6761
9389
class PragmaOnceUnitState;
6762
9390
class PragmaOnce;
6763
 
class CCExprResolve;
6764
 
class CExprResolve;
 
9391
class CMatchSyntax;
6765
9392
namespace Puma {
6766
9393
 
6767
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9394
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6768
9395
class CT_TryStmt : public CT_Statement {
6769
 
#line 6770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9396
#line 9397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9397
  friend class ::CCExprResolve;
 
9398
  friend class ::CExprResolve;
6770
9399
  friend class ::WinIfExists;
6771
9400
  friend class ::WinImportHandler;
6772
9401
  friend class ::WinMacros;
6773
 
  friend class ::CMatchSyntax;
6774
 
  friend class ::ExtGnu;
 
9402
  friend class ::WinAsm;
 
9403
  friend class ::WinDeclSpecs;
 
9404
  friend class ::WinMemberExplSpec;
 
9405
  friend class ::WinTypeKeywords;
 
9406
  friend class ::WinFriend;
6775
9407
  friend class ::ExtAC;
6776
9408
  friend class ::ExtACBuilderCoupling;
6777
9409
  friend class ::ExtACSyntaxCoupling;
6778
9410
  friend class ::ExtACTree;
6779
9411
  friend class ::ExtACKeywords;
6780
 
  friend class ::WinAsm;
6781
 
  friend class ::WinDeclSpecs;
6782
 
  friend class ::WinMemberExplSpec;
6783
 
  friend class ::WinTypeKeywords;
 
9412
  friend class ::ExtGnu;
6784
9413
  friend class ::PragmaOnceUnitState;
6785
9414
  friend class ::PragmaOnce;
6786
 
  friend class ::CCExprResolve;
6787
 
  friend class ::CExprResolve;
 
9415
  friend class ::CMatchSyntax;
6788
9416
 
6789
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9417
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6790
9418
 
6791
9419
  CTree *sons[3]; // try, stmt, handlers
6792
9420
 
6793
9421
public:
6794
9422
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
6795
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
9423
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
6796
9424
  }
 
9425
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6797
9426
  static const char *NodeId ();
 
9427
  /** Get the name of the node. Can be compared with NodeId(). */
6798
9428
  const char *NodeName () const { return NodeId (); }
 
9429
  /** Get the number of sons. */
6799
9430
  int Sons () const { return 3; }
 
9431
  /** Get the n-th son.
 
9432
   *  \param n The index of the son.
 
9433
   *  \return The n-th son or NULL. */
6800
9434
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6801
9435
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
6802
9436
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
9437
  /** Replace a son.
 
9438
   *  \param old_son The son to replace.
 
9439
   *  \param new_son The new son. */
6803
9440
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6804
9441
    CTree::ReplaceSon (sons, 3, old_son, new_son);
6805
9442
  }
6806
9443
};
6807
9444
 
6808
9445
 
6809
 
#line 6810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9446
#line 9447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6810
9447
} // closed Puma
 
9448
class CCExprResolve;
 
9449
class CExprResolve;
6811
9450
class WinIfExists;
6812
9451
class WinImportHandler;
6813
9452
class WinMacros;
6814
 
class CMatchSyntax;
6815
 
class ExtGnu;
 
9453
class WinAsm;
 
9454
class WinDeclSpecs;
 
9455
class WinMemberExplSpec;
 
9456
class WinTypeKeywords;
 
9457
class WinFriend;
6816
9458
class ExtAC;
6817
9459
class ExtACBuilderCoupling;
6818
9460
class ExtACSyntaxCoupling;
6819
9461
class ExtACTree;
6820
9462
class ExtACKeywords;
6821
 
class WinAsm;
6822
 
class WinDeclSpecs;
6823
 
class WinMemberExplSpec;
6824
 
class WinTypeKeywords;
 
9463
class ExtGnu;
6825
9464
class PragmaOnceUnitState;
6826
9465
class PragmaOnce;
6827
 
class CCExprResolve;
6828
 
class CExprResolve;
 
9466
class CMatchSyntax;
6829
9467
namespace Puma {
6830
9468
 
6831
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9469
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6832
9470
class CT_CaseStmt : public CT_Statement {
6833
 
#line 6834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9471
#line 9472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9472
  friend class ::CCExprResolve;
 
9473
  friend class ::CExprResolve;
6834
9474
  friend class ::WinIfExists;
6835
9475
  friend class ::WinImportHandler;
6836
9476
  friend class ::WinMacros;
6837
 
  friend class ::CMatchSyntax;
6838
 
  friend class ::ExtGnu;
 
9477
  friend class ::WinAsm;
 
9478
  friend class ::WinDeclSpecs;
 
9479
  friend class ::WinMemberExplSpec;
 
9480
  friend class ::WinTypeKeywords;
 
9481
  friend class ::WinFriend;
6839
9482
  friend class ::ExtAC;
6840
9483
  friend class ::ExtACBuilderCoupling;
6841
9484
  friend class ::ExtACSyntaxCoupling;
6842
9485
  friend class ::ExtACTree;
6843
9486
  friend class ::ExtACKeywords;
6844
 
  friend class ::WinAsm;
6845
 
  friend class ::WinDeclSpecs;
6846
 
  friend class ::WinMemberExplSpec;
6847
 
  friend class ::WinTypeKeywords;
 
9487
  friend class ::ExtGnu;
6848
9488
  friend class ::PragmaOnceUnitState;
6849
9489
  friend class ::PragmaOnce;
6850
 
  friend class ::CCExprResolve;
6851
 
  friend class ::CExprResolve;
 
9490
  friend class ::CMatchSyntax;
6852
9491
 
6853
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9492
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6854
9493
 
6855
9494
  CTree *sons[4]; // keyword, expr, colon, stmt
6856
9495
 
6857
9496
public:
6858
9497
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
6859
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
9498
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
9499
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
6860
9500
  }
 
9501
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6861
9502
  static const char *NodeId ();
 
9503
  /** Get the name of the node. Can be compared with NodeId(). */
6862
9504
  const char *NodeName () const { return NodeId (); }
 
9505
  /** Get the number of sons. */
6863
9506
  int Sons () const { return 4; }
 
9507
  /** Get the n-th son.
 
9508
   *  \param n The index of the son.
 
9509
   *  \return The n-th son or NULL. */
6864
9510
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
6865
9511
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
6866
9512
  CTree *Expr () const { return sons[1]; }
 
9513
  /** Replace a son.
 
9514
   *  \param old_son The son to replace.
 
9515
   *  \param new_son The new son. */
6867
9516
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6868
9517
    CTree::ReplaceSon (sons, 4, old_son, new_son);
6869
9518
  }
6870
9519
};
6871
9520
 
6872
9521
 
6873
 
#line 6874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9522
#line 9523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6874
9523
} // closed Puma
 
9524
class CCExprResolve;
 
9525
class CExprResolve;
6875
9526
class WinIfExists;
6876
9527
class WinImportHandler;
6877
9528
class WinMacros;
6878
 
class CMatchSyntax;
6879
 
class ExtGnu;
 
9529
class WinAsm;
 
9530
class WinDeclSpecs;
 
9531
class WinMemberExplSpec;
 
9532
class WinTypeKeywords;
 
9533
class WinFriend;
6880
9534
class ExtAC;
6881
9535
class ExtACBuilderCoupling;
6882
9536
class ExtACSyntaxCoupling;
6883
9537
class ExtACTree;
6884
9538
class ExtACKeywords;
6885
 
class WinAsm;
6886
 
class WinDeclSpecs;
6887
 
class WinMemberExplSpec;
6888
 
class WinTypeKeywords;
 
9539
class ExtGnu;
6889
9540
class PragmaOnceUnitState;
6890
9541
class PragmaOnce;
6891
 
class CCExprResolve;
6892
 
class CExprResolve;
 
9542
class CMatchSyntax;
6893
9543
namespace Puma {
6894
9544
 
6895
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9545
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6896
9546
class CT_ExprStmt : public CT_Statement {
6897
 
#line 6898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9547
#line 9548 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9548
  friend class ::CCExprResolve;
 
9549
  friend class ::CExprResolve;
6898
9550
  friend class ::WinIfExists;
6899
9551
  friend class ::WinImportHandler;
6900
9552
  friend class ::WinMacros;
6901
 
  friend class ::CMatchSyntax;
6902
 
  friend class ::ExtGnu;
 
9553
  friend class ::WinAsm;
 
9554
  friend class ::WinDeclSpecs;
 
9555
  friend class ::WinMemberExplSpec;
 
9556
  friend class ::WinTypeKeywords;
 
9557
  friend class ::WinFriend;
6903
9558
  friend class ::ExtAC;
6904
9559
  friend class ::ExtACBuilderCoupling;
6905
9560
  friend class ::ExtACSyntaxCoupling;
6906
9561
  friend class ::ExtACTree;
6907
9562
  friend class ::ExtACKeywords;
6908
 
  friend class ::WinAsm;
6909
 
  friend class ::WinDeclSpecs;
6910
 
  friend class ::WinMemberExplSpec;
6911
 
  friend class ::WinTypeKeywords;
 
9563
  friend class ::ExtGnu;
6912
9564
  friend class ::PragmaOnceUnitState;
6913
9565
  friend class ::PragmaOnce;
6914
 
  friend class ::CCExprResolve;
6915
 
  friend class ::CExprResolve;
 
9566
  friend class ::CMatchSyntax;
6916
9567
 
6917
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9568
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6918
9569
 
6919
9570
  CTree *sons[2]; // expr, semi_colon
6920
9571
 
6921
9572
public:
6922
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
9573
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
9574
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6923
9575
  static const char *NodeId ();
 
9576
  /** Get the name of the node. Can be compared with NodeId(). */
6924
9577
  const char *NodeName () const { return NodeId (); }
 
9578
  /** Get the number of sons. */
6925
9579
  int Sons () const { return CTree::Sons (sons, 2); }
 
9580
  /** Get the n-th son.
 
9581
   *  \param n The index of the son.
 
9582
   *  \return The n-th son or NULL. */
6926
9583
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
6927
9584
  CTree *Expr () const { return sons[0]; }
 
9585
  /** Replace a son.
 
9586
   *  \param old_son The son to replace.
 
9587
   *  \param new_son The new son. */
6928
9588
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
6929
9589
    CTree::ReplaceSon (sons, 2, old_son, new_son);
6930
9590
  }
6931
9591
};
6932
9592
 
6933
9593
 
6934
 
#line 6935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9594
#line 9595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6935
9595
} // closed Puma
 
9596
class CCExprResolve;
 
9597
class CExprResolve;
6936
9598
class WinIfExists;
6937
9599
class WinImportHandler;
6938
9600
class WinMacros;
6939
 
class CMatchSyntax;
6940
 
class ExtGnu;
 
9601
class WinAsm;
 
9602
class WinDeclSpecs;
 
9603
class WinMemberExplSpec;
 
9604
class WinTypeKeywords;
 
9605
class WinFriend;
6941
9606
class ExtAC;
6942
9607
class ExtACBuilderCoupling;
6943
9608
class ExtACSyntaxCoupling;
6944
9609
class ExtACTree;
6945
9610
class ExtACKeywords;
6946
 
class WinAsm;
6947
 
class WinDeclSpecs;
6948
 
class WinMemberExplSpec;
6949
 
class WinTypeKeywords;
 
9611
class ExtGnu;
6950
9612
class PragmaOnceUnitState;
6951
9613
class PragmaOnce;
6952
 
class CCExprResolve;
6953
 
class CExprResolve;
 
9614
class CMatchSyntax;
6954
9615
namespace Puma {
6955
9616
 
6956
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9617
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6957
9618
class CT_DeclStmt : public CT_Statement {
6958
 
#line 6959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9619
#line 9620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9620
  friend class ::CCExprResolve;
 
9621
  friend class ::CExprResolve;
6959
9622
  friend class ::WinIfExists;
6960
9623
  friend class ::WinImportHandler;
6961
9624
  friend class ::WinMacros;
6962
 
  friend class ::CMatchSyntax;
6963
 
  friend class ::ExtGnu;
 
9625
  friend class ::WinAsm;
 
9626
  friend class ::WinDeclSpecs;
 
9627
  friend class ::WinMemberExplSpec;
 
9628
  friend class ::WinTypeKeywords;
 
9629
  friend class ::WinFriend;
6964
9630
  friend class ::ExtAC;
6965
9631
  friend class ::ExtACBuilderCoupling;
6966
9632
  friend class ::ExtACSyntaxCoupling;
6967
9633
  friend class ::ExtACTree;
6968
9634
  friend class ::ExtACKeywords;
6969
 
  friend class ::WinAsm;
6970
 
  friend class ::WinDeclSpecs;
6971
 
  friend class ::WinMemberExplSpec;
6972
 
  friend class ::WinTypeKeywords;
 
9635
  friend class ::ExtGnu;
6973
9636
  friend class ::PragmaOnceUnitState;
6974
9637
  friend class ::PragmaOnce;
6975
 
  friend class ::CCExprResolve;
6976
 
  friend class ::CExprResolve;
 
9638
  friend class ::CMatchSyntax;
6977
9639
 
6978
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9640
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6979
9641
 
6980
9642
  CTree *_decl;
6981
9643
 
6982
9644
public:
6983
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
9645
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
9646
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6984
9647
  static const char *NodeId ();
 
9648
  /** Get the name of the node. Can be compared with NodeId(). */
6985
9649
  const char *NodeName () const { return NodeId (); }
 
9650
  /** Get the number of sons. */
6986
9651
  int Sons () const { return 1; }
 
9652
  /** Get the n-th son.
 
9653
   *  \param n The index of the son.
 
9654
   *  \return The n-th son or NULL. */
6987
9655
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
9656
  /** Replace a son.
 
9657
   *  \param old_son The son to replace.
 
9658
   *  \param new_son The new son. */
6988
9659
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6989
 
   { if (old_son == _decl) _decl = new_son; }
 
9660
   { CTree::ReplaceSon (_decl, old_son, new_son); }
6990
9661
};
6991
9662
 
6992
9663
 
6993
 
#line 6994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9664
#line 9665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6994
9665
} // closed Puma
 
9666
class CCExprResolve;
 
9667
class CExprResolve;
6995
9668
class WinIfExists;
6996
9669
class WinImportHandler;
6997
9670
class WinMacros;
6998
 
class CMatchSyntax;
6999
 
class ExtGnu;
 
9671
class WinAsm;
 
9672
class WinDeclSpecs;
 
9673
class WinMemberExplSpec;
 
9674
class WinTypeKeywords;
 
9675
class WinFriend;
7000
9676
class ExtAC;
7001
9677
class ExtACBuilderCoupling;
7002
9678
class ExtACSyntaxCoupling;
7003
9679
class ExtACTree;
7004
9680
class ExtACKeywords;
7005
 
class WinAsm;
7006
 
class WinDeclSpecs;
7007
 
class WinMemberExplSpec;
7008
 
class WinTypeKeywords;
 
9681
class ExtGnu;
7009
9682
class PragmaOnceUnitState;
7010
9683
class PragmaOnce;
7011
 
class CCExprResolve;
7012
 
class CExprResolve;
 
9684
class CMatchSyntax;
7013
9685
namespace Puma {
7014
9686
 
7015
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9687
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7016
9688
class CT_SwitchStmt : public CT_Statement, public CSemScope {
7017
 
#line 7018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9689
#line 9690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9690
  friend class ::CCExprResolve;
 
9691
  friend class ::CExprResolve;
7018
9692
  friend class ::WinIfExists;
7019
9693
  friend class ::WinImportHandler;
7020
9694
  friend class ::WinMacros;
7021
 
  friend class ::CMatchSyntax;
7022
 
  friend class ::ExtGnu;
 
9695
  friend class ::WinAsm;
 
9696
  friend class ::WinDeclSpecs;
 
9697
  friend class ::WinMemberExplSpec;
 
9698
  friend class ::WinTypeKeywords;
 
9699
  friend class ::WinFriend;
7023
9700
  friend class ::ExtAC;
7024
9701
  friend class ::ExtACBuilderCoupling;
7025
9702
  friend class ::ExtACSyntaxCoupling;
7026
9703
  friend class ::ExtACTree;
7027
9704
  friend class ::ExtACKeywords;
7028
 
  friend class ::WinAsm;
7029
 
  friend class ::WinDeclSpecs;
7030
 
  friend class ::WinMemberExplSpec;
7031
 
  friend class ::WinTypeKeywords;
 
9705
  friend class ::ExtGnu;
7032
9706
  friend class ::PragmaOnceUnitState;
7033
9707
  friend class ::PragmaOnce;
7034
 
  friend class ::CCExprResolve;
7035
 
  friend class ::CExprResolve;
 
9708
  friend class ::CMatchSyntax;
7036
9709
 
7037
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9710
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7038
9711
 
7039
9712
  CTree *sons[5]; // keyword, open, cond, close, stmt
7040
9713
 
7041
9714
public:
7042
9715
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
7043
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
9716
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
9717
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
7044
9718
  }
 
9719
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7045
9720
  static const char *NodeId ();
 
9721
  /** Get the name of the node. Can be compared with NodeId(). */
7046
9722
  const char *NodeName () const { return NodeId (); }
 
9723
  /** Get the number of sons. */
7047
9724
  int Sons () const { return 5; }
 
9725
  /** Get the n-th son.
 
9726
   *  \param n The index of the son.
 
9727
   *  \return The n-th son or NULL. */
7048
9728
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
7049
9729
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
7050
9730
  CTree *Condition () const { return sons[2]; }
 
9731
  /** Replace a son.
 
9732
   *  \param old_son The son to replace.
 
9733
   *  \param new_son The new son. */
7051
9734
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7052
9735
    CTree::ReplaceSon (sons, 5, old_son, new_son);
7053
9736
  }
 
9737
  CSemScope *SemScope () const { return (CSemScope*)this; }
7054
9738
};
7055
9739
 
7056
9740
 
7057
 
#line 7058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9741
#line 9742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7058
9742
} // closed Puma
 
9743
class CCExprResolve;
 
9744
class CExprResolve;
7059
9745
class WinIfExists;
7060
9746
class WinImportHandler;
7061
9747
class WinMacros;
7062
 
class CMatchSyntax;
7063
 
class ExtGnu;
 
9748
class WinAsm;
 
9749
class WinDeclSpecs;
 
9750
class WinMemberExplSpec;
 
9751
class WinTypeKeywords;
 
9752
class WinFriend;
7064
9753
class ExtAC;
7065
9754
class ExtACBuilderCoupling;
7066
9755
class ExtACSyntaxCoupling;
7067
9756
class ExtACTree;
7068
9757
class ExtACKeywords;
7069
 
class WinAsm;
7070
 
class WinDeclSpecs;
7071
 
class WinMemberExplSpec;
7072
 
class WinTypeKeywords;
 
9758
class ExtGnu;
7073
9759
class PragmaOnceUnitState;
7074
9760
class PragmaOnce;
7075
 
class CCExprResolve;
7076
 
class CExprResolve;
 
9761
class CMatchSyntax;
7077
9762
namespace Puma {
7078
9763
 
7079
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9764
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7080
9765
class CT_IfStmt : public CT_Statement, public CSemScope {
7081
 
#line 7082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9766
#line 9767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9767
  friend class ::CCExprResolve;
 
9768
  friend class ::CExprResolve;
7082
9769
  friend class ::WinIfExists;
7083
9770
  friend class ::WinImportHandler;
7084
9771
  friend class ::WinMacros;
7085
 
  friend class ::CMatchSyntax;
7086
 
  friend class ::ExtGnu;
 
9772
  friend class ::WinAsm;
 
9773
  friend class ::WinDeclSpecs;
 
9774
  friend class ::WinMemberExplSpec;
 
9775
  friend class ::WinTypeKeywords;
 
9776
  friend class ::WinFriend;
7087
9777
  friend class ::ExtAC;
7088
9778
  friend class ::ExtACBuilderCoupling;
7089
9779
  friend class ::ExtACSyntaxCoupling;
7090
9780
  friend class ::ExtACTree;
7091
9781
  friend class ::ExtACKeywords;
7092
 
  friend class ::WinAsm;
7093
 
  friend class ::WinDeclSpecs;
7094
 
  friend class ::WinMemberExplSpec;
7095
 
  friend class ::WinTypeKeywords;
 
9782
  friend class ::ExtGnu;
7096
9783
  friend class ::PragmaOnceUnitState;
7097
9784
  friend class ::PragmaOnce;
7098
 
  friend class ::CCExprResolve;
7099
 
  friend class ::CExprResolve;
 
9785
  friend class ::CMatchSyntax;
7100
9786
 
7101
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9787
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7102
9788
 
7103
9789
  CTree *sons[5]; // keyword, open, cond, close, stmt
7104
9790
 
7105
9791
public:
7106
9792
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
7107
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
9793
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
9794
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
7108
9795
  }
 
9796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7109
9797
  static const char *NodeId ();
 
9798
  /** Get the name of the node. Can be compared with NodeId(). */
7110
9799
  const char *NodeName () const { return NodeId (); }
 
9800
  /** Get the number of sons. */
7111
9801
  int Sons () const { return 5; }
 
9802
  /** Get the n-th son.
 
9803
   *  \param n The index of the son.
 
9804
   *  \return The n-th son or NULL. */
7112
9805
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
7113
9806
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
7114
9807
  CTree *Condition () const { return sons[2]; }
 
9808
  /** Replace a son.
 
9809
   *  \param old_son The son to replace.
 
9810
   *  \param new_son The new son. */
7115
9811
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7116
9812
    CTree::ReplaceSon (sons, 5, old_son, new_son);
7117
9813
  }
 
9814
  CSemScope *SemScope () const { return (CSemScope*)this; }
7118
9815
};
7119
9816
 
7120
9817
 
7121
 
#line 7122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9818
#line 9819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7122
9819
} // closed Puma
 
9820
class CCExprResolve;
 
9821
class CExprResolve;
7123
9822
class WinIfExists;
7124
9823
class WinImportHandler;
7125
9824
class WinMacros;
7126
 
class CMatchSyntax;
7127
 
class ExtGnu;
 
9825
class WinAsm;
 
9826
class WinDeclSpecs;
 
9827
class WinMemberExplSpec;
 
9828
class WinTypeKeywords;
 
9829
class WinFriend;
7128
9830
class ExtAC;
7129
9831
class ExtACBuilderCoupling;
7130
9832
class ExtACSyntaxCoupling;
7131
9833
class ExtACTree;
7132
9834
class ExtACKeywords;
7133
 
class WinAsm;
7134
 
class WinDeclSpecs;
7135
 
class WinMemberExplSpec;
7136
 
class WinTypeKeywords;
 
9835
class ExtGnu;
7137
9836
class PragmaOnceUnitState;
7138
9837
class PragmaOnce;
7139
 
class CCExprResolve;
7140
 
class CExprResolve;
 
9838
class CMatchSyntax;
7141
9839
namespace Puma {
7142
9840
 
7143
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9841
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7144
9842
class CT_IfElseStmt : public CT_Statement, public CSemScope {
7145
 
#line 7146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9843
#line 9844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9844
  friend class ::CCExprResolve;
 
9845
  friend class ::CExprResolve;
7146
9846
  friend class ::WinIfExists;
7147
9847
  friend class ::WinImportHandler;
7148
9848
  friend class ::WinMacros;
7149
 
  friend class ::CMatchSyntax;
7150
 
  friend class ::ExtGnu;
 
9849
  friend class ::WinAsm;
 
9850
  friend class ::WinDeclSpecs;
 
9851
  friend class ::WinMemberExplSpec;
 
9852
  friend class ::WinTypeKeywords;
 
9853
  friend class ::WinFriend;
7151
9854
  friend class ::ExtAC;
7152
9855
  friend class ::ExtACBuilderCoupling;
7153
9856
  friend class ::ExtACSyntaxCoupling;
7154
9857
  friend class ::ExtACTree;
7155
9858
  friend class ::ExtACKeywords;
7156
 
  friend class ::WinAsm;
7157
 
  friend class ::WinDeclSpecs;
7158
 
  friend class ::WinMemberExplSpec;
7159
 
  friend class ::WinTypeKeywords;
 
9859
  friend class ::ExtGnu;
7160
9860
  friend class ::PragmaOnceUnitState;
7161
9861
  friend class ::PragmaOnce;
7162
 
  friend class ::CCExprResolve;
7163
 
  friend class ::CExprResolve;
 
9862
  friend class ::CMatchSyntax;
7164
9863
 
7165
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9864
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7166
9865
 
7167
9866
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
7168
9867
 
7169
9868
public:
7170
9869
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
7171
9870
                 CTree *is, CTree *e, CTree *es) {
7172
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
7173
 
    sons[5] = e; sons[6] = es; 
 
9871
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
9872
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
9873
    AddSon (sons[6], es); 
7174
9874
  }
 
9875
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7175
9876
  static const char *NodeId ();
 
9877
  /** Get the name of the node. Can be compared with NodeId(). */
7176
9878
  const char *NodeName () const { return NodeId (); }
 
9879
  /** Get the number of sons. */
7177
9880
  int Sons () const { return 7; }
 
9881
  /** Get the n-th son.
 
9882
   *  \param n The index of the son.
 
9883
   *  \return The n-th son or NULL. */
7178
9884
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
7179
9885
  CTree *Condition () const { return sons[2]; }
7180
9886
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
7181
9887
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
9888
  /** Replace a son.
 
9889
   *  \param old_son The son to replace.
 
9890
   *  \param new_son The new son. */
7182
9891
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7183
9892
    CTree::ReplaceSon (sons, 7, old_son, new_son);
7184
9893
  }
 
9894
  CSemScope *SemScope () const { return (CSemScope*)this; }
7185
9895
};
7186
9896
 
7187
9897
 
7188
 
#line 7189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9898
#line 9899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7189
9899
} // closed Puma
 
9900
class CCExprResolve;
 
9901
class CExprResolve;
7190
9902
class WinIfExists;
7191
9903
class WinImportHandler;
7192
9904
class WinMacros;
7193
 
class CMatchSyntax;
7194
 
class ExtGnu;
 
9905
class WinAsm;
 
9906
class WinDeclSpecs;
 
9907
class WinMemberExplSpec;
 
9908
class WinTypeKeywords;
 
9909
class WinFriend;
7195
9910
class ExtAC;
7196
9911
class ExtACBuilderCoupling;
7197
9912
class ExtACSyntaxCoupling;
7198
9913
class ExtACTree;
7199
9914
class ExtACKeywords;
7200
 
class WinAsm;
7201
 
class WinDeclSpecs;
7202
 
class WinMemberExplSpec;
7203
 
class WinTypeKeywords;
 
9915
class ExtGnu;
7204
9916
class PragmaOnceUnitState;
7205
9917
class PragmaOnce;
7206
 
class CCExprResolve;
7207
 
class CExprResolve;
 
9918
class CMatchSyntax;
7208
9919
namespace Puma {
7209
9920
 
7210
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9921
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7211
9922
class CT_BreakStmt : public CT_Statement {
7212
 
#line 7213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9923
#line 9924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9924
  friend class ::CCExprResolve;
 
9925
  friend class ::CExprResolve;
7213
9926
  friend class ::WinIfExists;
7214
9927
  friend class ::WinImportHandler;
7215
9928
  friend class ::WinMacros;
7216
 
  friend class ::CMatchSyntax;
7217
 
  friend class ::ExtGnu;
 
9929
  friend class ::WinAsm;
 
9930
  friend class ::WinDeclSpecs;
 
9931
  friend class ::WinMemberExplSpec;
 
9932
  friend class ::WinTypeKeywords;
 
9933
  friend class ::WinFriend;
7218
9934
  friend class ::ExtAC;
7219
9935
  friend class ::ExtACBuilderCoupling;
7220
9936
  friend class ::ExtACSyntaxCoupling;
7221
9937
  friend class ::ExtACTree;
7222
9938
  friend class ::ExtACKeywords;
7223
 
  friend class ::WinAsm;
7224
 
  friend class ::WinDeclSpecs;
7225
 
  friend class ::WinMemberExplSpec;
7226
 
  friend class ::WinTypeKeywords;
 
9939
  friend class ::ExtGnu;
7227
9940
  friend class ::PragmaOnceUnitState;
7228
9941
  friend class ::PragmaOnce;
7229
 
  friend class ::CCExprResolve;
7230
 
  friend class ::CExprResolve;
 
9942
  friend class ::CMatchSyntax;
7231
9943
 
7232
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9944
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7233
9945
 
7234
9946
  CTree *sons[2]; // key, semi_colon
7235
9947
 
7236
9948
public:
7237
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
9949
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
9950
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7238
9951
  static const char *NodeId ();
 
9952
  /** Get the name of the node. Can be compared with NodeId(). */
7239
9953
  const char *NodeName () const { return NodeId (); }
 
9954
  /** Get the number of sons. */
7240
9955
  int Sons () const { return 2; }
 
9956
  /** Get the n-th son.
 
9957
   *  \param n The index of the son.
 
9958
   *  \return The n-th son or NULL. */
7241
9959
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
9960
  /** Replace a son.
 
9961
   *  \param old_son The son to replace.
 
9962
   *  \param new_son The new son. */
7242
9963
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7243
9964
    CTree::ReplaceSon (sons, 2, old_son, new_son);
7244
9965
  }
7245
9966
};
7246
9967
 
7247
9968
 
7248
 
#line 7249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9969
#line 9970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7249
9970
} // closed Puma
 
9971
class CCExprResolve;
 
9972
class CExprResolve;
7250
9973
class WinIfExists;
7251
9974
class WinImportHandler;
7252
9975
class WinMacros;
7253
 
class CMatchSyntax;
7254
 
class ExtGnu;
 
9976
class WinAsm;
 
9977
class WinDeclSpecs;
 
9978
class WinMemberExplSpec;
 
9979
class WinTypeKeywords;
 
9980
class WinFriend;
7255
9981
class ExtAC;
7256
9982
class ExtACBuilderCoupling;
7257
9983
class ExtACSyntaxCoupling;
7258
9984
class ExtACTree;
7259
9985
class ExtACKeywords;
7260
 
class WinAsm;
7261
 
class WinDeclSpecs;
7262
 
class WinMemberExplSpec;
7263
 
class WinTypeKeywords;
 
9986
class ExtGnu;
7264
9987
class PragmaOnceUnitState;
7265
9988
class PragmaOnce;
7266
 
class CCExprResolve;
7267
 
class CExprResolve;
 
9989
class CMatchSyntax;
7268
9990
namespace Puma {
7269
9991
 
7270
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9992
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7271
9993
class CT_ContinueStmt : public CT_Statement {
7272
 
#line 7273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9994
#line 9995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
9995
  friend class ::CCExprResolve;
 
9996
  friend class ::CExprResolve;
7273
9997
  friend class ::WinIfExists;
7274
9998
  friend class ::WinImportHandler;
7275
9999
  friend class ::WinMacros;
7276
 
  friend class ::CMatchSyntax;
7277
 
  friend class ::ExtGnu;
 
10000
  friend class ::WinAsm;
 
10001
  friend class ::WinDeclSpecs;
 
10002
  friend class ::WinMemberExplSpec;
 
10003
  friend class ::WinTypeKeywords;
 
10004
  friend class ::WinFriend;
7278
10005
  friend class ::ExtAC;
7279
10006
  friend class ::ExtACBuilderCoupling;
7280
10007
  friend class ::ExtACSyntaxCoupling;
7281
10008
  friend class ::ExtACTree;
7282
10009
  friend class ::ExtACKeywords;
7283
 
  friend class ::WinAsm;
7284
 
  friend class ::WinDeclSpecs;
7285
 
  friend class ::WinMemberExplSpec;
7286
 
  friend class ::WinTypeKeywords;
 
10010
  friend class ::ExtGnu;
7287
10011
  friend class ::PragmaOnceUnitState;
7288
10012
  friend class ::PragmaOnce;
7289
 
  friend class ::CCExprResolve;
7290
 
  friend class ::CExprResolve;
 
10013
  friend class ::CMatchSyntax;
7291
10014
 
7292
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10015
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7293
10016
 
7294
10017
  CTree *sons[2]; // key, semi_colon
7295
10018
 
7296
10019
public:
7297
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
10020
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
10021
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7298
10022
  static const char *NodeId ();
 
10023
  /** Get the name of the node. Can be compared with NodeId(). */
7299
10024
  const char *NodeName () const { return NodeId (); }
 
10025
  /** Get the number of sons. */
7300
10026
  int Sons () const { return 2; }
 
10027
  /** Get the n-th son.
 
10028
   *  \param n The index of the son.
 
10029
   *  \return The n-th son or NULL. */
7301
10030
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10031
  /** Replace a son.
 
10032
   *  \param old_son The son to replace.
 
10033
   *  \param new_son The new son. */
7302
10034
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7303
10035
    CTree::ReplaceSon (sons, 2, old_son, new_son);
7304
10036
  }
7305
10037
};
7306
10038
 
7307
10039
 
7308
 
#line 7309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10040
#line 10041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7309
10041
} // closed Puma
 
10042
class CCExprResolve;
 
10043
class CExprResolve;
7310
10044
class WinIfExists;
7311
10045
class WinImportHandler;
7312
10046
class WinMacros;
7313
 
class CMatchSyntax;
7314
 
class ExtGnu;
 
10047
class WinAsm;
 
10048
class WinDeclSpecs;
 
10049
class WinMemberExplSpec;
 
10050
class WinTypeKeywords;
 
10051
class WinFriend;
7315
10052
class ExtAC;
7316
10053
class ExtACBuilderCoupling;
7317
10054
class ExtACSyntaxCoupling;
7318
10055
class ExtACTree;
7319
10056
class ExtACKeywords;
7320
 
class WinAsm;
7321
 
class WinDeclSpecs;
7322
 
class WinMemberExplSpec;
7323
 
class WinTypeKeywords;
 
10057
class ExtGnu;
7324
10058
class PragmaOnceUnitState;
7325
10059
class PragmaOnce;
7326
 
class CCExprResolve;
7327
 
class CExprResolve;
 
10060
class CMatchSyntax;
7328
10061
namespace Puma {
7329
10062
 
7330
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10063
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7331
10064
class CT_GotoStmt : public CT_Statement {
7332
 
#line 7333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10065
#line 10066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10066
  friend class ::CCExprResolve;
 
10067
  friend class ::CExprResolve;
7333
10068
  friend class ::WinIfExists;
7334
10069
  friend class ::WinImportHandler;
7335
10070
  friend class ::WinMacros;
7336
 
  friend class ::CMatchSyntax;
7337
 
  friend class ::ExtGnu;
 
10071
  friend class ::WinAsm;
 
10072
  friend class ::WinDeclSpecs;
 
10073
  friend class ::WinMemberExplSpec;
 
10074
  friend class ::WinTypeKeywords;
 
10075
  friend class ::WinFriend;
7338
10076
  friend class ::ExtAC;
7339
10077
  friend class ::ExtACBuilderCoupling;
7340
10078
  friend class ::ExtACSyntaxCoupling;
7341
10079
  friend class ::ExtACTree;
7342
10080
  friend class ::ExtACKeywords;
7343
 
  friend class ::WinAsm;
7344
 
  friend class ::WinDeclSpecs;
7345
 
  friend class ::WinMemberExplSpec;
7346
 
  friend class ::WinTypeKeywords;
 
10081
  friend class ::ExtGnu;
7347
10082
  friend class ::PragmaOnceUnitState;
7348
10083
  friend class ::PragmaOnce;
7349
 
  friend class ::CCExprResolve;
7350
 
  friend class ::CExprResolve;
 
10084
  friend class ::CMatchSyntax;
7351
10085
 
7352
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10086
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7353
10087
 
7354
10088
  CTree *sons[3]; // key, label, semi_colon
7355
10089
 
7356
10090
public:
7357
10091
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
7358
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
10092
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
7359
10093
  }
 
10094
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7360
10095
  static const char *NodeId ();
 
10096
  /** Get the name of the node. Can be compared with NodeId(). */
7361
10097
  const char *NodeName () const { return NodeId (); }
 
10098
  /** Get the number of sons. */
7362
10099
  int Sons () const { return 3; }
 
10100
  /** Get the n-th son.
 
10101
   *  \param n The index of the son.
 
10102
   *  \return The n-th son or NULL. */
7363
10103
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7364
10104
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
10105
  /** Replace a son.
 
10106
   *  \param old_son The son to replace.
 
10107
   *  \param new_son The new son. */
7365
10108
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7366
10109
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7367
10110
  }
7368
10111
};
7369
10112
 
7370
10113
 
7371
 
#line 7372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10114
#line 10115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7372
10115
} // closed Puma
 
10116
class CCExprResolve;
 
10117
class CExprResolve;
7373
10118
class WinIfExists;
7374
10119
class WinImportHandler;
7375
10120
class WinMacros;
7376
 
class CMatchSyntax;
7377
 
class ExtGnu;
 
10121
class WinAsm;
 
10122
class WinDeclSpecs;
 
10123
class WinMemberExplSpec;
 
10124
class WinTypeKeywords;
 
10125
class WinFriend;
7378
10126
class ExtAC;
7379
10127
class ExtACBuilderCoupling;
7380
10128
class ExtACSyntaxCoupling;
7381
10129
class ExtACTree;
7382
10130
class ExtACKeywords;
7383
 
class WinAsm;
7384
 
class WinDeclSpecs;
7385
 
class WinMemberExplSpec;
7386
 
class WinTypeKeywords;
 
10131
class ExtGnu;
7387
10132
class PragmaOnceUnitState;
7388
10133
class PragmaOnce;
7389
 
class CCExprResolve;
7390
 
class CExprResolve;
 
10134
class CMatchSyntax;
7391
10135
namespace Puma {
7392
10136
 
7393
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10137
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7394
10138
class CT_ReturnStmt : public CT_Statement {
7395
 
#line 7396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10139
#line 10140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10140
  friend class ::CCExprResolve;
 
10141
  friend class ::CExprResolve;
7396
10142
  friend class ::WinIfExists;
7397
10143
  friend class ::WinImportHandler;
7398
10144
  friend class ::WinMacros;
7399
 
  friend class ::CMatchSyntax;
7400
 
  friend class ::ExtGnu;
 
10145
  friend class ::WinAsm;
 
10146
  friend class ::WinDeclSpecs;
 
10147
  friend class ::WinMemberExplSpec;
 
10148
  friend class ::WinTypeKeywords;
 
10149
  friend class ::WinFriend;
7401
10150
  friend class ::ExtAC;
7402
10151
  friend class ::ExtACBuilderCoupling;
7403
10152
  friend class ::ExtACSyntaxCoupling;
7404
10153
  friend class ::ExtACTree;
7405
10154
  friend class ::ExtACKeywords;
7406
 
  friend class ::WinAsm;
7407
 
  friend class ::WinDeclSpecs;
7408
 
  friend class ::WinMemberExplSpec;
7409
 
  friend class ::WinTypeKeywords;
 
10155
  friend class ::ExtGnu;
7410
10156
  friend class ::PragmaOnceUnitState;
7411
10157
  friend class ::PragmaOnce;
7412
 
  friend class ::CCExprResolve;
7413
 
  friend class ::CExprResolve;
 
10158
  friend class ::CMatchSyntax;
7414
10159
 
7415
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10160
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7416
10161
 
7417
10162
  CTree *sons[3]; // key, expr, semi_colon
7418
10163
 
7419
10164
public:
7420
10165
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
7421
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
10166
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
7422
10167
  }
 
10168
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7423
10169
  static const char *NodeId ();
 
10170
  /** Get the name of the node. Can be compared with NodeId(). */
7424
10171
  const char *NodeName () const { return NodeId (); }
 
10172
  /** Get the number of sons. */
7425
10173
  int Sons () const { return CTree::Sons (sons, 3); }
 
10174
  /** Get the n-th son.
 
10175
   *  \param n The index of the son.
 
10176
   *  \return The n-th son or NULL. */
7426
10177
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7427
10178
  CTree *Expr () const { return sons[1]; }
 
10179
  /** Replace a son.
 
10180
   *  \param old_son The son to replace.
 
10181
   *  \param new_son The new son. */
7428
10182
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7429
10183
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7430
10184
  }
7431
10185
};
7432
10186
 
7433
10187
 
7434
 
#line 7435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10188
#line 10189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7435
10189
} // closed Puma
 
10190
class CCExprResolve;
 
10191
class CExprResolve;
7436
10192
class WinIfExists;
7437
10193
class WinImportHandler;
7438
10194
class WinMacros;
7439
 
class CMatchSyntax;
7440
 
class ExtGnu;
 
10195
class WinAsm;
 
10196
class WinDeclSpecs;
 
10197
class WinMemberExplSpec;
 
10198
class WinTypeKeywords;
 
10199
class WinFriend;
7441
10200
class ExtAC;
7442
10201
class ExtACBuilderCoupling;
7443
10202
class ExtACSyntaxCoupling;
7444
10203
class ExtACTree;
7445
10204
class ExtACKeywords;
7446
 
class WinAsm;
7447
 
class WinDeclSpecs;
7448
 
class WinMemberExplSpec;
7449
 
class WinTypeKeywords;
 
10205
class ExtGnu;
7450
10206
class PragmaOnceUnitState;
7451
10207
class PragmaOnce;
7452
 
class CCExprResolve;
7453
 
class CExprResolve;
 
10208
class CMatchSyntax;
7454
10209
namespace Puma {
7455
10210
 
7456
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10211
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7457
10212
class CT_WhileStmt : public CT_Statement, public CSemScope {
7458
 
#line 7459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10213
#line 10214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10214
  friend class ::CCExprResolve;
 
10215
  friend class ::CExprResolve;
7459
10216
  friend class ::WinIfExists;
7460
10217
  friend class ::WinImportHandler;
7461
10218
  friend class ::WinMacros;
7462
 
  friend class ::CMatchSyntax;
7463
 
  friend class ::ExtGnu;
 
10219
  friend class ::WinAsm;
 
10220
  friend class ::WinDeclSpecs;
 
10221
  friend class ::WinMemberExplSpec;
 
10222
  friend class ::WinTypeKeywords;
 
10223
  friend class ::WinFriend;
7464
10224
  friend class ::ExtAC;
7465
10225
  friend class ::ExtACBuilderCoupling;
7466
10226
  friend class ::ExtACSyntaxCoupling;
7467
10227
  friend class ::ExtACTree;
7468
10228
  friend class ::ExtACKeywords;
7469
 
  friend class ::WinAsm;
7470
 
  friend class ::WinDeclSpecs;
7471
 
  friend class ::WinMemberExplSpec;
7472
 
  friend class ::WinTypeKeywords;
 
10229
  friend class ::ExtGnu;
7473
10230
  friend class ::PragmaOnceUnitState;
7474
10231
  friend class ::PragmaOnce;
7475
 
  friend class ::CCExprResolve;
7476
 
  friend class ::CExprResolve;
 
10232
  friend class ::CMatchSyntax;
7477
10233
 
7478
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10234
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7479
10235
 
7480
10236
  CTree *sons[5]; // key, open, cond, close, stmt
7481
10237
 
7482
10238
public:
7483
10239
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
7484
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
10240
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
10241
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
7485
10242
  }
 
10243
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7486
10244
  static const char *NodeId ();
 
10245
  /** Get the name of the node. Can be compared with NodeId(). */
7487
10246
  const char *NodeName () const { return NodeId (); }
 
10247
  /** Get the number of sons. */
7488
10248
  int Sons () const { return 5; }
 
10249
  /** Get the n-th son.
 
10250
   *  \param n The index of the son.
 
10251
   *  \return The n-th son or NULL. */
7489
10252
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
7490
10253
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
7491
10254
  CTree *Condition () const { return sons[2]; }
 
10255
  /** Replace a son.
 
10256
   *  \param old_son The son to replace.
 
10257
   *  \param new_son The new son. */
7492
10258
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7493
10259
    CTree::ReplaceSon (sons, 5, old_son, new_son);
7494
10260
  }
 
10261
  CSemScope *SemScope () const { return (CSemScope*)this; }
7495
10262
};
7496
10263
 
7497
10264
 
7498
 
#line 7499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10265
#line 10266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7499
10266
} // closed Puma
 
10267
class CCExprResolve;
 
10268
class CExprResolve;
7500
10269
class WinIfExists;
7501
10270
class WinImportHandler;
7502
10271
class WinMacros;
7503
 
class CMatchSyntax;
7504
 
class ExtGnu;
 
10272
class WinAsm;
 
10273
class WinDeclSpecs;
 
10274
class WinMemberExplSpec;
 
10275
class WinTypeKeywords;
 
10276
class WinFriend;
7505
10277
class ExtAC;
7506
10278
class ExtACBuilderCoupling;
7507
10279
class ExtACSyntaxCoupling;
7508
10280
class ExtACTree;
7509
10281
class ExtACKeywords;
7510
 
class WinAsm;
7511
 
class WinDeclSpecs;
7512
 
class WinMemberExplSpec;
7513
 
class WinTypeKeywords;
 
10282
class ExtGnu;
7514
10283
class PragmaOnceUnitState;
7515
10284
class PragmaOnce;
7516
 
class CCExprResolve;
7517
 
class CExprResolve;
 
10285
class CMatchSyntax;
7518
10286
namespace Puma {
7519
10287
 
7520
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10288
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7521
10289
class CT_DoStmt : public CT_Statement {
7522
 
#line 7523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10290
#line 10291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10291
  friend class ::CCExprResolve;
 
10292
  friend class ::CExprResolve;
7523
10293
  friend class ::WinIfExists;
7524
10294
  friend class ::WinImportHandler;
7525
10295
  friend class ::WinMacros;
7526
 
  friend class ::CMatchSyntax;
7527
 
  friend class ::ExtGnu;
 
10296
  friend class ::WinAsm;
 
10297
  friend class ::WinDeclSpecs;
 
10298
  friend class ::WinMemberExplSpec;
 
10299
  friend class ::WinTypeKeywords;
 
10300
  friend class ::WinFriend;
7528
10301
  friend class ::ExtAC;
7529
10302
  friend class ::ExtACBuilderCoupling;
7530
10303
  friend class ::ExtACSyntaxCoupling;
7531
10304
  friend class ::ExtACTree;
7532
10305
  friend class ::ExtACKeywords;
7533
 
  friend class ::WinAsm;
7534
 
  friend class ::WinDeclSpecs;
7535
 
  friend class ::WinMemberExplSpec;
7536
 
  friend class ::WinTypeKeywords;
 
10306
  friend class ::ExtGnu;
7537
10307
  friend class ::PragmaOnceUnitState;
7538
10308
  friend class ::PragmaOnce;
7539
 
  friend class ::CCExprResolve;
7540
 
  friend class ::CExprResolve;
 
10309
  friend class ::CMatchSyntax;
7541
10310
 
7542
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10311
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7543
10312
 
7544
10313
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
7545
10314
 
7546
10315
public:
7547
10316
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
7548
10317
             CTree *c, CTree *sc) {
7549
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
7550
 
    sons[5] = c; sons[6] = sc; 
 
10318
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
10319
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
10320
    AddSon (sons[6], sc); 
7551
10321
  }
 
10322
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7552
10323
  static const char *NodeId ();
 
10324
  /** Get the name of the node. Can be compared with NodeId(). */
7553
10325
  const char *NodeName () const { return NodeId (); }
 
10326
  /** Get the number of sons. */
7554
10327
  int Sons () const { return 7; }
 
10328
  /** Get the n-th son.
 
10329
   *  \param n The index of the son.
 
10330
   *  \return The n-th son or NULL. */
7555
10331
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
7556
10332
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
7557
10333
  CTree *Expr () const { return sons[4]; }
 
10334
  /** Replace a son.
 
10335
   *  \param old_son The son to replace.
 
10336
   *  \param new_son The new son. */
7558
10337
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7559
10338
    CTree::ReplaceSon (sons, 7, old_son, new_son);
7560
10339
  }
7561
10340
};
7562
10341
 
7563
10342
 
7564
 
#line 7565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10343
#line 10344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7565
10344
} // closed Puma
 
10345
class CCExprResolve;
 
10346
class CExprResolve;
7566
10347
class WinIfExists;
7567
10348
class WinImportHandler;
7568
10349
class WinMacros;
7569
 
class CMatchSyntax;
7570
 
class ExtGnu;
 
10350
class WinAsm;
 
10351
class WinDeclSpecs;
 
10352
class WinMemberExplSpec;
 
10353
class WinTypeKeywords;
 
10354
class WinFriend;
7571
10355
class ExtAC;
7572
10356
class ExtACBuilderCoupling;
7573
10357
class ExtACSyntaxCoupling;
7574
10358
class ExtACTree;
7575
10359
class ExtACKeywords;
7576
 
class WinAsm;
7577
 
class WinDeclSpecs;
7578
 
class WinMemberExplSpec;
7579
 
class WinTypeKeywords;
 
10360
class ExtGnu;
7580
10361
class PragmaOnceUnitState;
7581
10362
class PragmaOnce;
7582
 
class CCExprResolve;
7583
 
class CExprResolve;
 
10363
class CMatchSyntax;
7584
10364
namespace Puma {
7585
10365
 
7586
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10366
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7587
10367
class CT_ForStmt : public CT_Statement, public CSemScope {
7588
 
#line 7589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10368
#line 10369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10369
  friend class ::CCExprResolve;
 
10370
  friend class ::CExprResolve;
7589
10371
  friend class ::WinIfExists;
7590
10372
  friend class ::WinImportHandler;
7591
10373
  friend class ::WinMacros;
7592
 
  friend class ::CMatchSyntax;
7593
 
  friend class ::ExtGnu;
 
10374
  friend class ::WinAsm;
 
10375
  friend class ::WinDeclSpecs;
 
10376
  friend class ::WinMemberExplSpec;
 
10377
  friend class ::WinTypeKeywords;
 
10378
  friend class ::WinFriend;
7594
10379
  friend class ::ExtAC;
7595
10380
  friend class ::ExtACBuilderCoupling;
7596
10381
  friend class ::ExtACSyntaxCoupling;
7597
10382
  friend class ::ExtACTree;
7598
10383
  friend class ::ExtACKeywords;
7599
 
  friend class ::WinAsm;
7600
 
  friend class ::WinDeclSpecs;
7601
 
  friend class ::WinMemberExplSpec;
7602
 
  friend class ::WinTypeKeywords;
 
10384
  friend class ::ExtGnu;
7603
10385
  friend class ::PragmaOnceUnitState;
7604
10386
  friend class ::PragmaOnce;
7605
 
  friend class ::CCExprResolve;
7606
 
  friend class ::CExprResolve;
 
10387
  friend class ::CMatchSyntax;
7607
10388
 
7608
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10389
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7609
10390
 
7610
10391
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
7611
10392
 
7612
10393
public:
7613
10394
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
7614
10395
              CTree *e, CTree *c, CTree *stmt) {
7615
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
7616
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
10396
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
10397
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
10398
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
7617
10399
  }
 
10400
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7618
10401
  static const char *NodeId ();
 
10402
  /** Get the name of the node. Can be compared with NodeId(). */
7619
10403
  const char *NodeName () const { return NodeId (); }
 
10404
  /** Get the number of sons. */
7620
10405
  int Sons () const { return CTree::Sons (sons, 8); }
 
10406
  /** Get the n-th son.
 
10407
   *  \param n The index of the son.
 
10408
   *  \return The n-th son or NULL. */
7621
10409
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
7622
10410
  CTree *InitStmt () const { return sons[2]; }
7623
10411
  CTree *Condition () const { return sons[3]; }
7624
10412
  CTree *Expr () const { return sons[5]; }
7625
10413
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
10414
  /** Replace a son.
 
10415
   *  \param old_son The son to replace.
 
10416
   *  \param new_son The new son. */
7626
10417
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7627
10418
    CTree::ReplaceSon (sons, 8, old_son, new_son);
7628
10419
  }
 
10420
  CSemScope *SemScope () const { return (CSemScope*)this; }
7629
10421
};
7630
10422
 
7631
10423
 
7632
 
#line 7633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10424
#line 10425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7633
10425
} // closed Puma
 
10426
class CCExprResolve;
 
10427
class CExprResolve;
7634
10428
class WinIfExists;
7635
10429
class WinImportHandler;
7636
10430
class WinMacros;
7637
 
class CMatchSyntax;
7638
 
class ExtGnu;
 
10431
class WinAsm;
 
10432
class WinDeclSpecs;
 
10433
class WinMemberExplSpec;
 
10434
class WinTypeKeywords;
 
10435
class WinFriend;
7639
10436
class ExtAC;
7640
10437
class ExtACBuilderCoupling;
7641
10438
class ExtACSyntaxCoupling;
7642
10439
class ExtACTree;
7643
10440
class ExtACKeywords;
7644
 
class WinAsm;
7645
 
class WinDeclSpecs;
7646
 
class WinMemberExplSpec;
7647
 
class WinTypeKeywords;
 
10441
class ExtGnu;
7648
10442
class PragmaOnceUnitState;
7649
10443
class PragmaOnce;
7650
 
class CCExprResolve;
7651
 
class CExprResolve;
 
10444
class CMatchSyntax;
7652
10445
namespace Puma {
7653
10446
 
7654
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10447
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7655
10448
class CT_Condition : public CT_Decl, public CSemObject {
7656
 
#line 7657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10449
#line 10450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10450
  friend class ::CCExprResolve;
 
10451
  friend class ::CExprResolve;
7657
10452
  friend class ::WinIfExists;
7658
10453
  friend class ::WinImportHandler;
7659
10454
  friend class ::WinMacros;
7660
 
  friend class ::CMatchSyntax;
7661
 
  friend class ::ExtGnu;
 
10455
  friend class ::WinAsm;
 
10456
  friend class ::WinDeclSpecs;
 
10457
  friend class ::WinMemberExplSpec;
 
10458
  friend class ::WinTypeKeywords;
 
10459
  friend class ::WinFriend;
7662
10460
  friend class ::ExtAC;
7663
10461
  friend class ::ExtACBuilderCoupling;
7664
10462
  friend class ::ExtACSyntaxCoupling;
7665
10463
  friend class ::ExtACTree;
7666
10464
  friend class ::ExtACKeywords;
7667
 
  friend class ::WinAsm;
7668
 
  friend class ::WinDeclSpecs;
7669
 
  friend class ::WinMemberExplSpec;
7670
 
  friend class ::WinTypeKeywords;
 
10465
  friend class ::ExtGnu;
7671
10466
  friend class ::PragmaOnceUnitState;
7672
10467
  friend class ::PragmaOnce;
7673
 
  friend class ::CCExprResolve;
7674
 
  friend class ::CExprResolve;
 
10468
  friend class ::CMatchSyntax;
7675
10469
 
7676
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10470
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7677
10471
 
7678
10472
  CTree *sons[3]; // declspecs, declarator, init
7679
10473
 
7680
10474
public:
7681
10475
  CT_Condition (CTree *dsl, CTree *d) {
7682
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
10476
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
7683
10477
  }
 
10478
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7684
10479
  static const char *NodeId ();
 
10480
  /** Get the name of the node. Can be compared with NodeId(). */
7685
10481
  const char *NodeName () const { return NodeId (); }
 
10482
  /** Get the number of sons. */
7686
10483
  int Sons () const { return CTree::Sons (sons, 3); }
 
10484
  /** Get the n-th son.
 
10485
   *  \param n The index of the son.
 
10486
   *  \return The n-th son or NULL. */
7687
10487
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7688
10488
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
7689
10489
  CTree *Declarator () const { return sons[1]; }
7690
10490
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
7691
10491
  CSemObject *SemObject () const { return (CSemObject*)this; }
7692
 
  void Initializer (CTree *i) { sons[2] = i; }
 
10492
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
10493
  /** Replace a son.
 
10494
   *  \param old_son The son to replace.
 
10495
   *  \param new_son The new son. */
7693
10496
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7694
10497
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7695
10498
  }
7702
10505
/*****************************************************************************/
7703
10506
 
7704
10507
 
7705
 
#line 7706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10508
#line 10509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7706
10509
} // closed Puma
 
10510
class CCExprResolve;
 
10511
class CExprResolve;
7707
10512
class WinIfExists;
7708
10513
class WinImportHandler;
7709
10514
class WinMacros;
7710
 
class CMatchSyntax;
7711
 
class ExtGnu;
 
10515
class WinAsm;
 
10516
class WinDeclSpecs;
 
10517
class WinMemberExplSpec;
 
10518
class WinTypeKeywords;
 
10519
class WinFriend;
7712
10520
class ExtAC;
7713
10521
class ExtACBuilderCoupling;
7714
10522
class ExtACSyntaxCoupling;
7715
10523
class ExtACTree;
7716
10524
class ExtACKeywords;
7717
 
class WinAsm;
7718
 
class WinDeclSpecs;
7719
 
class WinMemberExplSpec;
7720
 
class WinTypeKeywords;
 
10525
class ExtGnu;
7721
10526
class PragmaOnceUnitState;
7722
10527
class PragmaOnce;
7723
 
class CCExprResolve;
7724
 
class CExprResolve;
7725
 
namespace Puma {
7726
 
 
7727
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10528
class CMatchSyntax;
 
10529
namespace Puma {
 
10530
 
 
10531
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10532
 
 
10533
#line 10534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10534
} // closed Puma
 
10535
 
 
10536
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
10537
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
10538
#include "ExtACTree.ah"
 
10539
#endif
 
10540
namespace Puma {
 
10541
 
 
10542
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7728
10543
class CT_ClassDef : public CT_Decl, public CSemObject {
7729
 
#line 7730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10544
#line 10545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10545
  friend class ::CCExprResolve;
 
10546
  friend class ::CExprResolve;
7730
10547
  friend class ::WinIfExists;
7731
10548
  friend class ::WinImportHandler;
7732
10549
  friend class ::WinMacros;
7733
 
  friend class ::CMatchSyntax;
7734
 
  friend class ::ExtGnu;
 
10550
  friend class ::WinAsm;
 
10551
  friend class ::WinDeclSpecs;
 
10552
  friend class ::WinMemberExplSpec;
 
10553
  friend class ::WinTypeKeywords;
 
10554
  friend class ::WinFriend;
7735
10555
  friend class ::ExtAC;
7736
10556
  friend class ::ExtACBuilderCoupling;
7737
10557
  friend class ::ExtACSyntaxCoupling;
7738
10558
  friend class ::ExtACTree;
7739
10559
  friend class ::ExtACKeywords;
7740
 
  friend class ::WinAsm;
7741
 
  friend class ::WinDeclSpecs;
7742
 
  friend class ::WinMemberExplSpec;
7743
 
  friend class ::WinTypeKeywords;
 
10560
  friend class ::ExtGnu;
7744
10561
  friend class ::PragmaOnceUnitState;
7745
10562
  friend class ::PragmaOnce;
7746
 
  friend class ::CCExprResolve;
7747
 
  friend class ::CExprResolve;
 
10563
  friend class ::CMatchSyntax;
7748
10564
 
7749
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10565
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7750
10566
 
7751
10567
   
7752
 
#line 7753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10568
#line 10569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7753
10569
 
7754
10570
  struct __ac_wrapper_sons {
7755
10571
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
7764
10580
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
7765
10581
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
7766
10582
  } sons
7767
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10583
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7768
10584
 
7769
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10585
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7770
10586
; // key, name, bases, members
7771
10587
  CTree *obj_decl;
7772
10588
 
7773
10589
public:
7774
10590
  
7775
 
#line 7776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
7776
 
 
7777
 
 
7778
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
7779
 
  typedef void Result;
7780
 
  typedef ::Puma::CT_ClassDef That;
7781
 
  typedef ::Puma::CT_ClassDef Target;
7782
 
  static const int JPID = 4;
 
10591
#line 10592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10592
 
 
10593
 
 
10594
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
10595
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
10596
  typedef TResult Result;
 
10597
  typedef TThat   That;
 
10598
  typedef TTarget Target;
 
10599
  enum { ARGS = TArgs::ARGS };
 
10600
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
10601
  static const int JPID = 55;
7783
10602
  static const AC::JPType JPTYPE = (AC::JPType)16;
7784
10603
  struct Res {
7785
10604
    typedef void Type;
7786
10605
    typedef void ReferredType;
7787
10606
  };
7788
 
  enum { ARGS = 3 };
7789
 
  template <int I, int DUMMY = 0> struct Arg {
7790
 
    typedef void Type;
7791
 
    typedef void ReferredType;
7792
 
  };
7793
 
  template <int DUMMY> struct Arg<0, DUMMY> {
7794
 
    typedef ::Puma::CTree * Type;
7795
 
    typedef ::Puma::CTree * ReferredType;
7796
 
  };
7797
 
  template <int DUMMY> struct Arg<1, DUMMY> {
7798
 
    typedef ::Puma::CTree * Type;
7799
 
    typedef ::Puma::CTree * ReferredType;
7800
 
  };
7801
 
  template <int DUMMY> struct Arg<2, DUMMY> {
7802
 
    typedef ::Puma::CTree * Type;
7803
 
    typedef ::Puma::CTree * ReferredType;
7804
 
  };
7805
10607
 
7806
10608
  That *_that;
7807
10609
 
7810
10612
};
7811
10613
 
7812
10614
 
7813
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10615
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7814
10616
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
7815
 
#line 7816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10617
#line 10618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7816
10618
{
7817
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
7818
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
7819
 
this->__exec_old_C1(arg0, arg1, arg2);
7820
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
7821
 
 
 
10619
  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;
 
10620
    __TJP tjp;
 
10621
  tjp._that =  (__TJP::That*)this;
 
10622
    this->__exec_old_C1(arg0, arg1, arg2);
 
10623
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
10624
  
7822
10625
}
7823
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
7824
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10626
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
10627
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7825
10628
{
7826
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
10629
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
10630
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
7827
10631
  }
 
10632
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7828
10633
  static const char *NodeId ();
 
10634
  /** Get the name of the node. Can be compared with NodeId(). */
7829
10635
  const char *NodeName () const { return NodeId (); }
 
10636
  /** Get the number of sons. */
7830
10637
  int Sons () const { return CTree::Sons (sons, 4); }
 
10638
  /** Get the n-th son.
 
10639
   *  \param n The index of the son.
 
10640
   *  \return The n-th son or NULL. */
7831
10641
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
7832
10642
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
7833
10643
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
7834
10644
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
7835
10645
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
7836
10646
  CSemObject *SemObject () const { return (CSemObject*)this; }
7837
 
  void Members (CTree *m) { sons[3] = m; }
7838
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
7839
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
10647
  void Members (CTree *m) { AddSon (sons[3], m); }
 
10648
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
10649
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
10650
  /** Replace a son.
 
10651
   *  \param old_son The son to replace.
 
10652
   *  \param new_son The new son. */
7840
10653
  void ReplaceSon (CTree *old_son, CTree *new_son) {
7841
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
7842
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
10654
    CTree::ReplaceSon (sons, 4, old_son, new_son);
7843
10655
  }
7844
10656
   private:
7845
10657
 
7846
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
7847
 
 CTree * _intro_members ;
 
10658
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
10659
 Puma :: CTree * _intro_members ;
 
10660
Puma :: CTree * _base_intros ;
7848
10661
public :
7849
 
CTree * IntroMembers ( ) const { return _intro_members ; }
7850
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
7851
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7852
 
 
7853
 
#line 7854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
7854
 
 
7855
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
7856
 
  typedef void Result;
7857
 
  typedef ::Puma::CT_ClassDef That;
7858
 
  typedef ::Puma::CT_ClassDef Target;
7859
 
  static const int JPID = 4;
 
10662
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
10663
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
10664
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
10665
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
10666
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10667
 
 
10668
#line 10669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10669
 
 
10670
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
10671
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
10672
  typedef TResult Result;
 
10673
  typedef TThat   That;
 
10674
  typedef TTarget Target;
 
10675
  enum { ARGS = TArgs::ARGS };
 
10676
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
10677
  static const int JPID = 8547;
7860
10678
  static const AC::JPType JPTYPE = (AC::JPType)16;
7861
10679
  struct Res {
7862
10680
    typedef void Type;
7863
10681
    typedef void ReferredType;
7864
10682
  };
7865
 
  enum { ARGS = 1 };
7866
 
  template <int I, int DUMMY = 0> struct Arg {
7867
 
    typedef void Type;
7868
 
    typedef void ReferredType;
7869
 
  };
7870
 
  template <int DUMMY> struct Arg<0, DUMMY> {
7871
 
    typedef const ::Puma::CT_ClassDef & Type;
7872
 
    typedef const ::Puma::CT_ClassDef ReferredType;
7873
 
  };
7874
10683
 
7875
10684
  That *_that;
7876
10685
 
7879
10688
};
7880
10689
 
7881
10690
 
7882
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10691
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7883
10692
 
7884
 
#line 7885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10693
#line 10694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7885
10694
 
7886
10695
public:
7887
 
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) {
7888
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
7889
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
7890
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
10696
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) {
 
10697
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
10698
  __TJP tjp;
 
10699
  tjp._that =  (__TJP::That*)this;
 
10700
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
7891
10701
 
7892
10702
}
7893
10703
 
7894
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7895
 
 
7896
 
#line 7897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
7897
 
 
7898
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
7899
 
  typedef void Result;
7900
 
  typedef ::Puma::CT_ClassDef That;
7901
 
  typedef ::Puma::CT_ClassDef Target;
7902
 
  static const int JPID = 4;
 
10704
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10705
 
 
10706
#line 10707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10707
 
 
10708
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
10709
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
10710
  typedef TResult Result;
 
10711
  typedef TThat   That;
 
10712
  typedef TTarget Target;
 
10713
  enum { ARGS = TArgs::ARGS };
 
10714
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
10715
  static const int JPID = 8545;
7903
10716
  static const AC::JPType JPTYPE = (AC::JPType)32;
7904
10717
  struct Res {
7905
10718
    typedef void Type;
7906
10719
    typedef void ReferredType;
7907
10720
  };
7908
 
  enum { ARGS = 0 };
7909
 
  template <int I, int DUMMY = 0> struct Arg {
7910
 
    typedef void Type;
7911
 
    typedef void ReferredType;
7912
 
  };
7913
10721
 
7914
10722
  That *_that;
7915
10723
 
7918
10726
};
7919
10727
 
7920
10728
 
7921
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10729
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7922
10730
 
7923
 
#line 7924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10731
#line 10732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7924
10732
 
7925
10733
public:
7926
10734
inline ~CT_ClassDef () {
7927
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
7928
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
7929
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
10735
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
10736
  __TJP tjp;
 
10737
  tjp._that =  (__TJP::That*)this;
 
10738
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
7930
10739
 
7931
10740
}
7932
10741
 
7933
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10742
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7934
10743
};
7935
10744
      
7936
10745
 
7937
 
#line 7938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10746
#line 10747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7938
10747
} // closed Puma
 
10748
class CCExprResolve;
 
10749
class CExprResolve;
7939
10750
class WinIfExists;
7940
10751
class WinImportHandler;
7941
10752
class WinMacros;
7942
 
class CMatchSyntax;
7943
 
class ExtGnu;
 
10753
class WinAsm;
 
10754
class WinDeclSpecs;
 
10755
class WinMemberExplSpec;
 
10756
class WinTypeKeywords;
 
10757
class WinFriend;
7944
10758
class ExtAC;
7945
10759
class ExtACBuilderCoupling;
7946
10760
class ExtACSyntaxCoupling;
7947
10761
class ExtACTree;
7948
10762
class ExtACKeywords;
7949
 
class WinAsm;
7950
 
class WinDeclSpecs;
7951
 
class WinMemberExplSpec;
7952
 
class WinTypeKeywords;
 
10763
class ExtGnu;
7953
10764
class PragmaOnceUnitState;
7954
10765
class PragmaOnce;
7955
 
class CCExprResolve;
7956
 
class CExprResolve;
 
10766
class CMatchSyntax;
7957
10767
namespace Puma {
7958
10768
 
7959
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10769
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7960
10770
class CT_UnionDef : public CT_ClassDef {
7961
 
#line 7962 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10771
#line 10772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10772
  friend class ::CCExprResolve;
 
10773
  friend class ::CExprResolve;
7962
10774
  friend class ::WinIfExists;
7963
10775
  friend class ::WinImportHandler;
7964
10776
  friend class ::WinMacros;
7965
 
  friend class ::CMatchSyntax;
7966
 
  friend class ::ExtGnu;
 
10777
  friend class ::WinAsm;
 
10778
  friend class ::WinDeclSpecs;
 
10779
  friend class ::WinMemberExplSpec;
 
10780
  friend class ::WinTypeKeywords;
 
10781
  friend class ::WinFriend;
7967
10782
  friend class ::ExtAC;
7968
10783
  friend class ::ExtACBuilderCoupling;
7969
10784
  friend class ::ExtACSyntaxCoupling;
7970
10785
  friend class ::ExtACTree;
7971
10786
  friend class ::ExtACKeywords;
7972
 
  friend class ::WinAsm;
7973
 
  friend class ::WinDeclSpecs;
7974
 
  friend class ::WinMemberExplSpec;
7975
 
  friend class ::WinTypeKeywords;
 
10787
  friend class ::ExtGnu;
7976
10788
  friend class ::PragmaOnceUnitState;
7977
10789
  friend class ::PragmaOnce;
7978
 
  friend class ::CCExprResolve;
7979
 
  friend class ::CExprResolve;
 
10790
  friend class ::CMatchSyntax;
7980
10791
 
7981
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10792
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7982
10793
 
7983
10794
public:
7984
10795
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
7985
10796
  static const char *NodeId ();
 
10797
  /** Get the name of the node. Can be compared with NodeId(). */
7986
10798
  const char *NodeName () const { return NodeId (); }
7987
10799
};
7988
10800
      
7989
10801
 
7990
 
#line 7991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10802
#line 10803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7991
10803
} // closed Puma
 
10804
class CCExprResolve;
 
10805
class CExprResolve;
7992
10806
class WinIfExists;
7993
10807
class WinImportHandler;
7994
10808
class WinMacros;
7995
 
class CMatchSyntax;
7996
 
class ExtGnu;
 
10809
class WinAsm;
 
10810
class WinDeclSpecs;
 
10811
class WinMemberExplSpec;
 
10812
class WinTypeKeywords;
 
10813
class WinFriend;
7997
10814
class ExtAC;
7998
10815
class ExtACBuilderCoupling;
7999
10816
class ExtACSyntaxCoupling;
8000
10817
class ExtACTree;
8001
10818
class ExtACKeywords;
8002
 
class WinAsm;
8003
 
class WinDeclSpecs;
8004
 
class WinMemberExplSpec;
8005
 
class WinTypeKeywords;
 
10819
class ExtGnu;
8006
10820
class PragmaOnceUnitState;
8007
10821
class PragmaOnce;
8008
 
class CCExprResolve;
8009
 
class CExprResolve;
 
10822
class CMatchSyntax;
8010
10823
namespace Puma {
8011
10824
 
8012
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10825
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8013
10826
class CT_MembList : public CT_DeclList, public CSemScope {
8014
 
#line 8015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10827
#line 10828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10828
  friend class ::CCExprResolve;
 
10829
  friend class ::CExprResolve;
8015
10830
  friend class ::WinIfExists;
8016
10831
  friend class ::WinImportHandler;
8017
10832
  friend class ::WinMacros;
8018
 
  friend class ::CMatchSyntax;
8019
 
  friend class ::ExtGnu;
 
10833
  friend class ::WinAsm;
 
10834
  friend class ::WinDeclSpecs;
 
10835
  friend class ::WinMemberExplSpec;
 
10836
  friend class ::WinTypeKeywords;
 
10837
  friend class ::WinFriend;
8020
10838
  friend class ::ExtAC;
8021
10839
  friend class ::ExtACBuilderCoupling;
8022
10840
  friend class ::ExtACSyntaxCoupling;
8023
10841
  friend class ::ExtACTree;
8024
10842
  friend class ::ExtACKeywords;
8025
 
  friend class ::WinAsm;
8026
 
  friend class ::WinDeclSpecs;
8027
 
  friend class ::WinMemberExplSpec;
8028
 
  friend class ::WinTypeKeywords;
 
10843
  friend class ::ExtGnu;
8029
10844
  friend class ::PragmaOnceUnitState;
8030
10845
  friend class ::PragmaOnce;
8031
 
  friend class ::CCExprResolve;
8032
 
  friend class ::CExprResolve;
 
10846
  friend class ::CMatchSyntax;
8033
10847
 
8034
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10848
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8035
10849
 
8036
10850
public:
8037
10851
  CT_MembList (int size = 10, int incr = 10) : 
8038
10852
    CT_DeclList (size, incr) {}
 
10853
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8039
10854
  static const char *NodeId ();
 
10855
  /** Get the name of the node. Can be compared with NodeId(). */
8040
10856
  const char *NodeName () const { return NodeId (); }
 
10857
  CSemScope *SemScope () const { return (CSemScope*)this; }
8041
10858
};
8042
10859
 
8043
10860
 
8044
 
#line 8045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10861
#line 10862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8045
10862
} // closed Puma
 
10863
class CCExprResolve;
 
10864
class CExprResolve;
8046
10865
class WinIfExists;
8047
10866
class WinImportHandler;
8048
10867
class WinMacros;
8049
 
class CMatchSyntax;
8050
 
class ExtGnu;
 
10868
class WinAsm;
 
10869
class WinDeclSpecs;
 
10870
class WinMemberExplSpec;
 
10871
class WinTypeKeywords;
 
10872
class WinFriend;
8051
10873
class ExtAC;
8052
10874
class ExtACBuilderCoupling;
8053
10875
class ExtACSyntaxCoupling;
8054
10876
class ExtACTree;
8055
10877
class ExtACKeywords;
8056
 
class WinAsm;
8057
 
class WinDeclSpecs;
8058
 
class WinMemberExplSpec;
8059
 
class WinTypeKeywords;
 
10878
class ExtGnu;
8060
10879
class PragmaOnceUnitState;
8061
10880
class PragmaOnce;
8062
 
class CCExprResolve;
8063
 
class CExprResolve;
 
10881
class CMatchSyntax;
8064
10882
namespace Puma {
8065
10883
 
8066
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10884
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8067
10885
class CT_MembInitList : public CT_List, public CSemScope {
8068
 
#line 8069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10886
#line 10887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10887
  friend class ::CCExprResolve;
 
10888
  friend class ::CExprResolve;
8069
10889
  friend class ::WinIfExists;
8070
10890
  friend class ::WinImportHandler;
8071
10891
  friend class ::WinMacros;
8072
 
  friend class ::CMatchSyntax;
8073
 
  friend class ::ExtGnu;
 
10892
  friend class ::WinAsm;
 
10893
  friend class ::WinDeclSpecs;
 
10894
  friend class ::WinMemberExplSpec;
 
10895
  friend class ::WinTypeKeywords;
 
10896
  friend class ::WinFriend;
8074
10897
  friend class ::ExtAC;
8075
10898
  friend class ::ExtACBuilderCoupling;
8076
10899
  friend class ::ExtACSyntaxCoupling;
8077
10900
  friend class ::ExtACTree;
8078
10901
  friend class ::ExtACKeywords;
8079
 
  friend class ::WinAsm;
8080
 
  friend class ::WinDeclSpecs;
8081
 
  friend class ::WinMemberExplSpec;
8082
 
  friend class ::WinTypeKeywords;
 
10902
  friend class ::ExtGnu;
8083
10903
  friend class ::PragmaOnceUnitState;
8084
10904
  friend class ::PragmaOnce;
8085
 
  friend class ::CCExprResolve;
8086
 
  friend class ::CExprResolve;
 
10905
  friend class ::CMatchSyntax;
8087
10906
 
8088
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10907
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8089
10908
 
8090
10909
public:
8091
10910
  CT_MembInitList (int size = 2) : 
8092
10911
    CT_List (size, 2, CT_List::OPEN) {}
8093
10912
  static const char *NodeId ();
 
10913
  /** Get the name of the node. Can be compared with NodeId(). */
8094
10914
  const char *NodeName () const { return NodeId (); }
 
10915
  CSemScope *SemScope () const { return (CSemScope*)this; }
8095
10916
};
8096
10917
 
8097
10918
 
8098
 
#line 8099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10919
#line 10920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8099
10920
} // closed Puma
 
10921
class CCExprResolve;
 
10922
class CExprResolve;
8100
10923
class WinIfExists;
8101
10924
class WinImportHandler;
8102
10925
class WinMacros;
8103
 
class CMatchSyntax;
8104
 
class ExtGnu;
 
10926
class WinAsm;
 
10927
class WinDeclSpecs;
 
10928
class WinMemberExplSpec;
 
10929
class WinTypeKeywords;
 
10930
class WinFriend;
8105
10931
class ExtAC;
8106
10932
class ExtACBuilderCoupling;
8107
10933
class ExtACSyntaxCoupling;
8108
10934
class ExtACTree;
8109
10935
class ExtACKeywords;
8110
 
class WinAsm;
8111
 
class WinDeclSpecs;
8112
 
class WinMemberExplSpec;
8113
 
class WinTypeKeywords;
 
10936
class ExtGnu;
8114
10937
class PragmaOnceUnitState;
8115
10938
class PragmaOnce;
8116
 
class CCExprResolve;
8117
 
class CExprResolve;
8118
 
namespace Puma {
8119
 
 
8120
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10939
class CMatchSyntax;
 
10940
namespace Puma {
 
10941
 
 
10942
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10943
 
 
10944
#line 10945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10945
} // closed Puma
 
10946
 
 
10947
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10948
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10949
#include "CCExprResolveH.ah"
 
10950
#endif
 
10951
namespace Puma {
 
10952
 
 
10953
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10954
 
 
10955
#line 10956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10956
} // closed Puma
 
10957
 
 
10958
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10959
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10960
#include "CExprResolveH.ah"
 
10961
#endif
 
10962
namespace Puma {
 
10963
 
 
10964
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8121
10965
class CT_MembInit : public CT_Expression, public CSemObject {
8122
 
#line 8123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10966
#line 10967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
10967
  friend class ::CCExprResolve;
 
10968
  friend class ::CExprResolve;
8123
10969
  friend class ::WinIfExists;
8124
10970
  friend class ::WinImportHandler;
8125
10971
  friend class ::WinMacros;
8126
 
  friend class ::CMatchSyntax;
8127
 
  friend class ::ExtGnu;
 
10972
  friend class ::WinAsm;
 
10973
  friend class ::WinDeclSpecs;
 
10974
  friend class ::WinMemberExplSpec;
 
10975
  friend class ::WinTypeKeywords;
 
10976
  friend class ::WinFriend;
8128
10977
  friend class ::ExtAC;
8129
10978
  friend class ::ExtACBuilderCoupling;
8130
10979
  friend class ::ExtACSyntaxCoupling;
8131
10980
  friend class ::ExtACTree;
8132
10981
  friend class ::ExtACKeywords;
8133
 
  friend class ::WinAsm;
8134
 
  friend class ::WinDeclSpecs;
8135
 
  friend class ::WinMemberExplSpec;
8136
 
  friend class ::WinTypeKeywords;
 
10982
  friend class ::ExtGnu;
8137
10983
  friend class ::PragmaOnceUnitState;
8138
10984
  friend class ::PragmaOnce;
8139
 
  friend class ::CCExprResolve;
8140
 
  friend class ::CExprResolve;
 
10985
  friend class ::CMatchSyntax;
8141
10986
 
8142
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10987
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8143
10988
 
8144
10989
  CTree *sons[2]; // name, init
8145
10990
 
8146
10991
public:
8147
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
10992
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
10993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8148
10994
  static const char *NodeId ();
 
10995
  /** Get the name of the node. Can be compared with NodeId(). */
8149
10996
  const char *NodeName () const { return NodeId (); }
 
10997
  /** Get the number of sons. */
8150
10998
  int Sons () const { return 2; }
 
10999
  /** Get the n-th son.
 
11000
   *  \param n The index of the son.
 
11001
   *  \return The n-th son or NULL. */
8151
11002
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11003
  /** Replace a son.
 
11004
   *  \param old_son The son to replace.
 
11005
   *  \param new_son The new son. */
8152
11006
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8153
11007
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8154
11008
  }
8158
11012
   private:
8159
11013
  typedef CT_MembInit CCExprResolveExpr;
8160
11014
 
8161
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11015
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8162
11016
 public :
8163
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11017
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8164
11018
  typedef CT_MembInit CExprResolveExpr;
8165
11019
 
8166
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11020
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8167
11021
 public :
8168
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8169
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11022
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11023
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8170
11024
};
8171
11025
 
8172
11026
 
8173
 
#line 8174 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11027
#line 11028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8174
11028
} // closed Puma
 
11029
class CCExprResolve;
 
11030
class CExprResolve;
8175
11031
class WinIfExists;
8176
11032
class WinImportHandler;
8177
11033
class WinMacros;
8178
 
class CMatchSyntax;
8179
 
class ExtGnu;
 
11034
class WinAsm;
 
11035
class WinDeclSpecs;
 
11036
class WinMemberExplSpec;
 
11037
class WinTypeKeywords;
 
11038
class WinFriend;
8180
11039
class ExtAC;
8181
11040
class ExtACBuilderCoupling;
8182
11041
class ExtACSyntaxCoupling;
8183
11042
class ExtACTree;
8184
11043
class ExtACKeywords;
8185
 
class WinAsm;
8186
 
class WinDeclSpecs;
8187
 
class WinMemberExplSpec;
8188
 
class WinTypeKeywords;
 
11044
class ExtGnu;
8189
11045
class PragmaOnceUnitState;
8190
11046
class PragmaOnce;
8191
 
class CCExprResolve;
8192
 
class CExprResolve;
 
11047
class CMatchSyntax;
8193
11048
namespace Puma {
8194
11049
 
8195
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11050
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8196
11051
class CT_BaseSpecList : public CT_List {
8197
 
#line 8198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11052
#line 11053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11053
  friend class ::CCExprResolve;
 
11054
  friend class ::CExprResolve;
8198
11055
  friend class ::WinIfExists;
8199
11056
  friend class ::WinImportHandler;
8200
11057
  friend class ::WinMacros;
8201
 
  friend class ::CMatchSyntax;
8202
 
  friend class ::ExtGnu;
 
11058
  friend class ::WinAsm;
 
11059
  friend class ::WinDeclSpecs;
 
11060
  friend class ::WinMemberExplSpec;
 
11061
  friend class ::WinTypeKeywords;
 
11062
  friend class ::WinFriend;
8203
11063
  friend class ::ExtAC;
8204
11064
  friend class ::ExtACBuilderCoupling;
8205
11065
  friend class ::ExtACSyntaxCoupling;
8206
11066
  friend class ::ExtACTree;
8207
11067
  friend class ::ExtACKeywords;
8208
 
  friend class ::WinAsm;
8209
 
  friend class ::WinDeclSpecs;
8210
 
  friend class ::WinMemberExplSpec;
8211
 
  friend class ::WinTypeKeywords;
 
11068
  friend class ::ExtGnu;
8212
11069
  friend class ::PragmaOnceUnitState;
8213
11070
  friend class ::PragmaOnce;
8214
 
  friend class ::CCExprResolve;
8215
 
  friend class ::CExprResolve;
 
11071
  friend class ::CMatchSyntax;
8216
11072
 
8217
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11073
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8218
11074
 
8219
11075
public:
8220
11076
  CT_BaseSpecList (int size = 2) : 
8221
11077
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
11078
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8222
11079
  static const char *NodeId ();
 
11080
  /** Get the name of the node. Can be compared with NodeId(). */
8223
11081
  const char *NodeName () const { return NodeId (); }
8224
11082
};
8225
11083
 
8226
11084
 
8227
 
#line 8228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11085
#line 11086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8228
11086
} // closed Puma
 
11087
class CCExprResolve;
 
11088
class CExprResolve;
8229
11089
class WinIfExists;
8230
11090
class WinImportHandler;
8231
11091
class WinMacros;
8232
 
class CMatchSyntax;
8233
 
class ExtGnu;
 
11092
class WinAsm;
 
11093
class WinDeclSpecs;
 
11094
class WinMemberExplSpec;
 
11095
class WinTypeKeywords;
 
11096
class WinFriend;
8234
11097
class ExtAC;
8235
11098
class ExtACBuilderCoupling;
8236
11099
class ExtACSyntaxCoupling;
8237
11100
class ExtACTree;
8238
11101
class ExtACKeywords;
8239
 
class WinAsm;
8240
 
class WinDeclSpecs;
8241
 
class WinMemberExplSpec;
8242
 
class WinTypeKeywords;
 
11102
class ExtGnu;
8243
11103
class PragmaOnceUnitState;
8244
11104
class PragmaOnce;
8245
 
class CCExprResolve;
8246
 
class CExprResolve;
 
11105
class CMatchSyntax;
8247
11106
namespace Puma {
8248
11107
 
8249
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11108
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8250
11109
class CT_AccessSpec : public CTree {
8251
 
#line 8252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11110
#line 11111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11111
  friend class ::CCExprResolve;
 
11112
  friend class ::CExprResolve;
8252
11113
  friend class ::WinIfExists;
8253
11114
  friend class ::WinImportHandler;
8254
11115
  friend class ::WinMacros;
8255
 
  friend class ::CMatchSyntax;
8256
 
  friend class ::ExtGnu;
 
11116
  friend class ::WinAsm;
 
11117
  friend class ::WinDeclSpecs;
 
11118
  friend class ::WinMemberExplSpec;
 
11119
  friend class ::WinTypeKeywords;
 
11120
  friend class ::WinFriend;
8257
11121
  friend class ::ExtAC;
8258
11122
  friend class ::ExtACBuilderCoupling;
8259
11123
  friend class ::ExtACSyntaxCoupling;
8260
11124
  friend class ::ExtACTree;
8261
11125
  friend class ::ExtACKeywords;
8262
 
  friend class ::WinAsm;
8263
 
  friend class ::WinDeclSpecs;
8264
 
  friend class ::WinMemberExplSpec;
8265
 
  friend class ::WinTypeKeywords;
 
11126
  friend class ::ExtGnu;
8266
11127
  friend class ::PragmaOnceUnitState;
8267
11128
  friend class ::PragmaOnce;
8268
 
  friend class ::CCExprResolve;
8269
 
  friend class ::CExprResolve;
 
11129
  friend class ::CMatchSyntax;
8270
11130
 
8271
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11131
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8272
11132
 
8273
11133
  CTree *sons[2]; // access, colon
8274
11134
 
8275
11135
public:
8276
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
11136
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
11137
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8277
11138
  static const char *NodeId ();
 
11139
  /** Get the name of the node. Can be compared with NodeId(). */
8278
11140
  const char *NodeName () const { return NodeId (); }
 
11141
  /** Get the number of sons. */
8279
11142
  int Sons () const { return 2; }
 
11143
  /** Get the n-th son.
 
11144
   *  \param n The index of the son.
 
11145
   *  \return The n-th son or NULL. */
8280
11146
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8281
11147
  int Access () const { return sons[0]->token ()->type (); }
 
11148
  /** Replace a son.
 
11149
   *  \param old_son The son to replace.
 
11150
   *  \param new_son The new son. */
8282
11151
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8283
11152
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8284
11153
  }
8285
11154
};
8286
11155
 
8287
11156
 
8288
 
#line 8289 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11157
#line 11158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8289
11158
} // closed Puma
 
11159
class CCExprResolve;
 
11160
class CExprResolve;
8290
11161
class WinIfExists;
8291
11162
class WinImportHandler;
8292
11163
class WinMacros;
8293
 
class CMatchSyntax;
8294
 
class ExtGnu;
 
11164
class WinAsm;
 
11165
class WinDeclSpecs;
 
11166
class WinMemberExplSpec;
 
11167
class WinTypeKeywords;
 
11168
class WinFriend;
8295
11169
class ExtAC;
8296
11170
class ExtACBuilderCoupling;
8297
11171
class ExtACSyntaxCoupling;
8298
11172
class ExtACTree;
8299
11173
class ExtACKeywords;
8300
 
class WinAsm;
8301
 
class WinDeclSpecs;
8302
 
class WinMemberExplSpec;
8303
 
class WinTypeKeywords;
 
11174
class ExtGnu;
8304
11175
class PragmaOnceUnitState;
8305
11176
class PragmaOnce;
8306
 
class CCExprResolve;
8307
 
class CExprResolve;
 
11177
class CMatchSyntax;
8308
11178
namespace Puma {
8309
11179
 
8310
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11180
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8311
11181
class CT_BaseSpec : public CTree {
8312
 
#line 8313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11182
#line 11183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11183
  friend class ::CCExprResolve;
 
11184
  friend class ::CExprResolve;
8313
11185
  friend class ::WinIfExists;
8314
11186
  friend class ::WinImportHandler;
8315
11187
  friend class ::WinMacros;
8316
 
  friend class ::CMatchSyntax;
8317
 
  friend class ::ExtGnu;
 
11188
  friend class ::WinAsm;
 
11189
  friend class ::WinDeclSpecs;
 
11190
  friend class ::WinMemberExplSpec;
 
11191
  friend class ::WinTypeKeywords;
 
11192
  friend class ::WinFriend;
8318
11193
  friend class ::ExtAC;
8319
11194
  friend class ::ExtACBuilderCoupling;
8320
11195
  friend class ::ExtACSyntaxCoupling;
8321
11196
  friend class ::ExtACTree;
8322
11197
  friend class ::ExtACKeywords;
8323
 
  friend class ::WinAsm;
8324
 
  friend class ::WinDeclSpecs;
8325
 
  friend class ::WinMemberExplSpec;
8326
 
  friend class ::WinTypeKeywords;
 
11198
  friend class ::ExtGnu;
8327
11199
  friend class ::PragmaOnceUnitState;
8328
11200
  friend class ::PragmaOnce;
8329
 
  friend class ::CCExprResolve;
8330
 
  friend class ::CExprResolve;
 
11201
  friend class ::CMatchSyntax;
8331
11202
 
8332
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11203
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8333
11204
 
8334
11205
  CTree *sons[3]; // virtual, access, name
8335
11206
 
8336
11207
public:
8337
11208
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
8338
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
11209
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
8339
11210
  }
 
11211
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8340
11212
  static const char *NodeId ();
 
11213
  /** Get the name of the node. Can be compared with NodeId(). */
8341
11214
  const char *NodeName () const { return NodeId (); }
 
11215
  /** Get the number of sons. */
8342
11216
  int Sons () const { return CTree::Sons (sons, 3); }
 
11217
  /** Get the n-th son.
 
11218
   *  \param n The index of the son.
 
11219
   *  \return The n-th son or NULL. */
8343
11220
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
8344
11221
  int Access () const { return sons[1]->token ()->type (); }
8345
11222
  CTree *AccessSpec () const { return sons[1]; }
8346
11223
  CTree *Virtual () const { return sons[0]; }
8347
11224
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
11225
  /** Replace a son.
 
11226
   *  \param old_son The son to replace.
 
11227
   *  \param new_son The new son. */
8348
11228
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8349
11229
    CTree::ReplaceSon (sons, 3, old_son, new_son);
8350
11230
  }
8351
11231
};
8352
11232
 
8353
11233
 
8354
 
#line 8355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11234
#line 11235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8355
11235
} // closed Puma
 
11236
class CCExprResolve;
 
11237
class CExprResolve;
8356
11238
class WinIfExists;
8357
11239
class WinImportHandler;
8358
11240
class WinMacros;
8359
 
class CMatchSyntax;
8360
 
class ExtGnu;
 
11241
class WinAsm;
 
11242
class WinDeclSpecs;
 
11243
class WinMemberExplSpec;
 
11244
class WinTypeKeywords;
 
11245
class WinFriend;
8361
11246
class ExtAC;
8362
11247
class ExtACBuilderCoupling;
8363
11248
class ExtACSyntaxCoupling;
8364
11249
class ExtACTree;
8365
11250
class ExtACKeywords;
8366
 
class WinAsm;
8367
 
class WinDeclSpecs;
8368
 
class WinMemberExplSpec;
8369
 
class WinTypeKeywords;
 
11251
class ExtGnu;
8370
11252
class PragmaOnceUnitState;
8371
11253
class PragmaOnce;
8372
 
class CCExprResolve;
8373
 
class CExprResolve;
 
11254
class CMatchSyntax;
8374
11255
namespace Puma {
8375
11256
 
8376
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11257
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8377
11258
class CT_AccessDecl : public CT_Decl {
8378
 
#line 8379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11259
#line 11260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11260
  friend class ::CCExprResolve;
 
11261
  friend class ::CExprResolve;
8379
11262
  friend class ::WinIfExists;
8380
11263
  friend class ::WinImportHandler;
8381
11264
  friend class ::WinMacros;
8382
 
  friend class ::CMatchSyntax;
8383
 
  friend class ::ExtGnu;
 
11265
  friend class ::WinAsm;
 
11266
  friend class ::WinDeclSpecs;
 
11267
  friend class ::WinMemberExplSpec;
 
11268
  friend class ::WinTypeKeywords;
 
11269
  friend class ::WinFriend;
8384
11270
  friend class ::ExtAC;
8385
11271
  friend class ::ExtACBuilderCoupling;
8386
11272
  friend class ::ExtACSyntaxCoupling;
8387
11273
  friend class ::ExtACTree;
8388
11274
  friend class ::ExtACKeywords;
8389
 
  friend class ::WinAsm;
8390
 
  friend class ::WinDeclSpecs;
8391
 
  friend class ::WinMemberExplSpec;
8392
 
  friend class ::WinTypeKeywords;
 
11275
  friend class ::ExtGnu;
8393
11276
  friend class ::PragmaOnceUnitState;
8394
11277
  friend class ::PragmaOnce;
8395
 
  friend class ::CCExprResolve;
8396
 
  friend class ::CExprResolve;
 
11278
  friend class ::CMatchSyntax;
8397
11279
 
8398
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11280
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8399
11281
 
8400
11282
  CTree *sons[2]; // name, semi_colon
8401
11283
 
8402
11284
public:
8403
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
11285
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
11286
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8404
11287
  static const char *NodeId ();
 
11288
  /** Get the name of the node. Can be compared with NodeId(). */
8405
11289
  const char *NodeName () const { return NodeId (); }
 
11290
  /** Get the number of sons. */
8406
11291
  int Sons () const { return 2; }
 
11292
  /** Get the n-th son.
 
11293
   *  \param n The index of the son.
 
11294
   *  \return The n-th son or NULL. */
8407
11295
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
8408
11296
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
11297
  /** Replace a son.
 
11298
   *  \param old_son The son to replace.
 
11299
   *  \param new_son The new son. */
8409
11300
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8410
11301
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8411
11302
  }
8412
11303
};
8413
11304
 
8414
11305
 
8415
 
#line 8416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11306
#line 11307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8416
11307
} // closed Puma
 
11308
class CCExprResolve;
 
11309
class CExprResolve;
8417
11310
class WinIfExists;
8418
11311
class WinImportHandler;
8419
11312
class WinMacros;
8420
 
class CMatchSyntax;
8421
 
class ExtGnu;
 
11313
class WinAsm;
 
11314
class WinDeclSpecs;
 
11315
class WinMemberExplSpec;
 
11316
class WinTypeKeywords;
 
11317
class WinFriend;
8422
11318
class ExtAC;
8423
11319
class ExtACBuilderCoupling;
8424
11320
class ExtACSyntaxCoupling;
8425
11321
class ExtACTree;
8426
11322
class ExtACKeywords;
8427
 
class WinAsm;
8428
 
class WinDeclSpecs;
8429
 
class WinMemberExplSpec;
8430
 
class WinTypeKeywords;
 
11323
class ExtGnu;
8431
11324
class PragmaOnceUnitState;
8432
11325
class PragmaOnce;
8433
 
class CCExprResolve;
8434
 
class CExprResolve;
 
11326
class CMatchSyntax;
8435
11327
namespace Puma {
8436
11328
 
8437
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11329
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8438
11330
class CT_UsingDecl : public CT_AccessDecl {
8439
 
#line 8440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11331
#line 11332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11332
  friend class ::CCExprResolve;
 
11333
  friend class ::CExprResolve;
8440
11334
  friend class ::WinIfExists;
8441
11335
  friend class ::WinImportHandler;
8442
11336
  friend class ::WinMacros;
8443
 
  friend class ::CMatchSyntax;
8444
 
  friend class ::ExtGnu;
 
11337
  friend class ::WinAsm;
 
11338
  friend class ::WinDeclSpecs;
 
11339
  friend class ::WinMemberExplSpec;
 
11340
  friend class ::WinTypeKeywords;
 
11341
  friend class ::WinFriend;
8445
11342
  friend class ::ExtAC;
8446
11343
  friend class ::ExtACBuilderCoupling;
8447
11344
  friend class ::ExtACSyntaxCoupling;
8448
11345
  friend class ::ExtACTree;
8449
11346
  friend class ::ExtACKeywords;
8450
 
  friend class ::WinAsm;
8451
 
  friend class ::WinDeclSpecs;
8452
 
  friend class ::WinMemberExplSpec;
8453
 
  friend class ::WinTypeKeywords;
 
11347
  friend class ::ExtGnu;
8454
11348
  friend class ::PragmaOnceUnitState;
8455
11349
  friend class ::PragmaOnce;
8456
 
  friend class ::CCExprResolve;
8457
 
  friend class ::CExprResolve;
 
11350
  friend class ::CMatchSyntax;
8458
11351
 
8459
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11352
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8460
11353
 
8461
11354
  CTree *sons[2]; // using, typename
8462
11355
 
8463
11356
public:
8464
11357
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
8465
 
    sons[0] = u; sons[1] = 0; 
 
11358
    AddSon (sons[0], u); AddSon (sons[1], 0); 
8466
11359
  }
8467
11360
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
8468
 
    sons[0] = u; sons[1] = t; 
 
11361
    AddSon (sons[0], u); AddSon (sons[1], t); 
8469
11362
  }
 
11363
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8470
11364
  static const char *NodeId ();
 
11365
  /** Get the name of the node. Can be compared with NodeId(). */
8471
11366
  const char *NodeName () const { return NodeId (); }
 
11367
  /** Get the number of sons. */
8472
11368
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
11369
  /** Get the n-th son.
 
11370
   *  \param n The index of the son.
 
11371
   *  \return The n-th son or NULL. */
8473
11372
  CTree *Son (int n) const {
8474
11373
    int num = CTree::Sons (sons, 2);
8475
11374
    CTree *result = CTree::Son (sons, 2, n);
8476
11375
    return result ? result : CT_AccessDecl::Son (n-num);
8477
11376
  }
8478
11377
  CTree *Typename () const { return sons[1]; }
 
11378
  /** Replace a son.
 
11379
   *  \param old_son The son to replace.
 
11380
   *  \param new_son The new son. */
8479
11381
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8480
11382
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8481
11383
    CT_AccessDecl::ReplaceSon (old_son, new_son);
8489
11391
/*****************************************************************************/
8490
11392
 
8491
11393
 
8492
 
#line 8493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11394
#line 11395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8493
11395
} // closed Puma
 
11396
class CCExprResolve;
 
11397
class CExprResolve;
8494
11398
class WinIfExists;
8495
11399
class WinImportHandler;
8496
11400
class WinMacros;
8497
 
class CMatchSyntax;
8498
 
class ExtGnu;
 
11401
class WinAsm;
 
11402
class WinDeclSpecs;
 
11403
class WinMemberExplSpec;
 
11404
class WinTypeKeywords;
 
11405
class WinFriend;
8499
11406
class ExtAC;
8500
11407
class ExtACBuilderCoupling;
8501
11408
class ExtACSyntaxCoupling;
8502
11409
class ExtACTree;
8503
11410
class ExtACKeywords;
8504
 
class WinAsm;
8505
 
class WinDeclSpecs;
8506
 
class WinMemberExplSpec;
8507
 
class WinTypeKeywords;
 
11411
class ExtGnu;
8508
11412
class PragmaOnceUnitState;
8509
11413
class PragmaOnce;
8510
 
class CCExprResolve;
8511
 
class CExprResolve;
 
11414
class CMatchSyntax;
8512
11415
namespace Puma {
8513
11416
 
8514
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11417
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8515
11418
class CT_Any : public CTree {
8516
 
#line 8517 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11419
#line 11420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11420
  friend class ::CCExprResolve;
 
11421
  friend class ::CExprResolve;
8517
11422
  friend class ::WinIfExists;
8518
11423
  friend class ::WinImportHandler;
8519
11424
  friend class ::WinMacros;
8520
 
  friend class ::CMatchSyntax;
8521
 
  friend class ::ExtGnu;
 
11425
  friend class ::WinAsm;
 
11426
  friend class ::WinDeclSpecs;
 
11427
  friend class ::WinMemberExplSpec;
 
11428
  friend class ::WinTypeKeywords;
 
11429
  friend class ::WinFriend;
8522
11430
  friend class ::ExtAC;
8523
11431
  friend class ::ExtACBuilderCoupling;
8524
11432
  friend class ::ExtACSyntaxCoupling;
8525
11433
  friend class ::ExtACTree;
8526
11434
  friend class ::ExtACKeywords;
8527
 
  friend class ::WinAsm;
8528
 
  friend class ::WinDeclSpecs;
8529
 
  friend class ::WinMemberExplSpec;
8530
 
  friend class ::WinTypeKeywords;
 
11435
  friend class ::ExtGnu;
8531
11436
  friend class ::PragmaOnceUnitState;
8532
11437
  friend class ::PragmaOnce;
8533
 
  friend class ::CCExprResolve;
8534
 
  friend class ::CExprResolve;
 
11438
  friend class ::CMatchSyntax;
8535
11439
 
8536
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11440
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8537
11441
 
8538
11442
  CTree *sons[2]; // keyword, extension
8539
11443
 
8540
11444
public:
8541
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
11445
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
11446
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8542
11447
  static const char *NodeId ();
 
11448
  /** Get the name of the node. Can be compared with NodeId(). */
8543
11449
  const char *NodeName () const { return NodeId (); }
 
11450
  /** Get the number of sons. */
8544
11451
  int Sons () const { return CTree::Sons (sons, 2); }
 
11452
  /** Get the n-th son.
 
11453
   *  \param n The index of the son.
 
11454
   *  \return The n-th son or NULL. */
8545
11455
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11456
  /** Replace a son.
 
11457
   *  \param old_son The son to replace.
 
11458
   *  \param new_son The new son. */
8546
11459
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8547
11460
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8548
11461
  }
8551
11464
};
8552
11465
 
8553
11466
 
8554
 
#line 8555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11467
#line 11468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8555
11468
} // closed Puma
 
11469
class CCExprResolve;
 
11470
class CExprResolve;
8556
11471
class WinIfExists;
8557
11472
class WinImportHandler;
8558
11473
class WinMacros;
8559
 
class CMatchSyntax;
8560
 
class ExtGnu;
 
11474
class WinAsm;
 
11475
class WinDeclSpecs;
 
11476
class WinMemberExplSpec;
 
11477
class WinTypeKeywords;
 
11478
class WinFriend;
8561
11479
class ExtAC;
8562
11480
class ExtACBuilderCoupling;
8563
11481
class ExtACSyntaxCoupling;
8564
11482
class ExtACTree;
8565
11483
class ExtACKeywords;
8566
 
class WinAsm;
8567
 
class WinDeclSpecs;
8568
 
class WinMemberExplSpec;
8569
 
class WinTypeKeywords;
 
11484
class ExtGnu;
8570
11485
class PragmaOnceUnitState;
8571
11486
class PragmaOnce;
8572
 
class CCExprResolve;
8573
 
class CExprResolve;
 
11487
class CMatchSyntax;
8574
11488
namespace Puma {
8575
11489
 
8576
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11490
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8577
11491
class CT_AnyList : public CT_Any {
8578
 
#line 8579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11492
#line 11493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11493
  friend class ::CCExprResolve;
 
11494
  friend class ::CExprResolve;
8579
11495
  friend class ::WinIfExists;
8580
11496
  friend class ::WinImportHandler;
8581
11497
  friend class ::WinMacros;
8582
 
  friend class ::CMatchSyntax;
8583
 
  friend class ::ExtGnu;
 
11498
  friend class ::WinAsm;
 
11499
  friend class ::WinDeclSpecs;
 
11500
  friend class ::WinMemberExplSpec;
 
11501
  friend class ::WinTypeKeywords;
 
11502
  friend class ::WinFriend;
8584
11503
  friend class ::ExtAC;
8585
11504
  friend class ::ExtACBuilderCoupling;
8586
11505
  friend class ::ExtACSyntaxCoupling;
8587
11506
  friend class ::ExtACTree;
8588
11507
  friend class ::ExtACKeywords;
8589
 
  friend class ::WinAsm;
8590
 
  friend class ::WinDeclSpecs;
8591
 
  friend class ::WinMemberExplSpec;
8592
 
  friend class ::WinTypeKeywords;
 
11508
  friend class ::ExtGnu;
8593
11509
  friend class ::PragmaOnceUnitState;
8594
11510
  friend class ::PragmaOnce;
8595
 
  friend class ::CCExprResolve;
8596
 
  friend class ::CExprResolve;
 
11511
  friend class ::CMatchSyntax;
8597
11512
 
8598
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11513
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8599
11514
 
8600
11515
public:
8601
11516
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
11517
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8602
11518
  static const char *NodeId ();
 
11519
  /** Get the name of the node. Can be compared with NodeId(). */
8603
11520
  const char *NodeName () const { return NodeId (); }
8604
11521
};
8605
11522
 
8606
11523
 
8607
 
#line 8608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11524
#line 11525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8608
11525
} // closed Puma
 
11526
class CCExprResolve;
 
11527
class CExprResolve;
8609
11528
class WinIfExists;
8610
11529
class WinImportHandler;
8611
11530
class WinMacros;
8612
 
class CMatchSyntax;
8613
 
class ExtGnu;
 
11531
class WinAsm;
 
11532
class WinDeclSpecs;
 
11533
class WinMemberExplSpec;
 
11534
class WinTypeKeywords;
 
11535
class WinFriend;
8614
11536
class ExtAC;
8615
11537
class ExtACBuilderCoupling;
8616
11538
class ExtACSyntaxCoupling;
8617
11539
class ExtACTree;
8618
11540
class ExtACKeywords;
8619
 
class WinAsm;
8620
 
class WinDeclSpecs;
8621
 
class WinMemberExplSpec;
8622
 
class WinTypeKeywords;
 
11541
class ExtGnu;
8623
11542
class PragmaOnceUnitState;
8624
11543
class PragmaOnce;
8625
 
class CCExprResolve;
8626
 
class CExprResolve;
 
11544
class CMatchSyntax;
8627
11545
namespace Puma {
8628
11546
 
8629
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11547
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8630
11548
class CT_AnyExtension : public CTree, public CSemValue {
8631
 
#line 8632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11549
#line 11550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11550
  friend class ::CCExprResolve;
 
11551
  friend class ::CExprResolve;
8632
11552
  friend class ::WinIfExists;
8633
11553
  friend class ::WinImportHandler;
8634
11554
  friend class ::WinMacros;
8635
 
  friend class ::CMatchSyntax;
8636
 
  friend class ::ExtGnu;
 
11555
  friend class ::WinAsm;
 
11556
  friend class ::WinDeclSpecs;
 
11557
  friend class ::WinMemberExplSpec;
 
11558
  friend class ::WinTypeKeywords;
 
11559
  friend class ::WinFriend;
8637
11560
  friend class ::ExtAC;
8638
11561
  friend class ::ExtACBuilderCoupling;
8639
11562
  friend class ::ExtACSyntaxCoupling;
8640
11563
  friend class ::ExtACTree;
8641
11564
  friend class ::ExtACKeywords;
8642
 
  friend class ::WinAsm;
8643
 
  friend class ::WinDeclSpecs;
8644
 
  friend class ::WinMemberExplSpec;
8645
 
  friend class ::WinTypeKeywords;
 
11565
  friend class ::ExtGnu;
8646
11566
  friend class ::PragmaOnceUnitState;
8647
11567
  friend class ::PragmaOnce;
8648
 
  friend class ::CCExprResolve;
8649
 
  friend class ::CExprResolve;
 
11568
  friend class ::CMatchSyntax;
8650
11569
 
8651
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11570
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8652
11571
 
8653
11572
  CTree *sons[5]; // open, string, comma, cond, close
8654
11573
 
8655
11574
public:
8656
11575
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
8657
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
11576
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
11577
    AddSon (sons[3], c); AddSon (sons[4], cr); 
8658
11578
  }
 
11579
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8659
11580
  static const char *NodeId ();
 
11581
  /** Get the name of the node. Can be compared with NodeId(). */
8660
11582
  const char *NodeName () const { return NodeId (); }
 
11583
  /** Get the number of sons. */
8661
11584
  int Sons () const { return CTree::Sons (sons, 5); }
 
11585
  /** Get the n-th son.
 
11586
   *  \param n The index of the son.
 
11587
   *  \return The n-th son or NULL. */
8662
11588
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
11589
  /** Replace a son.
 
11590
   *  \param old_son The son to replace.
 
11591
   *  \param new_son The new son. */
8663
11592
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8664
11593
    CTree::ReplaceSon (sons, 5, old_son, new_son);
8665
11594
  }
8673
11602
};
8674
11603
 
8675
11604
 
8676
 
#line 8677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11605
#line 11606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
8677
11606
} // closed Puma
 
11607
class CCExprResolve;
 
11608
class CExprResolve;
8678
11609
class WinIfExists;
8679
11610
class WinImportHandler;
8680
11611
class WinMacros;
8681
 
class CMatchSyntax;
8682
 
class ExtGnu;
 
11612
class WinAsm;
 
11613
class WinDeclSpecs;
 
11614
class WinMemberExplSpec;
 
11615
class WinTypeKeywords;
 
11616
class WinFriend;
8683
11617
class ExtAC;
8684
11618
class ExtACBuilderCoupling;
8685
11619
class ExtACSyntaxCoupling;
8686
11620
class ExtACTree;
8687
11621
class ExtACKeywords;
8688
 
class WinAsm;
8689
 
class WinDeclSpecs;
8690
 
class WinMemberExplSpec;
8691
 
class WinTypeKeywords;
 
11622
class ExtGnu;
8692
11623
class PragmaOnceUnitState;
8693
11624
class PragmaOnce;
8694
 
class CCExprResolve;
8695
 
class CExprResolve;
 
11625
class CMatchSyntax;
8696
11626
namespace Puma {
8697
11627
 
8698
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11628
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8699
11629
class CT_AnyCondition : public CTree {
8700
 
#line 8701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11630
#line 11631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11631
  friend class ::CCExprResolve;
 
11632
  friend class ::CExprResolve;
8701
11633
  friend class ::WinIfExists;
8702
11634
  friend class ::WinImportHandler;
8703
11635
  friend class ::WinMacros;
8704
 
  friend class ::CMatchSyntax;
8705
 
  friend class ::ExtGnu;
 
11636
  friend class ::WinAsm;
 
11637
  friend class ::WinDeclSpecs;
 
11638
  friend class ::WinMemberExplSpec;
 
11639
  friend class ::WinTypeKeywords;
 
11640
  friend class ::WinFriend;
8706
11641
  friend class ::ExtAC;
8707
11642
  friend class ::ExtACBuilderCoupling;
8708
11643
  friend class ::ExtACSyntaxCoupling;
8709
11644
  friend class ::ExtACTree;
8710
11645
  friend class ::ExtACKeywords;
8711
 
  friend class ::WinAsm;
8712
 
  friend class ::WinDeclSpecs;
8713
 
  friend class ::WinMemberExplSpec;
8714
 
  friend class ::WinTypeKeywords;
 
11646
  friend class ::ExtGnu;
8715
11647
  friend class ::PragmaOnceUnitState;
8716
11648
  friend class ::PragmaOnce;
8717
 
  friend class ::CCExprResolve;
8718
 
  friend class ::CExprResolve;
 
11649
  friend class ::CMatchSyntax;
8719
11650
 
8720
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11651
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8721
11652
 
8722
11653
  CTree *sons[3]; // arg1, arg2, arg3
8723
11654
 
8724
11655
public:
8725
11656
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
8726
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
11657
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
8727
11658
  }
 
11659
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8728
11660
  static const char *NodeId ();
 
11661
  /** Get the name of the node. Can be compared with NodeId(). */
8729
11662
  const char *NodeName () const { return NodeId (); }
 
11663
  /** Get the number of sons. */
8730
11664
  int Sons () const { return CTree::Sons (sons, 3); }
 
11665
  /** Get the n-th son.
 
11666
   *  \param n The index of the son.
 
11667
   *  \return The n-th son or NULL. */
8731
11668
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
11669
  /** Replace a son.
 
11670
   *  \param old_son The son to replace.
 
11671
   *  \param new_son The new son. */
8732
11672
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8733
11673
    CTree::ReplaceSon (sons, 3, old_son, new_son);
8734
11674
  }
8739
11679
 
8740
11680
#endif /* __CTree_h__ */
8741
11681
 
8742
 
#line 8743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
8743
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
8744
 
 
8745
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8746
 
 
8747
 
#line 8748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
8748
 
 
8749
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
8750
 
/*** begin of aspect includes ***/
8751
 
#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__)
8752
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
11682
#line 11683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
 
11683
 
 
11684
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_inc_Puma_CTree_h__
 
11685
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
11686
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
11687
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
11688
#include "CCExprResolveCC.ah"
 
11689
#endif
 
11690
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11691
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11692
#include "ExtACTree.ah"
 
11693
#endif
 
11694
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11695
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11696
#include "ExtGnu.ah"
 
11697
#endif
 
11698
#endif
 
11699
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11700
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11701
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11702
#include "CCExprResolveH.ah"
 
11703
#endif
 
11704
#endif
 
11705
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
11706
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
11707
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
11708
#include "CExprResolveCC.ah"
 
11709
#endif
 
11710
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11711
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11712
#include "ExtACTree.ah"
 
11713
#endif
 
11714
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11715
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11716
#include "ExtGnu.ah"
 
11717
#endif
 
11718
#endif
 
11719
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11720
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11721
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11722
#include "CExprResolveH.ah"
 
11723
#endif
 
11724
#endif
 
11725
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
11726
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
11727
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
8753
11728
#include "WinIfExists.ah"
8754
11729
#endif
8755
 
#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__)
8756
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
11730
#endif
 
11731
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
11732
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
11733
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8757
11734
#include "WinImportHandler.ah"
8758
11735
#endif
8759
 
#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__)
8760
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
 
11736
#endif
 
11737
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
11738
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
11739
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
8761
11740
#include "WinMacros.ah"
8762
11741
#endif
8763
 
#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__)
8764
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
8765
 
#include "CMatchSyntax.ah"
8766
 
#endif
8767
 
#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__)
8768
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
8769
 
#include "ExtGnu.ah"
8770
 
#endif
8771
 
#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__)
8772
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
 
11742
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11743
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11744
#include "PragmaOnceUnitState.ah"
 
11745
#endif
 
11746
#endif
 
11747
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
11748
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
11749
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
11750
#include "WinAsm.ah"
 
11751
#endif
 
11752
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11753
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11754
#include "ExtACTree.ah"
 
11755
#endif
 
11756
#endif
 
11757
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
11758
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
11759
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
11760
#include "WinDeclSpecs.ah"
 
11761
#endif
 
11762
#endif
 
11763
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
11764
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
11765
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
11766
#include "WinMemberExplSpec.ah"
 
11767
#endif
 
11768
#endif
 
11769
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
11770
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
11771
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
11772
#include "WinTypeKeywords.ah"
 
11773
#endif
 
11774
#endif
 
11775
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
11776
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
11777
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
11778
#include "WinFriend.ah"
 
11779
#endif
 
11780
#endif
 
11781
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
11782
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
11783
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
8773
11784
#include "ExtAC.ah"
8774
11785
#endif
8775
 
#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__)
8776
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
11786
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11787
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11788
#include "ExtACTree.ah"
 
11789
#endif
 
11790
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11791
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11792
#include "ExtACKeywords.ah"
 
11793
#endif
 
11794
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11795
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11796
#include "ExtGnu.ah"
 
11797
#endif
 
11798
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11799
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11800
#include "PragmaOnceUnitState.ah"
 
11801
#endif
 
11802
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11803
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11804
#include "CMatchSyntax.ah"
 
11805
#endif
 
11806
#endif
 
11807
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
11808
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
11809
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
8777
11810
#include "ExtACBuilderH.ah"
8778
11811
#endif
8779
 
#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__)
8780
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
11812
#endif
 
11813
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
11814
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
11815
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
8781
11816
#include "ExtACBuilderCC.ah"
8782
11817
#endif
8783
 
#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__)
8784
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
11818
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11819
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11820
#include "ExtACTree.ah"
 
11821
#endif
 
11822
#endif
 
11823
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
11824
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
11825
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
8785
11826
#include "ExtACSyntaxH.ah"
8786
11827
#endif
8787
 
#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__)
8788
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
11828
#endif
 
11829
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
11830
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
11831
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
8789
11832
#include "ExtACSyntaxCC.ah"
8790
11833
#endif
8791
 
#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__)
8792
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11834
#endif
 
11835
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11836
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11837
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
8793
11838
#include "ExtACTree.ah"
8794
11839
#endif
8795
 
#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__)
8796
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11840
#endif
 
11841
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11842
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11843
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8797
11844
#include "ExtACKeywords.ah"
8798
11845
#endif
8799
 
#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__)
8800
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
11846
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11847
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11848
#include "PragmaOnceUnitState.ah"
 
11849
#endif
 
11850
#endif
 
11851
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11852
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11853
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11854
#include "ExtACTree.ah"
 
11855
#endif
 
11856
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11857
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11858
#include "ExtGnu.ah"
 
11859
#endif
 
11860
#endif
 
11861
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
11862
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11863
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11864
#include "ExtACTree.ah"
 
11865
#endif
 
11866
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
11867
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
11868
#include "ExtGnuCSemDeclSpecs.ah"
 
11869
#endif
 
11870
#endif
 
11871
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11872
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11873
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11874
#include "PragmaOnceUnitState.ah"
 
11875
#endif
 
11876
#endif
 
11877
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
11878
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11879
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11880
#include "PragmaOnceUnitState.ah"
 
11881
#endif
 
11882
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
11883
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
11884
#include "PragmaOnce.ah"
 
11885
#endif
 
11886
#endif
 
11887
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
11888
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
11889
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
8801
11890
#include "TraceSyntax.ah"
8802
11891
#endif
8803
 
#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__)
8804
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
8805
 
#include "WinAsm.ah"
8806
 
#endif
8807
 
#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__)
8808
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
8809
 
#include "WinDeclSpecs.ah"
8810
 
#endif
8811
 
#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__)
8812
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
8813
 
#include "WinMemberExplSpec.ah"
8814
 
#endif
8815
 
#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__)
8816
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
8817
 
#include "WinTypeKeywords.ah"
8818
 
#endif
8819
 
#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__)
8820
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
8821
 
#include "PragmaOnceUnitState.ah"
8822
 
#endif
8823
 
#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__)
8824
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8825
 
#include "PragmaOnce.ah"
8826
 
#endif
8827
 
#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__)
8828
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
8829
 
#include "CCExprResolveH.ah"
8830
 
#endif
8831
 
#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__)
8832
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
8833
 
#include "CCExprResolveCC.ah"
8834
 
#endif
8835
 
#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__)
8836
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
8837
 
#include "CExprResolveH.ah"
8838
 
#endif
8839
 
#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__)
8840
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
8841
 
#include "CExprResolveCC.ah"
8842
 
#endif
8843
 
/*** end of aspect includes ***/
8844
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
8845
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
8846
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
 
11892
#endif
 
11893
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11894
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11895
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11896
#include "CMatchSyntax.ah"
 
11897
#endif
 
11898
#endif
 
11899
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
11900
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_inc_Puma_CTree_h__
 
11901
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_inc_Puma_CTree_h__