~ubuntu-branches/ubuntu/jaunty/aspectc++/jaunty

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/src/PreParser.cc

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-07-07 14:41:02 UTC
  • mfrom: (1.1.3 upstream) (6.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080707144102-lzml7t07f3sl00r5
Tags: 1.0pre4~svn.20080711-1
* new upstream snapshot.
* include all upstream documentation. Clarifying emails regarding
  licensing has been included into debian/copyright.
* reformat description following recomendations of
  http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description
  (Closes: #480316)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
3
 
#ifndef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
4
 
#define __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
5
 
#define __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreParser_cc__
6
 
#endif // __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
7
 
 
8
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
9
 
 
10
 
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
3
#ifndef __ac_FIRST__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1__
 
4
#define __ac_FIRST__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1__
 
5
#define __ac_FIRST_FILE__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_src_PreParser_cc__
 
6
#endif // __ac_FIRST__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1__
 
7
 
 
8
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
9
 
 
10
#line 11 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11
11
 
12
12
#ifndef __ac_h_
13
13
#define __ac_h_
40
40
    typedef typename TL::type Type;
41
41
    typedef typename Referred<Type>::type ReferredType;
42
42
  };
 
43
  template <typename T> int ttest(...);
 
44
  template <typename T> char ttest(typename T::__AttrTypes const volatile *);
 
45
  template<typename T> struct HasTypeInfo {
 
46
    enum { RET=((sizeof(ttest<T>(0))==1)?1:0) };
 
47
  };
 
48
  template<typename T, int HAVE = HasTypeInfo<T>::RET> struct TypeInfo {
 
49
    enum { AVAILABLE = 0 };
 
50
  };
 
51
  template<typename T> struct TypeInfo<T, 1> {
 
52
    enum { AVAILABLE = 1 };
 
53
    enum { ELEMENTS = T::__AttrTypes::ARGS };
 
54
    template<int I>
 
55
    struct Member : public AC::Arg<typename T::__AttrTypes,I> {};
 
56
    template<int I>
 
57
    static typename Member<I>::ReferredType* member (T* obj) {
 
58
      return (typename Member<I>::ReferredType*)obj->__attr (I);
 
59
    }
 
60
    static const char *member_name (T &obj, int i) {
 
61
      return obj.__attr_name (i);
 
62
    }
 
63
         };
43
64
  template <class Aspect, int Index>
44
65
  struct CFlow {
45
66
    static int &instance () {
56
77
#endif // __cplusplus
57
78
#endif // __ac_h_
58
79
 
59
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
80
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
60
81
 
61
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
82
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
62
83
/* Driver template for the LEMON parser generator.
63
84
** Copyright 1991-1995 by D. Richard Hipp.
64
85
**
85
106
#line 27 "cpp/PreParser.lem"
86
107
 
87
108
 
88
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
109
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/List.h"
89
110
// This file is part of PUMA.
90
111
// Copyright (C) 1999-2003  The PUMA developer team.
91
112
//                                                                
107
128
#ifndef __list_h__
108
129
#define __list_h__
109
130
 
 
131
/** \file
 
132
 *  Double-linked list implementation. */
 
133
 
110
134
 
111
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
135
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ListElement.h"
112
136
// This file is part of PUMA.
113
137
// Copyright (C) 1999-2003  The PUMA developer team.
114
138
//                                                                
130
154
#ifndef __list_element_h__
131
155
#define __list_element_h__
132
156
 
133
 
// Base class for objects that may be inserted into a List. Lists
134
 
// autonomously delete or copy list element. So it's necessary to
135
 
// define a destructor and a duplicate method in the derived
136
 
// classes.
 
157
/** \file
 
158
 *  Double-linked list element. */
137
159
 
138
160
#include <assert.h>
139
161
 
143
165
class List;
144
166
 
145
167
 
146
 
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
168
/** \class ListElement ListElement.h Puma/ListElement.h
 
169
 *  Double-linked list element type to be used as elements
 
170
 *  for Puma::List. To be derived for concrete list elements. */
 
171
 
 
172
#line 173 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
147
173
} // closed Puma
148
174
class CCExprResolve;
149
175
class CExprResolve;
166
192
class CMatchSyntax;
167
193
namespace Puma {
168
194
 
169
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
195
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ListElement.h"
170
196
class ListElement {
171
 
#line 172 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
197
#line 198 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
172
198
  friend class ::CCExprResolve;
173
199
  friend class ::CExprResolve;
174
200
  friend class ::WinIfExists;
189
215
  friend class ::PragmaOnce;
190
216
  friend class ::CMatchSyntax;
191
217
 
192
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
218
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ListElement.h"
193
219
 
194
220
  friend class List;
195
221
 
198
224
  ListElement *_prev;
199
225
 
200
226
public:
 
227
  /** Constructor. */
201
228
  ListElement () : _belonging_to ((List*)0) {}
 
229
  /** Destructor. */
202
230
  virtual ~ListElement () { assert (! _belonging_to); };
203
231
 
 
232
  /** Duplicate this element. */
204
233
  virtual ListElement *duplicate () = 0;
 
234
  /** Get the list this element belongs to. 
 
235
   *  \return The list of NULL if not in a list. */
205
236
  List *belonging_to () const { return _belonging_to; }
 
237
public:
 
238
  typedef AC::TL<Puma::List *,AC::TL<Puma::ListElement *,AC::TL<Puma::ListElement *,AC::TLE > > > __AttrTypes;
 
239
  const char *__attr_name (unsigned i) const {
 
240
    static const char *names[] = { "_belonging_to", "_next", "_prev" }; return names[i];
 
241
  }
 
242
  const void *__attr (unsigned __i) const {
 
243
    switch (__i) { case 0: return &_belonging_to; case 1: return &_next; case 2: return &_prev; default: return 0; }
 
244
  }
 
245
#line 54 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ListElement.h"
206
246
};
207
247
 
208
248
 
210
250
 
211
251
#endif /* __list_element_h__ */
212
252
 
213
 
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
253
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/List.h"
214
254
namespace Puma {
215
255
 
216
256
 
 
257
/** \class List List.h Puma/List.h
 
258
 *  Double-linked list implementation. */
217
259
 
218
 
#line 219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
260
#line 261 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
219
261
} // closed Puma
220
262
class CCExprResolve;
221
263
class CExprResolve;
238
280
class CMatchSyntax;
239
281
namespace Puma {
240
282
 
241
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
283
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/List.h"
242
284
class List {
243
 
#line 244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
285
#line 286 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
244
286
  friend class ::CCExprResolve;
245
287
  friend class ::CExprResolve;
246
288
  friend class ::WinIfExists;
261
303
  friend class ::PragmaOnce;
262
304
  friend class ::CMatchSyntax;
263
305
 
264
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
306
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/List.h"
265
307
 
266
308
  ListElement *_first;
267
309
  ListElement *_last;
268
310
 
269
311
public:
 
312
  /** Constructor. */
270
313
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
271
 
  List (const List &);
 
314
  /** Copy-constructor.
 
315
   *  \param copy The list to copy. */
 
316
  List (const List &copy);
 
317
  /** Destructor. Destroys the list elements. */
272
318
  ~List();
273
319
 
274
 
  List &operator = (const List &);
275
 
  List &operator += (const List &);
276
 
  List operator + (const List &);
 
320
  /** Assignment operator.
 
321
   *  \param copy The list to copy. */
 
322
  List &operator = (const List &copy);
 
323
  /** Append the given list.
 
324
   *  \param list The list to append. */
 
325
  List &operator += (const List &list);
 
326
  /** Create a new list containing the elements of this
 
327
   *  list followed by the elements of the given list. 
 
328
   *  \param list The other list. */
 
329
  List operator + (const List &list);
277
330
 
 
331
  /** Destroy the list elements. */
278
332
  void clear ();
279
333
 
280
 
  void append (ListElement &);
281
 
  void prepend (ListElement &);
 
334
  /** Append an element to the list. 
 
335
   *  \param element The element. */
 
336
  void append (ListElement &element);
 
337
  /** Prepend an element to the list. 
 
338
   *  \param element The element. */
 
339
  void prepend (ListElement &element);
 
340
  /** Insert an element at the given list position. 
 
341
   *  \param at A list element where to insert the element. 
 
342
   *  \param element The element. */
282
343
  void insert (ListElement *at, ListElement &element);
 
344
  /** Remove the given element from the list.
 
345
   *  \param element The list element. */
283
346
  void remove (ListElement *element);
 
347
  /** Remove and destroy all elements between the
 
348
   *  given list elements.
 
349
   *  \param from The first list element to kill.
 
350
   *  \param to The last list element to kill. */
284
351
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
285
352
   { List discard; cut (discard, from, to); }
286
353
 
 
354
  /** Cut all elements between the given list elements.
 
355
   *  \param out The container for the cutted elements (are appended).
 
356
   *  \param from The first list element to cut.
 
357
   *  \param to The last list element to cut. */
287
358
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
288
 
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
289
 
  List *copy (ListElement *from = (ListElement*)0, 
290
 
              ListElement *to = (ListElement*)0);
 
359
  /** Copy all elements between the given list elements.
 
360
   *  \param from The first list element to cut.
 
361
   *  \param to The last list element to cut. 
 
362
   *  \return A new list containing the copied elements. */
 
363
  List *copy (ListElement *from = (ListElement*)0, ListElement *to = (ListElement*)0);
 
364
  /** Insert copies of the elements of the given list at
 
365
   *  the given list position.
 
366
   *  \param at The list element at which to paste the list elements.
 
367
   *  \param l The list containing the elements to paste. */
291
368
  void paste (ListElement *at, const List &l);
 
369
  /** Insert copies of the elements of the given list before
 
370
   *  the given list position.
 
371
   *  \param at The list element before which to paste the list elements.
 
372
   *  \param l The list containing the elements to paste. */
292
373
  void paste_before (ListElement *at, const List &l);
 
374
  /** Insert the elements of the given list at the given 
 
375
   *  list position. The elements are removed from the source
 
376
   *  list.
 
377
   *  \param at The list element at which to insert the list elements.
 
378
   *  \param l The list containing the elements to insert. */
293
379
  void move (ListElement *at, List &l);
 
380
  /** Insert the elements of the given list before the given 
 
381
   *  list position. The elements are removed from the source
 
382
   *  list.
 
383
   *  \param at The list element before which to insert the list elements.
 
384
   *  \param l The list containing the elements to insert. */
294
385
  void move_before (ListElement *at, List &l);
295
386
 
 
387
  /** Check if the list is empty. */
296
388
  bool empty () const { return _first == (ListElement*)0; }
 
389
  
 
390
  /** Get the first element in the list. 
 
391
   *  \return The element or NULL if list is empty. */
297
392
  const ListElement *first () const { return _first; }
 
393
  /** Get the last element in the list. 
 
394
   *  \return The element or NULL if list is empty. */
298
395
  const ListElement *last () const { return _last; }
 
396
  /** Get the next element of the given element. 
 
397
   *  \return The element or NULL if the given element is NULL. */
299
398
  const ListElement *next (const ListElement *element) const
300
399
   { return element ? element->_next : 0; }
 
400
  /** Get the previous element of the given element. 
 
401
   *  \return The element or NULL if the given element is NULL. */
301
402
  const ListElement *prev (const ListElement *element) const 
302
403
   { return element ? element->_prev : 0; }
 
404
public:
 
405
  typedef AC::TL<Puma::ListElement *,AC::TL<Puma::ListElement *,AC::TLE > > __AttrTypes;
 
406
  const char *__attr_name (unsigned i) const {
 
407
    static const char *names[] = { "_first", "_last" }; return names[i];
 
408
  }
 
409
  const void *__attr (unsigned __i) const {
 
410
    switch (__i) { case 0: return &_first; case 1: return &_last; default: return 0; }
 
411
  }
 
412
#line 129 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/List.h"
303
413
};
304
414
 
305
415
 
307
417
 
308
418
#endif /* __list_h__ */
309
419
 
310
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
420
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Unit.h"
311
421
// This file is part of PUMA.
312
422
// Copyright (C) 1999-2003  The PUMA developer team.
313
423
//                                                                
329
439
#ifndef __unit_h__
330
440
#define __unit_h__
331
441
 
332
 
 
333
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
442
/** \file
 
443
 *  Token chain abstraction. */
 
444
 
 
445
 
 
446
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Printable.h"
334
447
// This file is part of PUMA.
335
448
// Copyright (C) 1999-2003  The PUMA developer team.
336
449
//                                                                
352
465
#ifndef __printable_h__
353
466
#define __printable_h__
354
467
 
 
468
/** \file
 
469
 *  Object printing. */
 
470
 
355
471
#include <iostream>
356
472
using namespace std;
357
473
 
358
474
namespace Puma {
359
475
 
360
476
 
 
477
/** \class Printable Printable.h Puma/Printable.h
 
478
 *  Provides that possibility for an object to be 
 
479
 *  used with output streams (std::ostream). Derived 
 
480
 *  classes have to implement method Printable::print(). 
 
481
 *
 
482
 *  Example:
 
483
 *  \code
 
484
 * class Name : public Puma::Printable {
 
485
 *   const char* the_name;
 
486
 * public:
 
487
 *   Name(const char* n) : the_name(n) {}
 
488
 *   void print(ostream &os) { 
 
489
 *     os << "[name: " << the_name << "]"; 
 
490
 *   }
 
491
 * };
 
492
 *
 
493
 * Name adam("adam");
 
494
 * std::cout << adam << std::endl;  // prints "[name: adam]\n"
 
495
 *  \endcode */
361
496
 
362
 
#line 363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
497
#line 498 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
363
498
} // closed Puma
364
499
class CCExprResolve;
365
500
class CExprResolve;
382
517
class CMatchSyntax;
383
518
namespace Puma {
384
519
 
385
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
520
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Printable.h"
386
521
class Printable {
387
 
#line 388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
522
#line 523 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
388
523
  friend class ::CCExprResolve;
389
524
  friend class ::CExprResolve;
390
525
  friend class ::WinIfExists;
405
540
  friend class ::PragmaOnce;
406
541
  friend class ::CMatchSyntax;
407
542
 
408
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
543
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Printable.h"
409
544
 
410
545
public:
 
546
  /** Destructor. */
411
547
  virtual ~Printable () {}
 
548
  /** Print something on the given output stream.
 
549
   *  \param os The output stream. */
412
550
  virtual void print (ostream &os) const = 0;
 
551
public:
 
552
  typedef AC::TLE __AttrTypes;
 
553
  const char *__attr_name (unsigned i) const { return 0; }
 
554
  const void *__attr (unsigned __i) const { return 0; }
 
555
#line 57 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Printable.h"
413
556
};
414
557
 
415
558
 
 
559
/** Output stream operator for Puma::Printable objects. 
 
560
 *  Calls method Printable::print() on the output stream.
 
561
 *  \param os The output stream. 
 
562
 *  \param object The object to print. */
416
563
inline ostream &operator << (ostream &os, const Printable &object) {
417
564
  object.print (os);
418
565
  return os;
423
570
 
424
571
#endif /* __printable_h__ */
425
572
 
426
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
573
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
427
574
 
428
 
#line 429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
575
#line 576 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
429
576
 
430
577
#ifndef __ac_fwd_PragmaOnceUnitState__
431
578
#define __ac_fwd_PragmaOnceUnitState__
438
585
}
439
586
#endif
440
587
 
441
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
442
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
588
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
589
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
443
590
#endif
444
591
 
445
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
592
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
446
593
// This file is part of PUMA.
447
594
// Copyright (C) 1999-2003  The PUMA developer team.
448
595
//                                                                
474
621
 
475
622
 
476
623
 
477
 
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
624
#line 625 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
478
625
} // closed Puma
479
626
class CCExprResolve;
480
627
class CExprResolve;
497
644
class CMatchSyntax;
498
645
namespace Puma {
499
646
 
500
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
647
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
501
648
 
502
 
#line 503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
649
#line 650 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
503
650
} // closed Puma
504
651
 
505
 
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
506
 
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
652
#ifndef __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
653
#define __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
507
654
 
508
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
655
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
509
656
// This file is part of PUMA.
510
657
// Copyright (C) 1999-2003  The PUMA developer team.
511
658
//                                                                
528
675
#define __PragmaOnceUnitState__
529
676
 
530
677
 
531
 
#line 532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
678
#line 679 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
532
679
class CCExprResolve;
533
680
class CExprResolve;
534
681
class WinIfExists;
548
695
class PragmaOnce;
549
696
class CMatchSyntax;
550
697
 
551
 
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
698
#line 22 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
552
699
class PragmaOnceUnitState {
553
 
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
700
#line 701 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
554
701
 
555
702
public:
556
703
  static PragmaOnceUnitState *aspectof () {
562
709
  }
563
710
private:
564
711
 
565
 
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
712
#line 22 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
566
713
 
567
 
#line 568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
714
#line 715 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
568
715
  friend class ::CCExprResolve;
569
716
  friend class ::CExprResolve;
570
717
  friend class ::WinIfExists;
584
731
  friend class ::PragmaOnce;
585
732
  friend class ::CMatchSyntax;
586
733
 
587
 
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
734
#line 22 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
588
735
 
589
736
  /******************************************************/
590
737
  /* specific #pragma once unit state                   */
592
739
 
593
740
  // pointcut definitions
594
741
  
595
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
742
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
596
743
 
597
744
 
598
745
  
599
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
746
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
600
747
 
601
748
  
602
749
  // initialize new state flag
603
750
  
604
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
751
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
605
752
 
606
753
public: template<class JoinPoint> void __a0_after 
607
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
754
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
608
755
 
609
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
756
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
610
757
(JoinPoint *tjp)
611
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
758
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
612
759
 {
613
 
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
760
#line 761 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
614
761
 
615
762
  JoinPoint *&thisJoinPoint = tjp;
616
763
 
617
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
764
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
618
765
 
619
 
#line 620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
766
#line 767 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
620
767
 
621
768
  typedef typename JoinPoint::That __JP_That;
622
769
  typedef typename JoinPoint::Target __JP_Target;
623
770
  typedef typename JoinPoint::Result __JP_Result;
624
771
 
625
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
772
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
626
773
 
627
774
    thisJoinPoint->that ()->_once = false;
628
775
  }
629
 
#line 630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
776
#line 777 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
630
777
 
631
778
private:
632
779
 
633
 
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
780
#line 42 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
634
781
 
635
782
  
636
783
  // initialize new flag for all managed units 
637
784
  
638
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
785
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
639
786
 
640
787
public: template<class JoinPoint> void __a1_after 
641
 
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
788
#line 45 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
642
789
 
643
 
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
790
#line 45 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
644
791
(JoinPoint *tjp)
645
 
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
792
#line 45 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
646
793
 {
647
 
#line 648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
794
#line 795 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
648
795
 
649
796
  typedef typename JoinPoint::That __JP_That;
650
797
  typedef typename JoinPoint::Target __JP_Target;
651
798
  typedef typename JoinPoint::Result __JP_Result;
652
799
 
653
 
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
800
#line 45 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
654
801
 
655
802
    // go through the whole unit hash table and reset the 
656
803
    // `#pragma once' state of the units
657
804
    typename __JP_That
658
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
805
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
659
806
::UMapIter iter;
660
807
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
661
808
      (*iter).second->state ().onlyOnce (false);
662
809
  }
663
 
#line 664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
810
#line 811 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
664
811
 
665
812
private:
666
813
 
667
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
814
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
668
815
 
669
816
 
670
817
protected:
671
818
  // this aspect should never be instantiated directly
672
819
  PragmaOnceUnitState () {}
 
820
public:
 
821
  typedef AC::TLE __AttrTypes;
 
822
  const char *__attr_name (unsigned i) const { return 0; }
 
823
  const void *__attr (unsigned __i) const { return 0; }
 
824
#line 56 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
673
825
};
674
 
#line 675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
826
#line 827 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
675
827
 
676
828
namespace AC {
677
829
  template <class JoinPoint>
684
836
  }
685
837
686
838
 
687
 
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
839
#line 56 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
688
840
 
689
841
 
690
842
 
691
843
#endif /* __PragmaOnceUnitState__ */
692
844
 
693
 
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
845
#line 8 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
694
846
#endif
695
847
namespace Puma {
696
848
 
697
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
849
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
698
850
class UnitState {
699
 
#line 700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
851
#line 852 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
700
852
  friend class ::CCExprResolve;
701
853
  friend class ::CExprResolve;
702
854
  friend class ::WinIfExists;
717
869
  friend class ::PragmaOnce;
718
870
  friend class ::CMatchSyntax;
719
871
 
720
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
872
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
721
873
 
722
874
  bool _modified;
723
875
  bool _updated;
725
877
      
726
878
public:
727
879
  
728
 
#line 729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
880
#line 881 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
729
881
public: __attribute__((always_inline)) inline void __exec_old_C1();
730
882
 
731
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
883
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
732
884
UnitState ();
733
885
      
734
886
  bool isModified () const;
742
894
  void updated ();
743
895
   private:
744
896
 
745
 
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
897
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
746
898
 bool _once ;
747
899
public :
748
900
 
749
901
bool onlyOnce ( ) const { return _once ; }
750
 
void onlyOnce ( bool v ) { _once = v ; }
751
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
902
void onlyOnce ( bool v ) { _once = v ; }public:
 
903
  typedef AC::TL<bool,AC::TL<bool,AC::TL<long int,AC::TL<bool,AC::TLE > > > > __AttrTypes;
 
904
  const char *__attr_name (unsigned i) const {
 
905
    static const char *names[] = { "_modified", "_updated", "_lastModified", "_once" }; return names[i];
 
906
  }
 
907
  const void *__attr (unsigned __i) const {
 
908
    switch (__i) { case 0: return &_modified; case 1: return &_updated; case 2: return &_lastModified; case 3: return &_once; default: return 0; }
 
909
  }
 
910
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
752
911
 
753
 
#line 754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
912
#line 913 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
754
913
 
755
914
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
756
915
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
759
918
  typedef TTarget Target;
760
919
  enum { ARGS = TArgs::ARGS };
761
920
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
762
 
  static const int JPID = 3641;
 
921
  static const int JPID = 3652;
763
922
  static const AC::JPType JPTYPE = (AC::JPType)16;
764
923
  struct Res {
765
924
    typedef void Type;
773
932
};
774
933
 
775
934
 
776
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
935
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
777
936
 
778
 
#line 779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
937
#line 938 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
779
938
 
780
939
public:
781
940
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
786
945
 
787
946
}
788
947
 
789
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
948
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
790
949
};
791
950
 
792
951
 
793
 
#line 794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
952
#line 953 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
794
953
 
795
954
 
796
955
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
800
959
  typedef TTarget Target;
801
960
  enum { ARGS = TArgs::ARGS };
802
961
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
803
 
  static const int JPID = 3617;
 
962
  static const int JPID = 3628;
804
963
  static const AC::JPType JPTYPE = (AC::JPType)16;
805
964
  struct Res {
806
965
    typedef void Type;
814
973
};
815
974
 
816
975
 
817
 
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
976
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
818
977
inline UnitState::UnitState ()
819
978
 
820
 
#line 821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
979
#line 980 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
821
980
{
822
981
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
823
982
    __TJP tjp;
827
986
  
828
987
}
829
988
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
830
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
989
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitState.h"
831
990
{ _modified = false; _updated = false; _lastModified = 0; }
832
991
 
833
992
inline bool UnitState::isModified () const 
851
1010
 
852
1011
#endif /* __UnitState__ */
853
1012
 
854
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
1013
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Unit.h"
855
1014
namespace Puma {
856
1015
 
857
1016
 
858
 
 
859
 
#line 860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1017
class Token;
 
1018
 
 
1019
 
 
1020
/** \class Unit Unit.h Puma/Unit.h
 
1021
 *  Token chain abstraction of a source file or string. 
 
1022
 *  
 
1023
 *  A token unit is the result of scanning a file or string
 
1024
 *  containing recognizable source code. The unit consists
 
1025
 *  of a list of tokens that directly map to the characters
 
1026
 *  and words of the source code.
 
1027
 *
 
1028
 *  A unit can have different states, such as being modified
 
1029
 *  or not. After changing something on a unit, its state
 
1030
 *  should be set to being modified.
 
1031
 *
 
1032
 *  All source code manipulations resp. transformations provided
 
1033
 *  by Puma are based on manipulating the token chain. Tokens
 
1034
 *  can be added, moved, removed, and so on. 
 
1035
 *
 
1036
 *  Translating the token chain back to the source code text is 
 
1037
 *  done by printing the unit using method Puma::Unit::print()
 
1038
 *  or as shown in the following example.
 
1039
 *  \code 
 
1040
 * ...
 
1041
 * std::ofstream file("code.cc");
 
1042
 * file << unit;
 
1043
 * file.close();
 
1044
 *  \endcode */
 
1045
 
 
1046
#line 1047 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
860
1047
} // closed Puma
861
1048
class CCExprResolve;
862
1049
class CExprResolve;
879
1066
class CMatchSyntax;
880
1067
namespace Puma {
881
1068
 
882
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
1069
#line 60 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Unit.h"
883
1070
class Unit : public List, public Printable {
884
 
#line 885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1071
#line 1072 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
885
1072
  friend class ::CCExprResolve;
886
1073
  friend class ::CExprResolve;
887
1074
  friend class ::WinIfExists;
902
1089
  friend class ::PragmaOnce;
903
1090
  friend class ::CMatchSyntax;
904
1091
 
905
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
1092
#line 60 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Unit.h"
906
1093
 
907
1094
  char *_name;
908
1095
  UnitState _state;
909
1096
 
910
1097
public:
 
1098
  /** Constructor. */
911
1099
  Unit () : List (), _name ((char*)0) {}
 
1100
  /** Copy-constructor.
 
1101
   *  \param list The token chain to copy. */
912
1102
  Unit (const List &list) : List (list), _name ((char*)0) {}
 
1103
  /** Destructor. Destroys the tokens. */
913
1104
  virtual ~Unit ();
914
 
  virtual void name (const char *);
 
1105
  /** Set the name of the unit (usually the file name).
 
1106
   *  \param name The name. */
 
1107
  virtual void name (const char *name);
 
1108
  /** Get the name of the unit (usually the file name). */
915
1109
  char *name () const { return _name; }
 
1110
  /** Print the tokens of the unit on the given stream.
 
1111
   *  \param os The output stream. */
916
1112
  virtual void print (ostream &os) const;
 
1113
  /** Check if this is a unit for a file. */
917
1114
  virtual bool isFile () const { return false; }
 
1115
  /** Check if this is a unit for a macro expansion. */
918
1116
  virtual bool isMacroExp () const { return false; }
 
1117
  /** Get the state of the unit. */
919
1118
  UnitState &state () { return _state; }
 
1119
 
 
1120
public:
 
1121
  /** Get the first token in the unit. 
 
1122
   *  \return The token or NULL if unit is empty. */
 
1123
  Token *first () const { return (Token*)List::first(); }
 
1124
  /** Get the last token in the unit. 
 
1125
   *  \return The token or NULL if unit is empty. */
 
1126
  Token *last () const { return (Token*)List::last(); }
 
1127
  /** Get the next token of the given token. 
 
1128
   *  \return The token or NULL if the given token is NULL. */
 
1129
  Token *next (const Token *token) const { return (Token*)List::next((const ListElement*)token); }
 
1130
  /** Get the previous token of the given token. 
 
1131
   *  \return The token or NULL if the given token is NULL. */
 
1132
  Token *prev (const Token *token) const { return (Token*)List::prev((const ListElement*)token); }
 
1133
public:
 
1134
  typedef AC::TL<char *,AC::TL<Puma::UnitState,AC::TLE > > __AttrTypes;
 
1135
  const char *__attr_name (unsigned i) const {
 
1136
    static const char *names[] = { "_name", "_state" }; return names[i];
 
1137
  }
 
1138
  const void *__attr (unsigned __i) const {
 
1139
    switch (__i) { case 0: return &_name; case 1: return &_state; default: return 0; }
 
1140
  }
 
1141
#line 100 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Unit.h"
920
1142
};
921
1143
 
922
1144
 
924
1146
 
925
1147
#endif /* __unit_h__ */
926
1148
 
927
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
1149
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Token.h"
928
1150
// This file is part of PUMA.
929
1151
// Copyright (C) 1999-2003  The PUMA developer team.
930
1152
//                                                                
946
1168
#ifndef __Token_h__
947
1169
#define __Token_h__
948
1170
 
949
 
// Abstract interface of a language token. A token is created by an
950
 
// invocation of a scanner's 'scan' method. The token encapsulates a
951
 
// lexical unit of the scanned text.
 
1171
/** \file
 
1172
 *  Token abstraction. */
952
1173
 
953
1174
#include <stdlib.h>
954
1175
 
955
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1176
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/LanguageID.h"
956
1177
// This file is part of PUMA.
957
1178
// Copyright (C) 1999-2003  The PUMA developer team.
958
1179
//                                                                
980
1201
 
981
1202
 
982
1203
 
983
 
#line 984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1204
#line 1205 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
984
1205
} // closed Puma
985
1206
class CCExprResolve;
986
1207
class CExprResolve;
1003
1224
class CMatchSyntax;
1004
1225
namespace Puma {
1005
1226
 
1006
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1227
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1007
1228
class LanguageID {
1008
 
#line 1009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1229
#line 1230 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1009
1230
  friend class ::CCExprResolve;
1010
1231
  friend class ::CExprResolve;
1011
1232
  friend class ::WinIfExists;
1026
1247
  friend class ::PragmaOnce;
1027
1248
  friend class ::CMatchSyntax;
1028
1249
 
1029
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1250
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1030
1251
 
1031
1252
  const char *_id;
1032
1253
 
1036
1257
  operator const char *() const { return _id; }
1037
1258
  bool operator == (const LanguageID &id) const
1038
1259
   { return _id == (const char*)id; }
 
1260
public:
 
1261
  typedef AC::TL<const char *,AC::TLE > __AttrTypes;
 
1262
  const char *__attr_name (unsigned i) const {
 
1263
    static const char *names[] = { "_id" }; return names[i];
 
1264
  }
 
1265
  const void *__attr (unsigned __i) const {
 
1266
    switch (__i) { case 0: return &_id; default: return 0; }
 
1267
  }
 
1268
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1039
1269
};
1040
1270
 
1041
1271
 
1043
1273
 
1044
1274
#endif /* __language_id_h__ */
1045
1275
 
1046
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
1276
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Location.h"
1047
1277
// This file is part of PUMA.
1048
1278
// Copyright (C) 1999-2003  The PUMA developer team.
1049
1279
//                                                                
1066
1296
#define __location_h__
1067
1297
 
1068
1298
 
1069
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1299
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Filename.h"
1070
1300
// This file is part of PUMA.
1071
1301
// Copyright (C) 1999-2003  The PUMA developer team.
1072
1302
//                                                                
1089
1319
#define __filename_h__
1090
1320
 
1091
1321
 
1092
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1322
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1093
1323
// This file is part of PUMA.
1094
1324
// Copyright (C) 1999-2003  The PUMA developer team.
1095
1325
//                                                                
1112
1342
#define __smart_ptr_h__
1113
1343
 
1114
1344
 
1115
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1345
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1116
1346
// This file is part of PUMA.
1117
1347
// Copyright (C) 1999-2003  The PUMA developer team.
1118
1348
//                                                                
1138
1368
 
1139
1369
 
1140
1370
 
1141
 
#line 1142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1371
#line 1372 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1142
1372
} // closed Puma
1143
1373
class CCExprResolve;
1144
1374
class CExprResolve;
1161
1391
class CMatchSyntax;
1162
1392
namespace Puma {
1163
1393
 
1164
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1394
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1165
1395
class RefCnt {
1166
 
#line 1167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1396
#line 1397 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1167
1397
  friend class ::CCExprResolve;
1168
1398
  friend class ::CExprResolve;
1169
1399
  friend class ::WinIfExists;
1184
1414
  friend class ::PragmaOnce;
1185
1415
  friend class ::CMatchSyntax;
1186
1416
 
1187
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1417
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1188
1418
 
1189
1419
  int _counter;
1190
1420
 
1195
1425
  void ref () { _counter++; }
1196
1426
  void deref () { _counter--; }
1197
1427
  int counter () { return _counter; }
 
1428
public:
 
1429
  typedef AC::TL<int,AC::TLE > __AttrTypes;
 
1430
  const char *__attr_name (unsigned i) const {
 
1431
    static const char *names[] = { "_counter" }; return names[i];
 
1432
  }
 
1433
  const void *__attr (unsigned __i) const {
 
1434
    switch (__i) { case 0: return &_counter; default: return 0; }
 
1435
  }
 
1436
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1198
1437
};
1199
1438
 
1200
1439
 
1202
1441
 
1203
1442
#endif /* __ref_cnt_h__ */
1204
1443
 
1205
 
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1444
#line 24 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1206
1445
namespace Puma {
1207
1446
 
1208
1447
 
1209
1448
 
1210
 
#line 1211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1449
#line 1450 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1211
1450
} // closed Puma
1212
1451
class CCExprResolve;
1213
1452
class CExprResolve;
1230
1469
class CMatchSyntax;
1231
1470
namespace Puma {
1232
1471
 
1233
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1472
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1234
1473
class SmartPtr {
1235
 
#line 1236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1474
#line 1475 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1236
1475
  friend class ::CCExprResolve;
1237
1476
  friend class ::CExprResolve;
1238
1477
  friend class ::WinIfExists;
1253
1492
  friend class ::PragmaOnce;
1254
1493
  friend class ::CMatchSyntax;
1255
1494
 
1256
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1495
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1257
1496
 
1258
1497
  RefCnt *_data;
1259
1498
 
1268
1507
  void clear ();
1269
1508
  RefCnt *data () const { return _data; }
1270
1509
  bool is_defined () const { return _data != (RefCnt*)0; }
 
1510
public:
 
1511
  typedef AC::TL<Puma::RefCnt *,AC::TLE > __AttrTypes;
 
1512
  const char *__attr_name (unsigned i) const {
 
1513
    static const char *names[] = { "_data" }; return names[i];
 
1514
  }
 
1515
  const void *__attr (unsigned __i) const {
 
1516
    switch (__i) { case 0: return &_data; default: return 0; }
 
1517
  }
 
1518
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1271
1519
};
1272
1520
 
1273
1521
 
1275
1523
 
1276
1524
#endif /* __smart_ptr_h__ */
1277
1525
 
1278
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1526
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1279
1527
// This file is part of PUMA.
1280
1528
// Copyright (C) 1999-2003  The PUMA developer team.
1281
1529
//                                                                
1298
1546
#define __filename_info_h__
1299
1547
 
1300
1548
 
1301
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
1549
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/DString.h"
1302
1550
// This file is part of PUMA.
1303
1551
// Copyright (C) 1999-2003  The PUMA developer team.
1304
1552
//                                                                
1320
1568
#ifndef __DString_h__
1321
1569
#define __DString_h__
1322
1570
 
1323
 
 
1324
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1571
/** \file
 
1572
 *  Global hash table based string container. */
 
1573
 
 
1574
 
 
1575
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1325
1576
// This file is part of PUMA.
1326
1577
// Copyright (C) 1999-2003  The PUMA developer team.
1327
1578
//                                                                
1344
1595
#define __StrHashTable_h__
1345
1596
 
1346
1597
 
1347
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1598
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1348
1599
// This file is part of PUMA.
1349
1600
// Copyright (C) 1999-2003  The PUMA developer team.
1350
1601
//                                                                
1367
1618
#define __StrHashKey_h__
1368
1619
 
1369
1620
 
1370
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1621
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrCol.h"
1371
1622
// This file is part of PUMA.
1372
1623
// Copyright (C) 1999-2003  The PUMA developer team.
1373
1624
//                                                                
1397
1648
class Unit;
1398
1649
 
1399
1650
 
1400
 
#line 1401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1651
#line 1652 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1401
1652
} // closed Puma
1402
1653
class CCExprResolve;
1403
1654
class CExprResolve;
1420
1671
class CMatchSyntax;
1421
1672
namespace Puma {
1422
1673
 
1423
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1674
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrCol.h"
1424
1675
class StrCol {
1425
 
#line 1426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1676
#line 1677 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1426
1677
  friend class ::CCExprResolve;
1427
1678
  friend class ::CExprResolve;
1428
1679
  friend class ::WinIfExists;
1443
1694
  friend class ::PragmaOnce;
1444
1695
  friend class ::CMatchSyntax;
1445
1696
 
1446
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1697
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrCol.h"
1447
1698
 
1448
1699
protected:
1449
1700
  StrCol () {}
1464
1715
  // Duplicate a string
1465
1716
  static char *dup (const char *);
1466
1717
  static char *dup (const char *, int);
 
1718
public:
 
1719
  typedef AC::TLE __AttrTypes;
 
1720
  const char *__attr_name (unsigned i) const { return 0; }
 
1721
  const void *__attr (unsigned __i) const { return 0; }
 
1722
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrCol.h"
1467
1723
};
1468
1724
 
1469
1725
 
1471
1727
 
1472
1728
#endif /* __str_col__ */
1473
1729
 
1474
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1730
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Chain.h"
1475
1731
// This file is part of PUMA.
1476
1732
// Copyright (C) 1999-2003  The PUMA developer team.
1477
1733
//                                                                
1506
1762
 
1507
1763
 
1508
1764
 
1509
 
#line 1510 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1765
#line 1766 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1510
1766
} // closed Puma
1511
1767
class CCExprResolve;
1512
1768
class CExprResolve;
1529
1785
class CMatchSyntax;
1530
1786
namespace Puma {
1531
1787
 
1532
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1788
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Chain.h"
1533
1789
class Chain {
1534
 
#line 1535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1790
#line 1791 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1535
1791
  friend class ::CCExprResolve;
1536
1792
  friend class ::CExprResolve;
1537
1793
  friend class ::WinIfExists;
1552
1808
  friend class ::PragmaOnce;
1553
1809
  friend class ::CMatchSyntax;
1554
1810
 
1555
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1811
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Chain.h"
1556
1812
 
1557
1813
  Chain *next;
1558
1814
 
1574
1830
    c->select (next);
1575
1831
    next = c;
1576
1832
  }
 
1833
public:
 
1834
  typedef AC::TL<Puma::Chain *,AC::TLE > __AttrTypes;
 
1835
  const char *__attr_name (unsigned i) const {
 
1836
    static const char *names[] = { "next" }; return names[i];
 
1837
  }
 
1838
  const void *__attr (unsigned __i) const {
 
1839
    switch (__i) { case 0: return &next; default: return 0; }
 
1840
  }
 
1841
#line 55 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Chain.h"
1577
1842
};
1578
1843
 
1579
1844
#ifndef __puma
1616
1881
 
1617
1882
#endif /* __Chain_h__ */
1618
1883
 
1619
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1884
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1620
1885
namespace Puma {
1621
1886
 
1622
1887
 
1623
1888
 
1624
 
#line 1625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1889
#line 1890 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1625
1890
} // closed Puma
1626
1891
class CCExprResolve;
1627
1892
class CExprResolve;
1644
1909
class CMatchSyntax;
1645
1910
namespace Puma {
1646
1911
 
1647
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1912
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1648
1913
class StrHashKey : public Chain {
1649
 
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1914
#line 1915 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1650
1915
  friend class ::CCExprResolve;
1651
1916
  friend class ::CExprResolve;
1652
1917
  friend class ::WinIfExists;
1667
1932
  friend class ::PragmaOnce;
1668
1933
  friend class ::CMatchSyntax;
1669
1934
 
1670
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1935
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1671
1936
 
1672
1937
  unsigned int m_Magic;
1673
1938
  unsigned int m_Len;
1683
1948
  unsigned int getMagic () const { return m_Magic; }
1684
1949
  unsigned int length () const { return m_Len; }
1685
1950
  const char  *c_str () const { return m_Str; }
 
1951
public:
 
1952
  typedef AC::TL<unsigned int,AC::TL<unsigned int,AC::TL<const char *,AC::TLE > > > __AttrTypes;
 
1953
  const char *__attr_name (unsigned i) const {
 
1954
    static const char *names[] = { "m_Magic", "m_Len", "m_Str" }; return names[i];
 
1955
  }
 
1956
  const void *__attr (unsigned __i) const {
 
1957
    switch (__i) { case 0: return &m_Magic; case 1: return &m_Len; case 2: return &m_Str; default: return 0; }
 
1958
  }
 
1959
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1686
1960
};
1687
1961
 
1688
1962
 
1690
1964
 
1691
1965
#endif /* __StrHashKey_h__ */
1692
1966
 
1693
 
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1967
#line 23 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1694
1968
#include <assert.h>
1695
1969
 
1696
1970
namespace Puma {
1697
1971
 
1698
1972
 
1699
1973
 
1700
 
#line 1701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1974
#line 1975 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1701
1975
} // closed Puma
1702
1976
class CCExprResolve;
1703
1977
class CExprResolve;
1720
1994
class CMatchSyntax;
1721
1995
namespace Puma {
1722
1996
 
1723
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1997
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1724
1998
class StrHashTable {
1725
 
#line 1726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
1999
#line 2000 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1726
2000
  friend class ::CCExprResolve;
1727
2001
  friend class ::CExprResolve;
1728
2002
  friend class ::WinIfExists;
1743
2017
  friend class ::PragmaOnce;
1744
2018
  friend class ::CMatchSyntax;
1745
2019
 
1746
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
2020
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1747
2021
 
1748
2022
  StrHashKey *_emptyKey;
1749
2023
 
1765
2039
 
1766
2040
  StrHashKey *find (unsigned int, const char *, unsigned int);
1767
2041
  unsigned int hash (const char *, unsigned int &);
 
2042
public:
 
2043
  typedef AC::TL<Puma::StrHashKey *,AC::TL<Puma::Chain [65535],AC::TLE > > __AttrTypes;
 
2044
  const char *__attr_name (unsigned i) const {
 
2045
    static const char *names[] = { "_emptyKey", "m_Table" }; return names[i];
 
2046
  }
 
2047
  const void *__attr (unsigned __i) const {
 
2048
    switch (__i) { case 0: return &_emptyKey; case 2: return &m_Table; default: return 0; }
 
2049
  }
 
2050
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1768
2051
};
1769
2052
 
1770
2053
 
1772
2055
 
1773
2056
#endif /* __StrHashTable_h__ */
1774
2057
 
1775
 
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
2058
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/DString.h"
1776
2059
#include <assert.h>
1777
2060
 
1778
2061
namespace Puma {
1779
2062
 
1780
2063
 
 
2064
/** Global string hash table used by Puma::DString. */
1781
2065
extern StrHashTable ___str_dict;
1782
2066
 
1783
2067
 
1784
 
#line 1785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2068
/** \class DString DString.h Puma/DString.h
 
2069
 *  Global hash table based string container. */
 
2070
 
 
2071
#line 2072 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1785
2072
} // closed Puma
1786
2073
class CCExprResolve;
1787
2074
class CExprResolve;
1804
2091
class CMatchSyntax;
1805
2092
namespace Puma {
1806
2093
 
1807
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
2094
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/DString.h"
1808
2095
class DString {
1809
 
#line 1810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2096
#line 2097 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1810
2097
  friend class ::CCExprResolve;
1811
2098
  friend class ::CExprResolve;
1812
2099
  friend class ::WinIfExists;
1827
2114
  friend class ::PragmaOnce;
1828
2115
  friend class ::CMatchSyntax;
1829
2116
 
1830
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
2117
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/DString.h"
1831
2118
 
1832
2119
  StrHashKey *m_Key;
1833
2120
 
1834
2121
public:
 
2122
  /** Constructor. */
1835
2123
  DString () {
1836
2124
    m_Key = ___str_dict.empty ();
1837
2125
    assert (m_Key);
1838
2126
  }
 
2127
  /** Constructor.
 
2128
   *  \param s The string, is put into the hash table. */
1839
2129
  DString (const char *s) {
1840
2130
    if(s == 0) {
1841
2131
      m_Key = ___str_dict.empty ();
1844
2134
    }
1845
2135
    assert (m_Key);
1846
2136
  }
 
2137
  /** Copy constructor.
 
2138
   *  \param s The string to copy. */
1847
2139
  DString (const DString &s) : m_Key (s.m_Key) {
1848
2140
    assert (s.m_Key);
1849
2141
  }
 
2142
  /** Destructor. */
 
2143
  ~DString () {
 
2144
    m_Key = 0;
 
2145
  }
1850
2146
  
 
2147
  /** Assignment operator.
 
2148
   *  \param s The string to copy. */
1851
2149
  DString &operator = (const DString &s) {
1852
2150
    assert (s.m_Key);
1853
2151
    m_Key = s.m_Key;
1854
2152
    return *this;
1855
2153
  }
1856
2154
  
 
2155
  /** Assignment operator.
 
2156
   *  \param s The string to copy. */
1857
2157
  DString &operator = (const char *s) {
1858
2158
    if(s == 0) {
1859
2159
      m_Key = ___str_dict.empty ();
1864
2164
    return *this;
1865
2165
  }
1866
2166
 
 
2167
  /** Check if the given string equals this string.
 
2168
   *  \param s The string to compare with. */
1867
2169
  bool operator == (const DString &s) const { 
1868
2170
    assert (m_Key && s.m_Key);
1869
2171
    return m_Key == s.m_Key; 
1870
2172
  }
 
2173
  /** Check if the given string not equals this string.
 
2174
   *  \param s The string to compare with. */
1871
2175
  bool operator != (const DString &s) const { 
1872
2176
    assert (m_Key && s.m_Key);
1873
2177
    return m_Key != s.m_Key; 
1874
2178
  }
1875
2179
 
 
2180
  /** Get the contained C string. */
1876
2181
  const char *c_str() const { 
1877
2182
    assert (m_Key);
1878
2183
    return m_Key->c_str (); 
1879
2184
  }
 
2185
  /** Get the length of the string. */
1880
2186
  unsigned int length () const { 
1881
2187
    assert (m_Key);
1882
2188
    return m_Key->length (); 
1883
2189
  }
 
2190
  /** Check if the string is empty (length=0). */
1884
2191
  bool empty () const {
1885
2192
    assert (m_Key);
1886
2193
    return m_Key->length () == 0;
1887
2194
  }
 
2195
  /** Get the magic number of the string. */
1888
2196
  unsigned int magic () const { 
1889
2197
    assert (m_Key);
1890
2198
    return m_Key->getMagic (); 
1891
2199
  }
1892
2200
 
 
2201
  /** Get the contained C string. */
1893
2202
  operator const char *() const {
1894
2203
    assert (m_Key);
1895
2204
    return c_str ();
1896
2205
  }
1897
2206
  
 
2207
  /** Clear the global string hash table. */
1898
2208
  static void clearDict() {
1899
2209
    ___str_dict.clear ();
1900
2210
  }
 
2211
public:
 
2212
  typedef AC::TL<Puma::StrHashKey *,AC::TLE > __AttrTypes;
 
2213
  const char *__attr_name (unsigned i) const {
 
2214
    static const char *names[] = { "m_Key" }; return names[i];
 
2215
  }
 
2216
  const void *__attr (unsigned __i) const {
 
2217
    switch (__i) { case 0: return &m_Key; default: return 0; }
 
2218
  }
 
2219
#line 130 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/DString.h"
1901
2220
};
1902
2221
 
1903
2222
 
1905
2224
 
1906
2225
#endif /* __DString_h__ */
1907
2226
 
1908
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2227
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1909
2228
namespace Puma {
1910
2229
 
1911
2230
 
1912
2231
 
1913
 
#line 1914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2232
#line 2233 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1914
2233
} // closed Puma
1915
2234
class CCExprResolve;
1916
2235
class CExprResolve;
1933
2252
class CMatchSyntax;
1934
2253
namespace Puma {
1935
2254
 
1936
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2255
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1937
2256
class FilenameInfo : public RefCnt {
1938
 
#line 1939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2257
#line 2258 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1939
2258
  friend class ::CCExprResolve;
1940
2259
  friend class ::CExprResolve;
1941
2260
  friend class ::WinIfExists;
1956
2275
  friend class ::PragmaOnce;
1957
2276
  friend class ::CMatchSyntax;
1958
2277
 
1959
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2278
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1960
2279
 
1961
2280
  DString _name;
1962
2281
  const char *_path;
1974
2293
  bool operator == (const FilenameInfo &rc) const {
1975
2294
    return _name == rc._name;
1976
2295
  }
 
2296
public:
 
2297
  typedef AC::TL<Puma::DString,AC::TL<const char *,AC::TL<const char *,AC::TLE > > > __AttrTypes;
 
2298
  const char *__attr_name (unsigned i) const {
 
2299
    static const char *names[] = { "_name", "_path", "_root" }; return names[i];
 
2300
  }
 
2301
  const void *__attr (unsigned __i) const {
 
2302
    switch (__i) { case 0: return &_name; case 1: return &_path; case 2: return &_root; default: return 0; }
 
2303
  }
 
2304
#line 45 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1977
2305
};
1978
2306
 
1979
2307
 
1981
2309
 
1982
2310
#endif /* __filename_info_h__ */
1983
2311
 
1984
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2312
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Filename.h"
1985
2313
namespace Puma {
1986
2314
 
1987
2315
 
1988
2316
 
1989
 
#line 1990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2317
#line 2318 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
1990
2318
} // closed Puma
1991
2319
class CCExprResolve;
1992
2320
class CExprResolve;
2009
2337
class CMatchSyntax;
2010
2338
namespace Puma {
2011
2339
 
2012
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2340
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Filename.h"
2013
2341
class Filename : public SmartPtr, public Printable {
2014
 
#line 2015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2342
#line 2343 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2015
2343
  friend class ::CCExprResolve;
2016
2344
  friend class ::CExprResolve;
2017
2345
  friend class ::WinIfExists;
2032
2360
  friend class ::PragmaOnce;
2033
2361
  friend class ::CMatchSyntax;
2034
2362
 
2035
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2363
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Filename.h"
2036
2364
 
2037
2365
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
2038
2366
 
2049
2377
  bool operator == (const Filename &f) const;
2050
2378
  bool operator != (const Filename &f) const { return !(*this == f); }
2051
2379
  virtual void print (ostream &os) const { if (info ()) os << name (); }
 
2380
public:
 
2381
  typedef AC::TLE __AttrTypes;
 
2382
  const char *__attr_name (unsigned i) const { return 0; }
 
2383
  const void *__attr (unsigned __i) const { return 0; }
 
2384
#line 45 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Filename.h"
2052
2385
};
2053
2386
 
2054
2387
 
2056
2389
 
2057
2390
#endif /* __filename_h__ */
2058
2391
 
2059
 
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
2392
#line 24 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Location.h"
2060
2393
namespace Puma {
2061
2394
 
2062
2395
 
2063
2396
 
2064
 
#line 2065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2397
#line 2398 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2065
2398
} // closed Puma
2066
2399
class CCExprResolve;
2067
2400
class CExprResolve;
2084
2417
class CMatchSyntax;
2085
2418
namespace Puma {
2086
2419
 
2087
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
2420
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Location.h"
2088
2421
class Location {
2089
 
#line 2090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2422
#line 2423 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2090
2423
  friend class ::CCExprResolve;
2091
2424
  friend class ::CExprResolve;
2092
2425
  friend class ::WinIfExists;
2107
2440
  friend class ::PragmaOnce;
2108
2441
  friend class ::CMatchSyntax;
2109
2442
 
2110
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
2443
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Location.h"
2111
2444
 
2112
2445
  Filename _filename;
2113
2446
  int _line;
2135
2468
      return false;
2136
2469
    return line () < l.line () && column () < l.column ();
2137
2470
  }
 
2471
public:
 
2472
  typedef AC::TL<Puma::Filename,AC::TL<int,AC::TL<int,AC::TLE > > > __AttrTypes;
 
2473
  const char *__attr_name (unsigned i) const {
 
2474
    static const char *names[] = { "_filename", "_line", "_column" }; return names[i];
 
2475
  }
 
2476
  const void *__attr (unsigned __i) const {
 
2477
    switch (__i) { case 0: return &_filename; case 1: return &_line; case 2: return &_column; default: return 0; }
 
2478
  }
 
2479
#line 54 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Location.h"
2138
2480
};
2139
2481
 
2140
2482
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2149
2491
 
2150
2492
#endif /* __location_h__ */
2151
2493
 
2152
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
 
2494
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Array.h"
2153
2495
// This file is part of PUMA.
2154
2496
// Copyright (C) 1999-2003  The PUMA developer team.
2155
2497
//                                                                
2171
2513
#ifndef __array_h__
2172
2514
#define __array_h__
2173
2515
 
 
2516
/** \file
 
2517
 *  Variable length array implementation. */
 
2518
 
2174
2519
#include <assert.h>
2175
2520
 
2176
2521
namespace Puma {
2177
2522
 
 
2523
 
 
2524
/** \class Array Array.h Puma/Array.h
 
2525
 *  Variable length array implementation. */
2178
2526
template <class Item>
2179
2527
class Array {
2180
2528
protected:
 
2529
  /** Default array size. */
2181
2530
  static const long default_init_size = 5;
 
2531
  /** Default array size increment. */
2182
2532
  static const long default_increment = 5;
2183
2533
 
2184
2534
public:
 
2535
  /** Constructor.
 
2536
   *  \param is The default size of the array. 
 
2537
   *  \param incr The default increment value. */
2185
2538
  Array (long is = default_init_size, long incr = default_increment);
 
2539
  /** Copy-constructor.
 
2540
   *  \param array The array to copy. */
2186
2541
  Array (const Array<Item>& array);
2187
 
  Array<Item>& operator =(const Array<Item>&);
 
2542
  /** Assignment operator.
 
2543
   *  \param copy The array to copy. */
 
2544
  Array<Item>& operator =(const Array<Item>& copy);
 
2545
  /** Destructor. Destroys the array. */
2188
2546
  ~Array ();
 
2547
  /** Append an item to the array. 
 
2548
   *  \param item The item to append. */
2189
2549
  void append (const Item& item);
 
2550
  /** Insert an item at the given array index. 
 
2551
   *  \param index The array index. 
 
2552
   *  \param item The item to insert. */
2190
2553
  void insert (long index, const Item& item);
 
2554
  /** Prepend an item. 
 
2555
   *  \param item The item to prepend. */
2191
2556
  void prepend (const Item& item);
 
2557
  /** Remove the array item at the given array index.
 
2558
   *  \param index The array index. */
2192
2559
  void remove (long index);
 
2560
  /** Reset the array. Destroys the current array. */
2193
2561
  void reset ();
 
2562
  /** Get a reference to the array item at the given 
 
2563
   *  array index. If the index exceeds the array
 
2564
   *  bounds, then the array is reallocated accordingly.
 
2565
   *  \param index The array index. */
2194
2566
  Item& get (long index);
 
2567
  /** Get a reference to the array item at the given 
 
2568
   *  array index. If the index exceeds the array
 
2569
   *  bounds, then the array is reallocated accordingly.
 
2570
   *  \param index The array index. */
2195
2571
  Item& operator[] (long index);
 
2572
  /** Get the array item at the given array index.
 
2573
   *  Does not return a reference, thus the item may
 
2574
   *  be implicitely copied. 
 
2575
   *  \warning Does not validate the index!
 
2576
   *  \param index The array index. */
2196
2577
  Item fetch (long index) const;
 
2578
  /** Get a reference to the array item at the given 
 
2579
   *  array index.
 
2580
   *  \warning Does not validate the index!
 
2581
   *  \param index The array index. */
2197
2582
  Item& lookup (long index) const;
 
2583
  /** Get the number of items in the array. */
2198
2584
  long length () const;
2199
2585
 
2200
2586
private:
2402
2788
 
2403
2789
#endif /* __array_h__ */
2404
2790
 
2405
 
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
2791
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Token.h"
2406
2792
#include <assert.h>
2407
2793
 
2408
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
2794
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Token.h"
2409
2795
namespace Puma {
2410
2796
 
2411
2797
 
2412
 
 
2413
 
#line 2414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2798
class Unit;
 
2799
 
 
2800
 
 
2801
/** \class Token Token.h Puma/Token.h
 
2802
 *  Abstraction of a language token. A token is created by a
 
2803
 *  scanner (see Puma::CScanner) as part a token chain (Puma::Unit). 
 
2804
 *  It encapsulates a lexical unit of the scanned text. 
 
2805
 *  
 
2806
 *  The information provided about a lexical unit is 
 
2807
 *  \li the token type
 
2808
 *  \li the location in the scanned text
 
2809
 *  \li the portion of the scanned text represented by this token
 
2810
 *  \li the language of the token */
 
2811
 
 
2812
#line 2813 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2414
2813
} // closed Puma
2415
2814
class CCExprResolve;
2416
2815
class CExprResolve;
2433
2832
class CMatchSyntax;
2434
2833
namespace Puma {
2435
2834
 
2436
 
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
2835
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Token.h"
2437
2836
class Token : public ListElement {
2438
 
#line 2439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
2837
#line 2838 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2439
2838
  friend class ::CCExprResolve;
2440
2839
  friend class ::CExprResolve;
2441
2840
  friend class ::WinIfExists;
2456
2855
  friend class ::PragmaOnce;
2457
2856
  friend class ::CMatchSyntax;
2458
2857
 
2459
 
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
2858
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Token.h"
2460
2859
 
2461
2860
  int _type, _real_type;
2462
2861
 
2476
2875
  unsigned short _flags;
2477
2876
 
2478
2877
public:
 
2878
  /** Special token types. */
2479
2879
  enum {
 
2880
    /** End-of-file token. */
2480
2881
    ID_END_OF_FILE = -1,
 
2882
    /** Unknown token type. */
2481
2883
    ID_UNKNOWN = -2,
 
2884
    /** Error token type. */
2482
2885
    ID_ERROR = -3,
 
2886
    /** Warning token type. */
2483
2887
    ID_WARNING = -4
2484
2888
  };
2485
2889
 
2486
 
  static LanguageID comment_id, pre_id, dir_id, cpp_id, white_id, 
2487
 
                    wildcard_id, keyword_id, open_id, macro_op_id,
2488
 
                    identifier_id, comma_id, close_id;
 
2890
  /** Comment tokens. */ 
 
2891
  static LanguageID comment_id;
 
2892
  /** Preprocessor tokens. */
 
2893
  static LanguageID pre_id;
 
2894
  /** Compiler directives. */
 
2895
  static LanguageID dir_id;
 
2896
  /** C/C++ core language tokens. */
 
2897
  static LanguageID cpp_id;
 
2898
  /** White-spaces. */
 
2899
  static LanguageID white_id;
 
2900
  /** Wildcards. */
 
2901
  static LanguageID wildcard_id;
 
2902
  /** Keywords. */
 
2903
  static LanguageID keyword_id;
 
2904
  /** Left parenthesis. */
 
2905
  static LanguageID open_id;
 
2906
  /** Function-like macro operands. */
 
2907
  static LanguageID macro_op_id;
 
2908
  /** Identifiers. */
 
2909
  static LanguageID identifier_id;
 
2910
  /** Comma. */
 
2911
  static LanguageID comma_id;
 
2912
  /** Right parenthesis. */
 
2913
  static LanguageID close_id;
2489
2914
 
2490
2915
public:
2491
 
  Token (int = 0, LanguageID lang = LanguageID(0), const char * = "");
2492
 
  Token (const Token &);
 
2916
  /** Constructor.
 
2917
   *  \param type The token type.
 
2918
   *  \param lang The language of the token.
 
2919
   *  \param text The optional token text (defaults to the empty string). */
 
2920
  Token (int type = 0, LanguageID lang = LanguageID(0), const char *text = "");
 
2921
  /** Copy-constructor. 
 
2922
   *  \param copy The token to copy. */
 
2923
  Token (const Token &copy);
 
2924
  /** Destructor. Destroys the token text. */
2493
2925
  virtual ~Token ();
2494
2926
 
2495
 
//  virtual void print (ostream &) const;
2496
 
  void print (ostream &) const;
 
2927
  /** Print the token text on the given stream. 
 
2928
   *  \param os The output stream. */
 
2929
  void print (ostream &os) const;
 
2930
  /** Duplicate this token.
 
2931
   *  \return The copy of this token. Has to be destroyed by the caller. */
2497
2932
  virtual ListElement *duplicate () { return new Token (*this); }
2498
2933
 
2499
 
  void reset (int = 0, const char * = 0, LanguageID = LanguageID(0));
 
2934
  /** Get the unit this token belongs to. */
 
2935
  Unit* unit () const { return (Unit*)belonging_to(); }
 
2936
 
 
2937
  /** Reset the token object.
 
2938
   *  \param type The new token type.
 
2939
   *  \param text The new token text.
 
2940
   *  \param lang The new token language. */
 
2941
  void reset (int type = 0, const char *text = 0, LanguageID lang = LanguageID(0));
2500
2942
  
 
2943
  /** Set the location of the token (usually the line and column in a file). 
 
2944
   *  \param loc The location. */
2501
2945
  void location (const Location &loc)      { _location = loc; }
 
2946
  /** Set the continues lines appeared in this token. 
 
2947
   *  \param cl The continues line array. */
2502
2948
  void cont_lines (Array<int> *cl)  { _cont_lines = cl; }
 
2949
  /** Count the number of line breaks in the text of this token. */
2503
2950
  int line_breaks () const;
 
2951
  /** Set the token as being macro generated. */
2504
2952
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
 
2953
  /** Set the token as being a macro call. */
2505
2954
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
2506
2955
  
 
2956
  /** Get the token text. */
2507
2957
  const char *text () const;
 
2958
  /** Get the token text. */
2508
2959
  DString &dtext () const;
 
2960
  /** Get the static token text. Only for keywords, operators, and so on
 
2961
   *  with a constant token text. 
 
2962
   *  \return The static text or NULL for tokens with dynamic text (like identifiers). */
2509
2963
  char *get_static_text () const;
 
2964
  /** Get the type of the token (see Puma::CTokens). */
2510
2965
  int type () const                 { return _type; }
 
2966
  /** Get the location of the token (usually the line and column in a file). */
2511
2967
  const Location &location () const { return _location; }
2512
2968
   
2513
 
  // functions to query token flags
 
2969
  /** Check if the token is macro generated. */
2514
2970
  bool is_macro_generated () const  { return (_flags & TK_MACRO_GENERATED) != 0; }
 
2971
  /** Check if the token is a macro call. */
2515
2972
  bool is_macro_call () const       { return (_flags & TK_MACRO_CALL) != 0; }
 
2973
  /** Check if this is a core language token. */
2516
2974
  bool is_core () const;
 
2975
  /** Check if the token is an identifier. */
2517
2976
  bool is_identifier () const;    // subset of core
 
2977
  /** Check if the token is a keyword. */
2518
2978
  bool is_keyword () const;       // subset of identifier
 
2979
  /** Check if this is a wildcard token. */
2519
2980
  bool is_wildcard () const;      // subset of core
 
2981
  /** Check if this is a preprocessor token. */
2520
2982
  bool is_preprocessor () const;  // a preprocessor directive (include, etc.)
 
2983
  /** Check if this is a compiler directive. */
2521
2984
  bool is_directive () const;     // a compiler directive (pragma, line, etc.)
 
2985
  /** Check if this is a white-space token. */
2522
2986
  bool is_whitespace () const;
 
2987
  /** Check if this is a comment. */
2523
2988
  bool is_comment () const;
 
2989
  /** Check if this is function-like macro operand. */
2524
2990
  bool is_macro_op () const;
 
2991
  /** Check if this is a left parenthesis. */
2525
2992
  bool is_open () const;          // subset of core
 
2993
  /** Check if this is a comma. */
2526
2994
  bool is_comma () const;         // subset of core
 
2995
  /** Check if this is a right parenthesis. */
2527
2996
  bool is_close () const;         // subset of core
2528
2997
 
 
2998
  /** Own operator new reusing memory. */
2529
2999
  void *operator new (size_t);
 
3000
  /** Own delete operator. */
2530
3001
  void  operator delete (void *);
2531
3002
 
2532
3003
private:
2534
3005
  LanguageID language () const { return _language; }
2535
3006
  void is_comment_internal ();
2536
3007
  void is_core_internal ();
 
3008
public:
 
3009
  typedef AC::TL<int,AC::TL<int,AC::TL<Puma::Location,AC::TL<Puma::LanguageID,AC::TL<const char *,AC::TL<Puma::DString,AC::TL<Puma::Array< int > *,AC::TL<unsigned short int,AC::TLE > > > > > > > > __AttrTypes;
 
3010
  const char *__attr_name (unsigned i) const {
 
3011
    static const char *names[] = { "_type", "_real_type", "_location", "_language", "_text", "_dtext", "_cont_lines", "_flags" }; return names[i];
 
3012
  }
 
3013
  const void *__attr (unsigned __i) const {
 
3014
    switch (__i) { case 0: return &_type; case 1: return &_real_type; case 2: return &_location; case 3: return &_language; case 4: return &_text; case 5: return &_dtext; case 7: return &_cont_lines; case 12: return &_flags; default: return 0; }
 
3015
  }
 
3016
#line 200 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Token.h"
2537
3017
};
2538
3018
 
2539
3019
 
2582
3062
 
2583
3063
#endif /* __Token_h__ */
2584
3064
 
2585
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreExpr.h"
 
3065
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreExpr.h"
2586
3066
// This file is part of PUMA.
2587
3067
// Copyright (C) 1999-2003  The PUMA developer team.
2588
3068
//                                                                
2607
3087
// Node class for the preprocessor expression parser. 
2608
3088
 
2609
3089
 
2610
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
3090
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
2611
3091
// This file is part of PUMA.
2612
3092
// Copyright (C) 1999-2003  The PUMA developer team.
2613
3093
//                                                                
2634
3114
// generated mapping table
2635
3115
 
2636
3116
 
2637
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
 
3117
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
2638
3118
// This file is part of PUMA.
2639
3119
// Copyright (C) 1999-2003  The PUMA developer team.
2640
3120
//                                                                
2760
3240
 
2761
3241
#endif /* __orange_recognizer_h__ */
2762
3242
 
2763
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
3243
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
2764
3244
namespace Puma {
2765
3245
 
2766
3246
 
2795
3275
 
2796
3276
#endif // __mapped_orange_recognizer_h__
2797
3277
 
2798
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3278
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2799
3279
// This file is part of PUMA.
2800
3280
// Copyright (C) 1999-2003  The PUMA developer team.
2801
3281
//                                                                
2818
3298
#define __scan_buffer_h__
2819
3299
 
2820
3300
 
2821
 
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3301
#line 23 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2822
3302
using namespace std;
2823
3303
 
2824
3304
namespace Puma {
2825
3305
 
2826
3306
 
2827
 
#line 2828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3307
#line 3308 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2828
3308
} // closed Puma
2829
3309
class CCExprResolve;
2830
3310
class CExprResolve;
2847
3327
class CMatchSyntax;
2848
3328
namespace Puma {
2849
3329
 
2850
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3330
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2851
3331
class ScanBuffer {
2852
 
#line 2853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3332
#line 3333 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2853
3333
  friend class ::CCExprResolve;
2854
3334
  friend class ::CExprResolve;
2855
3335
  friend class ::WinIfExists;
2870
3350
  friend class ::PragmaOnce;
2871
3351
  friend class ::CMatchSyntax;
2872
3352
 
2873
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3353
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2874
3354
 
2875
3355
public:
2876
3356
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
2904
3384
      return STATE_END;
2905
3385
    return _state;
2906
3386
  }
 
3387
public:
 
3388
  typedef AC::TL<int,AC::TL<int,AC::TL<char *,AC::TL<int,AC::TLE > > > > __AttrTypes;
 
3389
  const char *__attr_name (unsigned i) const {
 
3390
    static const char *names[] = { "_token", "_pos", "_buffer", "_buff_size" }; return names[i];
 
3391
  }
 
3392
  const void *__attr (unsigned __i) const {
 
3393
    switch (__i) { case 4: return &_token; case 5: return &_pos; case 6: return &_buffer; case 7: return &_buff_size; default: return 0; }
 
3394
  }
 
3395
#line 60 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2907
3396
};
2908
3397
 
2909
3398
 
2911
3400
 
2912
3401
#endif /* __scan_buffer_h__ */
2913
3402
 
2914
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreExpr.h"
 
3403
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreExpr.h"
2915
3404
namespace Puma {
2916
3405
 
2917
3406
 
2918
3407
class ErrorStream;
2919
3408
 
2920
3409
 
2921
 
#line 2922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3410
#line 3411 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2922
3411
} // closed Puma
2923
3412
class CCExprResolve;
2924
3413
class CExprResolve;
2941
3430
class CMatchSyntax;
2942
3431
namespace Puma {
2943
3432
 
2944
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreExpr.h"
 
3433
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreExpr.h"
2945
3434
class PreExpr {
2946
 
#line 2947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3435
#line 3436 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
2947
3436
  friend class ::CCExprResolve;
2948
3437
  friend class ::CExprResolve;
2949
3438
  friend class ::WinIfExists;
2964
3453
  friend class ::PragmaOnce;
2965
3454
  friend class ::CMatchSyntax;
2966
3455
 
2967
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreExpr.h"
 
3456
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreExpr.h"
2968
3457
 
2969
3458
  bool _result;        
2970
3459
 
2993
3482
 
2994
3483
private:
2995
3484
  static MappedOrangeRecognizer<ScanBuffer> token_recognizer;
 
3485
public:
 
3486
  typedef AC::TL<bool,AC::TL<double,AC::TLE > > __AttrTypes;
 
3487
  const char *__attr_name (unsigned i) const {
 
3488
    static const char *names[] = { "_result", "val" }; return names[i];
 
3489
  }
 
3490
  const void *__attr (unsigned __i) const {
 
3491
    switch (__i) { case 0: return &_result; case 1: return &val; default: return 0; }
 
3492
  }
 
3493
#line 61 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreExpr.h"
2996
3494
};
2997
3495
 
2998
3496
 
3000
3498
 
3001
3499
#endif /* __pre_expr__ */
3002
3500
 
3003
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
3501
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
3004
3502
 
3005
 
#line 3006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3503
#line 3504 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3006
3504
 
3007
3505
#ifndef __ac_fwd_ExtACKeywords__
3008
3506
#define __ac_fwd_ExtACKeywords__
3017
3515
}
3018
3516
#endif
3019
3517
 
3020
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
3021
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
3518
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
3519
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
3022
3520
#endif
3023
3521
 
3024
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
3522
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
3025
3523
// This file is part of PUMA.
3026
3524
// Copyright (C) 1999-2003  The PUMA developer team.
3027
3525
//                                                                
3044
3542
#define __c_scanner_h__
3045
3543
 
3046
3544
 
3047
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3545
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3048
3546
// This file is part of PUMA.
3049
3547
// Copyright (C) 1999-2003  The PUMA developer team.
3050
3548
//                                                                
3067
3565
#define __c_recognizer_h__
3068
3566
 
3069
3567
 
3070
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3568
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3071
3569
// This file is part of PUMA.
3072
3570
// Copyright (C) 1999-2003  The PUMA developer team.
3073
3571
//                                                                
3090
3588
#define __CScanBuffer_h__
3091
3589
 
3092
3590
 
3093
 
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3591
#line 24 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3094
3592
namespace Puma {
3095
3593
 
3096
3594
 
3097
3595
 
3098
 
#line 3099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3596
#line 3597 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3099
3597
} // closed Puma
3100
3598
class CCExprResolve;
3101
3599
class CExprResolve;
3118
3616
class CMatchSyntax;
3119
3617
namespace Puma {
3120
3618
 
3121
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3619
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3122
3620
class CScanBuffer : public ScanBuffer {
3123
 
#line 3124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3621
#line 3622 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3124
3622
  friend class ::CCExprResolve;
3125
3623
  friend class ::CExprResolve;
3126
3624
  friend class ::WinIfExists;
3141
3639
  friend class ::PragmaOnce;
3142
3640
  friend class ::CMatchSyntax;
3143
3641
 
3144
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3642
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3145
3643
 
3146
3644
 
3147
3645
  int _new_line_pos;
3154
3652
  inline void retry (); 
3155
3653
  inline void accept (int len);
3156
3654
  inline bool new_line (int len) const;
 
3655
public:
 
3656
  typedef AC::TL<int,AC::TLE > __AttrTypes;
 
3657
  const char *__attr_name (unsigned i) const {
 
3658
    static const char *names[] = { "_new_line_pos" }; return names[i];
 
3659
  }
 
3660
  const void *__attr (unsigned __i) const {
 
3661
    switch (__i) { case 0: return &_new_line_pos; default: return 0; }
 
3662
  }
 
3663
#line 39 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3157
3664
};
3158
3665
 
3159
3666
 
3191
3698
 
3192
3699
#endif // __CScanBuffer_h__
3193
3700
 
3194
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3701
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3195
3702
// This file is part of PUMA.
3196
3703
// Copyright (C) 1999-2003  The PUMA developer team.
3197
3704
//                                                                
3214
3721
#define __c_comment_recognizer_h__
3215
3722
 
3216
3723
 
3217
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3724
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3218
3725
namespace Puma {
3219
3726
 
3220
3727
 
3221
3728
 
3222
 
#line 3223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3729
#line 3730 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3223
3730
} // closed Puma
3224
3731
class CCExprResolve;
3225
3732
class CExprResolve;
3242
3749
class CMatchSyntax;
3243
3750
namespace Puma {
3244
3751
 
3245
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3752
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3246
3753
class CCommentRecognizer {
3247
 
#line 3248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3754
#line 3755 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3248
3755
  friend class ::CCExprResolve;
3249
3756
  friend class ::CExprResolve;
3250
3757
  friend class ::WinIfExists;
3265
3772
  friend class ::PragmaOnce;
3266
3773
  friend class ::CMatchSyntax;
3267
3774
 
3268
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3775
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3269
3776
 
3270
3777
public:
3271
3778
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
3281
3788
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
3282
3789
  void mode (Mode mode) { comment_mode = mode; }
3283
3790
  Mode mode () { return comment_mode; }
 
3791
public:
 
3792
  typedef AC::TLE __AttrTypes;
 
3793
  const char *__attr_name (unsigned i) const {
 
3794
    static const char *names[] = {  }; return names[i];
 
3795
  }
 
3796
  const void *__attr (unsigned __i) const {
 
3797
    switch (__i) { default: return 0; }
 
3798
  }
 
3799
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3284
3800
};
3285
3801
 
3286
3802
 
3288
3804
 
3289
3805
#endif /* __c_comment_recognizer_h__ */
3290
3806
 
3291
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3807
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3292
3808
// This file is part of PUMA.
3293
3809
// Copyright (C) 1999-2003  The PUMA developer team.
3294
3810
//                                                                
3311
3827
#define __keyword_recognizer_h__
3312
3828
 
3313
3829
 
3314
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3830
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3315
3831
namespace Puma {
3316
3832
 
3317
3833
 
3318
3834
 
3319
 
#line 3320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3835
#line 3836 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3320
3836
} // closed Puma
3321
3837
class CCExprResolve;
3322
3838
class CExprResolve;
3339
3855
class CMatchSyntax;
3340
3856
namespace Puma {
3341
3857
 
3342
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3858
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3343
3859
class KeywordRecognizer {
3344
 
#line 3345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3860
#line 3861 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3345
3861
  friend class ::CCExprResolve;
3346
3862
  friend class ::CExprResolve;
3347
3863
  friend class ::WinIfExists;
3362
3878
  friend class ::PragmaOnce;
3363
3879
  friend class ::CMatchSyntax;
3364
3880
 
3365
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3881
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3366
3882
 
3367
3883
protected:
3368
3884
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
3370
3886
public:
3371
3887
  virtual ~KeywordRecognizer () {}
3372
3888
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
3889
public:
 
3890
  typedef AC::TLE __AttrTypes;
 
3891
  const char *__attr_name (unsigned i) const {
 
3892
    static const char *names[] = {  }; return names[i];
 
3893
  }
 
3894
  const void *__attr (unsigned __i) const {
 
3895
    switch (__i) { default: return 0; }
 
3896
  }
 
3897
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3373
3898
};
3374
3899
 
3375
3900
 
3377
3902
 
3378
3903
#endif /* __keyword_recognizer_h__ */
3379
3904
 
3380
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3905
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3381
3906
namespace Puma {
3382
3907
 
3383
3908
 
3384
3909
 
3385
 
#line 3386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3910
#line 3911 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3386
3911
} // closed Puma
3387
3912
class CCExprResolve;
3388
3913
class CExprResolve;
3405
3930
class CMatchSyntax;
3406
3931
namespace Puma {
3407
3932
 
3408
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3933
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3409
3934
class CRecognizer {
3410
 
#line 3411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
3935
#line 3936 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3411
3936
  friend class ::CCExprResolve;
3412
3937
  friend class ::CExprResolve;
3413
3938
  friend class ::WinIfExists;
3428
3953
  friend class ::PragmaOnce;
3429
3954
  friend class ::CMatchSyntax;
3430
3955
 
3431
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3956
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3432
3957
 
3433
3958
  CCommentRecognizer comment_recognizer;
3434
3959
  Array<KeywordRecognizer*> additional_keyword_recognizers;
3472
3997
  bool macro_ops;
3473
3998
  bool std_c;
3474
3999
  bool std_cplusplus;
 
4000
public:
 
4001
  typedef AC::TL<Puma::CCommentRecognizer,AC::TL<Puma::Array< Puma::KeywordRecognizer * >,AC::TL<Puma::CScanBuffer,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TLE > > > > > > > > > __AttrTypes;
 
4002
  const char *__attr_name (unsigned i) const {
 
4003
    static const char *names[] = { "comment_recognizer", "additional_keyword_recognizers", "scan_buffer", "directives", "wildcards", "aspectc", "macro_ops", "std_c", "std_cplusplus" }; return names[i];
 
4004
  }
 
4005
  const void *__attr (unsigned __i) const {
 
4006
    switch (__i) { case 0: return &comment_recognizer; case 2: return &additional_keyword_recognizers; case 3: return &scan_buffer; case 30: return &directives; case 31: return &wildcards; case 32: return &aspectc; case 33: return &macro_ops; case 34: return &std_c; case 35: return &std_cplusplus; default: return 0; }
 
4007
  }
 
4008
#line 73 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3475
4009
};
3476
4010
 
3477
4011
 
3479
4013
 
3480
4014
#endif /* __c_recognizer_h__ */
3481
4015
 
3482
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4016
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3483
4017
// This file is part of PUMA.
3484
4018
// Copyright (C) 1999-2003  The PUMA developer team.
3485
4019
//                                                                
3505
4039
// form tokens, which used to fill a "Unit".
3506
4040
 
3507
4041
 
3508
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
4042
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Source.h"
3509
4043
// This file is part of PUMA.
3510
4044
// Copyright (C) 1999-2003  The PUMA developer team.
3511
4045
//                                                                
3531
4065
 
3532
4066
 
3533
4067
 
3534
 
#line 3535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4068
#line 4069 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3535
4069
} // closed Puma
3536
4070
class CCExprResolve;
3537
4071
class CExprResolve;
3554
4088
class CMatchSyntax;
3555
4089
namespace Puma {
3556
4090
 
3557
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
4091
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Source.h"
3558
4092
class Source {
3559
 
#line 3560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4093
#line 4094 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3560
4094
  friend class ::CCExprResolve;
3561
4095
  friend class ::CExprResolve;
3562
4096
  friend class ::WinIfExists;
3577
4111
  friend class ::PragmaOnce;
3578
4112
  friend class ::CMatchSyntax;
3579
4113
 
3580
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
4114
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Source.h"
3581
4115
 
3582
4116
public:
3583
4117
  Source () {}
3584
4118
  virtual ~Source () {}
3585
4119
  virtual int read (char *dest, int n) = 0;
3586
4120
  virtual int size () { return -1; }
 
4121
public:
 
4122
  typedef AC::TLE __AttrTypes;
 
4123
  const char *__attr_name (unsigned i) const { return 0; }
 
4124
  const void *__attr (unsigned __i) const { return 0; }
 
4125
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Source.h"
3587
4126
};
3588
4127
 
3589
4128
 
3591
4130
 
3592
4131
#endif /* __source_h__ */
3593
4132
 
3594
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4133
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3595
4134
namespace Puma {
3596
4135
 
3597
4136
 
3598
4137
 
3599
 
#line 3600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4138
#line 4139 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3600
4139
} // closed Puma
3601
4140
class CCExprResolve;
3602
4141
class CExprResolve;
3619
4158
class CMatchSyntax;
3620
4159
namespace Puma {
3621
4160
 
3622
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4161
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3623
4162
class Tokenizer {
3624
 
#line 3625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4163
#line 4164 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3625
4164
  friend class ::CCExprResolve;
3626
4165
  friend class ::CExprResolve;
3627
4166
  friend class ::WinIfExists;
3642
4181
  friend class ::PragmaOnce;
3643
4182
  friend class ::CMatchSyntax;
3644
4183
 
3645
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4184
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3646
4185
 
3647
4186
public:
3648
4187
  virtual ~Tokenizer () {}
3649
4188
  virtual void fill_unit (Source &in, Unit &unit) = 0;
 
4189
public:
 
4190
  typedef AC::TLE __AttrTypes;
 
4191
  const char *__attr_name (unsigned i) const { return 0; }
 
4192
  const void *__attr (unsigned __i) const { return 0; }
 
4193
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3650
4194
};
3651
4195
 
3652
4196
 
3654
4198
 
3655
4199
#endif /* __Tokenizer_h__ */
3656
4200
 
3657
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
4201
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3658
4202
// This file is part of PUMA.
3659
4203
// Copyright (C) 1999-2003  The PUMA developer team.
3660
4204
//                                                                
3689
4233
// messages or collect them for a later processing.
3690
4234
 
3691
4235
 
3692
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
4236
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3693
4237
// This file is part of PUMA.
3694
4238
// Copyright (C) 1999-2003  The PUMA developer team.
3695
4239
//                                                                
3717
4261
 
3718
4262
 
3719
4263
 
3720
 
#line 3721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4264
#line 4265 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3721
4265
} // closed Puma
3722
4266
class CCExprResolve;
3723
4267
class CExprResolve;
3740
4284
class CMatchSyntax;
3741
4285
namespace Puma {
3742
4286
 
3743
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
4287
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3744
4288
class ErrorSeverity {
3745
 
#line 3746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4289
#line 4290 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3746
4290
  friend class ::CCExprResolve;
3747
4291
  friend class ::CExprResolve;
3748
4292
  friend class ::WinIfExists;
3763
4307
  friend class ::PragmaOnce;
3764
4308
  friend class ::CMatchSyntax;
3765
4309
 
3766
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
4310
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3767
4311
 
3768
4312
  unsigned short _severity;
3769
4313
  const char *_text;
3790
4334
   { return _severity != s._severity; }
3791
4335
  const char *text () const
3792
4336
   { return _text; }
 
4337
public:
 
4338
  typedef AC::TL<unsigned short int,AC::TL<const char *,AC::TLE > > __AttrTypes;
 
4339
  const char *__attr_name (unsigned i) const {
 
4340
    static const char *names[] = { "_severity", "_text" }; return names[i];
 
4341
  }
 
4342
  const void *__attr (unsigned __i) const {
 
4343
    switch (__i) { case 0: return &_severity; case 1: return &_text; default: return 0; }
 
4344
  }
 
4345
#line 53 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3793
4346
};
3794
4347
 
3795
4348
extern const ErrorSeverity sev_none;
3803
4356
 
3804
4357
#endif /* __error_severity_h__ */
3805
4358
 
3806
 
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
4359
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3807
4360
namespace Puma {
3808
4361
 
3809
4362
 
3810
4363
 
3811
 
#line 3812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4364
#line 4365 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3812
4365
} // closed Puma
3813
4366
class CCExprResolve;
3814
4367
class CExprResolve;
3831
4384
class CMatchSyntax;
3832
4385
namespace Puma {
3833
4386
 
3834
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
4387
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3835
4388
class ErrorSink {
3836
 
#line 3837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4389
#line 4390 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3837
4390
  friend class ::CCExprResolve;
3838
4391
  friend class ::CExprResolve;
3839
4392
  friend class ::WinIfExists;
3854
4407
  friend class ::PragmaOnce;
3855
4408
  friend class ::CMatchSyntax;
3856
4409
 
3857
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
4410
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3858
4411
 
3859
4412
public:
3860
4413
  virtual ~ErrorSink () {}
3870
4423
  virtual ErrorSink &operator << (const Printable &) = 0;
3871
4424
  virtual ErrorSink &operator << (void (*f)(ErrorSink &)) = 0;
3872
4425
  virtual void endMessage () = 0;
 
4426
public:
 
4427
  typedef AC::TLE __AttrTypes;
 
4428
  const char *__attr_name (unsigned i) const { return 0; }
 
4429
  const void *__attr (unsigned __i) const { return 0; }
 
4430
#line 56 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3873
4431
};
3874
4432
 
3875
4433
void endMessage (ErrorSink &);
3879
4437
 
3880
4438
#endif /* __error_sink_h__ */
3881
4439
 
3882
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
4440
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Config.h"
3883
4441
// This file is part of PUMA.
3884
4442
// Copyright (C) 1999-2003  The PUMA developer team.
3885
4443
//                                                                
3901
4459
#ifndef __Config_h__
3902
4460
#define __Config_h__
3903
4461
 
3904
 
// Class Config provides evaluation of configuration 
3905
 
// information from file or command line.
3906
 
 
3907
 
 
3908
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
4462
/** \file
 
4463
 *  Configuration information from file or command line. */
 
4464
 
 
4465
 
 
4466
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Flags.h"
3909
4467
// This file is part of PUMA.
3910
4468
// Copyright (C) 1999-2003  The PUMA developer team.
3911
4469
//                                                                
3931
4489
 
3932
4490
 
3933
4491
 
3934
 
#line 3935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4492
#line 4493 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3935
4493
} // closed Puma
3936
4494
class CCExprResolve;
3937
4495
class CExprResolve;
3954
4512
class CMatchSyntax;
3955
4513
namespace Puma {
3956
4514
 
3957
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
4515
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Flags.h"
3958
4516
class Flags {
3959
 
#line 3960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4517
#line 4518 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
3960
4518
  friend class ::CCExprResolve;
3961
4519
  friend class ::CExprResolve;
3962
4520
  friend class ::WinIfExists;
3977
4535
  friend class ::PragmaOnce;
3978
4536
  friend class ::CMatchSyntax;
3979
4537
 
3980
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
4538
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Flags.h"
3981
4539
 
3982
4540
public:
3983
4541
  enum Flag {
4017
4575
  // test for flag
4018
4576
  bool operator ==(Flag) const;
4019
4577
  bool operator !=(Flag) const;
 
4578
public:
 
4579
  typedef AC::TL<Puma::Flags::Flag,AC::TLE > __AttrTypes;
 
4580
  const char *__attr_name (unsigned i) const {
 
4581
    static const char *names[] = { "_Flags" }; return names[i];
 
4582
  }
 
4583
  const void *__attr (unsigned __i) const {
 
4584
    switch (__i) { case 16: return &_Flags; default: return 0; }
 
4585
  }
 
4586
#line 64 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Flags.h"
4020
4587
};
4021
4588
 
4022
4589
inline Flags::Flags () : _Flags (NONE) 
4041
4608
 
4042
4609
#endif /* __Flags_h__ */
4043
4610
 
4044
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
4611
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4045
4612
// This file is part of PUMA.
4046
4613
// Copyright (C) 1999-2003  The PUMA developer team.
4047
4614
//                                                                
4064
4631
#define __ConfOption_h__
4065
4632
 
4066
4633
 
4067
 
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
4634
#line 24 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4068
4635
#include <stdlib.h>
4069
4636
 
4070
4637
namespace Puma {
4071
4638
 
4072
4639
 
4073
4640
 
4074
 
#line 4075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4641
#line 4642 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4075
4642
} // closed Puma
4076
4643
class CCExprResolve;
4077
4644
class CExprResolve;
4094
4661
class CMatchSyntax;
4095
4662
namespace Puma {
4096
4663
 
4097
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
4664
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4098
4665
class ConfOption {
4099
 
#line 4100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4666
#line 4667 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4100
4667
  friend class ::CCExprResolve;
4101
4668
  friend class ::CExprResolve;
4102
4669
  friend class ::WinIfExists;
4117
4684
  friend class ::PragmaOnce;
4118
4685
  friend class ::CMatchSyntax;
4119
4686
 
4120
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
4687
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4121
4688
 
4122
4689
  const char *_name;
4123
4690
  Array<const char *> _args;
4133
4700
  const char *Argument (unsigned) const;
4134
4701
  
4135
4702
  void addArgument (const char *);
 
4703
public:
 
4704
  typedef AC::TL<const char *,AC::TL<Puma::Array< const char * >,AC::TLE > > __AttrTypes;
 
4705
  const char *__attr_name (unsigned i) const {
 
4706
    static const char *names[] = { "_name", "_args" }; return names[i];
 
4707
  }
 
4708
  const void *__attr (unsigned __i) const {
 
4709
    switch (__i) { case 0: return &_name; case 2: return &_args; default: return 0; }
 
4710
  }
 
4711
#line 44 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4136
4712
};
4137
4713
 
4138
4714
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
4163
4739
 
4164
4740
#endif /* __ConfOption_h__ */
4165
4741
 
4166
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
4742
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4167
4743
// This file is part of PUMA.
4168
4744
// Copyright (C) 1999-2003  The PUMA developer team.
4169
4745
//                                                                
4191
4767
 
4192
4768
#include <sstream>
4193
4769
 
4194
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
4770
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4195
4771
using namespace std;
4196
4772
 
4197
4773
namespace Puma {
4198
4774
 
4199
4775
 
4200
4776
 
4201
 
#line 4202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4777
#line 4778 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4202
4778
} // closed Puma
4203
4779
class CCExprResolve;
4204
4780
class CExprResolve;
4221
4797
class CMatchSyntax;
4222
4798
namespace Puma {
4223
4799
 
4224
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
4800
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4225
4801
class ErrorStream : public ErrorSink {
4226
 
#line 4227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4802
#line 4803 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4227
4803
  friend class ::CCExprResolve;
4228
4804
  friend class ::CExprResolve;
4229
4805
  friend class ::WinIfExists;
4244
4820
  friend class ::PragmaOnce;
4245
4821
  friend class ::CMatchSyntax;
4246
4822
 
4247
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
4823
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4248
4824
 
4249
4825
  ostream *_ostream;
4250
4826
  ErrorSeverity _max_severity;
4280
4856
  void loud ();
4281
4857
 
4282
4858
  ErrorSeverity severity () const { return _max_severity; }
 
4859
public:
 
4860
  typedef AC::TL<std::basic_ostream< char > *,AC::TL<Puma::ErrorSeverity,AC::TL<Puma::ErrorSeverity,AC::TL<Puma::Location,AC::TL<bool,AC::TL<std::basic_ostringstream< char > *,AC::TL<bool,AC::TLE > > > > > > > __AttrTypes;
 
4861
  const char *__attr_name (unsigned i) const {
 
4862
    static const char *names[] = { "_ostream", "_max_severity", "_curr_severity", "_location", "_have_location", "_msg", "_silently" }; return names[i];
 
4863
  }
 
4864
  const void *__attr (unsigned __i) const {
 
4865
    switch (__i) { case 0: return &_ostream; case 1: return &_max_severity; case 2: return &_curr_severity; case 3: return &_location; case 4: return &_have_location; case 5: return &_msg; case 6: return &_silently; default: return 0; }
 
4866
  }
 
4867
#line 70 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4283
4868
};
4284
4869
 
4285
4870
 
4287
4872
 
4288
4873
#endif /* __error_stream_h__ */
4289
4874
 
4290
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
4875
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4291
4876
// This file is part of PUMA.
4292
4877
// Copyright (C) 1999-2003  The PUMA developer team.
4293
4878
//                                                                
4310
4895
#define __OptsParser_h__
4311
4896
 
4312
4897
 
4313
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
4898
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4314
4899
// This file is part of PUMA.
4315
4900
// Copyright (C) 1999-2003  The PUMA developer team.
4316
4901
//                                                                
4333
4918
#define __SimpleParser_h__
4334
4919
 
4335
4920
 
4336
 
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
4921
#line 23 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4337
4922
#include <vector>
4338
4923
using namespace std;
4339
4924
 
4345
4930
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
4346
4931
 */
4347
4932
 
4348
 
#line 4349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4933
#line 4934 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4349
4934
} // closed Puma
4350
4935
class CCExprResolve;
4351
4936
class CExprResolve;
4368
4953
class CMatchSyntax;
4369
4954
namespace Puma {
4370
4955
 
4371
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
4956
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4372
4957
class SimpleParser {
4373
 
#line 4374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
4958
#line 4959 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4374
4959
  friend class ::CCExprResolve;
4375
4960
  friend class ::CExprResolve;
4376
4961
  friend class ::WinIfExists;
4391
4976
  friend class ::PragmaOnce;
4392
4977
  friend class ::CMatchSyntax;
4393
4978
 
4394
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
4979
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4395
4980
 
4396
4981
public:
4397
4982
  /**
4435
5020
   * \return The end of the next token.
4436
5021
   */
4437
5022
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
 
5023
public:
 
5024
  typedef AC::TLE __AttrTypes;
 
5025
  const char *__attr_name (unsigned i) const { return 0; }
 
5026
  const void *__attr (unsigned __i) const { return 0; }
 
5027
#line 76 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4438
5028
};
4439
5029
 
4440
5030
 
4442
5032
 
4443
5033
#endif /* __SimpleParser_h__ */
4444
5034
 
4445
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
5035
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4446
5036
using namespace std;
4447
5037
 
4448
5038
namespace Puma {
4452
5042
 *  handles their option arguments, if applicable.
4453
5043
 */
4454
5044
 
4455
 
#line 4456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5045
#line 5046 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4456
5046
} // closed Puma
4457
5047
class CCExprResolve;
4458
5048
class CExprResolve;
4475
5065
class CMatchSyntax;
4476
5066
namespace Puma {
4477
5067
 
4478
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
5068
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4479
5069
class OptsParser : public SimpleParser {
4480
 
#line 4481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5070
#line 5071 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4481
5071
  friend class ::CCExprResolve;
4482
5072
  friend class ::CExprResolve;
4483
5073
  friend class ::WinIfExists;
4498
5088
  friend class ::PragmaOnce;
4499
5089
  friend class ::CMatchSyntax;
4500
5090
 
4501
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
5091
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4502
5092
 
4503
5093
  
4504
5094
  
4558
5148
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
4559
5149
   */
4560
5150
  struct Option {
4561
 
#line 4562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5151
#line 5152 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4562
5152
  friend class ::CCExprResolve;
4563
5153
  friend class ::CExprResolve;
4564
5154
  friend class ::WinIfExists;
4579
5169
  friend class ::PragmaOnce;
4580
5170
  friend class ::CMatchSyntax;
4581
5171
 
4582
 
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
5172
#line 91 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4583
5173
 
4584
5174
    int number; /**< Number associated with this option */
4585
5175
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
4586
5176
    const char *longName; /**< Long namen of this option */
4587
5177
    const char *desc; /**< Description of this option **/ 
4588
5178
    ArgType argType; /**< Type of argument for this option */
4589
 
  };
 
5179
  public:
 
5180
  typedef AC::TL<int,AC::TL<const char *,AC::TL<const char *,AC::TL<const char *,AC::TL<Puma::OptsParser::ArgType,AC::TLE > > > > > __AttrTypes;
 
5181
  const char *__attr_name (unsigned i) const {
 
5182
    static const char *names[] = { "number", "shortName", "longName", "desc", "argType" }; return names[i];
 
5183
  }
 
5184
  const void *__attr (unsigned __i) const {
 
5185
    switch (__i) { case 0: return &number; case 1: return &shortName; case 2: return &longName; case 3: return &desc; case 4: return &argType; default: return 0; }
 
5186
  }
 
5187
#line 97 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
5188
};
4590
5189
 
4591
5190
private:
4592
5191
  /** Pointer to array of available options. This value is set to the value of the 
4617
5216
   *  \param opts Pointer to array of options which shall be 
4618
5217
   *              recognized by the options parser
4619
5218
   */
4620
 
  OptsParser (const string &line, const Option *);
 
5219
  OptsParser (const string &line, const Option *opts);
4621
5220
 
4622
5221
  
4623
5222
  /** Get next parameter without modification. 
4701
5300
  /** Process an option found by OptsParser::findOption(). 
4702
5301
   */
4703
5302
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
 
5303
public:
 
5304
  typedef AC::TL<std::vector< std::basic_string< char > >,AC::TL<unsigned int,AC::TL<unsigned int,AC::TL<int,AC::TL<std::basic_string< char >,AC::TL<std::basic_string< char >,AC::TL<const Puma::OptsParser::Option *,AC::TLE > > > > > > > __AttrTypes;
 
5305
  const char *__attr_name (unsigned i) const {
 
5306
    static const char *names[] = { "m_argv", "m_curarg", "m_tonext", "m_number", "m_opt", "m_arg", "m_opts" }; return names[i];
 
5307
  }
 
5308
  const void *__attr (unsigned __i) const {
 
5309
    switch (__i) { case 1: return &m_argv; case 2: return &m_curarg; case 3: return &m_tonext; case 4: return &m_number; case 5: return &m_opt; case 6: return &m_arg; case 15: return &m_opts; default: return 0; }
 
5310
  }
 
5311
#line 212 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4704
5312
};
4705
5313
 
4706
5314
 
4708
5316
 
4709
5317
#endif /* __OptsParser_h__ */
4710
5318
 
4711
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
5319
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Config.h"
4712
5320
using namespace std;
4713
5321
 
4714
5322
namespace Puma {
4715
5323
 
4716
5324
 
 
5325
/** \class Config Config.h Puma/Config.h
 
5326
 *  %Puma configuration information. Can read the 
 
5327
 *  configuration from file or command line. */
4717
5328
 
4718
 
#line 4719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5329
#line 5330 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4719
5330
} // closed Puma
4720
5331
class CCExprResolve;
4721
5332
class CExprResolve;
4738
5349
class CMatchSyntax;
4739
5350
namespace Puma {
4740
5351
 
4741
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
5352
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Config.h"
4742
5353
class Config {
4743
 
#line 4744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5354
#line 5355 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4744
5355
  friend class ::CCExprResolve;
4745
5356
  friend class ::CExprResolve;
4746
5357
  friend class ::WinIfExists;
4761
5372
  friend class ::PragmaOnce;
4762
5373
  friend class ::CMatchSyntax;
4763
5374
 
4764
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
5375
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Config.h"
4765
5376
 
4766
5377
  Flags _flags;
4767
5378
  ErrorStream &_err;
4831
5442
  bool ProcessPathArgument (const string&,const string&);
4832
5443
 
4833
5444
  string Unescape(const string&);
 
5445
public:
 
5446
  typedef AC::TL<Puma::Flags,AC::TL<Puma::ErrorStream &,AC::TL<Puma::Array< const Puma::ConfOption * >,AC::TLE > > > __AttrTypes;
 
5447
  const char *__attr_name (unsigned i) const {
 
5448
    static const char *names[] = { "_flags", "_err", "_options" }; return names[i];
 
5449
  }
 
5450
  const void *__attr (unsigned __i) const {
 
5451
    switch (__i) { case 0: return &_flags; case 1: return &_err; case 3: return &_options; default: return 0; }
 
5452
  }
 
5453
#line 107 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Config.h"
4834
5454
};
4835
5455
 
4836
5456
inline Config::Config (ErrorStream &e) : _err (e)
4872
5492
 
4873
5493
#endif /* __Config_h__ */
4874
5494
 
4875
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5495
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
4876
5496
namespace Puma {
4877
5497
 
4878
5498
 
4879
5499
class Token;
4880
5500
 
4881
5501
 
4882
 
#line 4883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5502
#line 5503 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4883
5503
} // closed Puma
4884
5504
class CCExprResolve;
4885
5505
class CExprResolve;
4902
5522
class CMatchSyntax;
4903
5523
namespace Puma {
4904
5524
 
4905
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5525
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
4906
5526
class CScanner : public CRecognizer, public Tokenizer {
4907
 
#line 4908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5527
#line 5528 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4908
5528
  friend class ::CCExprResolve;
4909
5529
  friend class ::CExprResolve;
4910
5530
  friend class ::WinIfExists;
4925
5545
  friend class ::PragmaOnce;
4926
5546
  friend class ::CMatchSyntax;
4927
5547
 
4928
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5548
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
4929
5549
 
4930
5550
  Location loc;
4931
5551
  ErrorSink &err;
4940
5560
  virtual ~CScanner () {}
4941
5561
  void configure (const Config &);
4942
5562
  
4943
 
#line 4944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5563
#line 5564 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4944
5564
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
4945
5565
 
4946
 
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5566
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
4947
5567
void fill_unit (Source &in, Unit &unit);
4948
5568
  
4949
 
#line 4950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5569
#line 5570 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4950
5570
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
4951
5571
 
4952
 
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5572
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
4953
5573
void fill_unit (const char *in, Unit &unit);
 
5574
public:
 
5575
  typedef AC::TL<Puma::Location,AC::TL<Puma::ErrorSink &,AC::TLE > > __AttrTypes;
 
5576
  const char *__attr_name (unsigned i) const {
 
5577
    static const char *names[] = { "loc", "err" }; return names[i];
 
5578
  }
 
5579
  const void *__attr (unsigned __i) const {
 
5580
    switch (__i) { case 0: return &loc; case 1: return &err; default: return 0; }
 
5581
  }
 
5582
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
4954
5583
};
4955
5584
 
4956
5585
 
4958
5587
 
4959
5588
#endif /* __c_scanner_h__ */
4960
5589
 
4961
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
5590
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacro.h"
4962
5591
// This file is part of PUMA.
4963
5592
// Copyright (C) 1999-2003  The PUMA developer team.
4964
5593
//                                                                
4987
5616
// of arguments.
4988
5617
 
4989
5618
 
4990
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
5619
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacro.h"
4991
5620
namespace Puma {
4992
5621
 
4993
5622
 
4995
5624
class CScanner;
4996
5625
 
4997
5626
 
4998
 
#line 4999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5627
#line 5628 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
4999
5628
} // closed Puma
5000
5629
class CCExprResolve;
5001
5630
class CExprResolve;
5018
5647
class CMatchSyntax;
5019
5648
namespace Puma {
5020
5649
 
5021
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
5650
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacro.h"
5022
5651
class PreMacro : public Chain {
5023
 
#line 5024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
5652
#line 5653 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5024
5653
  friend class ::CCExprResolve;
5025
5654
  friend class ::CExprResolve;
5026
5655
  friend class ::WinIfExists;
5041
5670
  friend class ::PragmaOnce;
5042
5671
  friend class ::CMatchSyntax;
5043
5672
 
5044
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
5673
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacro.h"
5045
5674
 
5046
5675
public:
5047
5676
  typedef Array<const char *> MacroArgs;
5102
5731
private:
5103
5732
  // create the unit representation
5104
5733
  void buildUnit (CScanner &scanner);
 
5734
public:
 
5735
  typedef AC::TL<const char *,AC::TL<Puma::DString,AC::TL<short int,AC::TL<char,AC::TL<Puma::Location,AC::TL<Puma::Array< const char * > *,AC::TL<Puma::Unit,AC::TLE > > > > > > > __AttrTypes;
 
5736
  const char *__attr_name (unsigned i) const {
 
5737
    static const char *names[] = { "_body", "_name", "_numArgs", "_flags", "_location", "_arguments", "_body_unit" }; return names[i];
 
5738
  }
 
5739
  const void *__attr (unsigned __i) const {
 
5740
    switch (__i) { case 5: return &_body; case 6: return &_name; case 7: return &_numArgs; case 8: return &_flags; case 9: return &_location; case 10: return &_arguments; case 11: return &_body_unit; default: return 0; }
 
5741
  }
 
5742
#line 101 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacro.h"
5105
5743
};
5106
5744
 
5107
5745
 
5109
5747
 
5110
5748
#endif /* __pre_macro__ */
5111
5749
 
5112
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
5750
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CTokens.h"
5113
5751
// This file is part of PUMA.
5114
5752
// Copyright (C) 1999-2003  The PUMA developer team.
5115
5753
//                                                                
5131
5769
#ifndef __C_TOKENS__
5132
5770
#define __C_TOKENS__
5133
5771
 
 
5772
/** \file
 
5773
 *  C/C++ token types. */
 
5774
 
5134
5775
namespace Puma {
5135
5776
 
 
5777
 
 
5778
/** Types of tokens for language C and C++. These types
 
5779
 *  can be compared to Puma::Token::type(). */
5136
5780
enum CTokens {
5137
 
 
5138
5781
  // core tokens, i.e. numbers, operator symbols, brackets, etc.
 
5782
 
 
5783
  /** @ */
5139
5784
  TOK_AT = 100,
 
5785
  /** 0 */
5140
5786
  TOK_ZERO_VAL,
 
5787
  /** Integer constant. */
5141
5788
  TOK_INT_VAL,
 
5789
  /** Floating point constant. */
5142
5790
  TOK_FLT_VAL,
 
5791
  /** String constant. */
5143
5792
  TOK_STRING_VAL,
 
5793
  /** Character constant. */
5144
5794
  TOK_CHAR_VAL,
 
5795
  /** , */
5145
5796
  TOK_COMMA,
 
5797
  /** = */
5146
5798
  TOK_ASSIGN,
 
5799
  /** ? */
5147
5800
  TOK_QUESTION,
 
5801
  /** | */
5148
5802
  TOK_OR,
 
5803
  /** ^ */
5149
5804
  TOK_ROOF,
 
5805
  /** & */
5150
5806
  TOK_AND,
 
5807
  /** + */
5151
5808
  TOK_PLUS,
 
5809
  /** %- */
5152
5810
  TOK_MINUS,
 
5811
  /** * */
5153
5812
  TOK_MUL,
 
5813
  /** / */
5154
5814
  TOK_DIV,
 
5815
  /** % */
5155
5816
  TOK_MODULO,
 
5817
  /** < */
5156
5818
  TOK_LESS,
 
5819
  /** > */
5157
5820
  TOK_GREATER,
 
5821
  /** ( */
5158
5822
  TOK_OPEN_ROUND,
 
5823
  /** ) */
5159
5824
  TOK_CLOSE_ROUND,
 
5825
  /** [ */
5160
5826
  TOK_OPEN_SQUARE,
 
5827
  /** ] */
5161
5828
  TOK_CLOSE_SQUARE,
 
5829
  /** { */
5162
5830
  TOK_OPEN_CURLY,
 
5831
  /** } */
5163
5832
  TOK_CLOSE_CURLY,
 
5833
  /** ; */
5164
5834
  TOK_SEMI_COLON,
 
5835
  /** : */
5165
5836
  TOK_COLON,
 
5837
  /** ! */
5166
5838
  TOK_NOT,
 
5839
  /** ~ */
5167
5840
  TOK_TILDE,
 
5841
  /** "." */
5168
5842
  TOK_DOT,
 
5843
  /** *= */
5169
5844
  TOK_MUL_EQ,
 
5845
  /** /= */
5170
5846
  TOK_DIV_EQ,
 
5847
  /** %= */
5171
5848
  TOK_MOD_EQ,
 
5849
  /** += */
5172
5850
  TOK_ADD_EQ,
 
5851
  /** -= */
5173
5852
  TOK_SUB_EQ,
 
5853
  /** <<= */
5174
5854
  TOK_LSH_EQ,
 
5855
  /** >>= */
5175
5856
  TOK_RSH_EQ,
 
5857
  /** &= */
5176
5858
  TOK_AND_EQ,
 
5859
  /** ^= */
5177
5860
  TOK_XOR_EQ,
 
5861
  /** |= */
5178
5862
  TOK_IOR_EQ,
 
5863
  /** || */
5179
5864
  TOK_OR_OR,
 
5865
  /** && */
5180
5866
  TOK_AND_AND,
 
5867
  /** == */
5181
5868
  TOK_EQL,
 
5869
  /** != */
5182
5870
  TOK_NEQ,
 
5871
  /** <= */
5183
5872
  TOK_LEQ,
 
5873
  /** >= */
5184
5874
  TOK_GEQ,
 
5875
  /** << */
5185
5876
  TOK_LSH,
 
5877
  /** >> */
5186
5878
  TOK_RSH,
 
5879
  /** ".*" */
5187
5880
  TOK_DOT_STAR,
 
5881
  /** ->* */
5188
5882
  TOK_PTS_STAR,
 
5883
  /** ++ */
5189
5884
  TOK_INCR,
 
5885
  /** -- */
5190
5886
  TOK_DECR,
 
5887
  /** -> */
5191
5888
  TOK_PTS,
 
5889
  /** :: */
5192
5890
  TOK_COLON_COLON,
 
5891
  /** "..." */
5193
5892
  TOK_ELLIPSIS,
5194
 
  TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
 
5893
 
 
5894
  /** Core token group separator for the scanner! */
 
5895
  TOK_LAST_CORE = TOK_ELLIPSIS,
5195
5896
  
5196
5897
  // C keywords:
 
5898
 
 
5899
  /** asm */
5197
5900
  TOK_ASM,
 
5901
  /** auto */
5198
5902
  TOK_AUTO,
 
5903
  /** break */
5199
5904
  TOK_BREAK,
 
5905
  /** case */
5200
5906
  TOK_CASE,
 
5907
  /** char */
5201
5908
  TOK_CHAR,
 
5909
  /** const */
5202
5910
  TOK_CONST,
 
5911
  /** continue */
5203
5912
  TOK_CONTINUE,
 
5913
  /** default */
5204
5914
  TOK_DEFAULT,
 
5915
  /** do */
5205
5916
  TOK_DO,
 
5917
  /** double */
5206
5918
  TOK_DOUBLE,
 
5919
  /** else */
5207
5920
  TOK_ELSE,
 
5921
  /** enum */
5208
5922
  TOK_ENUM,
 
5923
  /** extern */
5209
5924
  TOK_EXTERN,
 
5925
  /** float */
5210
5926
  TOK_FLOAT,
 
5927
  /** for */
5211
5928
  TOK_FOR,
 
5929
  /** goto */
5212
5930
  TOK_GOTO,
 
5931
  /** if */
5213
5932
  TOK_IF,
 
5933
  /** inline */
5214
5934
  TOK_INLINE,
 
5935
  /** int */
5215
5936
  TOK_INT,
 
5937
  /** long */
5216
5938
  TOK_LONG,
 
5939
  /** register */
5217
5940
  TOK_REGISTER,
 
5941
  /** restrict */
5218
5942
  TOK_RESTRICT,
 
5943
  /** return */
5219
5944
  TOK_RETURN,
 
5945
  /** short */
5220
5946
  TOK_SHORT,
 
5947
  /** signed */
5221
5948
  TOK_SIGNED,
 
5949
  /** sizeof */
5222
5950
  TOK_SIZEOF,
 
5951
  /** static */
5223
5952
  TOK_STATIC,
 
5953
  /** struct */
5224
5954
  TOK_STRUCT,
 
5955
  /** switch */
5225
5956
  TOK_SWITCH,
 
5957
  /** typedef */
5226
5958
  TOK_TYPEDEF,
 
5959
  /** union */
5227
5960
  TOK_UNION,
 
5961
  /** unsigned */
5228
5962
  TOK_UNSIGNED,
 
5963
  /** void */
5229
5964
  TOK_VOID,
 
5965
  /** volatile */
5230
5966
  TOK_VOLATILE,
 
5967
  /** wchar_t */
5231
5968
  TOK_WCHAR_T,
 
5969
  /** while */
5232
5970
  TOK_WHILE,
5233
5971
 
5234
5972
  // C compatibility keywords
5235
5973
 
 
5974
  /** __asm */
5236
5975
  TOK_ASM_2,
 
5976
  /** __asm__ */
5237
5977
  TOK_ASM_3,
5238
 
  TOK_BOOL_2,
 
5978
  /** _Bool */
 
5979
  TOK_C_BOOL,
 
5980
  /** __const */
5239
5981
  TOK_CONST_2,
 
5982
  /** __const__ */
5240
5983
  TOK_CONST_3,
 
5984
  /** __inline */
5241
5985
  TOK_INLINE_2,
 
5986
  /** __inline__ */
5242
5987
  TOK_INLINE_3,
 
5988
  /** __restrict */
5243
5989
  TOK_RESTRICT_2,
 
5990
  /** __restrict__ */
5244
5991
  TOK_RESTRICT_3,
 
5992
  /** __signed */
5245
5993
  TOK_SIGNED_2,
 
5994
  /** __signed__ */
5246
5995
  TOK_SIGNED_3,
 
5996
  /** __volatile */
5247
5997
  TOK_VOLATILE_2,
 
5998
  /** __volatile__ */
5248
5999
  TOK_VOLATILE_3,
 
6000
  /** __wchar_t */
5249
6001
  TOK_WCHAR_T_2,
 
6002
  /** typeof */
5250
6003
  TOK_TYPEOF,
 
6004
  /** __typeof */
5251
6005
  TOK_TYPEOF_2,
 
6006
  /** __typeof__ */
5252
6007
  TOK_TYPEOF_3,
5253
6008
 
5254
6009
  // C win specific keywords
5255
6010
 
 
6011
  /** __int64 */
5256
6012
  TOK_INT64,
 
6013
  /** _cdecl */
5257
6014
  TOK_CDECL,
 
6015
  /** __cdecl */
5258
6016
  TOK_CDECL_2,
 
6017
  /** _stdcall */
5259
6018
  TOK_STDCALL,
 
6019
  /** __stdcall */
5260
6020
  TOK_STDCALL_2,
 
6021
  /** _fastcall */
5261
6022
  TOK_FASTCALL,
 
6023
  /** __fastcall */
5262
6024
  TOK_FASTCALL_2,
 
6025
  /** __if_exists */
5263
6026
  TOK_IF_EXISTS,
 
6027
  /** __if_not_exists */
5264
6028
  TOK_IF_NOT_EXISTS,
5265
6029
 
 
6030
  /** C token group separator for the scanner! */
5266
6031
  TOK_LAST_C = TOK_IF_NOT_EXISTS,
5267
6032
  
5268
 
  // a boolean constant:
 
6033
  /** Boolean constant. */
5269
6034
  TOK_BOOL_VAL,
5270
6035
 
5271
6036
  // C++ keywords:
5272
6037
 
 
6038
  /** bool */
5273
6039
  TOK_BOOL,
 
6040
  /** catch */
5274
6041
  TOK_CATCH,
 
6042
  /** class */
5275
6043
  TOK_CLASS,
 
6044
  /** const_cast */
5276
6045
  TOK_CONST_CAST,
 
6046
  /** delete */
5277
6047
  TOK_DELETE,
 
6048
  /** dynamic_cast */
5278
6049
  TOK_DYN_CAST,
 
6050
  /** explicit */
5279
6051
  TOK_EXPLICIT,
 
6052
  /** export */
5280
6053
  TOK_EXPORT,
 
6054
  /** friend */
5281
6055
  TOK_FRIEND,
 
6056
  /** mutable */
5282
6057
  TOK_MUTABLE,
 
6058
  /** namespace */
5283
6059
  TOK_NAMESPACE,
 
6060
  /** new */
5284
6061
  TOK_NEW,
 
6062
  /** operator */
5285
6063
  TOK_OPERATOR,
 
6064
  /** private */
5286
6065
  TOK_PRIVATE,
 
6066
  /** protected */
5287
6067
  TOK_PROTECTED,
 
6068
  /** public */
5288
6069
  TOK_PUBLIC,
 
6070
  /** reinterpret_cast */
5289
6071
  TOK_REINT_CAST,
 
6072
  /** static_cast */
5290
6073
  TOK_STAT_CAST,
 
6074
  /** template */
5291
6075
  TOK_TEMPLATE,
 
6076
  /** this */
5292
6077
  TOK_THIS,
 
6078
  /** throw */
5293
6079
  TOK_THROW,
 
6080
  /** try */
5294
6081
  TOK_TRY,
 
6082
  /** typeid */
5295
6083
  TOK_TYPEID,
 
6084
  /** typename */
5296
6085
  TOK_TYPENAME,
 
6086
  /** using */
5297
6087
  TOK_USING,
 
6088
  /** virtual */
5298
6089
  TOK_VIRTUAL,
5299
6090
 
5300
6091
  // C++ alternative representation of operators (ISO 646):
5301
6092
 
 
6093
  /** and */
5302
6094
  TOK_AND_AND_ISO_646,
 
6095
  /** and_eq */
5303
6096
  TOK_AND_EQ_ISO_646,
 
6097
  /** bitand */
5304
6098
  TOK_AND_ISO_646,
 
6099
  /** bitor */
5305
6100
  TOK_OR_ISO_646,
 
6101
  /** compl */
5306
6102
  TOK_TILDE_ISO_646,
 
6103
  /** not */
5307
6104
  TOK_NOT_ISO_646,
 
6105
  /** not_eq */
5308
6106
  TOK_NEQ_ISO_646,
 
6107
  /** or */
5309
6108
  TOK_OR_OR_ISO_646,
 
6109
  /** or_eq */
5310
6110
  TOK_IOR_EQ_ISO_646,
 
6111
  /** xor */
5311
6112
  TOK_ROOF_ISO_646,
 
6113
  /** xor_eq */
5312
6114
  TOK_XOR_EQ_ISO_646,
5313
6115
 
 
6116
  /** C++ token group separator for the scanner! */
5314
6117
  TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
5315
6118
  
5316
6119
  // AspectC++ keywords:
5317
6120
 
 
6121
  /** pointcut */
5318
6122
  TOK_POINTCUT,
 
6123
  /** aspect */
5319
6124
  TOK_ASPECT,
 
6125
  /** advice */
5320
6126
  TOK_ADVICE,
 
6127
  /** slice */
5321
6128
  TOK_SLICE,
 
6129
  /** unknown_t */
5322
6130
  TOK_UNKNOWN_T,
5323
6131
 
 
6132
  /** AspectC++ token group separator for the scanner! */
5324
6133
  TOK_LAST_AC = TOK_UNKNOWN_T,
5325
6134
  
5326
 
  // further [A](C|C++) token
 
6135
  /** Any identifier that is not a keyword. */
5327
6136
  TOK_ID,
5328
6137
 
5329
6138
  // These two always have to be the ** last ** token listed here!!!
 
6139
  
 
6140
  /** Epsilon. */
5330
6141
  TOK_EPSILON,
 
6142
  /** Number of known token types. */
5331
6143
  TOK_NO
5332
 
  
5333
6144
};
5334
6145
 
5335
6146
} // namespace Puma
5336
6147
 
5337
6148
#endif /* __C_TOKENS__ */
5338
6149
 
5339
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreParser.h"
 
6150
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreParser.h"
5340
6151
#define TOK_PRE_ASSERT                  1
5341
6152
#define TOK_PRE_COMMA                   2
5342
6153
#define TOK_PRE_DEFINE                  3
5360
6171
#define TOK_PRE_UNDEF                  21
5361
6172
#define TOK_PRE_WARNING                22
5362
6173
 
5363
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTree.h"
 
6174
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTree.h"
5364
6175
// This file is part of PUMA.
5365
6176
// Copyright (C) 1999-2003  The PUMA developer team.
5366
6177
//                                                                
5382
6193
#ifndef __pre_syntax_tree__
5383
6194
#define __pre_syntax_tree__
5384
6195
 
5385
 
// Syntax tree definition according to the composite pattern from [GoF].
5386
 
 
5387
 
 
5388
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
 
6196
/** \file 
 
6197
 *  Base preprocessor syntax tree class. */
 
6198
 
 
6199
 
 
6200
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
5389
6201
// This file is part of PUMA.
5390
6202
// Copyright (C) 1999-2003  The PUMA developer team.
5391
6203
//                                                                
5443
6255
 
5444
6256
 
5445
6257
 
5446
 
#line 5447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6258
#line 6259 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5447
6259
} // closed Puma
5448
6260
class CCExprResolve;
5449
6261
class CExprResolve;
5466
6278
class CMatchSyntax;
5467
6279
namespace Puma {
5468
6280
 
5469
 
#line 57 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
 
6281
#line 57 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
5470
6282
class PreVisitor {
5471
 
#line 5472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6283
#line 6284 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5472
6284
  friend class ::CCExprResolve;
5473
6285
  friend class ::CExprResolve;
5474
6286
  friend class ::WinIfExists;
5489
6301
  friend class ::PragmaOnce;
5490
6302
  friend class ::CMatchSyntax;
5491
6303
 
5492
 
#line 57 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
 
6304
#line 57 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
5493
6305
 
5494
6306
protected:
5495
6307
  PreVisitor () {};
5571
6383
 
5572
6384
  virtual void visitPreTokenListPart_Pre (PreTokenListPart *) {};
5573
6385
  virtual void visitPreTokenListPart_Post (PreTokenListPart *) {};
 
6386
public:
 
6387
  typedef AC::TLE __AttrTypes;
 
6388
  const char *__attr_name (unsigned i) const { return 0; }
 
6389
  const void *__attr (unsigned __i) const { return 0; }
 
6390
#line 138 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
5574
6391
};              
5575
6392
 
5576
6393
 
5578
6395
 
5579
6396
#endif /* __pre_visitor_h__ */
5580
6397
 
5581
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTree.h"
 
6398
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTree.h"
5582
6399
namespace Puma {
5583
6400
 
5584
6401
 
5585
 
// Common node interface
 
6402
/** \class PreTree PreTree.h Puma/PreTree.h
 
6403
 *  Base class for all C preprocessor syntax tree nodes. */
5586
6404
 
5587
 
#line 5588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6405
#line 6406 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5588
6406
} // closed Puma
5589
6407
class CCExprResolve;
5590
6408
class CExprResolve;
5607
6425
class CMatchSyntax;
5608
6426
namespace Puma {
5609
6427
 
5610
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTree.h"
 
6428
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTree.h"
5611
6429
class PreTree {
5612
 
#line 5613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6430
#line 6431 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5613
6431
  friend class ::CCExprResolve;
5614
6432
  friend class ::CExprResolve;
5615
6433
  friend class ::WinIfExists;
5630
6448
  friend class ::PragmaOnce;
5631
6449
  friend class ::CMatchSyntax;
5632
6450
 
5633
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTree.h"
 
6451
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTree.h"
5634
6452
 
5635
6453
protected:
 
6454
  /** Constructor. */
5636
6455
  PreTree () {};
5637
6456
 
5638
6457
public:
5639
 
  virtual void add_son (PreTree *);
5640
 
  virtual void replace_son (int, PreTree *);
5641
 
  virtual PreTree *son (int) const;
5642
 
  virtual int sons () const;
5643
 
 
5644
 
  virtual void add_daughter (PreTree *);
5645
 
  virtual void replace_daughter (int, PreTree *);
5646
 
  virtual PreTree *daughter (int) const;
5647
 
  virtual int daughters () const;
5648
 
 
 
6458
  /** Destructor. */
5649
6459
  virtual ~PreTree() {}
 
6460
 
 
6461
  /** Check if the node is a leaf, i.e. it has no child nodes. */
5650
6462
  virtual bool isLeaf () const;
 
6463
  /** Part of the tree visitor pattern. Calls the node
 
6464
   *  visiting function suitable for the actual node type. */
5651
6465
  virtual void accept (PreVisitor &) = 0;
 
6466
 
 
6467
  /** Add a son (syntactic child node). 
 
6468
   *  \param s The son to add. */
 
6469
  virtual void add_son (PreTree *s);
 
6470
  /** Replace the n-th son.
 
6471
   *  \param n The index of the son to replace.
 
6472
   *  \param new_s The new son. */
 
6473
  virtual void replace_son (int n, PreTree *new_s);
 
6474
  /** Get the n-th son. 
 
6475
   *  \param n The index of the son. */
 
6476
  virtual PreTree *son (int n) const;
 
6477
  /** Get the number of sons. */
 
6478
  virtual int sons () const;
 
6479
 
 
6480
  /** Add a daughter (semantic child node).
 
6481
   *  \param d The daughter to add. */
 
6482
  virtual void add_daughter (PreTree *d);
 
6483
  /** Replace the n-th daughter.
 
6484
   *  \param n The index of the daughter.
 
6485
   *  \param new_d The new daughter. */
 
6486
  virtual void replace_daughter (int n, PreTree *new_d);
 
6487
  /** Get the n-th daughter.
 
6488
   *  \param n The index of the daughter. */
 
6489
  virtual PreTree *daughter (int n) const;
 
6490
  /** Get the number of daughters. */
 
6491
  virtual int daughters () const;
5652
6492
        
 
6493
  /** Get the first token of the syntactic construct 
 
6494
   *  represented by the sub-tree. */
5653
6495
  virtual Token *startToken () const;
 
6496
  /** Get the last token of the syntactic construct
 
6497
   *  represented by the sub-tree. */
5654
6498
  virtual Token *endToken () const;
 
6499
public:
 
6500
  typedef AC::TLE __AttrTypes;
 
6501
  const char *__attr_name (unsigned i) const { return 0; }
 
6502
  const void *__attr (unsigned __i) const { return 0; }
 
6503
#line 80 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTree.h"
5655
6504
};
5656
6505
 
5657
 
 
 
6506
 
5658
6507
} // namespace Puma
5659
6508
 
5660
6509
#endif /* __pre_syntax_tree__ */
5661
6510
 
5662
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6511
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5663
6512
 
5664
 
#line 5665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6513
#line 6514 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5665
6514
 
5666
6515
#ifndef __ac_fwd_PragmaOnceUnitState__
5667
6516
#define __ac_fwd_PragmaOnceUnitState__
5674
6523
}
5675
6524
#endif
5676
6525
 
5677
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
5678
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
6526
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
6527
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
5679
6528
#endif
5680
6529
 
5681
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6530
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5682
6531
// This file is part of PUMA.
5683
6532
// Copyright (C) 1999-2003  The PUMA developer team.
5684
6533
//                                                                
5703
6552
// Class UnitManager helps you to have control of all units built.
5704
6553
 
5705
6554
 
5706
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6555
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5707
6556
#include <list>
5708
6557
#include <map>
5709
6558
 
5710
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6559
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5711
6560
using namespace std;
5712
6561
 
5713
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6562
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5714
6563
namespace Puma {
5715
6564
 
5716
6565
 
5719
6568
class Tokenizer;
5720
6569
 
5721
6570
 
5722
 
#line 5723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6571
#line 6572 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5723
6572
} // closed Puma
5724
6573
class CCExprResolve;
5725
6574
class CExprResolve;
5742
6591
class CMatchSyntax;
5743
6592
namespace Puma {
5744
6593
 
5745
 
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6594
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5746
6595
class UnitManager {
5747
 
#line 5748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6596
#line 6597 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5748
6597
  friend class ::CCExprResolve;
5749
6598
  friend class ::CExprResolve;
5750
6599
  friend class ::WinIfExists;
5765
6614
  friend class ::PragmaOnce;
5766
6615
  friend class ::CMatchSyntax;
5767
6616
 
5768
 
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6617
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5769
6618
 
5770
6619
public:
5771
6620
  typedef map<string, Unit*> UMap;
5819
6668
  // Initialize the unit manager and the managed 
5820
6669
  // units for the next parse process.
5821
6670
  
5822
 
#line 5823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6671
#line 6672 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5823
6672
public: __attribute__((always_inline)) inline void __exec_old_init();
5824
6673
 
5825
 
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
6674
#line 90 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5826
6675
void init ();
 
6676
public:
 
6677
  typedef AC::TL<Puma::ErrorStream *,AC::TL<std::list< Puma::Unit * >,AC::TL<std::map< std::basic_string< char >,Puma::Unit * >,AC::TL<Puma::Tokenizer *,AC::TLE > > > > __AttrTypes;
 
6678
  const char *__attr_name (unsigned i) const {
 
6679
    static const char *names[] = { "_err", "_nonames", "_umap", "_tokenizer" }; return names[i];
 
6680
  }
 
6681
  const void *__attr (unsigned __i) const {
 
6682
    switch (__i) { case 2: return &_err; case 4: return &_nonames; case 5: return &_umap; case 6: return &_tokenizer; default: return 0; }
 
6683
  }
 
6684
#line 91 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5827
6685
};
5828
6686
 
5829
6687
 
5831
6689
 
5832
6690
#endif /* __UnitManager__ */
5833
6691
 
5834
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
6692
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenStream.h"
5835
6693
// This file is part of PUMA.
5836
6694
// Copyright (C) 1999-2003  The PUMA developer team.
5837
6695
//                                                                
5858
6716
// input files. 
5859
6717
 
5860
6718
 
5861
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
6719
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
5862
6720
// This file is part of PUMA.
5863
6721
// Copyright (C) 1999-2003  The PUMA developer team.
5864
6722
//                                                                
5881
6739
#define __Unit_Token_Src__
5882
6740
 
5883
6741
 
5884
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
6742
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenSource.h"
5885
6743
// This file is part of PUMA.
5886
6744
// Copyright (C) 1999-2003  The PUMA developer team.
5887
6745
//                                                                
5909
6767
class Token;
5910
6768
 
5911
6769
 
5912
 
#line 5913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6770
#line 6771 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5913
6771
} // closed Puma
5914
6772
class CCExprResolve;
5915
6773
class CExprResolve;
5932
6790
class CMatchSyntax;
5933
6791
namespace Puma {
5934
6792
 
5935
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
6793
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenSource.h"
5936
6794
class PumaTokenSource {
5937
 
#line 5938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6795
#line 6796 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5938
6796
  friend class ::CCExprResolve;
5939
6797
  friend class ::CExprResolve;
5940
6798
  friend class ::WinIfExists;
5955
6813
  friend class ::PragmaOnce;
5956
6814
  friend class ::CMatchSyntax;
5957
6815
 
5958
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
6816
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenSource.h"
5959
6817
 
5960
6818
protected:
5961
6819
  PumaTokenSource () {}
5963
6821
public:
5964
6822
  virtual ~PumaTokenSource () {}
5965
6823
  virtual Token *next () = 0;
 
6824
public:
 
6825
  typedef AC::TLE __AttrTypes;
 
6826
  const char *__attr_name (unsigned i) const { return 0; }
 
6827
  const void *__attr (unsigned __i) const { return 0; }
 
6828
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenSource.h"
5966
6829
};
5967
6830
 
5968
6831
 
5970
6833
 
5971
6834
#endif /* __Token_Source__ */
5972
6835
 
5973
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
6836
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
5974
6837
namespace Puma {
5975
6838
 
5976
6839
 
5977
6840
 
5978
 
#line 5979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6841
#line 6842 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
5979
6842
} // closed Puma
5980
6843
class CCExprResolve;
5981
6844
class CExprResolve;
5998
6861
class CMatchSyntax;
5999
6862
namespace Puma {
6000
6863
 
6001
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
6864
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
6002
6865
class UnitTokenSrc : public PumaTokenSource {
6003
 
#line 6004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6866
#line 6867 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6004
6867
  friend class ::CCExprResolve;
6005
6868
  friend class ::CExprResolve;
6006
6869
  friend class ::WinIfExists;
6021
6884
  friend class ::PragmaOnce;
6022
6885
  friend class ::CMatchSyntax;
6023
6886
 
6024
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
6887
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
6025
6888
 
6026
6889
  Unit &_unit;
6027
6890
  Token *_curr;
6033
6896
  
6034
6897
  Token *current () const { return _curr; }
6035
6898
  Unit *unit () const { return &_unit; }
 
6899
public:
 
6900
  typedef AC::TL<Puma::Unit &,AC::TL<Puma::Token *,AC::TL<bool,AC::TLE > > > __AttrTypes;
 
6901
  const char *__attr_name (unsigned i) const {
 
6902
    static const char *names[] = { "_unit", "_curr", "_first" }; return names[i];
 
6903
  }
 
6904
  const void *__attr (unsigned __i) const {
 
6905
    switch (__i) { case 0: return &_unit; case 1: return &_curr; case 2: return &_first; default: return 0; }
 
6906
  }
 
6907
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
6036
6908
};
6037
6909
 
6038
6910
 
6056
6928
 
6057
6929
#endif /* __Unit_Token_Src__ */
6058
6930
 
6059
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
6931
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenStream.h"
6060
6932
namespace Puma {
6061
6933
 
6062
6934
 
6063
6935
 
6064
 
#line 6065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6936
#line 6937 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6065
6937
} // closed Puma
6066
6938
class CCExprResolve;
6067
6939
class CExprResolve;
6084
6956
class CMatchSyntax;
6085
6957
namespace Puma {
6086
6958
 
6087
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
6959
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenStream.h"
6088
6960
class TokenStream : public PumaTokenSource, public Array<UnitTokenSrc*> {
6089
 
#line 6090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
6961
#line 6962 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6090
6962
  friend class ::CCExprResolve;
6091
6963
  friend class ::CExprResolve;
6092
6964
  friend class ::WinIfExists;
6107
6979
  friend class ::PragmaOnce;
6108
6980
  friend class ::CMatchSyntax;
6109
6981
 
6110
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
6982
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenStream.h"
6111
6983
 
6112
6984
public:
6113
6985
  TokenStream () : Array<UnitTokenSrc*> (20) {}
6121
6993
        
6122
6994
  // Get the next token of the top unit.
6123
6995
  Token *next ();
 
6996
public:
 
6997
  typedef AC::TLE __AttrTypes;
 
6998
  const char *__attr_name (unsigned i) const {
 
6999
    static const char *names[] = {  }; return names[i];
 
7000
  }
 
7001
  const void *__attr (unsigned __i) const {
 
7002
    switch (__i) { default: return 0; }
 
7003
  }
 
7004
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/TokenStream.h"
6124
7005
};
6125
7006
 
6126
7007
 
6128
7009
 
6129
7010
#endif /* __TokenStream__ */
6130
7011
 
6131
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
 
7012
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
6132
7013
// This file is part of PUMA.
6133
7014
// Copyright (C) 1999-2003  The PUMA developer team.
6134
7015
//                                                                
6158
7039
// within conditionals.
6159
7040
 
6160
7041
 
6161
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
 
7042
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
6162
7043
namespace Puma {
6163
7044
 
6164
7045
 
6165
7046
 
6166
 
#line 6167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7047
#line 7048 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6167
7048
} // closed Puma
6168
7049
class CCExprResolve;
6169
7050
class CExprResolve;
6186
7067
class CMatchSyntax;
6187
7068
namespace Puma {
6188
7069
 
6189
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
 
7070
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
6190
7071
class PrePredicate : public List {
6191
 
#line 6192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7072
#line 7073 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6192
7073
  friend class ::CCExprResolve;
6193
7074
  friend class ::CExprResolve;
6194
7075
  friend class ::WinIfExists;
6209
7090
  friend class ::PragmaOnce;
6210
7091
  friend class ::CMatchSyntax;
6211
7092
 
6212
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
 
7093
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
6213
7094
 
6214
7095
  char *_name;                // The name of the predicate.
6215
7096
  int   _numAnswers;        // The number of arguments.
6231
7112
  // Get several informations of the predicate.
6232
7113
  char *getName () const    { return _name; }
6233
7114
  int   numAnswers () const { return _numAnswers; }
 
7115
public:
 
7116
  typedef AC::TL<char *,AC::TL<int,AC::TLE > > __AttrTypes;
 
7117
  const char *__attr_name (unsigned i) const {
 
7118
    static const char *names[] = { "_name", "_numAnswers" }; return names[i];
 
7119
  }
 
7120
  const void *__attr (unsigned __i) const {
 
7121
    switch (__i) { case 0: return &_name; case 1: return &_numAnswers; default: return 0; }
 
7122
  }
 
7123
#line 55 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
6234
7124
};
6235
7125
 
6236
7126
 
6238
7128
 
6239
7129
#endif /* __pre_predicate__ */
6240
7130
 
6241
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
 
7131
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
6242
7132
// This file is part of PUMA.
6243
7133
// Copyright (C) 1999-2003  The PUMA developer team.
6244
7134
//                                                                
6269
7159
class Unit;
6270
7160
 
6271
7161
 
6272
 
#line 6273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7162
#line 7163 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6273
7163
} // closed Puma
6274
7164
class CCExprResolve;
6275
7165
class CExprResolve;
6292
7182
class CMatchSyntax;
6293
7183
namespace Puma {
6294
7184
 
6295
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
 
7185
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
6296
7186
class ImportHandler {
6297
 
#line 6298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7187
#line 7188 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6298
7188
  friend class ::CCExprResolve;
6299
7189
  friend class ::CExprResolve;
6300
7190
  friend class ::WinIfExists;
6315
7205
  friend class ::PragmaOnce;
6316
7206
  friend class ::CMatchSyntax;
6317
7207
 
6318
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
 
7208
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
6319
7209
 
6320
7210
  PreprocessorParser &parser;
6321
7211
  Unit *header;
6327
7217
 
6328
7218
private:
6329
7219
  void callHandler (const char *, const char *);
 
7220
public:
 
7221
  typedef AC::TL<Puma::PreprocessorParser &,AC::TL<Puma::Unit *,AC::TLE > > __AttrTypes;
 
7222
  const char *__attr_name (unsigned i) const {
 
7223
    static const char *names[] = { "parser", "header" }; return names[i];
 
7224
  }
 
7225
  const void *__attr (unsigned __i) const {
 
7226
    switch (__i) { case 0: return &parser; case 1: return &header; default: return 0; }
 
7227
  }
 
7228
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
6330
7229
};
6331
7230
 
6332
7231
 
6334
7233
 
6335
7234
#endif /* __ImportHandler__ */
6336
7235
 
6337
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
7236
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6338
7237
// This file is part of PUMA.
6339
7238
// Copyright (C) 1999-2003  The PUMA developer team.
6340
7239
//                                                                
6363
7262
// to controll which source code will be ignored.
6364
7263
 
6365
7264
 
6366
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
7265
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6367
7266
namespace Puma {
6368
7267
 
6369
7268
 
6370
7269
 
6371
 
#line 6372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7270
#line 7271 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6372
7271
} // closed Puma
6373
7272
class CCExprResolve;
6374
7273
class CExprResolve;
6391
7290
class CMatchSyntax;
6392
7291
namespace Puma {
6393
7292
 
6394
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
7293
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6395
7294
class PreLevelState {
6396
 
#line 6397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7295
#line 7296 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6397
7296
  friend class ::CCExprResolve;
6398
7297
  friend class ::CExprResolve;
6399
7298
  friend class ::WinIfExists;
6414
7313
  friend class ::PragmaOnce;
6415
7314
  friend class ::CMatchSyntax;
6416
7315
 
6417
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
7316
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6418
7317
 
6419
7318
  long _level;
6420
7319
        
6421
7320
  // The state structure.
6422
7321
  struct _state {
6423
 
#line 6424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7322
#line 7323 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6424
7323
  friend class ::CCExprResolve;
6425
7324
  friend class ::CExprResolve;
6426
7325
  friend class ::WinIfExists;
6441
7340
  friend class ::PragmaOnce;
6442
7341
  friend class ::CMatchSyntax;
6443
7342
 
6444
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
7343
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6445
7344
 
6446
7345
    bool state;                // The level value.
6447
7346
    bool passOn;        // Decide whether code will be not ignored.
6448
 
  };
 
7347
  public:
 
7348
  typedef AC::TL<bool,AC::TL<bool,AC::TLE > > __AttrTypes;
 
7349
  const char *__attr_name (unsigned i) const {
 
7350
    static const char *names[] = { "state", "passOn" }; return names[i];
 
7351
  }
 
7352
  const void *__attr (unsigned __i) const {
 
7353
    switch (__i) { case 0: return &state; case 1: return &passOn; default: return 0; }
 
7354
  }
 
7355
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
7356
};
6449
7357
        
6450
7358
  // Array to store the state information of every level.
6451
7359
  Array<_state> _levels;        
6471
7379
  // Get the state of the current level.
6472
7380
  bool state ()  { return _levels[_level].state; }
6473
7381
  bool passOn () { return _levels[_level].passOn; }
 
7382
public:
 
7383
  typedef AC::TL<long int,AC::TL<Puma::Array< Puma::PreLevelState::_state >,AC::TLE > > __AttrTypes;
 
7384
  const char *__attr_name (unsigned i) const {
 
7385
    static const char *names[] = { "_level", "_levels" }; return names[i];
 
7386
  }
 
7387
  const void *__attr (unsigned __i) const {
 
7388
    switch (__i) { case 0: return &_level; case 2: return &_levels; default: return 0; }
 
7389
  }
 
7390
#line 66 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6474
7391
};
6475
7392
 
6476
7393
 
6478
7395
 
6479
7396
#endif /* __pre_level_state__ */
6480
7397
 
6481
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentTokens.h"
 
7398
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CCommentTokens.h"
6482
7399
// This file is part of PUMA.
6483
7400
// Copyright (C) 1999-2003  The PUMA developer team.
6484
7401
//                                                                
6500
7417
#ifndef __C_COMMENT_TOKENS_H__
6501
7418
#define __C_COMMENT_TOKENS_H__
6502
7419
 
 
7420
/** \file
 
7421
 *  White space and comment token types. */
 
7422
 
6503
7423
namespace Puma {
6504
7424
 
6505
7425
 
 
7426
/** White space and comment token types. These types
 
7427
 *  can be compared to Puma::Token::type(). */
6506
7428
enum {
 
7429
  /** Any white space block. */
6507
7430
  TOK_WSPACE = 400,
 
7431
  /** C++ style single line comment. */
6508
7432
  TOK_CCSINGLE = 350,
 
7433
  /** C style multi-line comment start token. */
6509
7434
  TOK_CCMULTIBEGIN,
 
7435
  /** C style multi-line comment end token. */
6510
7436
  TOK_CCMULTIEND,
 
7437
  /** Comment block. */
6511
7438
  TOK_CCOMMENT
6512
7439
};
6513
7440
 
6516
7443
 
6517
7444
#endif /* __C_COMMENT_TOKENS_H__ */
6518
7445
 
6519
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreParserState.h"
 
7446
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6520
7447
// This file is part of PUMA.
6521
7448
// Copyright (C) 1999-2003  The PUMA developer team.
6522
7449
//                                                                
6546
7473
using std::set;
6547
7474
 
6548
7475
 
6549
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
7476
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6550
7477
// This file is part of PUMA.
6551
7478
// Copyright (C) 1999-2003  The PUMA developer team.
6552
7479
//                                                                
6571
7498
// The macro manager manages all defined macros.
6572
7499
 
6573
7500
 
6574
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
7501
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6575
7502
using namespace std;
6576
7503
 
6577
7504
#ifdef __puma
6586
7513
class ErrorStream;
6587
7514
 
6588
7515
 
6589
 
#line 6590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7516
#line 7517 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6590
7517
} // closed Puma
6591
7518
class CCExprResolve;
6592
7519
class CExprResolve;
6609
7536
class CMatchSyntax;
6610
7537
namespace Puma {
6611
7538
 
6612
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
7539
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6613
7540
class PreMacroManager {
6614
 
#line 6615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7541
#line 7542 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6615
7542
  friend class ::CCExprResolve;
6616
7543
  friend class ::CExprResolve;
6617
7544
  friend class ::WinIfExists;
6632
7559
  friend class ::PragmaOnce;
6633
7560
  friend class ::CMatchSyntax;
6634
7561
 
6635
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
7562
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6636
7563
 
6637
7564
  PreMacro *_Line;
6638
7565
  PreMacro *_Date;
6675
7602
  PreMacro *getIncLevelMacro () const { return _IncLevel; }
6676
7603
  PreMacro *getFileMacro () const { return _File; }
6677
7604
  PreMacro *getBaseFileMacro () const { return _BaseFile; }
 
7605
public:
 
7606
  typedef AC::TL<Puma::PreMacro *,AC::TL<Puma::PreMacro *,AC::TL<Puma::PreMacro *,AC::TL<Puma::PreMacro *,AC::TL<Puma::PreMacro *,AC::TL<Puma::PreMacro *,AC::TL<Puma::Chain [1],AC::TL<Puma::ErrorStream *,AC::TLE > > > > > > > > __AttrTypes;
 
7607
  const char *__attr_name (unsigned i) const {
 
7608
    static const char *names[] = { "_Line", "_Date", "_Time", "_IncLevel", "_File", "_BaseFile", "_tab", "_err" }; return names[i];
 
7609
  }
 
7610
  const void *__attr (unsigned __i) const {
 
7611
    switch (__i) { case 0: return &_Line; case 1: return &_Date; case 2: return &_Time; case 3: return &_IncLevel; case 4: return &_File; case 5: return &_BaseFile; case 6: return &_tab; case 7: return &_err; default: return 0; }
 
7612
  }
 
7613
#line 83 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6678
7614
};
6679
7615
 
6680
7616
 
6682
7618
 
6683
7619
#endif /* __pre_macro_manager__ */
6684
7620
 
6685
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreParserState.h"
 
7621
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6686
7622
namespace Puma {
6687
7623
 
6688
7624
 
6692
7628
class TokenStream;
6693
7629
 
6694
7630
 
6695
 
#line 6696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7631
#line 7632 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6696
7632
} // closed Puma
6697
7633
class CCExprResolve;
6698
7634
class CExprResolve;
6715
7651
class CMatchSyntax;
6716
7652
namespace Puma {
6717
7653
 
6718
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreParserState.h"
 
7654
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6719
7655
class PreParserState {
6720
 
#line 6721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7656
#line 7657 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6721
7657
  friend class ::CCExprResolve;
6722
7658
  friend class ::CExprResolve;
6723
7659
  friend class ::WinIfExists;
6738
7674
  friend class ::PragmaOnce;
6739
7675
  friend class ::CMatchSyntax;
6740
7676
 
6741
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreParserState.h"
 
7677
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6742
7678
 
6743
7679
  // some constant strings
6744
7680
  DString _Line, _File, _Date, _Time, _IncLevel;
6786
7722
  PreTree *syntaxTree;  // Preprocessor syntax tree.
6787
7723
        
6788
7724
  Token *newline;       // Token to trick the parser.
 
7725
public:
 
7726
  typedef AC::TL<Puma::DString,AC::TL<Puma::DString,AC::TL<Puma::DString,AC::TL<Puma::DString,AC::TL<Puma::DString,AC::TL<Puma::DString,AC::TL<Puma::DString,AC::TL<int,AC::TL<Puma::Unit *,AC::TL<int,AC::TL<int,AC::TL<int,AC::TL<int,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<bool,AC::TL<Puma::Token *,AC::TL<Puma::Token *,AC::TL<Puma::Token *,AC::TL<int,AC::TL<int,AC::TL<void *,AC::TL<Puma::ErrorStream *,AC::TL<Puma::PreTree *,AC::TL<Puma::Token *,AC::TLE > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > __AttrTypes;
 
7727
  const char *__attr_name (unsigned i) const {
 
7728
    static const char *names[] = { "_Line", "_File", "_Date", "_Time", "_IncLevel", "_Defined", "_Defined1", "_LastDay", "_LastUnit", "errors", "number", "maxIncludeDepth", "stackPos", "noFILE", "noLINE", "noDATE", "noTIME", "noINCLUDE_LEVEL", "syntaxError", "errorDirective", "passOnToken", "forcedIncludes", "sl_token", "currToken", "lastToken", "currType", "lastType", "pParser", "err", "syntaxTree", "newline" }; return names[i];
 
7729
  }
 
7730
  const void *__attr (unsigned __i) const {
 
7731
    switch (__i) { case 0: return &_Line; case 1: return &_File; case 2: return &_Date; case 3: return &_Time; case 4: return &_IncLevel; case 5: return &_Defined; case 6: return &_Defined1; case 7: return &_LastDay; case 8: return &_LastUnit; case 9: return &errors; case 10: return &number; case 11: return &maxIncludeDepth; case 12: return &stackPos; case 13: return &noFILE; case 14: return &noLINE; case 15: return &noDATE; case 16: return &noTIME; case 17: return &noINCLUDE_LEVEL; case 18: return &syntaxError; case 19: return &errorDirective; case 20: return &passOnToken; case 21: return &forcedIncludes; case 22: return &sl_token; case 23: return &currToken; case 24: return &lastToken; case 25: return &currType; case 26: return &lastType; case 27: return &pParser; case 28: return &err; case 29: return &syntaxTree; case 30: return &newline; default: return 0; }
 
7732
  }
 
7733
#line 88 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6789
7734
};
6790
7735
 
6791
7736
 
6793
7738
 
6794
7739
#endif /* __pre_parser_state__ */
6795
7740
 
6796
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
7741
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
6797
7742
 
6798
 
#line 6799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7743
#line 7744 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6799
7744
 
6800
7745
#ifndef __ac_fwd_PragmaOnce__
6801
7746
#define __ac_fwd_PragmaOnce__
6812
7757
}
6813
7758
#endif
6814
7759
 
6815
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6816
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
7760
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
7761
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6817
7762
#endif
6818
7763
 
6819
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
7764
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
6820
7765
// This file is part of PUMA.
6821
7766
// Copyright (C) 1999-2003  The PUMA developer team.
6822
7767
//                                                                
6841
7786
// Preprocessor class to handle includes.
6842
7787
 
6843
7788
 
6844
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7789
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6845
7790
 
6846
 
#line 6847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7791
#line 7792 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6847
7792
 
6848
7793
#ifndef __ac_fwd_PragmaOnce__
6849
7794
#define __ac_fwd_PragmaOnce__
6860
7805
}
6861
7806
#endif
6862
7807
 
6863
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6864
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
7808
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
7809
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6865
7810
#endif
6866
7811
 
6867
7812
#ifndef __ac_fwd_WinIfExists__
6873
7818
}
6874
7819
#endif
6875
7820
 
6876
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
6877
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
7821
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
7822
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
6878
7823
#endif
6879
7824
 
6880
7825
#ifndef __ac_fwd_WinImportHandler__
6886
7831
}
6887
7832
#endif
6888
7833
 
6889
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
6890
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
7834
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
7835
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
6891
7836
#endif
6892
7837
 
6893
7838
#ifndef __ac_fwd_WinMacros__
6899
7844
}
6900
7845
#endif
6901
7846
 
6902
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
6903
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
7847
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
 
7848
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
6904
7849
#endif
6905
7850
 
6906
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7851
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6907
7852
// This file is part of PUMA.
6908
7853
// Copyright (C) 1999-2003  The PUMA developer team.
6909
7854
//                                                                
6929
7874
// be added last to the composite parser of a translation unit !!!
6930
7875
 
6931
7876
 
6932
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
7877
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Stack.h"
6933
7878
// This file is part of PUMA.
6934
7879
// Copyright (C) 1999-2003  The PUMA developer team.
6935
7880
//                                                                
6952
7897
#define __stack_h__
6953
7898
 
6954
7899
 
6955
 
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
7900
#line 24 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Stack.h"
6956
7901
namespace Puma {
6957
7902
 
6958
7903
template <class Item>
6972
7917
 
6973
7918
#endif /* __stack_h__ */
6974
7919
 
6975
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7920
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
6976
7921
 
6977
 
#line 6978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7922
#line 7923 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
6978
7923
 
6979
7924
#ifndef __ac_fwd_ExtACKeywords__
6980
7925
#define __ac_fwd_ExtACKeywords__
6989
7934
}
6990
7935
#endif
6991
7936
 
6992
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6993
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
7937
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
7938
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6994
7939
#endif
6995
7940
 
6996
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7941
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
6997
7942
// This file is part of PUMA.
6998
7943
// Copyright (C) 1999-2003  The PUMA developer team.
6999
7944
//                                                                
7030
7975
class Token;
7031
7976
 
7032
7977
 
7033
 
#line 7034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
7978
#line 7979 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7034
7979
} // closed Puma
7035
7980
class CCExprResolve;
7036
7981
class CExprResolve;
7053
7998
class CMatchSyntax;
7054
7999
namespace Puma {
7055
8000
 
7056
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8001
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7057
8002
class CScanner : public CRecognizer, public Tokenizer {
7058
 
#line 7059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8003
#line 8004 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7059
8004
  friend class ::CCExprResolve;
7060
8005
  friend class ::CExprResolve;
7061
8006
  friend class ::WinIfExists;
7076
8021
  friend class ::PragmaOnce;
7077
8022
  friend class ::CMatchSyntax;
7078
8023
 
7079
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8024
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7080
8025
 
7081
8026
  Location loc;
7082
8027
  ErrorSink &err;
7091
8036
  virtual ~CScanner () {}
7092
8037
  void configure (const Config &);
7093
8038
  
7094
 
#line 7095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8039
#line 8040 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7095
8040
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
7096
8041
 
7097
 
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8042
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7098
8043
void fill_unit (Source &in, Unit &unit);
7099
8044
  
7100
 
#line 7101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8045
#line 8046 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7101
8046
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
7102
8047
 
7103
 
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8048
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7104
8049
void fill_unit (const char *in, Unit &unit);
 
8050
public:
 
8051
  typedef AC::TL<Puma::Location,AC::TL<Puma::ErrorSink &,AC::TLE > > __AttrTypes;
 
8052
  const char *__attr_name (unsigned i) const {
 
8053
    static const char *names[] = { "loc", "err" }; return names[i];
 
8054
  }
 
8055
  const void *__attr (unsigned __i) const {
 
8056
    switch (__i) { case 0: return &loc; case 1: return &err; default: return 0; }
 
8057
  }
 
8058
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7105
8059
};
7106
8060
 
7107
8061
 
7109
8063
 
7110
8064
#endif /* __c_scanner_h__ */
7111
8065
 
7112
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
8066
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CUnit.h"
7113
8067
// This file is part of PUMA.
7114
8068
// Copyright (C) 1999-2003  The PUMA developer team.
7115
8069
//                                                                
7131
8085
#ifndef __c_unit_h__
7132
8086
#define __c_unit_h__
7133
8087
 
7134
 
 
7135
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
7136
 
 
7137
 
#line 7138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8088
/** \file
 
8089
 *  C/C++ token chain. */
 
8090
 
 
8091
 
 
8092
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8093
 
 
8094
#line 8095 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7138
8095
 
7139
8096
#ifndef __ac_fwd_ExtACKeywords__
7140
8097
#define __ac_fwd_ExtACKeywords__
7149
8106
}
7150
8107
#endif
7151
8108
 
7152
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7153
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
8109
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
8110
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7154
8111
#endif
7155
8112
 
7156
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8113
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7157
8114
// This file is part of PUMA.
7158
8115
// Copyright (C) 1999-2003  The PUMA developer team.
7159
8116
//                                                                
7190
8147
class Token;
7191
8148
 
7192
8149
 
7193
 
#line 7194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8150
#line 8151 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7194
8151
} // closed Puma
7195
8152
class CCExprResolve;
7196
8153
class CExprResolve;
7213
8170
class CMatchSyntax;
7214
8171
namespace Puma {
7215
8172
 
7216
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8173
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7217
8174
class CScanner : public CRecognizer, public Tokenizer {
7218
 
#line 7219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8175
#line 8176 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7219
8176
  friend class ::CCExprResolve;
7220
8177
  friend class ::CExprResolve;
7221
8178
  friend class ::WinIfExists;
7236
8193
  friend class ::PragmaOnce;
7237
8194
  friend class ::CMatchSyntax;
7238
8195
 
7239
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8196
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7240
8197
 
7241
8198
  Location loc;
7242
8199
  ErrorSink &err;
7251
8208
  virtual ~CScanner () {}
7252
8209
  void configure (const Config &);
7253
8210
  
7254
 
#line 7255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8211
#line 8212 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7255
8212
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
7256
8213
 
7257
 
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8214
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7258
8215
void fill_unit (Source &in, Unit &unit);
7259
8216
  
7260
 
#line 7261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8217
#line 8218 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7261
8218
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
7262
8219
 
7263
 
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8220
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7264
8221
void fill_unit (const char *in, Unit &unit);
 
8222
public:
 
8223
  typedef AC::TL<Puma::Location,AC::TL<Puma::ErrorSink &,AC::TLE > > __AttrTypes;
 
8224
  const char *__attr_name (unsigned i) const {
 
8225
    static const char *names[] = { "loc", "err" }; return names[i];
 
8226
  }
 
8227
  const void *__attr (unsigned __i) const {
 
8228
    switch (__i) { case 0: return &loc; case 1: return &err; default: return 0; }
 
8229
  }
 
8230
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
7265
8231
};
7266
8232
 
7267
8233
 
7269
8235
 
7270
8236
#endif /* __c_scanner_h__ */
7271
8237
 
7272
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
8238
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CUnit.h"
7273
8239
using namespace std;
7274
8240
 
7275
8241
namespace Puma {
7276
8242
 
7277
8243
 
 
8244
/** \class CUnit CUnit.h Puma/CUnit.h
 
8245
 *  Specialized token unit for C/C++ tokens. Provides
 
8246
 *  a streaming interface for easy scanning of C/C++
 
8247
 *  tokens using a Puma::CScanner object. The input
 
8248
 *  stream is scanned either by calling Puma::CUnit::scan()
 
8249
 *  or by using the stream manipulator Puma::endu.
 
8250
 *
 
8251
 *  Example: 
 
8252
 *  \code  
 
8253
 * Puma::ErrorStream es;
 
8254
 * Puma::CUnit unit(es)
 
8255
 * unit << "int main() {" << std::endl;
 
8256
 * unit << "  int fac0 = 1;" << std::endl;
 
8257
 * for (int i = 1; i < 10; i++) {
 
8258
 *   unit << "  int fac" << i << " = " << i 
 
8259
 *        << " * fac" << (i-1) << ";" << std::endl;
 
8260
 * }
 
8261
 * unit << "}\n" << Puma::endu;
 
8262
 *  \endcode */
7278
8263
 
7279
 
#line 7280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8264
#line 8265 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7280
8265
} // closed Puma
7281
8266
class CCExprResolve;
7282
8267
class CExprResolve;
7299
8284
class CMatchSyntax;
7300
8285
namespace Puma {
7301
8286
 
7302
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
8287
#line 53 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CUnit.h"
7303
8288
class CUnit : public Unit, public std::ostringstream {
7304
 
#line 7305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8289
#line 8290 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7305
8290
  friend class ::CCExprResolve;
7306
8291
  friend class ::CExprResolve;
7307
8292
  friend class ::WinIfExists;
7322
8307
  friend class ::PragmaOnce;
7323
8308
  friend class ::CMatchSyntax;
7324
8309
 
7325
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
8310
#line 53 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CUnit.h"
7326
8311
 
7327
8312
  CScanner _scanner;
7328
8313
 
7329
8314
public:
 
8315
  /** Constructor.
 
8316
   *  \param err The error stream on which to report errors. */
7330
8317
  CUnit (ErrorSink &err) : _scanner (err) {}
 
8318
  /** Destructor. */
7331
8319
  virtual ~CUnit () {}
7332
8320
  
 
8321
  /** Get the scanner used to scan the string stream. */
7333
8322
  CScanner &scanner () const { return (CScanner&)_scanner; }
 
8323
  /** Scan the stream now. Produces the token chain. */
7334
8324
  void scan ();
 
8325
public:
 
8326
  typedef AC::TL<Puma::CScanner,AC::TLE > __AttrTypes;
 
8327
  const char *__attr_name (unsigned i) const {
 
8328
    static const char *names[] = { "_scanner" }; return names[i];
 
8329
  }
 
8330
  const void *__attr (unsigned __i) const {
 
8331
    switch (__i) { case 0: return &_scanner; default: return 0; }
 
8332
  }
 
8333
#line 67 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CUnit.h"
7335
8334
};
7336
8335
 
 
8336
/** End-of-unit stream manipulator. Triggers scanning the 
 
8337
 *  C/C++ source code stream. 
 
8338
 *  \param outs The Puma::CUnit stream object. */
7337
8339
inline std::ostream &endu (std::ostream &outs) {
7338
8340
  ((CUnit&)outs).scan ();
7339
8341
  return outs;
7344
8346
 
7345
8347
#endif /* __c_unit_h__ */
7346
8348
 
7347
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
8349
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7348
8350
// This file is part of PUMA.
7349
8351
// Copyright (C) 1999-2003  The PUMA developer team.
7350
8352
//                                                                
7370
8372
// all macros of a given string or unit.
7371
8373
 
7372
8374
 
7373
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
8375
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7374
8376
using std::set;
7375
8377
 
7376
8378
 
7377
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
8379
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7378
8380
// This file is part of PUMA.
7379
8381
// Copyright (C) 1999-2003  The PUMA developer team.
7380
8382
//                                                                
7397
8399
#define __pre_arg_desc__
7398
8400
 
7399
8401
 
7400
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
8402
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7401
8403
// This file is part of PUMA.
7402
8404
// Copyright (C) 1999-2003  The PUMA developer team.
7403
8405
//                                                                
7422
8424
// Special unit for macro expansions
7423
8425
 
7424
8426
 
7425
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
8427
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7426
8428
namespace Puma {
7427
8429
 
7428
8430
 
7429
8431
 
7430
 
#line 7431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8432
#line 8433 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7431
8433
} // closed Puma
7432
8434
class CCExprResolve;
7433
8435
class CExprResolve;
7450
8452
class CMatchSyntax;
7451
8453
namespace Puma {
7452
8454
 
7453
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
8455
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7454
8456
class MacroUnit : public Unit {
7455
 
#line 7456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8457
#line 8458 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7456
8458
  friend class ::CCExprResolve;
7457
8459
  friend class ::CExprResolve;
7458
8460
  friend class ::WinIfExists;
7473
8475
  friend class ::PragmaOnce;
7474
8476
  friend class ::CMatchSyntax;
7475
8477
 
7476
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
8478
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7477
8479
 
7478
8480
  Unit *_CallingUnit;
7479
8481
  Token *_StartToken;
7503
8505
  // (sub-)expansion
7504
8506
  Token *ExpansionBegin (Token *) const;
7505
8507
  Token *ExpansionEnd (Token *) const;
 
8508
public:
 
8509
  typedef AC::TL<Puma::Unit *,AC::TL<Puma::Token *,AC::TL<Puma::Token *,AC::TLE > > > __AttrTypes;
 
8510
  const char *__attr_name (unsigned i) const {
 
8511
    static const char *names[] = { "_CallingUnit", "_StartToken", "_EndToken" }; return names[i];
 
8512
  }
 
8513
  const void *__attr (unsigned __i) const {
 
8514
    switch (__i) { case 0: return &_CallingUnit; case 1: return &_StartToken; case 2: return &_EndToken; default: return 0; }
 
8515
  }
 
8516
#line 59 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7506
8517
};
7507
8518
 
7508
8519
 
7510
8521
 
7511
8522
#endif /* __MacroUnit__ */
7512
8523
 
7513
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
8524
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7514
8525
namespace Puma {
7515
8526
 
7516
8527
 
7517
8528
 
7518
 
#line 7519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8529
#line 8530 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7519
8530
} // closed Puma
7520
8531
class CCExprResolve;
7521
8532
class CExprResolve;
7538
8549
class CMatchSyntax;
7539
8550
namespace Puma {
7540
8551
 
7541
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
8552
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7542
8553
class PreArgDesc {
7543
 
#line 7544 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8554
#line 8555 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7544
8555
  friend class ::CCExprResolve;
7545
8556
  friend class ::CExprResolve;
7546
8557
  friend class ::WinIfExists;
7561
8572
  friend class ::PragmaOnce;
7562
8573
  friend class ::CMatchSyntax;
7563
8574
 
7564
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
8575
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7565
8576
 
7566
8577
  // Collected arguments of a function-like macro.
7567
8578
  Array<MacroUnit> m_Args;
7583
8594
  void newArg () { m_Args[numArgs ()]; }
7584
8595
  MacroUnit &currArg () const { return (MacroUnit&)m_Args.lookup (numArgs ()-1); }
7585
8596
  MacroUnit &getArg (int i) const { return (MacroUnit&)m_Args.lookup (i); }
 
8597
public:
 
8598
  typedef AC::TL<Puma::Array< Puma::MacroUnit >,AC::TL<Puma::Token *,AC::TL<Puma::Token *,AC::TLE > > > __AttrTypes;
 
8599
  const char *__attr_name (unsigned i) const {
 
8600
    static const char *names[] = { "m_Args", "m_Begin", "m_End" }; return names[i];
 
8601
  }
 
8602
  const void *__attr (unsigned __i) const {
 
8603
    switch (__i) { case 1: return &m_Args; case 2: return &m_Begin; case 3: return &m_End; default: return 0; }
 
8604
  }
 
8605
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7586
8606
};
7587
8607
 
7588
8608
 
7590
8610
 
7591
8611
#endif /* __pre_arg_desc__ */
7592
8612
 
7593
 
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
8613
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7594
8614
namespace Puma {
7595
8615
 
7596
8616
 
7603
8623
class PreMacro;
7604
8624
 
7605
8625
 
7606
 
#line 7607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8626
#line 8627 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7607
8627
} // closed Puma
7608
8628
class CCExprResolve;
7609
8629
class CExprResolve;
7626
8646
class CMatchSyntax;
7627
8647
namespace Puma {
7628
8648
 
7629
 
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
8649
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7630
8650
class PreMacroExpander {
7631
 
#line 7632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8651
#line 8652 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7632
8652
  friend class ::CCExprResolve;
7633
8653
  friend class ::CExprResolve;
7634
8654
  friend class ::WinIfExists;
7649
8669
  friend class ::PragmaOnce;
7650
8670
  friend class ::CMatchSyntax;
7651
8671
 
7652
 
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
8672
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7653
8673
 
7654
8674
  TokenStream        *_scanner;
7655
8675
  PreMacroManager    *_macroManager;
7742
8762
        
7743
8763
  // Expand all macros of the given string.
7744
8764
  char *expandMacros (const char *);
 
8765
public:
 
8766
  typedef AC::TL<Puma::TokenStream *,AC::TL<Puma::PreMacroManager *,AC::TL<Puma::UnitManager *,AC::TL<Puma::ErrorStream *,AC::TL<Puma::Array< Puma::PreMacro * > *,AC::TL<Puma::PreprocessorParser *,AC::TL<Puma::PreMacroExpander *,AC::TL<bool,AC::TL<std::set< Puma::Token * > *,AC::TLE > > > > > > > > > __AttrTypes;
 
8767
  const char *__attr_name (unsigned i) const {
 
8768
    static const char *names[] = { "_scanner", "_macroManager", "_unitManager", "_err", "_macroStack", "_parser", "_preexpander", "_in_include", "_prescanned" }; return names[i];
 
8769
  }
 
8770
  const void *__attr (unsigned __i) const {
 
8771
    switch (__i) { case 0: return &_scanner; case 1: return &_macroManager; case 2: return &_unitManager; case 3: return &_err; case 5: return &_macroStack; case 6: return &_parser; case 7: return &_preexpander; case 8: return &_in_include; case 10: return &_prescanned; default: return 0; }
 
8772
  }
 
8773
#line 135 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7745
8774
};
7746
8775
 
7747
8776
 
7749
8778
 
7750
8779
#endif /* __pre_macro_expander__ */
7751
8780
 
7752
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8781
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7753
8782
using namespace std;
7754
8783
 
7755
8784
namespace Puma {
7766
8795
class PrePredicateManager;
7767
8796
 
7768
8797
 
7769
 
#line 7770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8798
#line 8799 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7770
8799
} // closed Puma
7771
8800
class CCExprResolve;
7772
8801
class CExprResolve;
7789
8818
class CMatchSyntax;
7790
8819
namespace Puma {
7791
8820
 
7792
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8821
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7793
8822
 
7794
 
#line 7795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8823
#line 8824 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7795
8824
} // closed Puma
7796
8825
 
7797
 
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
7798
 
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8826
#ifndef __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8827
#define __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
7799
8828
 
7800
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8829
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7801
8830
// This file is part of PUMA.
7802
8831
// Copyright (C) 1999-2003  The PUMA developer team.
7803
8832
//                                                                
7824
8853
/********************************************************/
7825
8854
 
7826
8855
 
7827
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8856
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7828
8857
namespace Puma {
7829
8858
  
7830
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8859
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7831
8860
 
7832
8861
}
7833
8862
 
7834
8863
 
7835
 
#line 7836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8864
#line 8865 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7836
8865
class CCExprResolve;
7837
8866
class CExprResolve;
7838
8867
class WinImportHandler;
7852
8881
class PragmaOnce;
7853
8882
class CMatchSyntax;
7854
8883
 
7855
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8884
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7856
8885
class WinIfExists {
7857
 
#line 7858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8886
#line 8887 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7858
8887
 
7859
8888
public:
7860
8889
  static WinIfExists *aspectof () {
7866
8895
  }
7867
8896
private:
7868
8897
 
7869
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8898
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7870
8899
 
7871
 
#line 7872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8900
#line 8901 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7872
8901
  friend class ::CCExprResolve;
7873
8902
  friend class ::CExprResolve;
7874
8903
  friend class ::WinImportHandler;
7888
8917
  friend class ::PragmaOnce;
7889
8918
  friend class ::CMatchSyntax;
7890
8919
 
7891
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8920
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7892
8921
 
7893
8922
  /********************************************************/
7894
8923
  /* Win __if_exists and __if_not_exists                  */
7896
8925
 
7897
8926
  // pointcut definitions
7898
8927
  
7899
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8928
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7900
8929
 
7901
8930
 
7902
8931
  // structural extensions
7903
8932
  
7904
 
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8933
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7905
8934
 
7906
8935
 
7907
8936
  // preprocess __if_exists and __if_not_exists statements
7908
8937
  
7909
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8938
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7910
8939
 
7911
8940
public: template<class JoinPoint> void __a0_around 
7912
 
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8941
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7913
8942
 
7914
 
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8943
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7915
8944
(JoinPoint *tjp)
7916
 
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8945
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7917
8946
 {
7918
 
#line 7919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8947
#line 8948 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7919
8948
 
7920
8949
  JoinPoint *&thisJoinPoint = tjp;
7921
8950
 
7922
 
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8951
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7923
8952
 
7924
 
#line 7925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8953
#line 8954 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7925
8954
 
7926
8955
  typedef typename JoinPoint::That __JP_That;
7927
8956
  typedef typename JoinPoint::Target __JP_Target;
7928
8957
  typedef typename JoinPoint::Result __JP_Result;
7929
8958
 
7930
 
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8959
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7931
8960
 
7932
8961
    Puma::Token *token;
7933
8962
    int type;
7934
8963
    __JP_That
7935
 
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8964
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7936
8965
 *preparser;
7937
8966
  
7938
8967
    preparser = tjp->that ();
7967
8996
      }
7968
8997
    }
7969
8998
  }
7970
 
#line 7971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
8999
#line 9000 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7971
9000
 
7972
9001
private:
7973
9002
 
7974
 
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
9003
#line 82 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7975
9004
 
7976
9005
 
7977
9006
protected:
7978
9007
  WinIfExists () {}
 
9008
public:
 
9009
  typedef AC::TLE __AttrTypes;
 
9010
  const char *__attr_name (unsigned i) const { return 0; }
 
9011
  const void *__attr (unsigned __i) const { return 0; }
 
9012
#line 86 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7979
9013
};
7980
 
#line 7981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9014
#line 9015 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
7981
9015
 
7982
9016
namespace AC {
7983
9017
  template <class JoinPoint>
7986
9020
  }
7987
9021
7988
9022
 
7989
 
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
9023
#line 86 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7990
9024
 
7991
9025
 
7992
9026
namespace Puma {
7993
9027
  
7994
 
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
9028
#line 95 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
7995
9029
 
7996
9030
    
7997
9031
  // skip __if_exists resp. __if_not_exists statement
7998
9032
  
7999
 
#line 135 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
9033
#line 135 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
8000
9034
 
8001
9035
}
8002
9036
 
8003
9037
#endif /* __WinIfExists__ */
8004
9038
 
8005
 
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9039
#line 8 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8006
9040
#endif
8007
9041
namespace Puma {
8008
9042
 
8009
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9043
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8010
9044
 
8011
 
#line 8012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9045
#line 9046 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8012
9046
} // closed Puma
8013
9047
 
8014
 
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8015
 
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
9048
#ifndef __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
9049
#define __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8016
9050
 
8017
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9051
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8018
9052
// This file is part of PUMA.
8019
9053
// Copyright (C) 1999-2003  The PUMA developer team.
8020
9054
//                                                                
8040
9074
/* Win #pragma once support aspect                      */
8041
9075
/********************************************************/
8042
9076
 
8043
 
 
8044
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8045
9077
#include <string.h>
8046
9078
 
8047
 
 
8048
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8049
 
 
8050
 
#line 8051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9079
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9080
 
 
9081
#line 9082 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8051
9082
class CCExprResolve;
8052
9083
class CExprResolve;
8053
9084
class WinIfExists;
8067
9098
class PragmaOnceUnitState;
8068
9099
class CMatchSyntax;
8069
9100
 
8070
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9101
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8071
9102
class PragmaOnce {
8072
 
#line 8073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9103
#line 9104 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8073
9104
 
8074
9105
public:
8075
9106
  static PragmaOnce *aspectof () {
8081
9112
  }
8082
9113
private:
8083
9114
 
8084
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9115
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8085
9116
 
8086
 
#line 8087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9117
#line 9118 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8087
9118
  friend class ::CCExprResolve;
8088
9119
  friend class ::CExprResolve;
8089
9120
  friend class ::WinIfExists;
8103
9134
  friend class ::PragmaOnceUnitState;
8104
9135
  friend class ::CMatchSyntax;
8105
9136
 
8106
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9137
#line 33 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8107
9138
 
8108
9139
  /******************************************************/
8109
9140
  /* detect #pragma once in the token stream of cpp     */
8111
9142
 
8112
9143
  // pointcut definitions
8113
9144
  
8114
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9145
#line 39 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8115
9146
 
8116
9147
  
8117
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9148
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8118
9149
 
8119
9150
  
8120
9151
  // extend the preprocessor parser by the filter state
8121
9152
  
8122
 
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9153
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8123
9154
 
8124
9155
 
8125
9156
  // initialize the filter state
8126
9157
  
8127
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9158
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8128
9159
 
8129
9160
public: template<class JoinPoint> void __a0_after 
8130
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9161
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8131
9162
 
8132
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9163
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8133
9164
(JoinPoint *tjp)
8134
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9165
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8135
9166
 {
8136
 
#line 8137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9167
#line 9168 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8137
9168
 
8138
9169
  typedef typename JoinPoint::That __JP_That;
8139
9170
  typedef typename JoinPoint::Target __JP_Target;
8140
9171
  typedef typename JoinPoint::Result __JP_Result;
8141
9172
 
8142
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9173
#line 46 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8143
9174
 
8144
9175
    // TODO: it would be better to have construction advice -> but in lem file
8145
9176
    tjp->that ()->_pragma_token = 0;
8146
9177
  }
8147
 
#line 8148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9178
#line 9179 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8148
9179
 
8149
9180
private:
8150
9181
 
8151
 
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9182
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8152
9183
 
8153
9184
  
8154
9185
  // filter #pragma once
8155
9186
  
8156
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9187
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8157
9188
 
8158
9189
public: template<class JoinPoint> void __a1_after 
8159
 
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9190
#line 52 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8160
9191
 
8161
 
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9192
#line 52 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8162
9193
(JoinPoint *tjp)
8163
 
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9194
#line 52 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8164
9195
 {
8165
 
#line 8166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9196
#line 9197 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8166
9197
 
8167
9198
  typedef typename JoinPoint::That __JP_That;
8168
9199
  typedef typename JoinPoint::Target __JP_Target;
8169
9200
  typedef typename JoinPoint::Result __JP_Result;
8170
9201
 
8171
 
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9202
#line 52 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8172
9203
 
8173
9204
    Puma::Token *tok = *tjp->result ();
8174
9205
    __JP_That
8175
 
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9206
#line 54 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8176
9207
 &that = *tjp->that ();
8177
9208
    if (!tok || !tok->is_directive ()) {
8178
9209
      that._pragma_token = 0;
8187
9218
      unit->state ().onlyOnce (true);
8188
9219
    }
8189
9220
  }
8190
 
#line 8191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9221
#line 9222 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8191
9222
 
8192
9223
private:
8193
9224
 
8194
 
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9225
#line 67 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8195
9226
 
8196
9227
  
8197
9228
  /********************************************************/
8202
9233
  // to be precise: the file is included again, but the inclusion produces
8203
9234
  // no tokens
8204
9235
  
8205
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9236
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8206
9237
 
8207
9238
public: template<class JoinPoint> void __a2_around 
8208
 
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9239
#line 78 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8209
9240
 
8210
 
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9241
#line 78 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8211
9242
(JoinPoint *tjp, Puma::Unit *unit)
8212
 
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9243
#line 78 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8213
9244
 {
8214
 
#line 8215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9245
#line 9246 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8215
9246
 
8216
9247
  typedef typename JoinPoint::That __JP_That;
8217
9248
  typedef typename JoinPoint::Target __JP_Target;
8218
9249
  typedef typename JoinPoint::Result __JP_Result;
8219
9250
 
8220
 
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9251
#line 78 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8221
9252
 
8222
9253
    if (! unit || ! unit->state ().onlyOnce ())
8223
9254
      tjp->proceed ();
8224
9255
  }
8225
 
#line 8226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9256
#line 9257 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8226
9257
 
8227
9258
private:
8228
9259
 
8229
 
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9260
#line 81 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8230
9261
 
8231
9262
 
8232
9263
  // includeFile shall return 0 if the file was not included
8233
9264
  
8234
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9265
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8235
9266
 
8236
9267
public: template<class JoinPoint> void __a3_after 
8237
 
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9268
#line 85 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8238
9269
 
8239
 
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9270
#line 85 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8240
9271
(JoinPoint *tjp)
8241
 
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9272
#line 85 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8242
9273
 {
8243
 
#line 8244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9274
#line 9275 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8244
9275
 
8245
9276
  typedef typename JoinPoint::That __JP_That;
8246
9277
  typedef typename JoinPoint::Target __JP_Target;
8247
9278
  typedef typename JoinPoint::Result __JP_Result;
8248
9279
 
8249
 
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9280
#line 85 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8250
9281
 
8251
9282
    Puma::Unit *&unit = *tjp->result ();
8252
9283
    if (unit && unit->state ().onlyOnce ())
8253
9284
      //unit = 0;
8254
9285
      tjp->that ()->_guarded = true;
8255
9286
  }
8256
 
#line 8257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9287
#line 9288 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8257
9288
 
8258
9289
private:
8259
9290
 
8260
 
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9291
#line 90 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8261
9292
 
8262
9293
    
8263
9294
protected:
8264
9295
  // this aspect should never be instantiated directly
8265
9296
  PragmaOnce () {}
 
9297
public:
 
9298
  typedef AC::TLE __AttrTypes;
 
9299
  const char *__attr_name (unsigned i) const { return 0; }
 
9300
  const void *__attr (unsigned __i) const { return 0; }
 
9301
#line 95 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8266
9302
};
8267
 
#line 8268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9303
#line 9304 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8268
9304
 
8269
9305
namespace AC {
8270
9306
  template <class JoinPoint>
8286
9322
  }
8287
9323
8288
9324
 
8289
 
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9325
#line 95 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8290
9326
 
8291
9327
 
8292
9328
 
8293
9329
#endif /* __PragmaOnce__ */
8294
9330
 
8295
 
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9331
#line 8 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8296
9332
#endif
8297
9333
namespace Puma {
8298
9334
 
8299
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9335
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8300
9336
class PreprocessorParser : public PumaTokenSource {
8301
 
#line 8302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9337
#line 9338 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8302
9338
  friend class ::CCExprResolve;
8303
9339
  friend class ::CExprResolve;
8304
9340
  friend class ::WinIfExists;
8319
9355
  friend class ::PragmaOnce;
8320
9356
  friend class ::CMatchSyntax;
8321
9357
 
8322
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9358
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8323
9359
 
8324
9360
public:
8325
9361
  // The current mode for token preprocessing
8407
9443
        
8408
9444
  // Configure the preprocessor.
8409
9445
  
8410
 
#line 8411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9446
#line 9447 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8411
9447
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
8412
9448
 
8413
 
#line 134 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9449
#line 134 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8414
9450
void configure (const Config &, bool = true);
8415
9451
        
8416
9452
  // Get the next token to parse.
8417
9453
  
8418
 
#line 8419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9454
#line 9455 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8419
9455
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
8420
9456
 
8421
 
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9457
#line 137 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8422
9458
Token *next ();
8423
9459
        
8424
9460
  TokenStream *scanner () const { return _stream; }
8451
9487
  void supportGNU (bool);
8452
9488
   private:
8453
9489
 
8454
 
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9490
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
8455
9491
 Puma :: Token * _pragma_token ;   private:
8456
9492
  typedef PreprocessorParser WinIfExistsCpp;
8457
9493
 
8458
 
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
9494
#line 90 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
8459
9495
 public :
8460
9496
 
8461
9497
Puma :: Stack < unsigned > _depth ;
8462
9498
 
8463
 
void skip_up_to ( int ) ;
8464
 
#line 167 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9499
void skip_up_to ( int ) ;public:
 
9500
  typedef AC::TL<bool,AC::TL<std::basic_ostream< char > *,AC::TL<Puma::Array< Puma::PreMacro * > *,AC::TL<std::set< Puma::Token * > *,AC::TL<Puma::PreLevelState *,AC::TL<Puma::PreParserState *,AC::TL<Puma::PreMacroManager *,AC::TL<Puma::PreFileIncluder *,AC::TL<Puma::PrePredicateManager *,AC::TL<Puma::UnitManager *,AC::TL<Puma::UnitManager *,AC::TL<Puma::PreMacroExpander,AC::TL<Puma::PreMacroExpander,AC::TL<bool,AC::TL<Puma::CScanner,AC::TL<Puma::TokenStream *,AC::TL<const char *,AC::TL<Puma::Token *,AC::TL<Puma::Stack< unsigned int >,AC::TLE > > > > > > > > > > > > > > > > > > > __AttrTypes;
 
9501
  const char *__attr_name (unsigned i) const {
 
9502
    static const char *names[] = { "_silentMode", "_out", "_macroStack", "_prescanned", "_levelState", "_parserState", "_macroManager", "_fileIncluder", "_predicateManager", "_unitManager", "_locals", "_expander", "_macroExpander", "_support_gnu", "_scanner", "_stream", "_importHandler", "_pragma_token", "_depth" }; return names[i];
 
9503
  }
 
9504
  const void *__attr (unsigned __i) const {
 
9505
    switch (__i) { case 7: return &_silentMode; case 8: return &_out; case 10: return &_macroStack; case 12: return &_prescanned; case 13: return &_levelState; case 14: return &_parserState; case 15: return &_macroManager; case 16: return &_fileIncluder; case 17: return &_predicateManager; case 18: return &_unitManager; case 19: return &_locals; case 20: return &_expander; case 21: return &_macroExpander; case 23: return &_support_gnu; case 24: return &_scanner; case 25: return &_stream; case 26: return &_importHandler; case 29: return &_pragma_token; case 31: return &_depth; default: return 0; }
 
9506
  }
 
9507
#line 167 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8465
9508
};
8466
9509
 
8467
9510
 
8469
9512
 
8470
9513
#endif /* __preprocessor_parser__ */
8471
9514
 
8472
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
9515
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
8473
9516
using std::map;
8474
9517
 
8475
9518
namespace Puma {
8481
9524
class Unit;
8482
9525
 
8483
9526
 
8484
 
#line 8485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9527
#line 9528 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8485
9528
} // closed Puma
8486
9529
class CCExprResolve;
8487
9530
class CExprResolve;
8504
9547
class CMatchSyntax;
8505
9548
namespace Puma {
8506
9549
 
8507
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
9550
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
8508
9551
class PreFileIncluder {
8509
 
#line 8510 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9552
#line 9553 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8510
9553
  friend class ::CCExprResolve;
8511
9554
  friend class ::CExprResolve;
8512
9555
  friend class ::WinIfExists;
8527
9570
  friend class ::PragmaOnce;
8528
9571
  friend class ::CMatchSyntax;
8529
9572
 
8530
 
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
9573
#line 40 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
8531
9574
 
8532
9575
  int                       _next;
8533
9576
  PreParserState     *_state;
8575
9618
                
8576
9619
  // Push unit on token stack.
8577
9620
  
8578
 
#line 8579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9621
#line 9622 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8579
9622
public: __attribute__((always_inline)) inline void __exec_old_pushOnStack(::Puma::Unit * );
8580
9623
 
8581
 
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
9624
#line 86 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
8582
9625
void pushOnStack (Unit *);
8583
9626
        
8584
9627
  // Include a file.
8585
9628
  
8586
 
#line 8587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9629
#line 9630 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8587
9630
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_includeFile(const char * name);
8588
9631
 
8589
 
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
9632
#line 89 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
8590
9633
Unit *includeFile (const char *name);
8591
9634
  Unit *handleIncludeOption (const char *name);
8592
9635
                          
8601
9644
  void addIncludePath (const char *path);
8602
9645
        
8603
9646
  Array<Filename> &getIncludePaths () { return _includeDirs; }
 
9647
public:
 
9648
  typedef AC::TL<int,AC::TL<Puma::PreParserState *,AC::TL<Puma::ErrorStream *,AC::TL<Puma::UnitManager *,AC::TL<Puma::PreprocessorParser *,AC::TL<Puma::PreMacroExpander,AC::TL<Puma::Array< Puma::Filename >,AC::TL<bool,AC::TL<std::map< Puma::Unit *,Puma::Token * >,AC::TLE > > > > > > > > > __AttrTypes;
 
9649
  const char *__attr_name (unsigned i) const {
 
9650
    static const char *names[] = { "_next", "_state", "_err", "_unitManager", "_parser", "_expander", "_includeDirs", "_guarded", "_includedUnits" }; return names[i];
 
9651
  }
 
9652
  const void *__attr (unsigned __i) const {
 
9653
    switch (__i) { case 0: return &_next; case 1: return &_state; case 2: return &_err; case 3: return &_unitManager; case 4: return &_parser; case 5: return &_expander; case 7: return &_includeDirs; case 8: return &_guarded; case 11: return &_includedUnits; default: return 0; }
 
9654
  }
 
9655
#line 103 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
8604
9656
};
8605
9657
 
8606
9658
 
8608
9660
 
8609
9661
#endif /* __pre_file_includer__ */
8610
9662
 
8611
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
 
9663
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
8612
9664
// This file is part of PUMA.
8613
9665
// Copyright (C) 1999-2003  The PUMA developer team.
8614
9666
//                                                                
8634
9686
// a part of a syntax tree.
8635
9687
 
8636
9688
 
8637
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
 
9689
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
 
9690
/** \file 
 
9691
 *  Preprocessor syntax tree leaf class (representing a token). */
 
9692
 
8638
9693
namespace Puma {
8639
9694
 
8640
9695
 
 
9696
/** \class PreTreeToken PreTreeToken.h Puma/PreTreeToken.h
 
9697
 *  Preprocessor syntax tree leaf class representing a token. */
8641
9698
 
8642
 
#line 8643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9699
#line 9700 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8643
9700
} // closed Puma
8644
9701
class CCExprResolve;
8645
9702
class CExprResolve;
8662
9719
class CMatchSyntax;
8663
9720
namespace Puma {
8664
9721
 
8665
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
 
9722
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
8666
9723
class PreTreeToken : public PreTree {
8667
 
#line 8668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9724
#line 9725 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8668
9725
  friend class ::CCExprResolve;
8669
9726
  friend class ::CExprResolve;
8670
9727
  friend class ::WinIfExists;
8685
9742
  friend class ::PragmaOnce;
8686
9743
  friend class ::CMatchSyntax;
8687
9744
 
8688
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
 
9745
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
8689
9746
 
8690
9747
  Token *_token;
8691
9748
        
8692
9749
public:
 
9750
  /** Constructor.
 
9751
   *  \param token The preprocessor token. */
8693
9752
  PreTreeToken (Token *token) : _token (token) {}
8694
9753
 
8695
 
  // Accept() is part of the visitor concept to put class
8696
 
  // functionallity into another class.
 
9754
  /** Part of the tree visitor pattern. Calls the node
 
9755
   *  visiting function for PreTreeToken nodes. */
8697
9756
  void accept (PreVisitor &v)
8698
9757
    { v.visitPreTreeToken (this); }            
8699
9758
        
8700
 
  // Return the start or end token.
 
9759
  /** Get the first token of the syntactic construct 
 
9760
   *  represented by the sub-tree. */
8701
9761
  Token *startToken () const { return _token; }
 
9762
  /** Get the last token of the syntactic construct
 
9763
   *  represented by the sub-tree. */
8702
9764
  Token *endToken () const   { return _token; }
8703
9765
        
8704
 
  // Return the token.
 
9766
  /** Get the token represented by this node. */
8705
9767
  Token *token () const      { return _token; }
 
9768
public:
 
9769
  typedef AC::TL<Puma::Token *,AC::TLE > __AttrTypes;
 
9770
  const char *__attr_name (unsigned i) const {
 
9771
    static const char *names[] = { "_token" }; return names[i];
 
9772
  }
 
9773
  const void *__attr (unsigned __i) const {
 
9774
    switch (__i) { case 0: return &_token; default: return 0; }
 
9775
  }
 
9776
#line 58 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
8706
9777
};
8707
9778
 
8708
9779
 
8710
9781
 
8711
9782
#endif /*__syntax_tree_token__ */
8712
9783
 
8713
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9784
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8714
9785
 
8715
 
#line 8716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9786
#line 9787 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8716
9787
 
8717
9788
#ifndef __ac_fwd_PragmaOnce__
8718
9789
#define __ac_fwd_PragmaOnce__
8729
9800
}
8730
9801
#endif
8731
9802
 
8732
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8733
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
9803
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
9804
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8734
9805
#endif
8735
9806
 
8736
9807
#ifndef __ac_fwd_WinIfExists__
8742
9813
}
8743
9814
#endif
8744
9815
 
8745
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
8746
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9816
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9817
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
8747
9818
#endif
8748
9819
 
8749
9820
#ifndef __ac_fwd_WinImportHandler__
8755
9826
}
8756
9827
#endif
8757
9828
 
8758
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8759
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
9829
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
9830
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8760
9831
#endif
8761
9832
 
8762
9833
#ifndef __ac_fwd_WinMacros__
8768
9839
}
8769
9840
#endif
8770
9841
 
8771
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
8772
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
9842
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
 
9843
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
8773
9844
#endif
8774
9845
 
8775
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9846
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8776
9847
// This file is part of PUMA.
8777
9848
// Copyright (C) 1999-2003  The PUMA developer team.
8778
9849
//                                                                
8821
9892
class PrePredicateManager;
8822
9893
 
8823
9894
 
8824
 
#line 8825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9895
#line 9896 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8825
9896
} // closed Puma
8826
9897
class CCExprResolve;
8827
9898
class CExprResolve;
8844
9915
class CMatchSyntax;
8845
9916
namespace Puma {
8846
9917
 
8847
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9918
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8848
9919
 
8849
 
#line 8850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9920
#line 9921 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8850
9921
} // closed Puma
8851
9922
 
8852
 
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
8853
 
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9923
#ifndef __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9924
#define __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
8854
9925
#include "WinIfExists.ah"
8855
9926
#endif
8856
9927
namespace Puma {
8857
9928
 
8858
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9929
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8859
9930
 
8860
 
#line 8861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9931
#line 9932 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8861
9932
} // closed Puma
8862
9933
 
8863
 
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8864
 
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
9934
#ifndef __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
9935
#define __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8865
9936
#include "PragmaOnce.ah"
8866
9937
#endif
8867
9938
namespace Puma {
8868
9939
 
8869
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9940
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8870
9941
class PreprocessorParser : public PumaTokenSource {
8871
 
#line 8872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
9942
#line 9943 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8872
9943
  friend class ::CCExprResolve;
8873
9944
  friend class ::CExprResolve;
8874
9945
  friend class ::WinIfExists;
8889
9960
  friend class ::PragmaOnce;
8890
9961
  friend class ::CMatchSyntax;
8891
9962
 
8892
 
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9963
#line 48 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8893
9964
 
8894
9965
public:
8895
9966
  // The current mode for token preprocessing
8977
10048
        
8978
10049
  // Configure the preprocessor.
8979
10050
  
8980
 
#line 8981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10051
#line 10052 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8981
10052
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
8982
10053
 
8983
 
#line 134 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
10054
#line 134 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8984
10055
void configure (const Config &, bool = true);
8985
10056
        
8986
10057
  // Get the next token to parse.
8987
10058
  
8988
 
#line 8989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10059
#line 10060 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
8989
10060
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
8990
10061
 
8991
 
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
10062
#line 137 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8992
10063
Token *next ();
8993
10064
        
8994
10065
  TokenStream *scanner () const { return _stream; }
9021
10092
  void supportGNU (bool);
9022
10093
   private:
9023
10094
 
9024
 
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
10095
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9025
10096
 Puma :: Token * _pragma_token ;   private:
9026
10097
  typedef PreprocessorParser WinIfExistsCpp;
9027
10098
 
9028
 
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
10099
#line 90 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
9029
10100
 public :
9030
10101
 
9031
10102
Puma :: Stack < unsigned > _depth ;
9032
10103
 
9033
 
void skip_up_to ( int ) ;
9034
 
#line 167 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
10104
void skip_up_to ( int ) ;public:
 
10105
  typedef AC::TL<bool,AC::TL<std::basic_ostream< char > *,AC::TL<Puma::Array< Puma::PreMacro * > *,AC::TL<std::set< Puma::Token * > *,AC::TL<Puma::PreLevelState *,AC::TL<Puma::PreParserState *,AC::TL<Puma::PreMacroManager *,AC::TL<Puma::PreFileIncluder *,AC::TL<Puma::PrePredicateManager *,AC::TL<Puma::UnitManager *,AC::TL<Puma::UnitManager *,AC::TL<Puma::PreMacroExpander,AC::TL<Puma::PreMacroExpander,AC::TL<bool,AC::TL<Puma::CScanner,AC::TL<Puma::TokenStream *,AC::TL<const char *,AC::TL<Puma::Token *,AC::TL<Puma::Stack< unsigned int >,AC::TLE > > > > > > > > > > > > > > > > > > > __AttrTypes;
 
10106
  const char *__attr_name (unsigned i) const {
 
10107
    static const char *names[] = { "_silentMode", "_out", "_macroStack", "_prescanned", "_levelState", "_parserState", "_macroManager", "_fileIncluder", "_predicateManager", "_unitManager", "_locals", "_expander", "_macroExpander", "_support_gnu", "_scanner", "_stream", "_importHandler", "_pragma_token", "_depth" }; return names[i];
 
10108
  }
 
10109
  const void *__attr (unsigned __i) const {
 
10110
    switch (__i) { case 7: return &_silentMode; case 8: return &_out; case 10: return &_macroStack; case 12: return &_prescanned; case 13: return &_levelState; case 14: return &_parserState; case 15: return &_macroManager; case 16: return &_fileIncluder; case 17: return &_predicateManager; case 18: return &_unitManager; case 19: return &_locals; case 20: return &_expander; case 21: return &_macroExpander; case 23: return &_support_gnu; case 24: return &_scanner; case 25: return &_stream; case 26: return &_importHandler; case 29: return &_pragma_token; case 31: return &_depth; default: return 0; }
 
10111
  }
 
10112
#line 167 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9035
10113
};
9036
10114
 
9037
10115
 
9039
10117
 
9040
10118
#endif /* __preprocessor_parser__ */
9041
10119
 
9042
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10120
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9043
10121
// This file is part of PUMA.
9044
10122
// Copyright (C) 1999-2003  The PUMA developer team.
9045
10123
//                                                                
9061
10139
#ifndef __pre_syntax_tree_nodes__
9062
10140
#define __pre_syntax_tree_nodes__
9063
10141
 
9064
 
// Contains all node classes for the preprocessor syntax tree.
9065
 
 
9066
 
 
9067
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
 
10142
/** \file 
 
10143
 *  Preprocessor syntax tree classes. */
 
10144
 
 
10145
 
 
10146
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
9068
10147
// This file is part of PUMA.
9069
10148
// Copyright (C) 1999-2003  The PUMA developer team.
9070
10149
//                                                                
9087
10166
#define __syntax_tree_composite__
9088
10167
 
9089
10168
 
9090
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
 
10169
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
 
10170
/** \file 
 
10171
 *  Base preprocessor syntax tree composite class. */
 
10172
 
9091
10173
namespace Puma {
9092
10174
 
9093
10175
 
9094
 
// Generic composite nodes:
 
10176
/** \class PreTreeComposite PreTreeComposite.h Puma/PreTreeComposite.h
 
10177
 *  Base class for all C preprocessor syntax tree composite nodes. */
9095
10178
 
9096
 
#line 9097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10179
#line 10180 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9097
10180
} // closed Puma
9098
10181
class CCExprResolve;
9099
10182
class CExprResolve;
9116
10199
class CMatchSyntax;
9117
10200
namespace Puma {
9118
10201
 
9119
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
 
10202
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
9120
10203
class PreTreeComposite : public PreTree {
9121
 
#line 9122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10204
#line 10205 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9122
10205
  friend class ::CCExprResolve;
9123
10206
  friend class ::CExprResolve;
9124
10207
  friend class ::WinIfExists;
9139
10222
  friend class ::PragmaOnce;
9140
10223
  friend class ::CMatchSyntax;
9141
10224
 
9142
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
 
10225
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
9143
10226
 
9144
10227
private:
9145
10228
  Array<PreTree*> *son_array;
9146
10229
  Array<PreTree*> *daughter_array;
9147
 
  int                    max_sons;
9148
 
  int                    max_daughters;
 
10230
  int              max_sons;
 
10231
  int              max_daughters;
9149
10232
 
9150
10233
protected:
 
10234
  /** Constructor.
 
10235
   *  \param s Number of sons (syntactic child nodes).
 
10236
   *  \param d Number of daughters (semantic child nodes). */
9151
10237
  PreTreeComposite (int s, int d);
9152
10238
    
9153
10239
public:
 
10240
  /** Dynamic number of sons and daughters. */
9154
10241
  static const int DYNAMIC = -1;
9155
10242
 
 
10243
  /** Destructor. */
9156
10244
  virtual ~PreTreeComposite ();
9157
10245
        
 
10246
  /** Part of the tree visitor pattern. Calls the node
 
10247
   *  visiting function suitable for the actual node type. */
9158
10248
  virtual void accept (PreVisitor &) = 0;
9159
10249
 
9160
 
  virtual void add_son (PreTree *);
9161
 
  virtual void replace_son (int, PreTree *);
9162
 
  virtual PreTree *son (int) const;
 
10250
  /** Add a son (syntactic child node). 
 
10251
   *  \param s The son to add. */
 
10252
  virtual void add_son (PreTree *s);
 
10253
  /** Replace the n-th son.
 
10254
   *  \param n The index of the son to replace.
 
10255
   *  \param new_s The new son. */
 
10256
  virtual void replace_son (int n, PreTree *new_s);
 
10257
  /** Get the n-th son. 
 
10258
   *  \param n The index of the son. */
 
10259
  virtual PreTree *son (int n) const;
 
10260
  /** Get the number of sons. */
9163
10261
  virtual int sons () const;
9164
10262
 
9165
 
  virtual void add_daughter (PreTree *);
9166
 
  virtual void replace_daughter (int, PreTree *);
9167
 
  virtual PreTree *daughter (int) const;
 
10263
  /** Add a daughter (semantic child node).
 
10264
   *  \param d The daughter to add. */
 
10265
  virtual void add_daughter (PreTree *d);
 
10266
  /** Replace the n-th daughter.
 
10267
   *  \param n The index of the daughter.
 
10268
   *  \param new_d The new daughter. */
 
10269
  virtual void replace_daughter (int n, PreTree *new_d);
 
10270
  /** Get the n-th daughter.
 
10271
   *  \param n The index of the daughter. */
 
10272
  virtual PreTree *daughter (int n) const;
 
10273
  /** Get the number of daughters. */
9168
10274
  virtual int daughters () const;
9169
10275
        
 
10276
  /** Get the first token of the syntactic construct 
 
10277
   *  represented by the sub-tree. */
9170
10278
  virtual Token *startToken () const;
 
10279
  /** Get the last token of the syntactic construct
 
10280
   *  represented by the sub-tree. */
9171
10281
  virtual Token *endToken () const;
 
10282
public:
 
10283
  typedef AC::TL<Puma::Array< Puma::PreTree * > *,AC::TL<Puma::Array< Puma::PreTree * > *,AC::TL<int,AC::TL<int,AC::TLE > > > > __AttrTypes;
 
10284
  const char *__attr_name (unsigned i) const {
 
10285
    static const char *names[] = { "son_array", "daughter_array", "max_sons", "max_daughters" }; return names[i];
 
10286
  }
 
10287
  const void *__attr (unsigned __i) const {
 
10288
    switch (__i) { case 1: return &son_array; case 3: return &daughter_array; case 4: return &max_sons; case 5: return &max_daughters; default: return 0; }
 
10289
  }
 
10290
#line 90 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
9172
10291
};
9173
10292
 
9174
10293
 
9176
10295
 
9177
10296
#endif /* __syntax_tree_composite__ */
9178
10297
 
9179
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10298
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9180
10299
namespace Puma {
9181
10300
 
9182
10301
 
9183
 
// The root node of the preprocessor syntax tree.
 
10302
/** \class PreProgram PreTreeNodes.h Puma/PreTreeNodes.h
 
10303
 *  The root node of the preprocessor syntax tree. */
9184
10304
 
9185
 
#line 9186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10305
#line 10306 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9186
10306
} // closed Puma
9187
10307
class CCExprResolve;
9188
10308
class CExprResolve;
9205
10325
class CMatchSyntax;
9206
10326
namespace Puma {
9207
10327
 
9208
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10328
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9209
10329
class PreProgram : public PreTreeComposite {
9210
 
#line 9211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10330
#line 10331 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9211
10331
  friend class ::CCExprResolve;
9212
10332
  friend class ::CExprResolve;
9213
10333
  friend class ::WinIfExists;
9228
10348
  friend class ::PragmaOnce;
9229
10349
  friend class ::CMatchSyntax;
9230
10350
 
9231
 
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10351
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9232
10352
 
9233
10353
public:
9234
 
  PreProgram (PreTree* a) : PreTreeComposite (1, 0) 
9235
 
    { add_son (a); };
 
10354
  /** Constructor.
 
10355
   *  \param g The group of preprocessor directives. */
 
10356
  PreProgram (PreTree* g) : PreTreeComposite (1, 0) { 
 
10357
    add_son (g); 
 
10358
  }
9236
10359
 
 
10360
  /** Part of the tree visitor pattern. Calls the node
 
10361
   *  visiting functions suitable for this node type. 
 
10362
   *  \param v The visitor object on which to call the 
 
10363
   *           visiting functions. */
9237
10364
  void accept (PreVisitor &v) {
9238
10365
    v.visitPreProgram_Pre (this);
9239
10366
    v.iterateNodes (this);
9240
10367
    v.visitPreProgram_Post (this);
9241
10368
  }            
 
10369
public:
 
10370
  typedef AC::TLE __AttrTypes;
 
10371
  const char *__attr_name (unsigned i) const { return 0; }
 
10372
  const void *__attr (unsigned __i) const { return 0; }
 
10373
#line 52 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9242
10374
};      
9243
10375
 
9244
10376
 
9245
 
// Assemble groups of directive groups to a `super' group => the program.
 
10377
/** \class PreDirectiveGroups PreTreeNodes.h Puma/PreTreeNodes.h
 
10378
 *  Preprocessor tree node representing the directive groups in the program. */
9246
10379
 
9247
 
#line 9248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10380
#line 10381 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9248
10381
} // closed Puma
9249
10382
class CCExprResolve;
9250
10383
class CExprResolve;
9267
10400
class CMatchSyntax;
9268
10401
namespace Puma {
9269
10402
 
9270
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10403
#line 57 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9271
10404
class PreDirectiveGroups : public PreTreeComposite {
9272
 
#line 9273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10405
#line 10406 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9273
10406
  friend class ::CCExprResolve;
9274
10407
  friend class ::CExprResolve;
9275
10408
  friend class ::WinIfExists;
9290
10423
  friend class ::PragmaOnce;
9291
10424
  friend class ::CMatchSyntax;
9292
10425
 
9293
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10426
#line 57 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9294
10427
 
9295
10428
public:
9296
 
  PreDirectiveGroups () : PreTreeComposite (-1, 0) {};
 
10429
  /** Constructor. */
 
10430
  PreDirectiveGroups () : PreTreeComposite (-1, 0) {}
9297
10431
 
 
10432
  /** Part of the tree visitor pattern. Calls the node
 
10433
   *  visiting functions suitable for this node type. 
 
10434
   *  \param v The visitor object on which to call the 
 
10435
   *           visiting functions. */
9298
10436
  void accept (PreVisitor& v) {
9299
10437
    v.visitPreDirectiveGroups_Pre (this);
9300
10438
    v.iterateNodes (this);
9301
10439
    v.visitPreDirectiveGroups_Post (this);
9302
10440
  }            
 
10441
public:
 
10442
  typedef AC::TLE __AttrTypes;
 
10443
  const char *__attr_name (unsigned i) const { return 0; }
 
10444
  const void *__attr (unsigned __i) const { return 0; }
 
10445
#line 71 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9303
10446
};      
9304
10447
 
9305
10448
 
9306
 
// Assemble conditional directives to a logical group.
9307
 
// Like: #if ... #elif ... #else ... #endif.
 
10449
/** \class PreConditionalGroup PreTreeNodes.h Puma/PreTreeNodes.h
 
10450
 *  Preprocessor tree node representing a group of conditional directives. 
 
10451
 *  Example: \code #if ... #elif ... #else ... #endif \endcode */
9308
10452
 
9309
 
#line 9310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10453
#line 10454 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9310
10454
} // closed Puma
9311
10455
class CCExprResolve;
9312
10456
class CExprResolve;
9329
10473
class CMatchSyntax;
9330
10474
namespace Puma {
9331
10475
 
9332
 
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10476
#line 77 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9333
10477
class PreConditionalGroup : public PreTreeComposite {
9334
 
#line 9335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10478
#line 10479 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9335
10479
  friend class ::CCExprResolve;
9336
10480
  friend class ::CExprResolve;
9337
10481
  friend class ::WinIfExists;
9352
10496
  friend class ::PragmaOnce;
9353
10497
  friend class ::CMatchSyntax;
9354
10498
 
9355
 
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10499
#line 77 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9356
10500
 
9357
10501
public:
9358
 
  PreConditionalGroup (PreTree* a, PreTree* b, PreTree* c) : 
9359
 
    PreTreeComposite (3, 0) // 3 sons, no daughters.
9360
 
    { add_son (a); add_son (b); add_son (c); };
9361
 
        
9362
 
  PreConditionalGroup (PreTree* a, PreTree* b, PreTree* c, PreTree* d) : 
9363
 
    PreTreeComposite (4, 0) // 4 sons, no daughters.
9364
 
    { add_son (a); add_son (b); add_son (c); add_son (d); };
 
10502
  /** Constructor. 
 
10503
   *  \param i The \#if part.
 
10504
   *  \param dg The directive group.
 
10505
   *  \param ei The \#endif part. */
 
10506
  PreConditionalGroup (PreTree* i, PreTree* dg, PreTree* ei) : PreTreeComposite (3, 0) { 
 
10507
    add_son (i); add_son (dg); add_son (ei); 
 
10508
  }
 
10509
  /** Constructor. 
 
10510
   *  \param i The \#if part.
 
10511
   *  \param e The \#elif or \#else part.
 
10512
   *  \param dg The directive group.
 
10513
   *  \param ei The \#endif part. */
 
10514
  PreConditionalGroup (PreTree* i, PreTree* e, PreTree* dg, PreTree* ei) : PreTreeComposite (4, 0) { 
 
10515
    add_son (i); add_son (e); add_son (dg); add_son (ei); 
 
10516
  }
9365
10517
 
 
10518
  /** Part of the tree visitor pattern. Calls the node
 
10519
   *  visiting functions suitable for this node type. 
 
10520
   *  \param v The visitor object on which to call the 
 
10521
   *           visiting functions. */
9366
10522
  void accept (PreVisitor& v) {
9367
10523
    v.visitPreConditionalGroup_Pre (this);
9368
10524
    v.iterateNodes (this);
9369
10525
    v.visitPreConditionalGroup_Post (this);
9370
10526
  }
 
10527
public:
 
10528
  typedef AC::TLE __AttrTypes;
 
10529
  const char *__attr_name (unsigned i) const { return 0; }
 
10530
  const void *__attr (unsigned __i) const { return 0; }
 
10531
#line 104 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9371
10532
};      
9372
10533
 
9373
10534
 
9374
 
// Assemble conditional directives within the else part of a 
9375
 
// conditional group to a logical group.
9376
 
// Like: ... #elif ... #elif ... #elif ... #else.
 
10535
/** \class PreElsePart PreTreeNodes.h Puma/PreTreeNodes.h
 
10536
 *  Preprocessor tree node representing a group of directives 
 
10537
 *  in the \#else part of an \#if conditional. */
9377
10538
 
9378
 
#line 9379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10539
#line 10540 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9379
10540
} // closed Puma
9380
10541
class CCExprResolve;
9381
10542
class CExprResolve;
9398
10559
class CMatchSyntax;
9399
10560
namespace Puma {
9400
10561
 
9401
 
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10562
#line 110 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9402
10563
class PreElsePart : public PreTreeComposite {
9403
 
#line 9404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
10564
#line 10565 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
9404
10565
  friend class ::CCExprResolve;
9405
10566
  friend class ::CExprResolve;
9406
10567
  friend class ::WinIfExists;
9421
10582
  friend class ::PragmaOnce;
9422
10583
  friend class ::CMatchSyntax;
9423
10584
 
9424
 
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10585
#line 110 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9425
10586
 
9426
10587
public:
9427
 
  PreElsePart (PreTree* a, PreTree* b) : 
9428
 
    PreTreeComposite (2, 0) // 2 sons, no daughters.
9429
 
    { add_son (a); add_son (b); };
9430
 
                                        
9431
 
  PreElsePart (PreTree* a, PreTree* b, PreTree* c) : 
9432
 
    PreTreeComposite (3, 0) // 3 sons, no daughters.
9433
 
    { add_son (a); add_son (b); add_son (c); };
 
10588
  /** Constructor. 
 
10589
   *  \param dg The directive group.
 
10590
   *  \param el The \#else directive. */
 
10591
  PreElsePart (PreTree* dg, PreTree* el) : PreTreeComposite (2, 0) { 
 
10592
    add_son (dg); add_son (el); 
 
10593
  }
 
10594
  /** Constructor. 
 
10595
   *  \param ei The preceding \#elif part.
 
10596
   *  \param dg The directive group.
 
10597
   *  \param el The \#else directive. */
 
10598
  PreElsePart (PreTree* ei, PreTree* dg, PreTree* el) : PreTreeComposite (3, 0) { 
 
10599
    add_son (ei); add_son (dg); add_son (el); 
 
10600
  }
9434
10601
 
 
10602
  /** Part of the tree visitor pattern. Calls the node
 
10603
   *  visiting functions suitable for this node type. 
 
10604
   *  \param v The visitor object on which to call the 
 
10605
   *           visiting functions. */
9435
10606
  void accept (PreVisitor& v) {
9436
10607
    v.visitPreElsePart_Pre (this);
9437
10608
    v.iterateNodes (this);
9438
10609
    v.visitPreElsePart_Post (this);
9439
10610
  }
9440
 
};      
9441
 
 
9442
 
 
9443
 
// Assemble conditional directives in the elif part of a conditional 
9444
 
// group to a logical group.
9445
 
// Like: ... #elif ... #elif ... #elif.
9446
 
 
9447
 
#line 9448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9448
 
} // closed Puma
9449
 
class CCExprResolve;
9450
 
class CExprResolve;
9451
 
class WinIfExists;
9452
 
class WinImportHandler;
9453
 
class WinMacros;
9454
 
class WinAsm;
9455
 
class WinDeclSpecs;
9456
 
class WinMemberExplSpec;
9457
 
class WinTypeKeywords;
9458
 
class WinFriend;
9459
 
class ExtAC;
9460
 
class ExtACBuilderCoupling;
9461
 
class ExtACSyntaxCoupling;
9462
 
class ExtACTree;
9463
 
class ExtACKeywords;
9464
 
class ExtGnu;
9465
 
class PragmaOnceUnitState;
9466
 
class PragmaOnce;
9467
 
class CMatchSyntax;
9468
 
namespace Puma {
9469
 
 
9470
 
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9471
 
class PreElifPart : public PreTreeComposite
9472
 
 {
9473
 
#line 9474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9474
 
  friend class ::CCExprResolve;
9475
 
  friend class ::CExprResolve;
9476
 
  friend class ::WinIfExists;
9477
 
  friend class ::WinImportHandler;
9478
 
  friend class ::WinMacros;
9479
 
  friend class ::WinAsm;
9480
 
  friend class ::WinDeclSpecs;
9481
 
  friend class ::WinMemberExplSpec;
9482
 
  friend class ::WinTypeKeywords;
9483
 
  friend class ::WinFriend;
9484
 
  friend class ::ExtAC;
9485
 
  friend class ::ExtACBuilderCoupling;
9486
 
  friend class ::ExtACSyntaxCoupling;
9487
 
  friend class ::ExtACTree;
9488
 
  friend class ::ExtACKeywords;
9489
 
  friend class ::ExtGnu;
9490
 
  friend class ::PragmaOnceUnitState;
9491
 
  friend class ::PragmaOnce;
9492
 
  friend class ::CMatchSyntax;
9493
 
 
9494
 
#line 104 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9495
 
 
9496
 
    public:
9497
 
                                // Dynamic sons, no daughters.
9498
 
        PreElifPart () : PreTreeComposite (-1, 0) {};
9499
 
        
9500
 
        // Add two sons.
9501
 
        void addSons (PreTree* a, PreTree* b)
9502
 
            { add_son (a); add_son (b); };
9503
 
 
9504
 
        void accept (PreVisitor& v)
9505
 
        {
9506
 
            v.visitPreElifPart_Pre (this);
9507
 
            v.iterateNodes (this);
9508
 
            v.visitPreElifPart_Post (this);
9509
 
        }
9510
 
 };      
9511
 
 
9512
 
 
9513
 
// The #if directive.
9514
 
 
9515
 
#line 9516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9516
 
} // closed Puma
9517
 
class CCExprResolve;
9518
 
class CExprResolve;
9519
 
class WinIfExists;
9520
 
class WinImportHandler;
9521
 
class WinMacros;
9522
 
class WinAsm;
9523
 
class WinDeclSpecs;
9524
 
class WinMemberExplSpec;
9525
 
class WinTypeKeywords;
9526
 
class WinFriend;
9527
 
class ExtAC;
9528
 
class ExtACBuilderCoupling;
9529
 
class ExtACSyntaxCoupling;
9530
 
class ExtACTree;
9531
 
class ExtACKeywords;
9532
 
class ExtGnu;
9533
 
class PragmaOnceUnitState;
9534
 
class PragmaOnce;
9535
 
class CMatchSyntax;
9536
 
namespace Puma {
9537
 
 
9538
 
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9539
 
class PreIfDirective : public PreTreeComposite
9540
 
 {
9541
 
#line 9542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9542
 
  friend class ::CCExprResolve;
9543
 
  friend class ::CExprResolve;
9544
 
  friend class ::WinIfExists;
9545
 
  friend class ::WinImportHandler;
9546
 
  friend class ::WinMacros;
9547
 
  friend class ::WinAsm;
9548
 
  friend class ::WinDeclSpecs;
9549
 
  friend class ::WinMemberExplSpec;
9550
 
  friend class ::WinTypeKeywords;
9551
 
  friend class ::WinFriend;
9552
 
  friend class ::ExtAC;
9553
 
  friend class ::ExtACBuilderCoupling;
9554
 
  friend class ::ExtACSyntaxCoupling;
9555
 
  friend class ::ExtACTree;
9556
 
  friend class ::ExtACKeywords;
9557
 
  friend class ::ExtGnu;
9558
 
  friend class ::PragmaOnceUnitState;
9559
 
  friend class ::PragmaOnce;
9560
 
  friend class ::CMatchSyntax;
9561
 
 
9562
 
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9563
 
 
9564
 
    public:
9565
 
                                        
9566
 
        PreIfDirective (PreTree* a, PreTree* b) 
9567
 
                        : PreTreeComposite (2, 1) // 2 sons, 1 daughter.
9568
 
            { add_son (a); add_son (b); };
9569
 
 
9570
 
        void accept (PreVisitor& v)
9571
 
        {
9572
 
            v.visitPreIfDirective_Pre (this);
9573
 
            v.iterateNodes (this);
9574
 
            v.visitPreIfDirective_Post (this);
9575
 
        }
9576
 
 };      
9577
 
 
9578
 
 
9579
 
// The #ifdef directive.
9580
 
 
9581
 
#line 9582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9582
 
} // closed Puma
9583
 
class CCExprResolve;
9584
 
class CExprResolve;
9585
 
class WinIfExists;
9586
 
class WinImportHandler;
9587
 
class WinMacros;
9588
 
class WinAsm;
9589
 
class WinDeclSpecs;
9590
 
class WinMemberExplSpec;
9591
 
class WinTypeKeywords;
9592
 
class WinFriend;
9593
 
class ExtAC;
9594
 
class ExtACBuilderCoupling;
9595
 
class ExtACSyntaxCoupling;
9596
 
class ExtACTree;
9597
 
class ExtACKeywords;
9598
 
class ExtGnu;
9599
 
class PragmaOnceUnitState;
9600
 
class PragmaOnce;
9601
 
class CMatchSyntax;
9602
 
namespace Puma {
9603
 
 
9604
 
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9605
 
class PreIfdefDirective : public PreTreeComposite
9606
 
 {
9607
 
#line 9608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9608
 
  friend class ::CCExprResolve;
9609
 
  friend class ::CExprResolve;
9610
 
  friend class ::WinIfExists;
9611
 
  friend class ::WinImportHandler;
9612
 
  friend class ::WinMacros;
9613
 
  friend class ::WinAsm;
9614
 
  friend class ::WinDeclSpecs;
9615
 
  friend class ::WinMemberExplSpec;
9616
 
  friend class ::WinTypeKeywords;
9617
 
  friend class ::WinFriend;
9618
 
  friend class ::ExtAC;
9619
 
  friend class ::ExtACBuilderCoupling;
9620
 
  friend class ::ExtACSyntaxCoupling;
9621
 
  friend class ::ExtACTree;
9622
 
  friend class ::ExtACKeywords;
9623
 
  friend class ::ExtGnu;
9624
 
  friend class ::PragmaOnceUnitState;
9625
 
  friend class ::PragmaOnce;
9626
 
  friend class ::CMatchSyntax;
9627
 
 
9628
 
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9629
 
 
9630
 
    public:
9631
 
                                        
9632
 
        PreIfdefDirective (PreTree* a, PreTree* b, PreTree* c) 
9633
 
                        : PreTreeComposite (3, 1) // 3 sons, 1 daughter.
9634
 
            { add_son (a); add_son (b); add_son (c); };
9635
 
        PreIfdefDirective (PreTree* a, PreTree* b) 
9636
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughter.
9637
 
            { add_son (a); add_son (b); };
9638
 
 
9639
 
        void accept (PreVisitor& v)
9640
 
        {
9641
 
            v.visitPreIfdefDirective_Pre (this);
9642
 
            v.iterateNodes (this);
9643
 
            v.visitPreIfdefDirective_Post (this);
9644
 
        }
9645
 
 };      
9646
 
 
9647
 
 
9648
 
// The #ifndef directive.
9649
 
 
9650
 
#line 9651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9651
 
} // closed Puma
9652
 
class CCExprResolve;
9653
 
class CExprResolve;
9654
 
class WinIfExists;
9655
 
class WinImportHandler;
9656
 
class WinMacros;
9657
 
class WinAsm;
9658
 
class WinDeclSpecs;
9659
 
class WinMemberExplSpec;
9660
 
class WinTypeKeywords;
9661
 
class WinFriend;
9662
 
class ExtAC;
9663
 
class ExtACBuilderCoupling;
9664
 
class ExtACSyntaxCoupling;
9665
 
class ExtACTree;
9666
 
class ExtACKeywords;
9667
 
class ExtGnu;
9668
 
class PragmaOnceUnitState;
9669
 
class PragmaOnce;
9670
 
class CMatchSyntax;
9671
 
namespace Puma {
9672
 
 
9673
 
#line 162 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9674
 
class PreIfndefDirective : public PreTreeComposite
9675
 
 {
9676
 
#line 9677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9677
 
  friend class ::CCExprResolve;
9678
 
  friend class ::CExprResolve;
9679
 
  friend class ::WinIfExists;
9680
 
  friend class ::WinImportHandler;
9681
 
  friend class ::WinMacros;
9682
 
  friend class ::WinAsm;
9683
 
  friend class ::WinDeclSpecs;
9684
 
  friend class ::WinMemberExplSpec;
9685
 
  friend class ::WinTypeKeywords;
9686
 
  friend class ::WinFriend;
9687
 
  friend class ::ExtAC;
9688
 
  friend class ::ExtACBuilderCoupling;
9689
 
  friend class ::ExtACSyntaxCoupling;
9690
 
  friend class ::ExtACTree;
9691
 
  friend class ::ExtACKeywords;
9692
 
  friend class ::ExtGnu;
9693
 
  friend class ::PragmaOnceUnitState;
9694
 
  friend class ::PragmaOnce;
9695
 
  friend class ::CMatchSyntax;
9696
 
 
9697
 
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9698
 
 
9699
 
    public:
9700
 
                                        
9701
 
        PreIfndefDirective (PreTree* a, PreTree* b, PreTree* c) 
9702
 
                        : PreTreeComposite (3, 1) // 3 sons, 1 daughter.
9703
 
            { add_son (a); add_son (b); add_son (c); };
9704
 
        PreIfndefDirective (PreTree* a, PreTree* b) 
9705
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughter.
9706
 
            { add_son (a); add_son (b); };
9707
 
 
9708
 
        void accept (PreVisitor& v)
9709
 
        {
9710
 
            v.visitPreIfndefDirective_Pre (this);
9711
 
            v.iterateNodes (this);
9712
 
            v.visitPreIfndefDirective_Post (this);
9713
 
        }
9714
 
 };      
9715
 
 
9716
 
 
9717
 
// The #elif directive.
9718
 
 
9719
 
#line 9720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9720
 
} // closed Puma
9721
 
class CCExprResolve;
9722
 
class CExprResolve;
9723
 
class WinIfExists;
9724
 
class WinImportHandler;
9725
 
class WinMacros;
9726
 
class WinAsm;
9727
 
class WinDeclSpecs;
9728
 
class WinMemberExplSpec;
9729
 
class WinTypeKeywords;
9730
 
class WinFriend;
9731
 
class ExtAC;
9732
 
class ExtACBuilderCoupling;
9733
 
class ExtACSyntaxCoupling;
9734
 
class ExtACTree;
9735
 
class ExtACKeywords;
9736
 
class ExtGnu;
9737
 
class PragmaOnceUnitState;
9738
 
class PragmaOnce;
9739
 
class CMatchSyntax;
9740
 
namespace Puma {
9741
 
 
9742
 
#line 183 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9743
 
class PreElifDirective : public PreTreeComposite
9744
 
 {
9745
 
#line 9746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9746
 
  friend class ::CCExprResolve;
9747
 
  friend class ::CExprResolve;
9748
 
  friend class ::WinIfExists;
9749
 
  friend class ::WinImportHandler;
9750
 
  friend class ::WinMacros;
9751
 
  friend class ::WinAsm;
9752
 
  friend class ::WinDeclSpecs;
9753
 
  friend class ::WinMemberExplSpec;
9754
 
  friend class ::WinTypeKeywords;
9755
 
  friend class ::WinFriend;
9756
 
  friend class ::ExtAC;
9757
 
  friend class ::ExtACBuilderCoupling;
9758
 
  friend class ::ExtACSyntaxCoupling;
9759
 
  friend class ::ExtACTree;
9760
 
  friend class ::ExtACKeywords;
9761
 
  friend class ::ExtGnu;
9762
 
  friend class ::PragmaOnceUnitState;
9763
 
  friend class ::PragmaOnce;
9764
 
  friend class ::CMatchSyntax;
9765
 
 
9766
 
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9767
 
 
9768
 
    public:
9769
 
                                        
9770
 
        PreElifDirective (PreTree* a, PreTree* b) 
9771
 
                        : PreTreeComposite (2, 1) // 2 sons, 1 daughter.
9772
 
            { add_son (a); add_son (b); };
9773
 
 
9774
 
        void accept (PreVisitor& v)
9775
 
        {
9776
 
            v.visitPreElifDirective_Pre (this);
9777
 
            v.iterateNodes (this);
9778
 
            v.visitPreElifDirective_Post (this);
9779
 
        }
9780
 
 };      
9781
 
 
9782
 
 
9783
 
// The #else directive.
9784
 
 
9785
 
#line 9786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9786
 
} // closed Puma
9787
 
class CCExprResolve;
9788
 
class CExprResolve;
9789
 
class WinIfExists;
9790
 
class WinImportHandler;
9791
 
class WinMacros;
9792
 
class WinAsm;
9793
 
class WinDeclSpecs;
9794
 
class WinMemberExplSpec;
9795
 
class WinTypeKeywords;
9796
 
class WinFriend;
9797
 
class ExtAC;
9798
 
class ExtACBuilderCoupling;
9799
 
class ExtACSyntaxCoupling;
9800
 
class ExtACTree;
9801
 
class ExtACKeywords;
9802
 
class ExtGnu;
9803
 
class PragmaOnceUnitState;
9804
 
class PragmaOnce;
9805
 
class CMatchSyntax;
9806
 
namespace Puma {
9807
 
 
9808
 
#line 201 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9809
 
class PreElseDirective : public PreTreeComposite
9810
 
 {
9811
 
#line 9812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9812
 
  friend class ::CCExprResolve;
9813
 
  friend class ::CExprResolve;
9814
 
  friend class ::WinIfExists;
9815
 
  friend class ::WinImportHandler;
9816
 
  friend class ::WinMacros;
9817
 
  friend class ::WinAsm;
9818
 
  friend class ::WinDeclSpecs;
9819
 
  friend class ::WinMemberExplSpec;
9820
 
  friend class ::WinTypeKeywords;
9821
 
  friend class ::WinFriend;
9822
 
  friend class ::ExtAC;
9823
 
  friend class ::ExtACBuilderCoupling;
9824
 
  friend class ::ExtACSyntaxCoupling;
9825
 
  friend class ::ExtACTree;
9826
 
  friend class ::ExtACKeywords;
9827
 
  friend class ::ExtGnu;
9828
 
  friend class ::PragmaOnceUnitState;
9829
 
  friend class ::PragmaOnce;
9830
 
  friend class ::CMatchSyntax;
9831
 
 
9832
 
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9833
 
 
9834
 
    public:
9835
 
                                        
9836
 
        PreElseDirective (PreTree* a, PreTree* b) 
9837
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
9838
 
            { add_son (a); add_son (b); };
9839
 
 
9840
 
        void accept (PreVisitor& v)
9841
 
        {
9842
 
            v.visitPreElseDirective_Pre (this);
9843
 
            v.iterateNodes (this);
9844
 
            v.visitPreElseDirective_Post (this);
9845
 
        }
9846
 
 };      
9847
 
 
9848
 
 
9849
 
// The #endif directive.
9850
 
 
9851
 
#line 9852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9852
 
} // closed Puma
9853
 
class CCExprResolve;
9854
 
class CExprResolve;
9855
 
class WinIfExists;
9856
 
class WinImportHandler;
9857
 
class WinMacros;
9858
 
class WinAsm;
9859
 
class WinDeclSpecs;
9860
 
class WinMemberExplSpec;
9861
 
class WinTypeKeywords;
9862
 
class WinFriend;
9863
 
class ExtAC;
9864
 
class ExtACBuilderCoupling;
9865
 
class ExtACSyntaxCoupling;
9866
 
class ExtACTree;
9867
 
class ExtACKeywords;
9868
 
class ExtGnu;
9869
 
class PragmaOnceUnitState;
9870
 
class PragmaOnce;
9871
 
class CMatchSyntax;
9872
 
namespace Puma {
9873
 
 
9874
 
#line 219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9875
 
class PreEndifDirective : public PreTreeComposite
9876
 
 {
9877
 
#line 9878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9878
 
  friend class ::CCExprResolve;
9879
 
  friend class ::CExprResolve;
9880
 
  friend class ::WinIfExists;
9881
 
  friend class ::WinImportHandler;
9882
 
  friend class ::WinMacros;
9883
 
  friend class ::WinAsm;
9884
 
  friend class ::WinDeclSpecs;
9885
 
  friend class ::WinMemberExplSpec;
9886
 
  friend class ::WinTypeKeywords;
9887
 
  friend class ::WinFriend;
9888
 
  friend class ::ExtAC;
9889
 
  friend class ::ExtACBuilderCoupling;
9890
 
  friend class ::ExtACSyntaxCoupling;
9891
 
  friend class ::ExtACTree;
9892
 
  friend class ::ExtACKeywords;
9893
 
  friend class ::ExtGnu;
9894
 
  friend class ::PragmaOnceUnitState;
9895
 
  friend class ::PragmaOnce;
9896
 
  friend class ::CMatchSyntax;
9897
 
 
9898
 
#line 220 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9899
 
 
9900
 
    public:
9901
 
                                        
9902
 
        PreEndifDirective (PreTree* a, PreTree* b) 
9903
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
9904
 
            { add_son (a); add_son (b); };
9905
 
 
9906
 
        void accept (PreVisitor& v)
9907
 
        {
9908
 
            v.visitPreEndifDirective_Pre (this);
9909
 
            v.iterateNodes (this);
9910
 
            v.visitPreEndifDirective_Post (this);
9911
 
        }
9912
 
 };      
9913
 
 
9914
 
 
9915
 
// The #include and #include_next directive.
9916
 
 
9917
 
#line 9918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9918
 
} // closed Puma
9919
 
class CCExprResolve;
9920
 
class CExprResolve;
9921
 
class WinIfExists;
9922
 
class WinImportHandler;
9923
 
class WinMacros;
9924
 
class WinAsm;
9925
 
class WinDeclSpecs;
9926
 
class WinMemberExplSpec;
9927
 
class WinTypeKeywords;
9928
 
class WinFriend;
9929
 
class ExtAC;
9930
 
class ExtACBuilderCoupling;
9931
 
class ExtACSyntaxCoupling;
9932
 
class ExtACTree;
9933
 
class ExtACKeywords;
9934
 
class ExtGnu;
9935
 
class PragmaOnceUnitState;
9936
 
class PragmaOnce;
9937
 
class CMatchSyntax;
9938
 
namespace Puma {
9939
 
 
9940
 
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9941
 
class PreIncludeDirective : public PreTreeComposite
9942
 
 {
9943
 
#line 9944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9944
 
  friend class ::CCExprResolve;
9945
 
  friend class ::CExprResolve;
9946
 
  friend class ::WinIfExists;
9947
 
  friend class ::WinImportHandler;
9948
 
  friend class ::WinMacros;
9949
 
  friend class ::WinAsm;
9950
 
  friend class ::WinDeclSpecs;
9951
 
  friend class ::WinMemberExplSpec;
9952
 
  friend class ::WinTypeKeywords;
9953
 
  friend class ::WinFriend;
9954
 
  friend class ::ExtAC;
9955
 
  friend class ::ExtACBuilderCoupling;
9956
 
  friend class ::ExtACSyntaxCoupling;
9957
 
  friend class ::ExtACTree;
9958
 
  friend class ::ExtACKeywords;
9959
 
  friend class ::ExtGnu;
9960
 
  friend class ::PragmaOnceUnitState;
9961
 
  friend class ::PragmaOnce;
9962
 
  friend class ::CMatchSyntax;
9963
 
 
9964
 
#line 238 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9965
 
 
9966
 
        int _depth;
9967
 
 
9968
 
    public:
9969
 
                                        
9970
 
        PreIncludeDirective (PreTree* a, PreTree* b) 
9971
 
                        : PreTreeComposite (2, 1) // 2 sons, 1 daughter.
9972
 
            { add_son (a); add_son (b); _depth = -1; };
9973
 
 
9974
 
        void accept (PreVisitor& v)
9975
 
        {
9976
 
            v.visitPreIncludeDirective_Pre (this);
9977
 
            v.iterateNodes (this);
9978
 
            v.visitPreIncludeDirective_Post (this);
9979
 
        }
9980
 
        
9981
 
        int depth () const 
9982
 
        {
9983
 
            return _depth;
9984
 
        }
9985
 
 
9986
 
        void depth (int d)
9987
 
        {
9988
 
            _depth = d;
9989
 
        }
9990
 
        
9991
 
        bool is_forced () const {
9992
 
          return !((Unit*)startToken ()->belonging_to ())->isFile ();
9993
 
        }
9994
 
 };      
9995
 
 
9996
 
 
9997
 
// The #assert directive.
9998
 
 
9999
 
#line 10000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10000
 
} // closed Puma
10001
 
class CCExprResolve;
10002
 
class CExprResolve;
10003
 
class WinIfExists;
10004
 
class WinImportHandler;
10005
 
class WinMacros;
10006
 
class WinAsm;
10007
 
class WinDeclSpecs;
10008
 
class WinMemberExplSpec;
10009
 
class WinTypeKeywords;
10010
 
class WinFriend;
10011
 
class ExtAC;
10012
 
class ExtACBuilderCoupling;
10013
 
class ExtACSyntaxCoupling;
10014
 
class ExtACTree;
10015
 
class ExtACKeywords;
10016
 
class ExtGnu;
10017
 
class PragmaOnceUnitState;
10018
 
class PragmaOnce;
10019
 
class CMatchSyntax;
10020
 
namespace Puma {
10021
 
 
10022
 
#line 271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10023
 
class PreAssertDirective : public PreTreeComposite
10024
 
 {
10025
 
#line 10026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10026
 
  friend class ::CCExprResolve;
10027
 
  friend class ::CExprResolve;
10028
 
  friend class ::WinIfExists;
10029
 
  friend class ::WinImportHandler;
10030
 
  friend class ::WinMacros;
10031
 
  friend class ::WinAsm;
10032
 
  friend class ::WinDeclSpecs;
10033
 
  friend class ::WinMemberExplSpec;
10034
 
  friend class ::WinTypeKeywords;
10035
 
  friend class ::WinFriend;
10036
 
  friend class ::ExtAC;
10037
 
  friend class ::ExtACBuilderCoupling;
10038
 
  friend class ::ExtACSyntaxCoupling;
10039
 
  friend class ::ExtACTree;
10040
 
  friend class ::ExtACKeywords;
10041
 
  friend class ::ExtGnu;
10042
 
  friend class ::PragmaOnceUnitState;
10043
 
  friend class ::PragmaOnce;
10044
 
  friend class ::CMatchSyntax;
10045
 
 
10046
 
#line 272 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10047
 
 
10048
 
    public:
10049
 
                                        
10050
 
        PreAssertDirective (PreTree* a, PreTree* b, PreTree* c) 
10051
 
                        : PreTreeComposite (3, 0) // 3 sons, no daughters.
10052
 
            { add_son (a); add_son (b); add_son (c); };
10053
 
        PreAssertDirective (PreTree* a, PreTree* b) 
10054
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10055
 
            { add_son (a); add_son (b); };
10056
 
 
10057
 
        void accept (PreVisitor& v)
10058
 
        {
10059
 
            v.visitPreAssertDirective_Pre (this);
10060
 
            v.iterateNodes (this);
10061
 
            v.visitPreAssertDirective_Post (this);
10062
 
        }
10063
 
 };      
10064
 
 
10065
 
 
10066
 
// The #unassert directive.
10067
 
 
10068
 
#line 10069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10069
 
} // closed Puma
10070
 
class CCExprResolve;
10071
 
class CExprResolve;
10072
 
class WinIfExists;
10073
 
class WinImportHandler;
10074
 
class WinMacros;
10075
 
class WinAsm;
10076
 
class WinDeclSpecs;
10077
 
class WinMemberExplSpec;
10078
 
class WinTypeKeywords;
10079
 
class WinFriend;
10080
 
class ExtAC;
10081
 
class ExtACBuilderCoupling;
10082
 
class ExtACSyntaxCoupling;
10083
 
class ExtACTree;
10084
 
class ExtACKeywords;
10085
 
class ExtGnu;
10086
 
class PragmaOnceUnitState;
10087
 
class PragmaOnce;
10088
 
class CMatchSyntax;
10089
 
namespace Puma {
10090
 
 
10091
 
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10092
 
class PreUnassertDirective : public PreTreeComposite
10093
 
 {
10094
 
#line 10095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10095
 
  friend class ::CCExprResolve;
10096
 
  friend class ::CExprResolve;
10097
 
  friend class ::WinIfExists;
10098
 
  friend class ::WinImportHandler;
10099
 
  friend class ::WinMacros;
10100
 
  friend class ::WinAsm;
10101
 
  friend class ::WinDeclSpecs;
10102
 
  friend class ::WinMemberExplSpec;
10103
 
  friend class ::WinTypeKeywords;
10104
 
  friend class ::WinFriend;
10105
 
  friend class ::ExtAC;
10106
 
  friend class ::ExtACBuilderCoupling;
10107
 
  friend class ::ExtACSyntaxCoupling;
10108
 
  friend class ::ExtACTree;
10109
 
  friend class ::ExtACKeywords;
10110
 
  friend class ::ExtGnu;
10111
 
  friend class ::PragmaOnceUnitState;
10112
 
  friend class ::PragmaOnce;
10113
 
  friend class ::CMatchSyntax;
10114
 
 
10115
 
#line 293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10116
 
 
10117
 
    public:
10118
 
                                        
10119
 
        PreUnassertDirective (PreTree* a, PreTree* b, PreTree* c) 
10120
 
                        : PreTreeComposite (3, 0) // 3 sons, no daughters.
10121
 
            { add_son (a); add_son (b); add_son (c); };
10122
 
        PreUnassertDirective (PreTree* a, PreTree* b) 
10123
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10124
 
            { add_son (a); add_son (b); };
10125
 
 
10126
 
        void accept (PreVisitor& v)
10127
 
        {
10128
 
            v.visitPreUnassertDirective_Pre (this);
10129
 
            v.iterateNodes (this);
10130
 
            v.visitPreUnassertDirective_Post (this);
10131
 
        }
10132
 
 };      
10133
 
 
10134
 
 
10135
 
// The #define directive that defines function-like macros.
10136
 
// Like: #define FUNCTION (id,...,id) ... ... ...
10137
 
 
10138
 
#line 10139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10139
 
} // closed Puma
10140
 
class CCExprResolve;
10141
 
class CExprResolve;
10142
 
class WinIfExists;
10143
 
class WinImportHandler;
10144
 
class WinMacros;
10145
 
class WinAsm;
10146
 
class WinDeclSpecs;
10147
 
class WinMemberExplSpec;
10148
 
class WinTypeKeywords;
10149
 
class WinFriend;
10150
 
class ExtAC;
10151
 
class ExtACBuilderCoupling;
10152
 
class ExtACSyntaxCoupling;
10153
 
class ExtACTree;
10154
 
class ExtACKeywords;
10155
 
class ExtGnu;
10156
 
class PragmaOnceUnitState;
10157
 
class PragmaOnce;
10158
 
class CMatchSyntax;
10159
 
namespace Puma {
10160
 
 
10161
 
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10162
 
class PreDefineFunctionDirective : public PreTreeComposite
10163
 
 {
10164
 
#line 10165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10165
 
  friend class ::CCExprResolve;
10166
 
  friend class ::CExprResolve;
10167
 
  friend class ::WinIfExists;
10168
 
  friend class ::WinImportHandler;
10169
 
  friend class ::WinMacros;
10170
 
  friend class ::WinAsm;
10171
 
  friend class ::WinDeclSpecs;
10172
 
  friend class ::WinMemberExplSpec;
10173
 
  friend class ::WinTypeKeywords;
10174
 
  friend class ::WinFriend;
10175
 
  friend class ::ExtAC;
10176
 
  friend class ::ExtACBuilderCoupling;
10177
 
  friend class ::ExtACSyntaxCoupling;
10178
 
  friend class ::ExtACTree;
10179
 
  friend class ::ExtACKeywords;
10180
 
  friend class ::ExtGnu;
10181
 
  friend class ::PragmaOnceUnitState;
10182
 
  friend class ::PragmaOnce;
10183
 
  friend class ::CMatchSyntax;
10184
 
 
10185
 
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10186
 
 
10187
 
    public:
10188
 
                                        
10189
 
        PreDefineFunctionDirective (PreTree* a, PreTree* b, 
10190
 
                                    PreTree* c, PreTree* d, 
10191
 
                                    PreTree* e, PreTree* f, 
10192
 
                                    PreTree* g, PreTree* h) 
10193
 
                        : PreTreeComposite (8, 0) // 8 sons, no daughters.
10194
 
            { add_son (a); add_son (b); add_son (c); add_son (d);
10195
 
              add_son (e); add_son (f); add_son (g); add_son (h); }
10196
 
 
10197
 
        PreDefineFunctionDirective (PreTree* a, PreTree* b, 
10198
 
                                    PreTree* c, PreTree* d, 
10199
 
                                    PreTree* e, PreTree* f, 
10200
 
                                    PreTree* g) 
10201
 
                        : PreTreeComposite (7, 0) // 7 sons, no daughters.
10202
 
            { add_son (a); add_son (b); add_son (c); add_son (d);
10203
 
              add_son (e); add_son (f); add_son (g); }
10204
 
 
10205
 
        PreDefineFunctionDirective (PreTree* a, PreTree* b, 
10206
 
                                    PreTree* c, PreTree* d, 
10207
 
                                    PreTree* e, PreTree* f) 
10208
 
                        : PreTreeComposite (6, 0) // 6 sons, no daughters.
10209
 
            { add_son (a); add_son (b); add_son (c); add_son (d);
10210
 
              add_son (e); add_son (f); }
10211
 
        
10212
 
        PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, 
10213
 
                                   PreTree* d, PreTree* e) 
10214
 
                        : PreTreeComposite (5, 0) // 5 sons, no daughters.
10215
 
            { add_son (a); add_son (b); add_son (c); add_son (d); add_son (e); }
10216
 
 
10217
 
        void accept (PreVisitor& v)
10218
 
        {
10219
 
            v.visitPreDefineFunctionDirective_Pre (this);
10220
 
            v.iterateNodes (this);
10221
 
            v.visitPreDefineFunctionDirective_Post (this);
10222
 
        }
10223
 
 };              
10224
 
 
10225
 
 
10226
 
// The #define directive that defines symbolic constants macros.
10227
 
// Like: #define CONSTANT ... ... ...
10228
 
 
10229
 
#line 10230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10230
 
} // closed Puma
10231
 
class CCExprResolve;
10232
 
class CExprResolve;
10233
 
class WinIfExists;
10234
 
class WinImportHandler;
10235
 
class WinMacros;
10236
 
class WinAsm;
10237
 
class WinDeclSpecs;
10238
 
class WinMemberExplSpec;
10239
 
class WinTypeKeywords;
10240
 
class WinFriend;
10241
 
class ExtAC;
10242
 
class ExtACBuilderCoupling;
10243
 
class ExtACSyntaxCoupling;
10244
 
class ExtACTree;
10245
 
class ExtACKeywords;
10246
 
class ExtGnu;
10247
 
class PragmaOnceUnitState;
10248
 
class PragmaOnce;
10249
 
class CMatchSyntax;
10250
 
namespace Puma {
10251
 
 
10252
 
#line 357 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10253
 
class PreDefineConstantDirective : public PreTreeComposite
10254
 
 {
10255
 
#line 10256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10256
 
  friend class ::CCExprResolve;
10257
 
  friend class ::CExprResolve;
10258
 
  friend class ::WinIfExists;
10259
 
  friend class ::WinImportHandler;
10260
 
  friend class ::WinMacros;
10261
 
  friend class ::WinAsm;
10262
 
  friend class ::WinDeclSpecs;
10263
 
  friend class ::WinMemberExplSpec;
10264
 
  friend class ::WinTypeKeywords;
10265
 
  friend class ::WinFriend;
10266
 
  friend class ::ExtAC;
10267
 
  friend class ::ExtACBuilderCoupling;
10268
 
  friend class ::ExtACSyntaxCoupling;
10269
 
  friend class ::ExtACTree;
10270
 
  friend class ::ExtACKeywords;
10271
 
  friend class ::ExtGnu;
10272
 
  friend class ::PragmaOnceUnitState;
10273
 
  friend class ::PragmaOnce;
10274
 
  friend class ::CMatchSyntax;
10275
 
 
10276
 
#line 358 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10277
 
 
10278
 
    public:
10279
 
                                        
10280
 
        PreDefineConstantDirective (PreTree* a, PreTree* b, PreTree* c) 
10281
 
                        : PreTreeComposite (3, 0) // 3 sons, no daughters.
10282
 
            { add_son (a); add_son (b); add_son (c); };
10283
 
        PreDefineConstantDirective (PreTree* a, PreTree* b) 
10284
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10285
 
            { add_son (a); add_son (b); };
10286
 
 
10287
 
        void accept (PreVisitor& v)
10288
 
        {
10289
 
            v.visitPreDefineConstantDirective_Pre (this);
10290
 
            v.iterateNodes (this);
10291
 
            v.visitPreDefineConstantDirective_Post (this);
10292
 
        }
10293
 
 };      
10294
 
 
10295
 
 
10296
 
// The #undef directive.
10297
 
 
10298
 
#line 10299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10299
 
} // closed Puma
10300
 
class CCExprResolve;
10301
 
class CExprResolve;
10302
 
class WinIfExists;
10303
 
class WinImportHandler;
10304
 
class WinMacros;
10305
 
class WinAsm;
10306
 
class WinDeclSpecs;
10307
 
class WinMemberExplSpec;
10308
 
class WinTypeKeywords;
10309
 
class WinFriend;
10310
 
class ExtAC;
10311
 
class ExtACBuilderCoupling;
10312
 
class ExtACSyntaxCoupling;
10313
 
class ExtACTree;
10314
 
class ExtACKeywords;
10315
 
class ExtGnu;
10316
 
class PragmaOnceUnitState;
10317
 
class PragmaOnce;
10318
 
class CMatchSyntax;
10319
 
namespace Puma {
10320
 
 
10321
 
#line 378 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10322
 
class PreUndefDirective : public PreTreeComposite
10323
 
 {
10324
 
#line 10325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10325
 
  friend class ::CCExprResolve;
10326
 
  friend class ::CExprResolve;
10327
 
  friend class ::WinIfExists;
10328
 
  friend class ::WinImportHandler;
10329
 
  friend class ::WinMacros;
10330
 
  friend class ::WinAsm;
10331
 
  friend class ::WinDeclSpecs;
10332
 
  friend class ::WinMemberExplSpec;
10333
 
  friend class ::WinTypeKeywords;
10334
 
  friend class ::WinFriend;
10335
 
  friend class ::ExtAC;
10336
 
  friend class ::ExtACBuilderCoupling;
10337
 
  friend class ::ExtACSyntaxCoupling;
10338
 
  friend class ::ExtACTree;
10339
 
  friend class ::ExtACKeywords;
10340
 
  friend class ::ExtGnu;
10341
 
  friend class ::PragmaOnceUnitState;
10342
 
  friend class ::PragmaOnce;
10343
 
  friend class ::CMatchSyntax;
10344
 
 
10345
 
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10346
 
 
10347
 
    public:
10348
 
                                        
10349
 
        PreUndefDirective (PreTree* a, PreTree* b, PreTree* c) 
10350
 
                        : PreTreeComposite (3, 0) // 3 sons, no daughters.
10351
 
            { add_son (a); add_son (b); add_son (c); };
10352
 
        PreUndefDirective (PreTree* a, PreTree* b) 
10353
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10354
 
            { add_son (a); add_son (b); };
10355
 
 
10356
 
        void accept (PreVisitor& v)
10357
 
        {
10358
 
            v.visitPreUndefDirective_Pre (this);
10359
 
            v.iterateNodes (this);
10360
 
            v.visitPreUndefDirective_Post (this);
10361
 
        }
10362
 
 };      
10363
 
 
10364
 
 
10365
 
// The #warning directive.
10366
 
 
10367
 
#line 10368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10368
 
} // closed Puma
10369
 
class CCExprResolve;
10370
 
class CExprResolve;
10371
 
class WinIfExists;
10372
 
class WinImportHandler;
10373
 
class WinMacros;
10374
 
class WinAsm;
10375
 
class WinDeclSpecs;
10376
 
class WinMemberExplSpec;
10377
 
class WinTypeKeywords;
10378
 
class WinFriend;
10379
 
class ExtAC;
10380
 
class ExtACBuilderCoupling;
10381
 
class ExtACSyntaxCoupling;
10382
 
class ExtACTree;
10383
 
class ExtACKeywords;
10384
 
class ExtGnu;
10385
 
class PragmaOnceUnitState;
10386
 
class PragmaOnce;
10387
 
class CMatchSyntax;
10388
 
namespace Puma {
10389
 
 
10390
 
#line 399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10391
 
class PreWarningDirective : public PreTreeComposite
10392
 
 {
10393
 
#line 10394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10394
 
  friend class ::CCExprResolve;
10395
 
  friend class ::CExprResolve;
10396
 
  friend class ::WinIfExists;
10397
 
  friend class ::WinImportHandler;
10398
 
  friend class ::WinMacros;
10399
 
  friend class ::WinAsm;
10400
 
  friend class ::WinDeclSpecs;
10401
 
  friend class ::WinMemberExplSpec;
10402
 
  friend class ::WinTypeKeywords;
10403
 
  friend class ::WinFriend;
10404
 
  friend class ::ExtAC;
10405
 
  friend class ::ExtACBuilderCoupling;
10406
 
  friend class ::ExtACSyntaxCoupling;
10407
 
  friend class ::ExtACTree;
10408
 
  friend class ::ExtACKeywords;
10409
 
  friend class ::ExtGnu;
10410
 
  friend class ::PragmaOnceUnitState;
10411
 
  friend class ::PragmaOnce;
10412
 
  friend class ::CMatchSyntax;
10413
 
 
10414
 
#line 400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10415
 
 
10416
 
    public:
10417
 
                                        
10418
 
        PreWarningDirective (PreTree* a, PreTree* b) 
10419
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10420
 
            { add_son (a); add_son (b); };
10421
 
 
10422
 
        void accept (PreVisitor& v)
10423
 
        {
10424
 
            v.visitPreWarningDirective_Pre (this);
10425
 
            v.iterateNodes (this);
10426
 
            v.visitPreWarningDirective_Post (this);
10427
 
        }
10428
 
 };      
10429
 
 
10430
 
 
10431
 
// The #error directive.
10432
 
 
10433
 
#line 10434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10434
 
} // closed Puma
10435
 
class CCExprResolve;
10436
 
class CExprResolve;
10437
 
class WinIfExists;
10438
 
class WinImportHandler;
10439
 
class WinMacros;
10440
 
class WinAsm;
10441
 
class WinDeclSpecs;
10442
 
class WinMemberExplSpec;
10443
 
class WinTypeKeywords;
10444
 
class WinFriend;
10445
 
class ExtAC;
10446
 
class ExtACBuilderCoupling;
10447
 
class ExtACSyntaxCoupling;
10448
 
class ExtACTree;
10449
 
class ExtACKeywords;
10450
 
class ExtGnu;
10451
 
class PragmaOnceUnitState;
10452
 
class PragmaOnce;
10453
 
class CMatchSyntax;
10454
 
namespace Puma {
10455
 
 
10456
 
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10457
 
class PreErrorDirective : public PreTreeComposite
10458
 
 {
10459
 
#line 10460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10460
 
  friend class ::CCExprResolve;
10461
 
  friend class ::CExprResolve;
10462
 
  friend class ::WinIfExists;
10463
 
  friend class ::WinImportHandler;
10464
 
  friend class ::WinMacros;
10465
 
  friend class ::WinAsm;
10466
 
  friend class ::WinDeclSpecs;
10467
 
  friend class ::WinMemberExplSpec;
10468
 
  friend class ::WinTypeKeywords;
10469
 
  friend class ::WinFriend;
10470
 
  friend class ::ExtAC;
10471
 
  friend class ::ExtACBuilderCoupling;
10472
 
  friend class ::ExtACSyntaxCoupling;
10473
 
  friend class ::ExtACTree;
10474
 
  friend class ::ExtACKeywords;
10475
 
  friend class ::ExtGnu;
10476
 
  friend class ::PragmaOnceUnitState;
10477
 
  friend class ::PragmaOnce;
10478
 
  friend class ::CMatchSyntax;
10479
 
 
10480
 
#line 418 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10481
 
 
10482
 
    public:
10483
 
                                        
10484
 
        PreErrorDirective (PreTree* a, PreTree* b) 
10485
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10486
 
            { add_son (a); add_son (b); };
10487
 
 
10488
 
        void accept (PreVisitor& v)
10489
 
        {
10490
 
            v.visitPreErrorDirective_Pre (this);
10491
 
            v.iterateNodes (this);
10492
 
            v.visitPreErrorDirective_Post (this);
10493
 
        }
10494
 
 };      
10495
 
 
10496
 
 
10497
 
// Collects comma separated argument identifiers for a function-like macro.
10498
 
// Like: id, id, ..., id.
10499
 
 
10500
 
#line 10501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10501
 
} // closed Puma
10502
 
class CCExprResolve;
10503
 
class CExprResolve;
10504
 
class WinIfExists;
10505
 
class WinImportHandler;
10506
 
class WinMacros;
10507
 
class WinAsm;
10508
 
class WinDeclSpecs;
10509
 
class WinMemberExplSpec;
10510
 
class WinTypeKeywords;
10511
 
class WinFriend;
10512
 
class ExtAC;
10513
 
class ExtACBuilderCoupling;
10514
 
class ExtACSyntaxCoupling;
10515
 
class ExtACTree;
10516
 
class ExtACKeywords;
10517
 
class ExtGnu;
10518
 
class PragmaOnceUnitState;
10519
 
class PragmaOnce;
10520
 
class CMatchSyntax;
10521
 
namespace Puma {
10522
 
 
10523
 
#line 436 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10524
 
class PreIdentifierList : public PreTreeComposite
10525
 
 {
10526
 
#line 10527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10527
 
  friend class ::CCExprResolve;
10528
 
  friend class ::CExprResolve;
10529
 
  friend class ::WinIfExists;
10530
 
  friend class ::WinImportHandler;
10531
 
  friend class ::WinMacros;
10532
 
  friend class ::WinAsm;
10533
 
  friend class ::WinDeclSpecs;
10534
 
  friend class ::WinMemberExplSpec;
10535
 
  friend class ::WinTypeKeywords;
10536
 
  friend class ::WinFriend;
10537
 
  friend class ::ExtAC;
10538
 
  friend class ::ExtACBuilderCoupling;
10539
 
  friend class ::ExtACSyntaxCoupling;
10540
 
  friend class ::ExtACTree;
10541
 
  friend class ::ExtACKeywords;
10542
 
  friend class ::ExtGnu;
10543
 
  friend class ::PragmaOnceUnitState;
10544
 
  friend class ::PragmaOnce;
10545
 
  friend class ::CMatchSyntax;
10546
 
 
10547
 
#line 437 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10548
 
 
10549
 
    public:
10550
 
                                        // Dynamic sons, no daughters. 
10551
 
        PreIdentifierList (PreTree* a) : PreTreeComposite (-1, 0)
10552
 
            { add_son (a); };
10553
 
        
10554
 
        // Add two sons.
10555
 
        void addSons (PreTree* a, PreTree* b)
10556
 
            { add_son (a); add_son (b); };
10557
 
 
10558
 
        void accept (PreVisitor& v)
10559
 
        {
10560
 
            v.visitPreIdentifierList_Pre (this);
10561
 
            v.iterateNodes (this);
10562
 
            v.visitPreIdentifierList_Post (this);
10563
 
        }
10564
 
 };      
10565
 
 
10566
 
 
10567
 
// Collects every kind of token  (except comments) for the macro body.
10568
 
 
10569
 
#line 10570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10570
 
} // closed Puma
10571
 
class CCExprResolve;
10572
 
class CExprResolve;
10573
 
class WinIfExists;
10574
 
class WinImportHandler;
10575
 
class WinMacros;
10576
 
class WinAsm;
10577
 
class WinDeclSpecs;
10578
 
class WinMemberExplSpec;
10579
 
class WinTypeKeywords;
10580
 
class WinFriend;
10581
 
class ExtAC;
10582
 
class ExtACBuilderCoupling;
10583
 
class ExtACSyntaxCoupling;
10584
 
class ExtACTree;
10585
 
class ExtACKeywords;
10586
 
class ExtGnu;
10587
 
class PragmaOnceUnitState;
10588
 
class PragmaOnce;
10589
 
class CMatchSyntax;
10590
 
namespace Puma {
10591
 
 
10592
 
#line 457 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10593
 
class PreTokenList : public PreTreeComposite
10594
 
 {
10595
 
#line 10596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10596
 
  friend class ::CCExprResolve;
10597
 
  friend class ::CExprResolve;
10598
 
  friend class ::WinIfExists;
10599
 
  friend class ::WinImportHandler;
10600
 
  friend class ::WinMacros;
10601
 
  friend class ::WinAsm;
10602
 
  friend class ::WinDeclSpecs;
10603
 
  friend class ::WinMemberExplSpec;
10604
 
  friend class ::WinTypeKeywords;
10605
 
  friend class ::WinFriend;
10606
 
  friend class ::ExtAC;
10607
 
  friend class ::ExtACBuilderCoupling;
10608
 
  friend class ::ExtACSyntaxCoupling;
10609
 
  friend class ::ExtACTree;
10610
 
  friend class ::ExtACKeywords;
10611
 
  friend class ::ExtGnu;
10612
 
  friend class ::PragmaOnceUnitState;
10613
 
  friend class ::PragmaOnce;
10614
 
  friend class ::CMatchSyntax;
10615
 
 
10616
 
#line 458 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10617
 
 
10618
 
    public:
10619
 
                                        
10620
 
        PreTokenList (PreTree* a, PreTree* b) 
10621
 
                        : PreTreeComposite (2, 0) // 2 sons, no daughters.
10622
 
            { add_son (a); add_son (b); };
10623
 
        PreTokenList (PreTree* a) 
10624
 
                        : PreTreeComposite (1, 0) // 1 son, no daughters.
10625
 
            { add_son (a); };
10626
 
        PreTokenList () : PreTreeComposite (0, 0) // no sons, no daughters.
10627
 
            { };
10628
 
        
10629
 
        void accept (PreVisitor& v)
10630
 
        {
10631
 
            v.visitPreTokenList_Pre (this);
10632
 
            v.iterateNodes (this);
10633
 
            v.visitPreTokenList_Post (this);
10634
 
        }
10635
 
 };      
10636
 
 
10637
 
 
10638
 
// Contains every kind of token  (except comments) for the macro body.
10639
 
 
10640
 
#line 10641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10641
 
} // closed Puma
10642
 
class CCExprResolve;
10643
 
class CExprResolve;
10644
 
class WinIfExists;
10645
 
class WinImportHandler;
10646
 
class WinMacros;
10647
 
class WinAsm;
10648
 
class WinDeclSpecs;
10649
 
class WinMemberExplSpec;
10650
 
class WinTypeKeywords;
10651
 
class WinFriend;
10652
 
class ExtAC;
10653
 
class ExtACBuilderCoupling;
10654
 
class ExtACSyntaxCoupling;
10655
 
class ExtACTree;
10656
 
class ExtACKeywords;
10657
 
class ExtGnu;
10658
 
class PragmaOnceUnitState;
10659
 
class PragmaOnce;
10660
 
class CMatchSyntax;
10661
 
namespace Puma {
10662
 
 
10663
 
#line 480 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10664
 
class PreTokenListPart : public PreTreeComposite
10665
 
 {
10666
 
#line 10667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10667
 
  friend class ::CCExprResolve;
10668
 
  friend class ::CExprResolve;
10669
 
  friend class ::WinIfExists;
10670
 
  friend class ::WinImportHandler;
10671
 
  friend class ::WinMacros;
10672
 
  friend class ::WinAsm;
10673
 
  friend class ::WinDeclSpecs;
10674
 
  friend class ::WinMemberExplSpec;
10675
 
  friend class ::WinTypeKeywords;
10676
 
  friend class ::WinFriend;
10677
 
  friend class ::ExtAC;
10678
 
  friend class ::ExtACBuilderCoupling;
10679
 
  friend class ::ExtACSyntaxCoupling;
10680
 
  friend class ::ExtACTree;
10681
 
  friend class ::ExtACKeywords;
10682
 
  friend class ::ExtGnu;
10683
 
  friend class ::PragmaOnceUnitState;
10684
 
  friend class ::PragmaOnce;
10685
 
  friend class ::CMatchSyntax;
10686
 
 
10687
 
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10688
 
 
10689
 
    public:
10690
 
                                        // Dynamic sons, no daughters.
10691
 
        PreTokenListPart (PreTree* a) : PreTreeComposite (-1, 0)
10692
 
            { add_son (a); };
10693
 
        
10694
 
        void accept (PreVisitor& v)
10695
 
        {
10696
 
            v.visitPreTokenListPart_Pre (this);
10697
 
            v.iterateNodes (this);
10698
 
            v.visitPreTokenListPart_Post (this);
10699
 
        }
10700
 
 };      
10701
 
 
10702
 
 
10703
 
// Semantic node for conditionals.
10704
 
 
10705
 
#line 10706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10706
 
} // closed Puma
10707
 
class CCExprResolve;
10708
 
class CExprResolve;
10709
 
class WinIfExists;
10710
 
class WinImportHandler;
10711
 
class WinMacros;
10712
 
class WinAsm;
10713
 
class WinDeclSpecs;
10714
 
class WinMemberExplSpec;
10715
 
class WinTypeKeywords;
10716
 
class WinFriend;
10717
 
class ExtAC;
10718
 
class ExtACBuilderCoupling;
10719
 
class ExtACSyntaxCoupling;
10720
 
class ExtACTree;
10721
 
class ExtACKeywords;
10722
 
class ExtGnu;
10723
 
class PragmaOnceUnitState;
10724
 
class PragmaOnce;
10725
 
class CMatchSyntax;
10726
 
namespace Puma {
10727
 
 
10728
 
#line 497 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10729
 
class PreCondSemNode : public PreTree
10730
 
 {
10731
 
#line 10732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10732
 
  friend class ::CCExprResolve;
10733
 
  friend class ::CExprResolve;
10734
 
  friend class ::WinIfExists;
10735
 
  friend class ::WinImportHandler;
10736
 
  friend class ::WinMacros;
10737
 
  friend class ::WinAsm;
10738
 
  friend class ::WinDeclSpecs;
10739
 
  friend class ::WinMemberExplSpec;
10740
 
  friend class ::WinTypeKeywords;
10741
 
  friend class ::WinFriend;
10742
 
  friend class ::ExtAC;
10743
 
  friend class ::ExtACBuilderCoupling;
10744
 
  friend class ::ExtACSyntaxCoupling;
10745
 
  friend class ::ExtACTree;
10746
 
  friend class ::ExtACKeywords;
10747
 
  friend class ::ExtGnu;
10748
 
  friend class ::PragmaOnceUnitState;
10749
 
  friend class ::PragmaOnce;
10750
 
  friend class ::CMatchSyntax;
10751
 
 
10752
 
#line 498 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10753
 
 
10754
 
        // Boolean value of the condition of a conditional.
10755
 
        bool _value;
10756
 
 
10757
 
    public:
10758
 
 
10759
 
        PreCondSemNode (bool value) : _value (value) {};
10760
 
        
10761
 
        void accept (PreVisitor& v)
10762
 
        {
10763
 
            v.visitPreCondSemNode (this);
10764
 
        }
10765
 
        
10766
 
        // Get the value of the conditional.
10767
 
        bool value () const { return _value; }
10768
 
 };      
10769
 
 
10770
 
 
10771
 
// Semantic node for the #include directive.
10772
 
 
10773
 
#line 10774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10774
 
} // closed Puma
10775
 
class CCExprResolve;
10776
 
class CExprResolve;
10777
 
class WinIfExists;
10778
 
class WinImportHandler;
10779
 
class WinMacros;
10780
 
class WinAsm;
10781
 
class WinDeclSpecs;
10782
 
class WinMemberExplSpec;
10783
 
class WinTypeKeywords;
10784
 
class WinFriend;
10785
 
class ExtAC;
10786
 
class ExtACBuilderCoupling;
10787
 
class ExtACSyntaxCoupling;
10788
 
class ExtACTree;
10789
 
class ExtACKeywords;
10790
 
class ExtGnu;
10791
 
class PragmaOnceUnitState;
10792
 
class PragmaOnce;
10793
 
class CMatchSyntax;
10794
 
namespace Puma {
10795
 
 
10796
 
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10797
 
class PreInclSemNode : public PreTree
10798
 
 {
10799
 
#line 10800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10800
 
  friend class ::CCExprResolve;
10801
 
  friend class ::CExprResolve;
10802
 
  friend class ::WinIfExists;
10803
 
  friend class ::WinImportHandler;
10804
 
  friend class ::WinMacros;
10805
 
  friend class ::WinAsm;
10806
 
  friend class ::WinDeclSpecs;
10807
 
  friend class ::WinMemberExplSpec;
10808
 
  friend class ::WinTypeKeywords;
10809
 
  friend class ::WinFriend;
10810
 
  friend class ::ExtAC;
10811
 
  friend class ::ExtACBuilderCoupling;
10812
 
  friend class ::ExtACSyntaxCoupling;
10813
 
  friend class ::ExtACTree;
10814
 
  friend class ::ExtACKeywords;
10815
 
  friend class ::ExtGnu;
10816
 
  friend class ::PragmaOnceUnitState;
10817
 
  friend class ::PragmaOnce;
10818
 
  friend class ::CMatchSyntax;
10819
 
 
10820
 
#line 518 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10821
 
 
10822
 
        // Pointer of the included file unit.
10823
 
        Unit* _unit;
10824
 
        
10825
 
        // true if the inclusion was not done, because of an active include
10826
 
        // guard
10827
 
        bool _guarded;
10828
 
 
10829
 
    public:
10830
 
 
10831
 
        PreInclSemNode (Unit* unit, bool guarded) :
10832
 
          _unit (unit), _guarded (guarded) {};
10833
 
        
10834
 
        void accept (PreVisitor& v)
10835
 
        {
10836
 
            v.visitPreInclSemNode (this);
10837
 
        }
10838
 
        
10839
 
        // Get the included file unit.
10840
 
        Unit* unit () const { return _unit; }
10841
 
        
10842
 
        // Check if the inclusion was not done, because of an include guard
10843
 
        bool guarded () const { return _guarded; }
10844
 
 };      
10845
 
 
10846
 
 
10847
 
// Special parse error node to show the location of an error in the
10848
 
// preprocessor syntax tree.
10849
 
 
10850
 
#line 10851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10851
 
} // closed Puma
10852
 
class CCExprResolve;
10853
 
class CExprResolve;
10854
 
class WinIfExists;
10855
 
class WinImportHandler;
10856
 
class WinMacros;
10857
 
class WinAsm;
10858
 
class WinDeclSpecs;
10859
 
class WinMemberExplSpec;
10860
 
class WinTypeKeywords;
10861
 
class WinFriend;
10862
 
class ExtAC;
10863
 
class ExtACBuilderCoupling;
10864
 
class ExtACSyntaxCoupling;
10865
 
class ExtACTree;
10866
 
class ExtACKeywords;
10867
 
class ExtGnu;
10868
 
class PragmaOnceUnitState;
10869
 
class PragmaOnce;
10870
 
class CMatchSyntax;
10871
 
namespace Puma {
10872
 
 
10873
 
#line 546 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10874
 
class PreError : public PreTree
10875
 
 {
10876
 
#line 10877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10877
 
  friend class ::CCExprResolve;
10878
 
  friend class ::CExprResolve;
10879
 
  friend class ::WinIfExists;
10880
 
  friend class ::WinImportHandler;
10881
 
  friend class ::WinMacros;
10882
 
  friend class ::WinAsm;
10883
 
  friend class ::WinDeclSpecs;
10884
 
  friend class ::WinMemberExplSpec;
10885
 
  friend class ::WinTypeKeywords;
10886
 
  friend class ::WinFriend;
10887
 
  friend class ::ExtAC;
10888
 
  friend class ::ExtACBuilderCoupling;
10889
 
  friend class ::ExtACSyntaxCoupling;
10890
 
  friend class ::ExtACTree;
10891
 
  friend class ::ExtACKeywords;
10892
 
  friend class ::ExtGnu;
10893
 
  friend class ::PragmaOnceUnitState;
10894
 
  friend class ::PragmaOnce;
10895
 
  friend class ::CMatchSyntax;
10896
 
 
10897
 
#line 547 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10898
 
 
10899
 
    public:
10900
 
 
10901
 
        PreError () {};
10902
 
        
10903
 
        void accept (PreVisitor& v)
10904
 
        {
10905
 
            v.visitPreError (this);
10906
 
        }
10907
 
 };      
 
10611
public:
 
10612
  typedef AC::TLE __AttrTypes;
 
10613
  const char *__attr_name (unsigned i) const { return 0; }
 
10614
  const void *__attr (unsigned __i) const { return 0; }
 
10615
#line 135 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10616
};      
 
10617
 
 
10618
 
 
10619
/** \class PreElifPart PreTreeNodes.h Puma/PreTreeNodes.h
 
10620
 *  Preprocessor tree node representing a group of directives 
 
10621
 *  in the \#elif part of an \#if conditional. */
 
10622
 
 
10623
#line 10624 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10624
} // closed Puma
 
10625
class CCExprResolve;
 
10626
class CExprResolve;
 
10627
class WinIfExists;
 
10628
class WinImportHandler;
 
10629
class WinMacros;
 
10630
class WinAsm;
 
10631
class WinDeclSpecs;
 
10632
class WinMemberExplSpec;
 
10633
class WinTypeKeywords;
 
10634
class WinFriend;
 
10635
class ExtAC;
 
10636
class ExtACBuilderCoupling;
 
10637
class ExtACSyntaxCoupling;
 
10638
class ExtACTree;
 
10639
class ExtACKeywords;
 
10640
class ExtGnu;
 
10641
class PragmaOnceUnitState;
 
10642
class PragmaOnce;
 
10643
class CMatchSyntax;
 
10644
namespace Puma {
 
10645
 
 
10646
#line 141 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10647
class PreElifPart : public PreTreeComposite {
 
10648
#line 10649 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10649
  friend class ::CCExprResolve;
 
10650
  friend class ::CExprResolve;
 
10651
  friend class ::WinIfExists;
 
10652
  friend class ::WinImportHandler;
 
10653
  friend class ::WinMacros;
 
10654
  friend class ::WinAsm;
 
10655
  friend class ::WinDeclSpecs;
 
10656
  friend class ::WinMemberExplSpec;
 
10657
  friend class ::WinTypeKeywords;
 
10658
  friend class ::WinFriend;
 
10659
  friend class ::ExtAC;
 
10660
  friend class ::ExtACBuilderCoupling;
 
10661
  friend class ::ExtACSyntaxCoupling;
 
10662
  friend class ::ExtACTree;
 
10663
  friend class ::ExtACKeywords;
 
10664
  friend class ::ExtGnu;
 
10665
  friend class ::PragmaOnceUnitState;
 
10666
  friend class ::PragmaOnce;
 
10667
  friend class ::CMatchSyntax;
 
10668
 
 
10669
#line 141 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10670
 
 
10671
public:
 
10672
  /** Constructor. */
 
10673
  PreElifPart () : PreTreeComposite (-1, 0) {}
 
10674
        
 
10675
  /** Add two sons, a directive group and a \#elif directive.
 
10676
   *  \param dg The directive group.
 
10677
   *  \param el The \#elif directive. */
 
10678
  void addSons (PreTree* dg, PreTree* el) { 
 
10679
    add_son (dg); add_son (el); 
 
10680
  }
 
10681
 
 
10682
  /** Part of the tree visitor pattern. Calls the node
 
10683
   *  visiting functions suitable for this node type. 
 
10684
   *  \param v The visitor object on which to call the 
 
10685
   *           visiting functions. */
 
10686
  void accept (PreVisitor& v) {
 
10687
    v.visitPreElifPart_Pre (this);
 
10688
    v.iterateNodes (this);
 
10689
    v.visitPreElifPart_Post (this);
 
10690
  }
 
10691
public:
 
10692
  typedef AC::TLE __AttrTypes;
 
10693
  const char *__attr_name (unsigned i) const { return 0; }
 
10694
  const void *__attr (unsigned __i) const { return 0; }
 
10695
#line 162 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10696
};      
 
10697
 
 
10698
 
 
10699
/** \class PreIfDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
10700
 *  Preprocessor tree node representing an \#if directive. 
 
10701
 *  Example: \code #if OSTYPE==Linux \endcode */
 
10702
 
 
10703
#line 10704 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10704
} // closed Puma
 
10705
class CCExprResolve;
 
10706
class CExprResolve;
 
10707
class WinIfExists;
 
10708
class WinImportHandler;
 
10709
class WinMacros;
 
10710
class WinAsm;
 
10711
class WinDeclSpecs;
 
10712
class WinMemberExplSpec;
 
10713
class WinTypeKeywords;
 
10714
class WinFriend;
 
10715
class ExtAC;
 
10716
class ExtACBuilderCoupling;
 
10717
class ExtACSyntaxCoupling;
 
10718
class ExtACTree;
 
10719
class ExtACKeywords;
 
10720
class ExtGnu;
 
10721
class PragmaOnceUnitState;
 
10722
class PragmaOnce;
 
10723
class CMatchSyntax;
 
10724
namespace Puma {
 
10725
 
 
10726
#line 168 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10727
class PreIfDirective : public PreTreeComposite {
 
10728
#line 10729 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10729
  friend class ::CCExprResolve;
 
10730
  friend class ::CExprResolve;
 
10731
  friend class ::WinIfExists;
 
10732
  friend class ::WinImportHandler;
 
10733
  friend class ::WinMacros;
 
10734
  friend class ::WinAsm;
 
10735
  friend class ::WinDeclSpecs;
 
10736
  friend class ::WinMemberExplSpec;
 
10737
  friend class ::WinTypeKeywords;
 
10738
  friend class ::WinFriend;
 
10739
  friend class ::ExtAC;
 
10740
  friend class ::ExtACBuilderCoupling;
 
10741
  friend class ::ExtACSyntaxCoupling;
 
10742
  friend class ::ExtACTree;
 
10743
  friend class ::ExtACKeywords;
 
10744
  friend class ::ExtGnu;
 
10745
  friend class ::PragmaOnceUnitState;
 
10746
  friend class ::PragmaOnce;
 
10747
  friend class ::CMatchSyntax;
 
10748
 
 
10749
#line 168 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10750
 
 
10751
public:
 
10752
  /** Constructor.
 
10753
   *  \param i The \#if token.
 
10754
   *  \param c The condition. */
 
10755
  PreIfDirective (PreTree* i, PreTree* c) : PreTreeComposite (2, 1) { 
 
10756
    add_son (i); add_son (c); 
 
10757
  }
 
10758
 
 
10759
  /** Part of the tree visitor pattern. Calls the node
 
10760
   *  visiting functions suitable for this node type. 
 
10761
   *  \param v The visitor object on which to call the 
 
10762
   *           visiting functions. */
 
10763
  void accept (PreVisitor& v) {
 
10764
    v.visitPreIfDirective_Pre (this);
 
10765
    v.iterateNodes (this);
 
10766
    v.visitPreIfDirective_Post (this);
 
10767
  }
 
10768
public:
 
10769
  typedef AC::TLE __AttrTypes;
 
10770
  const char *__attr_name (unsigned i) const { return 0; }
 
10771
  const void *__attr (unsigned __i) const { return 0; }
 
10772
#line 186 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10773
};      
 
10774
 
 
10775
 
 
10776
/** \class PreIfdefDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
10777
 *  Preprocessor tree node representing an \#ifdef directive. 
 
10778
 *  Example: \code #ifdef Linux \endcode */
 
10779
 
 
10780
#line 10781 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10781
} // closed Puma
 
10782
class CCExprResolve;
 
10783
class CExprResolve;
 
10784
class WinIfExists;
 
10785
class WinImportHandler;
 
10786
class WinMacros;
 
10787
class WinAsm;
 
10788
class WinDeclSpecs;
 
10789
class WinMemberExplSpec;
 
10790
class WinTypeKeywords;
 
10791
class WinFriend;
 
10792
class ExtAC;
 
10793
class ExtACBuilderCoupling;
 
10794
class ExtACSyntaxCoupling;
 
10795
class ExtACTree;
 
10796
class ExtACKeywords;
 
10797
class ExtGnu;
 
10798
class PragmaOnceUnitState;
 
10799
class PragmaOnce;
 
10800
class CMatchSyntax;
 
10801
namespace Puma {
 
10802
 
 
10803
#line 192 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10804
class PreIfdefDirective : public PreTreeComposite {
 
10805
#line 10806 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10806
  friend class ::CCExprResolve;
 
10807
  friend class ::CExprResolve;
 
10808
  friend class ::WinIfExists;
 
10809
  friend class ::WinImportHandler;
 
10810
  friend class ::WinMacros;
 
10811
  friend class ::WinAsm;
 
10812
  friend class ::WinDeclSpecs;
 
10813
  friend class ::WinMemberExplSpec;
 
10814
  friend class ::WinTypeKeywords;
 
10815
  friend class ::WinFriend;
 
10816
  friend class ::ExtAC;
 
10817
  friend class ::ExtACBuilderCoupling;
 
10818
  friend class ::ExtACSyntaxCoupling;
 
10819
  friend class ::ExtACTree;
 
10820
  friend class ::ExtACKeywords;
 
10821
  friend class ::ExtGnu;
 
10822
  friend class ::PragmaOnceUnitState;
 
10823
  friend class ::PragmaOnce;
 
10824
  friend class ::CMatchSyntax;
 
10825
 
 
10826
#line 192 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10827
 
 
10828
public:
 
10829
  /** Constructor. 
 
10830
   *  \param i The \#ifdef token.
 
10831
   *  \param n The name of the macro. 
 
10832
   *  \param tl The remaining tokens of the line. */
 
10833
  PreIfdefDirective (PreTree* i, PreTree* n, PreTree* tl) : PreTreeComposite (3, 1) { 
 
10834
    add_son (i); add_son (n); add_son (tl); 
 
10835
  }
 
10836
  /** Constructor. 
 
10837
   *  \param i The \#ifdef token.
 
10838
   *  \param tl The remaining tokens of the line. */
 
10839
  PreIfdefDirective (PreTree* i, PreTree* tl) : PreTreeComposite (2, 0) { 
 
10840
    add_son (i); add_son (tl); 
 
10841
  }
 
10842
 
 
10843
  /** Part of the tree visitor pattern. Calls the node
 
10844
   *  visiting functions suitable for this node type. 
 
10845
   *  \param v The visitor object on which to call the 
 
10846
   *           visiting functions. */
 
10847
  void accept (PreVisitor& v) {
 
10848
    v.visitPreIfdefDirective_Pre (this);
 
10849
    v.iterateNodes (this);
 
10850
    v.visitPreIfdefDirective_Post (this);
 
10851
  }
 
10852
public:
 
10853
  typedef AC::TLE __AttrTypes;
 
10854
  const char *__attr_name (unsigned i) const { return 0; }
 
10855
  const void *__attr (unsigned __i) const { return 0; }
 
10856
#line 217 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10857
};      
 
10858
 
 
10859
 
 
10860
/** \class PreIfndefDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
10861
 *  Preprocessor tree node representing an \#ifndef directive. 
 
10862
 *  Example: \code #ifndef Linux \endcode */
 
10863
 
 
10864
#line 10865 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10865
} // closed Puma
 
10866
class CCExprResolve;
 
10867
class CExprResolve;
 
10868
class WinIfExists;
 
10869
class WinImportHandler;
 
10870
class WinMacros;
 
10871
class WinAsm;
 
10872
class WinDeclSpecs;
 
10873
class WinMemberExplSpec;
 
10874
class WinTypeKeywords;
 
10875
class WinFriend;
 
10876
class ExtAC;
 
10877
class ExtACBuilderCoupling;
 
10878
class ExtACSyntaxCoupling;
 
10879
class ExtACTree;
 
10880
class ExtACKeywords;
 
10881
class ExtGnu;
 
10882
class PragmaOnceUnitState;
 
10883
class PragmaOnce;
 
10884
class CMatchSyntax;
 
10885
namespace Puma {
 
10886
 
 
10887
#line 223 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10888
class PreIfndefDirective : public PreTreeComposite {
 
10889
#line 10890 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10890
  friend class ::CCExprResolve;
 
10891
  friend class ::CExprResolve;
 
10892
  friend class ::WinIfExists;
 
10893
  friend class ::WinImportHandler;
 
10894
  friend class ::WinMacros;
 
10895
  friend class ::WinAsm;
 
10896
  friend class ::WinDeclSpecs;
 
10897
  friend class ::WinMemberExplSpec;
 
10898
  friend class ::WinTypeKeywords;
 
10899
  friend class ::WinFriend;
 
10900
  friend class ::ExtAC;
 
10901
  friend class ::ExtACBuilderCoupling;
 
10902
  friend class ::ExtACSyntaxCoupling;
 
10903
  friend class ::ExtACTree;
 
10904
  friend class ::ExtACKeywords;
 
10905
  friend class ::ExtGnu;
 
10906
  friend class ::PragmaOnceUnitState;
 
10907
  friend class ::PragmaOnce;
 
10908
  friend class ::CMatchSyntax;
 
10909
 
 
10910
#line 223 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10911
 
 
10912
public:
 
10913
  /** Constructor. 
 
10914
   *  \param i The \#ifndef token.
 
10915
   *  \param n The name of the macro. 
 
10916
   *  \param tl The remaining tokens of the line. */
 
10917
  PreIfndefDirective (PreTree* i, PreTree* n, PreTree* tl) : PreTreeComposite (3, 1) { 
 
10918
    add_son (i); add_son (n); add_son (tl); 
 
10919
  }
 
10920
  /** Constructor. 
 
10921
   *  \param i The \#ifndef token.
 
10922
   *  \param tl The remaining tokens of the line. */
 
10923
  PreIfndefDirective (PreTree* i, PreTree* tl) : PreTreeComposite (2, 0) { 
 
10924
    add_son (i); add_son (tl); 
 
10925
  }
 
10926
 
 
10927
  /** Part of the tree visitor pattern. Calls the node
 
10928
   *  visiting functions suitable for this node type. 
 
10929
   *  \param v The visitor object on which to call the 
 
10930
   *           visiting functions. */
 
10931
  void accept (PreVisitor& v) {
 
10932
    v.visitPreIfndefDirective_Pre (this);
 
10933
    v.iterateNodes (this);
 
10934
    v.visitPreIfndefDirective_Post (this);
 
10935
  }
 
10936
public:
 
10937
  typedef AC::TLE __AttrTypes;
 
10938
  const char *__attr_name (unsigned i) const { return 0; }
 
10939
  const void *__attr (unsigned __i) const { return 0; }
 
10940
#line 248 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10941
};      
 
10942
 
 
10943
 
 
10944
/** \class PreElifDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
10945
 *  Preprocessor tree node representing an \#elif directive. 
 
10946
 *  Example: \code #elif OSTYPE==linux \endcode */
 
10947
 
 
10948
#line 10949 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10949
} // closed Puma
 
10950
class CCExprResolve;
 
10951
class CExprResolve;
 
10952
class WinIfExists;
 
10953
class WinImportHandler;
 
10954
class WinMacros;
 
10955
class WinAsm;
 
10956
class WinDeclSpecs;
 
10957
class WinMemberExplSpec;
 
10958
class WinTypeKeywords;
 
10959
class WinFriend;
 
10960
class ExtAC;
 
10961
class ExtACBuilderCoupling;
 
10962
class ExtACSyntaxCoupling;
 
10963
class ExtACTree;
 
10964
class ExtACKeywords;
 
10965
class ExtGnu;
 
10966
class PragmaOnceUnitState;
 
10967
class PragmaOnce;
 
10968
class CMatchSyntax;
 
10969
namespace Puma {
 
10970
 
 
10971
#line 254 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10972
class PreElifDirective : public PreTreeComposite {
 
10973
#line 10974 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
10974
  friend class ::CCExprResolve;
 
10975
  friend class ::CExprResolve;
 
10976
  friend class ::WinIfExists;
 
10977
  friend class ::WinImportHandler;
 
10978
  friend class ::WinMacros;
 
10979
  friend class ::WinAsm;
 
10980
  friend class ::WinDeclSpecs;
 
10981
  friend class ::WinMemberExplSpec;
 
10982
  friend class ::WinTypeKeywords;
 
10983
  friend class ::WinFriend;
 
10984
  friend class ::ExtAC;
 
10985
  friend class ::ExtACBuilderCoupling;
 
10986
  friend class ::ExtACSyntaxCoupling;
 
10987
  friend class ::ExtACTree;
 
10988
  friend class ::ExtACKeywords;
 
10989
  friend class ::ExtGnu;
 
10990
  friend class ::PragmaOnceUnitState;
 
10991
  friend class ::PragmaOnce;
 
10992
  friend class ::CMatchSyntax;
 
10993
 
 
10994
#line 254 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
10995
 
 
10996
public:
 
10997
  /** Constructor. 
 
10998
   *  \param e The \#elif token.
 
10999
   *  \param c The condition. */
 
11000
  PreElifDirective (PreTree* e, PreTree* c) : PreTreeComposite (2, 1) { 
 
11001
    add_son (e); add_son (c); 
 
11002
  }
 
11003
 
 
11004
  /** Part of the tree visitor pattern. Calls the node
 
11005
   *  visiting functions suitable for this node type. 
 
11006
   *  \param v The visitor object on which to call the 
 
11007
   *           visiting functions. */
 
11008
  void accept (PreVisitor& v) {
 
11009
    v.visitPreElifDirective_Pre (this);
 
11010
    v.iterateNodes (this);
 
11011
    v.visitPreElifDirective_Post (this);
 
11012
  }
 
11013
public:
 
11014
  typedef AC::TLE __AttrTypes;
 
11015
  const char *__attr_name (unsigned i) const { return 0; }
 
11016
  const void *__attr (unsigned __i) const { return 0; }
 
11017
#line 272 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11018
};      
 
11019
 
 
11020
 
 
11021
/** \class PreElseDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11022
 *  Preprocessor tree node representing an \#else directive. 
 
11023
 *  Example: \code #else \endcode */
 
11024
 
 
11025
#line 11026 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11026
} // closed Puma
 
11027
class CCExprResolve;
 
11028
class CExprResolve;
 
11029
class WinIfExists;
 
11030
class WinImportHandler;
 
11031
class WinMacros;
 
11032
class WinAsm;
 
11033
class WinDeclSpecs;
 
11034
class WinMemberExplSpec;
 
11035
class WinTypeKeywords;
 
11036
class WinFriend;
 
11037
class ExtAC;
 
11038
class ExtACBuilderCoupling;
 
11039
class ExtACSyntaxCoupling;
 
11040
class ExtACTree;
 
11041
class ExtACKeywords;
 
11042
class ExtGnu;
 
11043
class PragmaOnceUnitState;
 
11044
class PragmaOnce;
 
11045
class CMatchSyntax;
 
11046
namespace Puma {
 
11047
 
 
11048
#line 278 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11049
class PreElseDirective : public PreTreeComposite {
 
11050
#line 11051 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11051
  friend class ::CCExprResolve;
 
11052
  friend class ::CExprResolve;
 
11053
  friend class ::WinIfExists;
 
11054
  friend class ::WinImportHandler;
 
11055
  friend class ::WinMacros;
 
11056
  friend class ::WinAsm;
 
11057
  friend class ::WinDeclSpecs;
 
11058
  friend class ::WinMemberExplSpec;
 
11059
  friend class ::WinTypeKeywords;
 
11060
  friend class ::WinFriend;
 
11061
  friend class ::ExtAC;
 
11062
  friend class ::ExtACBuilderCoupling;
 
11063
  friend class ::ExtACSyntaxCoupling;
 
11064
  friend class ::ExtACTree;
 
11065
  friend class ::ExtACKeywords;
 
11066
  friend class ::ExtGnu;
 
11067
  friend class ::PragmaOnceUnitState;
 
11068
  friend class ::PragmaOnce;
 
11069
  friend class ::CMatchSyntax;
 
11070
 
 
11071
#line 278 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11072
 
 
11073
public:
 
11074
  /** Constructor. 
 
11075
   *  \param e The \#else token.
 
11076
   *  \param tl The remaining tokens of the line. */
 
11077
  PreElseDirective (PreTree* e, PreTree* tl) : PreTreeComposite (2, 0) { 
 
11078
    add_son (e); add_son (tl); 
 
11079
  }
 
11080
 
 
11081
  /** Part of the tree visitor pattern. Calls the node
 
11082
   *  visiting functions suitable for this node type. 
 
11083
   *  \param v The visitor object on which to call the 
 
11084
   *           visiting functions. */
 
11085
  void accept (PreVisitor& v) {
 
11086
    v.visitPreElseDirective_Pre (this);
 
11087
    v.iterateNodes (this);
 
11088
    v.visitPreElseDirective_Post (this);
 
11089
  }
 
11090
public:
 
11091
  typedef AC::TLE __AttrTypes;
 
11092
  const char *__attr_name (unsigned i) const { return 0; }
 
11093
  const void *__attr (unsigned __i) const { return 0; }
 
11094
#line 296 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11095
};      
 
11096
 
 
11097
 
 
11098
/** \class PreEndifDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11099
 *  Preprocessor tree node representing an \#endif directive. 
 
11100
 *  Example: \code #endif \endcode */
 
11101
 
 
11102
#line 11103 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11103
} // closed Puma
 
11104
class CCExprResolve;
 
11105
class CExprResolve;
 
11106
class WinIfExists;
 
11107
class WinImportHandler;
 
11108
class WinMacros;
 
11109
class WinAsm;
 
11110
class WinDeclSpecs;
 
11111
class WinMemberExplSpec;
 
11112
class WinTypeKeywords;
 
11113
class WinFriend;
 
11114
class ExtAC;
 
11115
class ExtACBuilderCoupling;
 
11116
class ExtACSyntaxCoupling;
 
11117
class ExtACTree;
 
11118
class ExtACKeywords;
 
11119
class ExtGnu;
 
11120
class PragmaOnceUnitState;
 
11121
class PragmaOnce;
 
11122
class CMatchSyntax;
 
11123
namespace Puma {
 
11124
 
 
11125
#line 302 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11126
class PreEndifDirective : public PreTreeComposite {
 
11127
#line 11128 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11128
  friend class ::CCExprResolve;
 
11129
  friend class ::CExprResolve;
 
11130
  friend class ::WinIfExists;
 
11131
  friend class ::WinImportHandler;
 
11132
  friend class ::WinMacros;
 
11133
  friend class ::WinAsm;
 
11134
  friend class ::WinDeclSpecs;
 
11135
  friend class ::WinMemberExplSpec;
 
11136
  friend class ::WinTypeKeywords;
 
11137
  friend class ::WinFriend;
 
11138
  friend class ::ExtAC;
 
11139
  friend class ::ExtACBuilderCoupling;
 
11140
  friend class ::ExtACSyntaxCoupling;
 
11141
  friend class ::ExtACTree;
 
11142
  friend class ::ExtACKeywords;
 
11143
  friend class ::ExtGnu;
 
11144
  friend class ::PragmaOnceUnitState;
 
11145
  friend class ::PragmaOnce;
 
11146
  friend class ::CMatchSyntax;
 
11147
 
 
11148
#line 302 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11149
 
 
11150
public:
 
11151
  /** Constructor. 
 
11152
   *  \param e The \#endif token.
 
11153
   *  \param tl The remaining tokens of the line. */
 
11154
  PreEndifDirective (PreTree* e, PreTree* tl) : PreTreeComposite (2, 0) { 
 
11155
    add_son (e); add_son (tl); 
 
11156
  }
 
11157
 
 
11158
  /** Part of the tree visitor pattern. Calls the node
 
11159
   *  visiting functions suitable for this node type. 
 
11160
   *  \param v The visitor object on which to call the 
 
11161
   *           visiting functions. */
 
11162
  void accept (PreVisitor& v) {
 
11163
    v.visitPreEndifDirective_Pre (this);
 
11164
    v.iterateNodes (this);
 
11165
    v.visitPreEndifDirective_Post (this);
 
11166
  }
 
11167
public:
 
11168
  typedef AC::TLE __AttrTypes;
 
11169
  const char *__attr_name (unsigned i) const { return 0; }
 
11170
  const void *__attr (unsigned __i) const { return 0; }
 
11171
#line 320 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11172
};      
 
11173
 
 
11174
 
 
11175
/** \class PreIncludeDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11176
 *  Preprocessor tree node representing an \#include or \#include_next directive. 
 
11177
 *  Example: \code #include <stdio.h> \endcode */
 
11178
 
 
11179
#line 11180 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11180
} // closed Puma
 
11181
class CCExprResolve;
 
11182
class CExprResolve;
 
11183
class WinIfExists;
 
11184
class WinImportHandler;
 
11185
class WinMacros;
 
11186
class WinAsm;
 
11187
class WinDeclSpecs;
 
11188
class WinMemberExplSpec;
 
11189
class WinTypeKeywords;
 
11190
class WinFriend;
 
11191
class ExtAC;
 
11192
class ExtACBuilderCoupling;
 
11193
class ExtACSyntaxCoupling;
 
11194
class ExtACTree;
 
11195
class ExtACKeywords;
 
11196
class ExtGnu;
 
11197
class PragmaOnceUnitState;
 
11198
class PragmaOnce;
 
11199
class CMatchSyntax;
 
11200
namespace Puma {
 
11201
 
 
11202
#line 326 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11203
class PreIncludeDirective : public PreTreeComposite {
 
11204
#line 11205 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11205
  friend class ::CCExprResolve;
 
11206
  friend class ::CExprResolve;
 
11207
  friend class ::WinIfExists;
 
11208
  friend class ::WinImportHandler;
 
11209
  friend class ::WinMacros;
 
11210
  friend class ::WinAsm;
 
11211
  friend class ::WinDeclSpecs;
 
11212
  friend class ::WinMemberExplSpec;
 
11213
  friend class ::WinTypeKeywords;
 
11214
  friend class ::WinFriend;
 
11215
  friend class ::ExtAC;
 
11216
  friend class ::ExtACBuilderCoupling;
 
11217
  friend class ::ExtACSyntaxCoupling;
 
11218
  friend class ::ExtACTree;
 
11219
  friend class ::ExtACKeywords;
 
11220
  friend class ::ExtGnu;
 
11221
  friend class ::PragmaOnceUnitState;
 
11222
  friend class ::PragmaOnce;
 
11223
  friend class ::CMatchSyntax;
 
11224
 
 
11225
#line 326 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11226
 
 
11227
  int _depth; // depth of nested includes
 
11228
 
 
11229
public:
 
11230
  /** Constructor. 
 
11231
   *  \param i The \#include or \#include_next token. 
 
11232
   *  \param tl The remaining tokens of the line containing the file to include. */
 
11233
  PreIncludeDirective (PreTree* i, PreTree* tl) : PreTreeComposite (2, 1) { 
 
11234
    add_son (i); add_son (tl); 
 
11235
    _depth = -1; 
 
11236
  }
 
11237
 
 
11238
  /** Part of the tree visitor pattern. Calls the node
 
11239
   *  visiting functions suitable for this node type. 
 
11240
   *  \param v The visitor object on which to call the 
 
11241
   *           visiting functions. */
 
11242
  void accept (PreVisitor& v) {
 
11243
    v.visitPreIncludeDirective_Pre (this);
 
11244
    v.iterateNodes (this);
 
11245
    v.visitPreIncludeDirective_Post (this);
 
11246
  }
 
11247
        
 
11248
  /** Get the depth of nested inclusion. 
 
11249
   *  \return The depth or -1 for a top-level include. */
 
11250
  int depth () const {
 
11251
    return _depth;
 
11252
  }
 
11253
  /** Set the depth of nested inclusion. 
 
11254
   *  \param d The depth of inclusion. */
 
11255
  void depth (int d) {
 
11256
    _depth = d;
 
11257
  }
 
11258
        
 
11259
  /** Check if this is a forced include (given by command line). */
 
11260
  bool is_forced () const {
 
11261
    return !((Unit*)startToken ()->belonging_to ())->isFile ();
 
11262
  }
 
11263
public:
 
11264
  typedef AC::TL<int,AC::TLE > __AttrTypes;
 
11265
  const char *__attr_name (unsigned i) const {
 
11266
    static const char *names[] = { "_depth" }; return names[i];
 
11267
  }
 
11268
  const void *__attr (unsigned __i) const {
 
11269
    switch (__i) { case 0: return &_depth; default: return 0; }
 
11270
  }
 
11271
#line 363 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11272
};      
 
11273
 
 
11274
 
 
11275
/** \class PreAssertDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11276
 *  Preprocessor tree node representing an \#assert directive. 
 
11277
 *  Example: \code #assert OSTYPE (linux) \endcode */
 
11278
 
 
11279
#line 11280 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11280
} // closed Puma
 
11281
class CCExprResolve;
 
11282
class CExprResolve;
 
11283
class WinIfExists;
 
11284
class WinImportHandler;
 
11285
class WinMacros;
 
11286
class WinAsm;
 
11287
class WinDeclSpecs;
 
11288
class WinMemberExplSpec;
 
11289
class WinTypeKeywords;
 
11290
class WinFriend;
 
11291
class ExtAC;
 
11292
class ExtACBuilderCoupling;
 
11293
class ExtACSyntaxCoupling;
 
11294
class ExtACTree;
 
11295
class ExtACKeywords;
 
11296
class ExtGnu;
 
11297
class PragmaOnceUnitState;
 
11298
class PragmaOnce;
 
11299
class CMatchSyntax;
 
11300
namespace Puma {
 
11301
 
 
11302
#line 369 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11303
class PreAssertDirective : public PreTreeComposite {
 
11304
#line 11305 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11305
  friend class ::CCExprResolve;
 
11306
  friend class ::CExprResolve;
 
11307
  friend class ::WinIfExists;
 
11308
  friend class ::WinImportHandler;
 
11309
  friend class ::WinMacros;
 
11310
  friend class ::WinAsm;
 
11311
  friend class ::WinDeclSpecs;
 
11312
  friend class ::WinMemberExplSpec;
 
11313
  friend class ::WinTypeKeywords;
 
11314
  friend class ::WinFriend;
 
11315
  friend class ::ExtAC;
 
11316
  friend class ::ExtACBuilderCoupling;
 
11317
  friend class ::ExtACSyntaxCoupling;
 
11318
  friend class ::ExtACTree;
 
11319
  friend class ::ExtACKeywords;
 
11320
  friend class ::ExtGnu;
 
11321
  friend class ::PragmaOnceUnitState;
 
11322
  friend class ::PragmaOnce;
 
11323
  friend class ::CMatchSyntax;
 
11324
 
 
11325
#line 369 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11326
 
 
11327
public:
 
11328
  /** Constructor. 
 
11329
   *  \param a The \#assert token.
 
11330
   *  \param p The predicate name.
 
11331
   *  \param an The answer to the predicate. */
 
11332
  PreAssertDirective (PreTree* a, PreTree* p, PreTree* an) : PreTreeComposite (3, 0) { 
 
11333
    add_son (a); add_son (p); add_son (an); 
 
11334
  }
 
11335
  /** Constructor. 
 
11336
   *  \param a The \#assert token.
 
11337
   *  \param tl The remaining tokens of the line. */
 
11338
  PreAssertDirective (PreTree* a, PreTree* tl) : PreTreeComposite (2, 0) { 
 
11339
    add_son (a); add_son (tl); 
 
11340
  }
 
11341
 
 
11342
  /** Part of the tree visitor pattern. Calls the node
 
11343
   *  visiting functions suitable for this node type. 
 
11344
   *  \param v The visitor object on which to call the 
 
11345
   *           visiting functions. */
 
11346
  void accept (PreVisitor& v) {
 
11347
    v.visitPreAssertDirective_Pre (this);
 
11348
    v.iterateNodes (this);
 
11349
    v.visitPreAssertDirective_Post (this);
 
11350
  }
 
11351
public:
 
11352
  typedef AC::TLE __AttrTypes;
 
11353
  const char *__attr_name (unsigned i) const { return 0; }
 
11354
  const void *__attr (unsigned __i) const { return 0; }
 
11355
#line 394 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11356
};      
 
11357
 
 
11358
 
 
11359
/** \class PreUnassertDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11360
 *  Preprocessor tree node representing an \#unassert directive. 
 
11361
 *  Example: \code #unassert OSTYPE \endcode */
 
11362
 
 
11363
#line 11364 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11364
} // closed Puma
 
11365
class CCExprResolve;
 
11366
class CExprResolve;
 
11367
class WinIfExists;
 
11368
class WinImportHandler;
 
11369
class WinMacros;
 
11370
class WinAsm;
 
11371
class WinDeclSpecs;
 
11372
class WinMemberExplSpec;
 
11373
class WinTypeKeywords;
 
11374
class WinFriend;
 
11375
class ExtAC;
 
11376
class ExtACBuilderCoupling;
 
11377
class ExtACSyntaxCoupling;
 
11378
class ExtACTree;
 
11379
class ExtACKeywords;
 
11380
class ExtGnu;
 
11381
class PragmaOnceUnitState;
 
11382
class PragmaOnce;
 
11383
class CMatchSyntax;
 
11384
namespace Puma {
 
11385
 
 
11386
#line 400 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11387
class PreUnassertDirective : public PreTreeComposite {
 
11388
#line 11389 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11389
  friend class ::CCExprResolve;
 
11390
  friend class ::CExprResolve;
 
11391
  friend class ::WinIfExists;
 
11392
  friend class ::WinImportHandler;
 
11393
  friend class ::WinMacros;
 
11394
  friend class ::WinAsm;
 
11395
  friend class ::WinDeclSpecs;
 
11396
  friend class ::WinMemberExplSpec;
 
11397
  friend class ::WinTypeKeywords;
 
11398
  friend class ::WinFriend;
 
11399
  friend class ::ExtAC;
 
11400
  friend class ::ExtACBuilderCoupling;
 
11401
  friend class ::ExtACSyntaxCoupling;
 
11402
  friend class ::ExtACTree;
 
11403
  friend class ::ExtACKeywords;
 
11404
  friend class ::ExtGnu;
 
11405
  friend class ::PragmaOnceUnitState;
 
11406
  friend class ::PragmaOnce;
 
11407
  friend class ::CMatchSyntax;
 
11408
 
 
11409
#line 400 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11410
 
 
11411
public:
 
11412
  /** Constructor. 
 
11413
   *  \param ua The \#unassert token. 
 
11414
   *  \param n The name of the predicate.
 
11415
   *  \param tl The remaining tokens of the line. */
 
11416
  PreUnassertDirective (PreTree* ua, PreTree* n, PreTree* tl) : PreTreeComposite (3, 0) { 
 
11417
    add_son (ua); add_son (n); add_son (tl); 
 
11418
  }
 
11419
  /** Constructor. 
 
11420
   *  \param ua The \#unassert token. 
 
11421
   *  \param tl The remaining tokens of the line. */
 
11422
  PreUnassertDirective (PreTree* ua, PreTree* tl) : PreTreeComposite (2, 0) { 
 
11423
    add_son (ua); add_son (tl); 
 
11424
  }
 
11425
 
 
11426
  /** Part of the tree visitor pattern. Calls the node
 
11427
   *  visiting functions suitable for this node type. 
 
11428
   *  \param v The visitor object on which to call the 
 
11429
   *           visiting functions. */
 
11430
  void accept (PreVisitor& v) {
 
11431
    v.visitPreUnassertDirective_Pre (this);
 
11432
    v.iterateNodes (this);
 
11433
    v.visitPreUnassertDirective_Post (this);
 
11434
  }
 
11435
public:
 
11436
  typedef AC::TLE __AttrTypes;
 
11437
  const char *__attr_name (unsigned i) const { return 0; }
 
11438
  const void *__attr (unsigned __i) const { return 0; }
 
11439
#line 425 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11440
};      
 
11441
 
 
11442
 
 
11443
/** \class PreDefineFunctionDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11444
 *  Preprocessor tree node representing a \#define directive for function-like macros. 
 
11445
 *  Example: \code #define MUL(a,b) (a * b) \endcode */
 
11446
 
 
11447
#line 11448 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11448
} // closed Puma
 
11449
class CCExprResolve;
 
11450
class CExprResolve;
 
11451
class WinIfExists;
 
11452
class WinImportHandler;
 
11453
class WinMacros;
 
11454
class WinAsm;
 
11455
class WinDeclSpecs;
 
11456
class WinMemberExplSpec;
 
11457
class WinTypeKeywords;
 
11458
class WinFriend;
 
11459
class ExtAC;
 
11460
class ExtACBuilderCoupling;
 
11461
class ExtACSyntaxCoupling;
 
11462
class ExtACTree;
 
11463
class ExtACKeywords;
 
11464
class ExtGnu;
 
11465
class PragmaOnceUnitState;
 
11466
class PragmaOnce;
 
11467
class CMatchSyntax;
 
11468
namespace Puma {
 
11469
 
 
11470
#line 431 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11471
class PreDefineFunctionDirective : public PreTreeComposite {
 
11472
#line 11473 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11473
  friend class ::CCExprResolve;
 
11474
  friend class ::CExprResolve;
 
11475
  friend class ::WinIfExists;
 
11476
  friend class ::WinImportHandler;
 
11477
  friend class ::WinMacros;
 
11478
  friend class ::WinAsm;
 
11479
  friend class ::WinDeclSpecs;
 
11480
  friend class ::WinMemberExplSpec;
 
11481
  friend class ::WinTypeKeywords;
 
11482
  friend class ::WinFriend;
 
11483
  friend class ::ExtAC;
 
11484
  friend class ::ExtACBuilderCoupling;
 
11485
  friend class ::ExtACSyntaxCoupling;
 
11486
  friend class ::ExtACTree;
 
11487
  friend class ::ExtACKeywords;
 
11488
  friend class ::ExtGnu;
 
11489
  friend class ::PragmaOnceUnitState;
 
11490
  friend class ::PragmaOnce;
 
11491
  friend class ::CMatchSyntax;
 
11492
 
 
11493
#line 431 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11494
 
 
11495
public:
 
11496
  /** Constructor. 
 
11497
   *  \param a The \#define token.
 
11498
   *  \param b The macro name.
 
11499
   *  \param c Left parenthesis before the parameter list.
 
11500
   *  \param d The macro parameter list. 
 
11501
   *  \param e Comma before the last parameter.
 
11502
   *  \param f The token '...'.
 
11503
   *  \param g Right parenthesis behind the parameter list.
 
11504
   *  \param h The macro body. */
 
11505
  PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, PreTree* d, 
 
11506
   PreTree* e, PreTree* f, PreTree* g, PreTree* h) : PreTreeComposite (8, 0) { 
 
11507
    add_son (a); add_son (b); add_son (c); add_son (d);
 
11508
    add_son (e); add_son (f); add_son (g); add_son (h); 
 
11509
  }
 
11510
 
 
11511
  /** Constructor. 
 
11512
   *  \param a The \#define token.
 
11513
   *  \param b The macro name.
 
11514
   *  \param c Left parenthesis before the parameter list.
 
11515
   *  \param d The macro parameter list. 
 
11516
   *  \param e The token '...'.
 
11517
   *  \param f Right parenthesis behind the parameter list.
 
11518
   *  \param g The macro body. */
 
11519
  PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, PreTree* d, 
 
11520
   PreTree* e, PreTree* f, PreTree* g) : PreTreeComposite (7, 0) { 
 
11521
    add_son (a); add_son (b); add_son (c); add_son (d);
 
11522
    add_son (e); add_son (f); add_son (g); 
 
11523
  }
 
11524
 
 
11525
  /** Constructor. 
 
11526
   *  \param a The \#define token.
 
11527
   *  \param b The macro name.
 
11528
   *  \param c Left parenthesis before the parameter list.
 
11529
   *  \param d The macro parameter list. 
 
11530
   *  \param e Right parenthesis behind the parameter list.
 
11531
   *  \param f The macro body. */
 
11532
  PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, PreTree* d, 
 
11533
   PreTree* e, PreTree* f) : PreTreeComposite (6, 0) { 
 
11534
    add_son (a); add_son (b); add_son (c); 
 
11535
    add_son (d); add_son (e); add_son (f); 
 
11536
  }
 
11537
        
 
11538
  /** Constructor. 
 
11539
   *  \param a The \#define token.
 
11540
   *  \param b The macro name.
 
11541
   *  \param c Left parenthesis before the parameter list.
 
11542
   *  \param d Right parenthesis behind the parameter list.
 
11543
   *  \param e The macro body. */
 
11544
  PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, 
 
11545
   PreTree* d, PreTree* e) : PreTreeComposite (5, 0) { 
 
11546
    add_son (a); add_son (b); add_son (c); add_son (d); add_son (e); 
 
11547
  }
 
11548
 
 
11549
  /** Part of the tree visitor pattern. Calls the node
 
11550
   *  visiting functions suitable for this node type. 
 
11551
   *  \param v The visitor object on which to call the 
 
11552
   *           visiting functions. */
 
11553
  void accept (PreVisitor& v) {
 
11554
    v.visitPreDefineFunctionDirective_Pre (this);
 
11555
    v.iterateNodes (this);
 
11556
    v.visitPreDefineFunctionDirective_Post (this);
 
11557
  }
 
11558
public:
 
11559
  typedef AC::TLE __AttrTypes;
 
11560
  const char *__attr_name (unsigned i) const { return 0; }
 
11561
  const void *__attr (unsigned __i) const { return 0; }
 
11562
#line 495 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11563
};   
 
11564
 
 
11565
 
 
11566
/** \class PreDefineConstantDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11567
 *  Preprocessor tree node representing a \#define directive for constants. 
 
11568
 *  Example: \code #define CONSTANT 1 \endcode */
 
11569
 
 
11570
#line 11571 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11571
} // closed Puma
 
11572
class CCExprResolve;
 
11573
class CExprResolve;
 
11574
class WinIfExists;
 
11575
class WinImportHandler;
 
11576
class WinMacros;
 
11577
class WinAsm;
 
11578
class WinDeclSpecs;
 
11579
class WinMemberExplSpec;
 
11580
class WinTypeKeywords;
 
11581
class WinFriend;
 
11582
class ExtAC;
 
11583
class ExtACBuilderCoupling;
 
11584
class ExtACSyntaxCoupling;
 
11585
class ExtACTree;
 
11586
class ExtACKeywords;
 
11587
class ExtGnu;
 
11588
class PragmaOnceUnitState;
 
11589
class PragmaOnce;
 
11590
class CMatchSyntax;
 
11591
namespace Puma {
 
11592
 
 
11593
#line 501 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11594
class PreDefineConstantDirective : public PreTreeComposite {
 
11595
#line 11596 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11596
  friend class ::CCExprResolve;
 
11597
  friend class ::CExprResolve;
 
11598
  friend class ::WinIfExists;
 
11599
  friend class ::WinImportHandler;
 
11600
  friend class ::WinMacros;
 
11601
  friend class ::WinAsm;
 
11602
  friend class ::WinDeclSpecs;
 
11603
  friend class ::WinMemberExplSpec;
 
11604
  friend class ::WinTypeKeywords;
 
11605
  friend class ::WinFriend;
 
11606
  friend class ::ExtAC;
 
11607
  friend class ::ExtACBuilderCoupling;
 
11608
  friend class ::ExtACSyntaxCoupling;
 
11609
  friend class ::ExtACTree;
 
11610
  friend class ::ExtACKeywords;
 
11611
  friend class ::ExtGnu;
 
11612
  friend class ::PragmaOnceUnitState;
 
11613
  friend class ::PragmaOnce;
 
11614
  friend class ::CMatchSyntax;
 
11615
 
 
11616
#line 501 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11617
 
 
11618
public:
 
11619
  /** Constructor. 
 
11620
   *  \param d The \#define token.
 
11621
   *  \param n The name of the constant.
 
11622
   *  \param v The constant value. */
 
11623
  PreDefineConstantDirective (PreTree* d, PreTree* n, PreTree* v) : PreTreeComposite (3, 0) { 
 
11624
    add_son (d); add_son (n); add_son (v); 
 
11625
  }
 
11626
  /** Constructor. 
 
11627
   *  \param d The \#define token.
 
11628
   *  \param tl The remaining tokens of the line. */
 
11629
  PreDefineConstantDirective (PreTree* d, PreTree* tl) : PreTreeComposite (2, 0) { 
 
11630
    add_son (d); add_son (tl); 
 
11631
  }
 
11632
 
 
11633
  /** Part of the tree visitor pattern. Calls the node
 
11634
   *  visiting functions suitable for this node type. 
 
11635
   *  \param v The visitor object on which to call the 
 
11636
   *           visiting functions. */
 
11637
  void accept (PreVisitor& v) {
 
11638
    v.visitPreDefineConstantDirective_Pre (this);
 
11639
    v.iterateNodes (this);
 
11640
    v.visitPreDefineConstantDirective_Post (this);
 
11641
  }
 
11642
public:
 
11643
  typedef AC::TLE __AttrTypes;
 
11644
  const char *__attr_name (unsigned i) const { return 0; }
 
11645
  const void *__attr (unsigned __i) const { return 0; }
 
11646
#line 526 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11647
};      
 
11648
 
 
11649
 
 
11650
/** \class PreUndefDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11651
 *  Preprocessor tree node representing an \#undef directive. 
 
11652
 *  Example: \code #undef MACRO \endcode */
 
11653
 
 
11654
#line 11655 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11655
} // closed Puma
 
11656
class CCExprResolve;
 
11657
class CExprResolve;
 
11658
class WinIfExists;
 
11659
class WinImportHandler;
 
11660
class WinMacros;
 
11661
class WinAsm;
 
11662
class WinDeclSpecs;
 
11663
class WinMemberExplSpec;
 
11664
class WinTypeKeywords;
 
11665
class WinFriend;
 
11666
class ExtAC;
 
11667
class ExtACBuilderCoupling;
 
11668
class ExtACSyntaxCoupling;
 
11669
class ExtACTree;
 
11670
class ExtACKeywords;
 
11671
class ExtGnu;
 
11672
class PragmaOnceUnitState;
 
11673
class PragmaOnce;
 
11674
class CMatchSyntax;
 
11675
namespace Puma {
 
11676
 
 
11677
#line 532 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11678
class PreUndefDirective : public PreTreeComposite {
 
11679
#line 11680 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11680
  friend class ::CCExprResolve;
 
11681
  friend class ::CExprResolve;
 
11682
  friend class ::WinIfExists;
 
11683
  friend class ::WinImportHandler;
 
11684
  friend class ::WinMacros;
 
11685
  friend class ::WinAsm;
 
11686
  friend class ::WinDeclSpecs;
 
11687
  friend class ::WinMemberExplSpec;
 
11688
  friend class ::WinTypeKeywords;
 
11689
  friend class ::WinFriend;
 
11690
  friend class ::ExtAC;
 
11691
  friend class ::ExtACBuilderCoupling;
 
11692
  friend class ::ExtACSyntaxCoupling;
 
11693
  friend class ::ExtACTree;
 
11694
  friend class ::ExtACKeywords;
 
11695
  friend class ::ExtGnu;
 
11696
  friend class ::PragmaOnceUnitState;
 
11697
  friend class ::PragmaOnce;
 
11698
  friend class ::CMatchSyntax;
 
11699
 
 
11700
#line 532 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11701
 
 
11702
public:
 
11703
  /** Constructor. 
 
11704
   *  \param u The \#undef token. 
 
11705
   *  \param m The name of the macro to undefine. 
 
11706
   *  \param tl The remaining tokens of the line. */
 
11707
  PreUndefDirective (PreTree* u, PreTree* m, PreTree* tl) : PreTreeComposite (3, 0) { 
 
11708
    add_son (u); add_son (m); add_son (tl); 
 
11709
  }
 
11710
  /** Constructor. 
 
11711
   *  \param u The \#undef token.
 
11712
   *  \param tl The remaining tokens of the line. */
 
11713
  PreUndefDirective (PreTree* u, PreTree* tl) : PreTreeComposite (2, 0) { 
 
11714
    add_son (u); add_son (tl); 
 
11715
  }
 
11716
 
 
11717
  /** Part of the tree visitor pattern. Calls the node
 
11718
   *  visiting functions suitable for this node type. 
 
11719
   *  \param v The visitor object on which to call the 
 
11720
   *           visiting functions. */
 
11721
  void accept (PreVisitor& v) {
 
11722
    v.visitPreUndefDirective_Pre (this);
 
11723
    v.iterateNodes (this);
 
11724
    v.visitPreUndefDirective_Post (this);
 
11725
  }
 
11726
public:
 
11727
  typedef AC::TLE __AttrTypes;
 
11728
  const char *__attr_name (unsigned i) const { return 0; }
 
11729
  const void *__attr (unsigned __i) const { return 0; }
 
11730
#line 557 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11731
};      
 
11732
 
 
11733
 
 
11734
/** \class PreWarningDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11735
 *  Preprocessor tree node representing a \#warning directive. 
 
11736
 *  Example: \code #warning This is a warning. \endcode */
 
11737
 
 
11738
#line 11739 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11739
} // closed Puma
 
11740
class CCExprResolve;
 
11741
class CExprResolve;
 
11742
class WinIfExists;
 
11743
class WinImportHandler;
 
11744
class WinMacros;
 
11745
class WinAsm;
 
11746
class WinDeclSpecs;
 
11747
class WinMemberExplSpec;
 
11748
class WinTypeKeywords;
 
11749
class WinFriend;
 
11750
class ExtAC;
 
11751
class ExtACBuilderCoupling;
 
11752
class ExtACSyntaxCoupling;
 
11753
class ExtACTree;
 
11754
class ExtACKeywords;
 
11755
class ExtGnu;
 
11756
class PragmaOnceUnitState;
 
11757
class PragmaOnce;
 
11758
class CMatchSyntax;
 
11759
namespace Puma {
 
11760
 
 
11761
#line 563 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11762
class PreWarningDirective : public PreTreeComposite {
 
11763
#line 11764 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11764
  friend class ::CCExprResolve;
 
11765
  friend class ::CExprResolve;
 
11766
  friend class ::WinIfExists;
 
11767
  friend class ::WinImportHandler;
 
11768
  friend class ::WinMacros;
 
11769
  friend class ::WinAsm;
 
11770
  friend class ::WinDeclSpecs;
 
11771
  friend class ::WinMemberExplSpec;
 
11772
  friend class ::WinTypeKeywords;
 
11773
  friend class ::WinFriend;
 
11774
  friend class ::ExtAC;
 
11775
  friend class ::ExtACBuilderCoupling;
 
11776
  friend class ::ExtACSyntaxCoupling;
 
11777
  friend class ::ExtACTree;
 
11778
  friend class ::ExtACKeywords;
 
11779
  friend class ::ExtGnu;
 
11780
  friend class ::PragmaOnceUnitState;
 
11781
  friend class ::PragmaOnce;
 
11782
  friend class ::CMatchSyntax;
 
11783
 
 
11784
#line 563 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11785
 
 
11786
public:
 
11787
  /** Constructor. 
 
11788
   *  \param w The \#warning token. 
 
11789
   *  \param m The warning message. */
 
11790
  PreWarningDirective (PreTree* w, PreTree* m) : PreTreeComposite (2, 0) { 
 
11791
    add_son (w); add_son (m); 
 
11792
  }
 
11793
 
 
11794
  /** Part of the tree visitor pattern. Calls the node
 
11795
   *  visiting functions suitable for this node type. 
 
11796
   *  \param v The visitor object on which to call the 
 
11797
   *           visiting functions. */
 
11798
  void accept (PreVisitor& v) {
 
11799
    v.visitPreWarningDirective_Pre (this);
 
11800
    v.iterateNodes (this);
 
11801
    v.visitPreWarningDirective_Post (this);
 
11802
  }
 
11803
public:
 
11804
  typedef AC::TLE __AttrTypes;
 
11805
  const char *__attr_name (unsigned i) const { return 0; }
 
11806
  const void *__attr (unsigned __i) const { return 0; }
 
11807
#line 581 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11808
};      
 
11809
 
 
11810
 
 
11811
/** \class PreErrorDirective PreTreeNodes.h Puma/PreTreeNodes.h
 
11812
 *  Preprocessor tree node representing an \#error directive. 
 
11813
 *  Example: \code #error This is an error. \endcode */
 
11814
 
 
11815
#line 11816 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11816
} // closed Puma
 
11817
class CCExprResolve;
 
11818
class CExprResolve;
 
11819
class WinIfExists;
 
11820
class WinImportHandler;
 
11821
class WinMacros;
 
11822
class WinAsm;
 
11823
class WinDeclSpecs;
 
11824
class WinMemberExplSpec;
 
11825
class WinTypeKeywords;
 
11826
class WinFriend;
 
11827
class ExtAC;
 
11828
class ExtACBuilderCoupling;
 
11829
class ExtACSyntaxCoupling;
 
11830
class ExtACTree;
 
11831
class ExtACKeywords;
 
11832
class ExtGnu;
 
11833
class PragmaOnceUnitState;
 
11834
class PragmaOnce;
 
11835
class CMatchSyntax;
 
11836
namespace Puma {
 
11837
 
 
11838
#line 587 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11839
class PreErrorDirective : public PreTreeComposite {
 
11840
#line 11841 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11841
  friend class ::CCExprResolve;
 
11842
  friend class ::CExprResolve;
 
11843
  friend class ::WinIfExists;
 
11844
  friend class ::WinImportHandler;
 
11845
  friend class ::WinMacros;
 
11846
  friend class ::WinAsm;
 
11847
  friend class ::WinDeclSpecs;
 
11848
  friend class ::WinMemberExplSpec;
 
11849
  friend class ::WinTypeKeywords;
 
11850
  friend class ::WinFriend;
 
11851
  friend class ::ExtAC;
 
11852
  friend class ::ExtACBuilderCoupling;
 
11853
  friend class ::ExtACSyntaxCoupling;
 
11854
  friend class ::ExtACTree;
 
11855
  friend class ::ExtACKeywords;
 
11856
  friend class ::ExtGnu;
 
11857
  friend class ::PragmaOnceUnitState;
 
11858
  friend class ::PragmaOnce;
 
11859
  friend class ::CMatchSyntax;
 
11860
 
 
11861
#line 587 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11862
 
 
11863
public:
 
11864
  /** Constructor. 
 
11865
   *  \param e The \#error token.
 
11866
   *  \param m The error message. */
 
11867
  PreErrorDirective (PreTree* e, PreTree* m) : PreTreeComposite (2, 0) { 
 
11868
    add_son (e); add_son (m); 
 
11869
  }
 
11870
 
 
11871
  /** Part of the tree visitor pattern. Calls the node
 
11872
   *  visiting functions suitable for this node type. 
 
11873
   *  \param v The visitor object on which to call the 
 
11874
   *           visiting functions. */
 
11875
  void accept (PreVisitor& v) {
 
11876
    v.visitPreErrorDirective_Pre (this);
 
11877
    v.iterateNodes (this);
 
11878
    v.visitPreErrorDirective_Post (this);
 
11879
  }
 
11880
public:
 
11881
  typedef AC::TLE __AttrTypes;
 
11882
  const char *__attr_name (unsigned i) const { return 0; }
 
11883
  const void *__attr (unsigned __i) const { return 0; }
 
11884
#line 605 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11885
};      
 
11886
 
 
11887
 
 
11888
/** \class PreIdentifierList PreTreeNodes.h Puma/PreTreeNodes.h
 
11889
 *  Preprocessor tree node representing the identifier list of a 
 
11890
 *  function-like macro definition. 
 
11891
 *  Example: \code a,b,c \endcode */
 
11892
 
 
11893
#line 11894 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11894
} // closed Puma
 
11895
class CCExprResolve;
 
11896
class CExprResolve;
 
11897
class WinIfExists;
 
11898
class WinImportHandler;
 
11899
class WinMacros;
 
11900
class WinAsm;
 
11901
class WinDeclSpecs;
 
11902
class WinMemberExplSpec;
 
11903
class WinTypeKeywords;
 
11904
class WinFriend;
 
11905
class ExtAC;
 
11906
class ExtACBuilderCoupling;
 
11907
class ExtACSyntaxCoupling;
 
11908
class ExtACTree;
 
11909
class ExtACKeywords;
 
11910
class ExtGnu;
 
11911
class PragmaOnceUnitState;
 
11912
class PragmaOnce;
 
11913
class CMatchSyntax;
 
11914
namespace Puma {
 
11915
 
 
11916
#line 612 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11917
class PreIdentifierList : public PreTreeComposite {
 
11918
#line 11919 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11919
  friend class ::CCExprResolve;
 
11920
  friend class ::CExprResolve;
 
11921
  friend class ::WinIfExists;
 
11922
  friend class ::WinImportHandler;
 
11923
  friend class ::WinMacros;
 
11924
  friend class ::WinAsm;
 
11925
  friend class ::WinDeclSpecs;
 
11926
  friend class ::WinMemberExplSpec;
 
11927
  friend class ::WinTypeKeywords;
 
11928
  friend class ::WinFriend;
 
11929
  friend class ::ExtAC;
 
11930
  friend class ::ExtACBuilderCoupling;
 
11931
  friend class ::ExtACSyntaxCoupling;
 
11932
  friend class ::ExtACTree;
 
11933
  friend class ::ExtACKeywords;
 
11934
  friend class ::ExtGnu;
 
11935
  friend class ::PragmaOnceUnitState;
 
11936
  friend class ::PragmaOnce;
 
11937
  friend class ::CMatchSyntax;
 
11938
 
 
11939
#line 612 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11940
 
 
11941
public:
 
11942
  /** Constructor. 
 
11943
   *  \param id An identifier. */
 
11944
  PreIdentifierList (PreTree* id) : PreTreeComposite (-1, 0) { 
 
11945
    add_son (id); 
 
11946
  }
 
11947
        
 
11948
  /** Add two sons, a comma and an identifier.
 
11949
   *  \param c A comma.
 
11950
   *  \param id An identifier. */
 
11951
  void addSons (PreTree* c, PreTree* id) { 
 
11952
    add_son (c); add_son (id); 
 
11953
  }
 
11954
 
 
11955
  /** Part of the tree visitor pattern. Calls the node
 
11956
   *  visiting functions suitable for this node type. 
 
11957
   *  \param v The visitor object on which to call the 
 
11958
   *           visiting functions. */
 
11959
  void accept (PreVisitor& v) {
 
11960
    v.visitPreIdentifierList_Pre (this);
 
11961
    v.iterateNodes (this);
 
11962
    v.visitPreIdentifierList_Post (this);
 
11963
  }
 
11964
public:
 
11965
  typedef AC::TLE __AttrTypes;
 
11966
  const char *__attr_name (unsigned i) const { return 0; }
 
11967
  const void *__attr (unsigned __i) const { return 0; }
 
11968
#line 636 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11969
};
 
11970
 
 
11971
 
 
11972
/** \class PreTokenList PreTreeNodes.h Puma/PreTreeNodes.h
 
11973
 *  Preprocessor tree node representing the token list of a macro body. */
 
11974
 
 
11975
#line 11976 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
11976
} // closed Puma
 
11977
class CCExprResolve;
 
11978
class CExprResolve;
 
11979
class WinIfExists;
 
11980
class WinImportHandler;
 
11981
class WinMacros;
 
11982
class WinAsm;
 
11983
class WinDeclSpecs;
 
11984
class WinMemberExplSpec;
 
11985
class WinTypeKeywords;
 
11986
class WinFriend;
 
11987
class ExtAC;
 
11988
class ExtACBuilderCoupling;
 
11989
class ExtACSyntaxCoupling;
 
11990
class ExtACTree;
 
11991
class ExtACKeywords;
 
11992
class ExtGnu;
 
11993
class PragmaOnceUnitState;
 
11994
class PragmaOnce;
 
11995
class CMatchSyntax;
 
11996
namespace Puma {
 
11997
 
 
11998
#line 641 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
11999
class PreTokenList : public PreTreeComposite {
 
12000
#line 12001 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12001
  friend class ::CCExprResolve;
 
12002
  friend class ::CExprResolve;
 
12003
  friend class ::WinIfExists;
 
12004
  friend class ::WinImportHandler;
 
12005
  friend class ::WinMacros;
 
12006
  friend class ::WinAsm;
 
12007
  friend class ::WinDeclSpecs;
 
12008
  friend class ::WinMemberExplSpec;
 
12009
  friend class ::WinTypeKeywords;
 
12010
  friend class ::WinFriend;
 
12011
  friend class ::ExtAC;
 
12012
  friend class ::ExtACBuilderCoupling;
 
12013
  friend class ::ExtACSyntaxCoupling;
 
12014
  friend class ::ExtACTree;
 
12015
  friend class ::ExtACKeywords;
 
12016
  friend class ::ExtGnu;
 
12017
  friend class ::PragmaOnceUnitState;
 
12018
  friend class ::PragmaOnce;
 
12019
  friend class ::CMatchSyntax;
 
12020
 
 
12021
#line 641 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12022
 
 
12023
public:
 
12024
  /** Constructor. */
 
12025
  PreTokenList () : PreTreeComposite (0, 0) {}
 
12026
  /** Constructor. 
 
12027
   *  \param tl The token list. 
 
12028
   *  \param nl The newline token. */
 
12029
  PreTokenList (PreTree* tl, PreTree* nl) : PreTreeComposite (2, 0) { 
 
12030
    add_son (tl); add_son (nl); 
 
12031
  }
 
12032
  /** Constructor. 
 
12033
   *  \param tl The token list. */
 
12034
  PreTokenList (PreTree* tl) : PreTreeComposite (1, 0) { 
 
12035
    add_son (tl); 
 
12036
  }
 
12037
        
 
12038
  /** Part of the tree visitor pattern. Calls the node
 
12039
   *  visiting functions suitable for this node type. 
 
12040
   *  \param v The visitor object on which to call the 
 
12041
   *           visiting functions. */
 
12042
  void accept (PreVisitor& v) {
 
12043
    v.visitPreTokenList_Pre (this);
 
12044
    v.iterateNodes (this);
 
12045
    v.visitPreTokenList_Post (this);
 
12046
  }
 
12047
public:
 
12048
  typedef AC::TLE __AttrTypes;
 
12049
  const char *__attr_name (unsigned i) const { return 0; }
 
12050
  const void *__attr (unsigned __i) const { return 0; }
 
12051
#line 666 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12052
};      
 
12053
 
 
12054
 
 
12055
/** \class PreTokenListPart PreTreeNodes.h Puma/PreTreeNodes.h
 
12056
 *  Preprocessor tree node representing a part of the token list of a macro body. */
 
12057
 
 
12058
#line 12059 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12059
} // closed Puma
 
12060
class CCExprResolve;
 
12061
class CExprResolve;
 
12062
class WinIfExists;
 
12063
class WinImportHandler;
 
12064
class WinMacros;
 
12065
class WinAsm;
 
12066
class WinDeclSpecs;
 
12067
class WinMemberExplSpec;
 
12068
class WinTypeKeywords;
 
12069
class WinFriend;
 
12070
class ExtAC;
 
12071
class ExtACBuilderCoupling;
 
12072
class ExtACSyntaxCoupling;
 
12073
class ExtACTree;
 
12074
class ExtACKeywords;
 
12075
class ExtGnu;
 
12076
class PragmaOnceUnitState;
 
12077
class PragmaOnce;
 
12078
class CMatchSyntax;
 
12079
namespace Puma {
 
12080
 
 
12081
#line 671 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12082
class PreTokenListPart : public PreTreeComposite {
 
12083
#line 12084 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12084
  friend class ::CCExprResolve;
 
12085
  friend class ::CExprResolve;
 
12086
  friend class ::WinIfExists;
 
12087
  friend class ::WinImportHandler;
 
12088
  friend class ::WinMacros;
 
12089
  friend class ::WinAsm;
 
12090
  friend class ::WinDeclSpecs;
 
12091
  friend class ::WinMemberExplSpec;
 
12092
  friend class ::WinTypeKeywords;
 
12093
  friend class ::WinFriend;
 
12094
  friend class ::ExtAC;
 
12095
  friend class ::ExtACBuilderCoupling;
 
12096
  friend class ::ExtACSyntaxCoupling;
 
12097
  friend class ::ExtACTree;
 
12098
  friend class ::ExtACKeywords;
 
12099
  friend class ::ExtGnu;
 
12100
  friend class ::PragmaOnceUnitState;
 
12101
  friend class ::PragmaOnce;
 
12102
  friend class ::CMatchSyntax;
 
12103
 
 
12104
#line 671 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12105
 
 
12106
public:
 
12107
  /** Constructor. 
 
12108
   *  \param tl The token list. */
 
12109
  PreTokenListPart (PreTree* tl) : PreTreeComposite (-1, 0) { 
 
12110
    add_son (tl); 
 
12111
  }
 
12112
        
 
12113
  /** Part of the tree visitor pattern. Calls the node
 
12114
   *  visiting functions suitable for this node type. 
 
12115
   *  \param v The visitor object on which to call the 
 
12116
   *           visiting functions. */
 
12117
  void accept (PreVisitor& v) {
 
12118
    v.visitPreTokenListPart_Pre (this);
 
12119
    v.iterateNodes (this);
 
12120
    v.visitPreTokenListPart_Post (this);
 
12121
  }
 
12122
public:
 
12123
  typedef AC::TLE __AttrTypes;
 
12124
  const char *__attr_name (unsigned i) const { return 0; }
 
12125
  const void *__attr (unsigned __i) const { return 0; }
 
12126
#line 688 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12127
};      
 
12128
 
 
12129
 
 
12130
/** \class PreCondSemNode PreTreeNodes.h Puma/PreTreeNodes.h
 
12131
 *  Preprocessor semantic tree node for conditions. */
 
12132
 
 
12133
#line 12134 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12134
} // closed Puma
 
12135
class CCExprResolve;
 
12136
class CExprResolve;
 
12137
class WinIfExists;
 
12138
class WinImportHandler;
 
12139
class WinMacros;
 
12140
class WinAsm;
 
12141
class WinDeclSpecs;
 
12142
class WinMemberExplSpec;
 
12143
class WinTypeKeywords;
 
12144
class WinFriend;
 
12145
class ExtAC;
 
12146
class ExtACBuilderCoupling;
 
12147
class ExtACSyntaxCoupling;
 
12148
class ExtACTree;
 
12149
class ExtACKeywords;
 
12150
class ExtGnu;
 
12151
class PragmaOnceUnitState;
 
12152
class PragmaOnce;
 
12153
class CMatchSyntax;
 
12154
namespace Puma {
 
12155
 
 
12156
#line 693 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12157
class PreCondSemNode : public PreTree {
 
12158
#line 12159 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12159
  friend class ::CCExprResolve;
 
12160
  friend class ::CExprResolve;
 
12161
  friend class ::WinIfExists;
 
12162
  friend class ::WinImportHandler;
 
12163
  friend class ::WinMacros;
 
12164
  friend class ::WinAsm;
 
12165
  friend class ::WinDeclSpecs;
 
12166
  friend class ::WinMemberExplSpec;
 
12167
  friend class ::WinTypeKeywords;
 
12168
  friend class ::WinFriend;
 
12169
  friend class ::ExtAC;
 
12170
  friend class ::ExtACBuilderCoupling;
 
12171
  friend class ::ExtACSyntaxCoupling;
 
12172
  friend class ::ExtACTree;
 
12173
  friend class ::ExtACKeywords;
 
12174
  friend class ::ExtGnu;
 
12175
  friend class ::PragmaOnceUnitState;
 
12176
  friend class ::PragmaOnce;
 
12177
  friend class ::CMatchSyntax;
 
12178
 
 
12179
#line 693 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12180
 
 
12181
  // The calculated value of the condition.
 
12182
  bool _value;
 
12183
 
 
12184
public:
 
12185
  /** Constructor. 
 
12186
   *  \param value The calculated value of the condition. */
 
12187
  PreCondSemNode (bool value) : _value (value) {}
 
12188
        
 
12189
  /** Part of the tree visitor pattern. Calls the node
 
12190
   *  visiting functions suitable for this node type. 
 
12191
   *  \param v The visitor object on which to call the 
 
12192
   *           visiting functions. */
 
12193
  void accept (PreVisitor& v) {
 
12194
    v.visitPreCondSemNode (this);
 
12195
  }
 
12196
        
 
12197
  /** Get the calculated value of the condition. */
 
12198
  bool value () const { return _value; }
 
12199
public:
 
12200
  typedef AC::TL<bool,AC::TLE > __AttrTypes;
 
12201
  const char *__attr_name (unsigned i) const {
 
12202
    static const char *names[] = { "_value" }; return names[i];
 
12203
  }
 
12204
  const void *__attr (unsigned __i) const {
 
12205
    switch (__i) { case 0: return &_value; default: return 0; }
 
12206
  }
 
12207
#line 712 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12208
};      
 
12209
 
 
12210
 
 
12211
/** \class PreInclSemNode PreTreeNodes.h Puma/PreTreeNodes.h
 
12212
 *  Preprocessor semantic tree node for the \#include directive
 
12213
 *  containing the unit to include. */
 
12214
 
 
12215
#line 12216 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12216
} // closed Puma
 
12217
class CCExprResolve;
 
12218
class CExprResolve;
 
12219
class WinIfExists;
 
12220
class WinImportHandler;
 
12221
class WinMacros;
 
12222
class WinAsm;
 
12223
class WinDeclSpecs;
 
12224
class WinMemberExplSpec;
 
12225
class WinTypeKeywords;
 
12226
class WinFriend;
 
12227
class ExtAC;
 
12228
class ExtACBuilderCoupling;
 
12229
class ExtACSyntaxCoupling;
 
12230
class ExtACTree;
 
12231
class ExtACKeywords;
 
12232
class ExtGnu;
 
12233
class PragmaOnceUnitState;
 
12234
class PragmaOnce;
 
12235
class CMatchSyntax;
 
12236
namespace Puma {
 
12237
 
 
12238
#line 718 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12239
class PreInclSemNode : public PreTree {
 
12240
#line 12241 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12241
  friend class ::CCExprResolve;
 
12242
  friend class ::CExprResolve;
 
12243
  friend class ::WinIfExists;
 
12244
  friend class ::WinImportHandler;
 
12245
  friend class ::WinMacros;
 
12246
  friend class ::WinAsm;
 
12247
  friend class ::WinDeclSpecs;
 
12248
  friend class ::WinMemberExplSpec;
 
12249
  friend class ::WinTypeKeywords;
 
12250
  friend class ::WinFriend;
 
12251
  friend class ::ExtAC;
 
12252
  friend class ::ExtACBuilderCoupling;
 
12253
  friend class ::ExtACSyntaxCoupling;
 
12254
  friend class ::ExtACTree;
 
12255
  friend class ::ExtACKeywords;
 
12256
  friend class ::ExtGnu;
 
12257
  friend class ::PragmaOnceUnitState;
 
12258
  friend class ::PragmaOnce;
 
12259
  friend class ::CMatchSyntax;
 
12260
 
 
12261
#line 718 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12262
 
 
12263
  // Pointer to the included file unit.
 
12264
  Unit* _unit;
 
12265
        
 
12266
  // True if the inclusion was not done, because of an active include guard.
 
12267
  bool _guarded;
 
12268
 
 
12269
public:
 
12270
  /** Constructor. 
 
12271
   *  \param unit The unit containing the tokens of the include file.
 
12272
   *  \param guarded True if the inclusion was not done due to an include guard. */
 
12273
  PreInclSemNode (Unit* unit, bool guarded) :
 
12274
    _unit (unit), _guarded (guarded) {}
 
12275
        
 
12276
  /** Part of the tree visitor pattern. Calls the node
 
12277
   *  visiting functions suitable for this node type. 
 
12278
   *  \param v The visitor object on which to call the 
 
12279
   *           visiting functions. */
 
12280
  void accept (PreVisitor& v) {
 
12281
    v.visitPreInclSemNode (this);
 
12282
  }
 
12283
        
 
12284
  /** Get the token unit of the included file. */
 
12285
  Unit* unit () const { return _unit; }
 
12286
        
 
12287
  /** Check if the inclusion was not done due to an include guard. */
 
12288
  bool guarded () const { return _guarded; }
 
12289
public:
 
12290
  typedef AC::TL<Puma::Unit *,AC::TL<bool,AC::TLE > > __AttrTypes;
 
12291
  const char *__attr_name (unsigned i) const {
 
12292
    static const char *names[] = { "_unit", "_guarded" }; return names[i];
 
12293
  }
 
12294
  const void *__attr (unsigned __i) const {
 
12295
    switch (__i) { case 0: return &_unit; case 1: return &_guarded; default: return 0; }
 
12296
  }
 
12297
#line 745 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12298
};      
 
12299
 
 
12300
 
 
12301
/** \class PreError PreTreeNodes.h Puma/PreTreeNodes.h
 
12302
 *  Preprocessor tree node representing a parse error. */
 
12303
 
 
12304
#line 12305 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12305
} // closed Puma
 
12306
class CCExprResolve;
 
12307
class CExprResolve;
 
12308
class WinIfExists;
 
12309
class WinImportHandler;
 
12310
class WinMacros;
 
12311
class WinAsm;
 
12312
class WinDeclSpecs;
 
12313
class WinMemberExplSpec;
 
12314
class WinTypeKeywords;
 
12315
class WinFriend;
 
12316
class ExtAC;
 
12317
class ExtACBuilderCoupling;
 
12318
class ExtACSyntaxCoupling;
 
12319
class ExtACTree;
 
12320
class ExtACKeywords;
 
12321
class ExtGnu;
 
12322
class PragmaOnceUnitState;
 
12323
class PragmaOnce;
 
12324
class CMatchSyntax;
 
12325
namespace Puma {
 
12326
 
 
12327
#line 750 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12328
class PreError : public PreTree {
 
12329
#line 12330 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
 
12330
  friend class ::CCExprResolve;
 
12331
  friend class ::CExprResolve;
 
12332
  friend class ::WinIfExists;
 
12333
  friend class ::WinImportHandler;
 
12334
  friend class ::WinMacros;
 
12335
  friend class ::WinAsm;
 
12336
  friend class ::WinDeclSpecs;
 
12337
  friend class ::WinMemberExplSpec;
 
12338
  friend class ::WinTypeKeywords;
 
12339
  friend class ::WinFriend;
 
12340
  friend class ::ExtAC;
 
12341
  friend class ::ExtACBuilderCoupling;
 
12342
  friend class ::ExtACSyntaxCoupling;
 
12343
  friend class ::ExtACTree;
 
12344
  friend class ::ExtACKeywords;
 
12345
  friend class ::ExtGnu;
 
12346
  friend class ::PragmaOnceUnitState;
 
12347
  friend class ::PragmaOnce;
 
12348
  friend class ::CMatchSyntax;
 
12349
 
 
12350
#line 750 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12351
 
 
12352
public:
 
12353
  /** Constructor. */
 
12354
  PreError () {}
 
12355
        
 
12356
  /** Part of the tree visitor pattern. Calls the node
 
12357
   *  visiting functions suitable for this node type. 
 
12358
   *  \param v The visitor object on which to call the 
 
12359
   *           visiting functions. */
 
12360
  void accept (PreVisitor& v) {
 
12361
    v.visitPreError (this);
 
12362
  }
 
12363
public:
 
12364
  typedef AC::TLE __AttrTypes;
 
12365
  const char *__attr_name (unsigned i) const { return 0; }
 
12366
  const void *__attr (unsigned __i) const { return 0; }
 
12367
#line 762 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
12368
};      
10908
12369
 
10909
12370
 
10910
12371
} // namespace Puma
10911
12372
 
10912
12373
#endif /* __pre_syntax_tree_nodes__ */
10913
12374
 
10914
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
 
12375
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10915
12376
// This file is part of PUMA.
10916
12377
// Copyright (C) 1999-2003  The PUMA developer team.
10917
12378
//                                                                
10937
12398
// through the `#assert' directive in the source code.
10938
12399
 
10939
12400
 
10940
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
 
12401
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10941
12402
using std::map;
10942
12403
 
10943
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
 
12404
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10944
12405
using std::string;
10945
12406
 
10946
12407
namespace Puma {
10949
12410
class PrePredicate;
10950
12411
 
10951
12412
 
10952
 
#line 10953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
12413
#line 12414 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10953
12414
} // closed Puma
10954
12415
class CCExprResolve;
10955
12416
class CExprResolve;
10972
12433
class CMatchSyntax;
10973
12434
namespace Puma {
10974
12435
 
10975
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
 
12436
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10976
12437
class PrePredicateManager : private map<string, PrePredicate*> {
10977
 
#line 10978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
12438
#line 12439 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10978
12439
  friend class ::CCExprResolve;
10979
12440
  friend class ::CExprResolve;
10980
12441
  friend class ::WinIfExists;
10995
12456
  friend class ::PragmaOnce;
10996
12457
  friend class ::CMatchSyntax;
10997
12458
 
10998
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
 
12459
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10999
12460
 
11000
12461
 
11001
12462
  typedef map<string, PrePredicate*> PMap;
11013
12474
        
11014
12475
  // Get predicate `name'.
11015
12476
  PrePredicate *getPredicate (const char *) const;
 
12477
public:
 
12478
  typedef AC::TLE __AttrTypes;
 
12479
  const char *__attr_name (unsigned i) const {
 
12480
    static const char *names[] = {  }; return names[i];
 
12481
  }
 
12482
  const void *__attr (unsigned __i) const {
 
12483
    switch (__i) { default: return 0; }
 
12484
  }
 
12485
#line 52 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
11016
12486
};
11017
12487
 
11018
12488
 
11020
12490
 
11021
12491
#endif /* __pre_predicate_manager__ */
11022
12492
 
11023
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
12493
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
11024
12494
#include <stdlib.h>
11025
12495
 
11026
 
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
12496
#line 54 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
11027
12497
using namespace std;
11028
12498
 
11029
12499
 
11680
13150
 
11681
13151
} // namespace Puma
11682
13152
 
11683
 
#line 711 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
13153
#line 711 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
11684
13154
/* Next is all token values, in a form suitable for use by makeheaders.
11685
13155
** This section will be null unless lemon is run with the -m switch.
11686
13156
*/
11766
13236
** point and size of each hash table.
11767
13237
*/
11768
13238
 
11769
 
#line 11770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
13239
#line 13240 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11770
13240
class CCExprResolve;
11771
13241
class CExprResolve;
11772
13242
class WinIfExists;
11787
13257
class PragmaOnce;
11788
13258
class CMatchSyntax;
11789
13259
 
11790
 
#line 795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
13260
#line 795 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
11791
13261
struct yyActionEntry {
11792
 
#line 11793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
13262
#line 13263 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11793
13263
  friend class ::CCExprResolve;
11794
13264
  friend class ::CExprResolve;
11795
13265
  friend class ::WinIfExists;
11810
13280
  friend class ::PragmaOnce;
11811
13281
  friend class ::CMatchSyntax;
11812
13282
 
11813
 
#line 795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
13283
#line 795 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
11814
13284
 
11815
13285
  YYCODETYPE   lookahead;   /* The value of the look-ahead token */
11816
13286
  YYACTIONTYPE action;      /* Action to take for this look-ahead */
11817
13287
  struct yyActionEntry *next; /* Next look-ahead with the same hash, or NULL */
 
13288
public:
 
13289
  typedef AC::TL<unsigned char,AC::TL<unsigned char,AC::TL<yyActionEntry *,AC::TLE > > > __AttrTypes;
 
13290
  const char *__attr_name (unsigned i) const {
 
13291
    static const char *names[] = { "lookahead", "action", "next" }; return names[i];
 
13292
  }
 
13293
  const void *__attr (unsigned __i) const {
 
13294
    switch (__i) { case 0: return &lookahead; case 1: return &action; case 2: return &next; default: return 0; }
 
13295
  }
 
13296
#line 799 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
11818
13297
};
11819
13298
static struct yyActionEntry yyActionTable[] = {
11820
13299
/* State 0 */
12355
13834
**     the given look-ahead is found in the action hash table.
12356
13835
*/
12357
13836
 
12358
 
#line 12359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
13837
#line 13838 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12359
13838
class CCExprResolve;
12360
13839
class CExprResolve;
12361
13840
class WinIfExists;
12376
13855
class PragmaOnce;
12377
13856
class CMatchSyntax;
12378
13857
 
12379
 
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
13858
#line 1338 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12380
13859
struct yyStateEntry {
12381
 
#line 12382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
13860
#line 13861 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12382
13861
  friend class ::CCExprResolve;
12383
13862
  friend class ::CExprResolve;
12384
13863
  friend class ::WinIfExists;
12399
13878
  friend class ::PragmaOnce;
12400
13879
  friend class ::CMatchSyntax;
12401
13880
 
12402
 
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
13881
#line 1338 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12403
13882
 
12404
13883
  struct yyActionEntry *hashtbl; /* Start of the hash table in yyActionTable */
12405
13884
  int mask;                      /* Mask used for hashing the look-ahead */
12406
13885
  YYACTIONTYPE actionDefault;    /* Default action if look-ahead not found */
 
13886
public:
 
13887
  typedef AC::TL<yyActionEntry *,AC::TL<int,AC::TL<unsigned char,AC::TLE > > > __AttrTypes;
 
13888
  const char *__attr_name (unsigned i) const {
 
13889
    static const char *names[] = { "hashtbl", "mask", "actionDefault" }; return names[i];
 
13890
  }
 
13891
  const void *__attr (unsigned __i) const {
 
13892
    switch (__i) { case 0: return &hashtbl; case 1: return &mask; case 2: return &actionDefault; default: return 0; }
 
13893
  }
 
13894
#line 1342 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12407
13895
};
12408
13896
static struct yyStateEntry yyStateTable[] = {
12409
13897
  { &yyActionTable[0], 1, 111},
12531
14019
**      It is sometimes called the "minor" token.
12532
14020
*/
12533
14021
 
12534
 
#line 12535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
14022
#line 14023 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12535
14023
class CCExprResolve;
12536
14024
class CExprResolve;
12537
14025
class WinIfExists;
12552
14040
class PragmaOnce;
12553
14041
class CMatchSyntax;
12554
14042
 
12555
 
#line 1468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14043
#line 1468 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12556
14044
struct yyStackEntry {
12557
 
#line 12558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
14045
#line 14046 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12558
14046
  friend class ::CCExprResolve;
12559
14047
  friend class ::CExprResolve;
12560
14048
  friend class ::WinIfExists;
12575
14063
  friend class ::PragmaOnce;
12576
14064
  friend class ::CMatchSyntax;
12577
14065
 
12578
 
#line 1468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14066
#line 1468 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12579
14067
 
12580
14068
  int stateno;       /* The state-number */
12581
14069
  int major;         /* The major token value.  This is the code
12582
14070
                     ** number for the token at this stack level */
12583
14071
  YYMINORTYPE minor; /* The user-supplied minor token value.  This
12584
14072
                     ** is the value of the token  */
 
14073
public:
 
14074
  typedef AC::TL<int,AC::TL<int,AC::TLE > > __AttrTypes;
 
14075
  const char *__attr_name (unsigned i) const {
 
14076
    static const char *names[] = { "stateno", "major" }; return names[i];
 
14077
  }
 
14078
  const void *__attr (unsigned __i) const {
 
14079
    switch (__i) { case 0: return &stateno; case 1: return &major; default: return 0; }
 
14080
  }
 
14081
#line 1474 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12585
14082
};
12586
14083
 
12587
14084
/* The state of the parser is completely contained in an instance of
12588
14085
** the following structure */
12589
14086
 
12590
 
#line 12591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
14087
#line 14088 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12591
14088
class CCExprResolve;
12592
14089
class CExprResolve;
12593
14090
class WinIfExists;
12608
14105
class PragmaOnce;
12609
14106
class CMatchSyntax;
12610
14107
 
12611
 
#line 1478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14108
#line 1478 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12612
14109
struct yyParser {
12613
 
#line 12614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
14110
#line 14111 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12614
14111
  friend class ::CCExprResolve;
12615
14112
  friend class ::CExprResolve;
12616
14113
  friend class ::WinIfExists;
12631
14128
  friend class ::PragmaOnce;
12632
14129
  friend class ::CMatchSyntax;
12633
14130
 
12634
 
#line 1478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14131
#line 1478 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12635
14132
 
12636
14133
  int idx;                            /* Index of top element in stack */
12637
14134
  int errcnt;                         /* Shifts left before out of the error */
12638
14135
  struct yyStackEntry *top;           /* Pointer to the top stack element */
12639
14136
  struct yyStackEntry stack[YYSTACKDEPTH];  /* The parser's stack */
 
14137
public:
 
14138
  typedef AC::TL<int,AC::TL<int,AC::TL<yyStackEntry *,AC::TL<yyStackEntry [1000],AC::TLE > > > > __AttrTypes;
 
14139
  const char *__attr_name (unsigned i) const {
 
14140
    static const char *names[] = { "idx", "errcnt", "top", "stack" }; return names[i];
 
14141
  }
 
14142
  const void *__attr (unsigned __i) const {
 
14143
    switch (__i) { case 0: return &idx; case 1: return &errcnt; case 2: return &top; case 3: return &stack; default: return 0; }
 
14144
  }
 
14145
#line 1483 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12640
14146
};
12641
14147
typedef struct yyParser yyParser;
12642
14148
 
12837
14343
  *err << state->lastToken->location () << sev_fatal 
12838
14344
       << "Giving up. Preprocessor stack overflow (>1000)" << endMessage;
12839
14345
 
12840
 
#line 1683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14346
#line 1683 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12841
14347
     return;
12842
14348
  }
12843
14349
  yypParser->top->stateno = yyNewState;
12956
14462
{
12957
14463
        state->syntaxTree = new PreProgram (yymsp[0].minor.yy0);
12958
14464
    }
12959
 
#line 1802 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14465
#line 1802 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12960
14466
        break;
12961
14467
      case 1:
12962
14468
        YYTRACE("directive_groups ::=")
12964
14470
{
12965
14471
        yygotominor.yy0 = new PreDirectiveGroups ();
12966
14472
    }
12967
 
#line 1810 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14473
#line 1810 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12968
14474
        break;
12969
14475
      case 2:
12970
14476
        YYTRACE("directive_groups ::= directive_groups directive_group")
12973
14479
        yymsp[-1].minor.yy0->add_son (yymsp[0].minor.yy0);
12974
14480
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12975
14481
    }
12976
 
#line 1819 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14482
#line 1819 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12977
14483
        break;
12978
14484
      case 3:
12979
14485
        YYTRACE("directive_groups ::= directive_groups error")
12982
14488
        yymsp[-1].minor.yy0->add_son (new PreError ());
12983
14489
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12984
14490
    }
12985
 
#line 1828 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14491
#line 1828 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12986
14492
        /* No destructor defined for error */
12987
14493
        break;
12988
14494
      case 4:
12991
14497
{
12992
14498
        yygotominor.yy0 = yymsp[0].minor.yy0;
12993
14499
    }
12994
 
#line 1837 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14500
#line 1837 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
12995
14501
        break;
12996
14502
      case 5:
12997
14503
        YYTRACE("directive_group ::= conditional_group")
12999
14505
{
13000
14506
        yygotominor.yy0 = yymsp[0].minor.yy0;
13001
14507
    }
13002
 
#line 1845 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14508
#line 1845 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13003
14509
        break;
13004
14510
      case 6:
13005
14511
        YYTRACE("conditional_group ::= if_part directive_groups endif_part")
13007
14513
{
13008
14514
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13009
14515
    }
13010
 
#line 1853 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14516
#line 1853 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13011
14517
        break;
13012
14518
      case 7:
13013
14519
        YYTRACE("conditional_group ::= if_part elif_part directive_groups endif_part")
13015
14521
{
13016
14522
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13017
14523
    }
13018
 
#line 1861 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14524
#line 1861 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13019
14525
        break;
13020
14526
      case 8:
13021
14527
        YYTRACE("conditional_group ::= if_part else_part directive_groups endif_part")
13023
14529
{
13024
14530
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13025
14531
    }
13026
 
#line 1869 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14532
#line 1869 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13027
14533
        break;
13028
14534
      case 9:
13029
14535
        YYTRACE("if_part ::= if_line TOK_PRE_DIRECTIVE_END")
13031
14537
{
13032
14538
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13033
14539
    }
13034
 
#line 1877 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14540
#line 1877 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13035
14541
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13036
14542
        break;
13037
14543
      case 10:
13040
14546
{
13041
14547
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13042
14548
    }
13043
 
#line 1886 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14549
#line 1886 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13044
14550
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13045
14551
        break;
13046
14552
      case 11:
13049
14555
{
13050
14556
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13051
14557
    }
13052
 
#line 1895 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14558
#line 1895 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13053
14559
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13054
14560
        break;
13055
14561
      case 12:
13058
14564
{
13059
14565
        yygotominor.yy0 = new PreElsePart (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
13060
14566
    }
13061
 
#line 1904 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14567
#line 1904 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13062
14568
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13063
14569
        break;
13064
14570
      case 13:
13067
14573
{
13068
14574
        yygotominor.yy0 = new PreElsePart (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
13069
14575
    }
13070
 
#line 1913 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14576
#line 1913 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13071
14577
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13072
14578
        break;
13073
14579
      case 14:
13077
14583
        yygotominor.yy0 = new PreElifPart ();
13078
14584
        ((PreElifPart*) (yygotominor.yy0))->addSons (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
13079
14585
    }
13080
 
#line 1923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14586
#line 1923 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13081
14587
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13082
14588
        break;
13083
14589
      case 15:
13087
14593
        ((PreElifPart*) (yymsp[-3].minor.yy0))->addSons (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
13088
14594
        yygotominor.yy0 = yymsp[-3].minor.yy0;
13089
14595
    }
13090
 
#line 1933 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14596
#line 1933 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13091
14597
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13092
14598
        break;
13093
14599
      case 16:
13096
14602
{
13097
14603
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13098
14604
    }
13099
 
#line 1942 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14605
#line 1942 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13100
14606
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13101
14607
        break;
13102
14608
      case 17:
13155
14661
                level->setState (false);
13156
14662
            } 
13157
14663
    }
13158
 
#line 2001 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14664
#line 2001 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13159
14665
        break;
13160
14666
      case 18:
13161
14667
        YYTRACE("ifdef_line ::= TOK_PRE_IFDEF token_list")
13173
14679
          level->setState (false);
13174
14680
        }
13175
14681
    }
13176
 
#line 2019 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14682
#line 2019 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13177
14683
        break;
13178
14684
      case 19:
13179
14685
        YYTRACE("ifdef_line ::= TOK_PRE_IFDEF TOK_PRE_ID token_list")
13208
14714
                level->setState (false);
13209
14715
            } 
13210
14716
    }
13211
 
#line 2054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14717
#line 2054 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13212
14718
        break;
13213
14719
      case 20:
13214
14720
        YYTRACE("ifndef_line ::= TOK_PRE_IFNDEF token_list")
13226
14732
          level->setState (false);
13227
14733
        }
13228
14734
    }
13229
 
#line 2072 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14735
#line 2072 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13230
14736
        break;
13231
14737
      case 21:
13232
14738
        YYTRACE("ifndef_line ::= TOK_PRE_IFNDEF TOK_PRE_ID token_list")
13261
14767
                level->setState (false);
13262
14768
            } 
13263
14769
    }
13264
 
#line 2107 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14770
#line 2107 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13265
14771
        break;
13266
14772
      case 22:
13267
14773
        YYTRACE("elif_line ::= TOK_PRE_ELIF token_list")
13316
14822
                    } 
13317
14823
            }
13318
14824
    }
13319
 
#line 2162 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14825
#line 2162 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13320
14826
        break;
13321
14827
      case 23:
13322
14828
        YYTRACE("else_line ::= TOK_PRE_ELSE token_list")
13333
14839
                level->setState (false);
13334
14840
            } 
13335
14841
    }
13336
 
#line 2179 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14842
#line 2179 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13337
14843
        break;
13338
14844
      case 24:
13339
14845
        YYTRACE("endif_line ::= TOK_PRE_ENDIF token_list")
13351
14857
            level->higher ();
13352
14858
        }
13353
14859
    }
13354
 
#line 2197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14860
#line 2197 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13355
14861
        break;
13356
14862
      case 25:
13357
14863
        YYTRACE("control_line ::= include_line TOK_PRE_DIRECTIVE_END")
13359
14865
{
13360
14866
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13361
14867
    }
13362
 
#line 2205 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14868
#line 2205 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13363
14869
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13364
14870
        break;
13365
14871
      case 26:
13368
14874
{
13369
14875
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13370
14876
    }
13371
 
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14877
#line 2214 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13372
14878
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13373
14879
        break;
13374
14880
      case 27:
13377
14883
{
13378
14884
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13379
14885
    }
13380
 
#line 2223 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14886
#line 2223 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13381
14887
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13382
14888
        break;
13383
14889
      case 28:
13386
14892
{
13387
14893
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13388
14894
    }
13389
 
#line 2232 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14895
#line 2232 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13390
14896
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13391
14897
        break;
13392
14898
      case 29:
13395
14901
{
13396
14902
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13397
14903
    }
13398
 
#line 2241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14904
#line 2241 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13399
14905
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13400
14906
        break;
13401
14907
      case 30:
13404
14910
{
13405
14911
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13406
14912
    }
13407
 
#line 2250 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14913
#line 2250 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13408
14914
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13409
14915
        break;
13410
14916
      case 31:
13413
14919
{
13414
14920
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13415
14921
    }
13416
 
#line 2259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14922
#line 2259 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13417
14923
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13418
14924
        break;
13419
14925
      case 32:
13422
14928
{
13423
14929
        yygotominor.yy0 = yymsp[-1].minor.yy0;
13424
14930
    }
13425
 
#line 2268 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14931
#line 2268 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13426
14932
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
13427
14933
        break;
13428
14934
      case 33:
13488
14994
            }
13489
14995
        }
13490
14996
    }
13491
 
#line 2334 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
14997
#line 2334 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13492
14998
        break;
13493
14999
      case 34:
13494
15000
        YYTRACE("include_next_line ::= TOK_PRE_INCLUDE_NEXT token_list")
13526
15032
            }
13527
15033
        }
13528
15034
    }
13529
 
#line 2372 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15035
#line 2372 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13530
15036
        break;
13531
15037
      case 35:
13532
15038
        YYTRACE("assert_line ::= TOK_PRE_ASSERT token_list")
13534
15040
{
13535
15041
        yygotominor.yy0 = new PreAssertDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13536
15042
    }
13537
 
#line 2380 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15043
#line 2380 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13538
15044
        break;
13539
15045
      case 36:
13540
15046
        YYTRACE("assert_line ::= TOK_PRE_ASSERT TOK_PRE_ID token_list")
13564
15070
            }
13565
15071
        }
13566
15072
    }
13567
 
#line 2410 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15073
#line 2410 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13568
15074
        break;
13569
15075
      case 37:
13570
15076
        YYTRACE("unassert_line ::= TOK_PRE_UNASSERT token_list")
13572
15078
{
13573
15079
        yygotominor.yy0 = new PreUnassertDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13574
15080
    }
13575
 
#line 2418 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15081
#line 2418 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13576
15082
        break;
13577
15083
      case 38:
13578
15084
        YYTRACE("unassert_line ::= TOK_PRE_UNASSERT TOK_PRE_ID token_list")
13603
15109
            }
13604
15110
        }
13605
15111
    }
13606
 
#line 2449 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15112
#line 2449 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13607
15113
        break;
13608
15114
      case 39:
13609
15115
        YYTRACE("define_line ::= TOK_PRE_DEFINE token_list")
13611
15117
{
13612
15118
        yygotominor.yy0 = new PreDefineConstantDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13613
15119
    }
13614
 
#line 2457 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15120
#line 2457 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13615
15121
        break;
13616
15122
      case 40:
13617
15123
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN TOK_PRE_RPAREN token_list")
13636
15142
                delete macro;
13637
15143
        }
13638
15144
    }
13639
 
#line 2482 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15145
#line 2482 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13640
15146
        break;
13641
15147
      case 41:
13642
15148
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN TOK_PRE_REST TOK_PRE_RPAREN token_list")
13663
15169
                delete macro;
13664
15170
        }
13665
15171
    }
13666
 
#line 2509 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15172
#line 2509 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13667
15173
        break;
13668
15174
      case 42:
13669
15175
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_RPAREN token_list")
13688
15194
                delete macro;
13689
15195
        }
13690
15196
    }
13691
 
#line 2534 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15197
#line 2534 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13692
15198
        break;
13693
15199
      case 43:
13694
15200
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_REST TOK_PRE_RPAREN token_list")
13714
15220
                delete macro;
13715
15221
        }
13716
15222
    }
13717
 
#line 2560 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15223
#line 2560 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13718
15224
        break;
13719
15225
      case 44:
13720
15226
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_COMMA TOK_PRE_REST TOK_PRE_RPAREN token_list")
13741
15247
                delete macro;
13742
15248
        }
13743
15249
    }
13744
 
#line 2587 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15250
#line 2587 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13745
15251
        break;
13746
15252
      case 45:
13747
15253
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID token_list")
13766
15272
                delete macro;
13767
15273
        }
13768
15274
    }
13769
 
#line 2612 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15275
#line 2612 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13770
15276
        break;
13771
15277
      case 46:
13772
15278
        YYTRACE("undef_line ::= TOK_PRE_UNDEF token_list")
13774
15280
{
13775
15281
        yygotominor.yy0 = new PreUndefDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13776
15282
    }
13777
 
#line 2620 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15283
#line 2620 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13778
15284
        break;
13779
15285
      case 47:
13780
15286
        YYTRACE("undef_line ::= TOK_PRE_UNDEF TOK_PRE_ID token_list")
13787
15293
            parser->macroManager ()->removeMacro (((PreTreeToken*) yymsp[-1].minor.yy0)->
13788
15294
                                                  token ()->dtext ());
13789
15295
    }
13790
 
#line 2633 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15296
#line 2633 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13791
15297
        break;
13792
15298
      case 48:
13793
15299
        YYTRACE("warning_line ::= TOK_PRE_WARNING token_list")
13805
15311
            delete[] message;
13806
15312
        }
13807
15313
    }
13808
 
#line 2651 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15314
#line 2651 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13809
15315
        break;
13810
15316
      case 49:
13811
15317
        YYTRACE("error_line ::= TOK_PRE_ERROR token_list")
13827
15333
            delete[] message;
13828
15334
        }
13829
15335
    }
13830
 
#line 2673 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15336
#line 2673 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13831
15337
        break;
13832
15338
      case 50:
13833
15339
        YYTRACE("identifier_list ::= TOK_PRE_ID")
13835
15341
13836
15342
        yygotominor.yy0 = new PreIdentifierList (yymsp[0].minor.yy0);
13837
15343
    }
13838
 
#line 2681 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15344
#line 2681 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13839
15345
        break;
13840
15346
      case 51:
13841
15347
        YYTRACE("identifier_list ::= identifier_list TOK_PRE_COMMA TOK_PRE_ID")
13844
15350
        ((PreIdentifierList*) (yymsp[-2].minor.yy0))->addSons (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13845
15351
        yygotominor.yy0 = yymsp[-2].minor.yy0;
13846
15352
    }
13847
 
#line 2690 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15353
#line 2690 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13848
15354
        break;
13849
15355
      case 52:
13850
15356
        YYTRACE("token_list ::= TOK_PRE_NEWLINE")
13858
15364
        else
13859
15365
            yygotominor.yy0 = yymsp[0].minor.yy0;  
13860
15366
    }
13861
 
#line 2704 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15367
#line 2704 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13862
15368
        break;
13863
15369
      case 53:
13864
15370
        YYTRACE("token_list ::= token_list_part TOK_PRE_NEWLINE")
13872
15378
        else
13873
15379
            yygotominor.yy0 = new PreTokenList (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
13874
15380
    }
13875
 
#line 2718 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15381
#line 2718 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13876
15382
        break;
13877
15383
      case 54:
13878
15384
        YYTRACE("token_list_part ::= TOK_PRE_TOKEN_LIST")
13880
15386
13881
15387
        yygotominor.yy0 = new PreTokenListPart (yymsp[0].minor.yy0); 
13882
15388
    }
13883
 
#line 2726 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15389
#line 2726 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13884
15390
        break;
13885
15391
      case 55:
13886
15392
        YYTRACE("token_list_part ::= token_list_part TOK_PRE_TOKEN_LIST")
13889
15395
        yymsp[-1].minor.yy0->add_son (yymsp[0].minor.yy0);
13890
15396
        yygotominor.yy0 = yymsp[-1].minor.yy0; 
13891
15397
    }
13892
 
#line 2735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15398
#line 2735 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13893
15399
        break;
13894
15400
  };
13895
15401
  yygoto = yyRuleInfo[yyruleno].lhs;
13960
15466
                 << state->lastToken->text () << "'" << endMessage; 
13961
15467
    }
13962
15468
 
13963
 
#line 2806 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15469
#line 2806 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
13964
15470
}
13965
15471
 
13966
15472
/*
14128
15634
  return;
14129
15635
}
14130
15636
 
14131
 
#line 14132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15637
#line 15638 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14132
15638
 
14133
 
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
14134
 
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
15639
#ifndef __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
15640
#define __ac_guard__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
14135
15641
#include "WinIfExists.ah"
14136
15642
#endif
14137
15643
 
14138
 
#line 2972 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
15644
#line 2972 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
14139
15645
 
14140
 
#line 98 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
15646
#line 98 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinIfExists.ah"
14141
15647
 void Puma::PreprocessorParser :: skip_up_to ( int end_token ) {
14142
15648
unsigned parenthesis = 0 , curlies = 0 ;
14143
15649
Puma :: Token * token ;
14176
15682
}
14177
15683
}
14178
15684
}
14179
 
#line 14180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15685
#line 15686 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14180
15686
 
14181
 
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreParser_cc__
14182
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
14183
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
14184
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
15687
#ifdef __ac_FIRST_FILE__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_src_PreParser_cc__
 
15688
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
15689
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
15690
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
14185
15691
#include "CCExprResolveCC.ah"
14186
15692
#endif
14187
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14188
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15693
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15694
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
14189
15695
#include "ExtACTree.ah"
14190
15696
#endif
14191
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
14192
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
15697
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
15698
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
14193
15699
#include "ExtGnu.ah"
14194
15700
#endif
14195
15701
#endif
14196
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
14197
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
14198
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15702
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15703
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15704
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
14199
15705
#include "CCExprResolveH.ah"
14200
15706
#endif
14201
15707
#endif
14202
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
14203
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
14204
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
15708
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
15709
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
15710
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
14205
15711
#include "CExprResolveCC.ah"
14206
15712
#endif
14207
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14208
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15713
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
15714
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
14209
15715
#include "ExtACTree.ah"
14210
15716
#endif
14211
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
14212
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
15717
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
15718
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
14213
15719
#include "ExtGnu.ah"
14214
15720
#endif
14215
15721
#endif
14216
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
14217
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
14218
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15722
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15723
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15724
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CExprResolveH_ah__
14219
15725
#include "CExprResolveH.ah"
14220
15726
#endif
14221
15727
#endif
14222
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
14223
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
14224
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
14225
 
 
14226
 
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
14227
 
#endif
14228
 
#endif
14229
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
14230
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
14231
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
14232
 
 
14233
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15728
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
15729
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
15730
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
15731
 
 
15732
#line 47 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
15733
#endif
 
15734
#endif
 
15735
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
15736
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
15737
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
15738
 
 
15739
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14234
15740
// This file is part of PUMA.
14235
15741
// Copyright (C) 1999-2003  The PUMA developer team.
14236
15742
//                                                                
14257
15763
/********************************************************/
14258
15764
 
14259
15765
 
14260
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15766
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14261
15767
 
14262
 
#line 14263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15768
#line 15769 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14263
15769
class CCExprResolve;
14264
15770
class CExprResolve;
14265
15771
class WinIfExists;
14279
15785
class PragmaOnce;
14280
15786
class CMatchSyntax;
14281
15787
 
14282
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15788
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14283
15789
class WinImportHandler {
14284
 
#line 14285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15790
#line 15791 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14285
15791
 
14286
15792
public:
14287
15793
  static WinImportHandler *aspectof () {
14293
15799
  }
14294
15800
private:
14295
15801
 
14296
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15802
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14297
15803
 
14298
 
#line 14299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15804
#line 15805 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14299
15805
  friend class ::CCExprResolve;
14300
15806
  friend class ::CExprResolve;
14301
15807
  friend class ::WinIfExists;
14315
15821
  friend class ::PragmaOnce;
14316
15822
  friend class ::CMatchSyntax;
14317
15823
 
14318
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15824
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14319
15825
 
14320
15826
  /********************************************************/
14321
15827
  /* Win #import directive                                */
14323
15829
 
14324
15830
  // pointcuts
14325
15831
  
14326
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15832
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14327
15833
 
14328
15834
  
14329
15835
  // handle --import-handler option
14330
15836
  
14331
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15837
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14332
15838
 
14333
15839
public: template<class JoinPoint> void __a0_before 
14334
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15840
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14335
15841
 
14336
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15842
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14337
15843
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
14338
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15844
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14339
15845
 {
14340
 
#line 14341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15846
#line 15847 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14341
15847
 
14342
15848
  JoinPoint *&thisJoinPoint = tjp;
14343
15849
 
14344
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15850
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14345
15851
 
14346
 
#line 14347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15852
#line 15853 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14347
15853
 
14348
15854
  typedef typename JoinPoint::That __JP_That;
14349
15855
  typedef typename JoinPoint::Target __JP_Target;
14350
15856
  typedef typename JoinPoint::Result __JP_Result;
14351
15857
 
14352
 
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15858
#line 41 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14353
15859
 
14354
15860
    const Puma::ConfOption *opt;
14355
15861
    char *tmp;
14368
15874
      }
14369
15875
    }
14370
15876
  }
14371
 
#line 14372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15877
#line 15878 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14372
15878
 
14373
15879
private:
14374
15880
 
14375
 
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15881
#line 58 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14376
15882
 
14377
15883
 
14378
15884
protected:
14379
15885
  WinImportHandler () {}
 
15886
public:
 
15887
  typedef AC::TLE __AttrTypes;
 
15888
  const char *__attr_name (unsigned i) const { return 0; }
 
15889
  const void *__attr (unsigned __i) const { return 0; }
 
15890
#line 62 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14380
15891
};
14381
 
#line 14382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15892
#line 15893 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14382
15893
 
14383
15894
namespace AC {
14384
15895
  template <class JoinPoint>
14389
15900
  }
14390
15901
14391
15902
 
14392
 
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
15903
#line 62 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinImportHandler.ah"
14393
15904
 
14394
15905
 
14395
15906
 
14396
15907
#endif /* __WinImportHandler__ */
14397
15908
 
14398
 
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
14399
 
#endif
14400
 
#endif
14401
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
14402
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
14403
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
15909
#line 53 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
15910
#endif
 
15911
#endif
 
15912
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
 
15913
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
 
15914
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMacros_ah__
14404
15915
 
14405
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
15916
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14406
15917
// This file is part of PUMA.
14407
15918
// Copyright (C) 1999-2003  The PUMA developer team.
14408
15919
//                                                                
14429
15940
/********************************************************/
14430
15941
 
14431
15942
 
14432
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
15943
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14433
15944
 
14434
 
#line 14435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15945
#line 15946 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14435
15946
class CCExprResolve;
14436
15947
class CExprResolve;
14437
15948
class WinIfExists;
14451
15962
class PragmaOnce;
14452
15963
class CMatchSyntax;
14453
15964
 
14454
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
15965
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14455
15966
class WinMacros {
14456
 
#line 14457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15967
#line 15968 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14457
15968
 
14458
15969
public:
14459
15970
  static WinMacros *aspectof () {
14465
15976
  }
14466
15977
private:
14467
15978
 
14468
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
15979
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14469
15980
 
14470
 
#line 14471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
15981
#line 15982 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14471
15982
  friend class ::CCExprResolve;
14472
15983
  friend class ::CExprResolve;
14473
15984
  friend class ::WinIfExists;
14487
15998
  friend class ::PragmaOnce;
14488
15999
  friend class ::CMatchSyntax;
14489
16000
 
14490
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16001
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14491
16002
 
14492
16003
  /********************************************************/
14493
16004
  /* Win specific predefined macros                       */
14495
16006
 
14496
16007
  // predefine win specific macros
14497
16008
  
14498
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16009
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14499
16010
 
14500
16011
public: template<class JoinPoint> void __a0_before 
14501
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16012
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14502
16013
 
14503
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16014
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14504
16015
(JoinPoint *tjp, const Puma::Config &config)
14505
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16016
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14506
16017
 {
14507
 
#line 14508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16018
#line 16019 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14508
16019
 
14509
16020
  JoinPoint *&thisJoinPoint = tjp;
14510
16021
 
14511
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16022
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14512
16023
 
14513
 
#line 14514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16024
#line 16025 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14514
16025
 
14515
16026
  typedef typename JoinPoint::That __JP_That;
14516
16027
  typedef typename JoinPoint::Target __JP_Target;
14517
16028
  typedef typename JoinPoint::Result __JP_Result;
14518
16029
 
14519
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16030
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14520
16031
 
14521
16032
    if (config.Option ("--vc")) {
14522
16033
      // constants
14535
16046
        new Puma::PreMacro ("__declspec", args, " "));
14536
16047
    }
14537
16048
  }
14538
 
#line 14539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16049
#line 16050 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14539
16050
 
14540
16051
private:
14541
16052
 
14542
 
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16053
#line 54 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14543
16054
 
14544
16055
 
14545
16056
protected:
14546
16057
  WinMacros () {}
 
16058
public:
 
16059
  typedef AC::TLE __AttrTypes;
 
16060
  const char *__attr_name (unsigned i) const { return 0; }
 
16061
  const void *__attr (unsigned __i) const { return 0; }
 
16062
#line 58 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14547
16063
};
14548
 
#line 14549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16064
#line 16065 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14549
16065
 
14550
16066
namespace AC {
14551
16067
  template <class JoinPoint>
14555
16071
  }
14556
16072
14557
16073
 
14558
 
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
16074
#line 58 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/WinMacros.ah"
14559
16075
 
14560
16076
 
14561
16077
 
14562
16078
#endif /* __WinMacros__ */
14563
16079
 
14564
 
#line 59 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
16080
#line 59 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
14565
16081
#endif
14566
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
14567
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16082
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16083
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
14568
16084
 
14569
 
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
14570
 
#endif
14571
 
#endif
14572
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
14573
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
14574
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
16085
#line 63 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
16086
#endif
 
16087
#endif
 
16088
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinAsm_ah__
 
16089
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinAsm_ah__
 
16090
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinAsm_ah__
14575
16091
#include "WinAsm.ah"
14576
16092
#endif
14577
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14578
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16093
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16094
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
14579
16095
#include "ExtACTree.ah"
14580
16096
#endif
14581
16097
#endif
14582
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
14583
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
14584
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
16098
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
16099
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
16100
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
14585
16101
#include "WinDeclSpecs.ah"
14586
16102
#endif
14587
16103
#endif
14588
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
14589
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
14590
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
16104
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
16105
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
16106
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
14591
16107
#include "WinMemberExplSpec.ah"
14592
16108
#endif
14593
16109
#endif
14594
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
14595
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
14596
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
16110
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
16111
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
16112
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
14597
16113
#include "WinTypeKeywords.ah"
14598
16114
#endif
14599
16115
#endif
14600
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
14601
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
14602
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
16116
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinFriend_ah__
 
16117
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinFriend_ah__
 
16118
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_WinFriend_ah__
14603
16119
#include "WinFriend.ah"
14604
16120
#endif
14605
16121
#endif
14606
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
14607
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
14608
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
16122
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtAC_ah__
 
16123
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtAC_ah__
 
16124
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtAC_ah__
14609
16125
#include "ExtAC.ah"
14610
16126
#endif
14611
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14612
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16127
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16128
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
14613
16129
#include "ExtACTree.ah"
14614
16130
#endif
14615
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14616
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16131
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16132
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14617
16133
#include "ExtACKeywords.ah"
14618
16134
#endif
14619
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
14620
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
16135
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
16136
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
14621
16137
#include "ExtGnu.ah"
14622
16138
#endif
14623
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
14624
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16139
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16140
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
14625
16141
#include "PragmaOnceUnitState.ah"
14626
16142
#endif
14627
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
14628
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
16143
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
16144
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
14629
16145
#include "CMatchSyntax.ah"
14630
16146
#endif
14631
16147
#endif
14632
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
14633
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
14634
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
16148
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
16149
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
16150
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
14635
16151
#include "ExtACBuilderH.ah"
14636
16152
#endif
14637
16153
#endif
14638
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
14639
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
14640
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
16154
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
16155
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
16156
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
14641
16157
#include "ExtACBuilderCC.ah"
14642
16158
#endif
14643
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14644
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16159
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16160
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
14645
16161
#include "ExtACTree.ah"
14646
16162
#endif
14647
16163
#endif
14648
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
14649
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
14650
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
16164
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
16165
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
16166
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
14651
16167
#include "ExtACSyntaxH.ah"
14652
16168
#endif
14653
16169
#endif
14654
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
14655
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
14656
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
16170
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
16171
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
16172
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
14657
16173
#include "ExtACSyntaxCC.ah"
14658
16174
#endif
14659
16175
#endif
14660
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14661
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
14662
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16176
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16177
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16178
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
14663
16179
#include "ExtACTree.ah"
14664
16180
#endif
14665
16181
#endif
14666
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14667
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14668
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16182
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16183
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16184
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14669
16185
 
14670
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16186
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
14671
16187
// This file is part of PUMA.
14672
16188
// Copyright (C) 1999-2003  The PUMA developer team.
14673
16189
//                                                                
14690
16206
#define __ext_ac_keywords_ah__
14691
16207
 
14692
16208
 
14693
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
16209
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
14694
16210
 
14695
 
#line 14696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16211
#line 16212 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14696
16212
 
14697
16213
#ifndef __ac_fwd_ExtACKeywords__
14698
16214
#define __ac_fwd_ExtACKeywords__
14707
16223
}
14708
16224
#endif
14709
16225
 
14710
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14711
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16226
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
16227
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
14712
16228
#endif
14713
16229
 
14714
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
16230
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
14715
16231
// This file is part of PUMA.
14716
16232
// Copyright (C) 1999-2003  The PUMA developer team.
14717
16233
//                                                                
14736
16252
// Special project derivation for C++ sources.
14737
16253
 
14738
16254
 
14739
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
16255
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Project.h"
14740
16256
// This file is part of PUMA.
14741
16257
// Copyright (C) 1999-2003  The PUMA developer team.
14742
16258
//                                                                
14762
16278
// methods for searching and writing files. 
14763
16279
 
14764
16280
 
14765
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
16281
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathManager.h"
14766
16282
// This file is part of PUMA.
14767
16283
// Copyright (C) 1999-2003  The PUMA developer team.
14768
16284
//                                                                
14787
16303
// Manages directories and methods to access the files in it.
14788
16304
 
14789
16305
 
14790
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
16306
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathInfo.h"
14791
16307
// This file is part of PUMA.
14792
16308
// Copyright (C) 1999-2003  The PUMA developer team.
14793
16309
//                                                                
14816
16332
 
14817
16333
 
14818
16334
 
14819
 
#line 14820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16335
#line 16336 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14820
16336
} // closed Puma
14821
16337
class CCExprResolve;
14822
16338
class CExprResolve;
14839
16355
class CMatchSyntax;
14840
16356
namespace Puma {
14841
16357
 
14842
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
16358
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathInfo.h"
14843
16359
class PathInfo {
14844
 
#line 14845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16360
#line 16361 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14845
16361
  friend class ::CCExprResolve;
14846
16362
  friend class ::CExprResolve;
14847
16363
  friend class ::WinIfExists;
14862
16378
  friend class ::PragmaOnce;
14863
16379
  friend class ::CMatchSyntax;
14864
16380
 
14865
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
16381
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathInfo.h"
14866
16382
 
14867
16383
  const char *_src;        // Source path.
14868
16384
  const char *_dest;        // Destination path.
14882
16398
  // Set or get the destination path.
14883
16399
  void dest (const char *);
14884
16400
  const char *dest () const { return _dest; }
 
16401
public:
 
16402
  typedef AC::TL<const char *,AC::TL<const char *,AC::TLE > > __AttrTypes;
 
16403
  const char *__attr_name (unsigned i) const {
 
16404
    static const char *names[] = { "_src", "_dest" }; return names[i];
 
16405
  }
 
16406
  const void *__attr (unsigned __i) const {
 
16407
    switch (__i) { case 0: return &_src; case 1: return &_dest; default: return 0; }
 
16408
  }
 
16409
#line 47 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathInfo.h"
14885
16410
};
14886
16411
 
14887
16412
 
14889
16414
 
14890
16415
#endif /* __path_info__ */
14891
16416
 
14892
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
16417
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathIterator.h"
14893
16418
// This file is part of PUMA.
14894
16419
// Copyright (C) 1999-2003  The PUMA developer team.
14895
16420
//                                                                
14916
16441
// are iterated. 
14917
16442
 
14918
16443
 
14919
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
16444
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
14920
16445
// This file is part of PUMA.
14921
16446
// Copyright (C) 1999-2003  The PUMA developer team.
14922
16447
//                                                                
14939
16464
#define __project_file__
14940
16465
 
14941
16466
 
14942
 
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
16467
#line 23 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
14943
16468
using std::map;
14944
16469
 
14945
 
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
16470
#line 25 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
14946
16471
using std::string;
14947
16472
 
14948
16473
 
14949
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
16474
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
14950
16475
namespace Puma {
14951
16476
 
14952
16477
// the project file abstraction is used to store all filenames relevant
14953
16478
// for a specific file that is managed by Puma.
14954
16479
 
14955
16480
 
14956
 
#line 14957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16481
#line 16482 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14957
16482
} // closed Puma
14958
16483
class CCExprResolve;
14959
16484
class CExprResolve;
14976
16501
class CMatchSyntax;
14977
16502
namespace Puma {
14978
16503
 
14979
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
16504
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
14980
16505
class ProjectFile {
14981
 
#line 14982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16506
#line 16507 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
14982
16507
  friend class ::CCExprResolve;
14983
16508
  friend class ::CExprResolve;
14984
16509
  friend class ::WinIfExists;
14999
16524
  friend class ::PragmaOnce;
15000
16525
  friend class ::CMatchSyntax;
15001
16526
 
15002
 
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
16527
#line 34 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
15003
16528
 
15004
16529
  Filename _nick_name;
15005
16530
  Filename _dest_path;
15013
16538
    assert (_dest_path.is_defined ());
15014
16539
    return _dest_path;
15015
16540
  }
 
16541
public:
 
16542
  typedef AC::TL<Puma::Filename,AC::TL<Puma::Filename,AC::TLE > > __AttrTypes;
 
16543
  const char *__attr_name (unsigned i) const {
 
16544
    static const char *names[] = { "_nick_name", "_dest_path" }; return names[i];
 
16545
  }
 
16546
  const void *__attr (unsigned __i) const {
 
16547
    switch (__i) { case 0: return &_nick_name; case 1: return &_dest_path; default: return 0; }
 
16548
  }
 
16549
#line 47 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
15016
16550
};
15017
16551
 
15018
16552
typedef map<string, ProjectFile> PFMap;
15023
16557
 
15024
16558
#endif // __project_file__
15025
16559
 
15026
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
16560
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathIterator.h"
15027
16561
namespace Puma {
15028
16562
 
15029
16563
class PathManager;
15030
16564
class RegComp;
15031
16565
 
15032
16566
 
15033
 
#line 15034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16567
#line 16568 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15034
16568
} // closed Puma
15035
16569
class CCExprResolve;
15036
16570
class CExprResolve;
15053
16587
class CMatchSyntax;
15054
16588
namespace Puma {
15055
16589
 
15056
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
16590
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathIterator.h"
15057
16591
class PathIterator : public PFMConstIter {
15058
 
#line 15059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16592
#line 16593 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15059
16593
  friend class ::CCExprResolve;
15060
16594
  friend class ::CExprResolve;
15061
16595
  friend class ::WinIfExists;
15076
16610
  friend class ::PragmaOnce;
15077
16611
  friend class ::CMatchSyntax;
15078
16612
 
15079
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
16613
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathIterator.h"
15080
16614
 
15081
16615
  friend class PathManager;
15082
16616
 
15095
16629
  // retrieve information about the currently referenced ProjectFile
15096
16630
  const char *file () const;
15097
16631
  const char *dest () const;
 
16632
public:
 
16633
  typedef AC::TL<Puma::RegComp *,AC::TL<bool,AC::TLE > > __AttrTypes;
 
16634
  const char *__attr_name (unsigned i) const {
 
16635
    static const char *names[] = { "_regexp", "_in_use" }; return names[i];
 
16636
  }
 
16637
  const void *__attr (unsigned __i) const {
 
16638
    switch (__i) { case 0: return &_regexp; case 1: return &_in_use; default: return 0; }
 
16639
  }
 
16640
#line 53 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathIterator.h"
15098
16641
};
15099
16642
 
15100
16643
} // namespace Puma
15101
16644
 
15102
16645
#endif /* __path_iterator__ */
15103
16646
 
15104
 
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
16647
#line 31 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathManager.h"
15105
16648
namespace Puma {
15106
16649
 
15107
16650
class RegComp;
15109
16652
class Unit;
15110
16653
 
15111
16654
 
15112
 
#line 15113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16655
#line 16656 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15113
16656
} // closed Puma
15114
16657
class CCExprResolve;
15115
16658
class CExprResolve;
15132
16675
class CMatchSyntax;
15133
16676
namespace Puma {
15134
16677
 
15135
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
16678
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathManager.h"
15136
16679
class PathManager {
15137
 
#line 15138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16680
#line 16681 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15138
16681
  friend class ::CCExprResolve;
15139
16682
  friend class ::CExprResolve;
15140
16683
  friend class ::WinIfExists;
15155
16698
  friend class ::PragmaOnce;
15156
16699
  friend class ::CMatchSyntax;
15157
16700
 
15158
 
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
15159
 
 
 
16701
#line 37 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathManager.h"
15160
16702
 
15161
16703
  ErrorStream     *_err;
15162
16704
  Array<PathInfo>  _paths;     // List of directories path.
15245
16787
  // Get the path of a file in the destination directory.
15246
16788
  bool getDestinationPath (const char *filename, ostream &out) const;
15247
16789
        
 
16790
public:
 
16791
  typedef AC::TL<Puma::ErrorStream *,AC::TL<Puma::Array< Puma::PathInfo >,AC::TL<Puma::Array< Puma::RegComp * >,AC::TL<std::map< std::basic_string< char >,Puma::ProjectFile >,AC::TLE > > > > __AttrTypes;
 
16792
  const char *__attr_name (unsigned i) const {
 
16793
    static const char *names[] = { "_err", "_paths", "_protected", "_files" }; return names[i];
 
16794
  }
 
16795
  const void *__attr (unsigned __i) const {
 
16796
    switch (__i) { case 0: return &_err; case 2: return &_paths; case 4: return &_protected; case 5: return &_files; default: return 0; }
 
16797
  }
 
16798
#line 125 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PathManager.h"
15248
16799
};
15249
16800
 
15250
16801
inline bool PathManager::isBelow (const char *file) const { 
15257
16808
 
15258
16809
#endif /* __path_manager__ */
15259
16810
 
15260
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
16811
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
15261
16812
 
15262
 
#line 15263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16813
#line 16814 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15263
16814
 
15264
16815
#ifndef __ac_fwd_PragmaOnceUnitState__
15265
16816
#define __ac_fwd_PragmaOnceUnitState__
15272
16823
}
15273
16824
#endif
15274
16825
 
15275
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
15276
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16826
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16827
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
15277
16828
#endif
15278
16829
 
15279
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
16830
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
15280
16831
// This file is part of PUMA.
15281
16832
// Copyright (C) 1999-2003  The PUMA developer team.
15282
16833
//                                                                
15315
16866
class Tokenizer;
15316
16867
 
15317
16868
 
15318
 
#line 15319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16869
#line 16870 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15319
16870
} // closed Puma
15320
16871
class CCExprResolve;
15321
16872
class CExprResolve;
15338
16889
class CMatchSyntax;
15339
16890
namespace Puma {
15340
16891
 
15341
 
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
16892
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
15342
16893
class UnitManager {
15343
 
#line 15344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16894
#line 16895 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15344
16895
  friend class ::CCExprResolve;
15345
16896
  friend class ::CExprResolve;
15346
16897
  friend class ::WinIfExists;
15361
16912
  friend class ::PragmaOnce;
15362
16913
  friend class ::CMatchSyntax;
15363
16914
 
15364
 
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
16915
#line 38 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
15365
16916
 
15366
16917
public:
15367
16918
  typedef map<string, Unit*> UMap;
15415
16966
  // Initialize the unit manager and the managed 
15416
16967
  // units for the next parse process.
15417
16968
  
15418
 
#line 15419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
16969
#line 16970 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15419
16970
public: __attribute__((always_inline)) inline void __exec_old_init();
15420
16971
 
15421
 
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
16972
#line 90 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
15422
16973
void init ();
 
16974
public:
 
16975
  typedef AC::TL<Puma::ErrorStream *,AC::TL<std::list< Puma::Unit * >,AC::TL<std::map< std::basic_string< char >,Puma::Unit * >,AC::TL<Puma::Tokenizer *,AC::TLE > > > > __AttrTypes;
 
16976
  const char *__attr_name (unsigned i) const {
 
16977
    static const char *names[] = { "_err", "_nonames", "_umap", "_tokenizer" }; return names[i];
 
16978
  }
 
16979
  const void *__attr (unsigned __i) const {
 
16980
    switch (__i) { case 2: return &_err; case 4: return &_nonames; case 5: return &_umap; case 6: return &_tokenizer; default: return 0; }
 
16981
  }
 
16982
#line 91 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/UnitManager.h"
15423
16983
};
15424
16984
 
15425
16985
 
15427
16987
 
15428
16988
#endif /* __UnitManager__ */
15429
16989
 
15430
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
16990
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SaveMode.h"
15431
16991
// This file is part of PUMA.
15432
16992
// Copyright (C) 1999-2003  The PUMA developer team.
15433
16993
//                                                                
15454
17014
 
15455
17015
// Project file save mode.
15456
17016
 
15457
 
#line 15458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17017
#line 17018 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15458
17018
} // closed Puma
15459
17019
class CCExprResolve;
15460
17020
class CExprResolve;
15477
17037
class CMatchSyntax;
15478
17038
namespace Puma {
15479
17039
 
15480
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
17040
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SaveMode.h"
15481
17041
struct SaveMode {
15482
 
#line 15483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17042
#line 17043 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15483
17043
  friend class ::CCExprResolve;
15484
17044
  friend class ::CExprResolve;
15485
17045
  friend class ::WinIfExists;
15500
17060
  friend class ::PragmaOnce;
15501
17061
  friend class ::CMatchSyntax;
15502
17062
 
15503
 
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
17063
#line 26 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SaveMode.h"
15504
17064
 
15505
17065
  enum Mode { 
15506
17066
    OVERWRITE = 1, 
15507
17067
    RENAME_OLD, 
15508
17068
    NEW_SUFFIX 
15509
17069
  };
 
17070
public:
 
17071
  typedef AC::TLE __AttrTypes;
 
17072
  const char *__attr_name (unsigned i) const {
 
17073
    static const char *names[] = {  }; return names[i];
 
17074
  }
 
17075
  const void *__attr (unsigned __i) const {
 
17076
    switch (__i) { default: return 0; }
 
17077
  }
 
17078
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/SaveMode.h"
15510
17079
};
15511
17080
    
15512
17081
 
15514
17083
 
15515
17084
#endif /* __SaveMode__ */
15516
17085
 
15517
 
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
17086
#line 28 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Project.h"
15518
17087
#include <fstream>
15519
17088
 
15520
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
17089
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Project.h"
15521
17090
using namespace std;
15522
17091
 
15523
17092
namespace Puma {
15524
17093
 
15525
17094
 
15526
17095
 
15527
 
#line 15528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17096
#line 17097 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15528
17097
} // closed Puma
15529
17098
class CCExprResolve;
15530
17099
class CExprResolve;
15547
17116
class CMatchSyntax;
15548
17117
namespace Puma {
15549
17118
 
15550
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
17119
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Project.h"
15551
17120
class Project : public PathManager, public SaveMode {
15552
 
#line 15553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17121
#line 17122 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15553
17122
  friend class ::CCExprResolve;
15554
17123
  friend class ::CExprResolve;
15555
17124
  friend class ::WinIfExists;
15570
17139
  friend class ::PragmaOnce;
15571
17140
  friend class ::CMatchSyntax;
15572
17141
 
15573
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
17142
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Project.h"
15574
17143
 
15575
17144
  UnitManager  _unitManager; 
15576
17145
  const char  *_suffix;           // Current file name suffix.
15644
17213
  // Returns true if the given file is in or below the project dirs
15645
17214
  virtual bool isBelow (const char *) const;
15646
17215
  virtual bool isBelow (Unit *) const;
 
17216
public:
 
17217
  typedef AC::TL<Puma::UnitManager,AC::TL<const char *,AC::TL<Puma::SaveMode::Mode,AC::TLE > > > __AttrTypes;
 
17218
  const char *__attr_name (unsigned i) const {
 
17219
    static const char *names[] = { "_unitManager", "_suffix", "_mode" }; return names[i];
 
17220
  }
 
17221
  const void *__attr (unsigned __i) const {
 
17222
    switch (__i) { case 0: return &_unitManager; case 1: return &_suffix; case 2: return &_mode; default: return 0; }
 
17223
  }
 
17224
#line 108 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/Project.h"
15647
17225
};
15648
17226
 
15649
17227
inline UnitManager &Project::unitManager () 
15657
17235
 
15658
17236
#endif /* __project__ */
15659
17237
 
15660
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
17238
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15661
17239
 
15662
 
#line 15663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17240
#line 17241 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15663
17241
 
15664
17242
#ifndef __ac_fwd_ExtACKeywords__
15665
17243
#define __ac_fwd_ExtACKeywords__
15674
17252
}
15675
17253
#endif
15676
17254
 
15677
 
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
15678
 
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
17255
#ifndef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
17256
#define __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
15679
17257
#endif
15680
17258
 
15681
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
17259
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15682
17260
// This file is part of PUMA.
15683
17261
// Copyright (C) 1999-2003  The PUMA developer team.
15684
17262
//                                                                
15715
17293
class Token;
15716
17294
 
15717
17295
 
15718
 
#line 15719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17296
#line 17297 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15719
17297
} // closed Puma
15720
17298
class CCExprResolve;
15721
17299
class CExprResolve;
15738
17316
class CMatchSyntax;
15739
17317
namespace Puma {
15740
17318
 
15741
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
17319
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15742
17320
class CScanner : public CRecognizer, public Tokenizer {
15743
 
#line 15744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17321
#line 17322 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15744
17322
  friend class ::CCExprResolve;
15745
17323
  friend class ::CExprResolve;
15746
17324
  friend class ::WinIfExists;
15761
17339
  friend class ::PragmaOnce;
15762
17340
  friend class ::CMatchSyntax;
15763
17341
 
15764
 
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
17342
#line 36 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15765
17343
 
15766
17344
  Location loc;
15767
17345
  ErrorSink &err;
15776
17354
  virtual ~CScanner () {}
15777
17355
  void configure (const Config &);
15778
17356
  
15779
 
#line 15780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17357
#line 17358 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15780
17358
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
15781
17359
 
15782
 
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
17360
#line 49 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15783
17361
void fill_unit (Source &in, Unit &unit);
15784
17362
  
15785
 
#line 15786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17363
#line 17364 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15786
17364
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
15787
17365
 
15788
 
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
17366
#line 50 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15789
17367
void fill_unit (const char *in, Unit &unit);
 
17368
public:
 
17369
  typedef AC::TL<Puma::Location,AC::TL<Puma::ErrorSink &,AC::TLE > > __AttrTypes;
 
17370
  const char *__attr_name (unsigned i) const {
 
17371
    static const char *names[] = { "loc", "err" }; return names[i];
 
17372
  }
 
17373
  const void *__attr (unsigned __i) const {
 
17374
    switch (__i) { case 0: return &loc; case 1: return &err; default: return 0; }
 
17375
  }
 
17376
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CScanner.h"
15790
17377
};
15791
17378
 
15792
17379
 
15794
17381
 
15795
17382
#endif /* __c_scanner_h__ */
15796
17383
 
15797
 
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
17384
#line 29 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
15798
17385
namespace Puma {
15799
17386
 
15800
17387
 
15802
17389
class CTypeInfo;
15803
17390
 
15804
17391
 
15805
 
#line 15806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17392
#line 17393 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15806
17393
} // closed Puma
15807
17394
class CCExprResolve;
15808
17395
class CExprResolve;
15825
17412
class CMatchSyntax;
15826
17413
namespace Puma {
15827
17414
 
15828
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
17415
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
15829
17416
class CProject : public Project {
15830
 
#line 15831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17417
#line 17418 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15831
17418
  friend class ::CCExprResolve;
15832
17419
  friend class ::CExprResolve;
15833
17420
  friend class ::WinIfExists;
15848
17435
  friend class ::PragmaOnce;
15849
17436
  friend class ::CMatchSyntax;
15850
17437
 
15851
 
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
17438
#line 35 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
15852
17439
 
15853
17440
  Config _config;
15854
17441
  CScanner _scanner;
15884
17471
  // Scan the file `file' or the source if given. When
15885
17472
  // scanning a source the resulting unit gets the name `file'.
15886
17473
  
15887
 
#line 15888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17474
#line 17475 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15888
17475
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
15889
17476
 
15890
 
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
17477
#line 69 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
15891
17478
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
15892
17479
                          bool isFile = true);
15893
17480
        
15905
17492
  // Map the type string from --size-type and --ptrdiff-type
15906
17493
  // to real Puma type.
15907
17494
  CTypeInfo *mapType (const char *) const;
 
17495
public:
 
17496
  typedef AC::TL<Puma::Config,AC::TL<Puma::CScanner,AC::TLE > > __AttrTypes;
 
17497
  const char *__attr_name (unsigned i) const {
 
17498
    static const char *names[] = { "_config", "_scanner" }; return names[i];
 
17499
  }
 
17500
  const void *__attr (unsigned __i) const {
 
17501
    switch (__i) { case 0: return &_config; case 1: return &_scanner; default: return 0; }
 
17502
  }
 
17503
#line 86 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/CProject.h"
15908
17504
};
15909
17505
 
15910
17506
inline Config &CProject::config () 
15917
17513
 
15918
17514
#endif /* __CProject_h__ */
15919
17515
 
15920
 
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
17516
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FileUnit.h"
15921
17517
// This file is part of PUMA.
15922
17518
// Copyright (C) 1999-2003  The PUMA developer team.
15923
17519
//                                                                
15943
17539
// absolute path of the corresponding file.
15944
17540
 
15945
17541
 
15946
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
17542
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FileUnit.h"
15947
17543
namespace Puma {
15948
17544
 
15949
17545
 
15950
17546
class Project;
15951
17547
 
15952
17548
 
15953
 
#line 15954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17549
#line 17550 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15954
17550
} // closed Puma
15955
17551
class CCExprResolve;
15956
17552
class CExprResolve;
15973
17569
class CMatchSyntax;
15974
17570
namespace Puma {
15975
17571
 
15976
 
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
17572
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FileUnit.h"
15977
17573
class FileUnit : public Unit {
15978
 
#line 15979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17574
#line 17575 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
15979
17575
  friend class ::CCExprResolve;
15980
17576
  friend class ::CExprResolve;
15981
17577
  friend class ::WinIfExists;
15996
17592
  friend class ::PragmaOnce;
15997
17593
  friend class ::CMatchSyntax;
15998
17594
 
15999
 
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
17595
#line 32 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FileUnit.h"
16000
17596
 
16001
17597
  char *_lastLocation; 
16002
17598
  char *_absolutePath;
16023
17619
  
16024
17620
  // File belongs to given project?
16025
17621
  bool belongsTo (Project &);
 
17622
public:
 
17623
  typedef AC::TL<char *,AC::TL<char *,AC::TL<Puma::Project *,AC::TL<bool,AC::TLE > > > > __AttrTypes;
 
17624
  const char *__attr_name (unsigned i) const {
 
17625
    static const char *names[] = { "_lastLocation", "_absolutePath", "_project", "_isBelow" }; return names[i];
 
17626
  }
 
17627
  const void *__attr (unsigned __i) const {
 
17628
    switch (__i) { case 0: return &_lastLocation; case 1: return &_absolutePath; case 2: return &_project; case 3: return &_isBelow; default: return 0; }
 
17629
  }
 
17630
#line 58 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/FileUnit.h"
16026
17631
};
16027
17632
 
16028
17633
inline FileUnit::FileUnit () : 
16062
17667
 
16063
17668
#endif /* __FileUnit__ */
16064
17669
 
16065
 
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17670
#line 27 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16066
17671
// *****************************************
16067
17672
// AspectC++ keyword handling in the scanner
16068
17673
// *****************************************
16069
17674
 
16070
 
#line 16071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17675
#line 17676 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
16071
17676
class CCExprResolve;
16072
17677
class CExprResolve;
16073
17678
class WinIfExists;
16087
17692
class PragmaOnce;
16088
17693
class CMatchSyntax;
16089
17694
 
16090
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17695
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16091
17696
class ExtACKeywords {
16092
 
#line 16093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17697
#line 17698 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
16093
17698
 
16094
17699
public:
16095
17700
  static ExtACKeywords *aspectof () {
16101
17706
  }
16102
17707
private:
16103
17708
 
16104
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17709
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16105
17710
 
16106
 
#line 16107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17711
#line 17712 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
16107
17712
  friend class ::CCExprResolve;
16108
17713
  friend class ::CExprResolve;
16109
17714
  friend class ::WinIfExists;
16123
17728
  friend class ::PragmaOnce;
16124
17729
  friend class ::CMatchSyntax;
16125
17730
 
16126
 
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17731
#line 30 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16127
17732
 
16128
17733
 
16129
17734
  bool _prj_keywords;
16137
17742
  void prj_keywords (bool kw) { _prj_keywords = kw; }
16138
17743
  
16139
17744
  
16140
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17745
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16141
17746
 
16142
17747
public: void __a0_before 
16143
 
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17748
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16144
17749
 
16145
 
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17750
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16146
17751
(Puma::CProject &project)
16147
 
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17752
#line 43 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16148
17753
 {
16149
17754
    _project = &project;
16150
17755
  }
16151
17756
  
16152
17757
  
16153
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17758
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16154
17759
 
16155
17760
public: template<class JoinPoint> void __a1_before 
16156
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17761
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16157
17762
 
16158
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17763
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16159
17764
(JoinPoint *tjp, Puma::Unit &unit)
16160
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17765
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16161
17766
 {
16162
 
#line 16163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17767
#line 17768 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
16163
17768
 
16164
17769
  typedef typename JoinPoint::That __JP_That;
16165
17770
  typedef typename JoinPoint::Target __JP_Target;
16166
17771
  typedef typename JoinPoint::Result __JP_Result;
16167
17772
 
16168
 
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17773
#line 51 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16169
17774
 
16170
17775
    if (!unit.isFile ())
16171
17776
      return;
16185
17790
  }
16186
17791
  
16187
17792
  
16188
 
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17793
#line 3 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16189
17794
 
16190
17795
public: template<class JoinPoint> void __a2_before 
16191
 
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17796
#line 69 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16192
17797
 
16193
 
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17798
#line 69 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16194
17799
(JoinPoint *tjp)
16195
 
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17800
#line 69 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16196
17801
 {
16197
 
#line 16198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17802
#line 17803 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
16198
17803
 
16199
17804
  typedef typename JoinPoint::That __JP_That;
16200
17805
  typedef typename JoinPoint::Target __JP_Target;
16201
17806
  typedef typename JoinPoint::Result __JP_Result;
16202
17807
 
16203
 
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17808
#line 69 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16204
17809
 
16205
17810
    _project = tjp->that ();
16206
17811
  }
 
17812
public:
 
17813
  typedef AC::TL<bool,AC::TL<Puma::CProject *,AC::TLE > > __AttrTypes;
 
17814
  const char *__attr_name (unsigned i) const {
 
17815
    static const char *names[] = { "_prj_keywords", "_project" }; return names[i];
 
17816
  }
 
17817
  const void *__attr (unsigned __i) const {
 
17818
    switch (__i) { case 0: return &_prj_keywords; case 1: return &_project; default: return 0; }
 
17819
  }
 
17820
#line 72 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16207
17821
};
16208
 
#line 16209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
 
17822
#line 17823 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
16209
17823
 
16210
17824
namespace AC {
16211
17825
  template <class JoinPoint>
16224
17838
  }
16225
17839
16226
17840
 
16227
 
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
17841
#line 72 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
16228
17842
  
16229
17843
 
16230
17844
#endif /* __ext_ac_keywords_ah__ */
16231
17845
 
16232
 
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
 
17846
#line 163 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
16233
17847
#endif
16234
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16235
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17848
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17849
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16236
17850
#include "PragmaOnceUnitState.ah"
16237
17851
#endif
16238
17852
#endif
16239
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
16240
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
16241
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17853
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
17854
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17855
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
16242
17856
#include "ExtACTree.ah"
16243
17857
#endif
16244
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
16245
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
17858
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
17859
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnu_ah__
16246
17860
#include "ExtGnu.ah"
16247
17861
#endif
16248
17862
#endif
16249
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
16250
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
16251
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17863
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
17864
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17865
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtACTree_ah__
16252
17866
#include "ExtACTree.ah"
16253
17867
#endif
16254
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
16255
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
17868
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
17869
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
16256
17870
#include "ExtGnuCSemDeclSpecs.ah"
16257
17871
#endif
16258
17872
#endif
16259
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16260
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16261
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16262
 
#include "PragmaOnceUnitState.ah"
16263
 
#endif
16264
 
#endif
16265
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
16266
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16267
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
16268
 
#include "PragmaOnceUnitState.ah"
16269
 
#endif
16270
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
16271
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
17873
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17874
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17875
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17876
#include "PragmaOnceUnitState.ah"
 
17877
#endif
 
17878
#endif
 
17879
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
17880
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17881
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
17882
#include "PragmaOnceUnitState.ah"
 
17883
#endif
 
17884
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
17885
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_PragmaOnce_ah__
16272
17886
 
16273
 
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreParser.cc"
16274
 
#endif
16275
 
#endif
16276
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
16277
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
16278
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
17887
#line 203 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/src/PreParser.cc"
 
17888
#endif
 
17889
#endif
 
17890
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
17891
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
17892
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_TraceSyntax_ah__
16279
17893
#include "TraceSyntax.ah"
16280
17894
#endif
16281
17895
#endif
16282
 
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
16283
 
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
16284
 
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
17896
#ifdef __ac_need__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
17897
#ifndef __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
17898
#define __ac_have__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
16285
17899
#include "CMatchSyntax.ah"
16286
17900
#endif
16287
17901
#endif
16288
 
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
16289
 
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreParser_cc__
16290
 
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreParser_cc__
 
17902
#undef __ac_FIRST__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1__
 
17903
#undef __ac_FIRST_FILE__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_src_PreParser_cc__
 
17904
#endif // __ac_FIRST_FILE__home_inf4_tartler_src_aspectc4343_upstream_Puma_gen45release_step1_src_PreParser_cc__