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

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-04-10 17:40:52 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20080410174052-xdnsm7oi8hauyyf1
Tags: 1.0pre4~svn.20080409+dfsg-3
Fix another missing include, this time in Ag++/StdSystem.cc

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
3
 
#ifndef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
4
 
#define __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
5
 
#define __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
6
 
#endif // __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
7
 
 
8
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
9
 
 
10
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.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_CProject_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/CProject.cc"
 
9
 
 
10
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11
11
 
12
12
#ifndef __ac_h_
13
13
#define __ac_h_
 
14
#ifdef __cplusplus
14
15
namespace AC {
15
16
  typedef const char* Type;
16
17
  enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
25
26
    ~ResultBuffer () { ((T*)_data)->T::~T(); }
26
27
    operator T& () const { return *(T*)_data; }
27
28
  };
 
29
  template <typename T, typename N> struct TL {
 
30
    typedef T type; typedef N next; enum { ARGS = next::ARGS + 1 };
 
31
  };
 
32
  struct TLE { enum { ARGS = 0 }; };
 
33
  template <typename T> struct Referred { typedef T type; };
 
34
  template <typename T> struct Referred<T &> { typedef T type; };
 
35
  template <typename TL, int I> struct Arg {
 
36
    typedef typename Arg<typename TL::next, I - 1>::Type Type;
 
37
    typedef typename Referred<Type>::type ReferredType;
 
38
  };
 
39
  template <typename TL> struct Arg<TL, 0> {
 
40
    typedef typename TL::type Type;
 
41
    typedef typename Referred<Type>::type ReferredType;
 
42
  };
28
43
  template <class Aspect, int Index>
29
44
  struct CFlow {
30
45
    static int &instance () {
38
53
}
39
54
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
40
55
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
 
56
#endif // __cplusplus
41
57
#endif // __ac_h_
42
58
 
43
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
44
 
 
45
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
46
 
 
47
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
60
 
 
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
62
 
 
63
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
48
64
 
49
65
#ifndef __ac_fwd_ExtACKeywords__
50
66
#define __ac_fwd_ExtACKeywords__
51
67
class ExtACKeywords;
52
68
namespace AC {
53
 
  template <class JoinPoint, class Binding>
54
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
55
 
  template <class JoinPoint, class Binding>
56
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
57
 
  template <class JoinPoint>
58
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
69
  template <class JoinPoint>
 
70
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
71
  template <class JoinPoint>
 
72
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
73
  template <class JoinPoint>
 
74
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
59
75
}
60
76
#endif
61
77
 
62
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
63
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
78
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
79
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
64
80
#endif
65
81
 
66
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
 
82
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
67
83
// This file is part of PUMA.
68
84
// Copyright (C) 1999-2003  The PUMA developer team.
69
85
//                                                                
83
99
// MA  02111-1307  USA                                            
84
100
 
85
101
 
86
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
87
 
 
88
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
89
 
 
90
 
#ifndef __ac_fwd_PragmaOnce__
91
 
#define __ac_fwd_PragmaOnce__
92
 
class PragmaOnce;
93
 
namespace AC {
94
 
  template <class JoinPoint>
95
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
96
 
  template <class JoinPoint>
97
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
98
 
  template <class JoinPoint, class Binding>
99
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
100
 
  template <class JoinPoint>
101
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
102
 
}
103
 
#endif
104
 
 
105
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
106
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
107
 
#endif
 
102
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
103
 
 
104
#line 105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
108
105
 
109
106
#ifndef __ac_fwd_WinIfExists__
110
107
#define __ac_fwd_WinIfExists__
111
108
class WinIfExists;
112
109
namespace AC {
113
110
  template <class JoinPoint>
114
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
 
111
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
115
112
}
116
113
#endif
117
114
 
118
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
119
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
115
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
116
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
120
117
#endif
121
118
 
122
119
#ifndef __ac_fwd_WinImportHandler__
123
120
#define __ac_fwd_WinImportHandler__
124
121
class WinImportHandler;
125
122
namespace AC {
126
 
  template <class JoinPoint, class Binding>
127
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
 
123
  template <class JoinPoint>
 
124
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
128
125
}
129
126
#endif
130
127
 
131
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
132
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
128
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
129
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
133
130
#endif
134
131
 
135
132
#ifndef __ac_fwd_WinMacros__
136
133
#define __ac_fwd_WinMacros__
137
134
class WinMacros;
138
135
namespace AC {
139
 
  template <class JoinPoint, class Binding>
140
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
141
 
}
142
 
#endif
143
 
 
144
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
145
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
146
 
#endif
147
 
 
148
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
149
 
 
150
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
151
 
 
152
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
136
  template <class JoinPoint>
 
137
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
 
138
}
 
139
#endif
 
140
 
 
141
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
142
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
143
#endif
 
144
 
 
145
#ifndef __ac_fwd_PragmaOnce__
 
146
#define __ac_fwd_PragmaOnce__
 
147
class PragmaOnce;
 
148
namespace AC {
 
149
  template <class JoinPoint>
 
150
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
151
  template <class JoinPoint>
 
152
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
153
  template <class JoinPoint>
 
154
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
155
  template <class JoinPoint>
 
156
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
157
}
 
158
#endif
 
159
 
 
160
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
161
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
162
#endif
 
163
 
 
164
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
153
165
// This file is part of PUMA.
154
166
// Copyright (C) 1999-2003  The PUMA developer team.
155
167
//                                                                
168
180
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
169
181
// MA  02111-1307  USA                                            
170
182
 
171
 
#ifndef __WinIfExists__
172
 
#define __WinIfExists__
173
 
 
174
 
/********************************************************/
175
 
/* Win __if_exists and __if_not_exists support aspect   */
176
 
/********************************************************/
177
 
 
178
 
 
179
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
183
#ifndef __preprocessor_parser__
 
184
#define __preprocessor_parser__
 
185
 
 
186
// Preprocessor parser class. !!! The preprocessor parser has to 
 
187
// be added last to the composite parser of a translation unit !!!
 
188
 
 
189
 
 
190
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
180
191
// This file is part of PUMA.
181
192
// Copyright (C) 1999-2003  The PUMA developer team.
182
193
//                                                                
199
210
#define __stack_h__
200
211
 
201
212
 
202
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
 
213
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
203
214
// This file is part of PUMA.
204
215
// Copyright (C) 1999-2003  The PUMA developer team.
205
216
//                                                                
225
236
 
226
237
namespace Puma {
227
238
 
228
 
 
229
 
#line 230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
230
 
} // closed Puma
231
 
class WinIfExists;
232
 
class WinImportHandler;
233
 
class WinMacros;
234
 
class CMatchSyntax;
235
 
class ExtGnu;
236
 
class ExtAC;
237
 
class ExtACBuilderCoupling;
238
 
class ExtACSyntaxCoupling;
239
 
class ExtACTree;
240
 
class ExtACKeywords;
241
 
class WinAsm;
242
 
class WinDeclSpecs;
243
 
class WinMemberExplSpec;
244
 
class WinTypeKeywords;
245
 
class PragmaOnceUnitState;
246
 
class PragmaOnce;
247
 
class CCExprResolve;
248
 
class CExprResolve;
249
 
namespace Puma {
250
 
 
251
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
252
239
template <class Item>
253
240
class Array {
254
 
#line 255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
255
 
  friend class ::WinIfExists;
256
 
  friend class ::WinImportHandler;
257
 
  friend class ::WinMacros;
258
 
  friend class ::CMatchSyntax;
259
 
  friend class ::ExtGnu;
260
 
  friend class ::ExtAC;
261
 
  friend class ::ExtACBuilderCoupling;
262
 
  friend class ::ExtACSyntaxCoupling;
263
 
  friend class ::ExtACTree;
264
 
  friend class ::ExtACKeywords;
265
 
  friend class ::WinAsm;
266
 
  friend class ::WinDeclSpecs;
267
 
  friend class ::WinMemberExplSpec;
268
 
  friend class ::WinTypeKeywords;
269
 
  friend class ::PragmaOnceUnitState;
270
 
  friend class ::PragmaOnce;
271
 
  friend class ::CCExprResolve;
272
 
  friend class ::CExprResolve;
273
 
 
274
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
275
 
 
276
 
   protected:
277
 
      static const long default_init_size = 5;
278
 
      static const long default_increment = 5;
279
 
 
280
 
   public:
281
 
      Array (long is = default_init_size, long incr = default_increment);
282
 
      Array (const Array<Item>& array);
283
 
      Array<Item>& operator =(const Array<Item>&);
284
 
      ~Array ();
285
 
      void append (const Item& item);
286
 
      void insert (long index, const Item& item);
287
 
      void prepend (const Item& item);
288
 
      void remove (long index);
289
 
      void reset ();
290
 
      Item& get (long index);
291
 
      Item& operator[] (long index);
292
 
      Item fetch (long index) const;
293
 
      Item& lookup (long index) const;
294
 
      long length () const;
295
 
 
296
 
   private:
297
 
      Item* data;
298
 
      long size;
299
 
      long count;
300
 
      long increment;
 
241
protected:
 
242
  static const long default_init_size = 5;
 
243
  static const long default_increment = 5;
 
244
 
 
245
public:
 
246
  Array (long is = default_init_size, long incr = default_increment);
 
247
  Array (const Array<Item>& array);
 
248
  Array<Item>& operator =(const Array<Item>&);
 
249
  ~Array ();
 
250
  void append (const Item& item);
 
251
  void insert (long index, const Item& item);
 
252
  void prepend (const Item& item);
 
253
  void remove (long index);
 
254
  void reset ();
 
255
  Item& get (long index);
 
256
  Item& operator[] (long index);
 
257
  Item fetch (long index) const;
 
258
  Item& lookup (long index) const;
 
259
  long length () const;
 
260
 
 
261
private:
 
262
  Item* data;
 
263
  long size;
 
264
  long count;
 
265
  long increment;
301
266
      
302
 
      void check (long wanted);
303
 
 };
304
 
 
305
 
template <class Item>
306
 
inline Array<Item>::Array (long is, long incr)
307
 
 {
308
 
   count     = 0; 
309
 
   size      = is;
310
 
   increment = incr;
311
 
   data      = new Item[size];
312
 
 }
313
 
 
314
 
template <class Item>
315
 
Array<Item>::Array (const Array<Item>& array)
316
 
 {
317
 
   count = 0;
318
 
   size  = array.size;
319
 
   data  = new Item[size];
320
 
   increment = array.increment;
321
 
 
322
 
   for (int pos = 0; pos < array.length (); pos++)
323
 
      append (array.lookup (pos));
324
 
 }
325
 
 
326
 
template <class Item>
327
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
328
 
 {
329
 
   if (data)
330
 
      delete[] data;
331
 
   count = 0;
332
 
   size  = array.size;
333
 
   data  = new Item[size];
334
 
   increment = array.increment;
335
 
 
336
 
   for (int pos = 0; pos < array.length (); pos++)
337
 
      append (array.lookup (pos));
338
 
   return *this;
339
 
 }
340
 
 
341
 
template <class Item>
342
 
Array<Item>::~Array ()
343
 
 {
344
 
   if (data)
345
 
      delete[] data;
346
 
 }
347
 
 
348
 
template <class Item>
349
 
inline void Array<Item>::check (long wanted)
350
 
 {
351
 
   if (wanted >= size)
352
 
    {
353
 
      Item* new_data;
354
 
 
355
 
      while (wanted >= size)
356
 
      {
357
 
         size += increment;
358
 
         increment*=2;
359
 
      }
360
 
      new_data = new Item[size];
361
 
      for (int pos = 0; pos < count; pos++)
362
 
         new_data[pos] = data[pos];
363
 
      delete[] data;
364
 
      data = new_data;
365
 
    }
366
 
 }
 
267
  void grow (long wanted);
 
268
};
 
269
 
 
270
template <class Item>
 
271
inline Array<Item>::Array (long is, long incr) {
 
272
  count     = 0; 
 
273
  size      = is;
 
274
  increment = incr;
 
275
  data      = 0;
 
276
}
 
277
 
 
278
template <class Item>
 
279
Array<Item>::Array (const Array<Item>& array) {
 
280
  count     = 0;
 
281
  size      = array.size;
 
282
  increment = array.increment;
 
283
  
 
284
  if (size && array.data) {
 
285
    data = new Item[size];
 
286
    for (; count < array.count; count++) {
 
287
      data[count] = array.data[count];
 
288
    }
 
289
  } else
 
290
    data = 0;
 
291
}
 
292
 
 
293
template <class Item>
 
294
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
295
  if (data)
 
296
    delete[] data;
 
297
 
 
298
  count     = 0;
 
299
  size      = array.size;
 
300
  increment = array.increment;
 
301
 
 
302
  if (size && array.data) {
 
303
    data = new Item[size];
 
304
    for (; count < array.count; count++) {
 
305
      data[count] = array.data[count];
 
306
    }
 
307
  } else
 
308
    data = 0;
 
309
  
 
310
  return *this;
 
311
}
 
312
 
 
313
template <class Item>
 
314
Array<Item>::~Array () {
 
315
  if (data)
 
316
    delete[] data;
 
317
}
 
318
 
 
319
template <class Item>
 
320
inline void Array<Item>::grow (long wanted) {
 
321
  do {
 
322
    size += increment;
 
323
    increment *= 2;
 
324
  } while (wanted >= size);
 
325
 
 
326
  if (data) {
 
327
    Item* new_data = new Item[size];
 
328
    for (long i = 0; i < count; i++) {
 
329
      new_data[i] = data[i];
 
330
    }
 
331
    delete[] data;
 
332
    data = new_data;
 
333
  } else
 
334
    data = new Item[size];
 
335
}
367
336
   
368
337
template <class Item>
369
 
inline void Array<Item>::append (const Item& item)
370
 
 {
371
 
   check (count);
372
 
   data[count++] = item;
373
 
 }
374
 
 
375
 
template <class Item>
376
 
void Array<Item>::prepend (const Item& item)
377
 
 {
378
 
   insert (0, item);
379
 
 }
380
 
 
381
 
template <class Item>
382
 
void Array<Item>::insert (long index, const Item& item)
383
 
 {
384
 
   check (count);
385
 
   for (int pos = count; pos > index; pos--)
386
 
      data[pos] = data[pos - 1];
387
 
   data[index] = item;
388
 
   count++;
389
 
 }
390
 
 
391
 
template <class Item>
392
 
inline Item& Array<Item>::get (long index)
393
 
 {
394
 
   check (index);
395
 
   if (index >= count)
396
 
      count = index + 1;
397
 
   return data[index];
398
 
 }
399
 
 
400
 
template <class Item>
401
 
inline Item& Array<Item>::operator[] (long index)
402
 
 {
403
 
   return get (index);
404
 
 }
405
 
 
406
 
template <class Item>
407
 
inline Item Array<Item>::fetch (long index) const
408
 
 {
409
 
   assert(index < count);
410
 
   return data[index];
411
 
 }
412
 
 
413
 
template <class Item>
414
 
inline long Array<Item>::length () const
415
 
 {
416
 
   return count;
417
 
 }
418
 
 
419
 
template <class Item>
420
 
inline void Array<Item>::remove (long index)
421
 
 {
422
 
   if (index < count && count > 0)
423
 
    {
424
 
      for (int pos = index; pos < count - 1; pos++)
425
 
         data[pos] = data[pos + 1];
426
 
      count--;
427
 
    }
428
 
 }
 
338
inline void Array<Item>::append (const Item& item) {
 
339
  if (count >= size || ! data) {
 
340
    grow (count);
 
341
  }
 
342
  data[count++] = item;
 
343
}
 
344
 
 
345
template <class Item>
 
346
void Array<Item>::prepend (const Item& item) {
 
347
  insert (0, item);
 
348
}
 
349
 
 
350
template <class Item>
 
351
void Array<Item>::insert (long index, const Item& item) {
 
352
  if (count >= size || ! data) {
 
353
    grow (count);
 
354
  }
 
355
  for (long i = count; i > index; i--)
 
356
    data[i] = data[i - 1];
 
357
  data[index] = item;
 
358
  count++;
 
359
}
 
360
 
 
361
template <class Item>
 
362
inline Item& Array<Item>::get (long index) {
 
363
  if (index >= size || ! data) {
 
364
    grow (index);
 
365
  }
 
366
  if (index >= count)
 
367
    count = index + 1;
 
368
  return data[index];
 
369
}
 
370
 
 
371
template <class Item>
 
372
inline Item& Array<Item>::operator[] (long index) {
 
373
  return get (index);
 
374
}
 
375
 
 
376
template <class Item>
 
377
inline Item Array<Item>::fetch (long index) const {
 
378
  assert(index < count && data);
 
379
  return data[index];
 
380
}
 
381
 
 
382
template <class Item>
 
383
inline long Array<Item>::length () const {
 
384
  return count;
 
385
}
 
386
 
 
387
template <class Item>
 
388
inline void Array<Item>::remove (long index) {
 
389
  if (index < count && count > 0) {
 
390
    for (long i = index; i < count - 1; i++)
 
391
      data[i] = data[i + 1];
 
392
    count--;
 
393
  }
 
394
}
429
395
 
430
396
#ifndef __puma
431
397
template <>
432
398
inline void Array<int>::reset () {
433
 
   count = 0; 
 
399
  count = 0; 
434
400
}
435
401
#endif
436
402
 
437
403
template <class Item>
438
 
void Array<Item>::reset ()
439
 
 {
440
 
   if (data)
441
 
      delete[] data;
442
 
   count     = 0; 
443
 
   size      = default_init_size;
444
 
   increment = default_increment;
445
 
   data      = new Item[size];
446
 
 }
 
404
void Array<Item>::reset () {
 
405
  if (data)
 
406
    delete[] data;
 
407
    
 
408
  count     = 0; 
 
409
  size      = default_init_size;
 
410
  increment = default_increment;
 
411
  data      = new Item[size];
 
412
}
447
413
 
448
414
template <class Item>
449
 
inline Item& Array<Item>::lookup (long index) const
450
 
 {
451
 
   assert(index >= 0 && index < count);
452
 
//   if (index >= count) index = count - 1; 
453
 
//   if (index < 0)      index = 0;
454
 
   return data[index];
455
 
 }
 
415
inline Item& Array<Item>::lookup (long index) const {
 
416
  assert(index >= 0 && index < count);
 
417
  return data[index];
 
418
}
456
419
 
457
420
 
458
421
} // namespace Puma
486
449
  void remove (long idx)                   { Base::remove (idx); }
487
450
  void reset ()                            { Base::reset (); }
488
451
 
489
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
490
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
491
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
492
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
493
 
  long length () const           { return Base::length (); }
 
452
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
453
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
454
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
455
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
456
  long length () const                     { return Base::length (); }
494
457
};
495
458
 
496
459
 
500
463
 
501
464
#endif /* __array_h__ */
502
465
 
503
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
504
 
namespace Puma {
505
 
 
506
 
 
507
 
#line 508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
508
 
} // closed Puma
509
 
class WinIfExists;
510
 
class WinImportHandler;
511
 
class WinMacros;
512
 
class CMatchSyntax;
513
 
class ExtGnu;
514
 
class ExtAC;
515
 
class ExtACBuilderCoupling;
516
 
class ExtACSyntaxCoupling;
517
 
class ExtACTree;
518
 
class ExtACKeywords;
519
 
class WinAsm;
520
 
class WinDeclSpecs;
521
 
class WinMemberExplSpec;
522
 
class WinTypeKeywords;
523
 
class PragmaOnceUnitState;
524
 
class PragmaOnce;
525
 
class CCExprResolve;
526
 
class CExprResolve;
527
 
namespace Puma {
528
 
 
529
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
466
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
467
namespace Puma {
 
468
 
530
469
template <class Item>
531
470
class Stack : private Array<Item> {
532
 
#line 533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
533
 
  friend class ::WinIfExists;
534
 
  friend class ::WinImportHandler;
535
 
  friend class ::WinMacros;
536
 
  friend class ::CMatchSyntax;
537
 
  friend class ::ExtGnu;
538
 
  friend class ::ExtAC;
539
 
  friend class ::ExtACBuilderCoupling;
540
 
  friend class ::ExtACSyntaxCoupling;
541
 
  friend class ::ExtACTree;
542
 
  friend class ::ExtACKeywords;
543
 
  friend class ::WinAsm;
544
 
  friend class ::WinDeclSpecs;
545
 
  friend class ::WinMemberExplSpec;
546
 
  friend class ::WinTypeKeywords;
547
 
  friend class ::PragmaOnceUnitState;
548
 
  friend class ::PragmaOnce;
549
 
  friend class ::CCExprResolve;
550
 
  friend class ::CExprResolve;
551
 
 
552
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
553
 
 
554
471
public:
555
472
  Stack (long is = 8192, long incr = 8192) :
556
473
    Array<Item> (is, incr) {}
566
483
 
567
484
#endif /* __stack_h__ */
568
485
 
569
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
570
 
// This file is part of PUMA.
571
 
// Copyright (C) 1999-2003  The PUMA developer team.
572
 
//                                                                
573
 
// This program is free software;  you can redistribute it and/or 
574
 
// modify it under the terms of the GNU General Public License as 
575
 
// published by the Free Software Foundation; either version 2 of 
576
 
// the License, or (at your option) any later version.            
577
 
//                                                                
578
 
// This program is distributed in the hope that it will be useful,
579
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
580
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
581
 
// GNU General Public License for more details.                   
582
 
//                                                                
583
 
// You should have received a copy of the GNU General Public      
584
 
// License along with this program; if not, write to the Free     
585
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
586
 
// MA  02111-1307  USA                                            
587
 
 
588
 
#ifndef __C_TOKENS__
589
 
#define __C_TOKENS__
590
 
 
591
 
namespace Puma {
592
 
 
593
 
enum CTokens {
594
 
 
595
 
  // core tokens, i.e. numbers, operator symbols, brackets, etc.
596
 
  TOK_AT = 100,
597
 
  TOK_ZERO_VAL,
598
 
  TOK_INT_VAL,
599
 
  TOK_FLT_VAL,
600
 
  TOK_COMMA,
601
 
  TOK_ASSIGN,
602
 
  TOK_QUESTION,
603
 
  TOK_OR,
604
 
  TOK_ROOF,
605
 
  TOK_AND,
606
 
  TOK_PLUS,
607
 
  TOK_MINUS,
608
 
  TOK_MUL,
609
 
  TOK_DIV,
610
 
  TOK_MODULO,
611
 
  TOK_LESS,
612
 
  TOK_GREATER,
613
 
  TOK_OPEN_ROUND,
614
 
  TOK_CLOSE_ROUND,
615
 
  TOK_OPEN_SQUARE,
616
 
  TOK_CLOSE_SQUARE,
617
 
  TOK_OPEN_CURLY,
618
 
  TOK_CLOSE_CURLY,
619
 
  TOK_SEMI_COLON,
620
 
  TOK_COLON,
621
 
  TOK_NOT,
622
 
  TOK_TILDE,
623
 
  TOK_DOT,
624
 
  TOK_MUL_EQ,
625
 
  TOK_DIV_EQ,
626
 
  TOK_MOD_EQ,
627
 
  TOK_ADD_EQ,
628
 
  TOK_SUB_EQ,
629
 
  TOK_LSH_EQ,
630
 
  TOK_RSH_EQ,
631
 
  TOK_AND_EQ,
632
 
  TOK_XOR_EQ,
633
 
  TOK_IOR_EQ,
634
 
  TOK_OR_OR,
635
 
  TOK_AND_AND,
636
 
  TOK_EQL,
637
 
  TOK_NEQ,
638
 
  TOK_LEQ,
639
 
  TOK_GEQ,
640
 
  TOK_LSH,
641
 
  TOK_RSH,
642
 
  TOK_DOT_STAR,
643
 
  TOK_PTS_STAR,
644
 
  TOK_INCR,
645
 
  TOK_DECR,
646
 
  TOK_PTS,
647
 
  TOK_COLON_COLON,
648
 
  TOK_ELLIPSIS,
649
 
  TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
650
 
  
651
 
  // C keywords:
652
 
  TOK_ASM,
653
 
  TOK_AUTO,
654
 
  TOK_BREAK,
655
 
  TOK_CASE,
656
 
  TOK_CHAR,
657
 
  TOK_CONST,
658
 
  TOK_CONTINUE,
659
 
  TOK_DEFAULT,
660
 
  TOK_DO,
661
 
  TOK_DOUBLE,
662
 
  TOK_ELSE,
663
 
  TOK_ENUM,
664
 
  TOK_EXTERN,
665
 
  TOK_FLOAT,
666
 
  TOK_FOR,
667
 
  TOK_GOTO,
668
 
  TOK_IF,
669
 
  TOK_INLINE,
670
 
  TOK_INT,
671
 
  TOK_LONG,
672
 
  TOK_REGISTER,
673
 
  TOK_RESTRICT,
674
 
  TOK_RETURN,
675
 
  TOK_SHORT,
676
 
  TOK_SIGNED,
677
 
  TOK_SIZEOF,
678
 
  TOK_STATIC,
679
 
  TOK_STRUCT,
680
 
  TOK_SWITCH,
681
 
  TOK_TYPEDEF,
682
 
  TOK_UNION,
683
 
  TOK_UNSIGNED,
684
 
  TOK_VOID,
685
 
  TOK_VOLATILE,
686
 
  TOK_WCHAR_T,
687
 
  TOK_WHILE,
688
 
 
689
 
  // C compatibility keywords
690
 
 
691
 
  TOK_ASM_2,
692
 
  TOK_ASM_3,
693
 
  TOK_BOOL_2,
694
 
  TOK_CONST_2,
695
 
  TOK_CONST_3,
696
 
  TOK_INLINE_2,
697
 
  TOK_INLINE_3,
698
 
  TOK_RESTRICT_2,
699
 
  TOK_RESTRICT_3,
700
 
  TOK_SIGNED_2,
701
 
  TOK_SIGNED_3,
702
 
  TOK_VOLATILE_2,
703
 
  TOK_VOLATILE_3,
704
 
  TOK_WCHAR_T_2,
705
 
  TOK_TYPEOF,
706
 
  TOK_TYPEOF_2,
707
 
  TOK_TYPEOF_3,
708
 
 
709
 
  // C win specific keywords
710
 
 
711
 
  TOK_INT64,
712
 
  TOK_CDECL,
713
 
  TOK_CDECL_2,
714
 
  TOK_STDCALL,
715
 
  TOK_STDCALL_2,
716
 
  TOK_FASTCALL,
717
 
  TOK_FASTCALL_2,
718
 
  TOK_IF_EXISTS,
719
 
  TOK_IF_NOT_EXISTS,
720
 
 
721
 
  TOK_LAST_C = TOK_IF_NOT_EXISTS,
722
 
  
723
 
  // a boolean constant:
724
 
  TOK_BOOL_VAL,
725
 
 
726
 
  // C++ keywords:
727
 
 
728
 
  TOK_BOOL,
729
 
  TOK_CATCH,
730
 
  TOK_CLASS,
731
 
  TOK_CONST_CAST,
732
 
  TOK_DELETE,
733
 
  TOK_DYN_CAST,
734
 
  TOK_EXPLICIT,
735
 
  TOK_EXPORT,
736
 
  TOK_FRIEND,
737
 
  TOK_MUTABLE,
738
 
  TOK_NAMESPACE,
739
 
  TOK_NEW,
740
 
  TOK_OPERATOR,
741
 
  TOK_PRIVATE,
742
 
  TOK_PROTECTED,
743
 
  TOK_PUBLIC,
744
 
  TOK_REINT_CAST,
745
 
  TOK_STAT_CAST,
746
 
  TOK_TEMPLATE,
747
 
  TOK_THIS,
748
 
  TOK_THROW,
749
 
  TOK_TRY,
750
 
  TOK_TYPEID,
751
 
  TOK_TYPENAME,
752
 
  TOK_USING,
753
 
  TOK_VIRTUAL,
754
 
 
755
 
  // C++ alternative representation of operators (ISO 646):
756
 
 
757
 
  TOK_AND_AND_ISO_646,
758
 
  TOK_AND_EQ_ISO_646,
759
 
  TOK_AND_ISO_646,
760
 
  TOK_OR_ISO_646,
761
 
  TOK_TILDE_ISO_646,
762
 
  TOK_NOT_ISO_646,
763
 
  TOK_NEQ_ISO_646,
764
 
  TOK_OR_OR_ISO_646,
765
 
  TOK_IOR_EQ_ISO_646,
766
 
  TOK_ROOF_ISO_646,
767
 
  TOK_XOR_EQ_ISO_646,
768
 
 
769
 
  TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
770
 
  
771
 
  // AspectC++ keywords:
772
 
 
773
 
  TOK_POINTCUT,
774
 
  TOK_ASPECT,
775
 
  TOK_ADVICE,
776
 
  TOK_SLICE,
777
 
  TOK_UNKNOWN_T,
778
 
 
779
 
  TOK_LAST_AC = TOK_UNKNOWN_T,
780
 
  
781
 
  // further [A](C|C++) token
782
 
  TOK_STRING_VAL,
783
 
  TOK_CHAR_VAL,
784
 
  TOK_ID,
785
 
 
786
 
  // These two always have to be the ** last ** token listed here!!!
787
 
  TOK_EPSILON,
788
 
  TOK_NO
789
 
  
790
 
};
791
 
 
792
 
} // namespace Puma
793
 
 
794
 
#endif /* __C_TOKENS__ */
795
 
 
796
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
797
 
// This file is part of PUMA.
798
 
// Copyright (C) 1999-2003  The PUMA developer team.
799
 
//                                                                
800
 
// This program is free software;  you can redistribute it and/or 
801
 
// modify it under the terms of the GNU General Public License as 
802
 
// published by the Free Software Foundation; either version 2 of 
803
 
// the License, or (at your option) any later version.            
804
 
//                                                                
805
 
// This program is distributed in the hope that it will be useful,
806
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
807
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
808
 
// GNU General Public License for more details.                   
809
 
//                                                                
810
 
// You should have received a copy of the GNU General Public      
811
 
// License along with this program; if not, write to the Free     
812
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
813
 
// MA  02111-1307  USA                                            
814
 
 
815
 
#ifndef __Token_h__
816
 
#define __Token_h__
817
 
 
818
 
// Abstract interface of a language token. A token is created by an
819
 
// invocation of a scanner's 'scan' method. The token encapsulates a
820
 
// lexical unit of the scanned text.
821
 
 
 
486
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
487
// This file is part of PUMA.
 
488
// Copyright (C) 1999-2003  The PUMA developer team.
 
489
//                                                                
 
490
// This program is free software;  you can redistribute it and/or 
 
491
// modify it under the terms of the GNU General Public License as 
 
492
// published by the Free Software Foundation; either version 2 of 
 
493
// the License, or (at your option) any later version.            
 
494
//                                                                
 
495
// This program is distributed in the hope that it will be useful,
 
496
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
497
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
498
// GNU General Public License for more details.                   
 
499
//                                                                
 
500
// You should have received a copy of the GNU General Public      
 
501
// License along with this program; if not, write to the Free     
 
502
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
503
// MA  02111-1307  USA                                            
 
504
 
 
505
#ifndef __Config_h__
 
506
#define __Config_h__
 
507
 
 
508
// Class Config provides evaluation of configuration 
 
509
// information from file or command line.
 
510
 
 
511
 
 
512
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
513
// This file is part of PUMA.
 
514
// Copyright (C) 1999-2003  The PUMA developer team.
 
515
//                                                                
 
516
// This program is free software;  you can redistribute it and/or 
 
517
// modify it under the terms of the GNU General Public License as 
 
518
// published by the Free Software Foundation; either version 2 of 
 
519
// the License, or (at your option) any later version.            
 
520
//                                                                
 
521
// This program is distributed in the hope that it will be useful,
 
522
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
523
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
524
// GNU General Public License for more details.                   
 
525
//                                                                
 
526
// You should have received a copy of the GNU General Public      
 
527
// License along with this program; if not, write to the Free     
 
528
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
529
// MA  02111-1307  USA                                            
 
530
 
 
531
#ifndef __Flags_h__
 
532
#define __Flags_h__
 
533
 
 
534
namespace Puma {
 
535
 
 
536
 
 
537
 
 
538
#line 539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
539
} // closed Puma
 
540
class CCExprResolve;
 
541
class CExprResolve;
 
542
class WinIfExists;
 
543
class WinImportHandler;
 
544
class WinMacros;
 
545
class WinAsm;
 
546
class WinDeclSpecs;
 
547
class WinMemberExplSpec;
 
548
class WinTypeKeywords;
 
549
class WinFriend;
 
550
class ExtAC;
 
551
class ExtACBuilderCoupling;
 
552
class ExtACSyntaxCoupling;
 
553
class ExtACTree;
 
554
class ExtACKeywords;
 
555
class ExtGnu;
 
556
class PragmaOnceUnitState;
 
557
class PragmaOnce;
 
558
class CMatchSyntax;
 
559
namespace Puma {
 
560
 
 
561
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
562
class Flags {
 
563
#line 564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
564
  friend class ::CCExprResolve;
 
565
  friend class ::CExprResolve;
 
566
  friend class ::WinIfExists;
 
567
  friend class ::WinImportHandler;
 
568
  friend class ::WinMacros;
 
569
  friend class ::WinAsm;
 
570
  friend class ::WinDeclSpecs;
 
571
  friend class ::WinMemberExplSpec;
 
572
  friend class ::WinTypeKeywords;
 
573
  friend class ::WinFriend;
 
574
  friend class ::ExtAC;
 
575
  friend class ::ExtACBuilderCoupling;
 
576
  friend class ::ExtACSyntaxCoupling;
 
577
  friend class ::ExtACTree;
 
578
  friend class ::ExtACKeywords;
 
579
  friend class ::ExtGnu;
 
580
  friend class ::PragmaOnceUnitState;
 
581
  friend class ::PragmaOnce;
 
582
  friend class ::CMatchSyntax;
 
583
 
 
584
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
585
 
 
586
public:
 
587
  enum Flag {
 
588
    NONE                       = 0x0,
 
589
    
 
590
    SKIP_FCT_BODY              = 0x1,
 
591
    SKIP_INITS                 = 0x2,
 
592
    
 
593
    // GNU extensions
 
594
    GNU_NESTED_FCT             = 0x4,
 
595
    GNU_CONDITION_SCOPE        = 0x8,
 
596
    GNU_PARAM_DECL             = 0x10,
 
597
    GNU_FCT_DECL               = 0x20,
 
598
    GNU_PARAM_SCOPE            = 0x40,
 
599
    GNU_DEFAULT_ARGS           = 0x80,
 
600
    GNU_EXTENDED_ASM           = 0x100,
 
601
    GNU_EXTENDED_EXPR          = 0x200,
 
602
    GNU_LONG_LONG              = 0x400,
 
603
    GNU_NAME_SCOPE             = 0x800, 
 
604
    GNU_IMPLICIT_INT           = 0x1000,
 
605
    GNU_FCT_ATTRIBUTE          = 0x2000,
 
606
    GNU_IF_THEN_EXPR           = 0x4000
 
607
  };
 
608
  
 
609
private:
 
610
  Flag _Flags;
 
611
  
 
612
public:
 
613
  Flags ();
 
614
  Flags (const Flags &);
 
615
  Flags &operator =(const Flags &);
 
616
 
 
617
  // add/remove flag
 
618
  Flags &operator +=(Flag);
 
619
  Flags &operator -=(Flag);
 
620
  
 
621
  // test for flag
 
622
  bool operator ==(Flag) const;
 
623
  bool operator !=(Flag) const;
 
624
};
 
625
 
 
626
inline Flags::Flags () : _Flags (NONE) 
 
627
 {}
 
628
inline Flags::Flags (const Flags &f)
 
629
 { _Flags = f._Flags; }
 
630
inline Flags &Flags::operator =(const Flags &f)
 
631
 { _Flags = f._Flags; return *(Flags*)this; }
 
632
 
 
633
inline Flags &Flags::operator +=(Flags::Flag f)
 
634
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
 
635
inline Flags &Flags::operator -=(Flags::Flag f)
 
636
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
 
637
 
 
638
inline bool Flags::operator ==(Flags::Flag f) const
 
639
 { return _Flags & f; }
 
640
inline bool Flags::operator !=(Flags::Flag f) const
 
641
 { return ! (_Flags & f); }
 
642
 
 
643
 
 
644
} // namespace Puma
 
645
 
 
646
#endif /* __Flags_h__ */
 
647
 
 
648
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
649
// This file is part of PUMA.
 
650
// Copyright (C) 1999-2003  The PUMA developer team.
 
651
//                                                                
 
652
// This program is free software;  you can redistribute it and/or 
 
653
// modify it under the terms of the GNU General Public License as 
 
654
// published by the Free Software Foundation; either version 2 of 
 
655
// the License, or (at your option) any later version.            
 
656
//                                                                
 
657
// This program is distributed in the hope that it will be useful,
 
658
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
659
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
660
// GNU General Public License for more details.                   
 
661
//                                                                
 
662
// You should have received a copy of the GNU General Public      
 
663
// License along with this program; if not, write to the Free     
 
664
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
665
// MA  02111-1307  USA                                            
 
666
 
 
667
#ifndef __ConfOption_h__
 
668
#define __ConfOption_h__
 
669
 
 
670
 
 
671
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
672
// This file is part of PUMA.
 
673
// Copyright (C) 1999-2003  The PUMA developer team.
 
674
//                                                                
 
675
// This program is free software;  you can redistribute it and/or 
 
676
// modify it under the terms of the GNU General Public License as 
 
677
// published by the Free Software Foundation; either version 2 of 
 
678
// the License, or (at your option) any later version.            
 
679
//                                                                
 
680
// This program is distributed in the hope that it will be useful,
 
681
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
682
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
683
// GNU General Public License for more details.                   
 
684
//                                                                
 
685
// You should have received a copy of the GNU General Public      
 
686
// License along with this program; if not, write to the Free     
 
687
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
688
// MA  02111-1307  USA                                            
 
689
 
 
690
#ifndef __str_col__
 
691
#define __str_col__
 
692
 
 
693
// Collection of functions handling strings.
 
694
 
 
695
namespace Puma {
 
696
 
 
697
 
 
698
class Unit;
 
699
 
 
700
 
 
701
#line 702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
702
} // closed Puma
 
703
class CCExprResolve;
 
704
class CExprResolve;
 
705
class WinIfExists;
 
706
class WinImportHandler;
 
707
class WinMacros;
 
708
class WinAsm;
 
709
class WinDeclSpecs;
 
710
class WinMemberExplSpec;
 
711
class WinTypeKeywords;
 
712
class WinFriend;
 
713
class ExtAC;
 
714
class ExtACBuilderCoupling;
 
715
class ExtACSyntaxCoupling;
 
716
class ExtACTree;
 
717
class ExtACKeywords;
 
718
class ExtGnu;
 
719
class PragmaOnceUnitState;
 
720
class PragmaOnce;
 
721
class CMatchSyntax;
 
722
namespace Puma {
 
723
 
 
724
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
725
class StrCol {
 
726
#line 727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
727
  friend class ::CCExprResolve;
 
728
  friend class ::CExprResolve;
 
729
  friend class ::WinIfExists;
 
730
  friend class ::WinImportHandler;
 
731
  friend class ::WinMacros;
 
732
  friend class ::WinAsm;
 
733
  friend class ::WinDeclSpecs;
 
734
  friend class ::WinMemberExplSpec;
 
735
  friend class ::WinTypeKeywords;
 
736
  friend class ::WinFriend;
 
737
  friend class ::ExtAC;
 
738
  friend class ::ExtACBuilderCoupling;
 
739
  friend class ::ExtACSyntaxCoupling;
 
740
  friend class ::ExtACTree;
 
741
  friend class ::ExtACKeywords;
 
742
  friend class ::ExtGnu;
 
743
  friend class ::PragmaOnceUnitState;
 
744
  friend class ::PragmaOnce;
 
745
  friend class ::CMatchSyntax;
 
746
 
 
747
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
748
 
 
749
protected:
 
750
  StrCol () {}
 
751
        
 
752
public:
 
753
  // Return true if c is a white space character.
 
754
  static bool isSpace (const char c);
 
755
 
 
756
  // Return true if the string consists only of spaces.
 
757
  static bool onlySpaces (const char *);
 
758
 
 
759
  // Return true if the two strings differ not only in spaces.
 
760
  static bool effectivelyDifferent (const char *, const char *);
 
761
 
 
762
  // Build a string from a unit.
 
763
  static char *buildString (Unit *);
 
764
        
 
765
  // Duplicate a string
 
766
  static char *dup (const char *);
 
767
  static char *dup (const char *, int);
 
768
};
 
769
 
 
770
 
 
771
} // namespace Puma
 
772
 
 
773
#endif /* __str_col__ */
 
774
 
 
775
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
822
776
#include <stdlib.h>
823
777
 
824
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
825
 
// This file is part of PUMA.
826
 
// Copyright (C) 1999-2003  The PUMA developer team.
827
 
//                                                                
828
 
// This program is free software;  you can redistribute it and/or 
829
 
// modify it under the terms of the GNU General Public License as 
830
 
// published by the Free Software Foundation; either version 2 of 
831
 
// the License, or (at your option) any later version.            
832
 
//                                                                
833
 
// This program is distributed in the hope that it will be useful,
834
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
835
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
836
 
// GNU General Public License for more details.                   
837
 
//                                                                
838
 
// You should have received a copy of the GNU General Public      
839
 
// License along with this program; if not, write to the Free     
840
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
841
 
// MA  02111-1307  USA                                            
842
 
 
843
 
#ifndef __language_id_h__
844
 
#define __language_id_h__
845
 
 
846
 
// A language ID is a unique identifier for a language
847
 
 
848
 
namespace Puma {
849
 
 
850
 
 
851
 
 
852
 
#line 853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
853
 
} // closed Puma
854
 
class WinIfExists;
855
 
class WinImportHandler;
856
 
class WinMacros;
857
 
class CMatchSyntax;
858
 
class ExtGnu;
859
 
class ExtAC;
860
 
class ExtACBuilderCoupling;
861
 
class ExtACSyntaxCoupling;
862
 
class ExtACTree;
863
 
class ExtACKeywords;
864
 
class WinAsm;
865
 
class WinDeclSpecs;
866
 
class WinMemberExplSpec;
867
 
class WinTypeKeywords;
868
 
class PragmaOnceUnitState;
869
 
class PragmaOnce;
870
 
class CCExprResolve;
871
 
class CExprResolve;
872
 
namespace Puma {
873
 
 
874
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
875
 
class LanguageID {
876
 
#line 877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
877
 
  friend class ::WinIfExists;
878
 
  friend class ::WinImportHandler;
879
 
  friend class ::WinMacros;
880
 
  friend class ::CMatchSyntax;
881
 
  friend class ::ExtGnu;
882
 
  friend class ::ExtAC;
883
 
  friend class ::ExtACBuilderCoupling;
884
 
  friend class ::ExtACSyntaxCoupling;
885
 
  friend class ::ExtACTree;
886
 
  friend class ::ExtACKeywords;
887
 
  friend class ::WinAsm;
888
 
  friend class ::WinDeclSpecs;
889
 
  friend class ::WinMemberExplSpec;
890
 
  friend class ::WinTypeKeywords;
891
 
  friend class ::PragmaOnceUnitState;
892
 
  friend class ::PragmaOnce;
893
 
  friend class ::CCExprResolve;
894
 
  friend class ::CExprResolve;
895
 
 
896
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
897
 
 
898
 
  const char *_id;
899
 
 
900
 
public:
901
 
  LanguageID () : _id ((const char*)0) {}
902
 
  LanguageID (const char *id) : _id (id) {}
903
 
  operator const char *() const { return _id; }
904
 
  bool operator == (const LanguageID &id) const
905
 
   { return _id == (const char*)id; }
906
 
};
907
 
 
908
 
 
909
 
} // namespace Puma
910
 
 
911
 
#endif /* __language_id_h__ */
912
 
 
913
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
 
778
namespace Puma {
 
779
 
 
780
 
 
781
 
 
782
#line 783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
783
} // closed Puma
 
784
class CCExprResolve;
 
785
class CExprResolve;
 
786
class WinIfExists;
 
787
class WinImportHandler;
 
788
class WinMacros;
 
789
class WinAsm;
 
790
class WinDeclSpecs;
 
791
class WinMemberExplSpec;
 
792
class WinTypeKeywords;
 
793
class WinFriend;
 
794
class ExtAC;
 
795
class ExtACBuilderCoupling;
 
796
class ExtACSyntaxCoupling;
 
797
class ExtACTree;
 
798
class ExtACKeywords;
 
799
class ExtGnu;
 
800
class PragmaOnceUnitState;
 
801
class PragmaOnce;
 
802
class CMatchSyntax;
 
803
namespace Puma {
 
804
 
 
805
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
806
class ConfOption {
 
807
#line 808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
808
  friend class ::CCExprResolve;
 
809
  friend class ::CExprResolve;
 
810
  friend class ::WinIfExists;
 
811
  friend class ::WinImportHandler;
 
812
  friend class ::WinMacros;
 
813
  friend class ::WinAsm;
 
814
  friend class ::WinDeclSpecs;
 
815
  friend class ::WinMemberExplSpec;
 
816
  friend class ::WinTypeKeywords;
 
817
  friend class ::WinFriend;
 
818
  friend class ::ExtAC;
 
819
  friend class ::ExtACBuilderCoupling;
 
820
  friend class ::ExtACSyntaxCoupling;
 
821
  friend class ::ExtACTree;
 
822
  friend class ::ExtACKeywords;
 
823
  friend class ::ExtGnu;
 
824
  friend class ::PragmaOnceUnitState;
 
825
  friend class ::PragmaOnce;
 
826
  friend class ::CMatchSyntax;
 
827
 
 
828
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
829
 
 
830
  const char *_name;
 
831
  Array<const char *> _args;
 
832
  
 
833
public:
 
834
  ConfOption (const char *);
 
835
  ConfOption (const char *, const char *);
 
836
  ConfOption (const char *, const char *, const char *);
 
837
  ~ConfOption ();
 
838
  
 
839
  const char *Name () const;
 
840
  unsigned Arguments () const;
 
841
  const char *Argument (unsigned) const;
 
842
  
 
843
  void addArgument (const char *);
 
844
};
 
845
 
 
846
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
 
847
 { _name = StrCol::dup (n); }
 
848
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
 
849
 { _name = StrCol::dup (n); addArgument (a1); }
 
850
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
 
851
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
 
852
 
 
853
inline ConfOption::~ConfOption ()
 
854
 { delete[] _name; 
 
855
   for (unsigned i = 0; i < Arguments (); i++) 
 
856
     delete[] Argument (i);
 
857
 }
 
858
 
 
859
inline const char *ConfOption::Name () const 
 
860
 { return _name; }
 
861
inline unsigned ConfOption::Arguments () const
 
862
 { return _args.length (); }
 
863
inline const char *ConfOption::Argument (unsigned i) const
 
864
 { return _args.lookup (i); }
 
865
  
 
866
inline void ConfOption::addArgument (const char *a) 
 
867
 { if (a) _args.append (StrCol::dup (a)); }
 
868
 
 
869
 
 
870
} // namespace Puma
 
871
 
 
872
#endif /* __ConfOption_h__ */
 
873
 
 
874
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
875
// This file is part of PUMA.
 
876
// Copyright (C) 1999-2003  The PUMA developer team.
 
877
//                                                                
 
878
// This program is free software;  you can redistribute it and/or 
 
879
// modify it under the terms of the GNU General Public License as 
 
880
// published by the Free Software Foundation; either version 2 of 
 
881
// the License, or (at your option) any later version.            
 
882
//                                                                
 
883
// This program is distributed in the hope that it will be useful,
 
884
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
885
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
886
// GNU General Public License for more details.                   
 
887
//                                                                
 
888
// You should have received a copy of the GNU General Public      
 
889
// License along with this program; if not, write to the Free     
 
890
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
891
// MA  02111-1307  USA                                            
 
892
 
 
893
#ifndef __error_stream_h__
 
894
#define __error_stream_h__
 
895
 
 
896
// An ErrorStream is a special ErrorSink that prints out an error message
 
897
// as soon as it complete. It also stores the maximum error severity.
 
898
// The ErrorStream can be reset to it's initial state.
 
899
 
 
900
#include <sstream>
 
901
 
 
902
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
903
// This file is part of PUMA.
 
904
// Copyright (C) 1999-2003  The PUMA developer team.
 
905
//                                                                
 
906
// This program is free software;  you can redistribute it and/or 
 
907
// modify it under the terms of the GNU General Public License as 
 
908
// published by the Free Software Foundation; either version 2 of 
 
909
// the License, or (at your option) any later version.            
 
910
//                                                                
 
911
// This program is distributed in the hope that it will be useful,
 
912
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
913
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
914
// GNU General Public License for more details.                   
 
915
//                                                                
 
916
// You should have received a copy of the GNU General Public      
 
917
// License along with this program; if not, write to the Free     
 
918
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
919
// MA  02111-1307  USA                                            
 
920
 
 
921
#ifndef __error_sink_h__
 
922
#define __error_sink_h__
 
923
 
 
924
// This is an interface for classes that may be used to consume error
 
925
// messages during a process where many errors can occur like parsing
 
926
// a program.
 
927
// The error information is handed over to the ErrorSink in stream-like
 
928
// style. Different severities of errors are predefined and can be used
 
929
// to classify error information that follows. Also a location can be
 
930
// handed over to the ErrorSink to specify where the error was found
 
931
// (filename, line, etc.). The error information itself can be of any
 
932
// standard data type or anything that is "Printable".
 
933
// Specializations of this class could either build and print error
 
934
// messages or collect them for a later processing.
 
935
 
 
936
 
 
937
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
938
// This file is part of PUMA.
 
939
// Copyright (C) 1999-2003  The PUMA developer team.
 
940
//                                                                
 
941
// This program is free software;  you can redistribute it and/or 
 
942
// modify it under the terms of the GNU General Public License as 
 
943
// published by the Free Software Foundation; either version 2 of 
 
944
// the License, or (at your option) any later version.            
 
945
//                                                                
 
946
// This program is distributed in the hope that it will be useful,
 
947
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
948
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
949
// GNU General Public License for more details.                   
 
950
//                                                                
 
951
// You should have received a copy of the GNU General Public      
 
952
// License along with this program; if not, write to the Free     
 
953
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
954
// MA  02111-1307  USA                                            
 
955
 
 
956
#ifndef __error_severity_h__
 
957
#define __error_severity_h__
 
958
 
 
959
// Severity of errors: represented by a short integer and a text
 
960
 
 
961
namespace Puma {
 
962
 
 
963
 
 
964
 
 
965
#line 966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
966
} // closed Puma
 
967
class CCExprResolve;
 
968
class CExprResolve;
 
969
class WinIfExists;
 
970
class WinImportHandler;
 
971
class WinMacros;
 
972
class WinAsm;
 
973
class WinDeclSpecs;
 
974
class WinMemberExplSpec;
 
975
class WinTypeKeywords;
 
976
class WinFriend;
 
977
class ExtAC;
 
978
class ExtACBuilderCoupling;
 
979
class ExtACSyntaxCoupling;
 
980
class ExtACTree;
 
981
class ExtACKeywords;
 
982
class ExtGnu;
 
983
class PragmaOnceUnitState;
 
984
class PragmaOnce;
 
985
class CMatchSyntax;
 
986
namespace Puma {
 
987
 
 
988
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
989
class ErrorSeverity {
 
990
#line 991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
991
  friend class ::CCExprResolve;
 
992
  friend class ::CExprResolve;
 
993
  friend class ::WinIfExists;
 
994
  friend class ::WinImportHandler;
 
995
  friend class ::WinMacros;
 
996
  friend class ::WinAsm;
 
997
  friend class ::WinDeclSpecs;
 
998
  friend class ::WinMemberExplSpec;
 
999
  friend class ::WinTypeKeywords;
 
1000
  friend class ::WinFriend;
 
1001
  friend class ::ExtAC;
 
1002
  friend class ::ExtACBuilderCoupling;
 
1003
  friend class ::ExtACSyntaxCoupling;
 
1004
  friend class ::ExtACTree;
 
1005
  friend class ::ExtACKeywords;
 
1006
  friend class ::ExtGnu;
 
1007
  friend class ::PragmaOnceUnitState;
 
1008
  friend class ::PragmaOnce;
 
1009
  friend class ::CMatchSyntax;
 
1010
 
 
1011
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
1012
 
 
1013
  unsigned short _severity;
 
1014
  const char *_text;
 
1015
 
 
1016
public:
 
1017
  ErrorSeverity (unsigned short s = 0, const char* t = (const char*)0) :
 
1018
    _severity (s), _text (t) {}
 
1019
  ErrorSeverity (const ErrorSeverity &s) :
 
1020
    _severity (s._severity), _text (s._text) {}
 
1021
  ErrorSeverity &operator =(const ErrorSeverity &s) 
 
1022
    { _severity = s._severity; _text = s._text; return *this; }
 
1023
 
 
1024
  int operator < (const ErrorSeverity &s) const
 
1025
   { return _severity < s._severity; }
 
1026
  int operator > (const ErrorSeverity &s) const
 
1027
   { return _severity > s._severity; }
 
1028
  int operator <= (const ErrorSeverity &s) const
 
1029
   { return _severity < s._severity || _severity == s._severity; }
 
1030
  int operator >= (const ErrorSeverity &s) const
 
1031
   { return _severity > s._severity || _severity == s._severity; }
 
1032
  int operator == (const ErrorSeverity &s) const
 
1033
   { return _severity == s._severity; }
 
1034
  int operator != (const ErrorSeverity &s) const
 
1035
   { return _severity != s._severity; }
 
1036
  const char *text () const
 
1037
   { return _text; }
 
1038
};
 
1039
 
 
1040
extern const ErrorSeverity sev_none;
 
1041
extern const ErrorSeverity sev_message;
 
1042
extern const ErrorSeverity sev_warning;
 
1043
extern const ErrorSeverity sev_error;
 
1044
extern const ErrorSeverity sev_fatal;
 
1045
      
 
1046
 
 
1047
} // namespace Puma
 
1048
 
 
1049
#endif /* __error_severity_h__ */
 
1050
 
 
1051
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
1052
// This file is part of PUMA.
 
1053
// Copyright (C) 1999-2003  The PUMA developer team.
 
1054
//                                                                
 
1055
// This program is free software;  you can redistribute it and/or 
 
1056
// modify it under the terms of the GNU General Public License as 
 
1057
// published by the Free Software Foundation; either version 2 of 
 
1058
// the License, or (at your option) any later version.            
 
1059
//                                                                
 
1060
// This program is distributed in the hope that it will be useful,
 
1061
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1062
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1063
// GNU General Public License for more details.                   
 
1064
//                                                                
 
1065
// You should have received a copy of the GNU General Public      
 
1066
// License along with this program; if not, write to the Free     
 
1067
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1068
// MA  02111-1307  USA                                            
 
1069
 
 
1070
#ifndef __printable_h__
 
1071
#define __printable_h__
 
1072
 
 
1073
#include <iostream>
 
1074
using namespace std;
 
1075
 
 
1076
namespace Puma {
 
1077
 
 
1078
 
 
1079
 
 
1080
#line 1081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1081
} // closed Puma
 
1082
class CCExprResolve;
 
1083
class CExprResolve;
 
1084
class WinIfExists;
 
1085
class WinImportHandler;
 
1086
class WinMacros;
 
1087
class WinAsm;
 
1088
class WinDeclSpecs;
 
1089
class WinMemberExplSpec;
 
1090
class WinTypeKeywords;
 
1091
class WinFriend;
 
1092
class ExtAC;
 
1093
class ExtACBuilderCoupling;
 
1094
class ExtACSyntaxCoupling;
 
1095
class ExtACTree;
 
1096
class ExtACKeywords;
 
1097
class ExtGnu;
 
1098
class PragmaOnceUnitState;
 
1099
class PragmaOnce;
 
1100
class CMatchSyntax;
 
1101
namespace Puma {
 
1102
 
 
1103
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
1104
class Printable {
 
1105
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1106
  friend class ::CCExprResolve;
 
1107
  friend class ::CExprResolve;
 
1108
  friend class ::WinIfExists;
 
1109
  friend class ::WinImportHandler;
 
1110
  friend class ::WinMacros;
 
1111
  friend class ::WinAsm;
 
1112
  friend class ::WinDeclSpecs;
 
1113
  friend class ::WinMemberExplSpec;
 
1114
  friend class ::WinTypeKeywords;
 
1115
  friend class ::WinFriend;
 
1116
  friend class ::ExtAC;
 
1117
  friend class ::ExtACBuilderCoupling;
 
1118
  friend class ::ExtACSyntaxCoupling;
 
1119
  friend class ::ExtACTree;
 
1120
  friend class ::ExtACKeywords;
 
1121
  friend class ::ExtGnu;
 
1122
  friend class ::PragmaOnceUnitState;
 
1123
  friend class ::PragmaOnce;
 
1124
  friend class ::CMatchSyntax;
 
1125
 
 
1126
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
1127
 
 
1128
public:
 
1129
  virtual ~Printable () {}
 
1130
  virtual void print (ostream &os) const = 0;
 
1131
};
 
1132
 
 
1133
 
 
1134
inline ostream &operator << (ostream &os, const Printable &object) {
 
1135
  object.print (os);
 
1136
  return os;
 
1137
}
 
1138
 
 
1139
 
 
1140
} // namespace Puma
 
1141
 
 
1142
#endif /* __printable_h__ */
 
1143
 
 
1144
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
914
1145
// This file is part of PUMA.
915
1146
// Copyright (C) 1999-2003  The PUMA developer team.
916
1147
//                                                                
933
1164
#define __location_h__
934
1165
 
935
1166
 
936
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1167
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1168
// This file is part of PUMA.
 
1169
// Copyright (C) 1999-2003  The PUMA developer team.
 
1170
//                                                                
 
1171
// This program is free software;  you can redistribute it and/or 
 
1172
// modify it under the terms of the GNU General Public License as 
 
1173
// published by the Free Software Foundation; either version 2 of 
 
1174
// the License, or (at your option) any later version.            
 
1175
//                                                                
 
1176
// This program is distributed in the hope that it will be useful,
 
1177
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1178
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1179
// GNU General Public License for more details.                   
 
1180
//                                                                
 
1181
// You should have received a copy of the GNU General Public      
 
1182
// License along with this program; if not, write to the Free     
 
1183
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1184
// MA  02111-1307  USA                                            
 
1185
 
 
1186
#ifndef __filename_h__
 
1187
#define __filename_h__
 
1188
 
 
1189
 
 
1190
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
937
1191
// This file is part of PUMA.
938
1192
// Copyright (C) 1999-2003  The PUMA developer team.
939
1193
//                                                                
956
1210
#define __smart_ptr_h__
957
1211
 
958
1212
 
959
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1213
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
960
1214
// This file is part of PUMA.
961
1215
// Copyright (C) 1999-2003  The PUMA developer team.
962
1216
//                                                                
982
1236
 
983
1237
 
984
1238
 
985
 
#line 986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1239
#line 1240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
986
1240
} // closed Puma
 
1241
class CCExprResolve;
 
1242
class CExprResolve;
987
1243
class WinIfExists;
988
1244
class WinImportHandler;
989
1245
class WinMacros;
990
 
class CMatchSyntax;
991
 
class ExtGnu;
 
1246
class WinAsm;
 
1247
class WinDeclSpecs;
 
1248
class WinMemberExplSpec;
 
1249
class WinTypeKeywords;
 
1250
class WinFriend;
992
1251
class ExtAC;
993
1252
class ExtACBuilderCoupling;
994
1253
class ExtACSyntaxCoupling;
995
1254
class ExtACTree;
996
1255
class ExtACKeywords;
997
 
class WinAsm;
998
 
class WinDeclSpecs;
999
 
class WinMemberExplSpec;
1000
 
class WinTypeKeywords;
 
1256
class ExtGnu;
1001
1257
class PragmaOnceUnitState;
1002
1258
class PragmaOnce;
1003
 
class CCExprResolve;
1004
 
class CExprResolve;
 
1259
class CMatchSyntax;
1005
1260
namespace Puma {
1006
1261
 
1007
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1262
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1008
1263
class RefCnt {
1009
 
#line 1010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1264
#line 1265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1265
  friend class ::CCExprResolve;
 
1266
  friend class ::CExprResolve;
1010
1267
  friend class ::WinIfExists;
1011
1268
  friend class ::WinImportHandler;
1012
1269
  friend class ::WinMacros;
1013
 
  friend class ::CMatchSyntax;
1014
 
  friend class ::ExtGnu;
 
1270
  friend class ::WinAsm;
 
1271
  friend class ::WinDeclSpecs;
 
1272
  friend class ::WinMemberExplSpec;
 
1273
  friend class ::WinTypeKeywords;
 
1274
  friend class ::WinFriend;
1015
1275
  friend class ::ExtAC;
1016
1276
  friend class ::ExtACBuilderCoupling;
1017
1277
  friend class ::ExtACSyntaxCoupling;
1018
1278
  friend class ::ExtACTree;
1019
1279
  friend class ::ExtACKeywords;
1020
 
  friend class ::WinAsm;
1021
 
  friend class ::WinDeclSpecs;
1022
 
  friend class ::WinMemberExplSpec;
1023
 
  friend class ::WinTypeKeywords;
 
1280
  friend class ::ExtGnu;
1024
1281
  friend class ::PragmaOnceUnitState;
1025
1282
  friend class ::PragmaOnce;
1026
 
  friend class ::CCExprResolve;
1027
 
  friend class ::CExprResolve;
 
1283
  friend class ::CMatchSyntax;
1028
1284
 
1029
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1285
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1030
1286
 
1031
1287
  int _counter;
1032
1288
 
1044
1300
 
1045
1301
#endif /* __ref_cnt_h__ */
1046
1302
 
1047
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1303
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1048
1304
namespace Puma {
1049
1305
 
1050
1306
 
1051
1307
 
1052
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1308
#line 1309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1053
1309
} // closed Puma
 
1310
class CCExprResolve;
 
1311
class CExprResolve;
1054
1312
class WinIfExists;
1055
1313
class WinImportHandler;
1056
1314
class WinMacros;
1057
 
class CMatchSyntax;
1058
 
class ExtGnu;
 
1315
class WinAsm;
 
1316
class WinDeclSpecs;
 
1317
class WinMemberExplSpec;
 
1318
class WinTypeKeywords;
 
1319
class WinFriend;
1059
1320
class ExtAC;
1060
1321
class ExtACBuilderCoupling;
1061
1322
class ExtACSyntaxCoupling;
1062
1323
class ExtACTree;
1063
1324
class ExtACKeywords;
1064
 
class WinAsm;
1065
 
class WinDeclSpecs;
1066
 
class WinMemberExplSpec;
1067
 
class WinTypeKeywords;
 
1325
class ExtGnu;
1068
1326
class PragmaOnceUnitState;
1069
1327
class PragmaOnce;
1070
 
class CCExprResolve;
1071
 
class CExprResolve;
 
1328
class CMatchSyntax;
1072
1329
namespace Puma {
1073
1330
 
1074
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1331
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1075
1332
class SmartPtr {
1076
 
#line 1077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1333
#line 1334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1334
  friend class ::CCExprResolve;
 
1335
  friend class ::CExprResolve;
1077
1336
  friend class ::WinIfExists;
1078
1337
  friend class ::WinImportHandler;
1079
1338
  friend class ::WinMacros;
1080
 
  friend class ::CMatchSyntax;
1081
 
  friend class ::ExtGnu;
 
1339
  friend class ::WinAsm;
 
1340
  friend class ::WinDeclSpecs;
 
1341
  friend class ::WinMemberExplSpec;
 
1342
  friend class ::WinTypeKeywords;
 
1343
  friend class ::WinFriend;
1082
1344
  friend class ::ExtAC;
1083
1345
  friend class ::ExtACBuilderCoupling;
1084
1346
  friend class ::ExtACSyntaxCoupling;
1085
1347
  friend class ::ExtACTree;
1086
1348
  friend class ::ExtACKeywords;
1087
 
  friend class ::WinAsm;
1088
 
  friend class ::WinDeclSpecs;
1089
 
  friend class ::WinMemberExplSpec;
1090
 
  friend class ::WinTypeKeywords;
 
1349
  friend class ::ExtGnu;
1091
1350
  friend class ::PragmaOnceUnitState;
1092
1351
  friend class ::PragmaOnce;
1093
 
  friend class ::CCExprResolve;
1094
 
  friend class ::CExprResolve;
 
1352
  friend class ::CMatchSyntax;
1095
1353
 
1096
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1354
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1097
1355
 
1098
1356
  RefCnt *_data;
1099
1357
 
1115
1373
 
1116
1374
#endif /* __smart_ptr_h__ */
1117
1375
 
1118
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
1119
 
// This file is part of PUMA.
1120
 
// Copyright (C) 1999-2003  The PUMA developer team.
1121
 
//                                                                
1122
 
// This program is free software;  you can redistribute it and/or 
1123
 
// modify it under the terms of the GNU General Public License as 
1124
 
// published by the Free Software Foundation; either version 2 of 
1125
 
// the License, or (at your option) any later version.            
1126
 
//                                                                
1127
 
// This program is distributed in the hope that it will be useful,
1128
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1129
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1130
 
// GNU General Public License for more details.                   
1131
 
//                                                                
1132
 
// You should have received a copy of the GNU General Public      
1133
 
// License along with this program; if not, write to the Free     
1134
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1135
 
// MA  02111-1307  USA                                            
1136
 
 
1137
 
#ifndef __printable_h__
1138
 
#define __printable_h__
1139
 
 
1140
 
#include <iostream>
1141
 
using namespace std;
1142
 
 
1143
 
namespace Puma {
1144
 
 
1145
 
 
1146
 
 
1147
 
#line 1148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
1148
 
} // closed Puma
1149
 
class WinIfExists;
1150
 
class WinImportHandler;
1151
 
class WinMacros;
1152
 
class CMatchSyntax;
1153
 
class ExtGnu;
1154
 
class ExtAC;
1155
 
class ExtACBuilderCoupling;
1156
 
class ExtACSyntaxCoupling;
1157
 
class ExtACTree;
1158
 
class ExtACKeywords;
1159
 
class WinAsm;
1160
 
class WinDeclSpecs;
1161
 
class WinMemberExplSpec;
1162
 
class WinTypeKeywords;
1163
 
class PragmaOnceUnitState;
1164
 
class PragmaOnce;
1165
 
class CCExprResolve;
1166
 
class CExprResolve;
1167
 
namespace Puma {
1168
 
 
1169
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
1170
 
class Printable {
1171
 
#line 1172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
1172
 
  friend class ::WinIfExists;
1173
 
  friend class ::WinImportHandler;
1174
 
  friend class ::WinMacros;
1175
 
  friend class ::CMatchSyntax;
1176
 
  friend class ::ExtGnu;
1177
 
  friend class ::ExtAC;
1178
 
  friend class ::ExtACBuilderCoupling;
1179
 
  friend class ::ExtACSyntaxCoupling;
1180
 
  friend class ::ExtACTree;
1181
 
  friend class ::ExtACKeywords;
1182
 
  friend class ::WinAsm;
1183
 
  friend class ::WinDeclSpecs;
1184
 
  friend class ::WinMemberExplSpec;
1185
 
  friend class ::WinTypeKeywords;
1186
 
  friend class ::PragmaOnceUnitState;
1187
 
  friend class ::PragmaOnce;
1188
 
  friend class ::CCExprResolve;
1189
 
  friend class ::CExprResolve;
1190
 
 
1191
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
1192
 
 
1193
 
public:
1194
 
  virtual ~Printable () {}
1195
 
  virtual void print (ostream &os) const = 0;
1196
 
};
1197
 
 
1198
 
 
1199
 
inline ostream &operator << (ostream &os, const Printable &object) {
1200
 
  object.print (os);
1201
 
  return os;
1202
 
}
1203
 
 
1204
 
 
1205
 
} // namespace Puma
1206
 
 
1207
 
#endif /* __printable_h__ */
1208
 
 
1209
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1210
 
// This file is part of PUMA.
1211
 
// Copyright (C) 1999-2003  The PUMA developer team.
1212
 
//                                                                
1213
 
// This program is free software;  you can redistribute it and/or 
1214
 
// modify it under the terms of the GNU General Public License as 
1215
 
// published by the Free Software Foundation; either version 2 of 
1216
 
// the License, or (at your option) any later version.            
1217
 
//                                                                
1218
 
// This program is distributed in the hope that it will be useful,
1219
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1220
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1221
 
// GNU General Public License for more details.                   
1222
 
//                                                                
1223
 
// You should have received a copy of the GNU General Public      
1224
 
// License along with this program; if not, write to the Free     
1225
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1226
 
// MA  02111-1307  USA                                            
1227
 
 
1228
 
#ifndef __location_info_h__
1229
 
#define __location_info_h__
1230
 
 
1231
 
 
1232
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
1233
 
// This file is part of PUMA.
1234
 
// Copyright (C) 1999-2003  The PUMA developer team.
1235
 
//                                                                
1236
 
// This program is free software;  you can redistribute it and/or 
1237
 
// modify it under the terms of the GNU General Public License as 
1238
 
// published by the Free Software Foundation; either version 2 of 
1239
 
// the License, or (at your option) any later version.            
1240
 
//                                                                
1241
 
// This program is distributed in the hope that it will be useful,
1242
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1243
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1244
 
// GNU General Public License for more details.                   
1245
 
//                                                                
1246
 
// You should have received a copy of the GNU General Public      
1247
 
// License along with this program; if not, write to the Free     
1248
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1249
 
// MA  02111-1307  USA                                            
1250
 
 
1251
 
#ifndef __filename_h__
1252
 
#define __filename_h__
1253
 
 
1254
 
 
1255
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1376
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1256
1377
// This file is part of PUMA.
1257
1378
// Copyright (C) 1999-2003  The PUMA developer team.
1258
1379
//                                                                
1275
1396
#define __filename_info_h__
1276
1397
 
1277
1398
 
1278
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1399
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1279
1400
// This file is part of PUMA.
1280
1401
// Copyright (C) 1999-2003  The PUMA developer team.
1281
1402
//                                                                
1298
1419
#define __DString_h__
1299
1420
 
1300
1421
 
1301
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1422
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1302
1423
// This file is part of PUMA.
1303
1424
// Copyright (C) 1999-2003  The PUMA developer team.
1304
1425
//                                                                
1321
1442
#define __StrHashTable_h__
1322
1443
 
1323
1444
 
1324
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1445
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1325
1446
// This file is part of PUMA.
1326
1447
// Copyright (C) 1999-2003  The PUMA developer team.
1327
1448
//                                                                
1344
1465
#define __StrHashKey_h__
1345
1466
 
1346
1467
 
1347
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
1348
 
// This file is part of PUMA.
1349
 
// Copyright (C) 1999-2003  The PUMA developer team.
1350
 
//                                                                
1351
 
// This program is free software;  you can redistribute it and/or 
1352
 
// modify it under the terms of the GNU General Public License as 
1353
 
// published by the Free Software Foundation; either version 2 of 
1354
 
// the License, or (at your option) any later version.            
1355
 
//                                                                
1356
 
// This program is distributed in the hope that it will be useful,
1357
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1358
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1359
 
// GNU General Public License for more details.                   
1360
 
//                                                                
1361
 
// You should have received a copy of the GNU General Public      
1362
 
// License along with this program; if not, write to the Free     
1363
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1364
 
// MA  02111-1307  USA                                            
1365
 
 
1366
 
#ifndef __str_col__
1367
 
#define __str_col__
1368
 
 
1369
 
// Collection of functions handling strings.
1370
 
 
1371
 
namespace Puma {
1372
 
 
1373
 
 
1374
 
class Unit;
1375
 
 
1376
 
 
1377
 
#line 1378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
1378
 
} // closed Puma
1379
 
class WinIfExists;
1380
 
class WinImportHandler;
1381
 
class WinMacros;
1382
 
class CMatchSyntax;
1383
 
class ExtGnu;
1384
 
class ExtAC;
1385
 
class ExtACBuilderCoupling;
1386
 
class ExtACSyntaxCoupling;
1387
 
class ExtACTree;
1388
 
class ExtACKeywords;
1389
 
class WinAsm;
1390
 
class WinDeclSpecs;
1391
 
class WinMemberExplSpec;
1392
 
class WinTypeKeywords;
1393
 
class PragmaOnceUnitState;
1394
 
class PragmaOnce;
1395
 
class CCExprResolve;
1396
 
class CExprResolve;
1397
 
namespace Puma {
1398
 
 
1399
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
1400
 
class StrCol {
1401
 
#line 1402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
1402
 
  friend class ::WinIfExists;
1403
 
  friend class ::WinImportHandler;
1404
 
  friend class ::WinMacros;
1405
 
  friend class ::CMatchSyntax;
1406
 
  friend class ::ExtGnu;
1407
 
  friend class ::ExtAC;
1408
 
  friend class ::ExtACBuilderCoupling;
1409
 
  friend class ::ExtACSyntaxCoupling;
1410
 
  friend class ::ExtACTree;
1411
 
  friend class ::ExtACKeywords;
1412
 
  friend class ::WinAsm;
1413
 
  friend class ::WinDeclSpecs;
1414
 
  friend class ::WinMemberExplSpec;
1415
 
  friend class ::WinTypeKeywords;
1416
 
  friend class ::PragmaOnceUnitState;
1417
 
  friend class ::PragmaOnce;
1418
 
  friend class ::CCExprResolve;
1419
 
  friend class ::CExprResolve;
1420
 
 
1421
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
1422
 
 
1423
 
protected:
1424
 
  StrCol () {}
1425
 
        
1426
 
public:
1427
 
  // Return true if c is a white space character.
1428
 
  static bool isSpace (const char c);
1429
 
 
1430
 
  // Return true if the string consists only of spaces.
1431
 
  static bool onlySpaces (const char *);
1432
 
 
1433
 
  // Return true if the two strings differ not only in spaces.
1434
 
  static bool effectivelyDifferent (const char *, const char *);
1435
 
 
1436
 
  // Build a string from a unit.
1437
 
  static char *buildString (Unit *);
1438
 
        
1439
 
  // Duplicate a string
1440
 
  static char *dup (const char *);
1441
 
  static char *dup (const char *, int);
1442
 
};
1443
 
 
1444
 
 
1445
 
} // namespace Puma
1446
 
 
1447
 
#endif /* __str_col__ */
1448
 
 
1449
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1468
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
1450
1469
// This file is part of PUMA.
1451
1470
// Copyright (C) 1999-2003  The PUMA developer team.
1452
1471
//                                                                
1481
1500
 
1482
1501
 
1483
1502
 
1484
 
#line 1485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1503
#line 1504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1485
1504
} // closed Puma
 
1505
class CCExprResolve;
 
1506
class CExprResolve;
1486
1507
class WinIfExists;
1487
1508
class WinImportHandler;
1488
1509
class WinMacros;
1489
 
class CMatchSyntax;
1490
 
class ExtGnu;
 
1510
class WinAsm;
 
1511
class WinDeclSpecs;
 
1512
class WinMemberExplSpec;
 
1513
class WinTypeKeywords;
 
1514
class WinFriend;
1491
1515
class ExtAC;
1492
1516
class ExtACBuilderCoupling;
1493
1517
class ExtACSyntaxCoupling;
1494
1518
class ExtACTree;
1495
1519
class ExtACKeywords;
1496
 
class WinAsm;
1497
 
class WinDeclSpecs;
1498
 
class WinMemberExplSpec;
1499
 
class WinTypeKeywords;
 
1520
class ExtGnu;
1500
1521
class PragmaOnceUnitState;
1501
1522
class PragmaOnce;
1502
 
class CCExprResolve;
1503
 
class CExprResolve;
 
1523
class CMatchSyntax;
1504
1524
namespace Puma {
1505
1525
 
1506
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1526
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
1507
1527
class Chain {
1508
 
#line 1509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1528
#line 1529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1529
  friend class ::CCExprResolve;
 
1530
  friend class ::CExprResolve;
1509
1531
  friend class ::WinIfExists;
1510
1532
  friend class ::WinImportHandler;
1511
1533
  friend class ::WinMacros;
1512
 
  friend class ::CMatchSyntax;
1513
 
  friend class ::ExtGnu;
 
1534
  friend class ::WinAsm;
 
1535
  friend class ::WinDeclSpecs;
 
1536
  friend class ::WinMemberExplSpec;
 
1537
  friend class ::WinTypeKeywords;
 
1538
  friend class ::WinFriend;
1514
1539
  friend class ::ExtAC;
1515
1540
  friend class ::ExtACBuilderCoupling;
1516
1541
  friend class ::ExtACSyntaxCoupling;
1517
1542
  friend class ::ExtACTree;
1518
1543
  friend class ::ExtACKeywords;
1519
 
  friend class ::WinAsm;
1520
 
  friend class ::WinDeclSpecs;
1521
 
  friend class ::WinMemberExplSpec;
1522
 
  friend class ::WinTypeKeywords;
 
1544
  friend class ::ExtGnu;
1523
1545
  friend class ::PragmaOnceUnitState;
1524
1546
  friend class ::PragmaOnce;
1525
 
  friend class ::CCExprResolve;
1526
 
  friend class ::CExprResolve;
 
1547
  friend class ::CMatchSyntax;
1527
1548
 
1528
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1549
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
1529
1550
 
1530
1551
  Chain *next;
1531
1552
 
1589
1610
 
1590
1611
#endif /* __Chain_h__ */
1591
1612
 
1592
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1613
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1593
1614
namespace Puma {
1594
1615
 
1595
1616
 
1596
1617
 
1597
 
#line 1598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1618
#line 1619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1598
1619
} // closed Puma
 
1620
class CCExprResolve;
 
1621
class CExprResolve;
1599
1622
class WinIfExists;
1600
1623
class WinImportHandler;
1601
1624
class WinMacros;
1602
 
class CMatchSyntax;
1603
 
class ExtGnu;
 
1625
class WinAsm;
 
1626
class WinDeclSpecs;
 
1627
class WinMemberExplSpec;
 
1628
class WinTypeKeywords;
 
1629
class WinFriend;
1604
1630
class ExtAC;
1605
1631
class ExtACBuilderCoupling;
1606
1632
class ExtACSyntaxCoupling;
1607
1633
class ExtACTree;
1608
1634
class ExtACKeywords;
1609
 
class WinAsm;
1610
 
class WinDeclSpecs;
1611
 
class WinMemberExplSpec;
1612
 
class WinTypeKeywords;
 
1635
class ExtGnu;
1613
1636
class PragmaOnceUnitState;
1614
1637
class PragmaOnce;
1615
 
class CCExprResolve;
1616
 
class CExprResolve;
 
1638
class CMatchSyntax;
1617
1639
namespace Puma {
1618
1640
 
1619
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1641
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1620
1642
class StrHashKey : public Chain {
1621
 
#line 1622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1643
#line 1644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1644
  friend class ::CCExprResolve;
 
1645
  friend class ::CExprResolve;
1622
1646
  friend class ::WinIfExists;
1623
1647
  friend class ::WinImportHandler;
1624
1648
  friend class ::WinMacros;
1625
 
  friend class ::CMatchSyntax;
1626
 
  friend class ::ExtGnu;
 
1649
  friend class ::WinAsm;
 
1650
  friend class ::WinDeclSpecs;
 
1651
  friend class ::WinMemberExplSpec;
 
1652
  friend class ::WinTypeKeywords;
 
1653
  friend class ::WinFriend;
1627
1654
  friend class ::ExtAC;
1628
1655
  friend class ::ExtACBuilderCoupling;
1629
1656
  friend class ::ExtACSyntaxCoupling;
1630
1657
  friend class ::ExtACTree;
1631
1658
  friend class ::ExtACKeywords;
1632
 
  friend class ::WinAsm;
1633
 
  friend class ::WinDeclSpecs;
1634
 
  friend class ::WinMemberExplSpec;
1635
 
  friend class ::WinTypeKeywords;
 
1659
  friend class ::ExtGnu;
1636
1660
  friend class ::PragmaOnceUnitState;
1637
1661
  friend class ::PragmaOnce;
1638
 
  friend class ::CCExprResolve;
1639
 
  friend class ::CExprResolve;
 
1662
  friend class ::CMatchSyntax;
1640
1663
 
1641
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1664
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1642
1665
 
1643
1666
  unsigned int m_Magic;
1644
1667
  unsigned int m_Len;
1649
1672
public:
1650
1673
  StrHashKey (int m, const char *s, int l) : 
1651
1674
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
1675
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
1652
1676
 
1653
1677
  unsigned int getMagic () const { return m_Magic; }
1654
1678
  unsigned int length () const { return m_Len; }
1660
1684
 
1661
1685
#endif /* __StrHashKey_h__ */
1662
1686
 
1663
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1687
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1664
1688
#include <assert.h>
1665
1689
 
1666
1690
namespace Puma {
1667
1691
 
1668
1692
 
1669
1693
 
1670
 
#line 1671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1694
#line 1695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1671
1695
} // closed Puma
 
1696
class CCExprResolve;
 
1697
class CExprResolve;
1672
1698
class WinIfExists;
1673
1699
class WinImportHandler;
1674
1700
class WinMacros;
1675
 
class CMatchSyntax;
1676
 
class ExtGnu;
 
1701
class WinAsm;
 
1702
class WinDeclSpecs;
 
1703
class WinMemberExplSpec;
 
1704
class WinTypeKeywords;
 
1705
class WinFriend;
1677
1706
class ExtAC;
1678
1707
class ExtACBuilderCoupling;
1679
1708
class ExtACSyntaxCoupling;
1680
1709
class ExtACTree;
1681
1710
class ExtACKeywords;
1682
 
class WinAsm;
1683
 
class WinDeclSpecs;
1684
 
class WinMemberExplSpec;
1685
 
class WinTypeKeywords;
 
1711
class ExtGnu;
1686
1712
class PragmaOnceUnitState;
1687
1713
class PragmaOnce;
1688
 
class CCExprResolve;
1689
 
class CExprResolve;
 
1714
class CMatchSyntax;
1690
1715
namespace Puma {
1691
1716
 
1692
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1717
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1693
1718
class StrHashTable {
1694
 
#line 1695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1719
#line 1720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1720
  friend class ::CCExprResolve;
 
1721
  friend class ::CExprResolve;
1695
1722
  friend class ::WinIfExists;
1696
1723
  friend class ::WinImportHandler;
1697
1724
  friend class ::WinMacros;
1698
 
  friend class ::CMatchSyntax;
1699
 
  friend class ::ExtGnu;
 
1725
  friend class ::WinAsm;
 
1726
  friend class ::WinDeclSpecs;
 
1727
  friend class ::WinMemberExplSpec;
 
1728
  friend class ::WinTypeKeywords;
 
1729
  friend class ::WinFriend;
1700
1730
  friend class ::ExtAC;
1701
1731
  friend class ::ExtACBuilderCoupling;
1702
1732
  friend class ::ExtACSyntaxCoupling;
1703
1733
  friend class ::ExtACTree;
1704
1734
  friend class ::ExtACKeywords;
1705
 
  friend class ::WinAsm;
1706
 
  friend class ::WinDeclSpecs;
1707
 
  friend class ::WinMemberExplSpec;
1708
 
  friend class ::WinTypeKeywords;
 
1735
  friend class ::ExtGnu;
1709
1736
  friend class ::PragmaOnceUnitState;
1710
1737
  friend class ::PragmaOnce;
1711
 
  friend class ::CCExprResolve;
1712
 
  friend class ::CExprResolve;
 
1738
  friend class ::CMatchSyntax;
1713
1739
 
1714
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1740
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1715
1741
 
1716
1742
  StrHashKey *_emptyKey;
1717
1743
 
1724
1750
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
1725
1751
  StrHashKey *insert (const char *);
1726
1752
  void remove (StrHashKey *);
 
1753
  void clear ();
1727
1754
 
1728
1755
  enum { STRHASHTABLE_SIZE=0xffff };
1729
1756
  
1731
1758
  Chain m_Table[STRHASHTABLE_SIZE];
1732
1759
 
1733
1760
  StrHashKey *find (unsigned int, const char *, unsigned int);
1734
 
  unsigned int hash (const char *, unsigned int);
 
1761
  unsigned int hash (const char *, unsigned int &);
1735
1762
};
1736
1763
 
1737
1764
 
1739
1766
 
1740
1767
#endif /* __StrHashTable_h__ */
1741
1768
 
1742
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1769
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1743
1770
#include <assert.h>
1744
1771
 
1745
1772
namespace Puma {
1748
1775
extern StrHashTable ___str_dict;
1749
1776
 
1750
1777
 
1751
 
#line 1752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1778
#line 1779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1752
1779
} // closed Puma
 
1780
class CCExprResolve;
 
1781
class CExprResolve;
1753
1782
class WinIfExists;
1754
1783
class WinImportHandler;
1755
1784
class WinMacros;
1756
 
class CMatchSyntax;
1757
 
class ExtGnu;
 
1785
class WinAsm;
 
1786
class WinDeclSpecs;
 
1787
class WinMemberExplSpec;
 
1788
class WinTypeKeywords;
 
1789
class WinFriend;
1758
1790
class ExtAC;
1759
1791
class ExtACBuilderCoupling;
1760
1792
class ExtACSyntaxCoupling;
1761
1793
class ExtACTree;
1762
1794
class ExtACKeywords;
1763
 
class WinAsm;
1764
 
class WinDeclSpecs;
1765
 
class WinMemberExplSpec;
1766
 
class WinTypeKeywords;
 
1795
class ExtGnu;
1767
1796
class PragmaOnceUnitState;
1768
1797
class PragmaOnce;
1769
 
class CCExprResolve;
1770
 
class CExprResolve;
 
1798
class CMatchSyntax;
1771
1799
namespace Puma {
1772
1800
 
1773
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1801
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1774
1802
class DString {
1775
 
#line 1776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1803
#line 1804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1804
  friend class ::CCExprResolve;
 
1805
  friend class ::CExprResolve;
1776
1806
  friend class ::WinIfExists;
1777
1807
  friend class ::WinImportHandler;
1778
1808
  friend class ::WinMacros;
1779
 
  friend class ::CMatchSyntax;
1780
 
  friend class ::ExtGnu;
 
1809
  friend class ::WinAsm;
 
1810
  friend class ::WinDeclSpecs;
 
1811
  friend class ::WinMemberExplSpec;
 
1812
  friend class ::WinTypeKeywords;
 
1813
  friend class ::WinFriend;
1781
1814
  friend class ::ExtAC;
1782
1815
  friend class ::ExtACBuilderCoupling;
1783
1816
  friend class ::ExtACSyntaxCoupling;
1784
1817
  friend class ::ExtACTree;
1785
1818
  friend class ::ExtACKeywords;
1786
 
  friend class ::WinAsm;
1787
 
  friend class ::WinDeclSpecs;
1788
 
  friend class ::WinMemberExplSpec;
1789
 
  friend class ::WinTypeKeywords;
 
1819
  friend class ::ExtGnu;
1790
1820
  friend class ::PragmaOnceUnitState;
1791
1821
  friend class ::PragmaOnce;
1792
 
  friend class ::CCExprResolve;
1793
 
  friend class ::CExprResolve;
 
1822
  friend class ::CMatchSyntax;
1794
1823
 
1795
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1824
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1796
1825
 
1797
1826
  StrHashKey *m_Key;
1798
1827
 
1859
1888
    assert (m_Key);
1860
1889
    return c_str ();
1861
1890
  }
 
1891
  
 
1892
  static void clearDict() {
 
1893
    ___str_dict.clear ();
 
1894
  }
1862
1895
};
1863
1896
 
1864
1897
 
1866
1899
 
1867
1900
#endif /* __DString_h__ */
1868
1901
 
1869
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1902
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1870
1903
namespace Puma {
1871
1904
 
1872
1905
 
1873
1906
 
1874
 
#line 1875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1907
#line 1908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1875
1908
} // closed Puma
 
1909
class CCExprResolve;
 
1910
class CExprResolve;
1876
1911
class WinIfExists;
1877
1912
class WinImportHandler;
1878
1913
class WinMacros;
1879
 
class CMatchSyntax;
1880
 
class ExtGnu;
 
1914
class WinAsm;
 
1915
class WinDeclSpecs;
 
1916
class WinMemberExplSpec;
 
1917
class WinTypeKeywords;
 
1918
class WinFriend;
1881
1919
class ExtAC;
1882
1920
class ExtACBuilderCoupling;
1883
1921
class ExtACSyntaxCoupling;
1884
1922
class ExtACTree;
1885
1923
class ExtACKeywords;
1886
 
class WinAsm;
1887
 
class WinDeclSpecs;
1888
 
class WinMemberExplSpec;
1889
 
class WinTypeKeywords;
 
1924
class ExtGnu;
1890
1925
class PragmaOnceUnitState;
1891
1926
class PragmaOnce;
1892
 
class CCExprResolve;
1893
 
class CExprResolve;
 
1927
class CMatchSyntax;
1894
1928
namespace Puma {
1895
1929
 
1896
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1930
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1897
1931
class FilenameInfo : public RefCnt {
1898
 
#line 1899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1932
#line 1933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
1933
  friend class ::CCExprResolve;
 
1934
  friend class ::CExprResolve;
1899
1935
  friend class ::WinIfExists;
1900
1936
  friend class ::WinImportHandler;
1901
1937
  friend class ::WinMacros;
1902
 
  friend class ::CMatchSyntax;
1903
 
  friend class ::ExtGnu;
 
1938
  friend class ::WinAsm;
 
1939
  friend class ::WinDeclSpecs;
 
1940
  friend class ::WinMemberExplSpec;
 
1941
  friend class ::WinTypeKeywords;
 
1942
  friend class ::WinFriend;
1904
1943
  friend class ::ExtAC;
1905
1944
  friend class ::ExtACBuilderCoupling;
1906
1945
  friend class ::ExtACSyntaxCoupling;
1907
1946
  friend class ::ExtACTree;
1908
1947
  friend class ::ExtACKeywords;
1909
 
  friend class ::WinAsm;
1910
 
  friend class ::WinDeclSpecs;
1911
 
  friend class ::WinMemberExplSpec;
1912
 
  friend class ::WinTypeKeywords;
 
1948
  friend class ::ExtGnu;
1913
1949
  friend class ::PragmaOnceUnitState;
1914
1950
  friend class ::PragmaOnce;
1915
 
  friend class ::CCExprResolve;
1916
 
  friend class ::CExprResolve;
 
1951
  friend class ::CMatchSyntax;
1917
1952
 
1918
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1953
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1919
1954
 
1920
1955
  DString _name;
1921
1956
  const char *_path;
1925
1960
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
1926
1961
  ~FilenameInfo ();
1927
1962
  void name (const char *n);
1928
 
  void name (const DString &dsn) { _name = dsn; }
 
1963
//  void name (const DString &dsn) { _name = dsn; }
1929
1964
  const char *name () const { return _name.c_str (); }
1930
1965
  const char *path ();
1931
1966
  const char *root ();
1940
1975
 
1941
1976
#endif /* __filename_info_h__ */
1942
1977
 
1943
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1978
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
1944
1979
namespace Puma {
1945
1980
 
1946
1981
 
1947
1982
 
1948
 
#line 1949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
1983
#line 1984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1949
1984
} // closed Puma
 
1985
class CCExprResolve;
 
1986
class CExprResolve;
1950
1987
class WinIfExists;
1951
1988
class WinImportHandler;
1952
1989
class WinMacros;
1953
 
class CMatchSyntax;
1954
 
class ExtGnu;
 
1990
class WinAsm;
 
1991
class WinDeclSpecs;
 
1992
class WinMemberExplSpec;
 
1993
class WinTypeKeywords;
 
1994
class WinFriend;
1955
1995
class ExtAC;
1956
1996
class ExtACBuilderCoupling;
1957
1997
class ExtACSyntaxCoupling;
1958
1998
class ExtACTree;
1959
1999
class ExtACKeywords;
1960
 
class WinAsm;
1961
 
class WinDeclSpecs;
1962
 
class WinMemberExplSpec;
1963
 
class WinTypeKeywords;
 
2000
class ExtGnu;
1964
2001
class PragmaOnceUnitState;
1965
2002
class PragmaOnce;
1966
 
class CCExprResolve;
1967
 
class CExprResolve;
 
2003
class CMatchSyntax;
1968
2004
namespace Puma {
1969
2005
 
1970
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2006
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
1971
2007
class Filename : public SmartPtr, public Printable {
1972
 
#line 1973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2008
#line 2009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2009
  friend class ::CCExprResolve;
 
2010
  friend class ::CExprResolve;
1973
2011
  friend class ::WinIfExists;
1974
2012
  friend class ::WinImportHandler;
1975
2013
  friend class ::WinMacros;
1976
 
  friend class ::CMatchSyntax;
1977
 
  friend class ::ExtGnu;
 
2014
  friend class ::WinAsm;
 
2015
  friend class ::WinDeclSpecs;
 
2016
  friend class ::WinMemberExplSpec;
 
2017
  friend class ::WinTypeKeywords;
 
2018
  friend class ::WinFriend;
1978
2019
  friend class ::ExtAC;
1979
2020
  friend class ::ExtACBuilderCoupling;
1980
2021
  friend class ::ExtACSyntaxCoupling;
1981
2022
  friend class ::ExtACTree;
1982
2023
  friend class ::ExtACKeywords;
1983
 
  friend class ::WinAsm;
1984
 
  friend class ::WinDeclSpecs;
1985
 
  friend class ::WinMemberExplSpec;
1986
 
  friend class ::WinTypeKeywords;
 
2024
  friend class ::ExtGnu;
1987
2025
  friend class ::PragmaOnceUnitState;
1988
2026
  friend class ::PragmaOnce;
1989
 
  friend class ::CCExprResolve;
1990
 
  friend class ::CExprResolve;
 
2027
  friend class ::CMatchSyntax;
1991
2028
 
1992
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2029
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
1993
2030
 
1994
2031
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
1995
2032
 
1997
2034
  Filename () {}
1998
2035
  Filename (const char *n) { name (n); }
1999
2036
  Filename &operator = (const char *n) { name (n); return *this; }
 
2037
  bool operator ~ () const { return info () != 0; }
2000
2038
  void name (const char *n);
2001
2039
  const char *name () const;
2002
2040
  const char *path () const;
2012
2050
 
2013
2051
#endif /* __filename_h__ */
2014
2052
 
2015
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
2053
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2016
2054
namespace Puma {
2017
2055
 
2018
2056
 
2019
2057
 
2020
 
#line 2021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2058
#line 2059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2021
2059
} // closed Puma
 
2060
class CCExprResolve;
 
2061
class CExprResolve;
2022
2062
class WinIfExists;
2023
2063
class WinImportHandler;
2024
2064
class WinMacros;
2025
 
class CMatchSyntax;
2026
 
class ExtGnu;
 
2065
class WinAsm;
 
2066
class WinDeclSpecs;
 
2067
class WinMemberExplSpec;
 
2068
class WinTypeKeywords;
 
2069
class WinFriend;
2027
2070
class ExtAC;
2028
2071
class ExtACBuilderCoupling;
2029
2072
class ExtACSyntaxCoupling;
2030
2073
class ExtACTree;
2031
2074
class ExtACKeywords;
2032
 
class WinAsm;
2033
 
class WinDeclSpecs;
2034
 
class WinMemberExplSpec;
2035
 
class WinTypeKeywords;
 
2075
class ExtGnu;
2036
2076
class PragmaOnceUnitState;
2037
2077
class PragmaOnce;
2038
 
class CCExprResolve;
2039
 
class CExprResolve;
 
2078
class CMatchSyntax;
2040
2079
namespace Puma {
2041
2080
 
2042
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2043
 
class LocationInfo : public RefCnt {
2044
 
#line 2045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2081
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
2082
class Location {
 
2083
#line 2084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2084
  friend class ::CCExprResolve;
 
2085
  friend class ::CExprResolve;
2045
2086
  friend class ::WinIfExists;
2046
2087
  friend class ::WinImportHandler;
2047
2088
  friend class ::WinMacros;
2048
 
  friend class ::CMatchSyntax;
2049
 
  friend class ::ExtGnu;
 
2089
  friend class ::WinAsm;
 
2090
  friend class ::WinDeclSpecs;
 
2091
  friend class ::WinMemberExplSpec;
 
2092
  friend class ::WinTypeKeywords;
 
2093
  friend class ::WinFriend;
2050
2094
  friend class ::ExtAC;
2051
2095
  friend class ::ExtACBuilderCoupling;
2052
2096
  friend class ::ExtACSyntaxCoupling;
2053
2097
  friend class ::ExtACTree;
2054
2098
  friend class ::ExtACKeywords;
2055
 
  friend class ::WinAsm;
2056
 
  friend class ::WinDeclSpecs;
2057
 
  friend class ::WinMemberExplSpec;
2058
 
  friend class ::WinTypeKeywords;
 
2099
  friend class ::ExtGnu;
2059
2100
  friend class ::PragmaOnceUnitState;
2060
2101
  friend class ::PragmaOnce;
2061
 
  friend class ::CCExprResolve;
2062
 
  friend class ::CExprResolve;
 
2102
  friend class ::CMatchSyntax;
2063
2103
 
2064
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
2104
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2065
2105
 
2066
2106
  Filename _filename;
2067
2107
  int _line;
 
2108
  int _column;
2068
2109
 
2069
2110
public:
2070
 
  LocationInfo () : _filename (), _line (0) {}
2071
 
  void setup (Filename f, int l);
 
2111
  Location () : _filename (), _line (0), _column (0) {}
 
2112
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
2113
  void setup (Filename f, int l, int c = 0) {
 
2114
    _filename = f;
 
2115
    _line     = l;
 
2116
    _column   = c;
 
2117
  }
2072
2118
  const Filename &filename () const { return _filename; }
2073
2119
  int line () const { return _line; }
2074
 
  bool operator < (const LocationInfo &l) const;
2075
 
  bool operator == (const LocationInfo &l) const;
2076
 
};
2077
 
 
2078
 
 
2079
 
} // namespace Puma
2080
 
 
2081
 
#endif /* __location_info_h__ */
2082
 
 
2083
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2084
 
namespace Puma {
2085
 
 
2086
 
 
2087
 
 
2088
 
#line 2089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2089
 
} // closed Puma
2090
 
class WinIfExists;
2091
 
class WinImportHandler;
2092
 
class WinMacros;
2093
 
class CMatchSyntax;
2094
 
class ExtGnu;
2095
 
class ExtAC;
2096
 
class ExtACBuilderCoupling;
2097
 
class ExtACSyntaxCoupling;
2098
 
class ExtACTree;
2099
 
class ExtACKeywords;
2100
 
class WinAsm;
2101
 
class WinDeclSpecs;
2102
 
class WinMemberExplSpec;
2103
 
class WinTypeKeywords;
2104
 
class PragmaOnceUnitState;
2105
 
class PragmaOnce;
2106
 
class CCExprResolve;
2107
 
class CExprResolve;
2108
 
namespace Puma {
2109
 
 
2110
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2111
 
class Location : public SmartPtr, public Printable {
2112
 
#line 2113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2113
 
  friend class ::WinIfExists;
2114
 
  friend class ::WinImportHandler;
2115
 
  friend class ::WinMacros;
2116
 
  friend class ::CMatchSyntax;
2117
 
  friend class ::ExtGnu;
2118
 
  friend class ::ExtAC;
2119
 
  friend class ::ExtACBuilderCoupling;
2120
 
  friend class ::ExtACSyntaxCoupling;
2121
 
  friend class ::ExtACTree;
2122
 
  friend class ::ExtACKeywords;
2123
 
  friend class ::WinAsm;
2124
 
  friend class ::WinDeclSpecs;
2125
 
  friend class ::WinMemberExplSpec;
2126
 
  friend class ::WinTypeKeywords;
2127
 
  friend class ::PragmaOnceUnitState;
2128
 
  friend class ::PragmaOnce;
2129
 
  friend class ::CCExprResolve;
2130
 
  friend class ::CExprResolve;
2131
 
 
2132
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2133
 
 
2134
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
2135
 
 
2136
 
public:
2137
 
  Location () {}
2138
 
  Location (Filename f, int l) { setup (f, l); }
2139
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2140
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2141
 
  void setup (Filename f, int l);
2142
 
  const Filename &filename () const   { return info ()->filename (); }
2143
 
  int line () const;
2144
 
  bool operator == (const Location &l) const;
 
2120
  int column () const { return _column; }
 
2121
  bool operator == (const Location &l) const {
 
2122
    return filename () == l.filename () && line () == l.line () &&
 
2123
      column () == l.column ();
 
2124
  }
2145
2125
  bool operator != (const Location &l) const { return ! (*this == l); }
2146
 
  bool operator < (const Location &l) const;
 
2126
  bool operator < (const Location &l) const {
 
2127
    // TODO: does it make sense to compare the filenames? better assert?
 
2128
    if (filename () != l.filename ())
 
2129
      return false;
 
2130
    return line () < l.line () && column () < l.column ();
 
2131
  }
 
2132
};
2147
2133
 
2148
 
  virtual void print (ostream &os) const {
2149
 
    if (info ())
 
2134
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2150
2135
#ifdef VISUAL_STUDIO
2151
 
      os << filename () << "(" << line () << ")";
 
2136
  os << loc.filename () << "(" << loc.line () << ")";
2152
2137
#else
2153
 
      os << filename () << ":" << line ();
 
2138
  os << loc.filename () << ":" << loc.line ();
2154
2139
#endif
2155
 
  }
2156
 
};
2157
 
 
2158
 
 
 
2140
  return os;  
 
2141
}
2159
2142
} // namespace Puma
2160
2143
 
2161
2144
#endif /* __location_h__ */
2162
2145
 
2163
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
2164
 
// This file is part of PUMA.
2165
 
// Copyright (C) 1999-2003  The PUMA developer team.
2166
 
//                                                                
2167
 
// This program is free software;  you can redistribute it and/or 
2168
 
// modify it under the terms of the GNU General Public License as 
2169
 
// published by the Free Software Foundation; either version 2 of 
2170
 
// the License, or (at your option) any later version.            
2171
 
//                                                                
2172
 
// This program is distributed in the hope that it will be useful,
2173
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2174
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2175
 
// GNU General Public License for more details.                   
2176
 
//                                                                
2177
 
// You should have received a copy of the GNU General Public      
2178
 
// License along with this program; if not, write to the Free     
2179
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2180
 
// MA  02111-1307  USA                                            
2181
 
 
2182
 
#ifndef __list_element_h__
2183
 
#define __list_element_h__
2184
 
 
2185
 
// Base class for objects that may be inserted into a List. Lists
2186
 
// autonomously delete or copy list element. So it's necessary to
2187
 
// define a destructor and a duplicate method in the derived
2188
 
// classes.
2189
 
 
2190
 
#include <assert.h>
2191
 
 
2192
 
namespace Puma {
2193
 
 
2194
 
 
2195
 
class List;
2196
 
 
2197
 
 
2198
 
#line 2199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2199
 
} // closed Puma
2200
 
class WinIfExists;
2201
 
class WinImportHandler;
2202
 
class WinMacros;
2203
 
class CMatchSyntax;
2204
 
class ExtGnu;
2205
 
class ExtAC;
2206
 
class ExtACBuilderCoupling;
2207
 
class ExtACSyntaxCoupling;
2208
 
class ExtACTree;
2209
 
class ExtACKeywords;
2210
 
class WinAsm;
2211
 
class WinDeclSpecs;
2212
 
class WinMemberExplSpec;
2213
 
class WinTypeKeywords;
2214
 
class PragmaOnceUnitState;
2215
 
class PragmaOnce;
2216
 
class CCExprResolve;
2217
 
class CExprResolve;
2218
 
namespace Puma {
2219
 
 
2220
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
2221
 
class ListElement {
2222
 
#line 2223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2223
 
  friend class ::WinIfExists;
2224
 
  friend class ::WinImportHandler;
2225
 
  friend class ::WinMacros;
2226
 
  friend class ::CMatchSyntax;
2227
 
  friend class ::ExtGnu;
2228
 
  friend class ::ExtAC;
2229
 
  friend class ::ExtACBuilderCoupling;
2230
 
  friend class ::ExtACSyntaxCoupling;
2231
 
  friend class ::ExtACTree;
2232
 
  friend class ::ExtACKeywords;
2233
 
  friend class ::WinAsm;
2234
 
  friend class ::WinDeclSpecs;
2235
 
  friend class ::WinMemberExplSpec;
2236
 
  friend class ::WinTypeKeywords;
2237
 
  friend class ::PragmaOnceUnitState;
2238
 
  friend class ::PragmaOnce;
2239
 
  friend class ::CCExprResolve;
2240
 
  friend class ::CExprResolve;
2241
 
 
2242
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
2243
 
 
2244
 
  friend class List;
2245
 
 
2246
 
  List        *_belonging_to;
2247
 
  ListElement *_next;
2248
 
  ListElement *_prev;
2249
 
 
2250
 
public:
2251
 
  ListElement () : _belonging_to ((List*)0) {}
2252
 
  virtual ~ListElement () { assert (! _belonging_to); };
2253
 
 
2254
 
  virtual ListElement *duplicate () = 0;
2255
 
  List *belonging_to () const { return _belonging_to; }
2256
 
};
2257
 
 
2258
 
 
2259
 
} // namespace Puma
2260
 
 
2261
 
#endif /* __list_element_h__ */
2262
 
 
2263
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2264
 
#include <assert.h>
2265
 
 
2266
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2267
 
namespace Puma {
2268
 
 
2269
 
 
2270
 
 
2271
 
#line 2272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2272
 
} // closed Puma
2273
 
class WinIfExists;
2274
 
class WinImportHandler;
2275
 
class WinMacros;
2276
 
class CMatchSyntax;
2277
 
class ExtGnu;
2278
 
class ExtAC;
2279
 
class ExtACBuilderCoupling;
2280
 
class ExtACSyntaxCoupling;
2281
 
class ExtACTree;
2282
 
class ExtACKeywords;
2283
 
class WinAsm;
2284
 
class WinDeclSpecs;
2285
 
class WinMemberExplSpec;
2286
 
class WinTypeKeywords;
2287
 
class PragmaOnceUnitState;
2288
 
class PragmaOnce;
2289
 
class CCExprResolve;
2290
 
class CExprResolve;
2291
 
namespace Puma {
2292
 
 
2293
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2294
 
class Token : public ListElement {
2295
 
#line 2296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2296
 
  friend class ::WinIfExists;
2297
 
  friend class ::WinImportHandler;
2298
 
  friend class ::WinMacros;
2299
 
  friend class ::CMatchSyntax;
2300
 
  friend class ::ExtGnu;
2301
 
  friend class ::ExtAC;
2302
 
  friend class ::ExtACBuilderCoupling;
2303
 
  friend class ::ExtACSyntaxCoupling;
2304
 
  friend class ::ExtACTree;
2305
 
  friend class ::ExtACKeywords;
2306
 
  friend class ::WinAsm;
2307
 
  friend class ::WinDeclSpecs;
2308
 
  friend class ::WinMemberExplSpec;
2309
 
  friend class ::WinTypeKeywords;
2310
 
  friend class ::PragmaOnceUnitState;
2311
 
  friend class ::PragmaOnce;
2312
 
  friend class ::CCExprResolve;
2313
 
  friend class ::CExprResolve;
2314
 
 
2315
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2316
 
 
2317
 
  int _type, _real_type;
2318
 
 
2319
 
  Location _location;
2320
 
  LanguageID _language;
2321
 
  DString _text;
2322
 
 
2323
 
  Array<int> *_cont_lines;
2324
 
   
2325
 
  enum TK_Flags {
2326
 
          TK_COMMENT = (0x01 << 0),
2327
 
          TK_CORE = (0x01 << 1),
2328
 
          TK_MACRO_CALL = (0x01 << 2),
2329
 
          TK_MACRO_GENERATED = (0x01 << 3)
2330
 
  };
2331
 
  unsigned short _flags;
2332
 
 
2333
 
public:
2334
 
  enum {
2335
 
    ID_END_OF_FILE = -1,
2336
 
    ID_UNKNOWN = -2,
2337
 
    ID_ERROR = -3,
2338
 
    ID_WARNING = -4
2339
 
  };
2340
 
 
2341
 
  static LanguageID comment_id, pre_id, dir_id, cpp_id, white_id, 
2342
 
                    wildcard_id, keyword_id, open_id, macro_op_id,
2343
 
                    identifier_id, comma_id, close_id;
2344
 
 
2345
 
public:
2346
 
  Token (int = 0, LanguageID lang = LanguageID(0), const char * = "");
2347
 
  Token (const Token &);
2348
 
  virtual ~Token ();
2349
 
 
2350
 
//  virtual void print (ostream &) const;
2351
 
  void print (ostream &) const;
2352
 
  virtual ListElement *duplicate () { return new Token (*this); }
2353
 
 
2354
 
  void reset (int = 0, const char * = 0, LanguageID = LanguageID(0));
2355
 
  
2356
 
  void location (const Location &loc)      { _location = loc; }
2357
 
  void cont_lines (Array<int> *cl)  { _cont_lines = cl; }
2358
 
  int line_breaks () const;
2359
 
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
2360
 
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
2361
 
  
2362
 
  const DString &text () const     { return _text; }
2363
 
  char *get_static_text () const;
2364
 
  int type () const                 { return _type; }
2365
 
  const Location &location () const { return _location; }
2366
 
   
2367
 
  // functions to query token flags
2368
 
  bool is_macro_generated () const  { return (_flags & TK_MACRO_GENERATED) != 0; }
2369
 
  bool is_macro_call () const       { return (_flags & TK_MACRO_CALL) != 0; }
2370
 
  bool is_core () const;
2371
 
  bool is_identifier () const;    // subset of core
2372
 
  bool is_keyword () const;       // subset of identifier
2373
 
  bool is_wildcard () const;      // subset of core
2374
 
  bool is_preprocessor () const;  // a preprocessor directive (include, etc.)
2375
 
  bool is_directive () const;     // a compiler directive (pragma, line, etc.)
2376
 
  bool is_whitespace () const;
2377
 
  bool is_comment () const;
2378
 
  bool is_macro_op () const;
2379
 
  bool is_open () const;          // subset of core
2380
 
  bool is_comma () const;         // subset of core
2381
 
  bool is_close () const;         // subset of core
2382
 
 
2383
 
  void *operator new (size_t);
2384
 
  void  operator delete (void *);
2385
 
 
2386
 
private:
2387
 
  int get_general_type () const;
2388
 
  LanguageID language () const { return _language; }
2389
 
  void is_comment_internal ();
2390
 
  void is_core_internal ();
2391
 
};
2392
 
 
2393
 
 
2394
 
inline void Token::is_core_internal () {
2395
 
  if (_language == cpp_id || _language == wildcard_id || 
2396
 
      _language == open_id || _language == comma_id || 
2397
 
      _language == close_id || is_identifier ())
2398
 
    _flags |= TK_CORE;
2399
 
}
2400
 
inline void Token::is_comment_internal () { 
2401
 
  if (_language == comment_id) 
2402
 
    _flags |= TK_COMMENT;
2403
 
}
2404
 
 
2405
 
inline bool Token::is_core () const 
2406
 
 { return (_flags & TK_CORE) != 0; }
2407
 
inline bool Token::is_identifier () const 
2408
 
 { return _language == identifier_id || is_keyword ();}
2409
 
inline bool Token::is_keyword () const 
2410
 
 { return _language == keyword_id; }
2411
 
inline bool Token::is_wildcard () const 
2412
 
 { return _language == wildcard_id; }
2413
 
inline bool Token::is_preprocessor () const 
2414
 
 { return _language == pre_id; }
2415
 
inline bool Token::is_directive () const 
2416
 
 { return _language == dir_id; }
2417
 
inline bool Token::is_whitespace () const 
2418
 
 { return _language == white_id; }
2419
 
inline bool Token::is_comment () const 
2420
 
 { return (_flags & TK_COMMENT) != 0; }
2421
 
inline bool Token::is_macro_op () const 
2422
 
 { return _language == macro_op_id; }
2423
 
inline bool Token::is_open () const 
2424
 
 { return _language == open_id; }
2425
 
inline bool Token::is_comma () const 
2426
 
 { return _language == comma_id; }
2427
 
inline bool Token::is_close () const 
2428
 
 { return _language == close_id; }
2429
 
 
2430
 
inline ostream &operator << (ostream &os, const Token &object) {
2431
 
  object.print (os);
2432
 
  return os;
2433
 
}
2434
 
 
2435
 
} // namespace Puma
2436
 
 
2437
 
#endif /* __Token_h__ */
2438
 
 
2439
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2440
 
using namespace Puma;
2441
 
 
2442
 
namespace Puma {
2443
 
  
2444
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2445
 
 
2446
 
}
2447
 
 
2448
 
 
2449
 
#line 2450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2450
 
class WinImportHandler;
2451
 
class WinMacros;
2452
 
class CMatchSyntax;
2453
 
class ExtGnu;
2454
 
class ExtAC;
2455
 
class ExtACBuilderCoupling;
2456
 
class ExtACSyntaxCoupling;
2457
 
class ExtACTree;
2458
 
class ExtACKeywords;
2459
 
class WinAsm;
2460
 
class WinDeclSpecs;
2461
 
class WinMemberExplSpec;
2462
 
class WinTypeKeywords;
2463
 
class PragmaOnceUnitState;
2464
 
class PragmaOnce;
2465
 
class CCExprResolve;
2466
 
class CExprResolve;
2467
 
 
2468
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2469
 
class WinIfExists {
2470
 
#line 2471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2471
 
 
2472
 
public:
2473
 
  static WinIfExists *aspectof () {
2474
 
    static WinIfExists __instance;
2475
 
    return &__instance;
2476
 
  }
2477
 
  static WinIfExists *aspectOf () {
2478
 
    return aspectof ();
2479
 
  }
2480
 
private:
2481
 
 
2482
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2483
 
 
2484
 
#line 2485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2485
 
  friend class ::WinImportHandler;
2486
 
  friend class ::WinMacros;
2487
 
  friend class ::CMatchSyntax;
2488
 
  friend class ::ExtGnu;
2489
 
  friend class ::ExtAC;
2490
 
  friend class ::ExtACBuilderCoupling;
2491
 
  friend class ::ExtACSyntaxCoupling;
2492
 
  friend class ::ExtACTree;
2493
 
  friend class ::ExtACKeywords;
2494
 
  friend class ::WinAsm;
2495
 
  friend class ::WinDeclSpecs;
2496
 
  friend class ::WinMemberExplSpec;
2497
 
  friend class ::WinTypeKeywords;
2498
 
  friend class ::PragmaOnceUnitState;
2499
 
  friend class ::PragmaOnce;
2500
 
  friend class ::CCExprResolve;
2501
 
  friend class ::CExprResolve;
2502
 
 
2503
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2504
 
 
2505
 
  /********************************************************/
2506
 
  /* Win __if_exists and __if_not_exists                  */
2507
 
  /********************************************************/
2508
 
 
2509
 
  // pointcut definitions
2510
 
  
2511
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2512
 
 
2513
 
 
2514
 
  // structural extensions
2515
 
  
2516
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2517
 
 
2518
 
 
2519
 
  // preprocess __if_exists and __if_not_exists statements
2520
 
  
2521
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2522
 
 
2523
 
public: template<class JoinPoint> void __a0_around 
2524
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2525
 
 
2526
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2527
 
(JoinPoint *tjp)
2528
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2529
 
 {
2530
 
#line 2531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2531
 
 
2532
 
  JoinPoint *&thisJoinPoint = tjp;
2533
 
 
2534
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2535
 
 
2536
 
#line 2537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2537
 
 
2538
 
  typedef typename JoinPoint::That __JP_That;
2539
 
  typedef typename JoinPoint::Target __JP_Target;
2540
 
  typedef typename JoinPoint::Result __JP_Result;
2541
 
 
2542
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2543
 
 
2544
 
    Token *token;
2545
 
    int type;
2546
 
    __JP_That
2547
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2548
 
 *preparser;
2549
 
  
2550
 
        preparser = tjp->that ();
2551
 
    tjp->proceed (); // get the next token
2552
 
    token = *tjp->result ();
2553
 
    if (token) {
2554
 
      type = token->type ();
2555
 
      // __if_exists (...) { ... }
2556
 
      if (type == TOK_IF_EXISTS) {
2557
 
        preparser->skip_up_to (TOK_CLOSE_CURLY);
2558
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
2559
 
                    return;
2560
 
        // __if_not_exists (...) { ... }
2561
 
      } else if (type == TOK_IF_NOT_EXISTS) {
2562
 
        preparser->skip_up_to (TOK_OPEN_CURLY);
2563
 
        preparser->_depth.push (1);
2564
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
2565
 
                    return;
2566
 
      }
2567
 
      // skip closing `}' of __if_not_exists
2568
 
      if (preparser->_depth.length ()) {
2569
 
        if (type == TOK_OPEN_CURLY) 
2570
 
          preparser->_depth.top () = preparser->_depth.top () + 1;
2571
 
        else if (type == TOK_CLOSE_CURLY) { 
2572
 
          preparser->_depth.top () = preparser->_depth.top () - 1;
2573
 
                    if (preparser->_depth.top () == 0) {
2574
 
                  preparser->_depth.pop ();
2575
 
                  *(Token**)thisJoinPoint->result () = preparser->next ();
2576
 
                  return;
2577
 
                    }
2578
 
        }
2579
 
      }
2580
 
    }
2581
 
  }
2582
 
#line 2583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2583
 
 
2584
 
private:
2585
 
 
2586
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2587
 
 
2588
 
 
2589
 
protected:
2590
 
  WinIfExists () {}
2591
 
};
2592
 
#line 2593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2593
 
 
2594
 
namespace AC {
2595
 
  template <class JoinPoint>
2596
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
2597
 
    ::WinIfExists::aspectof()->__a0_around (tjp);
2598
 
  }
2599
 
2600
 
 
2601
 
#line 88 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2602
 
 
2603
 
 
2604
 
namespace Puma {
2605
 
  
2606
 
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2607
 
 
2608
 
    
2609
 
  // skip __if_exists resp. __if_not_exists statement
2610
 
  
2611
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2612
 
 
2613
 
}
2614
 
 
2615
 
#endif /* __WinIfExists__ */
2616
 
 
2617
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
2618
 
// This file is part of PUMA.
2619
 
// Copyright (C) 1999-2003  The PUMA developer team.
2620
 
//                                                                
2621
 
// This program is free software;  you can redistribute it and/or 
2622
 
// modify it under the terms of the GNU General Public License as 
2623
 
// published by the Free Software Foundation; either version 2 of 
2624
 
// the License, or (at your option) any later version.            
2625
 
//                                                                
2626
 
// This program is distributed in the hope that it will be useful,
2627
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2628
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2629
 
// GNU General Public License for more details.                   
2630
 
//                                                                
2631
 
// You should have received a copy of the GNU General Public      
2632
 
// License along with this program; if not, write to the Free     
2633
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2634
 
// MA  02111-1307  USA                                            
2635
 
 
2636
 
#ifndef __WinImportHandler__
2637
 
#define __WinImportHandler__
2638
 
 
2639
 
/********************************************************/
2640
 
/* Win #import directive support                        */
2641
 
/********************************************************/
2642
 
 
2643
 
 
2644
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
2645
 
// This file is part of PUMA.
2646
 
// Copyright (C) 1999-2003  The PUMA developer team.
2647
 
//                                                                
2648
 
// This program is free software;  you can redistribute it and/or 
2649
 
// modify it under the terms of the GNU General Public License as 
2650
 
// published by the Free Software Foundation; either version 2 of 
2651
 
// the License, or (at your option) any later version.            
2652
 
//                                                                
2653
 
// This program is distributed in the hope that it will be useful,
2654
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2655
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2656
 
// GNU General Public License for more details.                   
2657
 
//                                                                
2658
 
// You should have received a copy of the GNU General Public      
2659
 
// License along with this program; if not, write to the Free     
2660
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2661
 
// MA  02111-1307  USA                                            
2662
 
 
2663
 
#ifndef __Config_h__
2664
 
#define __Config_h__
2665
 
 
2666
 
// Class Config provides evaluation of configuration 
2667
 
// information from file or command line.
2668
 
 
2669
 
 
2670
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
2671
 
// This file is part of PUMA.
2672
 
// Copyright (C) 1999-2003  The PUMA developer team.
2673
 
//                                                                
2674
 
// This program is free software;  you can redistribute it and/or 
2675
 
// modify it under the terms of the GNU General Public License as 
2676
 
// published by the Free Software Foundation; either version 2 of 
2677
 
// the License, or (at your option) any later version.            
2678
 
//                                                                
2679
 
// This program is distributed in the hope that it will be useful,
2680
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2681
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2682
 
// GNU General Public License for more details.                   
2683
 
//                                                                
2684
 
// You should have received a copy of the GNU General Public      
2685
 
// License along with this program; if not, write to the Free     
2686
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2687
 
// MA  02111-1307  USA                                            
2688
 
 
2689
 
#ifndef __Flags_h__
2690
 
#define __Flags_h__
2691
 
 
2692
 
namespace Puma {
2693
 
 
2694
 
 
2695
 
 
2696
 
#line 2697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2697
 
} // closed Puma
2698
 
class WinIfExists;
2699
 
class WinImportHandler;
2700
 
class WinMacros;
2701
 
class CMatchSyntax;
2702
 
class ExtGnu;
2703
 
class ExtAC;
2704
 
class ExtACBuilderCoupling;
2705
 
class ExtACSyntaxCoupling;
2706
 
class ExtACTree;
2707
 
class ExtACKeywords;
2708
 
class WinAsm;
2709
 
class WinDeclSpecs;
2710
 
class WinMemberExplSpec;
2711
 
class WinTypeKeywords;
2712
 
class PragmaOnceUnitState;
2713
 
class PragmaOnce;
2714
 
class CCExprResolve;
2715
 
class CExprResolve;
2716
 
namespace Puma {
2717
 
 
2718
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
2719
 
class Flags {
2720
 
#line 2721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2721
 
  friend class ::WinIfExists;
2722
 
  friend class ::WinImportHandler;
2723
 
  friend class ::WinMacros;
2724
 
  friend class ::CMatchSyntax;
2725
 
  friend class ::ExtGnu;
2726
 
  friend class ::ExtAC;
2727
 
  friend class ::ExtACBuilderCoupling;
2728
 
  friend class ::ExtACSyntaxCoupling;
2729
 
  friend class ::ExtACTree;
2730
 
  friend class ::ExtACKeywords;
2731
 
  friend class ::WinAsm;
2732
 
  friend class ::WinDeclSpecs;
2733
 
  friend class ::WinMemberExplSpec;
2734
 
  friend class ::WinTypeKeywords;
2735
 
  friend class ::PragmaOnceUnitState;
2736
 
  friend class ::PragmaOnce;
2737
 
  friend class ::CCExprResolve;
2738
 
  friend class ::CExprResolve;
2739
 
 
2740
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
2741
 
 
2742
 
public:
2743
 
  enum Flag {
2744
 
    NONE                       = 0x0,
2745
 
    
2746
 
    SKIP_FCT_BODY              = 0x1,
2747
 
    SKIP_INITS                 = 0x2,
2748
 
    
2749
 
    // GNU extensions
2750
 
    GNU_NESTED_FCT             = 0x4,
2751
 
    GNU_CONDITION_SCOPE        = 0x8,
2752
 
    GNU_PARAM_DECL             = 0x10,
2753
 
    GNU_FCT_DECL               = 0x20,
2754
 
    GNU_PARAM_SCOPE            = 0x40,
2755
 
    GNU_DEFAULT_ARGS           = 0x80,
2756
 
    GNU_EXTENDED_ASM           = 0x100,
2757
 
    GNU_EXTENDED_EXPR          = 0x200,
2758
 
    GNU_LONG_LONG              = 0x400,
2759
 
    GNU_NAME_SCOPE             = 0x800, 
2760
 
    GNU_IMPLICIT_INT           = 0x1000,
2761
 
    GNU_FCT_ATTRIBUTE          = 0x2000,
2762
 
    GNU_IF_THEN_EXPR           = 0x4000
2763
 
  };
2764
 
  
2765
 
private:
2766
 
  Flag _Flags;
2767
 
  
2768
 
public:
2769
 
  Flags ();
2770
 
  Flags (const Flags &);
2771
 
  Flags &operator =(const Flags &);
2772
 
 
2773
 
  // add/remove flag
2774
 
  Flags &operator +=(Flag);
2775
 
  Flags &operator -=(Flag);
2776
 
  
2777
 
  // test for flag
2778
 
  bool operator ==(Flag) const;
2779
 
  bool operator !=(Flag) const;
2780
 
};
2781
 
 
2782
 
inline Flags::Flags () : _Flags (NONE) 
2783
 
 {}
2784
 
inline Flags::Flags (const Flags &f)
2785
 
 { _Flags = f._Flags; }
2786
 
inline Flags &Flags::operator =(const Flags &f)
2787
 
 { _Flags = f._Flags; return *(Flags*)this; }
2788
 
 
2789
 
inline Flags &Flags::operator +=(Flags::Flag f)
2790
 
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
2791
 
inline Flags &Flags::operator -=(Flags::Flag f)
2792
 
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
2793
 
 
2794
 
inline bool Flags::operator ==(Flags::Flag f) const
2795
 
 { return _Flags & f; }
2796
 
inline bool Flags::operator !=(Flags::Flag f) const
2797
 
 { return ! (_Flags & f); }
2798
 
 
2799
 
 
2800
 
} // namespace Puma
2801
 
 
2802
 
#endif /* __Flags_h__ */
2803
 
 
2804
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2805
 
// This file is part of PUMA.
2806
 
// Copyright (C) 1999-2003  The PUMA developer team.
2807
 
//                                                                
2808
 
// This program is free software;  you can redistribute it and/or 
2809
 
// modify it under the terms of the GNU General Public License as 
2810
 
// published by the Free Software Foundation; either version 2 of 
2811
 
// the License, or (at your option) any later version.            
2812
 
//                                                                
2813
 
// This program is distributed in the hope that it will be useful,
2814
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2815
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2816
 
// GNU General Public License for more details.                   
2817
 
//                                                                
2818
 
// You should have received a copy of the GNU General Public      
2819
 
// License along with this program; if not, write to the Free     
2820
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2821
 
// MA  02111-1307  USA                                            
2822
 
 
2823
 
#ifndef __ConfOption_h__
2824
 
#define __ConfOption_h__
2825
 
 
2826
 
 
2827
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2828
 
#include <stdlib.h>
2829
 
 
2830
 
namespace Puma {
2831
 
 
2832
 
 
2833
 
 
2834
 
#line 2835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2835
 
} // closed Puma
2836
 
class WinIfExists;
2837
 
class WinImportHandler;
2838
 
class WinMacros;
2839
 
class CMatchSyntax;
2840
 
class ExtGnu;
2841
 
class ExtAC;
2842
 
class ExtACBuilderCoupling;
2843
 
class ExtACSyntaxCoupling;
2844
 
class ExtACTree;
2845
 
class ExtACKeywords;
2846
 
class WinAsm;
2847
 
class WinDeclSpecs;
2848
 
class WinMemberExplSpec;
2849
 
class WinTypeKeywords;
2850
 
class PragmaOnceUnitState;
2851
 
class PragmaOnce;
2852
 
class CCExprResolve;
2853
 
class CExprResolve;
2854
 
namespace Puma {
2855
 
 
2856
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2857
 
class ConfOption {
2858
 
#line 2859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2859
 
  friend class ::WinIfExists;
2860
 
  friend class ::WinImportHandler;
2861
 
  friend class ::WinMacros;
2862
 
  friend class ::CMatchSyntax;
2863
 
  friend class ::ExtGnu;
2864
 
  friend class ::ExtAC;
2865
 
  friend class ::ExtACBuilderCoupling;
2866
 
  friend class ::ExtACSyntaxCoupling;
2867
 
  friend class ::ExtACTree;
2868
 
  friend class ::ExtACKeywords;
2869
 
  friend class ::WinAsm;
2870
 
  friend class ::WinDeclSpecs;
2871
 
  friend class ::WinMemberExplSpec;
2872
 
  friend class ::WinTypeKeywords;
2873
 
  friend class ::PragmaOnceUnitState;
2874
 
  friend class ::PragmaOnce;
2875
 
  friend class ::CCExprResolve;
2876
 
  friend class ::CExprResolve;
2877
 
 
2878
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2879
 
 
2880
 
  const char *_name;
2881
 
  Array<const char *> _args;
2882
 
  
2883
 
public:
2884
 
  ConfOption (const char *);
2885
 
  ConfOption (const char *, const char *);
2886
 
  ConfOption (const char *, const char *, const char *);
2887
 
  ~ConfOption ();
2888
 
  
2889
 
  const char *Name () const;
2890
 
  unsigned Arguments () const;
2891
 
  const char *Argument (unsigned) const;
2892
 
  
2893
 
  void addArgument (const char *);
2894
 
};
2895
 
 
2896
 
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
2897
 
 { _name = StrCol::dup (n); }
2898
 
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
2899
 
 { _name = StrCol::dup (n); addArgument (a1); }
2900
 
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
2901
 
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
2902
 
 
2903
 
inline ConfOption::~ConfOption ()
2904
 
 { delete[] _name; 
2905
 
   for (unsigned i = 0; i < Arguments (); i++) 
2906
 
     delete[] Argument (i);
2907
 
 }
2908
 
 
2909
 
inline const char *ConfOption::Name () const 
2910
 
 { return _name; }
2911
 
inline unsigned ConfOption::Arguments () const
2912
 
 { return _args.length (); }
2913
 
inline const char *ConfOption::Argument (unsigned i) const
2914
 
 { return _args.lookup (i); }
2915
 
  
2916
 
inline void ConfOption::addArgument (const char *a) 
2917
 
 { if (a) _args.append (StrCol::dup (a)); }
2918
 
 
2919
 
 
2920
 
} // namespace Puma
2921
 
 
2922
 
#endif /* __ConfOption_h__ */
2923
 
 
2924
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
2925
 
// This file is part of PUMA.
2926
 
// Copyright (C) 1999-2003  The PUMA developer team.
2927
 
//                                                                
2928
 
// This program is free software;  you can redistribute it and/or 
2929
 
// modify it under the terms of the GNU General Public License as 
2930
 
// published by the Free Software Foundation; either version 2 of 
2931
 
// the License, or (at your option) any later version.            
2932
 
//                                                                
2933
 
// This program is distributed in the hope that it will be useful,
2934
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2935
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2936
 
// GNU General Public License for more details.                   
2937
 
//                                                                
2938
 
// You should have received a copy of the GNU General Public      
2939
 
// License along with this program; if not, write to the Free     
2940
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2941
 
// MA  02111-1307  USA                                            
2942
 
 
2943
 
#ifndef __error_stream_h__
2944
 
#define __error_stream_h__
2945
 
 
2946
 
// An ErrorStream is a special ErrorSink that prints out an error message
2947
 
// as soon as it complete. It also stores the maximum error severity.
2948
 
// The ErrorStream can be reset to it's initial state.
2949
 
 
2950
 
#include <sstream>
2951
 
 
2952
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2953
 
// This file is part of PUMA.
2954
 
// Copyright (C) 1999-2003  The PUMA developer team.
2955
 
//                                                                
2956
 
// This program is free software;  you can redistribute it and/or 
2957
 
// modify it under the terms of the GNU General Public License as 
2958
 
// published by the Free Software Foundation; either version 2 of 
2959
 
// the License, or (at your option) any later version.            
2960
 
//                                                                
2961
 
// This program is distributed in the hope that it will be useful,
2962
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2963
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2964
 
// GNU General Public License for more details.                   
2965
 
//                                                                
2966
 
// You should have received a copy of the GNU General Public      
2967
 
// License along with this program; if not, write to the Free     
2968
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2969
 
// MA  02111-1307  USA                                            
2970
 
 
2971
 
#ifndef __error_sink_h__
2972
 
#define __error_sink_h__
2973
 
 
2974
 
// This is an interface for classes that may be used to consume error
2975
 
// messages during a process where many errors can occur like parsing
2976
 
// a program.
2977
 
// The error information is handed over to the ErrorSink in stream-like
2978
 
// style. Different severities of errors are predefined and can be used
2979
 
// to classify error information that follows. Also a location can be
2980
 
// handed over to the ErrorSink to specify where the error was found
2981
 
// (filename, line, etc.). The error information itself can be of any
2982
 
// standard data type or anything that is "Printable".
2983
 
// Specializations of this class could either build and print error
2984
 
// messages or collect them for a later processing.
2985
 
 
2986
 
 
2987
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2988
 
// This file is part of PUMA.
2989
 
// Copyright (C) 1999-2003  The PUMA developer team.
2990
 
//                                                                
2991
 
// This program is free software;  you can redistribute it and/or 
2992
 
// modify it under the terms of the GNU General Public License as 
2993
 
// published by the Free Software Foundation; either version 2 of 
2994
 
// the License, or (at your option) any later version.            
2995
 
//                                                                
2996
 
// This program is distributed in the hope that it will be useful,
2997
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2998
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2999
 
// GNU General Public License for more details.                   
3000
 
//                                                                
3001
 
// You should have received a copy of the GNU General Public      
3002
 
// License along with this program; if not, write to the Free     
3003
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3004
 
// MA  02111-1307  USA                                            
3005
 
 
3006
 
#ifndef __error_severity_h__
3007
 
#define __error_severity_h__
3008
 
 
3009
 
// Severity of errors: represented by a short integer and a text
3010
 
 
3011
 
namespace Puma {
3012
 
 
3013
 
 
3014
 
 
3015
 
#line 3016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3016
 
} // closed Puma
3017
 
class WinIfExists;
3018
 
class WinImportHandler;
3019
 
class WinMacros;
3020
 
class CMatchSyntax;
3021
 
class ExtGnu;
3022
 
class ExtAC;
3023
 
class ExtACBuilderCoupling;
3024
 
class ExtACSyntaxCoupling;
3025
 
class ExtACTree;
3026
 
class ExtACKeywords;
3027
 
class WinAsm;
3028
 
class WinDeclSpecs;
3029
 
class WinMemberExplSpec;
3030
 
class WinTypeKeywords;
3031
 
class PragmaOnceUnitState;
3032
 
class PragmaOnce;
3033
 
class CCExprResolve;
3034
 
class CExprResolve;
3035
 
namespace Puma {
3036
 
 
3037
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3038
 
class ErrorSeverity {
3039
 
#line 3040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3040
 
  friend class ::WinIfExists;
3041
 
  friend class ::WinImportHandler;
3042
 
  friend class ::WinMacros;
3043
 
  friend class ::CMatchSyntax;
3044
 
  friend class ::ExtGnu;
3045
 
  friend class ::ExtAC;
3046
 
  friend class ::ExtACBuilderCoupling;
3047
 
  friend class ::ExtACSyntaxCoupling;
3048
 
  friend class ::ExtACTree;
3049
 
  friend class ::ExtACKeywords;
3050
 
  friend class ::WinAsm;
3051
 
  friend class ::WinDeclSpecs;
3052
 
  friend class ::WinMemberExplSpec;
3053
 
  friend class ::WinTypeKeywords;
3054
 
  friend class ::PragmaOnceUnitState;
3055
 
  friend class ::PragmaOnce;
3056
 
  friend class ::CCExprResolve;
3057
 
  friend class ::CExprResolve;
3058
 
 
3059
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3060
 
 
3061
 
  unsigned short _severity;
3062
 
  const char *_text;
3063
 
 
3064
 
public:
3065
 
  ErrorSeverity (unsigned short s = 0, const char* t = (const char*)0) :
3066
 
    _severity (s), _text (t) {}
3067
 
  ErrorSeverity (const ErrorSeverity &s) :
3068
 
    _severity (s._severity), _text (s._text) {}
3069
 
  ErrorSeverity &operator =(const ErrorSeverity &s) 
3070
 
    { _severity = s._severity; _text = s._text; return *this; }
3071
 
 
3072
 
  int operator < (const ErrorSeverity &s) const
3073
 
   { return _severity < s._severity; }
3074
 
  int operator > (const ErrorSeverity &s) const
3075
 
   { return _severity > s._severity; }
3076
 
  int operator <= (const ErrorSeverity &s) const
3077
 
   { return _severity < s._severity || _severity == s._severity; }
3078
 
  int operator >= (const ErrorSeverity &s) const
3079
 
   { return _severity > s._severity || _severity == s._severity; }
3080
 
  int operator == (const ErrorSeverity &s) const
3081
 
   { return _severity == s._severity; }
3082
 
  int operator != (const ErrorSeverity &s) const
3083
 
   { return _severity != s._severity; }
3084
 
  const char *text () const
3085
 
   { return _text; }
3086
 
};
3087
 
 
3088
 
extern const ErrorSeverity sev_none;
3089
 
extern const ErrorSeverity sev_message;
3090
 
extern const ErrorSeverity sev_warning;
3091
 
extern const ErrorSeverity sev_error;
3092
 
extern const ErrorSeverity sev_fatal;
3093
 
      
3094
 
 
3095
 
} // namespace Puma
3096
 
 
3097
 
#endif /* __error_severity_h__ */
3098
 
 
3099
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3100
 
namespace Puma {
3101
 
 
3102
 
 
3103
 
 
3104
 
#line 3105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3105
 
} // closed Puma
3106
 
class WinIfExists;
3107
 
class WinImportHandler;
3108
 
class WinMacros;
3109
 
class CMatchSyntax;
3110
 
class ExtGnu;
3111
 
class ExtAC;
3112
 
class ExtACBuilderCoupling;
3113
 
class ExtACSyntaxCoupling;
3114
 
class ExtACTree;
3115
 
class ExtACKeywords;
3116
 
class WinAsm;
3117
 
class WinDeclSpecs;
3118
 
class WinMemberExplSpec;
3119
 
class WinTypeKeywords;
3120
 
class PragmaOnceUnitState;
3121
 
class PragmaOnce;
3122
 
class CCExprResolve;
3123
 
class CExprResolve;
3124
 
namespace Puma {
3125
 
 
3126
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2146
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2147
namespace Puma {
 
2148
 
 
2149
 
 
2150
 
 
2151
#line 2152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2152
} // closed Puma
 
2153
class CCExprResolve;
 
2154
class CExprResolve;
 
2155
class WinIfExists;
 
2156
class WinImportHandler;
 
2157
class WinMacros;
 
2158
class WinAsm;
 
2159
class WinDeclSpecs;
 
2160
class WinMemberExplSpec;
 
2161
class WinTypeKeywords;
 
2162
class WinFriend;
 
2163
class ExtAC;
 
2164
class ExtACBuilderCoupling;
 
2165
class ExtACSyntaxCoupling;
 
2166
class ExtACTree;
 
2167
class ExtACKeywords;
 
2168
class ExtGnu;
 
2169
class PragmaOnceUnitState;
 
2170
class PragmaOnce;
 
2171
class CMatchSyntax;
 
2172
namespace Puma {
 
2173
 
 
2174
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3127
2175
class ErrorSink {
3128
 
#line 3129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2176
#line 2177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2177
  friend class ::CCExprResolve;
 
2178
  friend class ::CExprResolve;
3129
2179
  friend class ::WinIfExists;
3130
2180
  friend class ::WinImportHandler;
3131
2181
  friend class ::WinMacros;
3132
 
  friend class ::CMatchSyntax;
3133
 
  friend class ::ExtGnu;
 
2182
  friend class ::WinAsm;
 
2183
  friend class ::WinDeclSpecs;
 
2184
  friend class ::WinMemberExplSpec;
 
2185
  friend class ::WinTypeKeywords;
 
2186
  friend class ::WinFriend;
3134
2187
  friend class ::ExtAC;
3135
2188
  friend class ::ExtACBuilderCoupling;
3136
2189
  friend class ::ExtACSyntaxCoupling;
3137
2190
  friend class ::ExtACTree;
3138
2191
  friend class ::ExtACKeywords;
3139
 
  friend class ::WinAsm;
3140
 
  friend class ::WinDeclSpecs;
3141
 
  friend class ::WinMemberExplSpec;
3142
 
  friend class ::WinTypeKeywords;
 
2192
  friend class ::ExtGnu;
3143
2193
  friend class ::PragmaOnceUnitState;
3144
2194
  friend class ::PragmaOnce;
3145
 
  friend class ::CCExprResolve;
3146
 
  friend class ::CExprResolve;
 
2195
  friend class ::CMatchSyntax;
3147
2196
 
3148
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2197
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3149
2198
 
3150
2199
public:
3151
2200
  virtual ~ErrorSink () {}
3170
2219
 
3171
2220
#endif /* __error_sink_h__ */
3172
2221
 
3173
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
2222
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
3174
2223
using namespace std;
3175
2224
 
3176
2225
namespace Puma {
3177
2226
 
3178
2227
 
3179
2228
 
3180
 
#line 3181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2229
#line 2230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3181
2230
} // closed Puma
 
2231
class CCExprResolve;
 
2232
class CExprResolve;
3182
2233
class WinIfExists;
3183
2234
class WinImportHandler;
3184
2235
class WinMacros;
3185
 
class CMatchSyntax;
3186
 
class ExtGnu;
 
2236
class WinAsm;
 
2237
class WinDeclSpecs;
 
2238
class WinMemberExplSpec;
 
2239
class WinTypeKeywords;
 
2240
class WinFriend;
3187
2241
class ExtAC;
3188
2242
class ExtACBuilderCoupling;
3189
2243
class ExtACSyntaxCoupling;
3190
2244
class ExtACTree;
3191
2245
class ExtACKeywords;
3192
 
class WinAsm;
3193
 
class WinDeclSpecs;
3194
 
class WinMemberExplSpec;
3195
 
class WinTypeKeywords;
 
2246
class ExtGnu;
3196
2247
class PragmaOnceUnitState;
3197
2248
class PragmaOnce;
3198
 
class CCExprResolve;
3199
 
class CExprResolve;
 
2249
class CMatchSyntax;
3200
2250
namespace Puma {
3201
2251
 
3202
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
2252
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
3203
2253
class ErrorStream : public ErrorSink {
3204
 
#line 3205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2254
#line 2255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2255
  friend class ::CCExprResolve;
 
2256
  friend class ::CExprResolve;
3205
2257
  friend class ::WinIfExists;
3206
2258
  friend class ::WinImportHandler;
3207
2259
  friend class ::WinMacros;
3208
 
  friend class ::CMatchSyntax;
3209
 
  friend class ::ExtGnu;
 
2260
  friend class ::WinAsm;
 
2261
  friend class ::WinDeclSpecs;
 
2262
  friend class ::WinMemberExplSpec;
 
2263
  friend class ::WinTypeKeywords;
 
2264
  friend class ::WinFriend;
3210
2265
  friend class ::ExtAC;
3211
2266
  friend class ::ExtACBuilderCoupling;
3212
2267
  friend class ::ExtACSyntaxCoupling;
3213
2268
  friend class ::ExtACTree;
3214
2269
  friend class ::ExtACKeywords;
3215
 
  friend class ::WinAsm;
3216
 
  friend class ::WinDeclSpecs;
3217
 
  friend class ::WinMemberExplSpec;
3218
 
  friend class ::WinTypeKeywords;
 
2270
  friend class ::ExtGnu;
3219
2271
  friend class ::PragmaOnceUnitState;
3220
2272
  friend class ::PragmaOnce;
3221
 
  friend class ::CCExprResolve;
3222
 
  friend class ::CExprResolve;
 
2273
  friend class ::CMatchSyntax;
3223
2274
 
3224
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
2275
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
3225
2276
 
3226
2277
  ostream *_ostream;
3227
2278
  ErrorSeverity _max_severity;
3264
2315
 
3265
2316
#endif /* __error_stream_h__ */
3266
2317
 
3267
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
2318
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3268
2319
// This file is part of PUMA.
3269
2320
// Copyright (C) 1999-2003  The PUMA developer team.
3270
2321
//                                                                
3287
2338
#define __OptsParser_h__
3288
2339
 
3289
2340
 
3290
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
2341
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
3291
2342
// This file is part of PUMA.
3292
2343
// Copyright (C) 1999-2003  The PUMA developer team.
3293
2344
//                                                                
3310
2361
#define __SimpleParser_h__
3311
2362
 
3312
2363
 
3313
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
2364
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
3314
2365
#include <vector>
3315
2366
using namespace std;
3316
2367
 
3317
2368
namespace Puma {
3318
2369
 
3319
2370
 
 
2371
/** 
 
2372
 * Simple string parser. 
 
2373
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
2374
 */
3320
2375
 
3321
 
#line 3322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2376
#line 2377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3322
2377
} // closed Puma
 
2378
class CCExprResolve;
 
2379
class CExprResolve;
3323
2380
class WinIfExists;
3324
2381
class WinImportHandler;
3325
2382
class WinMacros;
3326
 
class CMatchSyntax;
3327
 
class ExtGnu;
 
2383
class WinAsm;
 
2384
class WinDeclSpecs;
 
2385
class WinMemberExplSpec;
 
2386
class WinTypeKeywords;
 
2387
class WinFriend;
3328
2388
class ExtAC;
3329
2389
class ExtACBuilderCoupling;
3330
2390
class ExtACSyntaxCoupling;
3331
2391
class ExtACTree;
3332
2392
class ExtACKeywords;
3333
 
class WinAsm;
3334
 
class WinDeclSpecs;
3335
 
class WinMemberExplSpec;
3336
 
class WinTypeKeywords;
 
2393
class ExtGnu;
3337
2394
class PragmaOnceUnitState;
3338
2395
class PragmaOnce;
3339
 
class CCExprResolve;
3340
 
class CExprResolve;
 
2396
class CMatchSyntax;
3341
2397
namespace Puma {
3342
2398
 
3343
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
2399
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
3344
2400
class SimpleParser {
3345
 
#line 3346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2401
#line 2402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2402
  friend class ::CCExprResolve;
 
2403
  friend class ::CExprResolve;
3346
2404
  friend class ::WinIfExists;
3347
2405
  friend class ::WinImportHandler;
3348
2406
  friend class ::WinMacros;
3349
 
  friend class ::CMatchSyntax;
3350
 
  friend class ::ExtGnu;
 
2407
  friend class ::WinAsm;
 
2408
  friend class ::WinDeclSpecs;
 
2409
  friend class ::WinMemberExplSpec;
 
2410
  friend class ::WinTypeKeywords;
 
2411
  friend class ::WinFriend;
3351
2412
  friend class ::ExtAC;
3352
2413
  friend class ::ExtACBuilderCoupling;
3353
2414
  friend class ::ExtACSyntaxCoupling;
3354
2415
  friend class ::ExtACTree;
3355
2416
  friend class ::ExtACKeywords;
3356
 
  friend class ::WinAsm;
3357
 
  friend class ::WinDeclSpecs;
3358
 
  friend class ::WinMemberExplSpec;
3359
 
  friend class ::WinTypeKeywords;
 
2417
  friend class ::ExtGnu;
3360
2418
  friend class ::PragmaOnceUnitState;
3361
2419
  friend class ::PragmaOnce;
3362
 
  friend class ::CCExprResolve;
3363
 
  friend class ::CExprResolve;
 
2420
  friend class ::CMatchSyntax;
3364
2421
 
3365
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
2422
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
3366
2423
 
3367
2424
public:
3368
 
  SimpleParser() {}
3369
 
  ~SimpleParser() {}
3370
 
   
3371
 
  static int tokenize (const string &, vector<string> &, 
3372
 
                       const string &delimiters = " ");
3373
 
  static string strip (const string &);
 
2425
  /**
 
2426
   * Remove enclosing double-quotes from a string.
 
2427
   * \param str The string to strip.
 
2428
   * \return String without the enclosing double-quotes.
 
2429
   */
 
2430
  static string strip (const string& str);
 
2431
  /**
 
2432
   * Splits a given string into tokens recognized by the given delimiters.
 
2433
   * \param str The string to split.
 
2434
   * \param tokens A vector for the tokens.
 
2435
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
2436
   * \return Number of recognized tokens.
 
2437
   */
 
2438
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
2439
 
 
2440
private:
 
2441
  /**
 
2442
   * Get the position of the next token.
 
2443
   * \param line The string to tokenize.
 
2444
   * \param delimiters A string with the token delimiters.
 
2445
   * \param pos The current position in the string.
 
2446
   * \param lastPos The last position in the string.
 
2447
   * \return The position of the next token.
 
2448
   */
 
2449
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
2450
  /**
 
2451
   * Get the begin of the next token.
 
2452
   * \param line The string to tokenize.
 
2453
   * \param delimiters A string with the token delimiters.
 
2454
   * \param pos The current position in the string.
 
2455
   * \return The begin of the next token.
 
2456
   */
 
2457
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
2458
  /**
 
2459
   * Get the end of the next token.
 
2460
   * \param line The string to tokenize.
 
2461
   * \param delimiters A string with the token delimiters.
 
2462
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
2463
   * \return The end of the next token.
 
2464
   */
 
2465
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
3374
2466
};
3375
2467
 
3376
2468
 
3378
2470
 
3379
2471
#endif /* __SimpleParser_h__ */
3380
2472
 
3381
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
2473
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3382
2474
using namespace std;
3383
2475
 
3384
2476
namespace Puma {
3385
2477
 
3386
2478
 
 
2479
/** \brief The %Options %Parser searches command line parameters for options and
 
2480
 *  handles their option arguments, if applicable.
 
2481
 */
3387
2482
 
3388
 
#line 3389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2483
#line 2484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3389
2484
} // closed Puma
 
2485
class CCExprResolve;
 
2486
class CExprResolve;
3390
2487
class WinIfExists;
3391
2488
class WinImportHandler;
3392
2489
class WinMacros;
3393
 
class CMatchSyntax;
3394
 
class ExtGnu;
 
2490
class WinAsm;
 
2491
class WinDeclSpecs;
 
2492
class WinMemberExplSpec;
 
2493
class WinTypeKeywords;
 
2494
class WinFriend;
3395
2495
class ExtAC;
3396
2496
class ExtACBuilderCoupling;
3397
2497
class ExtACSyntaxCoupling;
3398
2498
class ExtACTree;
3399
2499
class ExtACKeywords;
3400
 
class WinAsm;
3401
 
class WinDeclSpecs;
3402
 
class WinMemberExplSpec;
3403
 
class WinTypeKeywords;
 
2500
class ExtGnu;
3404
2501
class PragmaOnceUnitState;
3405
2502
class PragmaOnce;
3406
 
class CCExprResolve;
3407
 
class CExprResolve;
 
2503
class CMatchSyntax;
3408
2504
namespace Puma {
3409
2505
 
3410
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
2506
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3411
2507
class OptsParser : public SimpleParser {
3412
 
#line 3413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2508
#line 2509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2509
  friend class ::CCExprResolve;
 
2510
  friend class ::CExprResolve;
3413
2511
  friend class ::WinIfExists;
3414
2512
  friend class ::WinImportHandler;
3415
2513
  friend class ::WinMacros;
3416
 
  friend class ::CMatchSyntax;
3417
 
  friend class ::ExtGnu;
 
2514
  friend class ::WinAsm;
 
2515
  friend class ::WinDeclSpecs;
 
2516
  friend class ::WinMemberExplSpec;
 
2517
  friend class ::WinTypeKeywords;
 
2518
  friend class ::WinFriend;
3418
2519
  friend class ::ExtAC;
3419
2520
  friend class ::ExtACBuilderCoupling;
3420
2521
  friend class ::ExtACSyntaxCoupling;
3421
2522
  friend class ::ExtACTree;
3422
2523
  friend class ::ExtACKeywords;
3423
 
  friend class ::WinAsm;
3424
 
  friend class ::WinDeclSpecs;
3425
 
  friend class ::WinMemberExplSpec;
3426
 
  friend class ::WinTypeKeywords;
 
2524
  friend class ::ExtGnu;
3427
2525
  friend class ::PragmaOnceUnitState;
3428
2526
  friend class ::PragmaOnce;
3429
 
  friend class ::CCExprResolve;
3430
 
  friend class ::CExprResolve;
3431
 
 
3432
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3433
 
 
 
2527
  friend class ::CMatchSyntax;
 
2528
 
 
2529
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
2530
 
 
2531
  
 
2532
  
 
2533
  /** \brief Vector holding the commandline parameters. 
 
2534
   *  
 
2535
   *  This vector is filled in the constructor
 
2536
   */
3434
2537
  vector<string> m_argv;
 
2538
 
 
2539
  /** \brief Position of current parameter analyzed by the 
 
2540
   *  options parser.
 
2541
   */
3435
2542
  unsigned int m_curarg;
 
2543
  
 
2544
  /** \brief The increment added to m_curarg used to get to the next 
 
2545
   *  entry of m_argv which shall be analysed.
 
2546
   */
3436
2547
  unsigned int m_tonext;
 
2548
  
 
2549
  /** \brief %Option number of currently processed element of m_argv
 
2550
   */
3437
2551
  int m_number;
 
2552
  
 
2553
  /** \brief Name of current option
 
2554
   */
 
2555
  string m_opt;
3438
2556
 
 
2557
  /** \brief Value of current option argument
 
2558
   */
3439
2559
  string m_arg;
3440
 
  string m_opt;
 
2560
  
3441
2561
   
3442
2562
public:
3443
2563
  
3444
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
3445
 
  
3446
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
3447
 
  
 
2564
  /** \enum
 
2565
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
2566
   */
 
2567
  enum {
 
2568
     NOARG =-4, /**< %Option has no argument */
 
2569
     ERR = -3, /**< Error when parsing option */
 
2570
     NOOPTION = -2, /**< Command line parameter is not an option */
 
2571
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
2572
     FINISH = 0 /**< All options are handled */
 
2573
  };
 
2574
  
 
2575
  /** \enum
 
2576
   *  Type of argument associated to an option  
 
2577
   */
 
2578
  enum ArgType { 
 
2579
     AT_NONE = 0, /**< %Option receives no argument */
 
2580
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
2581
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
2582
  };
 
2583
  
 
2584
  /** \struct
 
2585
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
2586
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
2587
   */
3448
2588
  struct Option {
3449
 
#line 3450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2589
#line 2590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2590
  friend class ::CCExprResolve;
 
2591
  friend class ::CExprResolve;
3450
2592
  friend class ::WinIfExists;
3451
2593
  friend class ::WinImportHandler;
3452
2594
  friend class ::WinMacros;
3453
 
  friend class ::CMatchSyntax;
3454
 
  friend class ::ExtGnu;
 
2595
  friend class ::WinAsm;
 
2596
  friend class ::WinDeclSpecs;
 
2597
  friend class ::WinMemberExplSpec;
 
2598
  friend class ::WinTypeKeywords;
 
2599
  friend class ::WinFriend;
3455
2600
  friend class ::ExtAC;
3456
2601
  friend class ::ExtACBuilderCoupling;
3457
2602
  friend class ::ExtACSyntaxCoupling;
3458
2603
  friend class ::ExtACTree;
3459
2604
  friend class ::ExtACKeywords;
3460
 
  friend class ::WinAsm;
3461
 
  friend class ::WinDeclSpecs;
3462
 
  friend class ::WinMemberExplSpec;
3463
 
  friend class ::WinTypeKeywords;
 
2605
  friend class ::ExtGnu;
3464
2606
  friend class ::PragmaOnceUnitState;
3465
2607
  friend class ::PragmaOnce;
3466
 
  friend class ::CCExprResolve;
3467
 
  friend class ::CExprResolve;
3468
 
 
3469
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3470
 
 
3471
 
    int number;
3472
 
    char key; 
3473
 
    const char *name;
3474
 
    const char *desc;
3475
 
    ArgType args;
 
2608
  friend class ::CMatchSyntax;
 
2609
 
 
2610
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
2611
 
 
2612
    int number; /**< Number associated with this option */
 
2613
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
2614
    const char *longName; /**< Long namen of this option */
 
2615
    const char *desc; /**< Description of this option **/ 
 
2616
    ArgType argType; /**< Type of argument for this option */
3476
2617
  };
3477
2618
 
3478
2619
private:
 
2620
  /** Pointer to array of available options. This value is set to the value of the 
 
2621
   * parameter passed to the constructor OptsParser::OptsParser()
 
2622
   */
3479
2623
  const Option *m_opts;
3480
2624
   
3481
2625
public:
3482
 
  OptsParser (int, char **, const Option *);
3483
 
  OptsParser (const string &, const Option *);
 
2626
  /** \brief Constructor of OptsParser
 
2627
   *  
 
2628
   *  \param argc Number of parameters to be analyzed
 
2629
   *  \param argv Parameters to be analyzed
 
2630
   *  \param opts Pointer to array of options which shall be
 
2631
   *              recognized by the options parser
 
2632
   *
 
2633
   */
 
2634
  OptsParser (int argc, char **argv, const Option *opts);
 
2635
  
 
2636
  /** \brief Constructor of OptsParser
 
2637
   *  
 
2638
   *  \param line Reference to string with parameters to analyse
 
2639
   *              The paramaters are extracted from the string by splitting it up 
 
2640
   *              into tokens at:
 
2641
   *               - space character
 
2642
   *               - tabs 
 
2643
   *               - newline
 
2644
   *               - carriage return
 
2645
   *  \param opts Pointer to array of options which shall be 
 
2646
   *              recognized by the options parser
 
2647
   */
 
2648
  OptsParser (const string &line, const Option *);
3484
2649
 
3485
 
  int getCurrentArgNum () const;
3486
 
  int getNextArgNum () const;
 
2650
  
 
2651
  /** Get next parameter without modification. 
 
2652
   * No option parsing is done
 
2653
   *
 
2654
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
2655
   */
 
2656
  int getRawOption ();
 
2657
  
 
2658
  /** \brief Get next option
 
2659
   *
 
2660
   * This function processes the next parameter passed to the constructor 
 
2661
   * OptsParser::OptsParser(). 
 
2662
   * That is, search for options and eventually process
 
2663
   * option and option arguement. 
 
2664
   *
 
2665
   * \return Number of option recognized by the options parser or
 
2666
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
2667
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
2668
   *
 
2669
   */
3487
2670
  int getOption ();
 
2671
  
 
2672
  /** \brief Get result of last processed parameter
 
2673
   *
 
2674
   *  The number returned by this function is identical to the number 
 
2675
   *  returned by the last call of OptsParser::getOption
 
2676
   *   
 
2677
   * \return Number of option recognized by the options parser or
 
2678
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
2679
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
2680
   *
 
2681
   */
3488
2682
  int getResult () const;
3489
2683
  
 
2684
  /** \brief Get option argument of last processed parameter
 
2685
   *
 
2686
   *  This function returns the argument of the option processed during 
 
2687
   *  OptsParser::getOption. If the option does not provide any argument
 
2688
   *  the string will be empty.
 
2689
   *
 
2690
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
2691
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
2692
   *  which is no option, of course.
 
2693
   *
 
2694
   *  \return Argument of last processed parameter
 
2695
   */
3490
2696
  const string &getArgument () const;
 
2697
  
 
2698
  /** \brief Get option name of last processed parameter
 
2699
   *
 
2700
   *  If the last processed parameter did not contain an option the string 
 
2701
   *  returned by this function is empty.
 
2702
   *
 
2703
   *  \return Name of last processed parameter
 
2704
   *
 
2705
   */
3491
2706
  const string &getOptionName () const;
 
2707
  
 
2708
  /** \brief Get position of current argument
 
2709
   *
 
2710
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
2711
   *
 
2712
   */
 
2713
  int getCurrentArgNum () const;
 
2714
  
 
2715
  /** \brief Get position of next argument
 
2716
   *
 
2717
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
2718
   *
 
2719
   */
 
2720
  int getNextArgNum () const;
3492
2721
 
3493
 
  bool revokeArgument();
3494
 
   
3495
2722
private:
3496
 
  int  getShortOption (const string &);
3497
 
  int  getLongOption  (const string &);
3498
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
 
2723
  /** Search for an option in m_argv at position m_curarg
 
2724
   *
 
2725
   *  \param arg Currently processed parameter 
 
2726
   */
 
2727
  const Option*  findOption(const string &arg, bool isLong);
 
2728
  
 
2729
  /** Process an option found by OptsParser::findOption(). 
 
2730
   */
 
2731
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
3499
2732
};
3500
2733
 
3501
2734
 
3503
2736
 
3504
2737
#endif /* __OptsParser_h__ */
3505
2738
 
3506
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
2739
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
3507
2740
using namespace std;
3508
2741
 
3509
2742
namespace Puma {
3510
2743
 
3511
2744
 
3512
2745
 
3513
 
#line 3514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2746
#line 2747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3514
2747
} // closed Puma
 
2748
class CCExprResolve;
 
2749
class CExprResolve;
3515
2750
class WinIfExists;
3516
2751
class WinImportHandler;
3517
2752
class WinMacros;
3518
 
class CMatchSyntax;
3519
 
class ExtGnu;
 
2753
class WinAsm;
 
2754
class WinDeclSpecs;
 
2755
class WinMemberExplSpec;
 
2756
class WinTypeKeywords;
 
2757
class WinFriend;
3520
2758
class ExtAC;
3521
2759
class ExtACBuilderCoupling;
3522
2760
class ExtACSyntaxCoupling;
3523
2761
class ExtACTree;
3524
2762
class ExtACKeywords;
3525
 
class WinAsm;
3526
 
class WinDeclSpecs;
3527
 
class WinMemberExplSpec;
3528
 
class WinTypeKeywords;
 
2763
class ExtGnu;
3529
2764
class PragmaOnceUnitState;
3530
2765
class PragmaOnce;
3531
 
class CCExprResolve;
3532
 
class CExprResolve;
 
2766
class CMatchSyntax;
3533
2767
namespace Puma {
3534
2768
 
3535
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
2769
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
3536
2770
class Config {
3537
 
#line 3538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2771
#line 2772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
2772
  friend class ::CCExprResolve;
 
2773
  friend class ::CExprResolve;
3538
2774
  friend class ::WinIfExists;
3539
2775
  friend class ::WinImportHandler;
3540
2776
  friend class ::WinMacros;
3541
 
  friend class ::CMatchSyntax;
3542
 
  friend class ::ExtGnu;
 
2777
  friend class ::WinAsm;
 
2778
  friend class ::WinDeclSpecs;
 
2779
  friend class ::WinMemberExplSpec;
 
2780
  friend class ::WinTypeKeywords;
 
2781
  friend class ::WinFriend;
3543
2782
  friend class ::ExtAC;
3544
2783
  friend class ::ExtACBuilderCoupling;
3545
2784
  friend class ::ExtACSyntaxCoupling;
3546
2785
  friend class ::ExtACTree;
3547
2786
  friend class ::ExtACKeywords;
3548
 
  friend class ::WinAsm;
3549
 
  friend class ::WinDeclSpecs;
3550
 
  friend class ::WinMemberExplSpec;
3551
 
  friend class ::WinTypeKeywords;
 
2787
  friend class ::ExtGnu;
3552
2788
  friend class ::PragmaOnceUnitState;
3553
2789
  friend class ::PragmaOnce;
3554
 
  friend class ::CCExprResolve;
3555
 
  friend class ::CExprResolve;
 
2790
  friend class ::CMatchSyntax;
3556
2791
 
3557
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
 
2792
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
3558
2793
 
3559
2794
  Flags _flags;
3560
2795
  ErrorStream &_err;
3614
2849
private:
3615
2850
  bool Valid (const char *, const char * = (const char *)0) const;
3616
2851
 
3617
 
  bool Process (OptsParser&);
 
2852
  bool Process (OptsParser&, bool unescape = false);
3618
2853
  bool ProcessAssert (const string&);
3619
2854
  bool ProcessDefine (const string&);
3620
2855
  bool ProcessLockMacro (const string&);
3623
2858
  bool ProcessArgument (const string&,const string&);
3624
2859
  bool ProcessPathArgument (const string&,const string&);
3625
2860
 
 
2861
  string Unescape(const string&);
3626
2862
};
3627
2863
 
3628
2864
inline Config::Config (ErrorStream &e) : _err (e)
3664
2900
 
3665
2901
#endif /* __Config_h__ */
3666
2902
 
3667
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3668
 
using namespace Puma;
3669
 
 
3670
 
 
3671
 
 
3672
 
#line 3673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3673
 
class WinIfExists;
3674
 
class WinMacros;
3675
 
class CMatchSyntax;
3676
 
class ExtGnu;
3677
 
class ExtAC;
3678
 
class ExtACBuilderCoupling;
3679
 
class ExtACSyntaxCoupling;
3680
 
class ExtACTree;
3681
 
class ExtACKeywords;
3682
 
class WinAsm;
3683
 
class WinDeclSpecs;
3684
 
class WinMemberExplSpec;
3685
 
class WinTypeKeywords;
3686
 
class PragmaOnceUnitState;
3687
 
class PragmaOnce;
3688
 
class CCExprResolve;
3689
 
class CExprResolve;
3690
 
 
3691
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3692
 
class WinImportHandler {
3693
 
#line 3694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3694
 
 
3695
 
public:
3696
 
  static WinImportHandler *aspectof () {
3697
 
    static WinImportHandler __instance;
3698
 
    return &__instance;
3699
 
  }
3700
 
  static WinImportHandler *aspectOf () {
3701
 
    return aspectof ();
3702
 
  }
3703
 
private:
3704
 
 
3705
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3706
 
 
3707
 
#line 3708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3708
 
  friend class ::WinIfExists;
3709
 
  friend class ::WinMacros;
3710
 
  friend class ::CMatchSyntax;
3711
 
  friend class ::ExtGnu;
3712
 
  friend class ::ExtAC;
3713
 
  friend class ::ExtACBuilderCoupling;
3714
 
  friend class ::ExtACSyntaxCoupling;
3715
 
  friend class ::ExtACTree;
3716
 
  friend class ::ExtACKeywords;
3717
 
  friend class ::WinAsm;
3718
 
  friend class ::WinDeclSpecs;
3719
 
  friend class ::WinMemberExplSpec;
3720
 
  friend class ::WinTypeKeywords;
3721
 
  friend class ::PragmaOnceUnitState;
3722
 
  friend class ::PragmaOnce;
3723
 
  friend class ::CCExprResolve;
3724
 
  friend class ::CExprResolve;
3725
 
 
3726
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3727
 
 
3728
 
  /********************************************************/
3729
 
  /* Win #import directive                                */
3730
 
  /********************************************************/
3731
 
 
3732
 
  // pointcuts
3733
 
  
3734
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3735
 
 
3736
 
  
3737
 
  // add access method for _importHandler data member
3738
 
  
3739
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3740
 
 
3741
 
 
3742
 
  // handle --import-handler option
3743
 
  
3744
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3745
 
 
3746
 
public: template<class JoinPoint> void __a0_before 
3747
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3748
 
 
3749
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3750
 
(JoinPoint *tjp, const Config &config, bool process_includes)
3751
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3752
 
 {
3753
 
#line 3754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3754
 
 
3755
 
  JoinPoint *&thisJoinPoint = tjp;
3756
 
 
3757
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3758
 
 
3759
 
#line 3760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3760
 
 
3761
 
  typedef typename JoinPoint::That __JP_That;
3762
 
  typedef typename JoinPoint::Target __JP_Target;
3763
 
  typedef typename JoinPoint::Result __JP_Result;
3764
 
 
3765
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3766
 
 
3767
 
    const ConfOption *opt;
3768
 
    char *tmp;
3769
 
    
3770
 
    if (process_includes) {
3771
 
      opt = config.Option ("--import-handler");
3772
 
      if (opt && opt->Arguments ()) {
3773
 
        // delete old import handler
3774
 
        if (thisJoinPoint->that ()->_importHandler)
3775
 
          delete[] thisJoinPoint->that ()->_importHandler;
3776
 
        
3777
 
        // get new import handler
3778
 
        tmp = new char[strlen (opt->Argument (0))+1];
3779
 
        strcpy (tmp, opt->Argument (0));
3780
 
        thisJoinPoint->that ()->_importHandler = tmp;
3781
 
      }
3782
 
    }
3783
 
  }
3784
 
#line 3785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3785
 
 
3786
 
private:
3787
 
 
3788
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3789
 
 
3790
 
 
3791
 
protected:
3792
 
  WinImportHandler () {}
3793
 
};
3794
 
#line 3795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3795
 
 
3796
 
namespace AC {
3797
 
  template <class JoinPoint, class Binding>
3798
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
3799
 
    typedef typename Binding::template Arg<0> Arg0;
3800
 
    typedef typename Binding::template Arg<1> Arg1;
3801
 
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
3802
 
  }
3803
 
3804
 
 
3805
 
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3806
 
 
3807
 
 
3808
 
 
3809
 
#endif /* __WinImportHandler__ */
3810
 
 
3811
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
3812
 
// This file is part of PUMA.
3813
 
// Copyright (C) 1999-2003  The PUMA developer team.
3814
 
//                                                                
3815
 
// This program is free software;  you can redistribute it and/or 
3816
 
// modify it under the terms of the GNU General Public License as 
3817
 
// published by the Free Software Foundation; either version 2 of 
3818
 
// the License, or (at your option) any later version.            
3819
 
//                                                                
3820
 
// This program is distributed in the hope that it will be useful,
3821
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3822
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3823
 
// GNU General Public License for more details.                   
3824
 
//                                                                
3825
 
// You should have received a copy of the GNU General Public      
3826
 
// License along with this program; if not, write to the Free     
3827
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3828
 
// MA  02111-1307  USA                                            
3829
 
 
3830
 
#ifndef __PragmaOnce__
3831
 
#define __PragmaOnce__
3832
 
 
3833
 
/********************************************************/
3834
 
/* Win #pragma once support aspect                      */
3835
 
/********************************************************/
3836
 
 
3837
 
 
3838
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
3839
 
using std::cout;
3840
 
using std::endl;
3841
 
 
3842
 
 
3843
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
3844
 
// This file is part of PUMA.
3845
 
// Copyright (C) 1999-2003  The PUMA developer team.
3846
 
//                                                                
3847
 
// This program is free software;  you can redistribute it and/or 
3848
 
// modify it under the terms of the GNU General Public License as 
3849
 
// published by the Free Software Foundation; either version 2 of 
3850
 
// the License, or (at your option) any later version.            
3851
 
//                                                                
3852
 
// This program is distributed in the hope that it will be useful,
3853
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3854
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3855
 
// GNU General Public License for more details.                   
3856
 
//                                                                
3857
 
// You should have received a copy of the GNU General Public      
3858
 
// License along with this program; if not, write to the Free     
3859
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3860
 
// MA  02111-1307  USA                                            
3861
 
 
3862
 
#ifndef __unit_h__
3863
 
#define __unit_h__
3864
 
 
3865
 
 
3866
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3867
 
// This file is part of PUMA.
3868
 
// Copyright (C) 1999-2003  The PUMA developer team.
3869
 
//                                                                
3870
 
// This program is free software;  you can redistribute it and/or 
3871
 
// modify it under the terms of the GNU General Public License as 
3872
 
// published by the Free Software Foundation; either version 2 of 
3873
 
// the License, or (at your option) any later version.            
3874
 
//                                                                
3875
 
// This program is distributed in the hope that it will be useful,
3876
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3877
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3878
 
// GNU General Public License for more details.                   
3879
 
//                                                                
3880
 
// You should have received a copy of the GNU General Public      
3881
 
// License along with this program; if not, write to the Free     
3882
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3883
 
// MA  02111-1307  USA                                            
3884
 
 
3885
 
#ifndef __list_h__
3886
 
#define __list_h__
3887
 
 
3888
 
 
3889
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3890
 
namespace Puma {
3891
 
 
3892
 
 
3893
 
 
3894
 
#line 3895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3895
 
} // closed Puma
3896
 
class WinIfExists;
3897
 
class WinImportHandler;
3898
 
class WinMacros;
3899
 
class CMatchSyntax;
3900
 
class ExtGnu;
3901
 
class ExtAC;
3902
 
class ExtACBuilderCoupling;
3903
 
class ExtACSyntaxCoupling;
3904
 
class ExtACTree;
3905
 
class ExtACKeywords;
3906
 
class WinAsm;
3907
 
class WinDeclSpecs;
3908
 
class WinMemberExplSpec;
3909
 
class WinTypeKeywords;
3910
 
class PragmaOnceUnitState;
3911
 
class PragmaOnce;
3912
 
class CCExprResolve;
3913
 
class CExprResolve;
3914
 
namespace Puma {
3915
 
 
3916
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3917
 
class List {
3918
 
#line 3919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3919
 
  friend class ::WinIfExists;
3920
 
  friend class ::WinImportHandler;
3921
 
  friend class ::WinMacros;
3922
 
  friend class ::CMatchSyntax;
3923
 
  friend class ::ExtGnu;
3924
 
  friend class ::ExtAC;
3925
 
  friend class ::ExtACBuilderCoupling;
3926
 
  friend class ::ExtACSyntaxCoupling;
3927
 
  friend class ::ExtACTree;
3928
 
  friend class ::ExtACKeywords;
3929
 
  friend class ::WinAsm;
3930
 
  friend class ::WinDeclSpecs;
3931
 
  friend class ::WinMemberExplSpec;
3932
 
  friend class ::WinTypeKeywords;
3933
 
  friend class ::PragmaOnceUnitState;
3934
 
  friend class ::PragmaOnce;
3935
 
  friend class ::CCExprResolve;
3936
 
  friend class ::CExprResolve;
3937
 
 
3938
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3939
 
 
3940
 
  ListElement *_first;
3941
 
  ListElement *_last;
3942
 
 
3943
 
public:
3944
 
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
3945
 
  List (const List &);
3946
 
  ~List();
3947
 
 
3948
 
  List &operator = (const List &);
3949
 
  List &operator += (const List &);
3950
 
  List operator + (const List &);
3951
 
 
3952
 
  void clear ();
3953
 
 
3954
 
  void append (ListElement &);
3955
 
  void prepend (ListElement &);
3956
 
  void insert (ListElement *at, ListElement &element);
3957
 
  void remove (ListElement *element);
3958
 
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
3959
 
   { List discard; cut (discard, from, to); }
3960
 
 
3961
 
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
3962
 
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
3963
 
  List *copy (ListElement *from = (ListElement*)0, 
3964
 
              ListElement *to = (ListElement*)0);
3965
 
  void paste (ListElement *at, const List &l);
3966
 
  void paste_before (ListElement *at, const List &l);
3967
 
  void move (ListElement *at, List &l);
3968
 
  void move_before (ListElement *at, List &l);
3969
 
 
3970
 
  bool empty () const { return _first == (ListElement*)0; }
3971
 
  const ListElement *first () const { return _first; }
3972
 
  const ListElement *last () const { return _last; }
3973
 
  const ListElement *next (const ListElement *element) const
3974
 
   { return element->_next; }
3975
 
  const ListElement *prev (const ListElement *element) const 
3976
 
   { return element->_prev; }
3977
 
};
3978
 
 
3979
 
 
3980
 
} // namespace Puma
3981
 
 
3982
 
#endif /* __list_h__ */
3983
 
 
3984
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3985
 
 
3986
 
#line 3987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3987
 
 
3988
 
#ifndef __ac_fwd_PragmaOnceUnitState__
3989
 
#define __ac_fwd_PragmaOnceUnitState__
3990
 
class PragmaOnceUnitState;
3991
 
namespace AC {
3992
 
  template <class JoinPoint>
3993
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
3994
 
}
3995
 
#endif
3996
 
 
3997
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
3998
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
3999
 
#endif
4000
 
 
4001
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4002
 
 
4003
 
#line 4004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4004
 
 
4005
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4006
 
// This file is part of PUMA.
4007
 
// Copyright (C) 1999-2003  The PUMA developer team.
4008
 
//                                                                
4009
 
// This program is free software;  you can redistribute it and/or 
4010
 
// modify it under the terms of the GNU General Public License as 
4011
 
// published by the Free Software Foundation; either version 2 of 
4012
 
// the License, or (at your option) any later version.            
4013
 
//                                                                
4014
 
// This program is distributed in the hope that it will be useful,
4015
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4016
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4017
 
// GNU General Public License for more details.                   
4018
 
//                                                                
4019
 
// You should have received a copy of the GNU General Public      
4020
 
// License along with this program; if not, write to the Free     
4021
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4022
 
// MA  02111-1307  USA                                            
4023
 
 
4024
 
#ifndef __PragmaOnceUnitState__
4025
 
#define __PragmaOnceUnitState__
4026
 
 
4027
 
using namespace Puma;
4028
 
 
4029
 
 
4030
 
#line 4031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4031
 
class WinIfExists;
4032
 
class WinImportHandler;
4033
 
class WinMacros;
4034
 
class CMatchSyntax;
4035
 
class ExtGnu;
4036
 
class ExtAC;
4037
 
class ExtACBuilderCoupling;
4038
 
class ExtACSyntaxCoupling;
4039
 
class ExtACTree;
4040
 
class ExtACKeywords;
4041
 
class WinAsm;
4042
 
class WinDeclSpecs;
4043
 
class WinMemberExplSpec;
4044
 
class WinTypeKeywords;
4045
 
class PragmaOnce;
4046
 
class CCExprResolve;
4047
 
class CExprResolve;
4048
 
 
4049
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4050
 
class PragmaOnceUnitState {
4051
 
#line 4052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4052
 
 
4053
 
public:
4054
 
  static PragmaOnceUnitState *aspectof () {
4055
 
    static PragmaOnceUnitState __instance;
4056
 
    return &__instance;
4057
 
  }
4058
 
  static PragmaOnceUnitState *aspectOf () {
4059
 
    return aspectof ();
4060
 
  }
4061
 
private:
4062
 
 
4063
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4064
 
 
4065
 
#line 4066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4066
 
  friend class ::WinIfExists;
4067
 
  friend class ::WinImportHandler;
4068
 
  friend class ::WinMacros;
4069
 
  friend class ::CMatchSyntax;
4070
 
  friend class ::ExtGnu;
4071
 
  friend class ::ExtAC;
4072
 
  friend class ::ExtACBuilderCoupling;
4073
 
  friend class ::ExtACSyntaxCoupling;
4074
 
  friend class ::ExtACTree;
4075
 
  friend class ::ExtACKeywords;
4076
 
  friend class ::WinAsm;
4077
 
  friend class ::WinDeclSpecs;
4078
 
  friend class ::WinMemberExplSpec;
4079
 
  friend class ::WinTypeKeywords;
4080
 
  friend class ::PragmaOnce;
4081
 
  friend class ::CCExprResolve;
4082
 
  friend class ::CExprResolve;
4083
 
 
4084
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4085
 
 
4086
 
  /******************************************************/
4087
 
  /* specific #pragma once unit state                   */
4088
 
  /******************************************************/
4089
 
 
4090
 
  // pointcut definitions
4091
 
  
4092
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4093
 
 
4094
 
 
4095
 
  
4096
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4097
 
 
4098
 
  
4099
 
  // initialize new state flag
4100
 
  
4101
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4102
 
 
4103
 
public: template<class JoinPoint> void __a0_after 
4104
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4105
 
 
4106
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4107
 
(JoinPoint *tjp)
4108
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4109
 
 {
4110
 
#line 4111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4111
 
 
4112
 
  JoinPoint *&thisJoinPoint = tjp;
4113
 
 
4114
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4115
 
 
4116
 
#line 4117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4117
 
 
4118
 
  typedef typename JoinPoint::That __JP_That;
4119
 
  typedef typename JoinPoint::Target __JP_Target;
4120
 
  typedef typename JoinPoint::Result __JP_Result;
4121
 
 
4122
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4123
 
 
4124
 
    thisJoinPoint->that ()->_once = false;
4125
 
  }
4126
 
#line 4127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4127
 
 
4128
 
private:
4129
 
 
4130
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4131
 
 
4132
 
 
4133
 
protected:
4134
 
  // this aspect should never be instantiated directly
4135
 
  PragmaOnceUnitState () {}
4136
 
};
4137
 
#line 4138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4138
 
 
4139
 
namespace AC {
4140
 
  template <class JoinPoint>
4141
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
4142
 
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
4143
 
  }
4144
 
4145
 
 
4146
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4147
 
 
4148
 
 
4149
 
 
4150
 
#endif /* __PragmaOnceUnitState__ */
4151
 
 
4152
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4153
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
4154
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
4155
 
 
4156
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4157
 
// This file is part of PUMA.
4158
 
// Copyright (C) 1999-2003  The PUMA developer team.
4159
 
//                                                                
4160
 
// This program is free software;  you can redistribute it and/or 
4161
 
// modify it under the terms of the GNU General Public License as 
4162
 
// published by the Free Software Foundation; either version 2 of 
4163
 
// the License, or (at your option) any later version.            
4164
 
//                                                                
4165
 
// This program is distributed in the hope that it will be useful,
4166
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4167
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4168
 
// GNU General Public License for more details.                   
4169
 
//                                                                
4170
 
// You should have received a copy of the GNU General Public      
4171
 
// License along with this program; if not, write to the Free     
4172
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4173
 
// MA  02111-1307  USA                                            
4174
 
 
4175
 
#ifndef __UnitState__
4176
 
#define __UnitState__
4177
 
 
4178
 
// The state of a unit: 
4179
 
// 1. modified by manipulations and not updated at the class registry
4180
 
// 2. modified by manipulations and updated at the class registry
4181
 
// 3. unmodified by manipulations and not updated at the class registry
4182
 
// 4. unmodified by manipulations and updated at the class registry
4183
 
 
4184
 
namespace Puma {
4185
 
 
4186
 
 
4187
 
 
4188
 
#line 4189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4189
 
} // closed Puma
4190
 
class WinIfExists;
4191
 
class WinImportHandler;
4192
 
class WinMacros;
4193
 
class CMatchSyntax;
4194
 
class ExtGnu;
4195
 
class ExtAC;
4196
 
class ExtACBuilderCoupling;
4197
 
class ExtACSyntaxCoupling;
4198
 
class ExtACTree;
4199
 
class ExtACKeywords;
4200
 
class WinAsm;
4201
 
class WinDeclSpecs;
4202
 
class WinMemberExplSpec;
4203
 
class WinTypeKeywords;
4204
 
class PragmaOnceUnitState;
4205
 
class PragmaOnce;
4206
 
class CCExprResolve;
4207
 
class CExprResolve;
4208
 
namespace Puma {
4209
 
 
4210
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4211
 
class UnitState {
4212
 
#line 4213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4213
 
  friend class ::WinIfExists;
4214
 
  friend class ::WinImportHandler;
4215
 
  friend class ::WinMacros;
4216
 
  friend class ::CMatchSyntax;
4217
 
  friend class ::ExtGnu;
4218
 
  friend class ::ExtAC;
4219
 
  friend class ::ExtACBuilderCoupling;
4220
 
  friend class ::ExtACSyntaxCoupling;
4221
 
  friend class ::ExtACTree;
4222
 
  friend class ::ExtACKeywords;
4223
 
  friend class ::WinAsm;
4224
 
  friend class ::WinDeclSpecs;
4225
 
  friend class ::WinMemberExplSpec;
4226
 
  friend class ::WinTypeKeywords;
4227
 
  friend class ::PragmaOnceUnitState;
4228
 
  friend class ::PragmaOnce;
4229
 
  friend class ::CCExprResolve;
4230
 
  friend class ::CExprResolve;
4231
 
 
4232
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4233
 
 
4234
 
  bool _modified;
4235
 
  bool _updated;
4236
 
  long _lastModified;
4237
 
      
4238
 
public:
4239
 
  
4240
 
#line 4241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4241
 
public: inline void __exec_old_C1();
4242
 
 
4243
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4244
 
UnitState ();
4245
 
      
4246
 
  bool isModified () const;
4247
 
  bool isUpdated () const;
4248
 
  long lastModified () const;
4249
 
 
4250
 
  // Is modified and has to be updated.
4251
 
  void modified ();
4252
 
  void lastModified (long);
4253
 
  void unmodified ();
4254
 
  void updated ();
4255
 
   private:
4256
 
 
4257
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4258
 
 bool _once ;
4259
 
public :
4260
 
 
4261
 
bool onlyOnce ( ) const { return _once ; }
4262
 
void onlyOnce ( bool v ) { _once = v ; }
4263
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4264
 
 
4265
 
#line 4266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4266
 
 
4267
 
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
4268
 
  typedef void Result;
4269
 
  typedef ::Puma::UnitState That;
4270
 
  typedef ::Puma::UnitState Target;
4271
 
  static const int JPID = 5;
4272
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
4273
 
  struct Res {
4274
 
    typedef void Type;
4275
 
    typedef void ReferredType;
4276
 
  };
4277
 
  enum { ARGS = 1 };
4278
 
  template <int I, int DUMMY = 0> struct Arg {
4279
 
    typedef void Type;
4280
 
    typedef void ReferredType;
4281
 
  };
4282
 
  template <int DUMMY> struct Arg<0, DUMMY> {
4283
 
    typedef const ::Puma::UnitState & Type;
4284
 
    typedef const ::Puma::UnitState ReferredType;
4285
 
  };
4286
 
 
4287
 
  That *_that;
4288
 
 
4289
 
  inline That *that() {return (That*)_that;}
4290
 
 
4291
 
};
4292
 
 
4293
 
 
4294
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4295
 
 
4296
 
#line 4297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4297
 
 
4298
 
public:
4299
 
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
4300
 
  TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
4301
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
4302
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
4303
 
 
4304
 
}
4305
 
 
4306
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4307
 
};
4308
 
 
4309
 
 
4310
 
#line 4311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4311
 
 
4312
 
 
4313
 
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
4314
 
  typedef void Result;
4315
 
  typedef ::Puma::UnitState That;
4316
 
  typedef ::Puma::UnitState Target;
4317
 
  static const int JPID = 5;
4318
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
4319
 
  struct Res {
4320
 
    typedef void Type;
4321
 
    typedef void ReferredType;
4322
 
  };
4323
 
  enum { ARGS = 0 };
4324
 
  template <int I, int DUMMY = 0> struct Arg {
4325
 
    typedef void Type;
4326
 
    typedef void ReferredType;
4327
 
  };
4328
 
 
4329
 
  That *_that;
4330
 
 
4331
 
  inline That *that() {return (That*)_that;}
4332
 
 
4333
 
};
4334
 
 
4335
 
 
4336
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4337
 
inline UnitState::UnitState ()
4338
 
 
4339
 
#line 4340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4340
 
{
4341
 
  TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
4342
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
4343
 
this->__exec_old_C1();
4344
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
4345
 
 
4346
 
}
4347
 
inline void Puma::UnitState::__exec_old_C1()
4348
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4349
 
{ _modified = false; _updated = false; _lastModified = 0; }
4350
 
 
4351
 
inline bool UnitState::isModified () const 
4352
 
 { return _modified; }
4353
 
inline bool UnitState::isUpdated () const 
4354
 
 { return _updated; }
4355
 
inline long UnitState::lastModified () const
4356
 
 { return _lastModified; }
4357
 
 
4358
 
inline void UnitState::modified () 
4359
 
 { _modified = true; _updated = false; _lastModified = 0; }
4360
 
inline void UnitState::unmodified () 
4361
 
 { _modified = false; }
4362
 
inline void UnitState::updated () 
4363
 
 { _updated = true; }
4364
 
inline void UnitState::lastModified (long when) 
4365
 
 { _lastModified = when; }
4366
 
 
4367
 
 
4368
 
} // namespace Puma
4369
 
 
4370
 
#endif /* __UnitState__ */
4371
 
 
4372
 
#line 4373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4373
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
4374
 
 
4375
 
#line 72 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4376
 
 
4377
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
4378
 
namespace Puma {
4379
 
 
4380
 
 
4381
 
 
4382
 
#line 4383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4383
 
} // closed Puma
4384
 
class WinIfExists;
4385
 
class WinImportHandler;
4386
 
class WinMacros;
4387
 
class CMatchSyntax;
4388
 
class ExtGnu;
4389
 
class ExtAC;
4390
 
class ExtACBuilderCoupling;
4391
 
class ExtACSyntaxCoupling;
4392
 
class ExtACTree;
4393
 
class ExtACKeywords;
4394
 
class WinAsm;
4395
 
class WinDeclSpecs;
4396
 
class WinMemberExplSpec;
4397
 
class WinTypeKeywords;
4398
 
class PragmaOnceUnitState;
4399
 
class PragmaOnce;
4400
 
class CCExprResolve;
4401
 
class CExprResolve;
4402
 
namespace Puma {
4403
 
 
4404
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
4405
 
class Unit : public List, public Printable {
4406
 
#line 4407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4407
 
  friend class ::WinIfExists;
4408
 
  friend class ::WinImportHandler;
4409
 
  friend class ::WinMacros;
4410
 
  friend class ::CMatchSyntax;
4411
 
  friend class ::ExtGnu;
4412
 
  friend class ::ExtAC;
4413
 
  friend class ::ExtACBuilderCoupling;
4414
 
  friend class ::ExtACSyntaxCoupling;
4415
 
  friend class ::ExtACTree;
4416
 
  friend class ::ExtACKeywords;
4417
 
  friend class ::WinAsm;
4418
 
  friend class ::WinDeclSpecs;
4419
 
  friend class ::WinMemberExplSpec;
4420
 
  friend class ::WinTypeKeywords;
4421
 
  friend class ::PragmaOnceUnitState;
4422
 
  friend class ::PragmaOnce;
4423
 
  friend class ::CCExprResolve;
4424
 
  friend class ::CExprResolve;
4425
 
 
4426
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
4427
 
 
4428
 
  char *_name;
4429
 
  UnitState _state;
4430
 
 
4431
 
public:
4432
 
  Unit () : List (), _name ((char*)0) {}
4433
 
  Unit (const List &list) : List (list), _name ((char*)0) {}
4434
 
  virtual ~Unit ();
4435
 
  virtual void name (const char *);
4436
 
  char *name () const { return _name; }
4437
 
  virtual void print (ostream &os) const;
4438
 
  virtual bool isFile () const { return false; }
4439
 
  virtual bool isMacroExp () const { return false; }
4440
 
  UnitState &state () { return _state; }
4441
 
};
4442
 
 
4443
 
 
4444
 
} // namespace Puma
4445
 
 
4446
 
#endif /* __unit_h__ */
4447
 
 
4448
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4449
 
using namespace Puma;
4450
 
 
4451
 
 
4452
 
 
4453
 
#line 4454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4454
 
class WinIfExists;
4455
 
class WinImportHandler;
4456
 
class WinMacros;
4457
 
class CMatchSyntax;
4458
 
class ExtGnu;
4459
 
class ExtAC;
4460
 
class ExtACBuilderCoupling;
4461
 
class ExtACSyntaxCoupling;
4462
 
class ExtACTree;
4463
 
class ExtACKeywords;
4464
 
class WinAsm;
4465
 
class WinDeclSpecs;
4466
 
class WinMemberExplSpec;
4467
 
class WinTypeKeywords;
4468
 
class PragmaOnceUnitState;
4469
 
class CCExprResolve;
4470
 
class CExprResolve;
4471
 
 
4472
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4473
 
class PragmaOnce {
4474
 
#line 4475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4475
 
 
4476
 
public:
4477
 
  static PragmaOnce *aspectof () {
4478
 
    static PragmaOnce __instance;
4479
 
    return &__instance;
4480
 
  }
4481
 
  static PragmaOnce *aspectOf () {
4482
 
    return aspectof ();
4483
 
  }
4484
 
private:
4485
 
 
4486
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4487
 
 
4488
 
#line 4489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4489
 
  friend class ::WinIfExists;
4490
 
  friend class ::WinImportHandler;
4491
 
  friend class ::WinMacros;
4492
 
  friend class ::CMatchSyntax;
4493
 
  friend class ::ExtGnu;
4494
 
  friend class ::ExtAC;
4495
 
  friend class ::ExtACBuilderCoupling;
4496
 
  friend class ::ExtACSyntaxCoupling;
4497
 
  friend class ::ExtACTree;
4498
 
  friend class ::ExtACKeywords;
4499
 
  friend class ::WinAsm;
4500
 
  friend class ::WinDeclSpecs;
4501
 
  friend class ::WinMemberExplSpec;
4502
 
  friend class ::WinTypeKeywords;
4503
 
  friend class ::PragmaOnceUnitState;
4504
 
  friend class ::CCExprResolve;
4505
 
  friend class ::CExprResolve;
4506
 
 
4507
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4508
 
 
4509
 
  /******************************************************/
4510
 
  /* detect #pragma once in the token stream of cpp     */
4511
 
  /******************************************************/
4512
 
 
4513
 
  // pointcut definitions
4514
 
  
4515
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4516
 
 
4517
 
  
4518
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4519
 
 
4520
 
  
4521
 
  // extend the preprocessor parser by the filter state
4522
 
  
4523
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4524
 
 
4525
 
 
4526
 
  // initialize the filter state
4527
 
  
4528
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4529
 
 
4530
 
public: template<class JoinPoint> void __a0_after 
4531
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4532
 
 
4533
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4534
 
(JoinPoint *tjp)
4535
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4536
 
 {
4537
 
#line 4538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4538
 
 
4539
 
  typedef typename JoinPoint::That __JP_That;
4540
 
  typedef typename JoinPoint::Target __JP_Target;
4541
 
  typedef typename JoinPoint::Result __JP_Result;
4542
 
 
4543
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4544
 
 
4545
 
    // TODO: it would be better to have construction advice -> but in lem file
4546
 
    tjp->that ()->_pragma_token = 0;
4547
 
  }
4548
 
#line 4549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4549
 
 
4550
 
private:
4551
 
 
4552
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4553
 
 
4554
 
  
4555
 
  // filter #pragma once
4556
 
  
4557
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4558
 
 
4559
 
public: template<class JoinPoint> void __a1_after 
4560
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4561
 
 
4562
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4563
 
(JoinPoint *tjp)
4564
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4565
 
 {
4566
 
#line 4567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4567
 
 
4568
 
  typedef typename JoinPoint::That __JP_That;
4569
 
  typedef typename JoinPoint::Target __JP_Target;
4570
 
  typedef typename JoinPoint::Result __JP_Result;
4571
 
 
4572
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4573
 
 
4574
 
    Token *tok = *tjp->result ();
4575
 
    __JP_That
4576
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4577
 
 &that = *tjp->that ();
4578
 
    if (!tok || !tok->is_directive ()) {
4579
 
      that._pragma_token = 0;
4580
 
      return;
4581
 
    }
4582
 
    if (strcmp ("#pragma", tok->text ()) == 0) {
4583
 
      that._pragma_token = tok;
4584
 
    }
4585
 
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
4586
 
      Unit *unit = (Unit*)tok->belonging_to ();
4587
 
      assert (unit);
4588
 
      unit->state ().onlyOnce (true);
4589
 
    }
4590
 
  }
4591
 
#line 4592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4592
 
 
4593
 
private:
4594
 
 
4595
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4596
 
 
4597
 
  
4598
 
  /********************************************************/
4599
 
  /* block the handling of pragma once files              */
4600
 
  /********************************************************/
4601
 
 
4602
 
  // don't let file includer include files twice
4603
 
  // to be precise: the file is included again, but the inclusion produces
4604
 
  // no tokens
4605
 
  
4606
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4607
 
 
4608
 
public: template<class JoinPoint> void __a2_around 
4609
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4610
 
 
4611
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4612
 
(JoinPoint *tjp, Unit *unit)
4613
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4614
 
 {
4615
 
#line 4616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4616
 
 
4617
 
  typedef typename JoinPoint::That __JP_That;
4618
 
  typedef typename JoinPoint::Target __JP_Target;
4619
 
  typedef typename JoinPoint::Result __JP_Result;
4620
 
 
4621
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4622
 
 
4623
 
    if (! unit || ! unit->state ().onlyOnce ())
4624
 
      tjp->proceed ();
4625
 
  }
4626
 
#line 4627 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4627
 
 
4628
 
private:
4629
 
 
4630
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4631
 
 
4632
 
 
4633
 
  // includeFile shall return 0 if the file was not included
4634
 
  
4635
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4636
 
 
4637
 
public: template<class JoinPoint> void __a3_after 
4638
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4639
 
 
4640
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4641
 
(JoinPoint *tjp)
4642
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4643
 
 {
4644
 
#line 4645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4645
 
 
4646
 
  typedef typename JoinPoint::That __JP_That;
4647
 
  typedef typename JoinPoint::Target __JP_Target;
4648
 
  typedef typename JoinPoint::Result __JP_Result;
4649
 
 
4650
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4651
 
 
4652
 
    Unit *&unit = *tjp->result ();
4653
 
    if (unit && unit->state ().onlyOnce ())
4654
 
      unit = 0;
4655
 
  }
4656
 
#line 4657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4657
 
 
4658
 
private:
4659
 
 
4660
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4661
 
 
4662
 
    
4663
 
protected:
4664
 
  // this aspect should never be instantiated directly
4665
 
  PragmaOnce () {}
4666
 
};
4667
 
#line 4668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4668
 
 
4669
 
namespace AC {
4670
 
  template <class JoinPoint>
4671
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
4672
 
    ::PragmaOnce::aspectof()->__a0_after (tjp);
4673
 
  }
4674
 
  template <class JoinPoint>
4675
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
4676
 
    ::PragmaOnce::aspectof()->__a1_after (tjp);
4677
 
  }
4678
 
  template <class JoinPoint, class Binding>
4679
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
4680
 
    typedef typename Binding::template Arg<0> Arg0;
4681
 
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
4682
 
  }
4683
 
  template <class JoinPoint>
4684
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
4685
 
    ::PragmaOnce::aspectof()->__a3_after (tjp);
4686
 
  }
4687
 
4688
 
 
4689
 
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4690
 
 
4691
 
 
4692
 
 
4693
 
#endif /* __PragmaOnce__ */
4694
 
 
4695
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
4696
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
4697
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
4698
 
 
4699
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
4700
 
// This file is part of PUMA.
4701
 
// Copyright (C) 1999-2003  The PUMA developer team.
4702
 
//                                                                
4703
 
// This program is free software;  you can redistribute it and/or 
4704
 
// modify it under the terms of the GNU General Public License as 
4705
 
// published by the Free Software Foundation; either version 2 of 
4706
 
// the License, or (at your option) any later version.            
4707
 
//                                                                
4708
 
// This program is distributed in the hope that it will be useful,
4709
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4710
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4711
 
// GNU General Public License for more details.                   
4712
 
//                                                                
4713
 
// You should have received a copy of the GNU General Public      
4714
 
// License along with this program; if not, write to the Free     
4715
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4716
 
// MA  02111-1307  USA                                            
4717
 
 
4718
 
#ifndef __preprocessor_parser__
4719
 
#define __preprocessor_parser__
4720
 
 
4721
 
// Preprocessor parser class. !!! The preprocessor parser has to 
4722
 
// be added last to the composite parser of a translation unit !!!
4723
 
 
4724
 
 
4725
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
4726
 
 
4727
 
#line 4728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
2903
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
2904
 
 
2905
#line 2906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4728
2906
 
4729
2907
#ifndef __ac_fwd_ExtACKeywords__
4730
2908
#define __ac_fwd_ExtACKeywords__
4731
2909
class ExtACKeywords;
4732
2910
namespace AC {
4733
 
  template <class JoinPoint, class Binding>
4734
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
4735
 
  template <class JoinPoint, class Binding>
4736
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
4737
 
  template <class JoinPoint>
4738
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
2911
  template <class JoinPoint>
 
2912
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
2913
  template <class JoinPoint>
 
2914
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
2915
  template <class JoinPoint>
 
2916
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
4739
2917
}
4740
2918
#endif
4741
2919
 
4742
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
4743
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
2920
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
2921
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
4744
2922
#endif
4745
2923
 
4746
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
2924
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
4747
2925
// This file is part of PUMA.
4748
2926
// Copyright (C) 1999-2003  The PUMA developer team.
4749
2927
//                                                                
4766
2944
#define __c_scanner_h__
4767
2945
 
4768
2946
 
4769
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
2947
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
4770
2948
// This file is part of PUMA.
4771
2949
// Copyright (C) 1999-2003  The PUMA developer team.
4772
2950
//                                                                
4789
2967
#define __c_recognizer_h__
4790
2968
 
4791
2969
 
4792
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
2970
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
4793
2971
// This file is part of PUMA.
4794
2972
// Copyright (C) 1999-2003  The PUMA developer team.
4795
2973
//                                                                
4812
2990
#define __CScanBuffer_h__
4813
2991
 
4814
2992
 
4815
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
2993
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
4816
2994
// This file is part of PUMA.
4817
2995
// Copyright (C) 1999-2003  The PUMA developer team.
4818
2996
//                                                                
4834
3012
#ifndef __scan_buffer_h__
4835
3013
#define __scan_buffer_h__
4836
3014
 
 
3015
 
 
3016
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3017
using namespace std;
 
3018
 
4837
3019
namespace Puma {
4838
3020
 
4839
3021
 
4840
 
 
4841
 
#line 4842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3022
#line 3023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4842
3023
} // closed Puma
 
3024
class CCExprResolve;
 
3025
class CExprResolve;
4843
3026
class WinIfExists;
4844
3027
class WinImportHandler;
4845
3028
class WinMacros;
4846
 
class CMatchSyntax;
4847
 
class ExtGnu;
 
3029
class WinAsm;
 
3030
class WinDeclSpecs;
 
3031
class WinMemberExplSpec;
 
3032
class WinTypeKeywords;
 
3033
class WinFriend;
4848
3034
class ExtAC;
4849
3035
class ExtACBuilderCoupling;
4850
3036
class ExtACSyntaxCoupling;
4851
3037
class ExtACTree;
4852
3038
class ExtACKeywords;
4853
 
class WinAsm;
4854
 
class WinDeclSpecs;
4855
 
class WinMemberExplSpec;
4856
 
class WinTypeKeywords;
 
3039
class ExtGnu;
4857
3040
class PragmaOnceUnitState;
4858
3041
class PragmaOnce;
4859
 
class CCExprResolve;
4860
 
class CExprResolve;
 
3042
class CMatchSyntax;
4861
3043
namespace Puma {
4862
3044
 
4863
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3045
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
4864
3046
class ScanBuffer {
4865
 
#line 4866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3047
#line 3048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3048
  friend class ::CCExprResolve;
 
3049
  friend class ::CExprResolve;
4866
3050
  friend class ::WinIfExists;
4867
3051
  friend class ::WinImportHandler;
4868
3052
  friend class ::WinMacros;
4869
 
  friend class ::CMatchSyntax;
4870
 
  friend class ::ExtGnu;
 
3053
  friend class ::WinAsm;
 
3054
  friend class ::WinDeclSpecs;
 
3055
  friend class ::WinMemberExplSpec;
 
3056
  friend class ::WinTypeKeywords;
 
3057
  friend class ::WinFriend;
4871
3058
  friend class ::ExtAC;
4872
3059
  friend class ::ExtACBuilderCoupling;
4873
3060
  friend class ::ExtACSyntaxCoupling;
4874
3061
  friend class ::ExtACTree;
4875
3062
  friend class ::ExtACKeywords;
4876
 
  friend class ::WinAsm;
4877
 
  friend class ::WinDeclSpecs;
4878
 
  friend class ::WinMemberExplSpec;
4879
 
  friend class ::WinTypeKeywords;
 
3063
  friend class ::ExtGnu;
4880
3064
  friend class ::PragmaOnceUnitState;
4881
3065
  friend class ::PragmaOnce;
4882
 
  friend class ::CCExprResolve;
4883
 
  friend class ::CExprResolve;
 
3066
  friend class ::CMatchSyntax;
4884
3067
 
4885
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3068
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
4886
3069
 
4887
3070
public:
4888
 
  typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
 
3071
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
 
3072
 
 
3073
private:
 
3074
  int _token;      // start position of current token
 
3075
  int _pos;        // current position (in token; _pos >= _token && pos < filled)
 
3076
  char *_buffer;   // token to the buffer that contains all input characters
 
3077
  int  _buff_size; // size of the input buffer
 
3078
  State _state;
 
3079
 
 
3080
public:  
 
3081
  ScanBuffer () : _state (STATE_NEW) {}
 
3082
 
 
3083
  // init buffer to directly scan from a string
 
3084
  void init (const char *str, int l = 0);
4889
3085
  
4890
 
  virtual ~ScanBuffer () {}
4891
 
 
4892
 
  virtual char next () = 0;
4893
 
  virtual char *token () = 0;
4894
 
  virtual int len () const = 0;
4895
 
  virtual void reset () = 0;
4896
 
  virtual void retry () = 0; 
4897
 
  virtual void accept (int len) = 0;
4898
 
  virtual void more (int len) = 0;
4899
 
  virtual State state () const = 0;
 
3086
  char next () { return _buffer[_pos++]; }
 
3087
  char lookahead () { return _buffer[_pos]; }
 
3088
  char *token () const { return _buffer + _token; }
 
3089
  int len () const { return _pos - _token; }
 
3090
  void reset () { _token = _pos = 0; }
 
3091
  void retry () { _pos = _token; } 
 
3092
  void accept (int len) {
 
3093
    _token += len;
 
3094
    _pos = _token;
 
3095
  }
 
3096
  void more (int len) { _pos = _token + len; }
 
3097
  State state () {
 
3098
    if (_state == STATE_OK && _pos >= _buff_size)
 
3099
      return STATE_END;
 
3100
    return _state;
 
3101
  }
4900
3102
};
4901
3103
 
4902
3104
 
4904
3106
 
4905
3107
#endif /* __scan_buffer_h__ */
4906
3108
 
4907
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3109
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
4908
3110
namespace Puma {
4909
3111
 
4910
3112
 
4911
3113
 
4912
 
#line 4913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3114
#line 3115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4913
3115
} // closed Puma
 
3116
class CCExprResolve;
 
3117
class CExprResolve;
4914
3118
class WinIfExists;
4915
3119
class WinImportHandler;
4916
3120
class WinMacros;
4917
 
class CMatchSyntax;
4918
 
class ExtGnu;
 
3121
class WinAsm;
 
3122
class WinDeclSpecs;
 
3123
class WinMemberExplSpec;
 
3124
class WinTypeKeywords;
 
3125
class WinFriend;
4919
3126
class ExtAC;
4920
3127
class ExtACBuilderCoupling;
4921
3128
class ExtACSyntaxCoupling;
4922
3129
class ExtACTree;
4923
3130
class ExtACKeywords;
4924
 
class WinAsm;
4925
 
class WinDeclSpecs;
4926
 
class WinMemberExplSpec;
4927
 
class WinTypeKeywords;
 
3131
class ExtGnu;
4928
3132
class PragmaOnceUnitState;
4929
3133
class PragmaOnce;
4930
 
class CCExprResolve;
4931
 
class CExprResolve;
 
3134
class CMatchSyntax;
4932
3135
namespace Puma {
4933
3136
 
4934
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
4935
 
class CScanBuffer {
4936
 
#line 4937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3137
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3138
class CScanBuffer : public ScanBuffer {
 
3139
#line 3140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3140
  friend class ::CCExprResolve;
 
3141
  friend class ::CExprResolve;
4937
3142
  friend class ::WinIfExists;
4938
3143
  friend class ::WinImportHandler;
4939
3144
  friend class ::WinMacros;
4940
 
  friend class ::CMatchSyntax;
4941
 
  friend class ::ExtGnu;
 
3145
  friend class ::WinAsm;
 
3146
  friend class ::WinDeclSpecs;
 
3147
  friend class ::WinMemberExplSpec;
 
3148
  friend class ::WinTypeKeywords;
 
3149
  friend class ::WinFriend;
4942
3150
  friend class ::ExtAC;
4943
3151
  friend class ::ExtACBuilderCoupling;
4944
3152
  friend class ::ExtACSyntaxCoupling;
4945
3153
  friend class ::ExtACTree;
4946
3154
  friend class ::ExtACKeywords;
4947
 
  friend class ::WinAsm;
4948
 
  friend class ::WinDeclSpecs;
4949
 
  friend class ::WinMemberExplSpec;
4950
 
  friend class ::WinTypeKeywords;
 
3155
  friend class ::ExtGnu;
4951
3156
  friend class ::PragmaOnceUnitState;
4952
3157
  friend class ::PragmaOnce;
4953
 
  friend class ::CCExprResolve;
4954
 
  friend class ::CExprResolve;
4955
 
 
4956
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
4957
 
 
4958
 
  ScanBuffer *next_buffer;
4959
 
  bool on_new_line;
4960
 
  int nl_pos;
4961
 
 
 
3158
  friend class ::CMatchSyntax;
 
3159
 
 
3160
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3161
 
 
3162
 
 
3163
  int _new_line_pos;
4962
3164
  void check ();
4963
3165
 
4964
3166
public:
4965
 
  void decorate (ScanBuffer *nb) { next_buffer = nb; }
 
3167
  CScanBuffer () : _new_line_pos (-1) {}
4966
3168
  inline char next ();
4967
3169
  inline void reset ();
 
3170
  inline void retry (); 
4968
3171
  inline void accept (int len);
4969
 
  inline void retry ();
4970
 
  bool new_line () const { return on_new_line; }
4971
 
  char *token () { return next_buffer->token (); }
4972
 
  int len () const { return next_buffer->len (); }
4973
 
  void more (int len) { next_buffer->more (len); }
4974
 
  ScanBuffer::State state () const { return next_buffer->state (); }
 
3172
  inline bool new_line (int len) const;
4975
3173
};
4976
3174
 
4977
3175
 
4978
3176
inline char CScanBuffer::next () {
4979
 
  char character = next_buffer->next ();
4980
 
  if (character == '\n' && nl_pos == -1)
4981
 
    nl_pos = len () - 1;
4982
 
  check ();
 
3177
  char character = ScanBuffer::next ();
 
3178
  if (character == '\n' && _new_line_pos == -1)
 
3179
    _new_line_pos = len ();
 
3180
  if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
 
3181
      ScanBuffer::lookahead () == '\\')
 
3182
    check ();
4983
3183
  return character;
4984
3184
}
4985
3185
 
4986
3186
inline void CScanBuffer::reset () { 
4987
 
  next_buffer->reset (); 
4988
 
  on_new_line = true;
4989
 
  nl_pos = -1;
 
3187
  ScanBuffer::reset ();
 
3188
  _new_line_pos = -1;
4990
3189
  check ();
4991
3190
}
4992
3191
 
4993
 
 
4994
3192
inline void CScanBuffer::retry () {
4995
 
  nl_pos = -1;
4996
 
  next_buffer->retry ();
 
3193
  ScanBuffer::retry ();
 
3194
  _new_line_pos = -1;
4997
3195
}
4998
3196
 
4999
 
 
5000
3197
inline void CScanBuffer::accept (int len) {
5001
 
  on_new_line = (nl_pos >= 0 && nl_pos < len);
5002
 
  nl_pos = -1;
5003
 
  next_buffer->accept (len);
 
3198
  ScanBuffer::accept (len);
 
3199
  _new_line_pos = -1;
 
3200
}
 
3201
 
 
3202
inline bool CScanBuffer::new_line (int len) const {
 
3203
  return _new_line_pos != -1 && _new_line_pos <= len;
5004
3204
}
5005
3205
 
5006
3206
} // namespace Puma
5007
3207
 
5008
3208
#endif // __CScanBuffer_h__
5009
3209
 
5010
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3210
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
5011
3211
// This file is part of PUMA.
5012
3212
// Copyright (C) 1999-2003  The PUMA developer team.
5013
3213
//                                                                
5030
3230
#define __c_comment_recognizer_h__
5031
3231
 
5032
3232
 
5033
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
3233
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
5034
3234
// This file is part of PUMA.
5035
3235
// Copyright (C) 1999-2003  The PUMA developer team.
5036
3236
//                                                                
5057
3257
// generated mapping table
5058
3258
 
5059
3259
 
5060
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
 
3260
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
5061
3261
// This file is part of PUMA.
5062
3262
// Copyright (C) 1999-2003  The PUMA developer team.
5063
3263
//                                                                
5082
3282
// The token recognizer class, which uses scanner tables generated by the
5083
3283
// orange tool.
5084
3284
 
5085
 
 
5086
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
5087
3285
namespace Puma {
5088
3286
 
5089
3287
 
5090
3288
#ifndef __TTGEN__
5091
3289
#  define __TTGEN__
5092
 
 
5093
 
#line 5094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5094
 
} // closed Puma
5095
 
class WinIfExists;
5096
 
class WinImportHandler;
5097
 
class WinMacros;
5098
 
class CMatchSyntax;
5099
 
class ExtGnu;
5100
 
class ExtAC;
5101
 
class ExtACBuilderCoupling;
5102
 
class ExtACSyntaxCoupling;
5103
 
class ExtACTree;
5104
 
class ExtACKeywords;
5105
 
class WinAsm;
5106
 
class WinDeclSpecs;
5107
 
class WinMemberExplSpec;
5108
 
class WinTypeKeywords;
5109
 
class PragmaOnceUnitState;
5110
 
class PragmaOnce;
5111
 
class CCExprResolve;
5112
 
class CExprResolve;
5113
 
namespace Puma {
5114
 
 
5115
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
5116
3290
typedef struct
5117
 
 {
5118
 
#line 5119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5119
 
  friend class ::WinIfExists;
5120
 
  friend class ::WinImportHandler;
5121
 
  friend class ::WinMacros;
5122
 
  friend class ::CMatchSyntax;
5123
 
  friend class ::ExtGnu;
5124
 
  friend class ::ExtAC;
5125
 
  friend class ::ExtACBuilderCoupling;
5126
 
  friend class ::ExtACSyntaxCoupling;
5127
 
  friend class ::ExtACTree;
5128
 
  friend class ::ExtACKeywords;
5129
 
  friend class ::WinAsm;
5130
 
  friend class ::WinDeclSpecs;
5131
 
  friend class ::WinMemberExplSpec;
5132
 
  friend class ::WinTypeKeywords;
5133
 
  friend class ::PragmaOnceUnitState;
5134
 
  friend class ::PragmaOnce;
5135
 
  friend class ::CCExprResolve;
5136
 
  friend class ::CExprResolve;
5137
 
 
5138
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
5139
 
 unsigned char Type;
 
3291
 { unsigned char Type;
5140
3292
   unsigned char LookAhead;
5141
3293
   int           Expression;
5142
3294
   int           Start;
5146
3298
 
5147
3299
// class declaration
5148
3300
 
5149
 
 
5150
 
#line 5151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5151
 
} // closed Puma
5152
 
class WinIfExists;
5153
 
class WinImportHandler;
5154
 
class WinMacros;
5155
 
class CMatchSyntax;
5156
 
class ExtGnu;
5157
 
class ExtAC;
5158
 
class ExtACBuilderCoupling;
5159
 
class ExtACSyntaxCoupling;
5160
 
class ExtACTree;
5161
 
class ExtACKeywords;
5162
 
class WinAsm;
5163
 
class WinDeclSpecs;
5164
 
class WinMemberExplSpec;
5165
 
class WinTypeKeywords;
5166
 
class PragmaOnceUnitState;
5167
 
class PragmaOnce;
5168
 
class CCExprResolve;
5169
 
class CExprResolve;
5170
 
namespace Puma {
5171
 
 
5172
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
5173
3301
template <typename TScanBuffer>
5174
3302
class OrangeRecognizer {
5175
 
#line 5176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5176
 
  friend class ::WinIfExists;
5177
 
  friend class ::WinImportHandler;
5178
 
  friend class ::WinMacros;
5179
 
  friend class ::CMatchSyntax;
5180
 
  friend class ::ExtGnu;
5181
 
  friend class ::ExtAC;
5182
 
  friend class ::ExtACBuilderCoupling;
5183
 
  friend class ::ExtACSyntaxCoupling;
5184
 
  friend class ::ExtACTree;
5185
 
  friend class ::ExtACKeywords;
5186
 
  friend class ::WinAsm;
5187
 
  friend class ::WinDeclSpecs;
5188
 
  friend class ::WinMemberExplSpec;
5189
 
  friend class ::WinTypeKeywords;
5190
 
  friend class ::PragmaOnceUnitState;
5191
 
  friend class ::PragmaOnce;
5192
 
  friend class ::CCExprResolve;
5193
 
  friend class ::CExprResolve;
5194
 
 
5195
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
5196
 
 
5197
3303
  // local structures generated by Orange
5198
3304
 
5199
3305
  char *_map;
5226
3332
  int  LookAheadLen;
5227
3333
  int  AcceptLen;
5228
3334
  int  AcceptState;
5229
 
  ScanBuffer::State buffer_state = ScanBuffer::STATE_OK;
 
3335
  typename TScanBuffer::State buffer_state = TScanBuffer::STATE_OK;
5230
3336
 
5231
3337
  State = _start;
5232
3338
  AcceptState = -1;
5259
3365
      LookAheadLen = scan_buffer->len ();
5260
3366
 
5261
3367
    buffer_state = scan_buffer->state ();
5262
 
  } while (NextState != -1 && buffer_state == ScanBuffer::STATE_OK);
 
3368
  } while (NextState != -1 && buffer_state == TScanBuffer::STATE_OK);
5263
3369
 
5264
 
  if (buffer_state == ScanBuffer::STATE_ERROR)
 
3370
  if (buffer_state == TScanBuffer::STATE_ERROR)
5265
3371
    return -1;
5266
3372
 
5267
3373
  if (AcceptState == -1)
5277
3383
 
5278
3384
#endif /* __orange_recognizer_h__ */
5279
3385
 
5280
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
3386
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
5281
3387
namespace Puma {
5282
3388
 
5283
3389
 
5284
3390
// class declaration
5285
3391
 
5286
 
 
5287
 
#line 5288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5288
 
} // closed Puma
5289
 
class WinIfExists;
5290
 
class WinImportHandler;
5291
 
class WinMacros;
5292
 
class CMatchSyntax;
5293
 
class ExtGnu;
5294
 
class ExtAC;
5295
 
class ExtACBuilderCoupling;
5296
 
class ExtACSyntaxCoupling;
5297
 
class ExtACTree;
5298
 
class ExtACKeywords;
5299
 
class WinAsm;
5300
 
class WinDeclSpecs;
5301
 
class WinMemberExplSpec;
5302
 
class WinTypeKeywords;
5303
 
class PragmaOnceUnitState;
5304
 
class PragmaOnce;
5305
 
class CCExprResolve;
5306
 
class CExprResolve;
5307
 
namespace Puma {
5308
 
 
5309
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
5310
3392
template <class ScanBuffer>
5311
3393
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
5312
 
#line 5313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5313
 
  friend class ::WinIfExists;
5314
 
  friend class ::WinImportHandler;
5315
 
  friend class ::WinMacros;
5316
 
  friend class ::CMatchSyntax;
5317
 
  friend class ::ExtGnu;
5318
 
  friend class ::ExtAC;
5319
 
  friend class ::ExtACBuilderCoupling;
5320
 
  friend class ::ExtACSyntaxCoupling;
5321
 
  friend class ::ExtACTree;
5322
 
  friend class ::ExtACKeywords;
5323
 
  friend class ::WinAsm;
5324
 
  friend class ::WinDeclSpecs;
5325
 
  friend class ::WinMemberExplSpec;
5326
 
  friend class ::WinTypeKeywords;
5327
 
  friend class ::PragmaOnceUnitState;
5328
 
  friend class ::PragmaOnce;
5329
 
  friend class ::CCExprResolve;
5330
 
  friend class ::CExprResolve;
5331
 
 
5332
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
5333
 
 
5334
3394
  int *_expr_map;
5335
3395
 
5336
3396
public:
5358
3418
 
5359
3419
#endif // __mapped_orange_recognizer_h__
5360
3420
 
5361
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3421
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
5362
3422
namespace Puma {
5363
3423
 
5364
3424
 
5365
3425
 
5366
 
#line 5367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3426
#line 3427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5367
3427
} // closed Puma
 
3428
class CCExprResolve;
 
3429
class CExprResolve;
5368
3430
class WinIfExists;
5369
3431
class WinImportHandler;
5370
3432
class WinMacros;
5371
 
class CMatchSyntax;
5372
 
class ExtGnu;
 
3433
class WinAsm;
 
3434
class WinDeclSpecs;
 
3435
class WinMemberExplSpec;
 
3436
class WinTypeKeywords;
 
3437
class WinFriend;
5373
3438
class ExtAC;
5374
3439
class ExtACBuilderCoupling;
5375
3440
class ExtACSyntaxCoupling;
5376
3441
class ExtACTree;
5377
3442
class ExtACKeywords;
5378
 
class WinAsm;
5379
 
class WinDeclSpecs;
5380
 
class WinMemberExplSpec;
5381
 
class WinTypeKeywords;
 
3443
class ExtGnu;
5382
3444
class PragmaOnceUnitState;
5383
3445
class PragmaOnce;
5384
 
class CCExprResolve;
5385
 
class CExprResolve;
 
3446
class CMatchSyntax;
5386
3447
namespace Puma {
5387
3448
 
5388
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3449
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
5389
3450
class CCommentRecognizer {
5390
 
#line 5391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3451
#line 3452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3452
  friend class ::CCExprResolve;
 
3453
  friend class ::CExprResolve;
5391
3454
  friend class ::WinIfExists;
5392
3455
  friend class ::WinImportHandler;
5393
3456
  friend class ::WinMacros;
5394
 
  friend class ::CMatchSyntax;
5395
 
  friend class ::ExtGnu;
 
3457
  friend class ::WinAsm;
 
3458
  friend class ::WinDeclSpecs;
 
3459
  friend class ::WinMemberExplSpec;
 
3460
  friend class ::WinTypeKeywords;
 
3461
  friend class ::WinFriend;
5396
3462
  friend class ::ExtAC;
5397
3463
  friend class ::ExtACBuilderCoupling;
5398
3464
  friend class ::ExtACSyntaxCoupling;
5399
3465
  friend class ::ExtACTree;
5400
3466
  friend class ::ExtACKeywords;
5401
 
  friend class ::WinAsm;
5402
 
  friend class ::WinDeclSpecs;
5403
 
  friend class ::WinMemberExplSpec;
5404
 
  friend class ::WinTypeKeywords;
 
3467
  friend class ::ExtGnu;
5405
3468
  friend class ::PragmaOnceUnitState;
5406
3469
  friend class ::PragmaOnce;
5407
 
  friend class ::CCExprResolve;
5408
 
  friend class ::CExprResolve;
 
3470
  friend class ::CMatchSyntax;
5409
3471
 
5410
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3472
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
5411
3473
 
5412
3474
public:
5413
3475
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
5430
3492
 
5431
3493
#endif /* __c_comment_recognizer_h__ */
5432
3494
 
5433
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3495
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
5434
3496
// This file is part of PUMA.
5435
3497
// Copyright (C) 1999-2003  The PUMA developer team.
5436
3498
//                                                                
5453
3515
#define __keyword_recognizer_h__
5454
3516
 
5455
3517
 
5456
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3518
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
5457
3519
namespace Puma {
5458
3520
 
5459
3521
 
5460
3522
 
5461
 
#line 5462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3523
#line 3524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5462
3524
} // closed Puma
 
3525
class CCExprResolve;
 
3526
class CExprResolve;
5463
3527
class WinIfExists;
5464
3528
class WinImportHandler;
5465
3529
class WinMacros;
5466
 
class CMatchSyntax;
5467
 
class ExtGnu;
 
3530
class WinAsm;
 
3531
class WinDeclSpecs;
 
3532
class WinMemberExplSpec;
 
3533
class WinTypeKeywords;
 
3534
class WinFriend;
5468
3535
class ExtAC;
5469
3536
class ExtACBuilderCoupling;
5470
3537
class ExtACSyntaxCoupling;
5471
3538
class ExtACTree;
5472
3539
class ExtACKeywords;
5473
 
class WinAsm;
5474
 
class WinDeclSpecs;
5475
 
class WinMemberExplSpec;
5476
 
class WinTypeKeywords;
 
3540
class ExtGnu;
5477
3541
class PragmaOnceUnitState;
5478
3542
class PragmaOnce;
5479
 
class CCExprResolve;
5480
 
class CExprResolve;
 
3543
class CMatchSyntax;
5481
3544
namespace Puma {
5482
3545
 
5483
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3546
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
5484
3547
class KeywordRecognizer {
5485
 
#line 5486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3548
#line 3549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3549
  friend class ::CCExprResolve;
 
3550
  friend class ::CExprResolve;
5486
3551
  friend class ::WinIfExists;
5487
3552
  friend class ::WinImportHandler;
5488
3553
  friend class ::WinMacros;
5489
 
  friend class ::CMatchSyntax;
5490
 
  friend class ::ExtGnu;
 
3554
  friend class ::WinAsm;
 
3555
  friend class ::WinDeclSpecs;
 
3556
  friend class ::WinMemberExplSpec;
 
3557
  friend class ::WinTypeKeywords;
 
3558
  friend class ::WinFriend;
5491
3559
  friend class ::ExtAC;
5492
3560
  friend class ::ExtACBuilderCoupling;
5493
3561
  friend class ::ExtACSyntaxCoupling;
5494
3562
  friend class ::ExtACTree;
5495
3563
  friend class ::ExtACKeywords;
5496
 
  friend class ::WinAsm;
5497
 
  friend class ::WinDeclSpecs;
5498
 
  friend class ::WinMemberExplSpec;
5499
 
  friend class ::WinTypeKeywords;
 
3564
  friend class ::ExtGnu;
5500
3565
  friend class ::PragmaOnceUnitState;
5501
3566
  friend class ::PragmaOnce;
5502
 
  friend class ::CCExprResolve;
5503
 
  friend class ::CExprResolve;
 
3567
  friend class ::CMatchSyntax;
5504
3568
 
5505
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3569
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
5506
3570
 
5507
3571
protected:
5508
3572
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
5517
3581
 
5518
3582
#endif /* __keyword_recognizer_h__ */
5519
3583
 
5520
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3584
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
5521
3585
namespace Puma {
5522
3586
 
5523
3587
 
5524
3588
 
5525
 
#line 5526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3589
#line 3590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5526
3590
} // closed Puma
 
3591
class CCExprResolve;
 
3592
class CExprResolve;
5527
3593
class WinIfExists;
5528
3594
class WinImportHandler;
5529
3595
class WinMacros;
5530
 
class CMatchSyntax;
5531
 
class ExtGnu;
 
3596
class WinAsm;
 
3597
class WinDeclSpecs;
 
3598
class WinMemberExplSpec;
 
3599
class WinTypeKeywords;
 
3600
class WinFriend;
5532
3601
class ExtAC;
5533
3602
class ExtACBuilderCoupling;
5534
3603
class ExtACSyntaxCoupling;
5535
3604
class ExtACTree;
5536
3605
class ExtACKeywords;
5537
 
class WinAsm;
5538
 
class WinDeclSpecs;
5539
 
class WinMemberExplSpec;
5540
 
class WinTypeKeywords;
 
3606
class ExtGnu;
5541
3607
class PragmaOnceUnitState;
5542
3608
class PragmaOnce;
5543
 
class CCExprResolve;
5544
 
class CExprResolve;
 
3609
class CMatchSyntax;
5545
3610
namespace Puma {
5546
3611
 
5547
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3612
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
5548
3613
class CRecognizer {
5549
 
#line 5550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3614
#line 3615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3615
  friend class ::CCExprResolve;
 
3616
  friend class ::CExprResolve;
5550
3617
  friend class ::WinIfExists;
5551
3618
  friend class ::WinImportHandler;
5552
3619
  friend class ::WinMacros;
5553
 
  friend class ::CMatchSyntax;
5554
 
  friend class ::ExtGnu;
 
3620
  friend class ::WinAsm;
 
3621
  friend class ::WinDeclSpecs;
 
3622
  friend class ::WinMemberExplSpec;
 
3623
  friend class ::WinTypeKeywords;
 
3624
  friend class ::WinFriend;
5555
3625
  friend class ::ExtAC;
5556
3626
  friend class ::ExtACBuilderCoupling;
5557
3627
  friend class ::ExtACSyntaxCoupling;
5558
3628
  friend class ::ExtACTree;
5559
3629
  friend class ::ExtACKeywords;
5560
 
  friend class ::WinAsm;
5561
 
  friend class ::WinDeclSpecs;
5562
 
  friend class ::WinMemberExplSpec;
5563
 
  friend class ::WinTypeKeywords;
 
3630
  friend class ::ExtGnu;
5564
3631
  friend class ::PragmaOnceUnitState;
5565
3632
  friend class ::PragmaOnce;
5566
 
  friend class ::CCExprResolve;
5567
 
  friend class ::CExprResolve;
5568
 
 
5569
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
5570
 
 
5571
 
  CScanBuffer scan_buffer;
 
3633
  friend class ::CMatchSyntax;
 
3634
 
 
3635
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3636
 
5572
3637
  CCommentRecognizer comment_recognizer;
5573
3638
  Array<KeywordRecognizer*> additional_keyword_recognizers;
5574
3639
 
5575
3640
public:
 
3641
  CScanBuffer scan_buffer; // TODO: temporarily made public!
 
3642
 
5576
3643
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
5577
 
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE, 
 
3644
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE, 
5578
3645
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
5579
3646
 
5580
 
  CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
 
3647
  CRecognizer () : directives(true), wildcards (false),
 
3648
    aspectc (false), macro_ops (false),
5581
3649
    std_c (true), std_cplusplus (true) {}
5582
 
  CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
5583
 
    macro_ops (false) { setup (buffer); }
 
3650
  void allow_directives (bool flag = true)    { directives = flag; }
5584
3651
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
5585
3652
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
5586
3653
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
5587
3654
  void allow_std_c (bool flag = true)         { std_c = flag; }
5588
3655
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
5589
 
  void setup (ScanBuffer &buffer);
 
3656
  void setup ();
5590
3657
  int recognize (Lang &lang, int &expr, int &len);
5591
 
  Mode mode () { return scan_mode; }
5592
 
  bool new_line () const { return scan_buffer.new_line (); }
 
3658
  Mode mode () const { return scan_mode; }
 
3659
  void mode (Mode mode) { scan_mode = mode; }
5593
3660
  CScanBuffer& buffer () { return scan_buffer; }
5594
3661
  void addRecognizer(KeywordRecognizer &recognizer) 
5595
3662
   { additional_keyword_recognizers.append(&recognizer); }
5596
3663
 
5597
3664
private:
5598
 
  static MappedOrangeRecognizer<CScanBuffer> string_recognizer;   
5599
3665
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
5600
3666
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
5601
3667
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
5602
 
  static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
5603
3668
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
5604
3669
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
5605
3670
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
5606
3671
 
5607
3672
  Mode scan_mode;
5608
 
  bool check_directive;
 
3673
  bool directives;
5609
3674
  bool wildcards;
5610
3675
  bool aspectc;
5611
3676
  bool macro_ops;
5618
3683
 
5619
3684
#endif /* __c_recognizer_h__ */
5620
3685
 
5621
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
3686
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3687
// This file is part of PUMA.
 
3688
// Copyright (C) 1999-2003  The PUMA developer team.
 
3689
//                                                                
 
3690
// This program is free software;  you can redistribute it and/or 
 
3691
// modify it under the terms of the GNU General Public License as 
 
3692
// published by the Free Software Foundation; either version 2 of 
 
3693
// the License, or (at your option) any later version.            
 
3694
//                                                                
 
3695
// This program is distributed in the hope that it will be useful,
 
3696
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3697
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3698
// GNU General Public License for more details.                   
 
3699
//                                                                
 
3700
// You should have received a copy of the GNU General Public      
 
3701
// License along with this program; if not, write to the Free     
 
3702
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3703
// MA  02111-1307  USA                                            
 
3704
 
 
3705
#ifndef __language_id_h__
 
3706
#define __language_id_h__
 
3707
 
 
3708
// A language ID is a unique identifier for a language
 
3709
 
 
3710
namespace Puma {
 
3711
 
 
3712
 
 
3713
 
 
3714
#line 3715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3715
} // closed Puma
 
3716
class CCExprResolve;
 
3717
class CExprResolve;
 
3718
class WinIfExists;
 
3719
class WinImportHandler;
 
3720
class WinMacros;
 
3721
class WinAsm;
 
3722
class WinDeclSpecs;
 
3723
class WinMemberExplSpec;
 
3724
class WinTypeKeywords;
 
3725
class WinFriend;
 
3726
class ExtAC;
 
3727
class ExtACBuilderCoupling;
 
3728
class ExtACSyntaxCoupling;
 
3729
class ExtACTree;
 
3730
class ExtACKeywords;
 
3731
class ExtGnu;
 
3732
class PragmaOnceUnitState;
 
3733
class PragmaOnce;
 
3734
class CMatchSyntax;
 
3735
namespace Puma {
 
3736
 
 
3737
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3738
class LanguageID {
 
3739
#line 3740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3740
  friend class ::CCExprResolve;
 
3741
  friend class ::CExprResolve;
 
3742
  friend class ::WinIfExists;
 
3743
  friend class ::WinImportHandler;
 
3744
  friend class ::WinMacros;
 
3745
  friend class ::WinAsm;
 
3746
  friend class ::WinDeclSpecs;
 
3747
  friend class ::WinMemberExplSpec;
 
3748
  friend class ::WinTypeKeywords;
 
3749
  friend class ::WinFriend;
 
3750
  friend class ::ExtAC;
 
3751
  friend class ::ExtACBuilderCoupling;
 
3752
  friend class ::ExtACSyntaxCoupling;
 
3753
  friend class ::ExtACTree;
 
3754
  friend class ::ExtACKeywords;
 
3755
  friend class ::ExtGnu;
 
3756
  friend class ::PragmaOnceUnitState;
 
3757
  friend class ::PragmaOnce;
 
3758
  friend class ::CMatchSyntax;
 
3759
 
 
3760
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
3761
 
 
3762
  const char *_id;
 
3763
 
 
3764
public:
 
3765
  LanguageID () : _id ((const char*)0) {}
 
3766
  LanguageID (const char *id) : _id (id) {}
 
3767
  operator const char *() const { return _id; }
 
3768
  bool operator == (const LanguageID &id) const
 
3769
   { return _id == (const char*)id; }
 
3770
};
 
3771
 
 
3772
 
 
3773
} // namespace Puma
 
3774
 
 
3775
#endif /* __language_id_h__ */
 
3776
 
 
3777
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5622
3778
// This file is part of PUMA.
5623
3779
// Copyright (C) 1999-2003  The PUMA developer team.
5624
3780
//                                                                
5644
3800
// form tokens, which used to fill a "Unit".
5645
3801
 
5646
3802
 
5647
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
 
3803
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
5648
3804
// This file is part of PUMA.
5649
3805
// Copyright (C) 1999-2003  The PUMA developer team.
5650
3806
//                                                                
5670
3826
 
5671
3827
 
5672
3828
 
5673
 
#line 5674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3829
#line 3830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5674
3830
} // closed Puma
 
3831
class CCExprResolve;
 
3832
class CExprResolve;
5675
3833
class WinIfExists;
5676
3834
class WinImportHandler;
5677
3835
class WinMacros;
5678
 
class CMatchSyntax;
5679
 
class ExtGnu;
 
3836
class WinAsm;
 
3837
class WinDeclSpecs;
 
3838
class WinMemberExplSpec;
 
3839
class WinTypeKeywords;
 
3840
class WinFriend;
5680
3841
class ExtAC;
5681
3842
class ExtACBuilderCoupling;
5682
3843
class ExtACSyntaxCoupling;
5683
3844
class ExtACTree;
5684
3845
class ExtACKeywords;
5685
 
class WinAsm;
5686
 
class WinDeclSpecs;
5687
 
class WinMemberExplSpec;
5688
 
class WinTypeKeywords;
 
3846
class ExtGnu;
5689
3847
class PragmaOnceUnitState;
5690
3848
class PragmaOnce;
5691
 
class CCExprResolve;
5692
 
class CExprResolve;
 
3849
class CMatchSyntax;
5693
3850
namespace Puma {
5694
3851
 
5695
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
 
3852
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
5696
3853
class Source {
5697
 
#line 5698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
3854
#line 3855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3855
  friend class ::CCExprResolve;
 
3856
  friend class ::CExprResolve;
5698
3857
  friend class ::WinIfExists;
5699
3858
  friend class ::WinImportHandler;
5700
3859
  friend class ::WinMacros;
5701
 
  friend class ::CMatchSyntax;
5702
 
  friend class ::ExtGnu;
 
3860
  friend class ::WinAsm;
 
3861
  friend class ::WinDeclSpecs;
 
3862
  friend class ::WinMemberExplSpec;
 
3863
  friend class ::WinTypeKeywords;
 
3864
  friend class ::WinFriend;
5703
3865
  friend class ::ExtAC;
5704
3866
  friend class ::ExtACBuilderCoupling;
5705
3867
  friend class ::ExtACSyntaxCoupling;
5706
3868
  friend class ::ExtACTree;
5707
3869
  friend class ::ExtACKeywords;
5708
 
  friend class ::WinAsm;
5709
 
  friend class ::WinDeclSpecs;
5710
 
  friend class ::WinMemberExplSpec;
5711
 
  friend class ::WinTypeKeywords;
 
3870
  friend class ::ExtGnu;
5712
3871
  friend class ::PragmaOnceUnitState;
5713
3872
  friend class ::PragmaOnce;
5714
 
  friend class ::CCExprResolve;
5715
 
  friend class ::CExprResolve;
 
3873
  friend class ::CMatchSyntax;
5716
3874
 
5717
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
 
3875
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
5718
3876
 
5719
3877
public:
5720
3878
  Source () {}
5728
3886
 
5729
3887
#endif /* __source_h__ */
5730
3888
 
5731
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5732
 
namespace Puma {
5733
 
 
5734
 
 
5735
 
 
5736
 
#line 5737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5737
 
} // closed Puma
5738
 
class WinIfExists;
5739
 
class WinImportHandler;
5740
 
class WinMacros;
5741
 
class CMatchSyntax;
5742
 
class ExtGnu;
5743
 
class ExtAC;
5744
 
class ExtACBuilderCoupling;
5745
 
class ExtACSyntaxCoupling;
5746
 
class ExtACTree;
5747
 
class ExtACKeywords;
5748
 
class WinAsm;
5749
 
class WinDeclSpecs;
5750
 
class WinMemberExplSpec;
5751
 
class WinTypeKeywords;
5752
 
class PragmaOnceUnitState;
5753
 
class PragmaOnce;
5754
 
class CCExprResolve;
5755
 
class CExprResolve;
5756
 
namespace Puma {
5757
 
 
5758
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
3889
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
3890
// This file is part of PUMA.
 
3891
// Copyright (C) 1999-2003  The PUMA developer team.
 
3892
//                                                                
 
3893
// This program is free software;  you can redistribute it and/or 
 
3894
// modify it under the terms of the GNU General Public License as 
 
3895
// published by the Free Software Foundation; either version 2 of 
 
3896
// the License, or (at your option) any later version.            
 
3897
//                                                                
 
3898
// This program is distributed in the hope that it will be useful,
 
3899
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3900
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3901
// GNU General Public License for more details.                   
 
3902
//                                                                
 
3903
// You should have received a copy of the GNU General Public      
 
3904
// License along with this program; if not, write to the Free     
 
3905
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3906
// MA  02111-1307  USA                                            
 
3907
 
 
3908
#ifndef __unit_h__
 
3909
#define __unit_h__
 
3910
 
 
3911
 
 
3912
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
3913
// This file is part of PUMA.
 
3914
// Copyright (C) 1999-2003  The PUMA developer team.
 
3915
//                                                                
 
3916
// This program is free software;  you can redistribute it and/or 
 
3917
// modify it under the terms of the GNU General Public License as 
 
3918
// published by the Free Software Foundation; either version 2 of 
 
3919
// the License, or (at your option) any later version.            
 
3920
//                                                                
 
3921
// This program is distributed in the hope that it will be useful,
 
3922
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3923
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3924
// GNU General Public License for more details.                   
 
3925
//                                                                
 
3926
// You should have received a copy of the GNU General Public      
 
3927
// License along with this program; if not, write to the Free     
 
3928
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3929
// MA  02111-1307  USA                                            
 
3930
 
 
3931
#ifndef __list_h__
 
3932
#define __list_h__
 
3933
 
 
3934
 
 
3935
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
3936
// This file is part of PUMA.
 
3937
// Copyright (C) 1999-2003  The PUMA developer team.
 
3938
//                                                                
 
3939
// This program is free software;  you can redistribute it and/or 
 
3940
// modify it under the terms of the GNU General Public License as 
 
3941
// published by the Free Software Foundation; either version 2 of 
 
3942
// the License, or (at your option) any later version.            
 
3943
//                                                                
 
3944
// This program is distributed in the hope that it will be useful,
 
3945
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3946
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3947
// GNU General Public License for more details.                   
 
3948
//                                                                
 
3949
// You should have received a copy of the GNU General Public      
 
3950
// License along with this program; if not, write to the Free     
 
3951
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3952
// MA  02111-1307  USA                                            
 
3953
 
 
3954
#ifndef __list_element_h__
 
3955
#define __list_element_h__
 
3956
 
 
3957
// Base class for objects that may be inserted into a List. Lists
 
3958
// autonomously delete or copy list element. So it's necessary to
 
3959
// define a destructor and a duplicate method in the derived
 
3960
// classes.
 
3961
 
 
3962
#include <assert.h>
 
3963
 
 
3964
namespace Puma {
 
3965
 
 
3966
 
 
3967
class List;
 
3968
 
 
3969
 
 
3970
#line 3971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3971
} // closed Puma
 
3972
class CCExprResolve;
 
3973
class CExprResolve;
 
3974
class WinIfExists;
 
3975
class WinImportHandler;
 
3976
class WinMacros;
 
3977
class WinAsm;
 
3978
class WinDeclSpecs;
 
3979
class WinMemberExplSpec;
 
3980
class WinTypeKeywords;
 
3981
class WinFriend;
 
3982
class ExtAC;
 
3983
class ExtACBuilderCoupling;
 
3984
class ExtACSyntaxCoupling;
 
3985
class ExtACTree;
 
3986
class ExtACKeywords;
 
3987
class ExtGnu;
 
3988
class PragmaOnceUnitState;
 
3989
class PragmaOnce;
 
3990
class CMatchSyntax;
 
3991
namespace Puma {
 
3992
 
 
3993
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
3994
class ListElement {
 
3995
#line 3996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
3996
  friend class ::CCExprResolve;
 
3997
  friend class ::CExprResolve;
 
3998
  friend class ::WinIfExists;
 
3999
  friend class ::WinImportHandler;
 
4000
  friend class ::WinMacros;
 
4001
  friend class ::WinAsm;
 
4002
  friend class ::WinDeclSpecs;
 
4003
  friend class ::WinMemberExplSpec;
 
4004
  friend class ::WinTypeKeywords;
 
4005
  friend class ::WinFriend;
 
4006
  friend class ::ExtAC;
 
4007
  friend class ::ExtACBuilderCoupling;
 
4008
  friend class ::ExtACSyntaxCoupling;
 
4009
  friend class ::ExtACTree;
 
4010
  friend class ::ExtACKeywords;
 
4011
  friend class ::ExtGnu;
 
4012
  friend class ::PragmaOnceUnitState;
 
4013
  friend class ::PragmaOnce;
 
4014
  friend class ::CMatchSyntax;
 
4015
 
 
4016
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
4017
 
 
4018
  friend class List;
 
4019
 
 
4020
  List        *_belonging_to;
 
4021
  ListElement *_next;
 
4022
  ListElement *_prev;
 
4023
 
 
4024
public:
 
4025
  ListElement () : _belonging_to ((List*)0) {}
 
4026
  virtual ~ListElement () { assert (! _belonging_to); };
 
4027
 
 
4028
  virtual ListElement *duplicate () = 0;
 
4029
  List *belonging_to () const { return _belonging_to; }
 
4030
};
 
4031
 
 
4032
 
 
4033
} // namespace Puma
 
4034
 
 
4035
#endif /* __list_element_h__ */
 
4036
 
 
4037
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
4038
namespace Puma {
 
4039
 
 
4040
 
 
4041
 
 
4042
#line 4043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4043
} // closed Puma
 
4044
class CCExprResolve;
 
4045
class CExprResolve;
 
4046
class WinIfExists;
 
4047
class WinImportHandler;
 
4048
class WinMacros;
 
4049
class WinAsm;
 
4050
class WinDeclSpecs;
 
4051
class WinMemberExplSpec;
 
4052
class WinTypeKeywords;
 
4053
class WinFriend;
 
4054
class ExtAC;
 
4055
class ExtACBuilderCoupling;
 
4056
class ExtACSyntaxCoupling;
 
4057
class ExtACTree;
 
4058
class ExtACKeywords;
 
4059
class ExtGnu;
 
4060
class PragmaOnceUnitState;
 
4061
class PragmaOnce;
 
4062
class CMatchSyntax;
 
4063
namespace Puma {
 
4064
 
 
4065
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
4066
class List {
 
4067
#line 4068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4068
  friend class ::CCExprResolve;
 
4069
  friend class ::CExprResolve;
 
4070
  friend class ::WinIfExists;
 
4071
  friend class ::WinImportHandler;
 
4072
  friend class ::WinMacros;
 
4073
  friend class ::WinAsm;
 
4074
  friend class ::WinDeclSpecs;
 
4075
  friend class ::WinMemberExplSpec;
 
4076
  friend class ::WinTypeKeywords;
 
4077
  friend class ::WinFriend;
 
4078
  friend class ::ExtAC;
 
4079
  friend class ::ExtACBuilderCoupling;
 
4080
  friend class ::ExtACSyntaxCoupling;
 
4081
  friend class ::ExtACTree;
 
4082
  friend class ::ExtACKeywords;
 
4083
  friend class ::ExtGnu;
 
4084
  friend class ::PragmaOnceUnitState;
 
4085
  friend class ::PragmaOnce;
 
4086
  friend class ::CMatchSyntax;
 
4087
 
 
4088
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
4089
 
 
4090
  ListElement *_first;
 
4091
  ListElement *_last;
 
4092
 
 
4093
public:
 
4094
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
 
4095
  List (const List &);
 
4096
  ~List();
 
4097
 
 
4098
  List &operator = (const List &);
 
4099
  List &operator += (const List &);
 
4100
  List operator + (const List &);
 
4101
 
 
4102
  void clear ();
 
4103
 
 
4104
  void append (ListElement &);
 
4105
  void prepend (ListElement &);
 
4106
  void insert (ListElement *at, ListElement &element);
 
4107
  void remove (ListElement *element);
 
4108
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
 
4109
   { List discard; cut (discard, from, to); }
 
4110
 
 
4111
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
 
4112
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
 
4113
  List *copy (ListElement *from = (ListElement*)0, 
 
4114
              ListElement *to = (ListElement*)0);
 
4115
  void paste (ListElement *at, const List &l);
 
4116
  void paste_before (ListElement *at, const List &l);
 
4117
  void move (ListElement *at, List &l);
 
4118
  void move_before (ListElement *at, List &l);
 
4119
 
 
4120
  bool empty () const { return _first == (ListElement*)0; }
 
4121
  const ListElement *first () const { return _first; }
 
4122
  const ListElement *last () const { return _last; }
 
4123
  const ListElement *next (const ListElement *element) const
 
4124
   { return element ? element->_next : 0; }
 
4125
  const ListElement *prev (const ListElement *element) const 
 
4126
   { return element ? element->_prev : 0; }
 
4127
};
 
4128
 
 
4129
 
 
4130
} // namespace Puma
 
4131
 
 
4132
#endif /* __list_h__ */
 
4133
 
 
4134
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4135
 
 
4136
#line 4137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4137
 
 
4138
#ifndef __ac_fwd_PragmaOnceUnitState__
 
4139
#define __ac_fwd_PragmaOnceUnitState__
 
4140
class PragmaOnceUnitState;
 
4141
namespace AC {
 
4142
  template <class JoinPoint>
 
4143
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
4144
  template <class JoinPoint>
 
4145
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
4146
}
 
4147
#endif
 
4148
 
 
4149
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
4150
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
4151
#endif
 
4152
 
 
4153
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4154
// This file is part of PUMA.
 
4155
// Copyright (C) 1999-2003  The PUMA developer team.
 
4156
//                                                                
 
4157
// This program is free software;  you can redistribute it and/or 
 
4158
// modify it under the terms of the GNU General Public License as 
 
4159
// published by the Free Software Foundation; either version 2 of 
 
4160
// the License, or (at your option) any later version.            
 
4161
//                                                                
 
4162
// This program is distributed in the hope that it will be useful,
 
4163
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4164
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4165
// GNU General Public License for more details.                   
 
4166
//                                                                
 
4167
// You should have received a copy of the GNU General Public      
 
4168
// License along with this program; if not, write to the Free     
 
4169
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4170
// MA  02111-1307  USA                                            
 
4171
 
 
4172
#ifndef __UnitState__
 
4173
#define __UnitState__
 
4174
 
 
4175
// The state of a unit: 
 
4176
// 1. modified by manipulations and not updated at the class registry
 
4177
// 2. modified by manipulations and updated at the class registry
 
4178
// 3. unmodified by manipulations and not updated at the class registry
 
4179
// 4. unmodified by manipulations and updated at the class registry
 
4180
 
 
4181
namespace Puma {
 
4182
 
 
4183
 
 
4184
 
 
4185
#line 4186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4186
} // closed Puma
 
4187
class CCExprResolve;
 
4188
class CExprResolve;
 
4189
class WinIfExists;
 
4190
class WinImportHandler;
 
4191
class WinMacros;
 
4192
class WinAsm;
 
4193
class WinDeclSpecs;
 
4194
class WinMemberExplSpec;
 
4195
class WinTypeKeywords;
 
4196
class WinFriend;
 
4197
class ExtAC;
 
4198
class ExtACBuilderCoupling;
 
4199
class ExtACSyntaxCoupling;
 
4200
class ExtACTree;
 
4201
class ExtACKeywords;
 
4202
class ExtGnu;
 
4203
class PragmaOnceUnitState;
 
4204
class PragmaOnce;
 
4205
class CMatchSyntax;
 
4206
namespace Puma {
 
4207
 
 
4208
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4209
 
 
4210
#line 4211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4211
} // closed Puma
 
4212
 
 
4213
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
4214
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
4215
 
 
4216
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4217
// This file is part of PUMA.
 
4218
// Copyright (C) 1999-2003  The PUMA developer team.
 
4219
//                                                                
 
4220
// This program is free software;  you can redistribute it and/or 
 
4221
// modify it under the terms of the GNU General Public License as 
 
4222
// published by the Free Software Foundation; either version 2 of 
 
4223
// the License, or (at your option) any later version.            
 
4224
//                                                                
 
4225
// This program is distributed in the hope that it will be useful,
 
4226
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4227
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4228
// GNU General Public License for more details.                   
 
4229
//                                                                
 
4230
// You should have received a copy of the GNU General Public      
 
4231
// License along with this program; if not, write to the Free     
 
4232
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4233
// MA  02111-1307  USA                                            
 
4234
 
 
4235
#ifndef __PragmaOnceUnitState__
 
4236
#define __PragmaOnceUnitState__
 
4237
 
 
4238
 
 
4239
#line 4240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4240
class CCExprResolve;
 
4241
class CExprResolve;
 
4242
class WinIfExists;
 
4243
class WinImportHandler;
 
4244
class WinMacros;
 
4245
class WinAsm;
 
4246
class WinDeclSpecs;
 
4247
class WinMemberExplSpec;
 
4248
class WinTypeKeywords;
 
4249
class WinFriend;
 
4250
class ExtAC;
 
4251
class ExtACBuilderCoupling;
 
4252
class ExtACSyntaxCoupling;
 
4253
class ExtACTree;
 
4254
class ExtACKeywords;
 
4255
class ExtGnu;
 
4256
class PragmaOnce;
 
4257
class CMatchSyntax;
 
4258
 
 
4259
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4260
class PragmaOnceUnitState {
 
4261
#line 4262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4262
 
 
4263
public:
 
4264
  static PragmaOnceUnitState *aspectof () {
 
4265
    static PragmaOnceUnitState __instance;
 
4266
    return &__instance;
 
4267
  }
 
4268
  static PragmaOnceUnitState *aspectOf () {
 
4269
    return aspectof ();
 
4270
  }
 
4271
private:
 
4272
 
 
4273
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4274
 
 
4275
#line 4276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4276
  friend class ::CCExprResolve;
 
4277
  friend class ::CExprResolve;
 
4278
  friend class ::WinIfExists;
 
4279
  friend class ::WinImportHandler;
 
4280
  friend class ::WinMacros;
 
4281
  friend class ::WinAsm;
 
4282
  friend class ::WinDeclSpecs;
 
4283
  friend class ::WinMemberExplSpec;
 
4284
  friend class ::WinTypeKeywords;
 
4285
  friend class ::WinFriend;
 
4286
  friend class ::ExtAC;
 
4287
  friend class ::ExtACBuilderCoupling;
 
4288
  friend class ::ExtACSyntaxCoupling;
 
4289
  friend class ::ExtACTree;
 
4290
  friend class ::ExtACKeywords;
 
4291
  friend class ::ExtGnu;
 
4292
  friend class ::PragmaOnce;
 
4293
  friend class ::CMatchSyntax;
 
4294
 
 
4295
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4296
 
 
4297
  /******************************************************/
 
4298
  /* specific #pragma once unit state                   */
 
4299
  /******************************************************/
 
4300
 
 
4301
  // pointcut definitions
 
4302
  
 
4303
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4304
 
 
4305
 
 
4306
  
 
4307
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4308
 
 
4309
  
 
4310
  // initialize new state flag
 
4311
  
 
4312
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4313
 
 
4314
public: template<class JoinPoint> void __a0_after 
 
4315
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4316
 
 
4317
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4318
(JoinPoint *tjp)
 
4319
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4320
 {
 
4321
#line 4322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4322
 
 
4323
  JoinPoint *&thisJoinPoint = tjp;
 
4324
 
 
4325
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4326
 
 
4327
#line 4328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4328
 
 
4329
  typedef typename JoinPoint::That __JP_That;
 
4330
  typedef typename JoinPoint::Target __JP_Target;
 
4331
  typedef typename JoinPoint::Result __JP_Result;
 
4332
 
 
4333
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4334
 
 
4335
    thisJoinPoint->that ()->_once = false;
 
4336
  }
 
4337
#line 4338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4338
 
 
4339
private:
 
4340
 
 
4341
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4342
 
 
4343
  
 
4344
  // initialize new flag for all managed units 
 
4345
  
 
4346
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4347
 
 
4348
public: template<class JoinPoint> void __a1_after 
 
4349
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4350
 
 
4351
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4352
(JoinPoint *tjp)
 
4353
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4354
 {
 
4355
#line 4356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4356
 
 
4357
  typedef typename JoinPoint::That __JP_That;
 
4358
  typedef typename JoinPoint::Target __JP_Target;
 
4359
  typedef typename JoinPoint::Result __JP_Result;
 
4360
 
 
4361
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4362
 
 
4363
    // go through the whole unit hash table and reset the 
 
4364
    // `#pragma once' state of the units
 
4365
    typename __JP_That
 
4366
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4367
::UMapIter iter;
 
4368
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
 
4369
      (*iter).second->state ().onlyOnce (false);
 
4370
  }
 
4371
#line 4372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4372
 
 
4373
private:
 
4374
 
 
4375
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4376
 
 
4377
 
 
4378
protected:
 
4379
  // this aspect should never be instantiated directly
 
4380
  PragmaOnceUnitState () {}
 
4381
};
 
4382
#line 4383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4383
 
 
4384
namespace AC {
 
4385
  template <class JoinPoint>
 
4386
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
 
4387
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
 
4388
  }
 
4389
  template <class JoinPoint>
 
4390
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
 
4391
    ::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
 
4392
  }
 
4393
 
4394
 
 
4395
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4396
 
 
4397
 
 
4398
 
 
4399
#endif /* __PragmaOnceUnitState__ */
 
4400
 
 
4401
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4402
#endif
 
4403
namespace Puma {
 
4404
 
 
4405
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4406
class UnitState {
 
4407
#line 4408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4408
  friend class ::CCExprResolve;
 
4409
  friend class ::CExprResolve;
 
4410
  friend class ::WinIfExists;
 
4411
  friend class ::WinImportHandler;
 
4412
  friend class ::WinMacros;
 
4413
  friend class ::WinAsm;
 
4414
  friend class ::WinDeclSpecs;
 
4415
  friend class ::WinMemberExplSpec;
 
4416
  friend class ::WinTypeKeywords;
 
4417
  friend class ::WinFriend;
 
4418
  friend class ::ExtAC;
 
4419
  friend class ::ExtACBuilderCoupling;
 
4420
  friend class ::ExtACSyntaxCoupling;
 
4421
  friend class ::ExtACTree;
 
4422
  friend class ::ExtACKeywords;
 
4423
  friend class ::ExtGnu;
 
4424
  friend class ::PragmaOnceUnitState;
 
4425
  friend class ::PragmaOnce;
 
4426
  friend class ::CMatchSyntax;
 
4427
 
 
4428
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4429
 
 
4430
  bool _modified;
 
4431
  bool _updated;
 
4432
  long _lastModified;
 
4433
      
 
4434
public:
 
4435
  
 
4436
#line 4437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4437
public: __attribute__((always_inline)) inline void __exec_old_C1();
 
4438
 
 
4439
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4440
UnitState ();
 
4441
      
 
4442
  bool isModified () const;
 
4443
  bool isUpdated () const;
 
4444
  long lastModified () const;
 
4445
 
 
4446
  // Is modified and has to be updated.
 
4447
  void modified ();
 
4448
  void lastModified (long);
 
4449
  void unmodified ();
 
4450
  void updated ();
 
4451
   private:
 
4452
 
 
4453
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
4454
 bool _once ;
 
4455
public :
 
4456
 
 
4457
bool onlyOnce ( ) const { return _once ; }
 
4458
void onlyOnce ( bool v ) { _once = v ; }
 
4459
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4460
 
 
4461
#line 4462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4462
 
 
4463
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
 
4464
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
 
4465
  typedef TResult Result;
 
4466
  typedef TThat   That;
 
4467
  typedef TTarget Target;
 
4468
  enum { ARGS = TArgs::ARGS };
 
4469
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
4470
  static const int JPID = 3863;
 
4471
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
4472
  struct Res {
 
4473
    typedef void Type;
 
4474
    typedef void ReferredType;
 
4475
  };
 
4476
 
 
4477
  That *_that;
 
4478
 
 
4479
  inline That *that() {return (That*)_that;}
 
4480
 
 
4481
};
 
4482
 
 
4483
 
 
4484
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4485
 
 
4486
#line 4487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4487
 
 
4488
public:
 
4489
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
 
4490
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
 
4491
  __TJP tjp;
 
4492
  tjp._that =  (__TJP::That*)this;
 
4493
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
4494
 
 
4495
}
 
4496
 
 
4497
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4498
};
 
4499
 
 
4500
 
 
4501
#line 4502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4502
 
 
4503
 
 
4504
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
 
4505
  typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
 
4506
  typedef TResult Result;
 
4507
  typedef TThat   That;
 
4508
  typedef TTarget Target;
 
4509
  enum { ARGS = TArgs::ARGS };
 
4510
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
4511
  static const int JPID = 3839;
 
4512
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
4513
  struct Res {
 
4514
    typedef void Type;
 
4515
    typedef void ReferredType;
 
4516
  };
 
4517
 
 
4518
  That *_that;
 
4519
 
 
4520
  inline That *that() {return (That*)_that;}
 
4521
 
 
4522
};
 
4523
 
 
4524
 
 
4525
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4526
inline UnitState::UnitState ()
 
4527
 
 
4528
#line 4529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4529
{
 
4530
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
 
4531
    __TJP tjp;
 
4532
  tjp._that =  (__TJP::That*)this;
 
4533
    this->__exec_old_C1();
 
4534
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
4535
  
 
4536
}
 
4537
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
 
4538
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
4539
{ _modified = false; _updated = false; _lastModified = 0; }
 
4540
 
 
4541
inline bool UnitState::isModified () const 
 
4542
 { return _modified; }
 
4543
inline bool UnitState::isUpdated () const 
 
4544
 { return _updated; }
 
4545
inline long UnitState::lastModified () const
 
4546
 { return _lastModified; }
 
4547
 
 
4548
inline void UnitState::modified () 
 
4549
 { _modified = true; _updated = false; _lastModified = 0; }
 
4550
inline void UnitState::unmodified () 
 
4551
 { _modified = false; }
 
4552
inline void UnitState::updated () 
 
4553
 { _updated = true; }
 
4554
inline void UnitState::lastModified (long when) 
 
4555
 { _lastModified = when; }
 
4556
 
 
4557
 
 
4558
} // namespace Puma
 
4559
 
 
4560
#endif /* __UnitState__ */
 
4561
 
 
4562
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
4563
namespace Puma {
 
4564
 
 
4565
 
 
4566
 
 
4567
#line 4568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4568
} // closed Puma
 
4569
class CCExprResolve;
 
4570
class CExprResolve;
 
4571
class WinIfExists;
 
4572
class WinImportHandler;
 
4573
class WinMacros;
 
4574
class WinAsm;
 
4575
class WinDeclSpecs;
 
4576
class WinMemberExplSpec;
 
4577
class WinTypeKeywords;
 
4578
class WinFriend;
 
4579
class ExtAC;
 
4580
class ExtACBuilderCoupling;
 
4581
class ExtACSyntaxCoupling;
 
4582
class ExtACTree;
 
4583
class ExtACKeywords;
 
4584
class ExtGnu;
 
4585
class PragmaOnceUnitState;
 
4586
class PragmaOnce;
 
4587
class CMatchSyntax;
 
4588
namespace Puma {
 
4589
 
 
4590
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
4591
class Unit : public List, public Printable {
 
4592
#line 4593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4593
  friend class ::CCExprResolve;
 
4594
  friend class ::CExprResolve;
 
4595
  friend class ::WinIfExists;
 
4596
  friend class ::WinImportHandler;
 
4597
  friend class ::WinMacros;
 
4598
  friend class ::WinAsm;
 
4599
  friend class ::WinDeclSpecs;
 
4600
  friend class ::WinMemberExplSpec;
 
4601
  friend class ::WinTypeKeywords;
 
4602
  friend class ::WinFriend;
 
4603
  friend class ::ExtAC;
 
4604
  friend class ::ExtACBuilderCoupling;
 
4605
  friend class ::ExtACSyntaxCoupling;
 
4606
  friend class ::ExtACTree;
 
4607
  friend class ::ExtACKeywords;
 
4608
  friend class ::ExtGnu;
 
4609
  friend class ::PragmaOnceUnitState;
 
4610
  friend class ::PragmaOnce;
 
4611
  friend class ::CMatchSyntax;
 
4612
 
 
4613
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
4614
 
 
4615
  char *_name;
 
4616
  UnitState _state;
 
4617
 
 
4618
public:
 
4619
  Unit () : List (), _name ((char*)0) {}
 
4620
  Unit (const List &list) : List (list), _name ((char*)0) {}
 
4621
  virtual ~Unit ();
 
4622
  virtual void name (const char *);
 
4623
  char *name () const { return _name; }
 
4624
  virtual void print (ostream &os) const;
 
4625
  virtual bool isFile () const { return false; }
 
4626
  virtual bool isMacroExp () const { return false; }
 
4627
  UnitState &state () { return _state; }
 
4628
};
 
4629
 
 
4630
 
 
4631
} // namespace Puma
 
4632
 
 
4633
#endif /* __unit_h__ */
 
4634
 
 
4635
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4636
namespace Puma {
 
4637
 
 
4638
 
 
4639
 
 
4640
#line 4641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4641
} // closed Puma
 
4642
class CCExprResolve;
 
4643
class CExprResolve;
 
4644
class WinIfExists;
 
4645
class WinImportHandler;
 
4646
class WinMacros;
 
4647
class WinAsm;
 
4648
class WinDeclSpecs;
 
4649
class WinMemberExplSpec;
 
4650
class WinTypeKeywords;
 
4651
class WinFriend;
 
4652
class ExtAC;
 
4653
class ExtACBuilderCoupling;
 
4654
class ExtACSyntaxCoupling;
 
4655
class ExtACTree;
 
4656
class ExtACKeywords;
 
4657
class ExtGnu;
 
4658
class PragmaOnceUnitState;
 
4659
class PragmaOnce;
 
4660
class CMatchSyntax;
 
4661
namespace Puma {
 
4662
 
 
4663
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5759
4664
class Tokenizer {
5760
 
#line 5761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4665
#line 4666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4666
  friend class ::CCExprResolve;
 
4667
  friend class ::CExprResolve;
5761
4668
  friend class ::WinIfExists;
5762
4669
  friend class ::WinImportHandler;
5763
4670
  friend class ::WinMacros;
5764
 
  friend class ::CMatchSyntax;
5765
 
  friend class ::ExtGnu;
 
4671
  friend class ::WinAsm;
 
4672
  friend class ::WinDeclSpecs;
 
4673
  friend class ::WinMemberExplSpec;
 
4674
  friend class ::WinTypeKeywords;
 
4675
  friend class ::WinFriend;
5766
4676
  friend class ::ExtAC;
5767
4677
  friend class ::ExtACBuilderCoupling;
5768
4678
  friend class ::ExtACSyntaxCoupling;
5769
4679
  friend class ::ExtACTree;
5770
4680
  friend class ::ExtACKeywords;
5771
 
  friend class ::WinAsm;
5772
 
  friend class ::WinDeclSpecs;
5773
 
  friend class ::WinMemberExplSpec;
5774
 
  friend class ::WinTypeKeywords;
 
4681
  friend class ::ExtGnu;
5775
4682
  friend class ::PragmaOnceUnitState;
5776
4683
  friend class ::PragmaOnce;
5777
 
  friend class ::CCExprResolve;
5778
 
  friend class ::CExprResolve;
 
4684
  friend class ::CMatchSyntax;
5779
4685
 
5780
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4686
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5781
4687
 
5782
4688
public:
5783
4689
  virtual ~Tokenizer () {}
5789
4695
 
5790
4696
#endif /* __Tokenizer_h__ */
5791
4697
 
5792
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4698
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5793
4699
namespace Puma {
5794
4700
 
5795
4701
 
5796
4702
class Token;
5797
4703
 
5798
4704
 
5799
 
#line 5800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4705
#line 4706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5800
4706
} // closed Puma
 
4707
class CCExprResolve;
 
4708
class CExprResolve;
5801
4709
class WinIfExists;
5802
4710
class WinImportHandler;
5803
4711
class WinMacros;
5804
 
class CMatchSyntax;
5805
 
class ExtGnu;
 
4712
class WinAsm;
 
4713
class WinDeclSpecs;
 
4714
class WinMemberExplSpec;
 
4715
class WinTypeKeywords;
 
4716
class WinFriend;
5806
4717
class ExtAC;
5807
4718
class ExtACBuilderCoupling;
5808
4719
class ExtACSyntaxCoupling;
5809
4720
class ExtACTree;
5810
4721
class ExtACKeywords;
5811
 
class WinAsm;
5812
 
class WinDeclSpecs;
5813
 
class WinMemberExplSpec;
5814
 
class WinTypeKeywords;
 
4722
class ExtGnu;
5815
4723
class PragmaOnceUnitState;
5816
4724
class PragmaOnce;
5817
 
class CCExprResolve;
5818
 
class CExprResolve;
 
4725
class CMatchSyntax;
5819
4726
namespace Puma {
5820
4727
 
5821
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4728
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5822
4729
class CScanner : public CRecognizer, public Tokenizer {
5823
 
#line 5824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4730
#line 4731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4731
  friend class ::CCExprResolve;
 
4732
  friend class ::CExprResolve;
5824
4733
  friend class ::WinIfExists;
5825
4734
  friend class ::WinImportHandler;
5826
4735
  friend class ::WinMacros;
5827
 
  friend class ::CMatchSyntax;
5828
 
  friend class ::ExtGnu;
 
4736
  friend class ::WinAsm;
 
4737
  friend class ::WinDeclSpecs;
 
4738
  friend class ::WinMemberExplSpec;
 
4739
  friend class ::WinTypeKeywords;
 
4740
  friend class ::WinFriend;
5829
4741
  friend class ::ExtAC;
5830
4742
  friend class ::ExtACBuilderCoupling;
5831
4743
  friend class ::ExtACSyntaxCoupling;
5832
4744
  friend class ::ExtACTree;
5833
4745
  friend class ::ExtACKeywords;
5834
 
  friend class ::WinAsm;
5835
 
  friend class ::WinDeclSpecs;
5836
 
  friend class ::WinMemberExplSpec;
5837
 
  friend class ::WinTypeKeywords;
 
4746
  friend class ::ExtGnu;
5838
4747
  friend class ::PragmaOnceUnitState;
5839
4748
  friend class ::PragmaOnce;
5840
 
  friend class ::CCExprResolve;
5841
 
  friend class ::CExprResolve;
 
4749
  friend class ::CMatchSyntax;
5842
4750
 
5843
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4751
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5844
4752
 
5845
4753
  Location loc;
5846
4754
  ErrorSink &err;
5855
4763
  virtual ~CScanner () {}
5856
4764
  void configure (const Config &);
5857
4765
  
5858
 
#line 5859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5859
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
4766
#line 4767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4767
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
5860
4768
 
5861
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4769
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5862
4770
void fill_unit (Source &in, Unit &unit);
5863
4771
  
5864
 
#line 5865 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5865
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
4772
#line 4773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4773
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
5866
4774
 
5867
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4775
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5868
4776
void fill_unit (const char *in, Unit &unit);
5869
4777
};
5870
4778
 
5873
4781
 
5874
4782
#endif /* __c_scanner_h__ */
5875
4783
 
5876
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
4784
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
5877
4785
// This file is part of PUMA.
5878
4786
// Copyright (C) 1999-2003  The PUMA developer team.
5879
4787
//                                                                
5896
4804
#define __c_unit_h__
5897
4805
 
5898
4806
 
5899
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4807
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5900
4808
 
5901
 
#line 5902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4809
#line 4810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5902
4810
 
5903
4811
#ifndef __ac_fwd_ExtACKeywords__
5904
4812
#define __ac_fwd_ExtACKeywords__
5905
4813
class ExtACKeywords;
5906
4814
namespace AC {
5907
 
  template <class JoinPoint, class Binding>
5908
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
5909
 
  template <class JoinPoint, class Binding>
5910
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
5911
 
  template <class JoinPoint>
5912
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
4815
  template <class JoinPoint>
 
4816
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
4817
  template <class JoinPoint>
 
4818
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
4819
  template <class JoinPoint>
 
4820
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
5913
4821
}
5914
4822
#endif
5915
4823
 
5916
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5917
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
4824
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
4825
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5918
4826
#endif
5919
4827
 
5920
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4828
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5921
4829
// This file is part of PUMA.
5922
4830
// Copyright (C) 1999-2003  The PUMA developer team.
5923
4831
//                                                                
5954
4862
class Token;
5955
4863
 
5956
4864
 
5957
 
#line 5958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4865
#line 4866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5958
4866
} // closed Puma
 
4867
class CCExprResolve;
 
4868
class CExprResolve;
5959
4869
class WinIfExists;
5960
4870
class WinImportHandler;
5961
4871
class WinMacros;
5962
 
class CMatchSyntax;
5963
 
class ExtGnu;
 
4872
class WinAsm;
 
4873
class WinDeclSpecs;
 
4874
class WinMemberExplSpec;
 
4875
class WinTypeKeywords;
 
4876
class WinFriend;
5964
4877
class ExtAC;
5965
4878
class ExtACBuilderCoupling;
5966
4879
class ExtACSyntaxCoupling;
5967
4880
class ExtACTree;
5968
4881
class ExtACKeywords;
5969
 
class WinAsm;
5970
 
class WinDeclSpecs;
5971
 
class WinMemberExplSpec;
5972
 
class WinTypeKeywords;
 
4882
class ExtGnu;
5973
4883
class PragmaOnceUnitState;
5974
4884
class PragmaOnce;
5975
 
class CCExprResolve;
5976
 
class CExprResolve;
 
4885
class CMatchSyntax;
5977
4886
namespace Puma {
5978
4887
 
5979
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4888
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
5980
4889
class CScanner : public CRecognizer, public Tokenizer {
5981
 
#line 5982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4890
#line 4891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4891
  friend class ::CCExprResolve;
 
4892
  friend class ::CExprResolve;
5982
4893
  friend class ::WinIfExists;
5983
4894
  friend class ::WinImportHandler;
5984
4895
  friend class ::WinMacros;
5985
 
  friend class ::CMatchSyntax;
5986
 
  friend class ::ExtGnu;
 
4896
  friend class ::WinAsm;
 
4897
  friend class ::WinDeclSpecs;
 
4898
  friend class ::WinMemberExplSpec;
 
4899
  friend class ::WinTypeKeywords;
 
4900
  friend class ::WinFriend;
5987
4901
  friend class ::ExtAC;
5988
4902
  friend class ::ExtACBuilderCoupling;
5989
4903
  friend class ::ExtACSyntaxCoupling;
5990
4904
  friend class ::ExtACTree;
5991
4905
  friend class ::ExtACKeywords;
5992
 
  friend class ::WinAsm;
5993
 
  friend class ::WinDeclSpecs;
5994
 
  friend class ::WinMemberExplSpec;
5995
 
  friend class ::WinTypeKeywords;
 
4906
  friend class ::ExtGnu;
5996
4907
  friend class ::PragmaOnceUnitState;
5997
4908
  friend class ::PragmaOnce;
5998
 
  friend class ::CCExprResolve;
5999
 
  friend class ::CExprResolve;
 
4909
  friend class ::CMatchSyntax;
6000
4910
 
6001
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
6002
4912
 
6003
4913
  Location loc;
6004
4914
  ErrorSink &err;
6013
4923
  virtual ~CScanner () {}
6014
4924
  void configure (const Config &);
6015
4925
  
6016
 
#line 6017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6017
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
4926
#line 4927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4927
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
6018
4928
 
6019
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4929
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
6020
4930
void fill_unit (Source &in, Unit &unit);
6021
4931
  
6022
 
#line 6023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6023
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
4932
#line 4933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4933
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
6024
4934
 
6025
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4935
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
6026
4936
void fill_unit (const char *in, Unit &unit);
6027
4937
};
6028
4938
 
6031
4941
 
6032
4942
#endif /* __c_scanner_h__ */
6033
4943
 
6034
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
4944
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
6035
4945
using namespace std;
6036
4946
 
6037
4947
namespace Puma {
6038
4948
 
6039
4949
 
6040
4950
 
6041
 
#line 6042 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4951
#line 4952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6042
4952
} // closed Puma
 
4953
class CCExprResolve;
 
4954
class CExprResolve;
6043
4955
class WinIfExists;
6044
4956
class WinImportHandler;
6045
4957
class WinMacros;
6046
 
class CMatchSyntax;
6047
 
class ExtGnu;
 
4958
class WinAsm;
 
4959
class WinDeclSpecs;
 
4960
class WinMemberExplSpec;
 
4961
class WinTypeKeywords;
 
4962
class WinFriend;
6048
4963
class ExtAC;
6049
4964
class ExtACBuilderCoupling;
6050
4965
class ExtACSyntaxCoupling;
6051
4966
class ExtACTree;
6052
4967
class ExtACKeywords;
6053
 
class WinAsm;
6054
 
class WinDeclSpecs;
6055
 
class WinMemberExplSpec;
6056
 
class WinTypeKeywords;
 
4968
class ExtGnu;
6057
4969
class PragmaOnceUnitState;
6058
4970
class PragmaOnce;
6059
 
class CCExprResolve;
6060
 
class CExprResolve;
 
4971
class CMatchSyntax;
6061
4972
namespace Puma {
6062
4973
 
6063
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
4974
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
6064
4975
class CUnit : public Unit, public std::ostringstream {
6065
 
#line 6066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
4976
#line 4977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
4977
  friend class ::CCExprResolve;
 
4978
  friend class ::CExprResolve;
6066
4979
  friend class ::WinIfExists;
6067
4980
  friend class ::WinImportHandler;
6068
4981
  friend class ::WinMacros;
6069
 
  friend class ::CMatchSyntax;
6070
 
  friend class ::ExtGnu;
 
4982
  friend class ::WinAsm;
 
4983
  friend class ::WinDeclSpecs;
 
4984
  friend class ::WinMemberExplSpec;
 
4985
  friend class ::WinTypeKeywords;
 
4986
  friend class ::WinFriend;
6071
4987
  friend class ::ExtAC;
6072
4988
  friend class ::ExtACBuilderCoupling;
6073
4989
  friend class ::ExtACSyntaxCoupling;
6074
4990
  friend class ::ExtACTree;
6075
4991
  friend class ::ExtACKeywords;
6076
 
  friend class ::WinAsm;
6077
 
  friend class ::WinDeclSpecs;
6078
 
  friend class ::WinMemberExplSpec;
6079
 
  friend class ::WinTypeKeywords;
 
4992
  friend class ::ExtGnu;
6080
4993
  friend class ::PragmaOnceUnitState;
6081
4994
  friend class ::PragmaOnce;
6082
 
  friend class ::CCExprResolve;
6083
 
  friend class ::CExprResolve;
 
4995
  friend class ::CMatchSyntax;
6084
4996
 
6085
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
4997
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
6086
4998
 
6087
4999
  CScanner _scanner;
6088
5000
 
6104
5016
 
6105
5017
#endif /* __c_unit_h__ */
6106
5018
 
6107
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
5019
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
6108
5020
// This file is part of PUMA.
6109
5021
// Copyright (C) 1999-2003  The PUMA developer team.
6110
5022
//                                                                
6132
5044
class Token;
6133
5045
 
6134
5046
 
6135
 
#line 6136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5047
#line 5048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6136
5048
} // closed Puma
 
5049
class CCExprResolve;
 
5050
class CExprResolve;
6137
5051
class WinIfExists;
6138
5052
class WinImportHandler;
6139
5053
class WinMacros;
6140
 
class CMatchSyntax;
6141
 
class ExtGnu;
 
5054
class WinAsm;
 
5055
class WinDeclSpecs;
 
5056
class WinMemberExplSpec;
 
5057
class WinTypeKeywords;
 
5058
class WinFriend;
6142
5059
class ExtAC;
6143
5060
class ExtACBuilderCoupling;
6144
5061
class ExtACSyntaxCoupling;
6145
5062
class ExtACTree;
6146
5063
class ExtACKeywords;
6147
 
class WinAsm;
6148
 
class WinDeclSpecs;
6149
 
class WinMemberExplSpec;
6150
 
class WinTypeKeywords;
 
5064
class ExtGnu;
6151
5065
class PragmaOnceUnitState;
6152
5066
class PragmaOnce;
6153
 
class CCExprResolve;
6154
 
class CExprResolve;
 
5067
class CMatchSyntax;
6155
5068
namespace Puma {
6156
5069
 
6157
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
5070
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
6158
5071
class PumaTokenSource {
6159
 
#line 6160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5072
#line 5073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5073
  friend class ::CCExprResolve;
 
5074
  friend class ::CExprResolve;
6160
5075
  friend class ::WinIfExists;
6161
5076
  friend class ::WinImportHandler;
6162
5077
  friend class ::WinMacros;
6163
 
  friend class ::CMatchSyntax;
6164
 
  friend class ::ExtGnu;
 
5078
  friend class ::WinAsm;
 
5079
  friend class ::WinDeclSpecs;
 
5080
  friend class ::WinMemberExplSpec;
 
5081
  friend class ::WinTypeKeywords;
 
5082
  friend class ::WinFriend;
6165
5083
  friend class ::ExtAC;
6166
5084
  friend class ::ExtACBuilderCoupling;
6167
5085
  friend class ::ExtACSyntaxCoupling;
6168
5086
  friend class ::ExtACTree;
6169
5087
  friend class ::ExtACKeywords;
6170
 
  friend class ::WinAsm;
6171
 
  friend class ::WinDeclSpecs;
6172
 
  friend class ::WinMemberExplSpec;
6173
 
  friend class ::WinTypeKeywords;
 
5088
  friend class ::ExtGnu;
6174
5089
  friend class ::PragmaOnceUnitState;
6175
5090
  friend class ::PragmaOnce;
6176
 
  friend class ::CCExprResolve;
6177
 
  friend class ::CExprResolve;
 
5091
  friend class ::CMatchSyntax;
6178
5092
 
6179
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
5093
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
6180
5094
 
6181
5095
protected:
6182
5096
  PumaTokenSource () {}
6191
5105
 
6192
5106
#endif /* __Token_Source__ */
6193
5107
 
6194
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
5108
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6195
5109
// This file is part of PUMA.
6196
5110
// Copyright (C) 1999-2003  The PUMA developer team.
6197
5111
//                                                                
6220
5134
using std::set;
6221
5135
 
6222
5136
 
6223
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
5137
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6224
5138
// This file is part of PUMA.
6225
5139
// Copyright (C) 1999-2003  The PUMA developer team.
6226
5140
//                                                                
6243
5157
#define __pre_arg_desc__
6244
5158
 
6245
5159
 
6246
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
5160
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6247
5161
// This file is part of PUMA.
6248
5162
// Copyright (C) 1999-2003  The PUMA developer team.
6249
5163
//                                                                
6268
5182
// Special unit for macro expansions
6269
5183
 
6270
5184
 
6271
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6272
 
namespace Puma {
6273
 
 
6274
 
 
6275
 
 
6276
 
#line 6277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6277
 
} // closed Puma
6278
 
class WinIfExists;
6279
 
class WinImportHandler;
6280
 
class WinMacros;
6281
 
class CMatchSyntax;
6282
 
class ExtGnu;
6283
 
class ExtAC;
6284
 
class ExtACBuilderCoupling;
6285
 
class ExtACSyntaxCoupling;
6286
 
class ExtACTree;
6287
 
class ExtACKeywords;
6288
 
class WinAsm;
6289
 
class WinDeclSpecs;
6290
 
class WinMemberExplSpec;
6291
 
class WinTypeKeywords;
6292
 
class PragmaOnceUnitState;
6293
 
class PragmaOnce;
6294
 
class CCExprResolve;
6295
 
class CExprResolve;
6296
 
namespace Puma {
6297
 
 
6298
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
5185
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
5186
// This file is part of PUMA.
 
5187
// Copyright (C) 1999-2003  The PUMA developer team.
 
5188
//                                                                
 
5189
// This program is free software;  you can redistribute it and/or 
 
5190
// modify it under the terms of the GNU General Public License as 
 
5191
// published by the Free Software Foundation; either version 2 of 
 
5192
// the License, or (at your option) any later version.            
 
5193
//                                                                
 
5194
// This program is distributed in the hope that it will be useful,
 
5195
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5196
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5197
// GNU General Public License for more details.                   
 
5198
//                                                                
 
5199
// You should have received a copy of the GNU General Public      
 
5200
// License along with this program; if not, write to the Free     
 
5201
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5202
// MA  02111-1307  USA                                            
 
5203
 
 
5204
#ifndef __Token_h__
 
5205
#define __Token_h__
 
5206
 
 
5207
// Abstract interface of a language token. A token is created by an
 
5208
// invocation of a scanner's 'scan' method. The token encapsulates a
 
5209
// lexical unit of the scanned text.
 
5210
 
 
5211
#include <stdlib.h>
 
5212
 
 
5213
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
5214
#include <assert.h>
 
5215
 
 
5216
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
5217
namespace Puma {
 
5218
 
 
5219
 
 
5220
 
 
5221
#line 5222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5222
} // closed Puma
 
5223
class CCExprResolve;
 
5224
class CExprResolve;
 
5225
class WinIfExists;
 
5226
class WinImportHandler;
 
5227
class WinMacros;
 
5228
class WinAsm;
 
5229
class WinDeclSpecs;
 
5230
class WinMemberExplSpec;
 
5231
class WinTypeKeywords;
 
5232
class WinFriend;
 
5233
class ExtAC;
 
5234
class ExtACBuilderCoupling;
 
5235
class ExtACSyntaxCoupling;
 
5236
class ExtACTree;
 
5237
class ExtACKeywords;
 
5238
class ExtGnu;
 
5239
class PragmaOnceUnitState;
 
5240
class PragmaOnce;
 
5241
class CMatchSyntax;
 
5242
namespace Puma {
 
5243
 
 
5244
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
5245
class Token : public ListElement {
 
5246
#line 5247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5247
  friend class ::CCExprResolve;
 
5248
  friend class ::CExprResolve;
 
5249
  friend class ::WinIfExists;
 
5250
  friend class ::WinImportHandler;
 
5251
  friend class ::WinMacros;
 
5252
  friend class ::WinAsm;
 
5253
  friend class ::WinDeclSpecs;
 
5254
  friend class ::WinMemberExplSpec;
 
5255
  friend class ::WinTypeKeywords;
 
5256
  friend class ::WinFriend;
 
5257
  friend class ::ExtAC;
 
5258
  friend class ::ExtACBuilderCoupling;
 
5259
  friend class ::ExtACSyntaxCoupling;
 
5260
  friend class ::ExtACTree;
 
5261
  friend class ::ExtACKeywords;
 
5262
  friend class ::ExtGnu;
 
5263
  friend class ::PragmaOnceUnitState;
 
5264
  friend class ::PragmaOnce;
 
5265
  friend class ::CMatchSyntax;
 
5266
 
 
5267
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
5268
 
 
5269
  int _type, _real_type;
 
5270
 
 
5271
  Location _location;
 
5272
  LanguageID _language;
 
5273
  const char *_text;
 
5274
  mutable DString _dtext;
 
5275
 
 
5276
  Array<int> *_cont_lines;
 
5277
   
 
5278
  enum TK_Flags {
 
5279
          TK_COMMENT = (0x01 << 0),
 
5280
          TK_CORE = (0x01 << 1),
 
5281
          TK_MACRO_CALL = (0x01 << 2),
 
5282
          TK_MACRO_GENERATED = (0x01 << 3)
 
5283
  };
 
5284
  unsigned short _flags;
 
5285
 
 
5286
public:
 
5287
  enum {
 
5288
    ID_END_OF_FILE = -1,
 
5289
    ID_UNKNOWN = -2,
 
5290
    ID_ERROR = -3,
 
5291
    ID_WARNING = -4
 
5292
  };
 
5293
 
 
5294
  static LanguageID comment_id, pre_id, dir_id, cpp_id, white_id, 
 
5295
                    wildcard_id, keyword_id, open_id, macro_op_id,
 
5296
                    identifier_id, comma_id, close_id;
 
5297
 
 
5298
public:
 
5299
  Token (int = 0, LanguageID lang = LanguageID(0), const char * = "");
 
5300
  Token (const Token &);
 
5301
  virtual ~Token ();
 
5302
 
 
5303
//  virtual void print (ostream &) const;
 
5304
  void print (ostream &) const;
 
5305
  virtual ListElement *duplicate () { return new Token (*this); }
 
5306
 
 
5307
  void reset (int = 0, const char * = 0, LanguageID = LanguageID(0));
 
5308
  
 
5309
  void location (const Location &loc)      { _location = loc; }
 
5310
  void cont_lines (Array<int> *cl)  { _cont_lines = cl; }
 
5311
  int line_breaks () const;
 
5312
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
 
5313
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
 
5314
  
 
5315
  const char *text () const;
 
5316
  DString &dtext () const;
 
5317
  char *get_static_text () const;
 
5318
  int type () const                 { return _type; }
 
5319
  const Location &location () const { return _location; }
 
5320
   
 
5321
  // functions to query token flags
 
5322
  bool is_macro_generated () const  { return (_flags & TK_MACRO_GENERATED) != 0; }
 
5323
  bool is_macro_call () const       { return (_flags & TK_MACRO_CALL) != 0; }
 
5324
  bool is_core () const;
 
5325
  bool is_identifier () const;    // subset of core
 
5326
  bool is_keyword () const;       // subset of identifier
 
5327
  bool is_wildcard () const;      // subset of core
 
5328
  bool is_preprocessor () const;  // a preprocessor directive (include, etc.)
 
5329
  bool is_directive () const;     // a compiler directive (pragma, line, etc.)
 
5330
  bool is_whitespace () const;
 
5331
  bool is_comment () const;
 
5332
  bool is_macro_op () const;
 
5333
  bool is_open () const;          // subset of core
 
5334
  bool is_comma () const;         // subset of core
 
5335
  bool is_close () const;         // subset of core
 
5336
 
 
5337
  void *operator new (size_t);
 
5338
  void  operator delete (void *);
 
5339
 
 
5340
private:
 
5341
  int get_general_type () const;
 
5342
  LanguageID language () const { return _language; }
 
5343
  void is_comment_internal ();
 
5344
  void is_core_internal ();
 
5345
};
 
5346
 
 
5347
 
 
5348
inline void Token::is_core_internal () {
 
5349
  if (_language == cpp_id || _language == wildcard_id || 
 
5350
      _language == open_id || _language == comma_id || 
 
5351
      _language == close_id || is_identifier ())
 
5352
    _flags |= TK_CORE;
 
5353
}
 
5354
inline void Token::is_comment_internal () { 
 
5355
  if (_language == comment_id) 
 
5356
    _flags |= TK_COMMENT;
 
5357
}
 
5358
 
 
5359
inline bool Token::is_core () const 
 
5360
 { return (_flags & TK_CORE) != 0; }
 
5361
inline bool Token::is_identifier () const 
 
5362
 { return _language == identifier_id || is_keyword ();}
 
5363
inline bool Token::is_keyword () const 
 
5364
 { return _language == keyword_id; }
 
5365
inline bool Token::is_wildcard () const 
 
5366
 { return _language == wildcard_id; }
 
5367
inline bool Token::is_preprocessor () const 
 
5368
 { return _language == pre_id; }
 
5369
inline bool Token::is_directive () const 
 
5370
 { return _language == dir_id; }
 
5371
inline bool Token::is_whitespace () const 
 
5372
 { return _language == white_id; }
 
5373
inline bool Token::is_comment () const 
 
5374
 { return (_flags & TK_COMMENT) != 0; }
 
5375
inline bool Token::is_macro_op () const 
 
5376
 { return _language == macro_op_id; }
 
5377
inline bool Token::is_open () const 
 
5378
 { return _language == open_id; }
 
5379
inline bool Token::is_comma () const 
 
5380
 { return _language == comma_id; }
 
5381
inline bool Token::is_close () const 
 
5382
 { return _language == close_id; }
 
5383
 
 
5384
inline ostream &operator << (ostream &os, const Token &object) {
 
5385
  object.print (os);
 
5386
  return os;
 
5387
}
 
5388
 
 
5389
} // namespace Puma
 
5390
 
 
5391
#endif /* __Token_h__ */
 
5392
 
 
5393
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
5394
namespace Puma {
 
5395
 
 
5396
 
 
5397
 
 
5398
#line 5399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5399
} // closed Puma
 
5400
class CCExprResolve;
 
5401
class CExprResolve;
 
5402
class WinIfExists;
 
5403
class WinImportHandler;
 
5404
class WinMacros;
 
5405
class WinAsm;
 
5406
class WinDeclSpecs;
 
5407
class WinMemberExplSpec;
 
5408
class WinTypeKeywords;
 
5409
class WinFriend;
 
5410
class ExtAC;
 
5411
class ExtACBuilderCoupling;
 
5412
class ExtACSyntaxCoupling;
 
5413
class ExtACTree;
 
5414
class ExtACKeywords;
 
5415
class ExtGnu;
 
5416
class PragmaOnceUnitState;
 
5417
class PragmaOnce;
 
5418
class CMatchSyntax;
 
5419
namespace Puma {
 
5420
 
 
5421
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6299
5422
class MacroUnit : public Unit {
6300
 
#line 6301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5423
#line 5424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5424
  friend class ::CCExprResolve;
 
5425
  friend class ::CExprResolve;
6301
5426
  friend class ::WinIfExists;
6302
5427
  friend class ::WinImportHandler;
6303
5428
  friend class ::WinMacros;
6304
 
  friend class ::CMatchSyntax;
6305
 
  friend class ::ExtGnu;
 
5429
  friend class ::WinAsm;
 
5430
  friend class ::WinDeclSpecs;
 
5431
  friend class ::WinMemberExplSpec;
 
5432
  friend class ::WinTypeKeywords;
 
5433
  friend class ::WinFriend;
6306
5434
  friend class ::ExtAC;
6307
5435
  friend class ::ExtACBuilderCoupling;
6308
5436
  friend class ::ExtACSyntaxCoupling;
6309
5437
  friend class ::ExtACTree;
6310
5438
  friend class ::ExtACKeywords;
6311
 
  friend class ::WinAsm;
6312
 
  friend class ::WinDeclSpecs;
6313
 
  friend class ::WinMemberExplSpec;
6314
 
  friend class ::WinTypeKeywords;
 
5439
  friend class ::ExtGnu;
6315
5440
  friend class ::PragmaOnceUnitState;
6316
5441
  friend class ::PragmaOnce;
6317
 
  friend class ::CCExprResolve;
6318
 
  friend class ::CExprResolve;
 
5442
  friend class ::CMatchSyntax;
6319
5443
 
6320
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
5444
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6321
5445
 
6322
5446
  Unit *_CallingUnit;
6323
5447
  Token *_StartToken;
6354
5478
 
6355
5479
#endif /* __MacroUnit__ */
6356
5480
 
6357
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
5481
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6358
5482
namespace Puma {
6359
5483
 
6360
5484
 
6361
5485
 
6362
 
#line 6363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5486
#line 5487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6363
5487
} // closed Puma
 
5488
class CCExprResolve;
 
5489
class CExprResolve;
6364
5490
class WinIfExists;
6365
5491
class WinImportHandler;
6366
5492
class WinMacros;
6367
 
class CMatchSyntax;
6368
 
class ExtGnu;
 
5493
class WinAsm;
 
5494
class WinDeclSpecs;
 
5495
class WinMemberExplSpec;
 
5496
class WinTypeKeywords;
 
5497
class WinFriend;
6369
5498
class ExtAC;
6370
5499
class ExtACBuilderCoupling;
6371
5500
class ExtACSyntaxCoupling;
6372
5501
class ExtACTree;
6373
5502
class ExtACKeywords;
6374
 
class WinAsm;
6375
 
class WinDeclSpecs;
6376
 
class WinMemberExplSpec;
6377
 
class WinTypeKeywords;
 
5503
class ExtGnu;
6378
5504
class PragmaOnceUnitState;
6379
5505
class PragmaOnce;
6380
 
class CCExprResolve;
6381
 
class CExprResolve;
 
5506
class CMatchSyntax;
6382
5507
namespace Puma {
6383
5508
 
6384
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
5509
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6385
5510
class PreArgDesc {
6386
 
#line 6387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5511
#line 5512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5512
  friend class ::CCExprResolve;
 
5513
  friend class ::CExprResolve;
6387
5514
  friend class ::WinIfExists;
6388
5515
  friend class ::WinImportHandler;
6389
5516
  friend class ::WinMacros;
6390
 
  friend class ::CMatchSyntax;
6391
 
  friend class ::ExtGnu;
 
5517
  friend class ::WinAsm;
 
5518
  friend class ::WinDeclSpecs;
 
5519
  friend class ::WinMemberExplSpec;
 
5520
  friend class ::WinTypeKeywords;
 
5521
  friend class ::WinFriend;
6392
5522
  friend class ::ExtAC;
6393
5523
  friend class ::ExtACBuilderCoupling;
6394
5524
  friend class ::ExtACSyntaxCoupling;
6395
5525
  friend class ::ExtACTree;
6396
5526
  friend class ::ExtACKeywords;
6397
 
  friend class ::WinAsm;
6398
 
  friend class ::WinDeclSpecs;
6399
 
  friend class ::WinMemberExplSpec;
6400
 
  friend class ::WinTypeKeywords;
 
5527
  friend class ::ExtGnu;
6401
5528
  friend class ::PragmaOnceUnitState;
6402
5529
  friend class ::PragmaOnce;
6403
 
  friend class ::CCExprResolve;
6404
 
  friend class ::CExprResolve;
 
5530
  friend class ::CMatchSyntax;
6405
5531
 
6406
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
5532
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6407
5533
 
6408
5534
  // Collected arguments of a function-like macro.
6409
5535
  Array<MacroUnit> m_Args;
6432
5558
 
6433
5559
#endif /* __pre_arg_desc__ */
6434
5560
 
6435
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
5561
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6436
5562
namespace Puma {
6437
5563
 
6438
5564
 
6445
5571
class PreMacro;
6446
5572
 
6447
5573
 
6448
 
#line 6449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5574
#line 5575 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6449
5575
} // closed Puma
 
5576
class CCExprResolve;
 
5577
class CExprResolve;
6450
5578
class WinIfExists;
6451
5579
class WinImportHandler;
6452
5580
class WinMacros;
6453
 
class CMatchSyntax;
6454
 
class ExtGnu;
 
5581
class WinAsm;
 
5582
class WinDeclSpecs;
 
5583
class WinMemberExplSpec;
 
5584
class WinTypeKeywords;
 
5585
class WinFriend;
6455
5586
class ExtAC;
6456
5587
class ExtACBuilderCoupling;
6457
5588
class ExtACSyntaxCoupling;
6458
5589
class ExtACTree;
6459
5590
class ExtACKeywords;
6460
 
class WinAsm;
6461
 
class WinDeclSpecs;
6462
 
class WinMemberExplSpec;
6463
 
class WinTypeKeywords;
 
5591
class ExtGnu;
6464
5592
class PragmaOnceUnitState;
6465
5593
class PragmaOnce;
6466
 
class CCExprResolve;
6467
 
class CExprResolve;
 
5594
class CMatchSyntax;
6468
5595
namespace Puma {
6469
5596
 
6470
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
5597
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6471
5598
class PreMacroExpander {
6472
 
#line 6473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
5599
#line 5600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5600
  friend class ::CCExprResolve;
 
5601
  friend class ::CExprResolve;
6473
5602
  friend class ::WinIfExists;
6474
5603
  friend class ::WinImportHandler;
6475
5604
  friend class ::WinMacros;
6476
 
  friend class ::CMatchSyntax;
6477
 
  friend class ::ExtGnu;
 
5605
  friend class ::WinAsm;
 
5606
  friend class ::WinDeclSpecs;
 
5607
  friend class ::WinMemberExplSpec;
 
5608
  friend class ::WinTypeKeywords;
 
5609
  friend class ::WinFriend;
6478
5610
  friend class ::ExtAC;
6479
5611
  friend class ::ExtACBuilderCoupling;
6480
5612
  friend class ::ExtACSyntaxCoupling;
6481
5613
  friend class ::ExtACTree;
6482
5614
  friend class ::ExtACKeywords;
6483
 
  friend class ::WinAsm;
6484
 
  friend class ::WinDeclSpecs;
6485
 
  friend class ::WinMemberExplSpec;
6486
 
  friend class ::WinTypeKeywords;
 
5615
  friend class ::ExtGnu;
6487
5616
  friend class ::PragmaOnceUnitState;
6488
5617
  friend class ::PragmaOnce;
6489
 
  friend class ::CCExprResolve;
6490
 
  friend class ::CExprResolve;
 
5618
  friend class ::CMatchSyntax;
6491
5619
 
6492
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
5620
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6493
5621
 
6494
5622
  TokenStream        *_scanner;
6495
5623
  PreMacroManager    *_macroManager;
6554
5682
  // Push unit on token stream.
6555
5683
  void pushUnit (TokenStream &, Unit *) const;
6556
5684
 
 
5685
  // Get the next non-whitespace non-comment token
 
5686
  Token* nextPreprocessingToken (Token*, Unit*) const;
 
5687
 
 
5688
  // Get the previous non-whitespace non-comment token
 
5689
  Token* prevPreprocessingToken (Token*, Unit*) const;
 
5690
 
 
5691
  // Check if the given unit contains only spaces and comments.
 
5692
  bool onlySpacesAndComments (MacroUnit&) const;
 
5693
 
6557
5694
public:
6558
5695
  // Special constructor. Call reset() before using the expander.
6559
5696
  PreMacroExpander ();
6580
5717
 
6581
5718
#endif /* __pre_macro_expander__ */
6582
5719
 
6583
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
5720
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6584
5721
using namespace std;
6585
5722
 
6586
5723
namespace Puma {
6597
5734
class PrePredicateManager;
6598
5735
 
6599
5736
 
6600
 
#line 6601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6601
 
} // closed Puma
6602
 
class WinIfExists;
6603
 
class WinImportHandler;
6604
 
class WinMacros;
6605
 
class CMatchSyntax;
6606
 
class ExtGnu;
6607
 
class ExtAC;
6608
 
class ExtACBuilderCoupling;
6609
 
class ExtACSyntaxCoupling;
6610
 
class ExtACTree;
6611
 
class ExtACKeywords;
6612
 
class WinAsm;
6613
 
class WinDeclSpecs;
6614
 
class WinMemberExplSpec;
6615
 
class WinTypeKeywords;
6616
 
class PragmaOnceUnitState;
6617
 
class PragmaOnce;
6618
 
class CCExprResolve;
6619
 
class CExprResolve;
6620
 
namespace Puma {
6621
 
 
6622
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
5737
#line 5738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5738
} // closed Puma
 
5739
class CCExprResolve;
 
5740
class CExprResolve;
 
5741
class WinIfExists;
 
5742
class WinImportHandler;
 
5743
class WinMacros;
 
5744
class WinAsm;
 
5745
class WinDeclSpecs;
 
5746
class WinMemberExplSpec;
 
5747
class WinTypeKeywords;
 
5748
class WinFriend;
 
5749
class ExtAC;
 
5750
class ExtACBuilderCoupling;
 
5751
class ExtACSyntaxCoupling;
 
5752
class ExtACTree;
 
5753
class ExtACKeywords;
 
5754
class ExtGnu;
 
5755
class PragmaOnceUnitState;
 
5756
class PragmaOnce;
 
5757
class CMatchSyntax;
 
5758
namespace Puma {
 
5759
 
 
5760
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
5761
 
 
5762
#line 5763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
5763
} // closed Puma
 
5764
 
 
5765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
5766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
5767
 
 
5768
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
5769
// This file is part of PUMA.
 
5770
// Copyright (C) 1999-2003  The PUMA developer team.
 
5771
//                                                                
 
5772
// This program is free software;  you can redistribute it and/or 
 
5773
// modify it under the terms of the GNU General Public License as 
 
5774
// published by the Free Software Foundation; either version 2 of 
 
5775
// the License, or (at your option) any later version.            
 
5776
//                                                                
 
5777
// This program is distributed in the hope that it will be useful,
 
5778
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5779
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5780
// GNU General Public License for more details.                   
 
5781
//                                                                
 
5782
// You should have received a copy of the GNU General Public      
 
5783
// License along with this program; if not, write to the Free     
 
5784
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5785
// MA  02111-1307  USA                                            
 
5786
 
 
5787
#ifndef __WinIfExists__
 
5788
#define __WinIfExists__
 
5789
 
 
5790
/********************************************************/
 
5791
/* Win __if_exists and __if_not_exists support aspect   */
 
5792
/********************************************************/
 
5793
 
 
5794
 
 
5795
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
5796
// This file is part of PUMA.
 
5797
// Copyright (C) 1999-2003  The PUMA developer team.
 
5798
//                                                                
 
5799
// This program is free software;  you can redistribute it and/or 
 
5800
// modify it under the terms of the GNU General Public License as 
 
5801
// published by the Free Software Foundation; either version 2 of 
 
5802
// the License, or (at your option) any later version.            
 
5803
//                                                                
 
5804
// This program is distributed in the hope that it will be useful,
 
5805
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5806
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5807
// GNU General Public License for more details.                   
 
5808
//                                                                
 
5809
// You should have received a copy of the GNU General Public      
 
5810
// License along with this program; if not, write to the Free     
 
5811
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5812
// MA  02111-1307  USA                                            
 
5813
 
 
5814
#ifndef __C_TOKENS__
 
5815
#define __C_TOKENS__
 
5816
 
 
5817
namespace Puma {
 
5818
 
 
5819
enum CTokens {
 
5820
 
 
5821
  // core tokens, i.e. numbers, operator symbols, brackets, etc.
 
5822
  TOK_AT = 100,
 
5823
  TOK_ZERO_VAL,
 
5824
  TOK_INT_VAL,
 
5825
  TOK_FLT_VAL,
 
5826
  TOK_STRING_VAL,
 
5827
  TOK_CHAR_VAL,
 
5828
  TOK_COMMA,
 
5829
  TOK_ASSIGN,
 
5830
  TOK_QUESTION,
 
5831
  TOK_OR,
 
5832
  TOK_ROOF,
 
5833
  TOK_AND,
 
5834
  TOK_PLUS,
 
5835
  TOK_MINUS,
 
5836
  TOK_MUL,
 
5837
  TOK_DIV,
 
5838
  TOK_MODULO,
 
5839
  TOK_LESS,
 
5840
  TOK_GREATER,
 
5841
  TOK_OPEN_ROUND,
 
5842
  TOK_CLOSE_ROUND,
 
5843
  TOK_OPEN_SQUARE,
 
5844
  TOK_CLOSE_SQUARE,
 
5845
  TOK_OPEN_CURLY,
 
5846
  TOK_CLOSE_CURLY,
 
5847
  TOK_SEMI_COLON,
 
5848
  TOK_COLON,
 
5849
  TOK_NOT,
 
5850
  TOK_TILDE,
 
5851
  TOK_DOT,
 
5852
  TOK_MUL_EQ,
 
5853
  TOK_DIV_EQ,
 
5854
  TOK_MOD_EQ,
 
5855
  TOK_ADD_EQ,
 
5856
  TOK_SUB_EQ,
 
5857
  TOK_LSH_EQ,
 
5858
  TOK_RSH_EQ,
 
5859
  TOK_AND_EQ,
 
5860
  TOK_XOR_EQ,
 
5861
  TOK_IOR_EQ,
 
5862
  TOK_OR_OR,
 
5863
  TOK_AND_AND,
 
5864
  TOK_EQL,
 
5865
  TOK_NEQ,
 
5866
  TOK_LEQ,
 
5867
  TOK_GEQ,
 
5868
  TOK_LSH,
 
5869
  TOK_RSH,
 
5870
  TOK_DOT_STAR,
 
5871
  TOK_PTS_STAR,
 
5872
  TOK_INCR,
 
5873
  TOK_DECR,
 
5874
  TOK_PTS,
 
5875
  TOK_COLON_COLON,
 
5876
  TOK_ELLIPSIS,
 
5877
  TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
 
5878
  
 
5879
  // C keywords:
 
5880
  TOK_ASM,
 
5881
  TOK_AUTO,
 
5882
  TOK_BREAK,
 
5883
  TOK_CASE,
 
5884
  TOK_CHAR,
 
5885
  TOK_CONST,
 
5886
  TOK_CONTINUE,
 
5887
  TOK_DEFAULT,
 
5888
  TOK_DO,
 
5889
  TOK_DOUBLE,
 
5890
  TOK_ELSE,
 
5891
  TOK_ENUM,
 
5892
  TOK_EXTERN,
 
5893
  TOK_FLOAT,
 
5894
  TOK_FOR,
 
5895
  TOK_GOTO,
 
5896
  TOK_IF,
 
5897
  TOK_INLINE,
 
5898
  TOK_INT,
 
5899
  TOK_LONG,
 
5900
  TOK_REGISTER,
 
5901
  TOK_RESTRICT,
 
5902
  TOK_RETURN,
 
5903
  TOK_SHORT,
 
5904
  TOK_SIGNED,
 
5905
  TOK_SIZEOF,
 
5906
  TOK_STATIC,
 
5907
  TOK_STRUCT,
 
5908
  TOK_SWITCH,
 
5909
  TOK_TYPEDEF,
 
5910
  TOK_UNION,
 
5911
  TOK_UNSIGNED,
 
5912
  TOK_VOID,
 
5913
  TOK_VOLATILE,
 
5914
  TOK_WCHAR_T,
 
5915
  TOK_WHILE,
 
5916
 
 
5917
  // C compatibility keywords
 
5918
 
 
5919
  TOK_ASM_2,
 
5920
  TOK_ASM_3,
 
5921
  TOK_BOOL_2,
 
5922
  TOK_CONST_2,
 
5923
  TOK_CONST_3,
 
5924
  TOK_INLINE_2,
 
5925
  TOK_INLINE_3,
 
5926
  TOK_RESTRICT_2,
 
5927
  TOK_RESTRICT_3,
 
5928
  TOK_SIGNED_2,
 
5929
  TOK_SIGNED_3,
 
5930
  TOK_VOLATILE_2,
 
5931
  TOK_VOLATILE_3,
 
5932
  TOK_WCHAR_T_2,
 
5933
  TOK_TYPEOF,
 
5934
  TOK_TYPEOF_2,
 
5935
  TOK_TYPEOF_3,
 
5936
 
 
5937
  // C win specific keywords
 
5938
 
 
5939
  TOK_INT64,
 
5940
  TOK_CDECL,
 
5941
  TOK_CDECL_2,
 
5942
  TOK_STDCALL,
 
5943
  TOK_STDCALL_2,
 
5944
  TOK_FASTCALL,
 
5945
  TOK_FASTCALL_2,
 
5946
  TOK_IF_EXISTS,
 
5947
  TOK_IF_NOT_EXISTS,
 
5948
 
 
5949
  TOK_LAST_C = TOK_IF_NOT_EXISTS,
 
5950
  
 
5951
  // a boolean constant:
 
5952
  TOK_BOOL_VAL,
 
5953
 
 
5954
  // C++ keywords:
 
5955
 
 
5956
  TOK_BOOL,
 
5957
  TOK_CATCH,
 
5958
  TOK_CLASS,
 
5959
  TOK_CONST_CAST,
 
5960
  TOK_DELETE,
 
5961
  TOK_DYN_CAST,
 
5962
  TOK_EXPLICIT,
 
5963
  TOK_EXPORT,
 
5964
  TOK_FRIEND,
 
5965
  TOK_MUTABLE,
 
5966
  TOK_NAMESPACE,
 
5967
  TOK_NEW,
 
5968
  TOK_OPERATOR,
 
5969
  TOK_PRIVATE,
 
5970
  TOK_PROTECTED,
 
5971
  TOK_PUBLIC,
 
5972
  TOK_REINT_CAST,
 
5973
  TOK_STAT_CAST,
 
5974
  TOK_TEMPLATE,
 
5975
  TOK_THIS,
 
5976
  TOK_THROW,
 
5977
  TOK_TRY,
 
5978
  TOK_TYPEID,
 
5979
  TOK_TYPENAME,
 
5980
  TOK_USING,
 
5981
  TOK_VIRTUAL,
 
5982
 
 
5983
  // C++ alternative representation of operators (ISO 646):
 
5984
 
 
5985
  TOK_AND_AND_ISO_646,
 
5986
  TOK_AND_EQ_ISO_646,
 
5987
  TOK_AND_ISO_646,
 
5988
  TOK_OR_ISO_646,
 
5989
  TOK_TILDE_ISO_646,
 
5990
  TOK_NOT_ISO_646,
 
5991
  TOK_NEQ_ISO_646,
 
5992
  TOK_OR_OR_ISO_646,
 
5993
  TOK_IOR_EQ_ISO_646,
 
5994
  TOK_ROOF_ISO_646,
 
5995
  TOK_XOR_EQ_ISO_646,
 
5996
 
 
5997
  TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
 
5998
  
 
5999
  // AspectC++ keywords:
 
6000
 
 
6001
  TOK_POINTCUT,
 
6002
  TOK_ASPECT,
 
6003
  TOK_ADVICE,
 
6004
  TOK_SLICE,
 
6005
  TOK_UNKNOWN_T,
 
6006
 
 
6007
  TOK_LAST_AC = TOK_UNKNOWN_T,
 
6008
  
 
6009
  // further [A](C|C++) token
 
6010
  TOK_ID,
 
6011
 
 
6012
  // These two always have to be the ** last ** token listed here!!!
 
6013
  TOK_EPSILON,
 
6014
  TOK_NO
 
6015
  
 
6016
};
 
6017
 
 
6018
} // namespace Puma
 
6019
 
 
6020
#endif /* __C_TOKENS__ */
 
6021
 
 
6022
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6023
namespace Puma {
 
6024
  
 
6025
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6026
 
 
6027
}
 
6028
 
 
6029
 
 
6030
#line 6031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6031
class CCExprResolve;
 
6032
class CExprResolve;
 
6033
class WinImportHandler;
 
6034
class WinMacros;
 
6035
class WinAsm;
 
6036
class WinDeclSpecs;
 
6037
class WinMemberExplSpec;
 
6038
class WinTypeKeywords;
 
6039
class WinFriend;
 
6040
class ExtAC;
 
6041
class ExtACBuilderCoupling;
 
6042
class ExtACSyntaxCoupling;
 
6043
class ExtACTree;
 
6044
class ExtACKeywords;
 
6045
class ExtGnu;
 
6046
class PragmaOnceUnitState;
 
6047
class PragmaOnce;
 
6048
class CMatchSyntax;
 
6049
 
 
6050
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6051
class WinIfExists {
 
6052
#line 6053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6053
 
 
6054
public:
 
6055
  static WinIfExists *aspectof () {
 
6056
    static WinIfExists __instance;
 
6057
    return &__instance;
 
6058
  }
 
6059
  static WinIfExists *aspectOf () {
 
6060
    return aspectof ();
 
6061
  }
 
6062
private:
 
6063
 
 
6064
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6065
 
 
6066
#line 6067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6067
  friend class ::CCExprResolve;
 
6068
  friend class ::CExprResolve;
 
6069
  friend class ::WinImportHandler;
 
6070
  friend class ::WinMacros;
 
6071
  friend class ::WinAsm;
 
6072
  friend class ::WinDeclSpecs;
 
6073
  friend class ::WinMemberExplSpec;
 
6074
  friend class ::WinTypeKeywords;
 
6075
  friend class ::WinFriend;
 
6076
  friend class ::ExtAC;
 
6077
  friend class ::ExtACBuilderCoupling;
 
6078
  friend class ::ExtACSyntaxCoupling;
 
6079
  friend class ::ExtACTree;
 
6080
  friend class ::ExtACKeywords;
 
6081
  friend class ::ExtGnu;
 
6082
  friend class ::PragmaOnceUnitState;
 
6083
  friend class ::PragmaOnce;
 
6084
  friend class ::CMatchSyntax;
 
6085
 
 
6086
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6087
 
 
6088
  /********************************************************/
 
6089
  /* Win __if_exists and __if_not_exists                  */
 
6090
  /********************************************************/
 
6091
 
 
6092
  // pointcut definitions
 
6093
  
 
6094
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6095
 
 
6096
 
 
6097
  // structural extensions
 
6098
  
 
6099
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6100
 
 
6101
 
 
6102
  // preprocess __if_exists and __if_not_exists statements
 
6103
  
 
6104
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6105
 
 
6106
public: template<class JoinPoint> void __a0_around 
 
6107
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6108
 
 
6109
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6110
(JoinPoint *tjp)
 
6111
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6112
 {
 
6113
#line 6114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6114
 
 
6115
  JoinPoint *&thisJoinPoint = tjp;
 
6116
 
 
6117
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6118
 
 
6119
#line 6120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6120
 
 
6121
  typedef typename JoinPoint::That __JP_That;
 
6122
  typedef typename JoinPoint::Target __JP_Target;
 
6123
  typedef typename JoinPoint::Result __JP_Result;
 
6124
 
 
6125
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6126
 
 
6127
    Puma::Token *token;
 
6128
    int type;
 
6129
    __JP_That
 
6130
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6131
 *preparser;
 
6132
  
 
6133
    preparser = tjp->that ();
 
6134
    tjp->proceed (); // get the next token
 
6135
    token = *tjp->result ();
 
6136
    if (token) {
 
6137
      type = token->type ();
 
6138
      // __if_exists (...) { ... }
 
6139
      if (type == Puma::TOK_IF_EXISTS) {
 
6140
        preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
 
6141
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
6142
        return;
 
6143
        // __if_not_exists (...) { ... }
 
6144
      } else if (type == Puma::TOK_IF_NOT_EXISTS) {
 
6145
        preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
 
6146
        preparser->_depth.push (1);
 
6147
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
6148
        return;
 
6149
      }
 
6150
      // skip closing `}' of __if_not_exists
 
6151
      if (preparser->_depth.length ()) {
 
6152
        if (type == Puma::TOK_OPEN_CURLY) 
 
6153
          preparser->_depth.top () = preparser->_depth.top () + 1;
 
6154
        else if (type == Puma::TOK_CLOSE_CURLY) { 
 
6155
          preparser->_depth.top () = preparser->_depth.top () - 1;
 
6156
          if (preparser->_depth.top () == 0) {
 
6157
            preparser->_depth.pop ();
 
6158
            *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
6159
            return;
 
6160
          }
 
6161
        }
 
6162
      }
 
6163
    }
 
6164
  }
 
6165
#line 6166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6166
 
 
6167
private:
 
6168
 
 
6169
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6170
 
 
6171
 
 
6172
protected:
 
6173
  WinIfExists () {}
 
6174
};
 
6175
#line 6176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6176
 
 
6177
namespace AC {
 
6178
  template <class JoinPoint>
 
6179
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
 
6180
    ::WinIfExists::aspectof()->__a0_around (tjp);
 
6181
  }
 
6182
 
6183
 
 
6184
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6185
 
 
6186
 
 
6187
namespace Puma {
 
6188
  
 
6189
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6190
 
 
6191
    
 
6192
  // skip __if_exists resp. __if_not_exists statement
 
6193
  
 
6194
#line 135 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6195
 
 
6196
}
 
6197
 
 
6198
#endif /* __WinIfExists__ */
 
6199
 
 
6200
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6201
#endif
 
6202
namespace Puma {
 
6203
 
 
6204
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6205
 
 
6206
#line 6207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6207
} // closed Puma
 
6208
 
 
6209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6211
 
 
6212
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6213
// This file is part of PUMA.
 
6214
// Copyright (C) 1999-2003  The PUMA developer team.
 
6215
//                                                                
 
6216
// This program is free software;  you can redistribute it and/or 
 
6217
// modify it under the terms of the GNU General Public License as 
 
6218
// published by the Free Software Foundation; either version 2 of 
 
6219
// the License, or (at your option) any later version.            
 
6220
//                                                                
 
6221
// This program is distributed in the hope that it will be useful,
 
6222
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6223
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6224
// GNU General Public License for more details.                   
 
6225
//                                                                
 
6226
// You should have received a copy of the GNU General Public      
 
6227
// License along with this program; if not, write to the Free     
 
6228
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6229
// MA  02111-1307  USA                                            
 
6230
 
 
6231
#ifndef __PragmaOnce__
 
6232
#define __PragmaOnce__
 
6233
 
 
6234
/********************************************************/
 
6235
/* Win #pragma once support aspect                      */
 
6236
/********************************************************/
 
6237
 
 
6238
 
 
6239
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6240
#include <string.h>
 
6241
 
 
6242
 
 
6243
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6244
 
 
6245
#line 6246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6246
class CCExprResolve;
 
6247
class CExprResolve;
 
6248
class WinIfExists;
 
6249
class WinImportHandler;
 
6250
class WinMacros;
 
6251
class WinAsm;
 
6252
class WinDeclSpecs;
 
6253
class WinMemberExplSpec;
 
6254
class WinTypeKeywords;
 
6255
class WinFriend;
 
6256
class ExtAC;
 
6257
class ExtACBuilderCoupling;
 
6258
class ExtACSyntaxCoupling;
 
6259
class ExtACTree;
 
6260
class ExtACKeywords;
 
6261
class ExtGnu;
 
6262
class PragmaOnceUnitState;
 
6263
class CMatchSyntax;
 
6264
 
 
6265
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6266
class PragmaOnce {
 
6267
#line 6268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6268
 
 
6269
public:
 
6270
  static PragmaOnce *aspectof () {
 
6271
    static PragmaOnce __instance;
 
6272
    return &__instance;
 
6273
  }
 
6274
  static PragmaOnce *aspectOf () {
 
6275
    return aspectof ();
 
6276
  }
 
6277
private:
 
6278
 
 
6279
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6280
 
 
6281
#line 6282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6282
  friend class ::CCExprResolve;
 
6283
  friend class ::CExprResolve;
 
6284
  friend class ::WinIfExists;
 
6285
  friend class ::WinImportHandler;
 
6286
  friend class ::WinMacros;
 
6287
  friend class ::WinAsm;
 
6288
  friend class ::WinDeclSpecs;
 
6289
  friend class ::WinMemberExplSpec;
 
6290
  friend class ::WinTypeKeywords;
 
6291
  friend class ::WinFriend;
 
6292
  friend class ::ExtAC;
 
6293
  friend class ::ExtACBuilderCoupling;
 
6294
  friend class ::ExtACSyntaxCoupling;
 
6295
  friend class ::ExtACTree;
 
6296
  friend class ::ExtACKeywords;
 
6297
  friend class ::ExtGnu;
 
6298
  friend class ::PragmaOnceUnitState;
 
6299
  friend class ::CMatchSyntax;
 
6300
 
 
6301
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6302
 
 
6303
  /******************************************************/
 
6304
  /* detect #pragma once in the token stream of cpp     */
 
6305
  /******************************************************/
 
6306
 
 
6307
  // pointcut definitions
 
6308
  
 
6309
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6310
 
 
6311
  
 
6312
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6313
 
 
6314
  
 
6315
  // extend the preprocessor parser by the filter state
 
6316
  
 
6317
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6318
 
 
6319
 
 
6320
  // initialize the filter state
 
6321
  
 
6322
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6323
 
 
6324
public: template<class JoinPoint> void __a0_after 
 
6325
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6326
 
 
6327
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6328
(JoinPoint *tjp)
 
6329
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6330
 {
 
6331
#line 6332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6332
 
 
6333
  typedef typename JoinPoint::That __JP_That;
 
6334
  typedef typename JoinPoint::Target __JP_Target;
 
6335
  typedef typename JoinPoint::Result __JP_Result;
 
6336
 
 
6337
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6338
 
 
6339
    // TODO: it would be better to have construction advice -> but in lem file
 
6340
    tjp->that ()->_pragma_token = 0;
 
6341
  }
 
6342
#line 6343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6343
 
 
6344
private:
 
6345
 
 
6346
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6347
 
 
6348
  
 
6349
  // filter #pragma once
 
6350
  
 
6351
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6352
 
 
6353
public: template<class JoinPoint> void __a1_after 
 
6354
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6355
 
 
6356
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6357
(JoinPoint *tjp)
 
6358
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6359
 {
 
6360
#line 6361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6361
 
 
6362
  typedef typename JoinPoint::That __JP_That;
 
6363
  typedef typename JoinPoint::Target __JP_Target;
 
6364
  typedef typename JoinPoint::Result __JP_Result;
 
6365
 
 
6366
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6367
 
 
6368
    Puma::Token *tok = *tjp->result ();
 
6369
    __JP_That
 
6370
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6371
 &that = *tjp->that ();
 
6372
    if (!tok || !tok->is_directive ()) {
 
6373
      that._pragma_token = 0;
 
6374
      return;
 
6375
    }
 
6376
    if (strcmp ("#pragma", tok->text ()) == 0) {
 
6377
      that._pragma_token = tok;
 
6378
    }
 
6379
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
 
6380
      Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
 
6381
      assert (unit);
 
6382
      unit->state ().onlyOnce (true);
 
6383
    }
 
6384
  }
 
6385
#line 6386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6386
 
 
6387
private:
 
6388
 
 
6389
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6390
 
 
6391
  
 
6392
  /********************************************************/
 
6393
  /* block the handling of pragma once files              */
 
6394
  /********************************************************/
 
6395
 
 
6396
  // don't let file includer include files twice
 
6397
  // to be precise: the file is included again, but the inclusion produces
 
6398
  // no tokens
 
6399
  
 
6400
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6401
 
 
6402
public: template<class JoinPoint> void __a2_around 
 
6403
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6404
 
 
6405
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6406
(JoinPoint *tjp, Puma::Unit *unit)
 
6407
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6408
 {
 
6409
#line 6410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6410
 
 
6411
  typedef typename JoinPoint::That __JP_That;
 
6412
  typedef typename JoinPoint::Target __JP_Target;
 
6413
  typedef typename JoinPoint::Result __JP_Result;
 
6414
 
 
6415
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6416
 
 
6417
    if (! unit || ! unit->state ().onlyOnce ())
 
6418
      tjp->proceed ();
 
6419
  }
 
6420
#line 6421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6421
 
 
6422
private:
 
6423
 
 
6424
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6425
 
 
6426
 
 
6427
  // includeFile shall return 0 if the file was not included
 
6428
  
 
6429
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6430
 
 
6431
public: template<class JoinPoint> void __a3_after 
 
6432
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6433
 
 
6434
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6435
(JoinPoint *tjp)
 
6436
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6437
 {
 
6438
#line 6439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6439
 
 
6440
  typedef typename JoinPoint::That __JP_That;
 
6441
  typedef typename JoinPoint::Target __JP_Target;
 
6442
  typedef typename JoinPoint::Result __JP_Result;
 
6443
 
 
6444
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6445
 
 
6446
    Puma::Unit *&unit = *tjp->result ();
 
6447
    if (unit && unit->state ().onlyOnce ())
 
6448
      //unit = 0;
 
6449
      tjp->that ()->_guarded = true;
 
6450
  }
 
6451
#line 6452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6452
 
 
6453
private:
 
6454
 
 
6455
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6456
 
 
6457
    
 
6458
protected:
 
6459
  // this aspect should never be instantiated directly
 
6460
  PragmaOnce () {}
 
6461
};
 
6462
#line 6463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6463
 
 
6464
namespace AC {
 
6465
  template <class JoinPoint>
 
6466
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
 
6467
    ::PragmaOnce::aspectof()->__a0_after (tjp);
 
6468
  }
 
6469
  template <class JoinPoint>
 
6470
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
 
6471
    ::PragmaOnce::aspectof()->__a1_after (tjp);
 
6472
  }
 
6473
  template <class JoinPoint>
 
6474
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
 
6475
    typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
 
6476
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
 
6477
  }
 
6478
  template <class JoinPoint>
 
6479
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
 
6480
    ::PragmaOnce::aspectof()->__a3_after (tjp);
 
6481
  }
 
6482
 
6483
 
 
6484
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6485
 
 
6486
 
 
6487
 
 
6488
#endif /* __PragmaOnce__ */
 
6489
 
 
6490
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6491
#endif
 
6492
namespace Puma {
 
6493
 
 
6494
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6623
6495
class PreprocessorParser : public PumaTokenSource {
6624
 
#line 6625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6496
#line 6497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6497
  friend class ::CCExprResolve;
 
6498
  friend class ::CExprResolve;
6625
6499
  friend class ::WinIfExists;
6626
6500
  friend class ::WinImportHandler;
6627
6501
  friend class ::WinMacros;
6628
 
  friend class ::CMatchSyntax;
6629
 
  friend class ::ExtGnu;
 
6502
  friend class ::WinAsm;
 
6503
  friend class ::WinDeclSpecs;
 
6504
  friend class ::WinMemberExplSpec;
 
6505
  friend class ::WinTypeKeywords;
 
6506
  friend class ::WinFriend;
6630
6507
  friend class ::ExtAC;
6631
6508
  friend class ::ExtACBuilderCoupling;
6632
6509
  friend class ::ExtACSyntaxCoupling;
6633
6510
  friend class ::ExtACTree;
6634
6511
  friend class ::ExtACKeywords;
6635
 
  friend class ::WinAsm;
6636
 
  friend class ::WinDeclSpecs;
6637
 
  friend class ::WinMemberExplSpec;
6638
 
  friend class ::WinTypeKeywords;
 
6512
  friend class ::ExtGnu;
6639
6513
  friend class ::PragmaOnceUnitState;
6640
6514
  friend class ::PragmaOnce;
6641
 
  friend class ::CCExprResolve;
6642
 
  friend class ::CExprResolve;
 
6515
  friend class ::CMatchSyntax;
6643
6516
 
6644
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6517
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6645
6518
 
6646
6519
public:
6647
6520
  // The current mode for token preprocessing
6701
6574
  PreLevelState       *levelState () const       { return _levelState; }
6702
6575
  PreParserState      *parserState () const      { return _parserState; }
6703
6576
  PreMacroManager     *macroManager () const     { return _macroManager; }
 
6577
  void macroManager   (PreMacroManager *m)       { _macroManager = m; }
6704
6578
  PreFileIncluder     *fileIncluder () const     { return _fileIncluder; }
6705
6579
  PrePredicateManager *predicateManager () const { return _predicateManager; }
6706
6580
  UnitManager         *unitManager () const      { return _unitManager; }
6708
6582
  PreMode              pre_mode () const         { return _pre_mode; } 
6709
6583
  bool                 supportGNU () const       { return _support_gnu; }
6710
6584
  CScanner            &cscanner () const         { return (CScanner&) _scanner; }
 
6585
  const char          *importHandler () const    { return _importHandler; }
6711
6586
 
6712
6587
  // Return the preprocessor syntax tree.
6713
6588
  PreTree *syntaxTree () const;
6727
6602
        
6728
6603
  // Configure the preprocessor.
6729
6604
  
6730
 
#line 6731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6731
 
public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
6605
#line 6606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6606
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
6732
6607
 
6733
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6608
#line 134 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6734
6609
void configure (const Config &, bool = true);
6735
6610
        
6736
6611
  // Get the next token to parse.
6737
6612
  
6738
 
#line 6739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6739
 
public: inline ::Puma::Token * __exec_old_next();
 
6613
#line 6614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6614
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
6740
6615
 
6741
 
#line 135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6616
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6742
6617
Token *next ();
6743
6618
        
6744
6619
  TokenStream *scanner () const { return _stream; }
6770
6645
 
6771
6646
  void supportGNU (bool);
6772
6647
   private:
 
6648
 
 
6649
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
6650
 Puma :: Token * _pragma_token ;   private:
6773
6651
  typedef PreprocessorParser WinIfExistsCpp;
6774
6652
 
6775
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6776
 
 public :
6777
 
 
6778
 
Stack < unsigned > _depth ;
6779
 
 
6780
 
void skip_up_to ( int ) ;  private:
6781
 
 
6782
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6783
 
 public :
6784
 
const char * importHandler ( ) const { return _importHandler ; }  private:
6785
 
 
6786
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6787
 
 Token * _pragma_token ;
6788
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6653
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
6654
 public :
 
6655
 
 
6656
Puma :: Stack < unsigned > _depth ;
 
6657
 
 
6658
void skip_up_to ( int ) ;
 
6659
#line 167 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6789
6660
};
6790
6661
 
6791
6662
 
6793
6664
 
6794
6665
#endif /* __preprocessor_parser__ */
6795
6666
 
6796
 
#line 6797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6797
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
6798
 
 
6799
 
#line 170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6800
 
 
6801
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
6667
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6802
6668
// This file is part of PUMA.
6803
6669
// Copyright (C) 1999-2003  The PUMA developer team.
6804
6670
//                                                                
6825
6691
// are iterated. 
6826
6692
 
6827
6693
 
6828
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
6694
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6829
6695
// This file is part of PUMA.
6830
6696
// Copyright (C) 1999-2003  The PUMA developer team.
6831
6697
//                                                                
6850
6716
#include <map>
6851
6717
using std::map;
6852
6718
 
6853
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
6719
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6854
6720
using std::string;
6855
6721
 
6856
6722
 
6857
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
6723
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6858
6724
namespace Puma {
6859
6725
 
6860
6726
// the project file abstraction is used to store all filenames relevant
6861
6727
// for a specific file that is managed by Puma.
6862
6728
 
6863
6729
 
6864
 
#line 6865 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6730
#line 6731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6865
6731
} // closed Puma
 
6732
class CCExprResolve;
 
6733
class CExprResolve;
6866
6734
class WinIfExists;
6867
6735
class WinImportHandler;
6868
6736
class WinMacros;
6869
 
class CMatchSyntax;
6870
 
class ExtGnu;
 
6737
class WinAsm;
 
6738
class WinDeclSpecs;
 
6739
class WinMemberExplSpec;
 
6740
class WinTypeKeywords;
 
6741
class WinFriend;
6871
6742
class ExtAC;
6872
6743
class ExtACBuilderCoupling;
6873
6744
class ExtACSyntaxCoupling;
6874
6745
class ExtACTree;
6875
6746
class ExtACKeywords;
6876
 
class WinAsm;
6877
 
class WinDeclSpecs;
6878
 
class WinMemberExplSpec;
6879
 
class WinTypeKeywords;
 
6747
class ExtGnu;
6880
6748
class PragmaOnceUnitState;
6881
6749
class PragmaOnce;
6882
 
class CCExprResolve;
6883
 
class CExprResolve;
 
6750
class CMatchSyntax;
6884
6751
namespace Puma {
6885
6752
 
6886
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
6753
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6887
6754
class ProjectFile {
6888
 
#line 6889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6755
#line 6756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6756
  friend class ::CCExprResolve;
 
6757
  friend class ::CExprResolve;
6889
6758
  friend class ::WinIfExists;
6890
6759
  friend class ::WinImportHandler;
6891
6760
  friend class ::WinMacros;
6892
 
  friend class ::CMatchSyntax;
6893
 
  friend class ::ExtGnu;
 
6761
  friend class ::WinAsm;
 
6762
  friend class ::WinDeclSpecs;
 
6763
  friend class ::WinMemberExplSpec;
 
6764
  friend class ::WinTypeKeywords;
 
6765
  friend class ::WinFriend;
6894
6766
  friend class ::ExtAC;
6895
6767
  friend class ::ExtACBuilderCoupling;
6896
6768
  friend class ::ExtACSyntaxCoupling;
6897
6769
  friend class ::ExtACTree;
6898
6770
  friend class ::ExtACKeywords;
6899
 
  friend class ::WinAsm;
6900
 
  friend class ::WinDeclSpecs;
6901
 
  friend class ::WinMemberExplSpec;
6902
 
  friend class ::WinTypeKeywords;
 
6771
  friend class ::ExtGnu;
6903
6772
  friend class ::PragmaOnceUnitState;
6904
6773
  friend class ::PragmaOnce;
6905
 
  friend class ::CCExprResolve;
6906
 
  friend class ::CExprResolve;
 
6774
  friend class ::CMatchSyntax;
6907
6775
 
6908
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
6776
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6909
6777
 
6910
6778
  Filename _nick_name;
6911
6779
  Filename _dest_path;
6929
6797
 
6930
6798
#endif // __project_file__
6931
6799
 
6932
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
6800
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6933
6801
namespace Puma {
6934
6802
 
6935
6803
class PathManager;
6936
6804
class RegComp;
6937
6805
 
6938
6806
 
6939
 
#line 6940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6807
#line 6808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6940
6808
} // closed Puma
 
6809
class CCExprResolve;
 
6810
class CExprResolve;
6941
6811
class WinIfExists;
6942
6812
class WinImportHandler;
6943
6813
class WinMacros;
6944
 
class CMatchSyntax;
6945
 
class ExtGnu;
 
6814
class WinAsm;
 
6815
class WinDeclSpecs;
 
6816
class WinMemberExplSpec;
 
6817
class WinTypeKeywords;
 
6818
class WinFriend;
6946
6819
class ExtAC;
6947
6820
class ExtACBuilderCoupling;
6948
6821
class ExtACSyntaxCoupling;
6949
6822
class ExtACTree;
6950
6823
class ExtACKeywords;
6951
 
class WinAsm;
6952
 
class WinDeclSpecs;
6953
 
class WinMemberExplSpec;
6954
 
class WinTypeKeywords;
 
6824
class ExtGnu;
6955
6825
class PragmaOnceUnitState;
6956
6826
class PragmaOnce;
6957
 
class CCExprResolve;
6958
 
class CExprResolve;
 
6827
class CMatchSyntax;
6959
6828
namespace Puma {
6960
6829
 
6961
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
6830
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6962
6831
class PathIterator : public PFMConstIter {
6963
 
#line 6964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6832
#line 6833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6833
  friend class ::CCExprResolve;
 
6834
  friend class ::CExprResolve;
6964
6835
  friend class ::WinIfExists;
6965
6836
  friend class ::WinImportHandler;
6966
6837
  friend class ::WinMacros;
6967
 
  friend class ::CMatchSyntax;
6968
 
  friend class ::ExtGnu;
 
6838
  friend class ::WinAsm;
 
6839
  friend class ::WinDeclSpecs;
 
6840
  friend class ::WinMemberExplSpec;
 
6841
  friend class ::WinTypeKeywords;
 
6842
  friend class ::WinFriend;
6969
6843
  friend class ::ExtAC;
6970
6844
  friend class ::ExtACBuilderCoupling;
6971
6845
  friend class ::ExtACSyntaxCoupling;
6972
6846
  friend class ::ExtACTree;
6973
6847
  friend class ::ExtACKeywords;
6974
 
  friend class ::WinAsm;
6975
 
  friend class ::WinDeclSpecs;
6976
 
  friend class ::WinMemberExplSpec;
6977
 
  friend class ::WinTypeKeywords;
 
6848
  friend class ::ExtGnu;
6978
6849
  friend class ::PragmaOnceUnitState;
6979
6850
  friend class ::PragmaOnce;
6980
 
  friend class ::CCExprResolve;
6981
 
  friend class ::CExprResolve;
 
6851
  friend class ::CMatchSyntax;
6982
6852
 
6983
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
6853
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6984
6854
 
6985
6855
  friend class PathManager;
6986
6856
 
7005
6875
 
7006
6876
#endif /* __path_iterator__ */
7007
6877
 
7008
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StringSource.h"
 
6878
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StringSource.h"
7009
6879
// This file is part of PUMA.
7010
6880
// Copyright (C) 1999-2003  The PUMA developer team.
7011
6881
//                                                                
7028
6898
#define __string_source_h__
7029
6899
 
7030
6900
 
7031
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StringSource.h"
 
6901
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StringSource.h"
7032
6902
namespace Puma {
7033
6903
 
7034
6904
 
7035
6905
 
7036
 
#line 7037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6906
#line 6907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7037
6907
} // closed Puma
 
6908
class CCExprResolve;
 
6909
class CExprResolve;
7038
6910
class WinIfExists;
7039
6911
class WinImportHandler;
7040
6912
class WinMacros;
7041
 
class CMatchSyntax;
7042
 
class ExtGnu;
 
6913
class WinAsm;
 
6914
class WinDeclSpecs;
 
6915
class WinMemberExplSpec;
 
6916
class WinTypeKeywords;
 
6917
class WinFriend;
7043
6918
class ExtAC;
7044
6919
class ExtACBuilderCoupling;
7045
6920
class ExtACSyntaxCoupling;
7046
6921
class ExtACTree;
7047
6922
class ExtACKeywords;
7048
 
class WinAsm;
7049
 
class WinDeclSpecs;
7050
 
class WinMemberExplSpec;
7051
 
class WinTypeKeywords;
 
6923
class ExtGnu;
7052
6924
class PragmaOnceUnitState;
7053
6925
class PragmaOnce;
7054
 
class CCExprResolve;
7055
 
class CExprResolve;
 
6926
class CMatchSyntax;
7056
6927
namespace Puma {
7057
6928
 
7058
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StringSource.h"
 
6929
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StringSource.h"
7059
6930
class StringSource : public Source {
7060
 
#line 7061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
6931
#line 6932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
6932
  friend class ::CCExprResolve;
 
6933
  friend class ::CExprResolve;
7061
6934
  friend class ::WinIfExists;
7062
6935
  friend class ::WinImportHandler;
7063
6936
  friend class ::WinMacros;
7064
 
  friend class ::CMatchSyntax;
7065
 
  friend class ::ExtGnu;
 
6937
  friend class ::WinAsm;
 
6938
  friend class ::WinDeclSpecs;
 
6939
  friend class ::WinMemberExplSpec;
 
6940
  friend class ::WinTypeKeywords;
 
6941
  friend class ::WinFriend;
7066
6942
  friend class ::ExtAC;
7067
6943
  friend class ::ExtACBuilderCoupling;
7068
6944
  friend class ::ExtACSyntaxCoupling;
7069
6945
  friend class ::ExtACTree;
7070
6946
  friend class ::ExtACKeywords;
7071
 
  friend class ::WinAsm;
7072
 
  friend class ::WinDeclSpecs;
7073
 
  friend class ::WinMemberExplSpec;
7074
 
  friend class ::WinTypeKeywords;
 
6947
  friend class ::ExtGnu;
7075
6948
  friend class ::PragmaOnceUnitState;
7076
6949
  friend class ::PragmaOnce;
7077
 
  friend class ::CCExprResolve;
7078
 
  friend class ::CExprResolve;
 
6950
  friend class ::CMatchSyntax;
7079
6951
 
7080
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StringSource.h"
 
6952
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StringSource.h"
7081
6953
 
7082
6954
  const char *_string;
7083
6955
  int _delivered;
7117
6989
 
7118
6990
#endif /* __string_source_h__ */
7119
6991
 
7120
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileSource.h"
 
6992
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileSource.h"
7121
6993
// This file is part of PUMA.
7122
6994
// Copyright (C) 1999-2003  The PUMA developer team.
7123
6995
//                                                                
7140
7012
#define __file_source_h__
7141
7013
 
7142
7014
 
7143
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FdSource.h"
 
7015
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FdSource.h"
7144
7016
// This file is part of PUMA.
7145
7017
// Copyright (C) 1999-2003  The PUMA developer team.
7146
7018
//                                                                
7163
7035
#define __fd_source_h__
7164
7036
 
7165
7037
 
7166
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7038
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7167
7039
// This file is part of PUMA.
7168
7040
// Copyright (C) 1999-2003  The PUMA developer team.
7169
7041
//                                                                
7192
7064
#include <stddef.h>
7193
7065
#include <sys/stat.h>
7194
7066
 
7195
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7067
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7196
7068
#ifdef _MSC_VER
7197
7069
#include <string.h>
7198
7070
#include <stdlib.h>
7201
7073
#endif // _MSVC
7202
7074
 
7203
7075
 
7204
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7076
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7205
7077
namespace Puma {
7206
7078
 
7207
7079
class SysCall;
7208
7080
 
7209
 
#line 7210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7081
 
 
7082
#line 7083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7210
7083
} // closed Puma
 
7084
class CCExprResolve;
 
7085
class CExprResolve;
7211
7086
class WinIfExists;
7212
7087
class WinImportHandler;
7213
7088
class WinMacros;
7214
 
class CMatchSyntax;
7215
 
class ExtGnu;
 
7089
class WinAsm;
 
7090
class WinDeclSpecs;
 
7091
class WinMemberExplSpec;
 
7092
class WinTypeKeywords;
 
7093
class WinFriend;
7216
7094
class ExtAC;
7217
7095
class ExtACBuilderCoupling;
7218
7096
class ExtACSyntaxCoupling;
7219
7097
class ExtACTree;
7220
7098
class ExtACKeywords;
7221
 
class WinAsm;
7222
 
class WinDeclSpecs;
7223
 
class WinMemberExplSpec;
7224
 
class WinTypeKeywords;
 
7099
class ExtGnu;
7225
7100
class PragmaOnceUnitState;
7226
7101
class PragmaOnce;
7227
 
class CCExprResolve;
7228
 
class CExprResolve;
 
7102
class CMatchSyntax;
7229
7103
namespace Puma {
7230
7104
 
7231
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7105
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7232
7106
class FileInfo {
7233
 
#line 7234 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7107
#line 7108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7108
  friend class ::CCExprResolve;
 
7109
  friend class ::CExprResolve;
7234
7110
  friend class ::WinIfExists;
7235
7111
  friend class ::WinImportHandler;
7236
7112
  friend class ::WinMacros;
7237
 
  friend class ::CMatchSyntax;
7238
 
  friend class ::ExtGnu;
 
7113
  friend class ::WinAsm;
 
7114
  friend class ::WinDeclSpecs;
 
7115
  friend class ::WinMemberExplSpec;
 
7116
  friend class ::WinTypeKeywords;
 
7117
  friend class ::WinFriend;
7239
7118
  friend class ::ExtAC;
7240
7119
  friend class ::ExtACBuilderCoupling;
7241
7120
  friend class ::ExtACSyntaxCoupling;
7242
7121
  friend class ::ExtACTree;
7243
7122
  friend class ::ExtACKeywords;
7244
 
  friend class ::WinAsm;
7245
 
  friend class ::WinDeclSpecs;
7246
 
  friend class ::WinMemberExplSpec;
7247
 
  friend class ::WinTypeKeywords;
 
7123
  friend class ::ExtGnu;
7248
7124
  friend class ::PragmaOnceUnitState;
7249
7125
  friend class ::PragmaOnce;
7250
 
  friend class ::CCExprResolve;
7251
 
  friend class ::CExprResolve;
 
7126
  friend class ::CMatchSyntax;
7252
7127
 
7253
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7128
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7254
7129
 
7255
7130
  friend class SysCall;
7256
7131
#ifndef _MSC_VER
7258
7133
#else
7259
7134
  struct _stat _info;
7260
7135
#endif
 
7136
 
7261
7137
public:
7262
7138
  bool is_dir () const {
7263
7139
#ifdef _MSC_VER
7264
 
          return _S_IFDIR & _info.st_mode; }
 
7140
    return _S_IFDIR & _info.st_mode;
7265
7141
#else
7266
 
          return S_ISDIR (_info.st_mode); }
 
7142
    return S_ISDIR (_info.st_mode);
7267
7143
#endif // _MSC_VER
 
7144
  }
7268
7145
  time_t modi_time () const { return _info.st_mtime; }
7269
7146
  int size () const { return _info.st_size; }
7270
7147
};
7271
7148
 
7272
7149
#ifdef _MSC_VER
7273
7150
struct DIR {
7274
 
        long _handle;
7275
 
        DIR (long h) : _handle (h) {}
 
7151
  long _handle;
 
7152
  DIR (long h) : _handle (h) {}
7276
7153
};
7277
7154
#endif // _MSC_VER
7278
7155
 
7282
7159
class ErrorSink;
7283
7160
 
7284
7161
 
7285
 
#line 7286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7162
#line 7163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7286
7163
} // closed Puma
 
7164
class CCExprResolve;
 
7165
class CExprResolve;
7287
7166
class WinIfExists;
7288
7167
class WinImportHandler;
7289
7168
class WinMacros;
7290
 
class CMatchSyntax;
7291
 
class ExtGnu;
 
7169
class WinAsm;
 
7170
class WinDeclSpecs;
 
7171
class WinMemberExplSpec;
 
7172
class WinTypeKeywords;
 
7173
class WinFriend;
7292
7174
class ExtAC;
7293
7175
class ExtACBuilderCoupling;
7294
7176
class ExtACSyntaxCoupling;
7295
7177
class ExtACTree;
7296
7178
class ExtACKeywords;
7297
 
class WinAsm;
7298
 
class WinDeclSpecs;
7299
 
class WinMemberExplSpec;
7300
 
class WinTypeKeywords;
 
7179
class ExtGnu;
7301
7180
class PragmaOnceUnitState;
7302
7181
class PragmaOnce;
7303
 
class CCExprResolve;
7304
 
class CExprResolve;
 
7182
class CMatchSyntax;
7305
7183
namespace Puma {
7306
7184
 
7307
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7185
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7308
7186
class SysCall {
7309
 
#line 7310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7187
#line 7188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7188
  friend class ::CCExprResolve;
 
7189
  friend class ::CExprResolve;
7310
7190
  friend class ::WinIfExists;
7311
7191
  friend class ::WinImportHandler;
7312
7192
  friend class ::WinMacros;
7313
 
  friend class ::CMatchSyntax;
7314
 
  friend class ::ExtGnu;
 
7193
  friend class ::WinAsm;
 
7194
  friend class ::WinDeclSpecs;
 
7195
  friend class ::WinMemberExplSpec;
 
7196
  friend class ::WinTypeKeywords;
 
7197
  friend class ::WinFriend;
7315
7198
  friend class ::ExtAC;
7316
7199
  friend class ::ExtACBuilderCoupling;
7317
7200
  friend class ::ExtACSyntaxCoupling;
7318
7201
  friend class ::ExtACTree;
7319
7202
  friend class ::ExtACKeywords;
7320
 
  friend class ::WinAsm;
7321
 
  friend class ::WinDeclSpecs;
7322
 
  friend class ::WinMemberExplSpec;
7323
 
  friend class ::WinTypeKeywords;
 
7203
  friend class ::ExtGnu;
7324
7204
  friend class ::PragmaOnceUnitState;
7325
7205
  friend class ::PragmaOnce;
7326
 
  friend class ::CCExprResolve;
7327
 
  friend class ::CExprResolve;
 
7206
  friend class ::CMatchSyntax;
7328
7207
 
7329
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
7208
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SysCall.h"
7330
7209
 
7331
7210
  static void printerror (ErrorSink *, const char *, 
7332
7211
                          const char * = (const char *)0);
7338
7217
  // create temporary file name, needs to be freed by caller
7339
7218
  static const char* mktemp (const char *prefix, ErrorSink * = (ErrorSink *)0);
7340
7219
 
7341
 
  // open/close file
 
7220
  // open/create/close file with exclusive file locking
 
7221
  static int open_excl (const char *, int, ErrorSink * = (ErrorSink *)0);
 
7222
  static int create_excl (const char *, int, ErrorSink * = (ErrorSink *)0);
 
7223
  static bool close_excl (int, ErrorSink * = (ErrorSink *)0);
 
7224
        
 
7225
  // open/create/close file
7342
7226
  static int open (const char *, int, ErrorSink * = (ErrorSink *)0);
 
7227
  static int create (const char *, int, ErrorSink * = (ErrorSink *)0);
7343
7228
  static bool close (int, ErrorSink * = (ErrorSink *)0);
7344
7229
        
7345
7230
  // read from file descriptor
7391
7276
 
7392
7277
#endif /* __SysCall_h__ */
7393
7278
 
7394
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FdSource.h"
 
7279
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FdSource.h"
7395
7280
namespace Puma {
7396
7281
 
7397
7282
 
7398
7283
 
7399
 
#line 7400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7284
#line 7285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7400
7285
} // closed Puma
 
7286
class CCExprResolve;
 
7287
class CExprResolve;
7401
7288
class WinIfExists;
7402
7289
class WinImportHandler;
7403
7290
class WinMacros;
7404
 
class CMatchSyntax;
7405
 
class ExtGnu;
 
7291
class WinAsm;
 
7292
class WinDeclSpecs;
 
7293
class WinMemberExplSpec;
 
7294
class WinTypeKeywords;
 
7295
class WinFriend;
7406
7296
class ExtAC;
7407
7297
class ExtACBuilderCoupling;
7408
7298
class ExtACSyntaxCoupling;
7409
7299
class ExtACTree;
7410
7300
class ExtACKeywords;
7411
 
class WinAsm;
7412
 
class WinDeclSpecs;
7413
 
class WinMemberExplSpec;
7414
 
class WinTypeKeywords;
 
7301
class ExtGnu;
7415
7302
class PragmaOnceUnitState;
7416
7303
class PragmaOnce;
7417
 
class CCExprResolve;
7418
 
class CExprResolve;
 
7304
class CMatchSyntax;
7419
7305
namespace Puma {
7420
7306
 
7421
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FdSource.h"
 
7307
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FdSource.h"
7422
7308
class FdSource : public Source {
7423
 
#line 7424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7309
#line 7310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7310
  friend class ::CCExprResolve;
 
7311
  friend class ::CExprResolve;
7424
7312
  friend class ::WinIfExists;
7425
7313
  friend class ::WinImportHandler;
7426
7314
  friend class ::WinMacros;
7427
 
  friend class ::CMatchSyntax;
7428
 
  friend class ::ExtGnu;
 
7315
  friend class ::WinAsm;
 
7316
  friend class ::WinDeclSpecs;
 
7317
  friend class ::WinMemberExplSpec;
 
7318
  friend class ::WinTypeKeywords;
 
7319
  friend class ::WinFriend;
7429
7320
  friend class ::ExtAC;
7430
7321
  friend class ::ExtACBuilderCoupling;
7431
7322
  friend class ::ExtACSyntaxCoupling;
7432
7323
  friend class ::ExtACTree;
7433
7324
  friend class ::ExtACKeywords;
7434
 
  friend class ::WinAsm;
7435
 
  friend class ::WinDeclSpecs;
7436
 
  friend class ::WinMemberExplSpec;
7437
 
  friend class ::WinTypeKeywords;
 
7325
  friend class ::ExtGnu;
7438
7326
  friend class ::PragmaOnceUnitState;
7439
7327
  friend class ::PragmaOnce;
7440
 
  friend class ::CCExprResolve;
7441
 
  friend class ::CExprResolve;
 
7328
  friend class ::CMatchSyntax;
7442
7329
 
7443
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FdSource.h"
 
7330
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FdSource.h"
7444
7331
 
7445
7332
  int _fd;
7446
7333
 
7466
7353
 
7467
7354
#endif /* __fd_source_h__ */
7468
7355
 
7469
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileSource.h"
 
7356
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileSource.h"
7470
7357
#include <fcntl.h>
7471
7358
 
7472
7359
namespace Puma {
7473
7360
 
7474
7361
 
7475
7362
 
7476
 
#line 7477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7363
#line 7364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7477
7364
} // closed Puma
 
7365
class CCExprResolve;
 
7366
class CExprResolve;
7478
7367
class WinIfExists;
7479
7368
class WinImportHandler;
7480
7369
class WinMacros;
7481
 
class CMatchSyntax;
7482
 
class ExtGnu;
 
7370
class WinAsm;
 
7371
class WinDeclSpecs;
 
7372
class WinMemberExplSpec;
 
7373
class WinTypeKeywords;
 
7374
class WinFriend;
7483
7375
class ExtAC;
7484
7376
class ExtACBuilderCoupling;
7485
7377
class ExtACSyntaxCoupling;
7486
7378
class ExtACTree;
7487
7379
class ExtACKeywords;
7488
 
class WinAsm;
7489
 
class WinDeclSpecs;
7490
 
class WinMemberExplSpec;
7491
 
class WinTypeKeywords;
 
7380
class ExtGnu;
7492
7381
class PragmaOnceUnitState;
7493
7382
class PragmaOnce;
7494
 
class CCExprResolve;
7495
 
class CExprResolve;
 
7383
class CMatchSyntax;
7496
7384
namespace Puma {
7497
7385
 
7498
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileSource.h"
 
7386
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileSource.h"
7499
7387
class FileSource : public FdSource {
7500
 
#line 7501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7388
#line 7389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7389
  friend class ::CCExprResolve;
 
7390
  friend class ::CExprResolve;
7501
7391
  friend class ::WinIfExists;
7502
7392
  friend class ::WinImportHandler;
7503
7393
  friend class ::WinMacros;
7504
 
  friend class ::CMatchSyntax;
7505
 
  friend class ::ExtGnu;
 
7394
  friend class ::WinAsm;
 
7395
  friend class ::WinDeclSpecs;
 
7396
  friend class ::WinMemberExplSpec;
 
7397
  friend class ::WinTypeKeywords;
 
7398
  friend class ::WinFriend;
7506
7399
  friend class ::ExtAC;
7507
7400
  friend class ::ExtACBuilderCoupling;
7508
7401
  friend class ::ExtACSyntaxCoupling;
7509
7402
  friend class ::ExtACTree;
7510
7403
  friend class ::ExtACKeywords;
7511
 
  friend class ::WinAsm;
7512
 
  friend class ::WinDeclSpecs;
7513
 
  friend class ::WinMemberExplSpec;
7514
 
  friend class ::WinTypeKeywords;
 
7404
  friend class ::ExtGnu;
7515
7405
  friend class ::PragmaOnceUnitState;
7516
7406
  friend class ::PragmaOnce;
7517
 
  friend class ::CCExprResolve;
7518
 
  friend class ::CExprResolve;
 
7407
  friend class ::CMatchSyntax;
7519
7408
 
7520
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileSource.h"
 
7409
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileSource.h"
7521
7410
 
7522
7411
public:
7523
7412
  FileSource (const char *name, ErrorSink *err = (ErrorSink*)0)
7534
7423
 
7535
7424
#endif /* __file_source_h__ */
7536
7425
 
7537
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
7426
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
7538
7427
// This file is part of PUMA.
7539
7428
// Copyright (C) 1999-2003  The PUMA developer team.
7540
7429
//                                                                
7559
7448
// Special project derivation for C++ sources.
7560
7449
 
7561
7450
 
7562
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
 
7451
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
7563
7452
// This file is part of PUMA.
7564
7453
// Copyright (C) 1999-2003  The PUMA developer team.
7565
7454
//                                                                
7585
7474
// methods for searching and writing files. 
7586
7475
 
7587
7476
 
7588
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
7477
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
7589
7478
// This file is part of PUMA.
7590
7479
// Copyright (C) 1999-2003  The PUMA developer team.
7591
7480
//                                                                
7610
7499
// Manages directories and methods to access the files in it.
7611
7500
 
7612
7501
 
7613
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
7502
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
7614
7503
// This file is part of PUMA.
7615
7504
// Copyright (C) 1999-2003  The PUMA developer team.
7616
7505
//                                                                
7639
7528
 
7640
7529
 
7641
7530
 
7642
 
#line 7643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7531
#line 7532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7643
7532
} // closed Puma
 
7533
class CCExprResolve;
 
7534
class CExprResolve;
7644
7535
class WinIfExists;
7645
7536
class WinImportHandler;
7646
7537
class WinMacros;
7647
 
class CMatchSyntax;
7648
 
class ExtGnu;
 
7538
class WinAsm;
 
7539
class WinDeclSpecs;
 
7540
class WinMemberExplSpec;
 
7541
class WinTypeKeywords;
 
7542
class WinFriend;
7649
7543
class ExtAC;
7650
7544
class ExtACBuilderCoupling;
7651
7545
class ExtACSyntaxCoupling;
7652
7546
class ExtACTree;
7653
7547
class ExtACKeywords;
7654
 
class WinAsm;
7655
 
class WinDeclSpecs;
7656
 
class WinMemberExplSpec;
7657
 
class WinTypeKeywords;
 
7548
class ExtGnu;
7658
7549
class PragmaOnceUnitState;
7659
7550
class PragmaOnce;
7660
 
class CCExprResolve;
7661
 
class CExprResolve;
 
7551
class CMatchSyntax;
7662
7552
namespace Puma {
7663
7553
 
7664
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
7554
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
7665
7555
class PathInfo {
7666
 
#line 7667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7556
#line 7557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7557
  friend class ::CCExprResolve;
 
7558
  friend class ::CExprResolve;
7667
7559
  friend class ::WinIfExists;
7668
7560
  friend class ::WinImportHandler;
7669
7561
  friend class ::WinMacros;
7670
 
  friend class ::CMatchSyntax;
7671
 
  friend class ::ExtGnu;
 
7562
  friend class ::WinAsm;
 
7563
  friend class ::WinDeclSpecs;
 
7564
  friend class ::WinMemberExplSpec;
 
7565
  friend class ::WinTypeKeywords;
 
7566
  friend class ::WinFriend;
7672
7567
  friend class ::ExtAC;
7673
7568
  friend class ::ExtACBuilderCoupling;
7674
7569
  friend class ::ExtACSyntaxCoupling;
7675
7570
  friend class ::ExtACTree;
7676
7571
  friend class ::ExtACKeywords;
7677
 
  friend class ::WinAsm;
7678
 
  friend class ::WinDeclSpecs;
7679
 
  friend class ::WinMemberExplSpec;
7680
 
  friend class ::WinTypeKeywords;
 
7572
  friend class ::ExtGnu;
7681
7573
  friend class ::PragmaOnceUnitState;
7682
7574
  friend class ::PragmaOnce;
7683
 
  friend class ::CCExprResolve;
7684
 
  friend class ::CExprResolve;
 
7575
  friend class ::CMatchSyntax;
7685
7576
 
7686
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
7577
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
7687
7578
 
7688
7579
  const char *_src;        // Source path.
7689
7580
  const char *_dest;        // Destination path.
7710
7601
 
7711
7602
#endif /* __path_info__ */
7712
7603
 
7713
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
7604
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
7714
7605
namespace Puma {
7715
7606
 
7716
7607
class RegComp;
7718
7609
class Unit;
7719
7610
 
7720
7611
 
7721
 
#line 7722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7612
#line 7613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7722
7613
} // closed Puma
 
7614
class CCExprResolve;
 
7615
class CExprResolve;
7723
7616
class WinIfExists;
7724
7617
class WinImportHandler;
7725
7618
class WinMacros;
7726
 
class CMatchSyntax;
7727
 
class ExtGnu;
 
7619
class WinAsm;
 
7620
class WinDeclSpecs;
 
7621
class WinMemberExplSpec;
 
7622
class WinTypeKeywords;
 
7623
class WinFriend;
7728
7624
class ExtAC;
7729
7625
class ExtACBuilderCoupling;
7730
7626
class ExtACSyntaxCoupling;
7731
7627
class ExtACTree;
7732
7628
class ExtACKeywords;
7733
 
class WinAsm;
7734
 
class WinDeclSpecs;
7735
 
class WinMemberExplSpec;
7736
 
class WinTypeKeywords;
 
7629
class ExtGnu;
7737
7630
class PragmaOnceUnitState;
7738
7631
class PragmaOnce;
7739
 
class CCExprResolve;
7740
 
class CExprResolve;
 
7632
class CMatchSyntax;
7741
7633
namespace Puma {
7742
7634
 
7743
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
7635
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
7744
7636
class PathManager {
7745
 
#line 7746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7637
#line 7638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7638
  friend class ::CCExprResolve;
 
7639
  friend class ::CExprResolve;
7746
7640
  friend class ::WinIfExists;
7747
7641
  friend class ::WinImportHandler;
7748
7642
  friend class ::WinMacros;
7749
 
  friend class ::CMatchSyntax;
7750
 
  friend class ::ExtGnu;
 
7643
  friend class ::WinAsm;
 
7644
  friend class ::WinDeclSpecs;
 
7645
  friend class ::WinMemberExplSpec;
 
7646
  friend class ::WinTypeKeywords;
 
7647
  friend class ::WinFriend;
7751
7648
  friend class ::ExtAC;
7752
7649
  friend class ::ExtACBuilderCoupling;
7753
7650
  friend class ::ExtACSyntaxCoupling;
7754
7651
  friend class ::ExtACTree;
7755
7652
  friend class ::ExtACKeywords;
7756
 
  friend class ::WinAsm;
7757
 
  friend class ::WinDeclSpecs;
7758
 
  friend class ::WinMemberExplSpec;
7759
 
  friend class ::WinTypeKeywords;
 
7653
  friend class ::ExtGnu;
7760
7654
  friend class ::PragmaOnceUnitState;
7761
7655
  friend class ::PragmaOnce;
7762
 
  friend class ::CCExprResolve;
7763
 
  friend class ::CExprResolve;
 
7656
  friend class ::CMatchSyntax;
7764
7657
 
7765
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
7658
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
7766
7659
 
7767
7660
 
7768
7661
  ErrorStream     *_err;
7864
7757
 
7865
7758
#endif /* __path_manager__ */
7866
7759
 
7867
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7760
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7761
 
 
7762
#line 7763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7763
 
 
7764
#ifndef __ac_fwd_PragmaOnceUnitState__
 
7765
#define __ac_fwd_PragmaOnceUnitState__
 
7766
class PragmaOnceUnitState;
 
7767
namespace AC {
 
7768
  template <class JoinPoint>
 
7769
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
7770
  template <class JoinPoint>
 
7771
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
7772
}
 
7773
#endif
 
7774
 
 
7775
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
7776
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
7777
#endif
 
7778
 
 
7779
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
7868
7780
// This file is part of PUMA.
7869
7781
// Copyright (C) 1999-2003  The PUMA developer team.
7870
7782
//                                                                
7889
7801
// Class UnitManager helps you to have control of all units built.
7890
7802
 
7891
7803
 
7892
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7804
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
7893
7805
#include <list>
7894
7806
 
7895
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7807
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
7896
7808
using namespace std;
7897
7809
 
7898
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7810
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
7899
7811
namespace Puma {
7900
7812
 
7901
7813
 
7904
7816
class Tokenizer;
7905
7817
 
7906
7818
 
7907
 
#line 7908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7819
#line 7820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
7908
7820
} // closed Puma
 
7821
class CCExprResolve;
 
7822
class CExprResolve;
7909
7823
class WinIfExists;
7910
7824
class WinImportHandler;
7911
7825
class WinMacros;
7912
 
class CMatchSyntax;
7913
 
class ExtGnu;
 
7826
class WinAsm;
 
7827
class WinDeclSpecs;
 
7828
class WinMemberExplSpec;
 
7829
class WinTypeKeywords;
 
7830
class WinFriend;
7914
7831
class ExtAC;
7915
7832
class ExtACBuilderCoupling;
7916
7833
class ExtACSyntaxCoupling;
7917
7834
class ExtACTree;
7918
7835
class ExtACKeywords;
7919
 
class WinAsm;
7920
 
class WinDeclSpecs;
7921
 
class WinMemberExplSpec;
7922
 
class WinTypeKeywords;
 
7836
class ExtGnu;
7923
7837
class PragmaOnceUnitState;
7924
7838
class PragmaOnce;
7925
 
class CCExprResolve;
7926
 
class CExprResolve;
 
7839
class CMatchSyntax;
7927
7840
namespace Puma {
7928
7841
 
7929
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7842
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
7930
7843
class UnitManager {
7931
 
#line 7932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7844
#line 7845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7845
  friend class ::CCExprResolve;
 
7846
  friend class ::CExprResolve;
7932
7847
  friend class ::WinIfExists;
7933
7848
  friend class ::WinImportHandler;
7934
7849
  friend class ::WinMacros;
7935
 
  friend class ::CMatchSyntax;
7936
 
  friend class ::ExtGnu;
 
7850
  friend class ::WinAsm;
 
7851
  friend class ::WinDeclSpecs;
 
7852
  friend class ::WinMemberExplSpec;
 
7853
  friend class ::WinTypeKeywords;
 
7854
  friend class ::WinFriend;
7937
7855
  friend class ::ExtAC;
7938
7856
  friend class ::ExtACBuilderCoupling;
7939
7857
  friend class ::ExtACSyntaxCoupling;
7940
7858
  friend class ::ExtACTree;
7941
7859
  friend class ::ExtACKeywords;
7942
 
  friend class ::WinAsm;
7943
 
  friend class ::WinDeclSpecs;
7944
 
  friend class ::WinMemberExplSpec;
7945
 
  friend class ::WinTypeKeywords;
 
7860
  friend class ::ExtGnu;
7946
7861
  friend class ::PragmaOnceUnitState;
7947
7862
  friend class ::PragmaOnce;
7948
 
  friend class ::CCExprResolve;
7949
 
  friend class ::CExprResolve;
 
7863
  friend class ::CMatchSyntax;
7950
7864
 
7951
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7865
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
7952
7866
 
7953
7867
public:
7954
7868
  typedef map<string, Unit*> UMap;
8001
7915
      
8002
7916
  // Initialize the unit manager and the managed 
8003
7917
  // units for the next parse process.
8004
 
  void init ();
 
7918
  
 
7919
#line 7920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7920
public: __attribute__((always_inline)) inline void __exec_old_init();
 
7921
 
 
7922
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
7923
void init ();
8005
7924
};
8006
7925
 
8007
7926
 
8009
7928
 
8010
7929
#endif /* __UnitManager__ */
8011
7930
 
8012
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
7931
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
8013
7932
// This file is part of PUMA.
8014
7933
// Copyright (C) 1999-2003  The PUMA developer team.
8015
7934
//                                                                
8036
7955
 
8037
7956
// Project file save mode.
8038
7957
 
8039
 
#line 8040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7958
#line 7959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8040
7959
} // closed Puma
 
7960
class CCExprResolve;
 
7961
class CExprResolve;
8041
7962
class WinIfExists;
8042
7963
class WinImportHandler;
8043
7964
class WinMacros;
8044
 
class CMatchSyntax;
8045
 
class ExtGnu;
 
7965
class WinAsm;
 
7966
class WinDeclSpecs;
 
7967
class WinMemberExplSpec;
 
7968
class WinTypeKeywords;
 
7969
class WinFriend;
8046
7970
class ExtAC;
8047
7971
class ExtACBuilderCoupling;
8048
7972
class ExtACSyntaxCoupling;
8049
7973
class ExtACTree;
8050
7974
class ExtACKeywords;
8051
 
class WinAsm;
8052
 
class WinDeclSpecs;
8053
 
class WinMemberExplSpec;
8054
 
class WinTypeKeywords;
 
7975
class ExtGnu;
8055
7976
class PragmaOnceUnitState;
8056
7977
class PragmaOnce;
8057
 
class CCExprResolve;
8058
 
class CExprResolve;
 
7978
class CMatchSyntax;
8059
7979
namespace Puma {
8060
7980
 
8061
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
7981
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
8062
7982
struct SaveMode {
8063
 
#line 8064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
7983
#line 7984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
7984
  friend class ::CCExprResolve;
 
7985
  friend class ::CExprResolve;
8064
7986
  friend class ::WinIfExists;
8065
7987
  friend class ::WinImportHandler;
8066
7988
  friend class ::WinMacros;
8067
 
  friend class ::CMatchSyntax;
8068
 
  friend class ::ExtGnu;
 
7989
  friend class ::WinAsm;
 
7990
  friend class ::WinDeclSpecs;
 
7991
  friend class ::WinMemberExplSpec;
 
7992
  friend class ::WinTypeKeywords;
 
7993
  friend class ::WinFriend;
8069
7994
  friend class ::ExtAC;
8070
7995
  friend class ::ExtACBuilderCoupling;
8071
7996
  friend class ::ExtACSyntaxCoupling;
8072
7997
  friend class ::ExtACTree;
8073
7998
  friend class ::ExtACKeywords;
8074
 
  friend class ::WinAsm;
8075
 
  friend class ::WinDeclSpecs;
8076
 
  friend class ::WinMemberExplSpec;
8077
 
  friend class ::WinTypeKeywords;
 
7999
  friend class ::ExtGnu;
8078
8000
  friend class ::PragmaOnceUnitState;
8079
8001
  friend class ::PragmaOnce;
8080
 
  friend class ::CCExprResolve;
8081
 
  friend class ::CExprResolve;
 
8002
  friend class ::CMatchSyntax;
8082
8003
 
8083
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
8004
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
8084
8005
 
8085
8006
  enum Mode { 
8086
8007
    OVERWRITE = 1, 
8094
8015
 
8095
8016
#endif /* __SaveMode__ */
8096
8017
 
8097
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
 
8018
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
8098
8019
#include <fstream>
8099
8020
 
8100
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
 
8021
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
8101
8022
using namespace std;
8102
8023
 
8103
8024
namespace Puma {
8104
8025
 
8105
8026
 
8106
8027
 
8107
 
#line 8108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8028
#line 8029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8108
8029
} // closed Puma
 
8030
class CCExprResolve;
 
8031
class CExprResolve;
8109
8032
class WinIfExists;
8110
8033
class WinImportHandler;
8111
8034
class WinMacros;
8112
 
class CMatchSyntax;
8113
 
class ExtGnu;
 
8035
class WinAsm;
 
8036
class WinDeclSpecs;
 
8037
class WinMemberExplSpec;
 
8038
class WinTypeKeywords;
 
8039
class WinFriend;
8114
8040
class ExtAC;
8115
8041
class ExtACBuilderCoupling;
8116
8042
class ExtACSyntaxCoupling;
8117
8043
class ExtACTree;
8118
8044
class ExtACKeywords;
8119
 
class WinAsm;
8120
 
class WinDeclSpecs;
8121
 
class WinMemberExplSpec;
8122
 
class WinTypeKeywords;
 
8045
class ExtGnu;
8123
8046
class PragmaOnceUnitState;
8124
8047
class PragmaOnce;
8125
 
class CCExprResolve;
8126
 
class CExprResolve;
 
8048
class CMatchSyntax;
8127
8049
namespace Puma {
8128
8050
 
8129
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
 
8051
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
8130
8052
class Project : public PathManager, public SaveMode {
8131
 
#line 8132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8053
#line 8054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8054
  friend class ::CCExprResolve;
 
8055
  friend class ::CExprResolve;
8132
8056
  friend class ::WinIfExists;
8133
8057
  friend class ::WinImportHandler;
8134
8058
  friend class ::WinMacros;
8135
 
  friend class ::CMatchSyntax;
8136
 
  friend class ::ExtGnu;
 
8059
  friend class ::WinAsm;
 
8060
  friend class ::WinDeclSpecs;
 
8061
  friend class ::WinMemberExplSpec;
 
8062
  friend class ::WinTypeKeywords;
 
8063
  friend class ::WinFriend;
8137
8064
  friend class ::ExtAC;
8138
8065
  friend class ::ExtACBuilderCoupling;
8139
8066
  friend class ::ExtACSyntaxCoupling;
8140
8067
  friend class ::ExtACTree;
8141
8068
  friend class ::ExtACKeywords;
8142
 
  friend class ::WinAsm;
8143
 
  friend class ::WinDeclSpecs;
8144
 
  friend class ::WinMemberExplSpec;
8145
 
  friend class ::WinTypeKeywords;
 
8069
  friend class ::ExtGnu;
8146
8070
  friend class ::PragmaOnceUnitState;
8147
8071
  friend class ::PragmaOnce;
8148
 
  friend class ::CCExprResolve;
8149
 
  friend class ::CExprResolve;
 
8072
  friend class ::CMatchSyntax;
8150
8073
 
8151
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
 
8074
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
8152
8075
 
8153
8076
  UnitManager  _unitManager; 
8154
8077
  const char  *_suffix;           // Current file name suffix.
8235
8158
 
8236
8159
#endif /* __project__ */
8237
8160
 
8238
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8161
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
8239
8162
 
8240
 
#line 8241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8163
#line 8164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8241
8164
 
8242
8165
#ifndef __ac_fwd_ExtACKeywords__
8243
8166
#define __ac_fwd_ExtACKeywords__
8244
8167
class ExtACKeywords;
8245
8168
namespace AC {
8246
 
  template <class JoinPoint, class Binding>
8247
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
8248
 
  template <class JoinPoint, class Binding>
8249
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
8250
 
  template <class JoinPoint>
8251
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
8169
  template <class JoinPoint>
 
8170
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
8171
  template <class JoinPoint>
 
8172
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
8173
  template <class JoinPoint>
 
8174
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
8252
8175
}
8253
8176
#endif
8254
8177
 
8255
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8256
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
8178
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
8179
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8257
8180
#endif
8258
8181
 
8259
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8182
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
8260
8183
// This file is part of PUMA.
8261
8184
// Copyright (C) 1999-2003  The PUMA developer team.
8262
8185
//                                                                
8293
8216
class Token;
8294
8217
 
8295
8218
 
8296
 
#line 8297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8219
#line 8220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8297
8220
} // closed Puma
 
8221
class CCExprResolve;
 
8222
class CExprResolve;
8298
8223
class WinIfExists;
8299
8224
class WinImportHandler;
8300
8225
class WinMacros;
8301
 
class CMatchSyntax;
8302
 
class ExtGnu;
 
8226
class WinAsm;
 
8227
class WinDeclSpecs;
 
8228
class WinMemberExplSpec;
 
8229
class WinTypeKeywords;
 
8230
class WinFriend;
8303
8231
class ExtAC;
8304
8232
class ExtACBuilderCoupling;
8305
8233
class ExtACSyntaxCoupling;
8306
8234
class ExtACTree;
8307
8235
class ExtACKeywords;
8308
 
class WinAsm;
8309
 
class WinDeclSpecs;
8310
 
class WinMemberExplSpec;
8311
 
class WinTypeKeywords;
 
8236
class ExtGnu;
8312
8237
class PragmaOnceUnitState;
8313
8238
class PragmaOnce;
8314
 
class CCExprResolve;
8315
 
class CExprResolve;
 
8239
class CMatchSyntax;
8316
8240
namespace Puma {
8317
8241
 
8318
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8242
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
8319
8243
class CScanner : public CRecognizer, public Tokenizer {
8320
 
#line 8321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8244
#line 8245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8245
  friend class ::CCExprResolve;
 
8246
  friend class ::CExprResolve;
8321
8247
  friend class ::WinIfExists;
8322
8248
  friend class ::WinImportHandler;
8323
8249
  friend class ::WinMacros;
8324
 
  friend class ::CMatchSyntax;
8325
 
  friend class ::ExtGnu;
 
8250
  friend class ::WinAsm;
 
8251
  friend class ::WinDeclSpecs;
 
8252
  friend class ::WinMemberExplSpec;
 
8253
  friend class ::WinTypeKeywords;
 
8254
  friend class ::WinFriend;
8326
8255
  friend class ::ExtAC;
8327
8256
  friend class ::ExtACBuilderCoupling;
8328
8257
  friend class ::ExtACSyntaxCoupling;
8329
8258
  friend class ::ExtACTree;
8330
8259
  friend class ::ExtACKeywords;
8331
 
  friend class ::WinAsm;
8332
 
  friend class ::WinDeclSpecs;
8333
 
  friend class ::WinMemberExplSpec;
8334
 
  friend class ::WinTypeKeywords;
 
8260
  friend class ::ExtGnu;
8335
8261
  friend class ::PragmaOnceUnitState;
8336
8262
  friend class ::PragmaOnce;
8337
 
  friend class ::CCExprResolve;
8338
 
  friend class ::CExprResolve;
 
8263
  friend class ::CMatchSyntax;
8339
8264
 
8340
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8265
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
8341
8266
 
8342
8267
  Location loc;
8343
8268
  ErrorSink &err;
8352
8277
  virtual ~CScanner () {}
8353
8278
  void configure (const Config &);
8354
8279
  
8355
 
#line 8356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
8356
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
8280
#line 8281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8281
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
8357
8282
 
8358
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8283
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
8359
8284
void fill_unit (Source &in, Unit &unit);
8360
8285
  
8361
 
#line 8362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
8362
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
8286
#line 8287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8287
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
8363
8288
 
8364
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
8289
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
8365
8290
void fill_unit (const char *in, Unit &unit);
8366
8291
};
8367
8292
 
8370
8295
 
8371
8296
#endif /* __c_scanner_h__ */
8372
8297
 
8373
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
8298
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
8374
8299
namespace Puma {
8375
8300
 
8376
8301
 
8378
8303
class CTypeInfo;
8379
8304
 
8380
8305
 
8381
 
#line 8382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8306
#line 8307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8382
8307
} // closed Puma
 
8308
class CCExprResolve;
 
8309
class CExprResolve;
8383
8310
class WinIfExists;
8384
8311
class WinImportHandler;
8385
8312
class WinMacros;
8386
 
class CMatchSyntax;
8387
 
class ExtGnu;
 
8313
class WinAsm;
 
8314
class WinDeclSpecs;
 
8315
class WinMemberExplSpec;
 
8316
class WinTypeKeywords;
 
8317
class WinFriend;
8388
8318
class ExtAC;
8389
8319
class ExtACBuilderCoupling;
8390
8320
class ExtACSyntaxCoupling;
8391
8321
class ExtACTree;
8392
8322
class ExtACKeywords;
8393
 
class WinAsm;
8394
 
class WinDeclSpecs;
8395
 
class WinMemberExplSpec;
8396
 
class WinTypeKeywords;
 
8323
class ExtGnu;
8397
8324
class PragmaOnceUnitState;
8398
8325
class PragmaOnce;
8399
 
class CCExprResolve;
8400
 
class CExprResolve;
 
8326
class CMatchSyntax;
8401
8327
namespace Puma {
8402
8328
 
8403
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
8329
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
8404
8330
class CProject : public Project {
8405
 
#line 8406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8331
#line 8332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8332
  friend class ::CCExprResolve;
 
8333
  friend class ::CExprResolve;
8406
8334
  friend class ::WinIfExists;
8407
8335
  friend class ::WinImportHandler;
8408
8336
  friend class ::WinMacros;
8409
 
  friend class ::CMatchSyntax;
8410
 
  friend class ::ExtGnu;
 
8337
  friend class ::WinAsm;
 
8338
  friend class ::WinDeclSpecs;
 
8339
  friend class ::WinMemberExplSpec;
 
8340
  friend class ::WinTypeKeywords;
 
8341
  friend class ::WinFriend;
8411
8342
  friend class ::ExtAC;
8412
8343
  friend class ::ExtACBuilderCoupling;
8413
8344
  friend class ::ExtACSyntaxCoupling;
8414
8345
  friend class ::ExtACTree;
8415
8346
  friend class ::ExtACKeywords;
8416
 
  friend class ::WinAsm;
8417
 
  friend class ::WinDeclSpecs;
8418
 
  friend class ::WinMemberExplSpec;
8419
 
  friend class ::WinTypeKeywords;
 
8347
  friend class ::ExtGnu;
8420
8348
  friend class ::PragmaOnceUnitState;
8421
8349
  friend class ::PragmaOnce;
8422
 
  friend class ::CCExprResolve;
8423
 
  friend class ::CExprResolve;
 
8350
  friend class ::CMatchSyntax;
8424
8351
 
8425
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
8352
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
8426
8353
 
8427
8354
  Config _config;
8428
8355
  CScanner _scanner;
8458
8385
  // Scan the file `file' or the source if given. When
8459
8386
  // scanning a source the resulting unit gets the name `file'.
8460
8387
  
8461
 
#line 8462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
8462
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
8388
#line 8389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8389
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
8463
8390
 
8464
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
8391
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
8465
8392
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
8466
8393
                          bool isFile = true);
8467
8394
        
8491
8418
 
8492
8419
#endif /* __CProject_h__ */
8493
8420
 
8494
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
 
8421
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
8495
8422
// This file is part of PUMA.
8496
8423
// Copyright (C) 1999-2003  The PUMA developer team.
8497
8424
//                                                                
8516
8443
// Iterator for token units.
8517
8444
 
8518
8445
 
8519
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
 
8446
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
8520
8447
namespace Puma {
8521
8448
 
8522
8449
 
8523
8450
class Token;
8524
8451
 
8525
8452
 
8526
 
#line 8527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8453
#line 8454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8527
8454
} // closed Puma
 
8455
class CCExprResolve;
 
8456
class CExprResolve;
8528
8457
class WinIfExists;
8529
8458
class WinImportHandler;
8530
8459
class WinMacros;
8531
 
class CMatchSyntax;
8532
 
class ExtGnu;
 
8460
class WinAsm;
 
8461
class WinDeclSpecs;
 
8462
class WinMemberExplSpec;
 
8463
class WinTypeKeywords;
 
8464
class WinFriend;
8533
8465
class ExtAC;
8534
8466
class ExtACBuilderCoupling;
8535
8467
class ExtACSyntaxCoupling;
8536
8468
class ExtACTree;
8537
8469
class ExtACKeywords;
8538
 
class WinAsm;
8539
 
class WinDeclSpecs;
8540
 
class WinMemberExplSpec;
8541
 
class WinTypeKeywords;
 
8470
class ExtGnu;
8542
8471
class PragmaOnceUnitState;
8543
8472
class PragmaOnce;
8544
 
class CCExprResolve;
8545
 
class CExprResolve;
 
8473
class CMatchSyntax;
8546
8474
namespace Puma {
8547
8475
 
8548
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
 
8476
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
8549
8477
class UnitIterator {
8550
 
#line 8551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8478
#line 8479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8479
  friend class ::CCExprResolve;
 
8480
  friend class ::CExprResolve;
8551
8481
  friend class ::WinIfExists;
8552
8482
  friend class ::WinImportHandler;
8553
8483
  friend class ::WinMacros;
8554
 
  friend class ::CMatchSyntax;
8555
 
  friend class ::ExtGnu;
 
8484
  friend class ::WinAsm;
 
8485
  friend class ::WinDeclSpecs;
 
8486
  friend class ::WinMemberExplSpec;
 
8487
  friend class ::WinTypeKeywords;
 
8488
  friend class ::WinFriend;
8556
8489
  friend class ::ExtAC;
8557
8490
  friend class ::ExtACBuilderCoupling;
8558
8491
  friend class ::ExtACSyntaxCoupling;
8559
8492
  friend class ::ExtACTree;
8560
8493
  friend class ::ExtACKeywords;
8561
 
  friend class ::WinAsm;
8562
 
  friend class ::WinDeclSpecs;
8563
 
  friend class ::WinMemberExplSpec;
8564
 
  friend class ::WinTypeKeywords;
 
8494
  friend class ::ExtGnu;
8565
8495
  friend class ::PragmaOnceUnitState;
8566
8496
  friend class ::PragmaOnce;
8567
 
  friend class ::CCExprResolve;
8568
 
  friend class ::CExprResolve;
 
8497
  friend class ::CMatchSyntax;
8569
8498
 
8570
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
 
8499
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitIterator.h"
8571
8500
 
8572
8501
  Unit  *_unit;           // Unit to iterate.
8573
8502
  Token *_current;        // The current token.
8595
8524
 
8596
8525
#endif /* __unit_iterator__ */
8597
8526
 
8598
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
8527
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
8599
8528
// This file is part of PUMA.
8600
8529
// Copyright (C) 1999-2003  The PUMA developer team.
8601
8530
//                                                                
8618
8547
#define __CTypeInfo_h__
8619
8548
 
8620
8549
 
8621
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
8550
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
8622
8551
namespace Puma {
8623
8552
 
8624
8553
 
8646
8575
class CT_ExprList;
8647
8576
class CObjectInfo;
8648
8577
class CScopeInfo;
 
8578
class CTemplateParamInfo;
8649
8579
//class ostream;
8650
8580
 
8651
8581
 
8652
 
#line 8653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8582
#line 8583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8653
8583
} // closed Puma
 
8584
class CCExprResolve;
 
8585
class CExprResolve;
8654
8586
class WinIfExists;
8655
8587
class WinImportHandler;
8656
8588
class WinMacros;
8657
 
class CMatchSyntax;
8658
 
class ExtGnu;
 
8589
class WinAsm;
 
8590
class WinDeclSpecs;
 
8591
class WinMemberExplSpec;
 
8592
class WinTypeKeywords;
 
8593
class WinFriend;
8659
8594
class ExtAC;
8660
8595
class ExtACBuilderCoupling;
8661
8596
class ExtACSyntaxCoupling;
8662
8597
class ExtACTree;
8663
8598
class ExtACKeywords;
8664
 
class WinAsm;
8665
 
class WinDeclSpecs;
8666
 
class WinMemberExplSpec;
8667
 
class WinTypeKeywords;
 
8599
class ExtGnu;
8668
8600
class PragmaOnceUnitState;
8669
8601
class PragmaOnce;
8670
 
class CCExprResolve;
8671
 
class CExprResolve;
 
8602
class CMatchSyntax;
8672
8603
namespace Puma {
8673
8604
 
8674
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
8605
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
8675
8606
class CTypeInfo : public Printable {
8676
 
#line 8677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8607
#line 8608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8608
  friend class ::CCExprResolve;
 
8609
  friend class ::CExprResolve;
8677
8610
  friend class ::WinIfExists;
8678
8611
  friend class ::WinImportHandler;
8679
8612
  friend class ::WinMacros;
8680
 
  friend class ::CMatchSyntax;
8681
 
  friend class ::ExtGnu;
 
8613
  friend class ::WinAsm;
 
8614
  friend class ::WinDeclSpecs;
 
8615
  friend class ::WinMemberExplSpec;
 
8616
  friend class ::WinTypeKeywords;
 
8617
  friend class ::WinFriend;
8682
8618
  friend class ::ExtAC;
8683
8619
  friend class ::ExtACBuilderCoupling;
8684
8620
  friend class ::ExtACSyntaxCoupling;
8685
8621
  friend class ::ExtACTree;
8686
8622
  friend class ::ExtACKeywords;
8687
 
  friend class ::WinAsm;
8688
 
  friend class ::WinDeclSpecs;
8689
 
  friend class ::WinMemberExplSpec;
8690
 
  friend class ::WinTypeKeywords;
 
8623
  friend class ::ExtGnu;
8691
8624
  friend class ::PragmaOnceUnitState;
8692
8625
  friend class ::PragmaOnce;
8693
 
  friend class ::CCExprResolve;
8694
 
  friend class ::CExprResolve;
 
8626
  friend class ::CMatchSyntax;
8695
8627
 
8696
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
8628
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
8697
8629
 
8698
8630
  // needed for type printing
8699
8631
  enum PrintState {
8701
8633
    PRINT_PRE = 1,  // printing a declarator prefix like '*' or '&'
8702
8634
    PRINT_ABS = 2,  // printing absolute names
8703
8635
    PRINT_TPL = 4,  // printing template argument list
8704
 
    PRINT_TDN = 8   // print typedef names instead of defined type
 
8636
    PRINT_TDN = 8,  // print typedef names instead of defined type
 
8637
    PRINT_ELA = 16  // print elaborated type specifiers (struct, enum, union)
8705
8638
  };
8706
8639
 
8707
8640
public:
8762
8695
  bool operator !=(const CTypeInfo &) const;
8763
8696
  
8764
8697
  void print (ostream& os) const;
8765
 
  void TypeText (ostream &, const char * = (const char*)0,
8766
 
                 bool abs = false, bool tdef = false) const;
 
8698
  void TypeText (ostream &, const char *name = (const char*)0,
 
8699
                 bool abs = false, bool tdef = false, 
 
8700
                 bool elaborated_type_spec = false) const;
8767
8701
  long int Dimension () const;
8768
8702
  
8769
8703
  long int Size () const;
8895
8829
  void Mangled (ostream &) const;
8896
8830
 
8897
8831
private:
 
8832
  bool equalTemplateParams (CTemplateParamInfo *p1, CTemplateParamInfo *p2) const;
8898
8833
  void TypeText (char, ostream &, const char * = (const char*)0) const;
8899
8834
  void printName (char, ostream &, CObjectInfo *) const;
8900
8835
  void printScope (char, ostream &, CObjectInfo *) const;
8906
8841
 
8907
8842
 
8908
8843
 
8909
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
8844
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
8910
8845
// This file is part of PUMA.
8911
8846
// Copyright (C) 1999-2003  The PUMA developer team.
8912
8847
//                                                                
8937
8872
 
8938
8873
 
8939
8874
 
8940
 
#line 8941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8875
#line 8876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
8941
8876
} // closed Puma
 
8877
class CCExprResolve;
 
8878
class CExprResolve;
8942
8879
class WinIfExists;
8943
8880
class WinImportHandler;
8944
8881
class WinMacros;
8945
 
class CMatchSyntax;
8946
 
class ExtGnu;
 
8882
class WinAsm;
 
8883
class WinDeclSpecs;
 
8884
class WinMemberExplSpec;
 
8885
class WinTypeKeywords;
 
8886
class WinFriend;
8947
8887
class ExtAC;
8948
8888
class ExtACBuilderCoupling;
8949
8889
class ExtACSyntaxCoupling;
8950
8890
class ExtACTree;
8951
8891
class ExtACKeywords;
8952
 
class WinAsm;
8953
 
class WinDeclSpecs;
8954
 
class WinMemberExplSpec;
8955
 
class WinTypeKeywords;
 
8892
class ExtGnu;
8956
8893
class PragmaOnceUnitState;
8957
8894
class PragmaOnce;
8958
 
class CCExprResolve;
8959
 
class CExprResolve;
 
8895
class CMatchSyntax;
8960
8896
namespace Puma {
8961
8897
 
8962
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
8898
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
8963
8899
class CTypePrimitive : public CTypeInfo {
8964
 
#line 8965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
8900
#line 8901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
8901
  friend class ::CCExprResolve;
 
8902
  friend class ::CExprResolve;
8965
8903
  friend class ::WinIfExists;
8966
8904
  friend class ::WinImportHandler;
8967
8905
  friend class ::WinMacros;
8968
 
  friend class ::CMatchSyntax;
8969
 
  friend class ::ExtGnu;
 
8906
  friend class ::WinAsm;
 
8907
  friend class ::WinDeclSpecs;
 
8908
  friend class ::WinMemberExplSpec;
 
8909
  friend class ::WinTypeKeywords;
 
8910
  friend class ::WinFriend;
8970
8911
  friend class ::ExtAC;
8971
8912
  friend class ::ExtACBuilderCoupling;
8972
8913
  friend class ::ExtACSyntaxCoupling;
8973
8914
  friend class ::ExtACTree;
8974
8915
  friend class ::ExtACKeywords;
8975
 
  friend class ::WinAsm;
8976
 
  friend class ::WinDeclSpecs;
8977
 
  friend class ::WinMemberExplSpec;
8978
 
  friend class ::WinTypeKeywords;
 
8916
  friend class ::ExtGnu;
8979
8917
  friend class ::PragmaOnceUnitState;
8980
8918
  friend class ::PragmaOnce;
8981
 
  friend class ::CCExprResolve;
8982
 
  friend class ::CExprResolve;
 
8919
  friend class ::CMatchSyntax;
8983
8920
 
8984
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
8921
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
8985
8922
 
8986
8923
  const char *_Text;
8987
8924
 
9030
8967
 
9031
8968
#endif /* __CTypePrimitive_h__ */
9032
8969
 
9033
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
8970
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
9034
8971
// This file is part of PUMA.
9035
8972
// Copyright (C) 1999-2003  The PUMA developer team.
9036
8973
//                                                                
9061
8998
 
9062
8999
 
9063
9000
 
9064
 
#line 9065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9001
#line 9002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9065
9002
} // closed Puma
 
9003
class CCExprResolve;
 
9004
class CExprResolve;
9066
9005
class WinIfExists;
9067
9006
class WinImportHandler;
9068
9007
class WinMacros;
9069
 
class CMatchSyntax;
9070
 
class ExtGnu;
 
9008
class WinAsm;
 
9009
class WinDeclSpecs;
 
9010
class WinMemberExplSpec;
 
9011
class WinTypeKeywords;
 
9012
class WinFriend;
9071
9013
class ExtAC;
9072
9014
class ExtACBuilderCoupling;
9073
9015
class ExtACSyntaxCoupling;
9074
9016
class ExtACTree;
9075
9017
class ExtACKeywords;
9076
 
class WinAsm;
9077
 
class WinDeclSpecs;
9078
 
class WinMemberExplSpec;
9079
 
class WinTypeKeywords;
 
9018
class ExtGnu;
9080
9019
class PragmaOnceUnitState;
9081
9020
class PragmaOnce;
9082
 
class CCExprResolve;
9083
 
class CExprResolve;
 
9021
class CMatchSyntax;
9084
9022
namespace Puma {
9085
9023
 
9086
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
9024
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
9087
9025
class CTypeQualified : public CTypeInfo {
9088
 
#line 9089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9026
#line 9027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9027
  friend class ::CCExprResolve;
 
9028
  friend class ::CExprResolve;
9089
9029
  friend class ::WinIfExists;
9090
9030
  friend class ::WinImportHandler;
9091
9031
  friend class ::WinMacros;
9092
 
  friend class ::CMatchSyntax;
9093
 
  friend class ::ExtGnu;
 
9032
  friend class ::WinAsm;
 
9033
  friend class ::WinDeclSpecs;
 
9034
  friend class ::WinMemberExplSpec;
 
9035
  friend class ::WinTypeKeywords;
 
9036
  friend class ::WinFriend;
9094
9037
  friend class ::ExtAC;
9095
9038
  friend class ::ExtACBuilderCoupling;
9096
9039
  friend class ::ExtACSyntaxCoupling;
9097
9040
  friend class ::ExtACTree;
9098
9041
  friend class ::ExtACKeywords;
9099
 
  friend class ::WinAsm;
9100
 
  friend class ::WinDeclSpecs;
9101
 
  friend class ::WinMemberExplSpec;
9102
 
  friend class ::WinTypeKeywords;
 
9042
  friend class ::ExtGnu;
9103
9043
  friend class ::PragmaOnceUnitState;
9104
9044
  friend class ::PragmaOnce;
9105
 
  friend class ::CCExprResolve;
9106
 
  friend class ::CExprResolve;
9107
 
 
9108
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
9109
 
 
9110
 
  bool _Const;
9111
 
  bool _Volatile;
9112
 
  bool _Restrict;
 
9045
  friend class ::CMatchSyntax;
 
9046
 
 
9047
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
9048
 
 
9049
  bool _QualConst;
 
9050
  bool _QualVolatile;
 
9051
  bool _QualRestrict;
9113
9052
 
9114
9053
protected:
9115
9054
  CTypeQualified (CTypeInfo *, bool, bool, bool, TypeId);
9130
9069
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r, 
9131
9070
 CTypeInfo::TypeId id) :
9132
9071
  CTypeInfo (base, id),
9133
 
  _Const (c),
9134
 
  _Volatile (v),
9135
 
  _Restrict (r)
 
9072
  _QualConst (c),
 
9073
  _QualVolatile (v),
 
9074
  _QualRestrict (r)
9136
9075
 {}
9137
9076
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r) :
9138
9077
  CTypeInfo (base, CTypeInfo::TYPE_QUALIFIED),
9139
 
  _Const (c),
9140
 
  _Volatile (v),
9141
 
  _Restrict (r)
 
9078
  _QualConst (c),
 
9079
  _QualVolatile (v),
 
9080
  _QualRestrict (r)
9142
9081
 {}
9143
9082
inline CTypeQualified::~CTypeQualified ()
9144
9083
 {}
9145
9084
 
9146
9085
inline bool CTypeQualified::isConst () const
9147
 
 { return _Const; }
 
9086
 { return _QualConst; }
9148
9087
inline bool CTypeQualified::isVolatile () const
9149
 
 { return _Volatile; }
 
9088
 { return _QualVolatile; }
9150
9089
inline bool CTypeQualified::isRestrict () const
9151
 
 { return _Restrict; }
 
9090
 { return _QualRestrict; }
9152
9091
 
9153
9092
inline void CTypeQualified::isConst (bool v)
9154
 
 { _Const = v; }
 
9093
 { _QualConst = v; }
9155
9094
inline void CTypeQualified::isVolatile (bool v)
9156
 
 { _Volatile = v; }
 
9095
 { _QualVolatile = v; }
9157
9096
inline void CTypeQualified::isRestrict (bool v)
9158
 
 { _Restrict = v; }
 
9097
 { _QualRestrict = v; }
9159
9098
 
9160
9099
 
9161
9100
} // namespace Puma
9162
9101
 
9163
9102
#endif /* __CTypeQualified_h__ */
9164
9103
 
9165
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
9104
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
9166
9105
// This file is part of PUMA.
9167
9106
// Copyright (C) 1999-2003  The PUMA developer team.
9168
9107
//                                                                
9193
9132
 
9194
9133
 
9195
9134
 
9196
 
#line 9197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9135
#line 9136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9197
9136
} // closed Puma
 
9137
class CCExprResolve;
 
9138
class CExprResolve;
9198
9139
class WinIfExists;
9199
9140
class WinImportHandler;
9200
9141
class WinMacros;
9201
 
class CMatchSyntax;
9202
 
class ExtGnu;
 
9142
class WinAsm;
 
9143
class WinDeclSpecs;
 
9144
class WinMemberExplSpec;
 
9145
class WinTypeKeywords;
 
9146
class WinFriend;
9203
9147
class ExtAC;
9204
9148
class ExtACBuilderCoupling;
9205
9149
class ExtACSyntaxCoupling;
9206
9150
class ExtACTree;
9207
9151
class ExtACKeywords;
9208
 
class WinAsm;
9209
 
class WinDeclSpecs;
9210
 
class WinMemberExplSpec;
9211
 
class WinTypeKeywords;
 
9152
class ExtGnu;
9212
9153
class PragmaOnceUnitState;
9213
9154
class PragmaOnce;
9214
 
class CCExprResolve;
9215
 
class CExprResolve;
 
9155
class CMatchSyntax;
9216
9156
namespace Puma {
9217
9157
 
9218
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
9158
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
9219
9159
class CTypeAddress : public CTypeInfo {
9220
 
#line 9221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9160
#line 9161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9161
  friend class ::CCExprResolve;
 
9162
  friend class ::CExprResolve;
9221
9163
  friend class ::WinIfExists;
9222
9164
  friend class ::WinImportHandler;
9223
9165
  friend class ::WinMacros;
9224
 
  friend class ::CMatchSyntax;
9225
 
  friend class ::ExtGnu;
 
9166
  friend class ::WinAsm;
 
9167
  friend class ::WinDeclSpecs;
 
9168
  friend class ::WinMemberExplSpec;
 
9169
  friend class ::WinTypeKeywords;
 
9170
  friend class ::WinFriend;
9226
9171
  friend class ::ExtAC;
9227
9172
  friend class ::ExtACBuilderCoupling;
9228
9173
  friend class ::ExtACSyntaxCoupling;
9229
9174
  friend class ::ExtACTree;
9230
9175
  friend class ::ExtACKeywords;
9231
 
  friend class ::WinAsm;
9232
 
  friend class ::WinDeclSpecs;
9233
 
  friend class ::WinMemberExplSpec;
9234
 
  friend class ::WinTypeKeywords;
 
9176
  friend class ::ExtGnu;
9235
9177
  friend class ::PragmaOnceUnitState;
9236
9178
  friend class ::PragmaOnce;
9237
 
  friend class ::CCExprResolve;
9238
 
  friend class ::CExprResolve;
 
9179
  friend class ::CMatchSyntax;
9239
9180
 
9240
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
9181
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
9241
9182
 
9242
9183
public:
9243
9184
  CTypeAddress (CTypeInfo *);
9255
9196
 
9256
9197
#endif /* __CTypeAddress_h__ */
9257
9198
 
9258
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
9199
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
9259
9200
// This file is part of PUMA.
9260
9201
// Copyright (C) 1999-2003  The PUMA developer team.
9261
9202
//                                                                
9286
9227
 
9287
9228
 
9288
9229
 
9289
 
#line 9290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9230
#line 9231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9290
9231
} // closed Puma
 
9232
class CCExprResolve;
 
9233
class CExprResolve;
9291
9234
class WinIfExists;
9292
9235
class WinImportHandler;
9293
9236
class WinMacros;
9294
 
class CMatchSyntax;
9295
 
class ExtGnu;
 
9237
class WinAsm;
 
9238
class WinDeclSpecs;
 
9239
class WinMemberExplSpec;
 
9240
class WinTypeKeywords;
 
9241
class WinFriend;
9296
9242
class ExtAC;
9297
9243
class ExtACBuilderCoupling;
9298
9244
class ExtACSyntaxCoupling;
9299
9245
class ExtACTree;
9300
9246
class ExtACKeywords;
9301
 
class WinAsm;
9302
 
class WinDeclSpecs;
9303
 
class WinMemberExplSpec;
9304
 
class WinTypeKeywords;
 
9247
class ExtGnu;
9305
9248
class PragmaOnceUnitState;
9306
9249
class PragmaOnce;
9307
 
class CCExprResolve;
9308
 
class CExprResolve;
 
9250
class CMatchSyntax;
9309
9251
namespace Puma {
9310
9252
 
9311
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
9253
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
9312
9254
class CTypeBitField : public CTypeInfo {
9313
 
#line 9314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9255
#line 9256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9256
  friend class ::CCExprResolve;
 
9257
  friend class ::CExprResolve;
9314
9258
  friend class ::WinIfExists;
9315
9259
  friend class ::WinImportHandler;
9316
9260
  friend class ::WinMacros;
9317
 
  friend class ::CMatchSyntax;
9318
 
  friend class ::ExtGnu;
 
9261
  friend class ::WinAsm;
 
9262
  friend class ::WinDeclSpecs;
 
9263
  friend class ::WinMemberExplSpec;
 
9264
  friend class ::WinTypeKeywords;
 
9265
  friend class ::WinFriend;
9319
9266
  friend class ::ExtAC;
9320
9267
  friend class ::ExtACBuilderCoupling;
9321
9268
  friend class ::ExtACSyntaxCoupling;
9322
9269
  friend class ::ExtACTree;
9323
9270
  friend class ::ExtACKeywords;
9324
 
  friend class ::WinAsm;
9325
 
  friend class ::WinDeclSpecs;
9326
 
  friend class ::WinMemberExplSpec;
9327
 
  friend class ::WinTypeKeywords;
 
9271
  friend class ::ExtGnu;
9328
9272
  friend class ::PragmaOnceUnitState;
9329
9273
  friend class ::PragmaOnce;
9330
 
  friend class ::CCExprResolve;
9331
 
  friend class ::CExprResolve;
 
9274
  friend class ::CMatchSyntax;
9332
9275
 
9333
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
9276
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
9334
9277
 
9335
9278
  long int _Size;
9336
9279
 
9359
9302
 
9360
9303
#endif /* __CTypeBitField_h__ */
9361
9304
 
9362
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
9305
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
9363
9306
// This file is part of PUMA.
9364
9307
// Copyright (C) 1999-2003  The PUMA developer team.
9365
9308
//                                                                
9390
9333
 
9391
9334
 
9392
9335
 
9393
 
#line 9394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9336
#line 9337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9394
9337
} // closed Puma
 
9338
class CCExprResolve;
 
9339
class CExprResolve;
9395
9340
class WinIfExists;
9396
9341
class WinImportHandler;
9397
9342
class WinMacros;
9398
 
class CMatchSyntax;
9399
 
class ExtGnu;
 
9343
class WinAsm;
 
9344
class WinDeclSpecs;
 
9345
class WinMemberExplSpec;
 
9346
class WinTypeKeywords;
 
9347
class WinFriend;
9400
9348
class ExtAC;
9401
9349
class ExtACBuilderCoupling;
9402
9350
class ExtACSyntaxCoupling;
9403
9351
class ExtACTree;
9404
9352
class ExtACKeywords;
9405
 
class WinAsm;
9406
 
class WinDeclSpecs;
9407
 
class WinMemberExplSpec;
9408
 
class WinTypeKeywords;
 
9353
class ExtGnu;
9409
9354
class PragmaOnceUnitState;
9410
9355
class PragmaOnce;
9411
 
class CCExprResolve;
9412
 
class CExprResolve;
 
9356
class CMatchSyntax;
9413
9357
namespace Puma {
9414
9358
 
9415
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
9359
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
9416
9360
class CTypeArray : public CTypeInfo {
9417
 
#line 9418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9361
#line 9362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9362
  friend class ::CCExprResolve;
 
9363
  friend class ::CExprResolve;
9418
9364
  friend class ::WinIfExists;
9419
9365
  friend class ::WinImportHandler;
9420
9366
  friend class ::WinMacros;
9421
 
  friend class ::CMatchSyntax;
9422
 
  friend class ::ExtGnu;
 
9367
  friend class ::WinAsm;
 
9368
  friend class ::WinDeclSpecs;
 
9369
  friend class ::WinMemberExplSpec;
 
9370
  friend class ::WinTypeKeywords;
 
9371
  friend class ::WinFriend;
9423
9372
  friend class ::ExtAC;
9424
9373
  friend class ::ExtACBuilderCoupling;
9425
9374
  friend class ::ExtACSyntaxCoupling;
9426
9375
  friend class ::ExtACTree;
9427
9376
  friend class ::ExtACKeywords;
9428
 
  friend class ::WinAsm;
9429
 
  friend class ::WinDeclSpecs;
9430
 
  friend class ::WinMemberExplSpec;
9431
 
  friend class ::WinTypeKeywords;
 
9377
  friend class ::ExtGnu;
9432
9378
  friend class ::PragmaOnceUnitState;
9433
9379
  friend class ::PragmaOnce;
9434
 
  friend class ::CCExprResolve;
9435
 
  friend class ::CExprResolve;
 
9380
  friend class ::CMatchSyntax;
9436
9381
 
9437
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
9382
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
9438
9383
 
9439
9384
  long int _Size;
9440
9385
  bool _isFixed;
9441
9386
  CTypeQualified *_Quals;
9442
9387
  CTypeTemplateParam *_DepDim;
 
9388
  bool _hasDim;
9443
9389
 
9444
9390
protected:
9445
9391
  CTypeArray (CTypeInfo *, CTypeQualified *, TypeId);
9446
9392
  
9447
9393
public:
9448
 
  CTypeArray (CTypeInfo *, CTypeQualified * = 0);
 
9394
  CTypeArray (CTypeInfo *, CTypeQualified * = 0, bool has_dimension = false);
9449
9395
  ~CTypeArray ();
9450
9396
 
9451
9397
  void Dimension (long int);
9454
9400
  void isFixed (bool);
9455
9401
  bool isFixed () const;
9456
9402
  
 
9403
  void hasDimension (bool);
 
9404
  bool hasDimension () const;
 
9405
  
9457
9406
  CTypeQualified *Qualifiers () const;
9458
9407
  
9459
9408
  void DepDim (CTypeTemplateParam *);
9460
9409
  CTypeTemplateParam *DepDim () const;
9461
9410
};
9462
9411
 
9463
 
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals) :
 
9412
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, bool has_dimension) :
9464
9413
  CTypeInfo (base, CTypeInfo::TYPE_ARRAY),
9465
9414
  _Size (0),
9466
9415
  _isFixed (false),
9467
9416
  _Quals (quals),
9468
 
  _DepDim (0)
 
9417
  _DepDim (0),
 
9418
  _hasDim (has_dimension)
9469
9419
 {}
9470
9420
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, CTypeInfo::TypeId id) :
9471
9421
  CTypeInfo (base, id),
9472
9422
  _Size (0),
9473
9423
  _isFixed (false),
9474
9424
  _Quals (quals),
9475
 
  _DepDim (0)
 
9425
  _DepDim (0),
 
9426
  _hasDim (false)
9476
9427
 {}
9477
9428
inline CTypeArray::~CTypeArray ()
9478
9429
 { if (_Quals) CTypeInfo::Destroy (_Quals); }
9487
9438
inline bool CTypeArray::isFixed () const
9488
9439
 { return _isFixed; }
9489
9440
 
 
9441
inline void CTypeArray::hasDimension (bool v)
 
9442
 { _hasDim = v; }
 
9443
inline bool CTypeArray::hasDimension () const
 
9444
 { return _hasDim || _Size != 0; }
 
9445
 
9490
9446
inline CTypeQualified *CTypeArray::Qualifiers () const
9491
9447
 { return _Quals; }
9492
9448
 
9500
9456
 
9501
9457
#endif /* __CTypeArray_h__ */
9502
9458
 
9503
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
9459
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
9504
9460
// This file is part of PUMA.
9505
9461
// Copyright (C) 1999-2003  The PUMA developer team.
9506
9462
//                                                                
9531
9487
 
9532
9488
 
9533
9489
 
9534
 
#line 9535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9490
#line 9491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9535
9491
} // closed Puma
 
9492
class CCExprResolve;
 
9493
class CExprResolve;
9536
9494
class WinIfExists;
9537
9495
class WinImportHandler;
9538
9496
class WinMacros;
9539
 
class CMatchSyntax;
9540
 
class ExtGnu;
 
9497
class WinAsm;
 
9498
class WinDeclSpecs;
 
9499
class WinMemberExplSpec;
 
9500
class WinTypeKeywords;
 
9501
class WinFriend;
9541
9502
class ExtAC;
9542
9503
class ExtACBuilderCoupling;
9543
9504
class ExtACSyntaxCoupling;
9544
9505
class ExtACTree;
9545
9506
class ExtACKeywords;
9546
 
class WinAsm;
9547
 
class WinDeclSpecs;
9548
 
class WinMemberExplSpec;
9549
 
class WinTypeKeywords;
 
9507
class ExtGnu;
9550
9508
class PragmaOnceUnitState;
9551
9509
class PragmaOnce;
9552
 
class CCExprResolve;
9553
 
class CExprResolve;
 
9510
class CMatchSyntax;
9554
9511
namespace Puma {
9555
9512
 
9556
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
9513
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
9557
9514
class CTypeVarArray : public CTypeArray {
9558
 
#line 9559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9515
#line 9516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9516
  friend class ::CCExprResolve;
 
9517
  friend class ::CExprResolve;
9559
9518
  friend class ::WinIfExists;
9560
9519
  friend class ::WinImportHandler;
9561
9520
  friend class ::WinMacros;
9562
 
  friend class ::CMatchSyntax;
9563
 
  friend class ::ExtGnu;
 
9521
  friend class ::WinAsm;
 
9522
  friend class ::WinDeclSpecs;
 
9523
  friend class ::WinMemberExplSpec;
 
9524
  friend class ::WinTypeKeywords;
 
9525
  friend class ::WinFriend;
9564
9526
  friend class ::ExtAC;
9565
9527
  friend class ::ExtACBuilderCoupling;
9566
9528
  friend class ::ExtACSyntaxCoupling;
9567
9529
  friend class ::ExtACTree;
9568
9530
  friend class ::ExtACKeywords;
9569
 
  friend class ::WinAsm;
9570
 
  friend class ::WinDeclSpecs;
9571
 
  friend class ::WinMemberExplSpec;
9572
 
  friend class ::WinTypeKeywords;
 
9531
  friend class ::ExtGnu;
9573
9532
  friend class ::PragmaOnceUnitState;
9574
9533
  friend class ::PragmaOnce;
9575
 
  friend class ::CCExprResolve;
9576
 
  friend class ::CExprResolve;
 
9534
  friend class ::CMatchSyntax;
9577
9535
 
9578
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
9536
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
9579
9537
 
9580
9538
public:
9581
9539
  CTypeVarArray (CTypeInfo *, CTypeQualified * = 0);
9593
9551
 
9594
9552
#endif /* __CTypeVarArray_h__ */
9595
9553
 
9596
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
9554
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
9597
9555
// This file is part of PUMA.
9598
9556
// Copyright (C) 1999-2003  The PUMA developer team.
9599
9557
//                                                                
9624
9582
 
9625
9583
 
9626
9584
 
9627
 
#line 9628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9585
#line 9586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9628
9586
} // closed Puma
 
9587
class CCExprResolve;
 
9588
class CExprResolve;
9629
9589
class WinIfExists;
9630
9590
class WinImportHandler;
9631
9591
class WinMacros;
9632
 
class CMatchSyntax;
9633
 
class ExtGnu;
 
9592
class WinAsm;
 
9593
class WinDeclSpecs;
 
9594
class WinMemberExplSpec;
 
9595
class WinTypeKeywords;
 
9596
class WinFriend;
9634
9597
class ExtAC;
9635
9598
class ExtACBuilderCoupling;
9636
9599
class ExtACSyntaxCoupling;
9637
9600
class ExtACTree;
9638
9601
class ExtACKeywords;
9639
 
class WinAsm;
9640
 
class WinDeclSpecs;
9641
 
class WinMemberExplSpec;
9642
 
class WinTypeKeywords;
 
9602
class ExtGnu;
9643
9603
class PragmaOnceUnitState;
9644
9604
class PragmaOnce;
9645
 
class CCExprResolve;
9646
 
class CExprResolve;
 
9605
class CMatchSyntax;
9647
9606
namespace Puma {
9648
9607
 
9649
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
9608
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
9650
9609
class CTypePointer : public CTypeInfo {
9651
 
#line 9652 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9610
#line 9611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9611
  friend class ::CCExprResolve;
 
9612
  friend class ::CExprResolve;
9652
9613
  friend class ::WinIfExists;
9653
9614
  friend class ::WinImportHandler;
9654
9615
  friend class ::WinMacros;
9655
 
  friend class ::CMatchSyntax;
9656
 
  friend class ::ExtGnu;
 
9616
  friend class ::WinAsm;
 
9617
  friend class ::WinDeclSpecs;
 
9618
  friend class ::WinMemberExplSpec;
 
9619
  friend class ::WinTypeKeywords;
 
9620
  friend class ::WinFriend;
9657
9621
  friend class ::ExtAC;
9658
9622
  friend class ::ExtACBuilderCoupling;
9659
9623
  friend class ::ExtACSyntaxCoupling;
9660
9624
  friend class ::ExtACTree;
9661
9625
  friend class ::ExtACKeywords;
9662
 
  friend class ::WinAsm;
9663
 
  friend class ::WinDeclSpecs;
9664
 
  friend class ::WinMemberExplSpec;
9665
 
  friend class ::WinTypeKeywords;
 
9626
  friend class ::ExtGnu;
9666
9627
  friend class ::PragmaOnceUnitState;
9667
9628
  friend class ::PragmaOnce;
9668
 
  friend class ::CCExprResolve;
9669
 
  friend class ::CExprResolve;
 
9629
  friend class ::CMatchSyntax;
9670
9630
 
9671
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
9631
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
9672
9632
 
9673
9633
protected:
9674
9634
  CTypePointer (CTypeInfo *, CTypeInfo::TypeId);
9692
9652
 
9693
9653
#endif /* __CTypePointer_h__ */
9694
9654
 
9695
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
9655
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
9696
9656
// This file is part of PUMA.
9697
9657
// Copyright (C) 1999-2003  The PUMA developer team.
9698
9658
//                                                                
9727
9687
class CTemplateParamInfo;
9728
9688
 
9729
9689
 
9730
 
#line 9731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9690
#line 9691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9731
9691
} // closed Puma
 
9692
class CCExprResolve;
 
9693
class CExprResolve;
9732
9694
class WinIfExists;
9733
9695
class WinImportHandler;
9734
9696
class WinMacros;
9735
 
class CMatchSyntax;
9736
 
class ExtGnu;
 
9697
class WinAsm;
 
9698
class WinDeclSpecs;
 
9699
class WinMemberExplSpec;
 
9700
class WinTypeKeywords;
 
9701
class WinFriend;
9737
9702
class ExtAC;
9738
9703
class ExtACBuilderCoupling;
9739
9704
class ExtACSyntaxCoupling;
9740
9705
class ExtACTree;
9741
9706
class ExtACKeywords;
9742
 
class WinAsm;
9743
 
class WinDeclSpecs;
9744
 
class WinMemberExplSpec;
9745
 
class WinTypeKeywords;
 
9707
class ExtGnu;
9746
9708
class PragmaOnceUnitState;
9747
9709
class PragmaOnce;
9748
 
class CCExprResolve;
9749
 
class CExprResolve;
 
9710
class CMatchSyntax;
9750
9711
namespace Puma {
9751
9712
 
9752
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
9713
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
9753
9714
class CTypeMemberPointer : public CTypePointer {
9754
 
#line 9755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9715
#line 9716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9716
  friend class ::CCExprResolve;
 
9717
  friend class ::CExprResolve;
9755
9718
  friend class ::WinIfExists;
9756
9719
  friend class ::WinImportHandler;
9757
9720
  friend class ::WinMacros;
9758
 
  friend class ::CMatchSyntax;
9759
 
  friend class ::ExtGnu;
 
9721
  friend class ::WinAsm;
 
9722
  friend class ::WinDeclSpecs;
 
9723
  friend class ::WinMemberExplSpec;
 
9724
  friend class ::WinTypeKeywords;
 
9725
  friend class ::WinFriend;
9760
9726
  friend class ::ExtAC;
9761
9727
  friend class ::ExtACBuilderCoupling;
9762
9728
  friend class ::ExtACSyntaxCoupling;
9763
9729
  friend class ::ExtACTree;
9764
9730
  friend class ::ExtACKeywords;
9765
 
  friend class ::WinAsm;
9766
 
  friend class ::WinDeclSpecs;
9767
 
  friend class ::WinMemberExplSpec;
9768
 
  friend class ::WinTypeKeywords;
 
9731
  friend class ::ExtGnu;
9769
9732
  friend class ::PragmaOnceUnitState;
9770
9733
  friend class ::PragmaOnce;
9771
 
  friend class ::CCExprResolve;
9772
 
  friend class ::CExprResolve;
 
9734
  friend class ::CMatchSyntax;
9773
9735
 
9774
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
9736
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
9775
9737
 
9776
9738
  CObjectInfo *_Class;
9777
9739
 
9795
9757
 
9796
9758
#endif /* __CTypeMemberPointer_h__ */
9797
9759
 
9798
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9760
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
9799
9761
// This file is part of PUMA.
9800
9762
// Copyright (C) 1999-2003  The PUMA developer team.
9801
9763
//                                                                
9823
9785
#endif
9824
9786
 
9825
9787
 
9826
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9788
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
9827
9789
// This file is part of PUMA.
9828
9790
// Copyright (C) 1999-2003  The PUMA developer team.
9829
9791
//                                                                
9846
9808
#define __CTypeList_h__
9847
9809
 
9848
9810
 
9849
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9811
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
9850
9812
namespace Puma {
9851
9813
 
9852
9814
 
9854
9816
class CT_ArgDeclList;
9855
9817
 
9856
9818
 
9857
 
#line 9858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9819
#line 9820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9858
9820
} // closed Puma
 
9821
class CCExprResolve;
 
9822
class CExprResolve;
9859
9823
class WinIfExists;
9860
9824
class WinImportHandler;
9861
9825
class WinMacros;
9862
 
class CMatchSyntax;
9863
 
class ExtGnu;
 
9826
class WinAsm;
 
9827
class WinDeclSpecs;
 
9828
class WinMemberExplSpec;
 
9829
class WinTypeKeywords;
 
9830
class WinFriend;
9864
9831
class ExtAC;
9865
9832
class ExtACBuilderCoupling;
9866
9833
class ExtACSyntaxCoupling;
9867
9834
class ExtACTree;
9868
9835
class ExtACKeywords;
9869
 
class WinAsm;
9870
 
class WinDeclSpecs;
9871
 
class WinMemberExplSpec;
9872
 
class WinTypeKeywords;
 
9836
class ExtGnu;
9873
9837
class PragmaOnceUnitState;
9874
9838
class PragmaOnce;
9875
 
class CCExprResolve;
9876
 
class CExprResolve;
 
9839
class CMatchSyntax;
9877
9840
namespace Puma {
9878
9841
 
9879
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9842
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
9880
9843
class CTypeList {
9881
 
#line 9882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9844
#line 9845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9845
  friend class ::CCExprResolve;
 
9846
  friend class ::CExprResolve;
9882
9847
  friend class ::WinIfExists;
9883
9848
  friend class ::WinImportHandler;
9884
9849
  friend class ::WinMacros;
9885
 
  friend class ::CMatchSyntax;
9886
 
  friend class ::ExtGnu;
 
9850
  friend class ::WinAsm;
 
9851
  friend class ::WinDeclSpecs;
 
9852
  friend class ::WinMemberExplSpec;
 
9853
  friend class ::WinTypeKeywords;
 
9854
  friend class ::WinFriend;
9887
9855
  friend class ::ExtAC;
9888
9856
  friend class ::ExtACBuilderCoupling;
9889
9857
  friend class ::ExtACSyntaxCoupling;
9890
9858
  friend class ::ExtACTree;
9891
9859
  friend class ::ExtACKeywords;
9892
 
  friend class ::WinAsm;
9893
 
  friend class ::WinDeclSpecs;
9894
 
  friend class ::WinMemberExplSpec;
9895
 
  friend class ::WinTypeKeywords;
 
9860
  friend class ::ExtGnu;
9896
9861
  friend class ::PragmaOnceUnitState;
9897
9862
  friend class ::PragmaOnce;
9898
 
  friend class ::CCExprResolve;
9899
 
  friend class ::CExprResolve;
 
9863
  friend class ::CMatchSyntax;
9900
9864
 
9901
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9865
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
9902
9866
 
9903
9867
  Array<CTypeInfo*> _List;
9904
9868
  CT_ArgDeclList *_ArgumentList;
9946
9910
 
9947
9911
#endif /* __CTypeList_h__ */
9948
9912
 
9949
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9913
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
9950
9914
namespace Puma {
9951
9915
 
9952
9916
 
9954
9918
class CRecord;
9955
9919
 
9956
9920
 
9957
 
#line 9958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9921
#line 9922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
9958
9922
} // closed Puma
 
9923
class CCExprResolve;
 
9924
class CExprResolve;
9959
9925
class WinIfExists;
9960
9926
class WinImportHandler;
9961
9927
class WinMacros;
9962
 
class CMatchSyntax;
9963
 
class ExtGnu;
 
9928
class WinAsm;
 
9929
class WinDeclSpecs;
 
9930
class WinMemberExplSpec;
 
9931
class WinTypeKeywords;
 
9932
class WinFriend;
9964
9933
class ExtAC;
9965
9934
class ExtACBuilderCoupling;
9966
9935
class ExtACSyntaxCoupling;
9967
9936
class ExtACTree;
9968
9937
class ExtACKeywords;
9969
 
class WinAsm;
9970
 
class WinDeclSpecs;
9971
 
class WinMemberExplSpec;
9972
 
class WinTypeKeywords;
 
9938
class ExtGnu;
9973
9939
class PragmaOnceUnitState;
9974
9940
class PragmaOnce;
9975
 
class CCExprResolve;
9976
 
class CExprResolve;
 
9941
class CMatchSyntax;
9977
9942
namespace Puma {
9978
9943
 
9979
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9944
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
9980
9945
class CTypeFunction : public CTypeQualified {
9981
 
#line 9982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
9946
#line 9947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
9947
  friend class ::CCExprResolve;
 
9948
  friend class ::CExprResolve;
9982
9949
  friend class ::WinIfExists;
9983
9950
  friend class ::WinImportHandler;
9984
9951
  friend class ::WinMacros;
9985
 
  friend class ::CMatchSyntax;
9986
 
  friend class ::ExtGnu;
 
9952
  friend class ::WinAsm;
 
9953
  friend class ::WinDeclSpecs;
 
9954
  friend class ::WinMemberExplSpec;
 
9955
  friend class ::WinTypeKeywords;
 
9956
  friend class ::WinFriend;
9987
9957
  friend class ::ExtAC;
9988
9958
  friend class ::ExtACBuilderCoupling;
9989
9959
  friend class ::ExtACSyntaxCoupling;
9990
9960
  friend class ::ExtACTree;
9991
9961
  friend class ::ExtACKeywords;
9992
 
  friend class ::WinAsm;
9993
 
  friend class ::WinDeclSpecs;
9994
 
  friend class ::WinMemberExplSpec;
9995
 
  friend class ::WinTypeKeywords;
 
9962
  friend class ::ExtGnu;
9996
9963
  friend class ::PragmaOnceUnitState;
9997
9964
  friend class ::PragmaOnce;
9998
 
  friend class ::CCExprResolve;
9999
 
  friend class ::CExprResolve;
 
9965
  friend class ::CMatchSyntax;
10000
9966
 
10001
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9967
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
10002
9968
 
10003
9969
  CTypeList *_ArgTypes;
10004
9970
  CFunctionInfo *_Function;
10046
10012
 
10047
10013
#endif /* __CTypeFunction_h__ */
10048
10014
 
10049
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
10015
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
10050
10016
// This file is part of PUMA.
10051
10017
// Copyright (C) 1999-2003  The PUMA developer team.
10052
10018
//                                                                
10079
10045
class CEnumInfo;
10080
10046
 
10081
10047
 
10082
 
#line 10083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10048
#line 10049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
10083
10049
} // closed Puma
 
10050
class CCExprResolve;
 
10051
class CExprResolve;
10084
10052
class WinIfExists;
10085
10053
class WinImportHandler;
10086
10054
class WinMacros;
10087
 
class CMatchSyntax;
10088
 
class ExtGnu;
 
10055
class WinAsm;
 
10056
class WinDeclSpecs;
 
10057
class WinMemberExplSpec;
 
10058
class WinTypeKeywords;
 
10059
class WinFriend;
10089
10060
class ExtAC;
10090
10061
class ExtACBuilderCoupling;
10091
10062
class ExtACSyntaxCoupling;
10092
10063
class ExtACTree;
10093
10064
class ExtACKeywords;
10094
 
class WinAsm;
10095
 
class WinDeclSpecs;
10096
 
class WinMemberExplSpec;
10097
 
class WinTypeKeywords;
 
10065
class ExtGnu;
10098
10066
class PragmaOnceUnitState;
10099
10067
class PragmaOnce;
10100
 
class CCExprResolve;
10101
 
class CExprResolve;
 
10068
class CMatchSyntax;
10102
10069
namespace Puma {
10103
10070
 
10104
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
10071
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
10105
10072
class CTypeEnum : public CTypeInfo {
10106
 
#line 10107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10073
#line 10074 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
10074
  friend class ::CCExprResolve;
 
10075
  friend class ::CExprResolve;
10107
10076
  friend class ::WinIfExists;
10108
10077
  friend class ::WinImportHandler;
10109
10078
  friend class ::WinMacros;
10110
 
  friend class ::CMatchSyntax;
10111
 
  friend class ::ExtGnu;
 
10079
  friend class ::WinAsm;
 
10080
  friend class ::WinDeclSpecs;
 
10081
  friend class ::WinMemberExplSpec;
 
10082
  friend class ::WinTypeKeywords;
 
10083
  friend class ::WinFriend;
10112
10084
  friend class ::ExtAC;
10113
10085
  friend class ::ExtACBuilderCoupling;
10114
10086
  friend class ::ExtACSyntaxCoupling;
10115
10087
  friend class ::ExtACTree;
10116
10088
  friend class ::ExtACKeywords;
10117
 
  friend class ::WinAsm;
10118
 
  friend class ::WinDeclSpecs;
10119
 
  friend class ::WinMemberExplSpec;
10120
 
  friend class ::WinTypeKeywords;
 
10089
  friend class ::ExtGnu;
10121
10090
  friend class ::PragmaOnceUnitState;
10122
10091
  friend class ::PragmaOnce;
10123
 
  friend class ::CCExprResolve;
10124
 
  friend class ::CExprResolve;
 
10092
  friend class ::CMatchSyntax;
10125
10093
 
10126
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
10094
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
10127
10095
 
10128
10096
  CEnumInfo *_Enum;
10129
10097
 
10133
10101
 
10134
10102
  CEnumInfo *EnumInfo () const;
10135
10103
  bool isComplete (unsigned long = 0) const;
 
10104
  
 
10105
  CTypeInfo *UnderlyingType () const;
10136
10106
};
10137
10107
 
10138
10108
inline CTypeEnum::CTypeEnum (CEnumInfo *e) :
10144
10114
 
10145
10115
inline CEnumInfo *CTypeEnum::EnumInfo () const 
10146
10116
 { return _Enum; }
10147
 
 
 
10117
 
10148
10118
 
10149
10119
} // namespace Puma
10150
10120
 
10151
10121
#endif /* __CTypeEnum_h__ */
10152
10122
 
10153
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
10123
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
10154
10124
// This file is part of PUMA.
10155
10125
// Copyright (C) 1999-2003  The PUMA developer team.
10156
10126
//                                                                
10183
10153
class CRecord;
10184
10154
 
10185
10155
 
10186
 
#line 10187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10156
#line 10157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
10187
10157
} // closed Puma
 
10158
class CCExprResolve;
 
10159
class CExprResolve;
10188
10160
class WinIfExists;
10189
10161
class WinImportHandler;
10190
10162
class WinMacros;
10191
 
class CMatchSyntax;
10192
 
class ExtGnu;
 
10163
class WinAsm;
 
10164
class WinDeclSpecs;
 
10165
class WinMemberExplSpec;
 
10166
class WinTypeKeywords;
 
10167
class WinFriend;
10193
10168
class ExtAC;
10194
10169
class ExtACBuilderCoupling;
10195
10170
class ExtACSyntaxCoupling;
10196
10171
class ExtACTree;
10197
10172
class ExtACKeywords;
10198
 
class WinAsm;
10199
 
class WinDeclSpecs;
10200
 
class WinMemberExplSpec;
10201
 
class WinTypeKeywords;
 
10173
class ExtGnu;
10202
10174
class PragmaOnceUnitState;
10203
10175
class PragmaOnce;
10204
 
class CCExprResolve;
10205
 
class CExprResolve;
 
10176
class CMatchSyntax;
10206
10177
namespace Puma {
10207
10178
 
10208
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
10179
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
10209
10180
class CTypeRecord : public CTypeInfo {
10210
 
#line 10211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10181
#line 10182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
10182
  friend class ::CCExprResolve;
 
10183
  friend class ::CExprResolve;
10211
10184
  friend class ::WinIfExists;
10212
10185
  friend class ::WinImportHandler;
10213
10186
  friend class ::WinMacros;
10214
 
  friend class ::CMatchSyntax;
10215
 
  friend class ::ExtGnu;
 
10187
  friend class ::WinAsm;
 
10188
  friend class ::WinDeclSpecs;
 
10189
  friend class ::WinMemberExplSpec;
 
10190
  friend class ::WinTypeKeywords;
 
10191
  friend class ::WinFriend;
10216
10192
  friend class ::ExtAC;
10217
10193
  friend class ::ExtACBuilderCoupling;
10218
10194
  friend class ::ExtACSyntaxCoupling;
10219
10195
  friend class ::ExtACTree;
10220
10196
  friend class ::ExtACKeywords;
10221
 
  friend class ::WinAsm;
10222
 
  friend class ::WinDeclSpecs;
10223
 
  friend class ::WinMemberExplSpec;
10224
 
  friend class ::WinTypeKeywords;
 
10197
  friend class ::ExtGnu;
10225
10198
  friend class ::PragmaOnceUnitState;
10226
10199
  friend class ::PragmaOnce;
10227
 
  friend class ::CCExprResolve;
10228
 
  friend class ::CExprResolve;
 
10200
  friend class ::CMatchSyntax;
10229
10201
 
10230
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
10202
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
10231
10203
 
10232
10204
  bool _hasConstMember;
10233
10205
 
10282
10254
 
10283
10255
#endif /* __CTypeRecord_h__ */
10284
10256
 
10285
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
10257
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
10286
10258
// This file is part of PUMA.
10287
10259
// Copyright (C) 1999-2003  The PUMA developer team.
10288
10260
//                                                                
10316
10288
class CRecord;
10317
10289
 
10318
10290
 
10319
 
#line 10320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10291
#line 10292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
10320
10292
} // closed Puma
 
10293
class CCExprResolve;
 
10294
class CExprResolve;
10321
10295
class WinIfExists;
10322
10296
class WinImportHandler;
10323
10297
class WinMacros;
10324
 
class CMatchSyntax;
10325
 
class ExtGnu;
 
10298
class WinAsm;
 
10299
class WinDeclSpecs;
 
10300
class WinMemberExplSpec;
 
10301
class WinTypeKeywords;
 
10302
class WinFriend;
10326
10303
class ExtAC;
10327
10304
class ExtACBuilderCoupling;
10328
10305
class ExtACSyntaxCoupling;
10329
10306
class ExtACTree;
10330
10307
class ExtACKeywords;
10331
 
class WinAsm;
10332
 
class WinDeclSpecs;
10333
 
class WinMemberExplSpec;
10334
 
class WinTypeKeywords;
 
10308
class ExtGnu;
10335
10309
class PragmaOnceUnitState;
10336
10310
class PragmaOnce;
10337
 
class CCExprResolve;
10338
 
class CExprResolve;
 
10311
class CMatchSyntax;
10339
10312
namespace Puma {
10340
10313
 
10341
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
10314
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
10342
10315
class CTypeClass : public CTypeRecord {
10343
 
#line 10344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10316
#line 10317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
10317
  friend class ::CCExprResolve;
 
10318
  friend class ::CExprResolve;
10344
10319
  friend class ::WinIfExists;
10345
10320
  friend class ::WinImportHandler;
10346
10321
  friend class ::WinMacros;
10347
 
  friend class ::CMatchSyntax;
10348
 
  friend class ::ExtGnu;
 
10322
  friend class ::WinAsm;
 
10323
  friend class ::WinDeclSpecs;
 
10324
  friend class ::WinMemberExplSpec;
 
10325
  friend class ::WinTypeKeywords;
 
10326
  friend class ::WinFriend;
10349
10327
  friend class ::ExtAC;
10350
10328
  friend class ::ExtACBuilderCoupling;
10351
10329
  friend class ::ExtACSyntaxCoupling;
10352
10330
  friend class ::ExtACTree;
10353
10331
  friend class ::ExtACKeywords;
10354
 
  friend class ::WinAsm;
10355
 
  friend class ::WinDeclSpecs;
10356
 
  friend class ::WinMemberExplSpec;
10357
 
  friend class ::WinTypeKeywords;
 
10332
  friend class ::ExtGnu;
10358
10333
  friend class ::PragmaOnceUnitState;
10359
10334
  friend class ::PragmaOnce;
10360
 
  friend class ::CCExprResolve;
10361
 
  friend class ::CExprResolve;
 
10335
  friend class ::CMatchSyntax;
10362
10336
 
10363
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
10337
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
10364
10338
 
10365
10339
public:
10366
10340
  CTypeClass (CRecord *);
10380
10354
 
10381
10355
#endif /* __CTypeClass_h__ */
10382
10356
 
10383
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
10357
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
10384
10358
// This file is part of PUMA.
10385
10359
// Copyright (C) 1999-2003  The PUMA developer team.
10386
10360
//                                                                
10414
10388
class CRecord;
10415
10389
 
10416
10390
 
10417
 
#line 10418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10391
#line 10392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
10418
10392
} // closed Puma
 
10393
class CCExprResolve;
 
10394
class CExprResolve;
10419
10395
class WinIfExists;
10420
10396
class WinImportHandler;
10421
10397
class WinMacros;
10422
 
class CMatchSyntax;
10423
 
class ExtGnu;
 
10398
class WinAsm;
 
10399
class WinDeclSpecs;
 
10400
class WinMemberExplSpec;
 
10401
class WinTypeKeywords;
 
10402
class WinFriend;
10424
10403
class ExtAC;
10425
10404
class ExtACBuilderCoupling;
10426
10405
class ExtACSyntaxCoupling;
10427
10406
class ExtACTree;
10428
10407
class ExtACKeywords;
10429
 
class WinAsm;
10430
 
class WinDeclSpecs;
10431
 
class WinMemberExplSpec;
10432
 
class WinTypeKeywords;
 
10408
class ExtGnu;
10433
10409
class PragmaOnceUnitState;
10434
10410
class PragmaOnce;
10435
 
class CCExprResolve;
10436
 
class CExprResolve;
 
10411
class CMatchSyntax;
10437
10412
namespace Puma {
10438
10413
 
10439
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
10414
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
10440
10415
class CTypeUnion : public CTypeRecord {
10441
 
#line 10442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10416
#line 10417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
10417
  friend class ::CCExprResolve;
 
10418
  friend class ::CExprResolve;
10442
10419
  friend class ::WinIfExists;
10443
10420
  friend class ::WinImportHandler;
10444
10421
  friend class ::WinMacros;
10445
 
  friend class ::CMatchSyntax;
10446
 
  friend class ::ExtGnu;
 
10422
  friend class ::WinAsm;
 
10423
  friend class ::WinDeclSpecs;
 
10424
  friend class ::WinMemberExplSpec;
 
10425
  friend class ::WinTypeKeywords;
 
10426
  friend class ::WinFriend;
10447
10427
  friend class ::ExtAC;
10448
10428
  friend class ::ExtACBuilderCoupling;
10449
10429
  friend class ::ExtACSyntaxCoupling;
10450
10430
  friend class ::ExtACTree;
10451
10431
  friend class ::ExtACKeywords;
10452
 
  friend class ::WinAsm;
10453
 
  friend class ::WinDeclSpecs;
10454
 
  friend class ::WinMemberExplSpec;
10455
 
  friend class ::WinTypeKeywords;
 
10432
  friend class ::ExtGnu;
10456
10433
  friend class ::PragmaOnceUnitState;
10457
10434
  friend class ::PragmaOnce;
10458
 
  friend class ::CCExprResolve;
10459
 
  friend class ::CExprResolve;
 
10435
  friend class ::CMatchSyntax;
10460
10436
 
10461
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
10437
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
10462
10438
 
10463
10439
public:
10464
10440
  CTypeUnion (CRecord *);
10478
10454
 
10479
10455
#endif /* __CTypeUnion_h__ */
10480
10456
 
10481
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
10457
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
10482
10458
// This file is part of PUMA.
10483
10459
// Copyright (C) 1999-2003  The PUMA developer team.
10484
10460
//                                                                
10511
10487
class CTemplateParamInfo;
10512
10488
 
10513
10489
 
10514
 
#line 10515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10490
#line 10491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
10515
10491
} // closed Puma
 
10492
class CCExprResolve;
 
10493
class CExprResolve;
10516
10494
class WinIfExists;
10517
10495
class WinImportHandler;
10518
10496
class WinMacros;
10519
 
class CMatchSyntax;
10520
 
class ExtGnu;
 
10497
class WinAsm;
 
10498
class WinDeclSpecs;
 
10499
class WinMemberExplSpec;
 
10500
class WinTypeKeywords;
 
10501
class WinFriend;
10521
10502
class ExtAC;
10522
10503
class ExtACBuilderCoupling;
10523
10504
class ExtACSyntaxCoupling;
10524
10505
class ExtACTree;
10525
10506
class ExtACKeywords;
10526
 
class WinAsm;
10527
 
class WinDeclSpecs;
10528
 
class WinMemberExplSpec;
10529
 
class WinTypeKeywords;
 
10507
class ExtGnu;
10530
10508
class PragmaOnceUnitState;
10531
10509
class PragmaOnce;
10532
 
class CCExprResolve;
10533
 
class CExprResolve;
 
10510
class CMatchSyntax;
10534
10511
namespace Puma {
10535
10512
 
10536
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
10513
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
10537
10514
class CTypeTemplateParam : public CTypeInfo {
10538
 
#line 10539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10515
#line 10516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
10516
  friend class ::CCExprResolve;
 
10517
  friend class ::CExprResolve;
10539
10518
  friend class ::WinIfExists;
10540
10519
  friend class ::WinImportHandler;
10541
10520
  friend class ::WinMacros;
10542
 
  friend class ::CMatchSyntax;
10543
 
  friend class ::ExtGnu;
 
10521
  friend class ::WinAsm;
 
10522
  friend class ::WinDeclSpecs;
 
10523
  friend class ::WinMemberExplSpec;
 
10524
  friend class ::WinTypeKeywords;
 
10525
  friend class ::WinFriend;
10544
10526
  friend class ::ExtAC;
10545
10527
  friend class ::ExtACBuilderCoupling;
10546
10528
  friend class ::ExtACSyntaxCoupling;
10547
10529
  friend class ::ExtACTree;
10548
10530
  friend class ::ExtACKeywords;
10549
 
  friend class ::WinAsm;
10550
 
  friend class ::WinDeclSpecs;
10551
 
  friend class ::WinMemberExplSpec;
10552
 
  friend class ::WinTypeKeywords;
 
10531
  friend class ::ExtGnu;
10553
10532
  friend class ::PragmaOnceUnitState;
10554
10533
  friend class ::PragmaOnce;
10555
 
  friend class ::CCExprResolve;
10556
 
  friend class ::CExprResolve;
 
10534
  friend class ::CMatchSyntax;
10557
10535
 
10558
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
10536
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
10559
10537
 
10560
10538
  CTemplateParamInfo *_TemplateParam;
10561
10539
 
10564
10542
  ~CTypeTemplateParam ();
10565
10543
 
10566
10544
  CTemplateParamInfo *TemplateParamInfo () const;
 
10545
  void TemplateParamInfo (CTemplateParamInfo *);
10567
10546
  bool isType () const;
10568
10547
  bool isNonType () const;
10569
10548
};
10581
10560
inline bool CTypeTemplateParam::isNonType () const
10582
10561
 { return (! isType ()); }
10583
10562
 
 
10563
inline void CTypeTemplateParam::TemplateParamInfo (CTemplateParamInfo *info)
 
10564
 { _TemplateParam = info; }
10584
10565
 
10585
10566
} // namespace Puma
10586
10567
 
10587
10568
#endif /* __CTypeTemplateParam_h__ */
10588
10569
 
10589
 
#line 280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
10570
#line 284 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
10590
10571
namespace Puma {
10591
10572
 
10592
10573
inline CTypeInfo::CTypeInfo (CTypeInfo *info, CTypeInfo::TypeId id) :
10612
10593
 
10613
10594
inline void CTypeInfo::print (ostream& out) const 
10614
10595
 { TypeText ((char)PRINT_STD, out); }
10615
 
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef) const
 
10596
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef, bool elaborated_type_spec) const
10616
10597
 { char flags = (char)(abs ? PRINT_ABS : PRINT_STD);
10617
 
   if (tdef) flags |= (char)PRINT_TDN; TypeText (flags, out, t); }
 
10598
   if (tdef) flags |= (char)PRINT_TDN; 
 
10599
   if (elaborated_type_spec) flags |= (char)PRINT_ELA;
 
10600
   TypeText (flags, out, t); }
10618
10601
 
10619
10602
inline long int CTypeInfo::Dimension () const
10620
10603
 { return TypeArray () ? TypeArray ()->Dimension () : 
10800
10783
 
10801
10784
#endif /* __CTypeInfo_h__ */
10802
10785
 
10803
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
 
10786
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
10804
10787
#include <stdio.h>
10805
10788
 
10806
10789
namespace Puma {
10866
10849
// Scan the file `file' or the source if given. When
10867
10850
// scanning a source the resulting unit gets the name `file'.
10868
10851
 
10869
 
#line 10870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
10870
 
 
10871
 
 
10872
 
struct TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0 {
10873
 
  typedef ::Puma::Unit * Result;
10874
 
  typedef ::Puma::CProject That;
10875
 
  typedef ::Puma::CProject Target;
10876
 
  static const int JPID = 135;
 
10852
#line 10853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
10853
 
 
10854
 
 
10855
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0 {
 
10856
  typedef TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0 __TJP;
 
10857
  typedef TResult Result;
 
10858
  typedef TThat   That;
 
10859
  typedef TTarget Target;
 
10860
  enum { ARGS = TArgs::ARGS };
 
10861
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
10862
  static const int JPID = 4426;
10877
10863
  static const AC::JPType JPTYPE = (AC::JPType)8;
10878
10864
  struct Res {
10879
 
    typedef ::Puma::Unit * Type;
10880
 
    typedef ::Puma::Unit * ReferredType;
10881
 
  };
10882
 
  enum { ARGS = 3 };
10883
 
  template <int I, int DUMMY = 0> struct Arg {
10884
 
    typedef void Type;
10885
 
    typedef void ReferredType;
10886
 
  };
10887
 
  template <int DUMMY> struct Arg<0, DUMMY> {
10888
 
    typedef const char * Type;
10889
 
    typedef const char * ReferredType;
10890
 
  };
10891
 
  template <int DUMMY> struct Arg<1, DUMMY> {
10892
 
    typedef ::Puma::Source * Type;
10893
 
    typedef ::Puma::Source * ReferredType;
10894
 
  };
10895
 
  template <int DUMMY> struct Arg<2, DUMMY> {
10896
 
    typedef bool Type;
10897
 
    typedef bool ReferredType;
 
10865
    typedef TResult Type;
 
10866
    typedef TResult ReferredType;
10898
10867
  };
10899
10868
 
10900
10869
  That *_that;
10904
10873
};
10905
10874
 
10906
10875
 
10907
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
 
10876
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
10908
10877
Unit *CProject::scanFile (const char * arg0, Source * arg1, bool  arg2) 
10909
 
#line 10910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
10878
#line 10879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
10910
10879
{
10911
 
  AC::ResultBuffer< ::Puma::Unit *  > result;
10912
 
  TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0 tjp;
10913
 
  tjp._that =  (TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0::That*)this;
10914
 
  AC::invoke_ExtACKeywords_ExtACKeywords_a2_before<TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0> (&tjp);
 
10880
  typedef TJP__ZN4Puma8CProject8scanFileEPKcPN4PumaE6Sourceb_0< ::Puma::Unit * , ::Puma::CProject , ::Puma::CProject ,  AC::TL< const char * , AC::TL< ::Puma::Source * , AC::TL< bool , AC::TLE > > > > __TJP;
 
10881
  ::Puma::Unit * result;
 
10882
  __TJP tjp;
 
10883
  tjp._that =  (__TJP::That*)this;
 
10884
  AC::invoke_ExtACKeywords_ExtACKeywords_a2_before<__TJP> (&tjp);
10915
10885
{
10916
10886
      ::AC::CFlow<ExtACKeywords,0> trigger0;
10917
 
  ::new (&result) ::Puma::Unit *  (this->__exec_old_scanFile(arg0, arg1, arg2));
 
10887
    result = this->__exec_old_scanFile(arg0, arg1, arg2);
10918
10888
}
10919
10889
  return (::Puma::Unit * &)result;
10920
10890
 
10921
10891
}
10922
 
inline ::Puma::Unit * Puma::CProject::__exec_old_scanFile(const char * file,::Puma::Source * in,bool isFile)
10923
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
 
10892
__attribute__((always_inline)) inline ::Puma::Unit * Puma::CProject::__exec_old_scanFile(const char * file,::Puma::Source * in,bool isFile)
 
10893
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
10924
10894
{
10925
10895
  if (! file && ! in) 
10926
10896
    return (Unit*)0;
11056
11026
 
11057
11027
} // namespace Puma
11058
11028
 
11059
 
#line 11060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
11060
 
 
11061
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
11062
 
/*** begin of aspect includes ***/
11063
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__)
11064
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
11065
 
 
11066
 
#line 7 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11067
 
#endif
11068
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
11069
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
11070
 
 
11071
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11072
 
#endif
11073
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__)
11074
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
11075
 
 
11076
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11029
#line 11030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11030
 
 
11031
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CProject_cc__
 
11032
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
11033
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
11034
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
11035
#include "CCExprResolveCC.ah"
 
11036
#endif
 
11037
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11038
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11039
#include "ExtACTree.ah"
 
11040
#endif
 
11041
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11042
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11043
#include "ExtGnu.ah"
 
11044
#endif
 
11045
#endif
 
11046
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11047
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11048
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11049
#include "CCExprResolveH.ah"
 
11050
#endif
 
11051
#endif
 
11052
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
11053
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
11054
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
11055
#include "CExprResolveCC.ah"
 
11056
#endif
 
11057
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11058
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11059
#include "ExtACTree.ah"
 
11060
#endif
 
11061
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11062
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11063
#include "ExtGnu.ah"
 
11064
#endif
 
11065
#endif
 
11066
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11067
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11068
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11069
#include "CExprResolveH.ah"
 
11070
#endif
 
11071
#endif
 
11072
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
11073
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
11074
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
11075
 
 
11076
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
11077
#endif
 
11078
#endif
 
11079
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
11080
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
11081
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
11082
 
 
11083
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11084
// This file is part of PUMA.
 
11085
// Copyright (C) 1999-2003  The PUMA developer team.
 
11086
//                                                                
 
11087
// This program is free software;  you can redistribute it and/or 
 
11088
// modify it under the terms of the GNU General Public License as 
 
11089
// published by the Free Software Foundation; either version 2 of 
 
11090
// the License, or (at your option) any later version.            
 
11091
//                                                                
 
11092
// This program is distributed in the hope that it will be useful,
 
11093
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
11094
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
11095
// GNU General Public License for more details.                   
 
11096
//                                                                
 
11097
// You should have received a copy of the GNU General Public      
 
11098
// License along with this program; if not, write to the Free     
 
11099
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
11100
// MA  02111-1307  USA                                            
 
11101
 
 
11102
#ifndef __WinImportHandler__
 
11103
#define __WinImportHandler__
 
11104
 
 
11105
/********************************************************/
 
11106
/* Win #import directive support                        */
 
11107
/********************************************************/
 
11108
 
 
11109
 
 
11110
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11111
 
 
11112
#line 11113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11113
class CCExprResolve;
 
11114
class CExprResolve;
 
11115
class WinIfExists;
 
11116
class WinMacros;
 
11117
class WinAsm;
 
11118
class WinDeclSpecs;
 
11119
class WinMemberExplSpec;
 
11120
class WinTypeKeywords;
 
11121
class WinFriend;
 
11122
class ExtAC;
 
11123
class ExtACBuilderCoupling;
 
11124
class ExtACSyntaxCoupling;
 
11125
class ExtACTree;
 
11126
class ExtACKeywords;
 
11127
class ExtGnu;
 
11128
class PragmaOnceUnitState;
 
11129
class PragmaOnce;
 
11130
class CMatchSyntax;
 
11131
 
 
11132
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11133
class WinImportHandler {
 
11134
#line 11135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11135
 
 
11136
public:
 
11137
  static WinImportHandler *aspectof () {
 
11138
    static WinImportHandler __instance;
 
11139
    return &__instance;
 
11140
  }
 
11141
  static WinImportHandler *aspectOf () {
 
11142
    return aspectof ();
 
11143
  }
 
11144
private:
 
11145
 
 
11146
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11147
 
 
11148
#line 11149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11149
  friend class ::CCExprResolve;
 
11150
  friend class ::CExprResolve;
 
11151
  friend class ::WinIfExists;
 
11152
  friend class ::WinMacros;
 
11153
  friend class ::WinAsm;
 
11154
  friend class ::WinDeclSpecs;
 
11155
  friend class ::WinMemberExplSpec;
 
11156
  friend class ::WinTypeKeywords;
 
11157
  friend class ::WinFriend;
 
11158
  friend class ::ExtAC;
 
11159
  friend class ::ExtACBuilderCoupling;
 
11160
  friend class ::ExtACSyntaxCoupling;
 
11161
  friend class ::ExtACTree;
 
11162
  friend class ::ExtACKeywords;
 
11163
  friend class ::ExtGnu;
 
11164
  friend class ::PragmaOnceUnitState;
 
11165
  friend class ::PragmaOnce;
 
11166
  friend class ::CMatchSyntax;
 
11167
 
 
11168
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11169
 
 
11170
  /********************************************************/
 
11171
  /* Win #import directive                                */
 
11172
  /********************************************************/
 
11173
 
 
11174
  // pointcuts
 
11175
  
 
11176
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11177
 
 
11178
  
 
11179
  // handle --import-handler option
 
11180
  
 
11181
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11182
 
 
11183
public: template<class JoinPoint> void __a0_before 
 
11184
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11185
 
 
11186
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11187
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
 
11188
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11189
 {
 
11190
#line 11191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11191
 
 
11192
  JoinPoint *&thisJoinPoint = tjp;
 
11193
 
 
11194
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11195
 
 
11196
#line 11197 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11197
 
 
11198
  typedef typename JoinPoint::That __JP_That;
 
11199
  typedef typename JoinPoint::Target __JP_Target;
 
11200
  typedef typename JoinPoint::Result __JP_Result;
 
11201
 
 
11202
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11203
 
 
11204
    const Puma::ConfOption *opt;
 
11205
    char *tmp;
 
11206
    
 
11207
    if (process_includes) {
 
11208
      opt = config.Option ("--import-handler");
 
11209
      if (opt && opt->Arguments ()) {
 
11210
        // delete old import handler
 
11211
        if (thisJoinPoint->that ()->_importHandler)
 
11212
          delete[] thisJoinPoint->that ()->_importHandler;
 
11213
        
 
11214
        // get new import handler
 
11215
        tmp = new char[strlen (opt->Argument (0))+1];
 
11216
        strcpy (tmp, opt->Argument (0));
 
11217
        thisJoinPoint->that ()->_importHandler = tmp;
 
11218
      }
 
11219
    }
 
11220
  }
 
11221
#line 11222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11222
 
 
11223
private:
 
11224
 
 
11225
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11226
 
 
11227
 
 
11228
protected:
 
11229
  WinImportHandler () {}
 
11230
};
 
11231
#line 11232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11232
 
 
11233
namespace AC {
 
11234
  template <class JoinPoint>
 
11235
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
 
11236
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
 
11237
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
 
11238
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
 
11239
  }
 
11240
 
11241
 
 
11242
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
11243
 
 
11244
 
 
11245
 
 
11246
#endif /* __WinImportHandler__ */
 
11247
 
 
11248
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
11249
#endif
 
11250
#endif
 
11251
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
11252
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
11253
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
11254
 
 
11255
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11077
11256
// This file is part of PUMA.
11078
11257
// Copyright (C) 1999-2003  The PUMA developer team.
11079
11258
//                                                                
11100
11279
/********************************************************/
11101
11280
 
11102
11281
 
11103
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
11282
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
11104
11283
// This file is part of PUMA.
11105
11284
// Copyright (C) 1999-2003  The PUMA developer team.
11106
11285
//                                                                
11129
11308
// of arguments.
11130
11309
 
11131
11310
 
11132
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
11311
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
11133
11312
namespace Puma {
11134
11313
 
11135
11314
 
11137
11316
class CScanner;
11138
11317
 
11139
11318
 
11140
 
#line 11141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11319
#line 11320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11141
11320
} // closed Puma
 
11321
class CCExprResolve;
 
11322
class CExprResolve;
11142
11323
class WinIfExists;
11143
11324
class WinImportHandler;
11144
11325
class WinMacros;
11145
 
class CMatchSyntax;
11146
 
class ExtGnu;
 
11326
class WinAsm;
 
11327
class WinDeclSpecs;
 
11328
class WinMemberExplSpec;
 
11329
class WinTypeKeywords;
 
11330
class WinFriend;
11147
11331
class ExtAC;
11148
11332
class ExtACBuilderCoupling;
11149
11333
class ExtACSyntaxCoupling;
11150
11334
class ExtACTree;
11151
11335
class ExtACKeywords;
11152
 
class WinAsm;
11153
 
class WinDeclSpecs;
11154
 
class WinMemberExplSpec;
11155
 
class WinTypeKeywords;
 
11336
class ExtGnu;
11156
11337
class PragmaOnceUnitState;
11157
11338
class PragmaOnce;
11158
 
class CCExprResolve;
11159
 
class CExprResolve;
 
11339
class CMatchSyntax;
11160
11340
namespace Puma {
11161
11341
 
11162
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
11342
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
11163
11343
class PreMacro : public Chain {
11164
 
#line 11165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11344
#line 11345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11345
  friend class ::CCExprResolve;
 
11346
  friend class ::CExprResolve;
11165
11347
  friend class ::WinIfExists;
11166
11348
  friend class ::WinImportHandler;
11167
11349
  friend class ::WinMacros;
11168
 
  friend class ::CMatchSyntax;
11169
 
  friend class ::ExtGnu;
 
11350
  friend class ::WinAsm;
 
11351
  friend class ::WinDeclSpecs;
 
11352
  friend class ::WinMemberExplSpec;
 
11353
  friend class ::WinTypeKeywords;
 
11354
  friend class ::WinFriend;
11170
11355
  friend class ::ExtAC;
11171
11356
  friend class ::ExtACBuilderCoupling;
11172
11357
  friend class ::ExtACSyntaxCoupling;
11173
11358
  friend class ::ExtACTree;
11174
11359
  friend class ::ExtACKeywords;
11175
 
  friend class ::WinAsm;
11176
 
  friend class ::WinDeclSpecs;
11177
 
  friend class ::WinMemberExplSpec;
11178
 
  friend class ::WinTypeKeywords;
 
11360
  friend class ::ExtGnu;
11179
11361
  friend class ::PragmaOnceUnitState;
11180
11362
  friend class ::PragmaOnce;
11181
 
  friend class ::CCExprResolve;
11182
 
  friend class ::CExprResolve;
 
11363
  friend class ::CMatchSyntax;
11183
11364
 
11184
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
11365
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
11185
11366
 
11186
11367
public:
11187
11368
  typedef Array<const char *> MacroArgs;
11249
11430
 
11250
11431
#endif /* __pre_macro__ */
11251
11432
 
11252
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11253
 
using namespace Puma;
11254
 
 
11255
 
 
11256
 
 
11257
 
#line 11258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11433
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11434
 
 
11435
#line 11436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11436
class CCExprResolve;
 
11437
class CExprResolve;
11258
11438
class WinIfExists;
11259
11439
class WinImportHandler;
11260
 
class CMatchSyntax;
11261
 
class ExtGnu;
 
11440
class WinAsm;
 
11441
class WinDeclSpecs;
 
11442
class WinMemberExplSpec;
 
11443
class WinTypeKeywords;
 
11444
class WinFriend;
11262
11445
class ExtAC;
11263
11446
class ExtACBuilderCoupling;
11264
11447
class ExtACSyntaxCoupling;
11265
11448
class ExtACTree;
11266
11449
class ExtACKeywords;
11267
 
class WinAsm;
11268
 
class WinDeclSpecs;
11269
 
class WinMemberExplSpec;
11270
 
class WinTypeKeywords;
 
11450
class ExtGnu;
11271
11451
class PragmaOnceUnitState;
11272
11452
class PragmaOnce;
11273
 
class CCExprResolve;
11274
 
class CExprResolve;
 
11453
class CMatchSyntax;
11275
11454
 
11276
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11455
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11277
11456
class WinMacros {
11278
 
#line 11279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11457
#line 11458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11279
11458
 
11280
11459
public:
11281
11460
  static WinMacros *aspectof () {
11287
11466
  }
11288
11467
private:
11289
11468
 
11290
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11469
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11291
11470
 
11292
 
#line 11293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11471
#line 11472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11472
  friend class ::CCExprResolve;
 
11473
  friend class ::CExprResolve;
11293
11474
  friend class ::WinIfExists;
11294
11475
  friend class ::WinImportHandler;
11295
 
  friend class ::CMatchSyntax;
11296
 
  friend class ::ExtGnu;
 
11476
  friend class ::WinAsm;
 
11477
  friend class ::WinDeclSpecs;
 
11478
  friend class ::WinMemberExplSpec;
 
11479
  friend class ::WinTypeKeywords;
 
11480
  friend class ::WinFriend;
11297
11481
  friend class ::ExtAC;
11298
11482
  friend class ::ExtACBuilderCoupling;
11299
11483
  friend class ::ExtACSyntaxCoupling;
11300
11484
  friend class ::ExtACTree;
11301
11485
  friend class ::ExtACKeywords;
11302
 
  friend class ::WinAsm;
11303
 
  friend class ::WinDeclSpecs;
11304
 
  friend class ::WinMemberExplSpec;
11305
 
  friend class ::WinTypeKeywords;
 
11486
  friend class ::ExtGnu;
11306
11487
  friend class ::PragmaOnceUnitState;
11307
11488
  friend class ::PragmaOnce;
11308
 
  friend class ::CCExprResolve;
11309
 
  friend class ::CExprResolve;
 
11489
  friend class ::CMatchSyntax;
11310
11490
 
11311
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11491
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11312
11492
 
11313
11493
  /********************************************************/
11314
11494
  /* Win specific predefined macros                       */
11316
11496
 
11317
11497
  // predefine win specific macros
11318
11498
  
11319
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11499
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11320
11500
 
11321
11501
public: template<class JoinPoint> void __a0_before 
11322
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11502
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11323
11503
 
11324
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11325
 
(JoinPoint *tjp, const Config &config)
11326
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11504
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11505
(JoinPoint *tjp, const Puma::Config &config)
 
11506
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11327
11507
 {
11328
 
#line 11329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11508
#line 11509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11329
11509
 
11330
11510
  JoinPoint *&thisJoinPoint = tjp;
11331
11511
 
11332
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11512
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11333
11513
 
11334
 
#line 11335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11514
#line 11515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11335
11515
 
11336
11516
  typedef typename JoinPoint::That __JP_That;
11337
11517
  typedef typename JoinPoint::Target __JP_Target;
11338
11518
  typedef typename JoinPoint::Result __JP_Result;
11339
11519
 
11340
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11520
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11341
11521
 
11342
11522
    if (config.Option ("--vc")) {
11343
11523
      // constants
11350
11530
      thisJoinPoint->that ()->defMacro ("__noop", " ");
11351
11531
 
11352
11532
      // function-like macros
11353
 
      PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
 
11533
      Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
11354
11534
      args->append ("__arg0");
11355
11535
      thisJoinPoint->that ()->macroManager ()->addMacro (
11356
 
        new PreMacro ("__declspec", args, " "));
 
11536
        new Puma::PreMacro ("__declspec", args, " "));
11357
11537
    }
11358
11538
  }
11359
 
#line 11360 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11539
#line 11540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11360
11540
 
11361
11541
private:
11362
11542
 
11363
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11543
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11364
11544
 
11365
11545
 
11366
11546
protected:
11367
11547
  WinMacros () {}
11368
11548
};
11369
 
#line 11370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11549
#line 11550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11370
11550
 
11371
11551
namespace AC {
11372
 
  template <class JoinPoint, class Binding>
11373
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
11374
 
    typedef typename Binding::template Arg<0> Arg0;
 
11552
  template <class JoinPoint>
 
11553
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
 
11554
    typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
11375
11555
    ::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
11376
11556
  }
11377
11557
11378
11558
 
11379
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
11559
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11380
11560
 
11381
11561
 
11382
11562
 
11383
11563
#endif /* __WinMacros__ */
11384
11564
 
11385
 
#line 15 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11386
 
#endif
11387
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
11388
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11389
 
#include "CMatchSyntax.ah"
11390
 
#endif
11391
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__)
11392
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
11393
 
#include "ExtGnu.ah"
11394
 
#endif
11395
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__)
11396
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
 
11565
#line 59 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
11566
#endif
 
11567
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11568
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11569
 
 
11570
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
11571
#endif
 
11572
#endif
 
11573
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
11574
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
11575
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
11576
#include "WinAsm.ah"
 
11577
#endif
 
11578
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11579
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11580
#include "ExtACTree.ah"
 
11581
#endif
 
11582
#endif
 
11583
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
11584
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
11585
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
11586
#include "WinDeclSpecs.ah"
 
11587
#endif
 
11588
#endif
 
11589
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
11590
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
11591
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
11592
#include "WinMemberExplSpec.ah"
 
11593
#endif
 
11594
#endif
 
11595
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
11596
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
11597
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
11598
#include "WinTypeKeywords.ah"
 
11599
#endif
 
11600
#endif
 
11601
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
11602
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
11603
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
11604
#include "WinFriend.ah"
 
11605
#endif
 
11606
#endif
 
11607
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
11608
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
11609
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11397
11610
#include "ExtAC.ah"
11398
11611
#endif
11399
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
11400
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
11612
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11613
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11614
#include "ExtACTree.ah"
 
11615
#endif
 
11616
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11617
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11618
#include "ExtACKeywords.ah"
 
11619
#endif
 
11620
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11621
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11622
#include "ExtGnu.ah"
 
11623
#endif
 
11624
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11625
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11626
#include "PragmaOnceUnitState.ah"
 
11627
#endif
 
11628
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11629
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11630
#include "CMatchSyntax.ah"
 
11631
#endif
 
11632
#endif
 
11633
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
11634
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
11635
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11401
11636
#include "ExtACBuilderH.ah"
11402
11637
#endif
11403
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
11404
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
11638
#endif
 
11639
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
11640
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
11641
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11405
11642
#include "ExtACBuilderCC.ah"
11406
11643
#endif
11407
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
11408
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
11644
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11645
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11646
#include "ExtACTree.ah"
 
11647
#endif
 
11648
#endif
 
11649
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
11650
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
11651
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11409
11652
#include "ExtACSyntaxH.ah"
11410
11653
#endif
11411
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
11412
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
11654
#endif
 
11655
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
11656
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
11657
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11413
11658
#include "ExtACSyntaxCC.ah"
11414
11659
#endif
11415
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__)
11416
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11660
#endif
 
11661
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11662
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11663
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11417
11664
#include "ExtACTree.ah"
11418
11665
#endif
11419
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
11420
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11666
#endif
 
11667
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11668
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
11669
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11421
11670
 
11422
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11671
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11423
11672
// This file is part of PUMA.
11424
11673
// Copyright (C) 1999-2003  The PUMA developer team.
11425
11674
//                                                                
11442
11691
#define __ext_ac_keywords_ah__
11443
11692
 
11444
11693
 
11445
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
11694
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
11446
11695
// This file is part of PUMA.
11447
11696
// Copyright (C) 1999-2003  The PUMA developer team.
11448
11697
//                                                                
11468
11717
// absolute path of the corresponding file.
11469
11718
 
11470
11719
 
11471
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
11720
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
11472
11721
namespace Puma {
11473
11722
 
11474
11723
 
11475
11724
class Project;
11476
11725
 
11477
11726
 
11478
 
#line 11479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11727
#line 11728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11479
11728
} // closed Puma
 
11729
class CCExprResolve;
 
11730
class CExprResolve;
11480
11731
class WinIfExists;
11481
11732
class WinImportHandler;
11482
11733
class WinMacros;
11483
 
class CMatchSyntax;
11484
 
class ExtGnu;
 
11734
class WinAsm;
 
11735
class WinDeclSpecs;
 
11736
class WinMemberExplSpec;
 
11737
class WinTypeKeywords;
 
11738
class WinFriend;
11485
11739
class ExtAC;
11486
11740
class ExtACBuilderCoupling;
11487
11741
class ExtACSyntaxCoupling;
11488
11742
class ExtACTree;
11489
11743
class ExtACKeywords;
11490
 
class WinAsm;
11491
 
class WinDeclSpecs;
11492
 
class WinMemberExplSpec;
11493
 
class WinTypeKeywords;
 
11744
class ExtGnu;
11494
11745
class PragmaOnceUnitState;
11495
11746
class PragmaOnce;
11496
 
class CCExprResolve;
11497
 
class CExprResolve;
 
11747
class CMatchSyntax;
11498
11748
namespace Puma {
11499
11749
 
11500
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
11750
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
11501
11751
class FileUnit : public Unit {
11502
 
#line 11503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11752
#line 11753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11753
  friend class ::CCExprResolve;
 
11754
  friend class ::CExprResolve;
11503
11755
  friend class ::WinIfExists;
11504
11756
  friend class ::WinImportHandler;
11505
11757
  friend class ::WinMacros;
11506
 
  friend class ::CMatchSyntax;
11507
 
  friend class ::ExtGnu;
 
11758
  friend class ::WinAsm;
 
11759
  friend class ::WinDeclSpecs;
 
11760
  friend class ::WinMemberExplSpec;
 
11761
  friend class ::WinTypeKeywords;
 
11762
  friend class ::WinFriend;
11508
11763
  friend class ::ExtAC;
11509
11764
  friend class ::ExtACBuilderCoupling;
11510
11765
  friend class ::ExtACSyntaxCoupling;
11511
11766
  friend class ::ExtACTree;
11512
11767
  friend class ::ExtACKeywords;
11513
 
  friend class ::WinAsm;
11514
 
  friend class ::WinDeclSpecs;
11515
 
  friend class ::WinMemberExplSpec;
11516
 
  friend class ::WinTypeKeywords;
 
11768
  friend class ::ExtGnu;
11517
11769
  friend class ::PragmaOnceUnitState;
11518
11770
  friend class ::PragmaOnce;
11519
 
  friend class ::CCExprResolve;
11520
 
  friend class ::CExprResolve;
 
11771
  friend class ::CMatchSyntax;
11521
11772
 
11522
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
11773
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
11523
11774
 
11524
11775
  char *_lastLocation; 
11525
11776
  char *_absolutePath;
11585
11836
 
11586
11837
#endif /* __FileUnit__ */
11587
11838
 
11588
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11589
 
using namespace Puma;
11590
 
 
 
11839
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11591
11840
// *****************************************
11592
11841
// AspectC++ keyword handling in the scanner
11593
11842
// *****************************************
11594
11843
 
11595
 
#line 11596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11844
#line 11845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11845
class CCExprResolve;
 
11846
class CExprResolve;
11596
11847
class WinIfExists;
11597
11848
class WinImportHandler;
11598
11849
class WinMacros;
11599
 
class CMatchSyntax;
11600
 
class ExtGnu;
 
11850
class WinAsm;
 
11851
class WinDeclSpecs;
 
11852
class WinMemberExplSpec;
 
11853
class WinTypeKeywords;
 
11854
class WinFriend;
11601
11855
class ExtAC;
11602
11856
class ExtACBuilderCoupling;
11603
11857
class ExtACSyntaxCoupling;
11604
11858
class ExtACTree;
11605
 
class WinAsm;
11606
 
class WinDeclSpecs;
11607
 
class WinMemberExplSpec;
11608
 
class WinTypeKeywords;
 
11859
class ExtGnu;
11609
11860
class PragmaOnceUnitState;
11610
11861
class PragmaOnce;
11611
 
class CCExprResolve;
11612
 
class CExprResolve;
 
11862
class CMatchSyntax;
11613
11863
 
11614
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11864
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11615
11865
class ExtACKeywords {
11616
 
#line 11617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11866
#line 11867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11617
11867
 
11618
11868
public:
11619
11869
  static ExtACKeywords *aspectof () {
11625
11875
  }
11626
11876
private:
11627
11877
 
11628
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11878
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11629
11879
 
11630
 
#line 11631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11880
#line 11881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
 
11881
  friend class ::CCExprResolve;
 
11882
  friend class ::CExprResolve;
11631
11883
  friend class ::WinIfExists;
11632
11884
  friend class ::WinImportHandler;
11633
11885
  friend class ::WinMacros;
11634
 
  friend class ::CMatchSyntax;
11635
 
  friend class ::ExtGnu;
 
11886
  friend class ::WinAsm;
 
11887
  friend class ::WinDeclSpecs;
 
11888
  friend class ::WinMemberExplSpec;
 
11889
  friend class ::WinTypeKeywords;
 
11890
  friend class ::WinFriend;
11636
11891
  friend class ::ExtAC;
11637
11892
  friend class ::ExtACBuilderCoupling;
11638
11893
  friend class ::ExtACSyntaxCoupling;
11639
11894
  friend class ::ExtACTree;
11640
 
  friend class ::WinAsm;
11641
 
  friend class ::WinDeclSpecs;
11642
 
  friend class ::WinMemberExplSpec;
11643
 
  friend class ::WinTypeKeywords;
 
11895
  friend class ::ExtGnu;
11644
11896
  friend class ::PragmaOnceUnitState;
11645
11897
  friend class ::PragmaOnce;
11646
 
  friend class ::CCExprResolve;
11647
 
  friend class ::CExprResolve;
 
11898
  friend class ::CMatchSyntax;
11648
11899
 
11649
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11900
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11650
11901
 
11651
11902
 
11652
11903
  bool _prj_keywords;
11653
 
  CProject *_project; // active project
 
11904
  Puma::CProject *_project; // active project
11654
11905
  
11655
11906
protected:
11656
11907
  ExtACKeywords () : _prj_keywords (false) {}
 
11908
  
11657
11909
public:
11658
11910
  // allow/forbid AspectC++ keywords in normal project files
11659
11911
  void prj_keywords (bool kw) { _prj_keywords = kw; }
11660
11912
  
11661
11913
  
11662
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11914
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11663
11915
 
11664
11916
public: void __a0_before 
11665
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11917
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11666
11918
 
11667
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11668
 
(CProject &project)
11669
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11919
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11920
(Puma::CProject &project)
 
11921
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11670
11922
 {
11671
11923
    _project = &project;
11672
11924
  }
11673
11925
  
11674
11926
  
11675
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11927
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11676
11928
 
11677
11929
public: template<class JoinPoint> void __a1_before 
11678
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11930
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11679
11931
 
11680
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11681
 
(JoinPoint *tjp, Unit &unit)
11682
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11932
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11933
(JoinPoint *tjp, Puma::Unit &unit)
 
11934
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11683
11935
 {
11684
 
#line 11685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11936
#line 11937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11685
11937
 
11686
11938
  typedef typename JoinPoint::That __JP_That;
11687
11939
  typedef typename JoinPoint::Target __JP_Target;
11688
11940
  typedef typename JoinPoint::Result __JP_Result;
11689
11941
 
11690
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11942
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11691
11943
 
11692
11944
    if (!unit.isFile ())
11693
11945
      return;
11694
11946
      
11695
11947
    bool ac_kw = _prj_keywords;
11696
11948
    // in external files the AspectC++ keywords are always identifiers
11697
 
    if (!((FileUnit*)&unit)->belongsTo (*_project)) {
 
11949
    if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
11698
11950
      ac_kw = false;
11699
11951
    }
11700
11952
    // in aspect headers keywords are keywords
11707
11959
  }
11708
11960
  
11709
11961
  
11710
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11962
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11711
11963
 
11712
11964
public: template<class JoinPoint> void __a2_before 
11713
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11965
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11714
11966
 
11715
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11967
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11716
11968
(JoinPoint *tjp)
11717
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11969
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11718
11970
 {
11719
 
#line 11720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11971
#line 11972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11720
11972
 
11721
11973
  typedef typename JoinPoint::That __JP_That;
11722
11974
  typedef typename JoinPoint::Target __JP_Target;
11723
11975
  typedef typename JoinPoint::Result __JP_Result;
11724
11976
 
11725
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11977
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11726
11978
 
11727
11979
    _project = tjp->that ();
11728
11980
  }
11729
11981
};
11730
 
#line 11731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
 
11982
#line 11983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11731
11983
 
11732
11984
namespace AC {
11733
 
  template <class JoinPoint, class Binding>
11734
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
11735
 
    typedef typename Binding::template Arg<0> Arg0;
 
11985
  template <class JoinPoint>
 
11986
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
 
11987
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
11736
11988
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
11737
11989
  }
11738
 
  template <class JoinPoint, class Binding>
11739
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
11740
 
    typedef typename Binding::template Arg<0> Arg0;
 
11990
  template <class JoinPoint>
 
11991
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
 
11992
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
11741
11993
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
11742
11994
  }
11743
11995
  template <class JoinPoint>
11744
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
 
11996
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
11745
11997
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
11746
11998
  }
11747
11999
11748
12000
 
11749
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
12001
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11750
12002
  
11751
12003
 
11752
12004
#endif /* __ext_ac_keywords_ah__ */
11753
12005
 
11754
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11755
 
#endif
11756
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
11757
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
12006
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
12007
#endif
 
12008
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12009
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12010
#include "PragmaOnceUnitState.ah"
 
12011
#endif
 
12012
#endif
 
12013
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
12014
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
12015
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
12016
#include "ExtACTree.ah"
 
12017
#endif
 
12018
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
12019
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
12020
#include "ExtGnu.ah"
 
12021
#endif
 
12022
#endif
 
12023
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
12024
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
12025
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
12026
#include "ExtACTree.ah"
 
12027
#endif
 
12028
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
12029
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
12030
#include "ExtGnuCSemDeclSpecs.ah"
 
12031
#endif
 
12032
#endif
 
12033
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12034
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12035
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12036
#include "PragmaOnceUnitState.ah"
 
12037
#endif
 
12038
#endif
 
12039
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
12040
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12041
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
12042
#include "PragmaOnceUnitState.ah"
 
12043
#endif
 
12044
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
12045
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
12046
 
 
12047
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
 
12048
#endif
 
12049
#endif
 
12050
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
12051
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
12052
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11758
12053
#include "TraceSyntax.ah"
11759
12054
#endif
11760
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__)
11761
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
11762
 
#include "WinAsm.ah"
11763
 
#endif
11764
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
11765
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11766
 
#include "WinDeclSpecs.ah"
11767
 
#endif
11768
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
11769
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11770
 
#include "WinMemberExplSpec.ah"
11771
 
#endif
11772
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
11773
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11774
 
#include "WinTypeKeywords.ah"
11775
 
#endif
11776
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
11777
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11778
 
 
11779
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11780
 
#endif
11781
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
11782
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11783
 
 
11784
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11785
 
#endif
11786
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
11787
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
11788
 
#include "CCExprResolveH.ah"
11789
 
#endif
11790
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
11791
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
11792
 
#include "CCExprResolveCC.ah"
11793
 
#endif
11794
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
11795
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
11796
 
#include "CExprResolveH.ah"
11797
 
#endif
11798
 
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
11799
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
11800
 
#include "CExprResolveCC.ah"
11801
 
#endif
11802
 
/*** end of aspect includes ***/
11803
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
11804
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
11805
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
 
12055
#endif
 
12056
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
12057
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
12058
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
12059
#include "CMatchSyntax.ah"
 
12060
#endif
 
12061
#endif
 
12062
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
12063
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CProject_cc__
 
12064
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CProject_cc__