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

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-04-10 17:40:52 UTC
  • mto: This revision was merged to the branch mainline in revision 10.
  • Revision ID: james.westby@ubuntu.com-20080410174052-dbne39zue793jgrh
Tags: upstream-1.0pre4~svn.20080409+dfsg
ImportĀ upstreamĀ versionĀ 1.0pre4~svn.20080409+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifndef __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
2
 
#define __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
3
 
#define __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
4
 
#endif // __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
 
1
 
 
2
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
3
#ifndef __ac_FIRST__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1__
 
4
#define __ac_FIRST__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1__
 
5
#define __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__
 
6
#endif // __ac_FIRST__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1__
 
7
 
 
8
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
9
 
 
10
#line 11 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5
11
 
6
12
#ifndef __ac_h_
7
13
#define __ac_h_
 
14
#ifdef __cplusplus
8
15
namespace AC {
9
16
  typedef const char* Type;
10
17
  enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
19
26
    ~ResultBuffer () { ((T*)_data)->T::~T(); }
20
27
    operator T& () const { return *(T*)_data; }
21
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
  };
22
43
  template <class Aspect, int Index>
23
44
  struct CFlow {
24
45
    static int &instance () {
32
53
}
33
54
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
34
55
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
 
56
#endif // __cplusplus
35
57
#endif // __ac_h_
36
58
 
 
59
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
60
 
 
61
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
62
 
 
63
#line 64 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
64
 
37
65
#ifndef __ac_fwd_PragmaOnce__
38
66
#define __ac_fwd_PragmaOnce__
39
67
class PragmaOnce;
40
68
namespace AC {
41
69
  template <class JoinPoint>
42
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
43
 
  template <class JoinPoint>
44
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
45
 
  template <class JoinPoint, class Binding>
46
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
47
 
  template <class JoinPoint>
48
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
70
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
71
  template <class JoinPoint>
 
72
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
73
  template <class JoinPoint>
 
74
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
75
  template <class JoinPoint>
 
76
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
49
77
}
50
78
#endif
51
79
 
52
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
53
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
80
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
81
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
54
82
#endif
 
83
 
 
84
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
55
85
// This file is part of PUMA.
56
86
// Copyright (C) 1999-2003  The PUMA developer team.
57
87
//                                                                
70
100
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
71
101
// MA  02111-1307  USA                                            
72
102
 
 
103
 
 
104
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
73
105
// This file is part of PUMA.
74
106
// Copyright (C) 1999-2003  The PUMA developer team.
75
107
//                                                                
95
127
// tokens corresponding to the #include hierarchy of the 
96
128
// input files. 
97
129
 
 
130
 
 
131
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Array.h"
98
132
// This file is part of PUMA.
99
133
// Copyright (C) 1999-2003  The PUMA developer team.
100
134
//                                                                
120
154
 
121
155
namespace Puma {
122
156
 
123
 
} // closed Puma
124
 
class WinIfExists;
125
 
class WinImportHandler;
126
 
class WinMacros;
127
 
class CMatchSyntax;
128
 
class ExtGnu;
129
 
class ExtAC;
130
 
class ExtACBuilderCoupling;
131
 
class ExtACSyntaxCoupling;
132
 
class ExtACTree;
133
 
class ExtACKeywords;
134
 
class WinAsm;
135
 
class WinDeclSpecs;
136
 
class WinMemberExplSpec;
137
 
class WinTypeKeywords;
138
 
class PragmaOnceUnitState;
139
 
class PragmaOnce;
140
 
class CCExprResolve;
141
 
class CExprResolve;
142
 
namespace Puma {
143
157
template <class Item>
144
 
class Array {  friend class ::WinIfExists;
145
 
  friend class ::WinImportHandler;
146
 
  friend class ::WinMacros;
147
 
  friend class ::CMatchSyntax;
148
 
  friend class ::ExtGnu;
149
 
  friend class ::ExtAC;
150
 
  friend class ::ExtACBuilderCoupling;
151
 
  friend class ::ExtACSyntaxCoupling;
152
 
  friend class ::ExtACTree;
153
 
  friend class ::ExtACKeywords;
154
 
  friend class ::WinAsm;
155
 
  friend class ::WinDeclSpecs;
156
 
  friend class ::WinMemberExplSpec;
157
 
  friend class ::WinTypeKeywords;
158
 
  friend class ::PragmaOnceUnitState;
159
 
  friend class ::PragmaOnce;
160
 
  friend class ::CCExprResolve;
161
 
  friend class ::CExprResolve;
162
 
 
163
 
   protected:
164
 
      static const long default_init_size = 5;
165
 
      static const long default_increment = 5;
166
 
 
167
 
   public:
168
 
      Array (long is = default_init_size, long incr = default_increment);
169
 
      Array (const Array<Item>& array);
170
 
      Array<Item>& operator =(const Array<Item>&);
171
 
      ~Array ();
172
 
      void append (const Item& item);
173
 
      void insert (long index, const Item& item);
174
 
      void prepend (const Item& item);
175
 
      void remove (long index);
176
 
      void reset ();
177
 
      Item& get (long index);
178
 
      Item& operator[] (long index);
179
 
      Item fetch (long index) const;
180
 
      Item& lookup (long index) const;
181
 
      long length () const;
182
 
 
183
 
   private:
184
 
      Item* data;
185
 
      long size;
186
 
      long count;
187
 
      long increment;
 
158
class Array {
 
159
protected:
 
160
  static const long default_init_size = 5;
 
161
  static const long default_increment = 5;
 
162
 
 
163
public:
 
164
  Array (long is = default_init_size, long incr = default_increment);
 
165
  Array (const Array<Item>& array);
 
166
  Array<Item>& operator =(const Array<Item>&);
 
167
  ~Array ();
 
168
  void append (const Item& item);
 
169
  void insert (long index, const Item& item);
 
170
  void prepend (const Item& item);
 
171
  void remove (long index);
 
172
  void reset ();
 
173
  Item& get (long index);
 
174
  Item& operator[] (long index);
 
175
  Item fetch (long index) const;
 
176
  Item& lookup (long index) const;
 
177
  long length () const;
 
178
 
 
179
private:
 
180
  Item* data;
 
181
  long size;
 
182
  long count;
 
183
  long increment;
188
184
      
189
 
      void check (long wanted);
190
 
 };
191
 
 
192
 
template <class Item>
193
 
inline Array<Item>::Array (long is, long incr)
194
 
 {
195
 
   count     = 0; 
196
 
   size      = is;
197
 
   increment = incr;
198
 
   data      = new Item[size];
199
 
 }
200
 
 
201
 
template <class Item>
202
 
Array<Item>::Array (const Array<Item>& array)
203
 
 {
204
 
   count = 0;
205
 
   size  = array.size;
206
 
   data  = new Item[size];
207
 
   increment = array.increment;
208
 
 
209
 
   for (int pos = 0; pos < array.length (); pos++)
210
 
      append (array.lookup (pos));
211
 
 }
212
 
 
213
 
template <class Item>
214
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
215
 
 {
216
 
   if (data)
217
 
      delete[] data;
218
 
   count = 0;
219
 
   size  = array.size;
220
 
   data  = new Item[size];
221
 
   increment = array.increment;
222
 
 
223
 
   for (int pos = 0; pos < array.length (); pos++)
224
 
      append (array.lookup (pos));
225
 
   return *this;
226
 
 }
227
 
 
228
 
template <class Item>
229
 
Array<Item>::~Array ()
230
 
 {
231
 
   if (data)
232
 
      delete[] data;
233
 
 }
234
 
 
235
 
template <class Item>
236
 
inline void Array<Item>::check (long wanted)
237
 
 {
238
 
   if (wanted >= size)
239
 
    {
240
 
      Item* new_data;
241
 
 
242
 
      while (wanted >= size)
243
 
      {
244
 
         size += increment;
245
 
         increment*=2;
246
 
      }
247
 
      new_data = new Item[size];
248
 
      for (int pos = 0; pos < count; pos++)
249
 
         new_data[pos] = data[pos];
250
 
      delete[] data;
251
 
      data = new_data;
252
 
    }
253
 
 }
 
185
  void grow (long wanted);
 
186
};
 
187
 
 
188
template <class Item>
 
189
inline Array<Item>::Array (long is, long incr) {
 
190
  count     = 0; 
 
191
  size      = is;
 
192
  increment = incr;
 
193
  data      = 0;
 
194
}
 
195
 
 
196
template <class Item>
 
197
Array<Item>::Array (const Array<Item>& array) {
 
198
  count     = 0;
 
199
  size      = array.size;
 
200
  increment = array.increment;
 
201
  
 
202
  if (size && array.data) {
 
203
    data = new Item[size];
 
204
    for (; count < array.count; count++) {
 
205
      data[count] = array.data[count];
 
206
    }
 
207
  } else
 
208
    data = 0;
 
209
}
 
210
 
 
211
template <class Item>
 
212
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
213
  if (data)
 
214
    delete[] data;
 
215
 
 
216
  count     = 0;
 
217
  size      = array.size;
 
218
  increment = array.increment;
 
219
 
 
220
  if (size && array.data) {
 
221
    data = new Item[size];
 
222
    for (; count < array.count; count++) {
 
223
      data[count] = array.data[count];
 
224
    }
 
225
  } else
 
226
    data = 0;
 
227
  
 
228
  return *this;
 
229
}
 
230
 
 
231
template <class Item>
 
232
Array<Item>::~Array () {
 
233
  if (data)
 
234
    delete[] data;
 
235
}
 
236
 
 
237
template <class Item>
 
238
inline void Array<Item>::grow (long wanted) {
 
239
  do {
 
240
    size += increment;
 
241
    increment *= 2;
 
242
  } while (wanted >= size);
 
243
 
 
244
  if (data) {
 
245
    Item* new_data = new Item[size];
 
246
    for (long i = 0; i < count; i++) {
 
247
      new_data[i] = data[i];
 
248
    }
 
249
    delete[] data;
 
250
    data = new_data;
 
251
  } else
 
252
    data = new Item[size];
 
253
}
254
254
   
255
255
template <class Item>
256
 
inline void Array<Item>::append (const Item& item)
257
 
 {
258
 
   check (count);
259
 
   data[count++] = item;
260
 
 }
261
 
 
262
 
template <class Item>
263
 
void Array<Item>::prepend (const Item& item)
264
 
 {
265
 
   insert (0, item);
266
 
 }
267
 
 
268
 
template <class Item>
269
 
void Array<Item>::insert (long index, const Item& item)
270
 
 {
271
 
   check (count);
272
 
   for (int pos = count; pos > index; pos--)
273
 
      data[pos] = data[pos - 1];
274
 
   data[index] = item;
275
 
   count++;
276
 
 }
277
 
 
278
 
template <class Item>
279
 
inline Item& Array<Item>::get (long index)
280
 
 {
281
 
   check (index);
282
 
   if (index >= count)
283
 
      count = index + 1;
284
 
   return data[index];
285
 
 }
286
 
 
287
 
template <class Item>
288
 
inline Item& Array<Item>::operator[] (long index)
289
 
 {
290
 
   return get (index);
291
 
 }
292
 
 
293
 
template <class Item>
294
 
inline Item Array<Item>::fetch (long index) const
295
 
 {
296
 
   assert(index < count);
297
 
   return data[index];
298
 
 }
299
 
 
300
 
template <class Item>
301
 
inline long Array<Item>::length () const
302
 
 {
303
 
   return count;
304
 
 }
305
 
 
306
 
template <class Item>
307
 
inline void Array<Item>::remove (long index)
308
 
 {
309
 
   if (index < count && count > 0)
310
 
    {
311
 
      for (int pos = index; pos < count - 1; pos++)
312
 
         data[pos] = data[pos + 1];
313
 
      count--;
314
 
    }
315
 
 }
 
256
inline void Array<Item>::append (const Item& item) {
 
257
  if (count >= size || ! data) {
 
258
    grow (count);
 
259
  }
 
260
  data[count++] = item;
 
261
}
 
262
 
 
263
template <class Item>
 
264
void Array<Item>::prepend (const Item& item) {
 
265
  insert (0, item);
 
266
}
 
267
 
 
268
template <class Item>
 
269
void Array<Item>::insert (long index, const Item& item) {
 
270
  if (count >= size || ! data) {
 
271
    grow (count);
 
272
  }
 
273
  for (long i = count; i > index; i--)
 
274
    data[i] = data[i - 1];
 
275
  data[index] = item;
 
276
  count++;
 
277
}
 
278
 
 
279
template <class Item>
 
280
inline Item& Array<Item>::get (long index) {
 
281
  if (index >= size || ! data) {
 
282
    grow (index);
 
283
  }
 
284
  if (index >= count)
 
285
    count = index + 1;
 
286
  return data[index];
 
287
}
 
288
 
 
289
template <class Item>
 
290
inline Item& Array<Item>::operator[] (long index) {
 
291
  return get (index);
 
292
}
 
293
 
 
294
template <class Item>
 
295
inline Item Array<Item>::fetch (long index) const {
 
296
  assert(index < count && data);
 
297
  return data[index];
 
298
}
 
299
 
 
300
template <class Item>
 
301
inline long Array<Item>::length () const {
 
302
  return count;
 
303
}
 
304
 
 
305
template <class Item>
 
306
inline void Array<Item>::remove (long index) {
 
307
  if (index < count && count > 0) {
 
308
    for (long i = index; i < count - 1; i++)
 
309
      data[i] = data[i + 1];
 
310
    count--;
 
311
  }
 
312
}
316
313
 
317
314
#ifndef __puma
318
315
template <>
319
316
inline void Array<int>::reset () {
320
 
   count = 0; 
 
317
  count = 0; 
321
318
}
322
319
#endif
323
320
 
324
321
template <class Item>
325
 
void Array<Item>::reset ()
326
 
 {
327
 
   if (data)
328
 
      delete[] data;
329
 
   count     = 0; 
330
 
   size      = default_init_size;
331
 
   increment = default_increment;
332
 
   data      = new Item[size];
333
 
 }
 
322
void Array<Item>::reset () {
 
323
  if (data)
 
324
    delete[] data;
 
325
    
 
326
  count     = 0; 
 
327
  size      = default_init_size;
 
328
  increment = default_increment;
 
329
  data      = new Item[size];
 
330
}
334
331
 
335
332
template <class Item>
336
 
inline Item& Array<Item>::lookup (long index) const
337
 
 {
338
 
   assert(index >= 0 && index < count);
339
 
//   if (index >= count) index = count - 1; 
340
 
//   if (index < 0)      index = 0;
341
 
   return data[index];
342
 
 }
 
333
inline Item& Array<Item>::lookup (long index) const {
 
334
  assert(index >= 0 && index < count);
 
335
  return data[index];
 
336
}
343
337
 
344
338
 
345
339
} // namespace Puma
373
367
  void remove (long idx)                   { Base::remove (idx); }
374
368
  void reset ()                            { Base::reset (); }
375
369
 
376
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
377
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
378
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
379
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
380
 
  long length () const           { return Base::length (); }
 
370
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
371
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
372
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
373
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
374
  long length () const                     { return Base::length (); }
381
375
};
382
376
 
383
377
 
386
380
#endif /* __puma */
387
381
 
388
382
#endif /* __array_h__ */
 
383
 
 
384
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
389
385
// This file is part of PUMA.
390
386
// Copyright (C) 1999-2003  The PUMA developer team.
391
387
//                                                                
407
403
#ifndef __unit_h__
408
404
#define __unit_h__
409
405
 
 
406
 
 
407
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
410
408
// This file is part of PUMA.
411
409
// Copyright (C) 1999-2003  The PUMA developer team.
412
410
//                                                                
428
426
#ifndef __list_h__
429
427
#define __list_h__
430
428
 
 
429
 
 
430
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ListElement.h"
431
431
// This file is part of PUMA.
432
432
// Copyright (C) 1999-2003  The PUMA developer team.
433
433
//                                                                
461
461
 
462
462
class List;
463
463
 
 
464
 
 
465
#line 466 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
464
466
} // closed Puma
 
467
class CCExprResolve;
 
468
class CExprResolve;
465
469
class WinIfExists;
466
470
class WinImportHandler;
467
471
class WinMacros;
468
 
class CMatchSyntax;
469
 
class ExtGnu;
 
472
class WinAsm;
 
473
class WinDeclSpecs;
 
474
class WinMemberExplSpec;
 
475
class WinTypeKeywords;
 
476
class WinFriend;
470
477
class ExtAC;
471
478
class ExtACBuilderCoupling;
472
479
class ExtACSyntaxCoupling;
473
480
class ExtACTree;
474
481
class ExtACKeywords;
475
 
class WinAsm;
476
 
class WinDeclSpecs;
477
 
class WinMemberExplSpec;
478
 
class WinTypeKeywords;
 
482
class ExtGnu;
479
483
class PragmaOnceUnitState;
480
484
class PragmaOnce;
481
 
class CCExprResolve;
482
 
class CExprResolve;
 
485
class CMatchSyntax;
483
486
namespace Puma {
484
 
class ListElement {  friend class ::WinIfExists;
 
487
 
 
488
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
489
class ListElement {
 
490
#line 491 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
491
  friend class ::CCExprResolve;
 
492
  friend class ::CExprResolve;
 
493
  friend class ::WinIfExists;
485
494
  friend class ::WinImportHandler;
486
495
  friend class ::WinMacros;
487
 
  friend class ::CMatchSyntax;
488
 
  friend class ::ExtGnu;
 
496
  friend class ::WinAsm;
 
497
  friend class ::WinDeclSpecs;
 
498
  friend class ::WinMemberExplSpec;
 
499
  friend class ::WinTypeKeywords;
 
500
  friend class ::WinFriend;
489
501
  friend class ::ExtAC;
490
502
  friend class ::ExtACBuilderCoupling;
491
503
  friend class ::ExtACSyntaxCoupling;
492
504
  friend class ::ExtACTree;
493
505
  friend class ::ExtACKeywords;
494
 
  friend class ::WinAsm;
495
 
  friend class ::WinDeclSpecs;
496
 
  friend class ::WinMemberExplSpec;
497
 
  friend class ::WinTypeKeywords;
 
506
  friend class ::ExtGnu;
498
507
  friend class ::PragmaOnceUnitState;
499
508
  friend class ::PragmaOnce;
500
 
  friend class ::CCExprResolve;
501
 
  friend class ::CExprResolve;
 
509
  friend class ::CMatchSyntax;
 
510
 
 
511
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ListElement.h"
502
512
 
503
513
  friend class List;
504
514
 
518
528
} // namespace Puma
519
529
 
520
530
#endif /* __list_element_h__ */
 
531
 
 
532
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
521
533
namespace Puma {
522
534
 
523
535
 
 
536
 
 
537
#line 538 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
524
538
} // closed Puma
 
539
class CCExprResolve;
 
540
class CExprResolve;
525
541
class WinIfExists;
526
542
class WinImportHandler;
527
543
class WinMacros;
528
 
class CMatchSyntax;
529
 
class ExtGnu;
 
544
class WinAsm;
 
545
class WinDeclSpecs;
 
546
class WinMemberExplSpec;
 
547
class WinTypeKeywords;
 
548
class WinFriend;
530
549
class ExtAC;
531
550
class ExtACBuilderCoupling;
532
551
class ExtACSyntaxCoupling;
533
552
class ExtACTree;
534
553
class ExtACKeywords;
535
 
class WinAsm;
536
 
class WinDeclSpecs;
537
 
class WinMemberExplSpec;
538
 
class WinTypeKeywords;
 
554
class ExtGnu;
539
555
class PragmaOnceUnitState;
540
556
class PragmaOnce;
541
 
class CCExprResolve;
542
 
class CExprResolve;
 
557
class CMatchSyntax;
543
558
namespace Puma {
544
 
class List {  friend class ::WinIfExists;
 
559
 
 
560
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
 
561
class List {
 
562
#line 563 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
563
  friend class ::CCExprResolve;
 
564
  friend class ::CExprResolve;
 
565
  friend class ::WinIfExists;
545
566
  friend class ::WinImportHandler;
546
567
  friend class ::WinMacros;
547
 
  friend class ::CMatchSyntax;
548
 
  friend class ::ExtGnu;
 
568
  friend class ::WinAsm;
 
569
  friend class ::WinDeclSpecs;
 
570
  friend class ::WinMemberExplSpec;
 
571
  friend class ::WinTypeKeywords;
 
572
  friend class ::WinFriend;
549
573
  friend class ::ExtAC;
550
574
  friend class ::ExtACBuilderCoupling;
551
575
  friend class ::ExtACSyntaxCoupling;
552
576
  friend class ::ExtACTree;
553
577
  friend class ::ExtACKeywords;
554
 
  friend class ::WinAsm;
555
 
  friend class ::WinDeclSpecs;
556
 
  friend class ::WinMemberExplSpec;
557
 
  friend class ::WinTypeKeywords;
 
578
  friend class ::ExtGnu;
558
579
  friend class ::PragmaOnceUnitState;
559
580
  friend class ::PragmaOnce;
560
 
  friend class ::CCExprResolve;
561
 
  friend class ::CExprResolve;
 
581
  friend class ::CMatchSyntax;
 
582
 
 
583
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
562
584
 
563
585
  ListElement *_first;
564
586
  ListElement *_last;
594
616
  const ListElement *first () const { return _first; }
595
617
  const ListElement *last () const { return _last; }
596
618
  const ListElement *next (const ListElement *element) const
597
 
   { return element->_next; }
 
619
   { return element ? element->_next : 0; }
598
620
  const ListElement *prev (const ListElement *element) const 
599
 
   { return element->_prev; }
 
621
   { return element ? element->_prev : 0; }
600
622
};
601
623
 
602
624
 
603
625
} // namespace Puma
604
626
 
605
627
#endif /* __list_h__ */
 
628
 
 
629
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Printable.h"
606
630
// This file is part of PUMA.
607
631
// Copyright (C) 1999-2003  The PUMA developer team.
608
632
//                                                                
630
654
namespace Puma {
631
655
 
632
656
 
 
657
 
 
658
#line 659 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
633
659
} // closed Puma
 
660
class CCExprResolve;
 
661
class CExprResolve;
634
662
class WinIfExists;
635
663
class WinImportHandler;
636
664
class WinMacros;
637
 
class CMatchSyntax;
638
 
class ExtGnu;
 
665
class WinAsm;
 
666
class WinDeclSpecs;
 
667
class WinMemberExplSpec;
 
668
class WinTypeKeywords;
 
669
class WinFriend;
639
670
class ExtAC;
640
671
class ExtACBuilderCoupling;
641
672
class ExtACSyntaxCoupling;
642
673
class ExtACTree;
643
674
class ExtACKeywords;
644
 
class WinAsm;
645
 
class WinDeclSpecs;
646
 
class WinMemberExplSpec;
647
 
class WinTypeKeywords;
 
675
class ExtGnu;
648
676
class PragmaOnceUnitState;
649
677
class PragmaOnce;
650
 
class CCExprResolve;
651
 
class CExprResolve;
 
678
class CMatchSyntax;
652
679
namespace Puma {
653
 
class Printable {  friend class ::WinIfExists;
 
680
 
 
681
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Printable.h"
 
682
class Printable {
 
683
#line 684 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
684
  friend class ::CCExprResolve;
 
685
  friend class ::CExprResolve;
 
686
  friend class ::WinIfExists;
654
687
  friend class ::WinImportHandler;
655
688
  friend class ::WinMacros;
656
 
  friend class ::CMatchSyntax;
657
 
  friend class ::ExtGnu;
 
689
  friend class ::WinAsm;
 
690
  friend class ::WinDeclSpecs;
 
691
  friend class ::WinMemberExplSpec;
 
692
  friend class ::WinTypeKeywords;
 
693
  friend class ::WinFriend;
658
694
  friend class ::ExtAC;
659
695
  friend class ::ExtACBuilderCoupling;
660
696
  friend class ::ExtACSyntaxCoupling;
661
697
  friend class ::ExtACTree;
662
698
  friend class ::ExtACKeywords;
663
 
  friend class ::WinAsm;
664
 
  friend class ::WinDeclSpecs;
665
 
  friend class ::WinMemberExplSpec;
666
 
  friend class ::WinTypeKeywords;
 
699
  friend class ::ExtGnu;
667
700
  friend class ::PragmaOnceUnitState;
668
701
  friend class ::PragmaOnce;
669
 
  friend class ::CCExprResolve;
670
 
  friend class ::CExprResolve;
 
702
  friend class ::CMatchSyntax;
 
703
 
 
704
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Printable.h"
671
705
 
672
706
public:
673
707
  virtual ~Printable () {}
685
719
 
686
720
#endif /* __printable_h__ */
687
721
 
 
722
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
723
 
 
724
#line 725 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
725
 
688
726
#ifndef __ac_fwd_PragmaOnceUnitState__
689
727
#define __ac_fwd_PragmaOnceUnitState__
690
728
class PragmaOnceUnitState;
691
729
namespace AC {
692
730
  template <class JoinPoint>
693
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
731
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
732
  template <class JoinPoint>
 
733
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
694
734
}
695
735
#endif
696
736
 
697
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
698
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
737
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
738
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
699
739
#endif
 
740
 
 
741
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
742
// This file is part of PUMA.
 
743
// Copyright (C) 1999-2003  The PUMA developer team.
 
744
//                                                                
 
745
// This program is free software;  you can redistribute it and/or 
 
746
// modify it under the terms of the GNU General Public License as 
 
747
// published by the Free Software Foundation; either version 2 of 
 
748
// the License, or (at your option) any later version.            
 
749
//                                                                
 
750
// This program is distributed in the hope that it will be useful,
 
751
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
752
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
753
// GNU General Public License for more details.                   
 
754
//                                                                
 
755
// You should have received a copy of the GNU General Public      
 
756
// License along with this program; if not, write to the Free     
 
757
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
758
// MA  02111-1307  USA                                            
 
759
 
 
760
#ifndef __UnitState__
 
761
#define __UnitState__
 
762
 
 
763
// The state of a unit: 
 
764
// 1. modified by manipulations and not updated at the class registry
 
765
// 2. modified by manipulations and updated at the class registry
 
766
// 3. unmodified by manipulations and not updated at the class registry
 
767
// 4. unmodified by manipulations and updated at the class registry
 
768
 
 
769
namespace Puma {
 
770
 
 
771
 
 
772
 
 
773
#line 774 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
774
} // closed Puma
 
775
class CCExprResolve;
 
776
class CExprResolve;
 
777
class WinIfExists;
 
778
class WinImportHandler;
 
779
class WinMacros;
 
780
class WinAsm;
 
781
class WinDeclSpecs;
 
782
class WinMemberExplSpec;
 
783
class WinTypeKeywords;
 
784
class WinFriend;
 
785
class ExtAC;
 
786
class ExtACBuilderCoupling;
 
787
class ExtACSyntaxCoupling;
 
788
class ExtACTree;
 
789
class ExtACKeywords;
 
790
class ExtGnu;
 
791
class PragmaOnceUnitState;
 
792
class PragmaOnce;
 
793
class CMatchSyntax;
 
794
namespace Puma {
 
795
 
 
796
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
797
 
 
798
#line 799 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
799
} // closed Puma
 
800
 
 
801
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
802
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
803
 
 
804
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
700
805
// This file is part of PUMA.
701
806
// Copyright (C) 1999-2003  The PUMA developer team.
702
807
//                                                                
718
823
#ifndef __PragmaOnceUnitState__
719
824
#define __PragmaOnceUnitState__
720
825
 
721
 
using namespace Puma;
722
826
 
 
827
#line 828 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
828
class CCExprResolve;
 
829
class CExprResolve;
723
830
class WinIfExists;
724
831
class WinImportHandler;
725
832
class WinMacros;
726
 
class CMatchSyntax;
727
 
class ExtGnu;
 
833
class WinAsm;
 
834
class WinDeclSpecs;
 
835
class WinMemberExplSpec;
 
836
class WinTypeKeywords;
 
837
class WinFriend;
728
838
class ExtAC;
729
839
class ExtACBuilderCoupling;
730
840
class ExtACSyntaxCoupling;
731
841
class ExtACTree;
732
842
class ExtACKeywords;
733
 
class WinAsm;
734
 
class WinDeclSpecs;
735
 
class WinMemberExplSpec;
736
 
class WinTypeKeywords;
 
843
class ExtGnu;
737
844
class PragmaOnce;
738
 
class CCExprResolve;
739
 
class CExprResolve;
 
845
class CMatchSyntax;
 
846
 
 
847
#line 22 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
740
848
class PragmaOnceUnitState {
 
849
#line 850 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
850
 
741
851
public:
742
852
  static PragmaOnceUnitState *aspectof () {
743
853
    static PragmaOnceUnitState __instance;
747
857
    return aspectof ();
748
858
  }
749
859
private:
 
860
 
 
861
#line 22 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
862
 
 
863
#line 864 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
864
  friend class ::CCExprResolve;
 
865
  friend class ::CExprResolve;
750
866
  friend class ::WinIfExists;
751
867
  friend class ::WinImportHandler;
752
868
  friend class ::WinMacros;
753
 
  friend class ::CMatchSyntax;
754
 
  friend class ::ExtGnu;
 
869
  friend class ::WinAsm;
 
870
  friend class ::WinDeclSpecs;
 
871
  friend class ::WinMemberExplSpec;
 
872
  friend class ::WinTypeKeywords;
 
873
  friend class ::WinFriend;
755
874
  friend class ::ExtAC;
756
875
  friend class ::ExtACBuilderCoupling;
757
876
  friend class ::ExtACSyntaxCoupling;
758
877
  friend class ::ExtACTree;
759
878
  friend class ::ExtACKeywords;
760
 
  friend class ::WinAsm;
761
 
  friend class ::WinDeclSpecs;
762
 
  friend class ::WinMemberExplSpec;
763
 
  friend class ::WinTypeKeywords;
 
879
  friend class ::ExtGnu;
764
880
  friend class ::PragmaOnce;
765
 
  friend class ::CCExprResolve;
766
 
  friend class ::CExprResolve;
 
881
  friend class ::CMatchSyntax;
 
882
 
 
883
#line 22 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
767
884
 
768
885
  /******************************************************/
769
886
  /* specific #pragma once unit state                   */
771
888
 
772
889
  // pointcut definitions
773
890
  
 
891
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
892
 
774
893
 
775
894
  
 
895
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
896
 
776
897
  
777
898
  // initialize new state flag
778
899
  
779
 
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
 
900
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
901
 
 
902
public: template<class JoinPoint> void __a0_after 
 
903
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
904
 
 
905
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
906
(JoinPoint *tjp)
 
907
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
908
 {
 
909
#line 910 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
910
 
780
911
  JoinPoint *&thisJoinPoint = tjp;
781
912
 
 
913
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
914
 
 
915
#line 916 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
916
 
782
917
  typedef typename JoinPoint::That __JP_That;
783
918
  typedef typename JoinPoint::Target __JP_Target;
784
919
  typedef typename JoinPoint::Result __JP_Result;
785
920
 
 
921
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
922
 
786
923
    thisJoinPoint->that ()->_once = false;
787
924
  }
788
 
private:
 
925
#line 926 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
926
 
 
927
private:
 
928
 
 
929
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
930
 
 
931
  
 
932
  // initialize new flag for all managed units 
 
933
  
 
934
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
935
 
 
936
public: template<class JoinPoint> void __a1_after 
 
937
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
938
 
 
939
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
940
(JoinPoint *tjp)
 
941
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
942
 {
 
943
#line 944 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
944
 
 
945
  typedef typename JoinPoint::That __JP_That;
 
946
  typedef typename JoinPoint::Target __JP_Target;
 
947
  typedef typename JoinPoint::Result __JP_Result;
 
948
 
 
949
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
950
 
 
951
    // go through the whole unit hash table and reset the 
 
952
    // `#pragma once' state of the units
 
953
    typename __JP_That
 
954
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
955
::UMapIter iter;
 
956
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
 
957
      (*iter).second->state ().onlyOnce (false);
 
958
  }
 
959
#line 960 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
960
 
 
961
private:
 
962
 
 
963
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
789
964
 
790
965
 
791
966
protected:
792
967
  // this aspect should never be instantiated directly
793
968
  PragmaOnceUnitState () {}
794
969
};
 
970
#line 971 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
971
 
795
972
namespace AC {
796
973
  template <class JoinPoint>
797
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
 
974
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
798
975
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
799
976
  }
 
977
  template <class JoinPoint>
 
978
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
 
979
    ::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
 
980
  }
800
981
801
982
 
 
983
#line 56 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
984
 
802
985
 
803
986
 
804
987
#endif /* __PragmaOnceUnitState__ */
805
 
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
806
 
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
807
 
// This file is part of PUMA.
808
 
// Copyright (C) 1999-2003  The PUMA developer team.
809
 
//                                                                
810
 
// This program is free software;  you can redistribute it and/or 
811
 
// modify it under the terms of the GNU General Public License as 
812
 
// published by the Free Software Foundation; either version 2 of 
813
 
// the License, or (at your option) any later version.            
814
 
//                                                                
815
 
// This program is distributed in the hope that it will be useful,
816
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
817
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
818
 
// GNU General Public License for more details.                   
819
 
//                                                                
820
 
// You should have received a copy of the GNU General Public      
821
 
// License along with this program; if not, write to the Free     
822
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
823
 
// MA  02111-1307  USA                                            
824
 
 
825
 
#ifndef __UnitState__
826
 
#define __UnitState__
827
 
 
828
 
// The state of a unit: 
829
 
// 1. modified by manipulations and not updated at the class registry
830
 
// 2. modified by manipulations and updated at the class registry
831
 
// 3. unmodified by manipulations and not updated at the class registry
832
 
// 4. unmodified by manipulations and updated at the class registry
833
 
 
834
 
namespace Puma {
835
 
 
836
 
 
837
 
} // closed Puma
838
 
class WinIfExists;
839
 
class WinImportHandler;
840
 
class WinMacros;
841
 
class CMatchSyntax;
842
 
class ExtGnu;
843
 
class ExtAC;
844
 
class ExtACBuilderCoupling;
845
 
class ExtACSyntaxCoupling;
846
 
class ExtACTree;
847
 
class ExtACKeywords;
848
 
class WinAsm;
849
 
class WinDeclSpecs;
850
 
class WinMemberExplSpec;
851
 
class WinTypeKeywords;
852
 
class PragmaOnceUnitState;
853
 
class PragmaOnce;
854
 
class CCExprResolve;
855
 
class CExprResolve;
856
 
namespace Puma {
857
 
class UnitState {  friend class ::WinIfExists;
 
988
 
 
989
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
990
#endif
 
991
namespace Puma {
 
992
 
 
993
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
994
class UnitState {
 
995
#line 996 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
996
  friend class ::CCExprResolve;
 
997
  friend class ::CExprResolve;
 
998
  friend class ::WinIfExists;
858
999
  friend class ::WinImportHandler;
859
1000
  friend class ::WinMacros;
860
 
  friend class ::CMatchSyntax;
861
 
  friend class ::ExtGnu;
 
1001
  friend class ::WinAsm;
 
1002
  friend class ::WinDeclSpecs;
 
1003
  friend class ::WinMemberExplSpec;
 
1004
  friend class ::WinTypeKeywords;
 
1005
  friend class ::WinFriend;
862
1006
  friend class ::ExtAC;
863
1007
  friend class ::ExtACBuilderCoupling;
864
1008
  friend class ::ExtACSyntaxCoupling;
865
1009
  friend class ::ExtACTree;
866
1010
  friend class ::ExtACKeywords;
867
 
  friend class ::WinAsm;
868
 
  friend class ::WinDeclSpecs;
869
 
  friend class ::WinMemberExplSpec;
870
 
  friend class ::WinTypeKeywords;
 
1011
  friend class ::ExtGnu;
871
1012
  friend class ::PragmaOnceUnitState;
872
1013
  friend class ::PragmaOnce;
873
 
  friend class ::CCExprResolve;
874
 
  friend class ::CExprResolve;
 
1014
  friend class ::CMatchSyntax;
 
1015
 
 
1016
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
875
1017
 
876
1018
  bool _modified;
877
1019
  bool _updated;
878
1020
  long _lastModified;
879
1021
      
880
1022
public:
881
 
  public: inline void __exec_old_C1();
 
1023
  
 
1024
#line 1025 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1025
public: __attribute__((always_inline)) inline void __exec_old_C1();
 
1026
 
 
1027
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
882
1028
UnitState ();
883
1029
      
884
1030
  bool isModified () const;
891
1037
  void unmodified ();
892
1038
  void updated ();
893
1039
   private:
 
1040
 
 
1041
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
894
1042
 bool _once ;
895
1043
public :
896
1044
 
897
1045
bool onlyOnce ( ) const { return _once ; }
898
1046
void onlyOnce ( bool v ) { _once = v ; }
899
 
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
900
 
  typedef void Result;
901
 
  typedef ::Puma::UnitState That;
902
 
  typedef ::Puma::UnitState Target;
903
 
  static const int JPID = 5;
 
1047
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
1048
 
 
1049
#line 1050 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1050
 
 
1051
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
 
1052
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
 
1053
  typedef TResult Result;
 
1054
  typedef TThat   That;
 
1055
  typedef TTarget Target;
 
1056
  enum { ARGS = TArgs::ARGS };
 
1057
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
1058
  static const int JPID = 3430;
904
1059
  static const AC::JPType JPTYPE = (AC::JPType)16;
905
1060
  struct Res {
906
1061
    typedef void Type;
907
1062
    typedef void ReferredType;
908
1063
  };
909
 
  enum { ARGS = 1 };
910
 
  template <int I, int DUMMY = 0> struct Arg {
911
 
    typedef void Type;
912
 
    typedef void ReferredType;
913
 
  };
914
 
  template <int DUMMY> struct Arg<0, DUMMY> {
915
 
    typedef const ::Puma::UnitState & Type;
916
 
    typedef const ::Puma::UnitState ReferredType;
917
 
  };
918
1064
 
919
1065
  That *_that;
920
1066
 
923
1069
};
924
1070
 
925
1071
 
 
1072
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
1073
 
 
1074
#line 1075 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1075
 
926
1076
public:
927
1077
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
928
 
  TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
929
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
930
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
 
1078
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
 
1079
  __TJP tjp;
 
1080
  tjp._that =  (__TJP::That*)this;
 
1081
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
931
1082
 
932
1083
}
 
1084
 
 
1085
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
933
1086
};
934
1087
 
935
1088
 
936
 
 
937
 
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
938
 
  typedef void Result;
939
 
  typedef ::Puma::UnitState That;
940
 
  typedef ::Puma::UnitState Target;
941
 
  static const int JPID = 5;
 
1089
#line 1090 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1090
 
 
1091
 
 
1092
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
 
1093
  typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
 
1094
  typedef TResult Result;
 
1095
  typedef TThat   That;
 
1096
  typedef TTarget Target;
 
1097
  enum { ARGS = TArgs::ARGS };
 
1098
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
1099
  static const int JPID = 3406;
942
1100
  static const AC::JPType JPTYPE = (AC::JPType)16;
943
1101
  struct Res {
944
1102
    typedef void Type;
945
1103
    typedef void ReferredType;
946
1104
  };
947
 
  enum { ARGS = 0 };
948
 
  template <int I, int DUMMY = 0> struct Arg {
949
 
    typedef void Type;
950
 
    typedef void ReferredType;
951
 
  };
952
1105
 
953
1106
  That *_that;
954
1107
 
956
1109
 
957
1110
};
958
1111
 
 
1112
 
 
1113
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
959
1114
inline UnitState::UnitState ()
960
 
 {
961
 
  TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
962
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
963
 
this->__exec_old_C1();
964
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
965
 
 
 
1115
 
 
1116
#line 1117 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1117
{
 
1118
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
 
1119
    __TJP tjp;
 
1120
  tjp._that =  (__TJP::That*)this;
 
1121
    this->__exec_old_C1();
 
1122
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
1123
  
966
1124
}
967
 
inline void Puma::UnitState::__exec_old_C1(){ _modified = false; _updated = false; _lastModified = 0; }
 
1125
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
 
1126
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
1127
{ _modified = false; _updated = false; _lastModified = 0; }
968
1128
 
969
1129
inline bool UnitState::isModified () const 
970
1130
 { return _modified; }
986
1146
} // namespace Puma
987
1147
 
988
1148
#endif /* __UnitState__ */
989
 
#endif // __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
 
1149
 
 
1150
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
990
1151
namespace Puma {
991
1152
 
992
1153
 
 
1154
 
 
1155
#line 1156 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
993
1156
} // closed Puma
 
1157
class CCExprResolve;
 
1158
class CExprResolve;
994
1159
class WinIfExists;
995
1160
class WinImportHandler;
996
1161
class WinMacros;
997
 
class CMatchSyntax;
998
 
class ExtGnu;
 
1162
class WinAsm;
 
1163
class WinDeclSpecs;
 
1164
class WinMemberExplSpec;
 
1165
class WinTypeKeywords;
 
1166
class WinFriend;
999
1167
class ExtAC;
1000
1168
class ExtACBuilderCoupling;
1001
1169
class ExtACSyntaxCoupling;
1002
1170
class ExtACTree;
1003
1171
class ExtACKeywords;
1004
 
class WinAsm;
1005
 
class WinDeclSpecs;
1006
 
class WinMemberExplSpec;
1007
 
class WinTypeKeywords;
 
1172
class ExtGnu;
1008
1173
class PragmaOnceUnitState;
1009
1174
class PragmaOnce;
1010
 
class CCExprResolve;
1011
 
class CExprResolve;
 
1175
class CMatchSyntax;
1012
1176
namespace Puma {
1013
 
class Unit : public List, public Printable {  friend class ::WinIfExists;
 
1177
 
 
1178
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
 
1179
class Unit : public List, public Printable {
 
1180
#line 1181 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1181
  friend class ::CCExprResolve;
 
1182
  friend class ::CExprResolve;
 
1183
  friend class ::WinIfExists;
1014
1184
  friend class ::WinImportHandler;
1015
1185
  friend class ::WinMacros;
1016
 
  friend class ::CMatchSyntax;
1017
 
  friend class ::ExtGnu;
 
1186
  friend class ::WinAsm;
 
1187
  friend class ::WinDeclSpecs;
 
1188
  friend class ::WinMemberExplSpec;
 
1189
  friend class ::WinTypeKeywords;
 
1190
  friend class ::WinFriend;
1018
1191
  friend class ::ExtAC;
1019
1192
  friend class ::ExtACBuilderCoupling;
1020
1193
  friend class ::ExtACSyntaxCoupling;
1021
1194
  friend class ::ExtACTree;
1022
1195
  friend class ::ExtACKeywords;
1023
 
  friend class ::WinAsm;
1024
 
  friend class ::WinDeclSpecs;
1025
 
  friend class ::WinMemberExplSpec;
1026
 
  friend class ::WinTypeKeywords;
 
1196
  friend class ::ExtGnu;
1027
1197
  friend class ::PragmaOnceUnitState;
1028
1198
  friend class ::PragmaOnce;
1029
 
  friend class ::CCExprResolve;
1030
 
  friend class ::CExprResolve;
 
1199
  friend class ::CMatchSyntax;
 
1200
 
 
1201
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
1031
1202
 
1032
1203
  char *_name;
1033
1204
  UnitState _state;
1048
1219
} // namespace Puma
1049
1220
 
1050
1221
#endif /* __unit_h__ */
 
1222
 
 
1223
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
1051
1224
// This file is part of PUMA.
1052
1225
// Copyright (C) 1999-2003  The PUMA developer team.
1053
1226
//                                                                
1069
1242
#ifndef __Unit_Token_Src__
1070
1243
#define __Unit_Token_Src__
1071
1244
 
 
1245
 
 
1246
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenSource.h"
1072
1247
// This file is part of PUMA.
1073
1248
// Copyright (C) 1999-2003  The PUMA developer team.
1074
1249
//                                                                
1095
1270
 
1096
1271
class Token;
1097
1272
 
 
1273
 
 
1274
#line 1275 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1098
1275
} // closed Puma
 
1276
class CCExprResolve;
 
1277
class CExprResolve;
1099
1278
class WinIfExists;
1100
1279
class WinImportHandler;
1101
1280
class WinMacros;
1102
 
class CMatchSyntax;
1103
 
class ExtGnu;
 
1281
class WinAsm;
 
1282
class WinDeclSpecs;
 
1283
class WinMemberExplSpec;
 
1284
class WinTypeKeywords;
 
1285
class WinFriend;
1104
1286
class ExtAC;
1105
1287
class ExtACBuilderCoupling;
1106
1288
class ExtACSyntaxCoupling;
1107
1289
class ExtACTree;
1108
1290
class ExtACKeywords;
1109
 
class WinAsm;
1110
 
class WinDeclSpecs;
1111
 
class WinMemberExplSpec;
1112
 
class WinTypeKeywords;
 
1291
class ExtGnu;
1113
1292
class PragmaOnceUnitState;
1114
1293
class PragmaOnce;
1115
 
class CCExprResolve;
1116
 
class CExprResolve;
 
1294
class CMatchSyntax;
1117
1295
namespace Puma {
1118
 
class PumaTokenSource {  friend class ::WinIfExists;
 
1296
 
 
1297
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
1298
class PumaTokenSource {
 
1299
#line 1300 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1300
  friend class ::CCExprResolve;
 
1301
  friend class ::CExprResolve;
 
1302
  friend class ::WinIfExists;
1119
1303
  friend class ::WinImportHandler;
1120
1304
  friend class ::WinMacros;
1121
 
  friend class ::CMatchSyntax;
1122
 
  friend class ::ExtGnu;
 
1305
  friend class ::WinAsm;
 
1306
  friend class ::WinDeclSpecs;
 
1307
  friend class ::WinMemberExplSpec;
 
1308
  friend class ::WinTypeKeywords;
 
1309
  friend class ::WinFriend;
1123
1310
  friend class ::ExtAC;
1124
1311
  friend class ::ExtACBuilderCoupling;
1125
1312
  friend class ::ExtACSyntaxCoupling;
1126
1313
  friend class ::ExtACTree;
1127
1314
  friend class ::ExtACKeywords;
1128
 
  friend class ::WinAsm;
1129
 
  friend class ::WinDeclSpecs;
1130
 
  friend class ::WinMemberExplSpec;
1131
 
  friend class ::WinTypeKeywords;
 
1315
  friend class ::ExtGnu;
1132
1316
  friend class ::PragmaOnceUnitState;
1133
1317
  friend class ::PragmaOnce;
1134
 
  friend class ::CCExprResolve;
1135
 
  friend class ::CExprResolve;
 
1318
  friend class ::CMatchSyntax;
 
1319
 
 
1320
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenSource.h"
1136
1321
 
1137
1322
protected:
1138
1323
  PumaTokenSource () {}
1146
1331
} // namespace Puma
1147
1332
 
1148
1333
#endif /* __Token_Source__ */
 
1334
 
 
1335
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
1149
1336
// This file is part of PUMA.
1150
1337
// Copyright (C) 1999-2003  The PUMA developer team.
1151
1338
//                                                                
1172
1359
// lexical unit of the scanned text.
1173
1360
 
1174
1361
#include <stdlib.h>
 
1362
 
 
1363
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1175
1364
// This file is part of PUMA.
1176
1365
// Copyright (C) 1999-2003  The PUMA developer team.
1177
1366
//                                                                
1198
1387
namespace Puma {
1199
1388
 
1200
1389
 
 
1390
 
 
1391
#line 1392 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1201
1392
} // closed Puma
 
1393
class CCExprResolve;
 
1394
class CExprResolve;
1202
1395
class WinIfExists;
1203
1396
class WinImportHandler;
1204
1397
class WinMacros;
1205
 
class CMatchSyntax;
1206
 
class ExtGnu;
 
1398
class WinAsm;
 
1399
class WinDeclSpecs;
 
1400
class WinMemberExplSpec;
 
1401
class WinTypeKeywords;
 
1402
class WinFriend;
1207
1403
class ExtAC;
1208
1404
class ExtACBuilderCoupling;
1209
1405
class ExtACSyntaxCoupling;
1210
1406
class ExtACTree;
1211
1407
class ExtACKeywords;
1212
 
class WinAsm;
1213
 
class WinDeclSpecs;
1214
 
class WinMemberExplSpec;
1215
 
class WinTypeKeywords;
 
1408
class ExtGnu;
1216
1409
class PragmaOnceUnitState;
1217
1410
class PragmaOnce;
1218
 
class CCExprResolve;
1219
 
class CExprResolve;
 
1411
class CMatchSyntax;
1220
1412
namespace Puma {
1221
 
class LanguageID {  friend class ::WinIfExists;
 
1413
 
 
1414
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1415
class LanguageID {
 
1416
#line 1417 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1417
  friend class ::CCExprResolve;
 
1418
  friend class ::CExprResolve;
 
1419
  friend class ::WinIfExists;
1222
1420
  friend class ::WinImportHandler;
1223
1421
  friend class ::WinMacros;
1224
 
  friend class ::CMatchSyntax;
1225
 
  friend class ::ExtGnu;
 
1422
  friend class ::WinAsm;
 
1423
  friend class ::WinDeclSpecs;
 
1424
  friend class ::WinMemberExplSpec;
 
1425
  friend class ::WinTypeKeywords;
 
1426
  friend class ::WinFriend;
1226
1427
  friend class ::ExtAC;
1227
1428
  friend class ::ExtACBuilderCoupling;
1228
1429
  friend class ::ExtACSyntaxCoupling;
1229
1430
  friend class ::ExtACTree;
1230
1431
  friend class ::ExtACKeywords;
1231
 
  friend class ::WinAsm;
1232
 
  friend class ::WinDeclSpecs;
1233
 
  friend class ::WinMemberExplSpec;
1234
 
  friend class ::WinTypeKeywords;
 
1432
  friend class ::ExtGnu;
1235
1433
  friend class ::PragmaOnceUnitState;
1236
1434
  friend class ::PragmaOnce;
1237
 
  friend class ::CCExprResolve;
1238
 
  friend class ::CExprResolve;
 
1435
  friend class ::CMatchSyntax;
 
1436
 
 
1437
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1239
1438
 
1240
1439
  const char *_id;
1241
1440
 
1251
1450
} // namespace Puma
1252
1451
 
1253
1452
#endif /* __language_id_h__ */
 
1453
 
 
1454
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
1254
1455
// This file is part of PUMA.
1255
1456
// Copyright (C) 1999-2003  The PUMA developer team.
1256
1457
//                                                                
1272
1473
#ifndef __location_h__
1273
1474
#define __location_h__
1274
1475
 
 
1476
 
 
1477
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1478
// This file is part of PUMA.
 
1479
// Copyright (C) 1999-2003  The PUMA developer team.
 
1480
//                                                                
 
1481
// This program is free software;  you can redistribute it and/or 
 
1482
// modify it under the terms of the GNU General Public License as 
 
1483
// published by the Free Software Foundation; either version 2 of 
 
1484
// the License, or (at your option) any later version.            
 
1485
//                                                                
 
1486
// This program is distributed in the hope that it will be useful,
 
1487
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1488
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1489
// GNU General Public License for more details.                   
 
1490
//                                                                
 
1491
// You should have received a copy of the GNU General Public      
 
1492
// License along with this program; if not, write to the Free     
 
1493
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1494
// MA  02111-1307  USA                                            
 
1495
 
 
1496
#ifndef __filename_h__
 
1497
#define __filename_h__
 
1498
 
 
1499
 
 
1500
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1275
1501
// This file is part of PUMA.
1276
1502
// Copyright (C) 1999-2003  The PUMA developer team.
1277
1503
//                                                                
1293
1519
#ifndef __smart_ptr_h__
1294
1520
#define __smart_ptr_h__
1295
1521
 
 
1522
 
 
1523
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1296
1524
// This file is part of PUMA.
1297
1525
// Copyright (C) 1999-2003  The PUMA developer team.
1298
1526
//                                                                
1317
1545
namespace Puma {
1318
1546
 
1319
1547
 
 
1548
 
 
1549
#line 1550 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1320
1550
} // closed Puma
 
1551
class CCExprResolve;
 
1552
class CExprResolve;
1321
1553
class WinIfExists;
1322
1554
class WinImportHandler;
1323
1555
class WinMacros;
1324
 
class CMatchSyntax;
1325
 
class ExtGnu;
 
1556
class WinAsm;
 
1557
class WinDeclSpecs;
 
1558
class WinMemberExplSpec;
 
1559
class WinTypeKeywords;
 
1560
class WinFriend;
1326
1561
class ExtAC;
1327
1562
class ExtACBuilderCoupling;
1328
1563
class ExtACSyntaxCoupling;
1329
1564
class ExtACTree;
1330
1565
class ExtACKeywords;
1331
 
class WinAsm;
1332
 
class WinDeclSpecs;
1333
 
class WinMemberExplSpec;
1334
 
class WinTypeKeywords;
 
1566
class ExtGnu;
1335
1567
class PragmaOnceUnitState;
1336
1568
class PragmaOnce;
1337
 
class CCExprResolve;
1338
 
class CExprResolve;
 
1569
class CMatchSyntax;
1339
1570
namespace Puma {
1340
 
class RefCnt {  friend class ::WinIfExists;
 
1571
 
 
1572
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1573
class RefCnt {
 
1574
#line 1575 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1575
  friend class ::CCExprResolve;
 
1576
  friend class ::CExprResolve;
 
1577
  friend class ::WinIfExists;
1341
1578
  friend class ::WinImportHandler;
1342
1579
  friend class ::WinMacros;
1343
 
  friend class ::CMatchSyntax;
1344
 
  friend class ::ExtGnu;
 
1580
  friend class ::WinAsm;
 
1581
  friend class ::WinDeclSpecs;
 
1582
  friend class ::WinMemberExplSpec;
 
1583
  friend class ::WinTypeKeywords;
 
1584
  friend class ::WinFriend;
1345
1585
  friend class ::ExtAC;
1346
1586
  friend class ::ExtACBuilderCoupling;
1347
1587
  friend class ::ExtACSyntaxCoupling;
1348
1588
  friend class ::ExtACTree;
1349
1589
  friend class ::ExtACKeywords;
1350
 
  friend class ::WinAsm;
1351
 
  friend class ::WinDeclSpecs;
1352
 
  friend class ::WinMemberExplSpec;
1353
 
  friend class ::WinTypeKeywords;
 
1590
  friend class ::ExtGnu;
1354
1591
  friend class ::PragmaOnceUnitState;
1355
1592
  friend class ::PragmaOnce;
1356
 
  friend class ::CCExprResolve;
1357
 
  friend class ::CExprResolve;
 
1593
  friend class ::CMatchSyntax;
 
1594
 
 
1595
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1358
1596
 
1359
1597
  int _counter;
1360
1598
 
1371
1609
} // namespace Puma
1372
1610
 
1373
1611
#endif /* __ref_cnt_h__ */
 
1612
 
 
1613
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1374
1614
namespace Puma {
1375
1615
 
1376
1616
 
 
1617
 
 
1618
#line 1619 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1377
1619
} // closed Puma
 
1620
class CCExprResolve;
 
1621
class CExprResolve;
1378
1622
class WinIfExists;
1379
1623
class WinImportHandler;
1380
1624
class WinMacros;
1381
 
class CMatchSyntax;
1382
 
class ExtGnu;
 
1625
class WinAsm;
 
1626
class WinDeclSpecs;
 
1627
class WinMemberExplSpec;
 
1628
class WinTypeKeywords;
 
1629
class WinFriend;
1383
1630
class ExtAC;
1384
1631
class ExtACBuilderCoupling;
1385
1632
class ExtACSyntaxCoupling;
1386
1633
class ExtACTree;
1387
1634
class ExtACKeywords;
1388
 
class WinAsm;
1389
 
class WinDeclSpecs;
1390
 
class WinMemberExplSpec;
1391
 
class WinTypeKeywords;
 
1635
class ExtGnu;
1392
1636
class PragmaOnceUnitState;
1393
1637
class PragmaOnce;
1394
 
class CCExprResolve;
1395
 
class CExprResolve;
 
1638
class CMatchSyntax;
1396
1639
namespace Puma {
1397
 
class SmartPtr {  friend class ::WinIfExists;
 
1640
 
 
1641
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1642
class SmartPtr {
 
1643
#line 1644 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1644
  friend class ::CCExprResolve;
 
1645
  friend class ::CExprResolve;
 
1646
  friend class ::WinIfExists;
1398
1647
  friend class ::WinImportHandler;
1399
1648
  friend class ::WinMacros;
1400
 
  friend class ::CMatchSyntax;
1401
 
  friend class ::ExtGnu;
 
1649
  friend class ::WinAsm;
 
1650
  friend class ::WinDeclSpecs;
 
1651
  friend class ::WinMemberExplSpec;
 
1652
  friend class ::WinTypeKeywords;
 
1653
  friend class ::WinFriend;
1402
1654
  friend class ::ExtAC;
1403
1655
  friend class ::ExtACBuilderCoupling;
1404
1656
  friend class ::ExtACSyntaxCoupling;
1405
1657
  friend class ::ExtACTree;
1406
1658
  friend class ::ExtACKeywords;
1407
 
  friend class ::WinAsm;
1408
 
  friend class ::WinDeclSpecs;
1409
 
  friend class ::WinMemberExplSpec;
1410
 
  friend class ::WinTypeKeywords;
 
1659
  friend class ::ExtGnu;
1411
1660
  friend class ::PragmaOnceUnitState;
1412
1661
  friend class ::PragmaOnce;
1413
 
  friend class ::CCExprResolve;
1414
 
  friend class ::CExprResolve;
 
1662
  friend class ::CMatchSyntax;
 
1663
 
 
1664
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1415
1665
 
1416
1666
  RefCnt *_data;
1417
1667
 
1432
1682
} // namespace Puma
1433
1683
 
1434
1684
#endif /* __smart_ptr_h__ */
1435
 
// This file is part of PUMA.
1436
 
// Copyright (C) 1999-2003  The PUMA developer team.
1437
 
//                                                                
1438
 
// This program is free software;  you can redistribute it and/or 
1439
 
// modify it under the terms of the GNU General Public License as 
1440
 
// published by the Free Software Foundation; either version 2 of 
1441
 
// the License, or (at your option) any later version.            
1442
 
//                                                                
1443
 
// This program is distributed in the hope that it will be useful,
1444
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1445
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1446
 
// GNU General Public License for more details.                   
1447
 
//                                                                
1448
 
// You should have received a copy of the GNU General Public      
1449
 
// License along with this program; if not, write to the Free     
1450
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1451
 
// MA  02111-1307  USA                                            
1452
 
 
1453
 
#ifndef __location_info_h__
1454
 
#define __location_info_h__
1455
 
 
1456
 
// This file is part of PUMA.
1457
 
// Copyright (C) 1999-2003  The PUMA developer team.
1458
 
//                                                                
1459
 
// This program is free software;  you can redistribute it and/or 
1460
 
// modify it under the terms of the GNU General Public License as 
1461
 
// published by the Free Software Foundation; either version 2 of 
1462
 
// the License, or (at your option) any later version.            
1463
 
//                                                                
1464
 
// This program is distributed in the hope that it will be useful,
1465
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1466
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1467
 
// GNU General Public License for more details.                   
1468
 
//                                                                
1469
 
// You should have received a copy of the GNU General Public      
1470
 
// License along with this program; if not, write to the Free     
1471
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1472
 
// MA  02111-1307  USA                                            
1473
 
 
1474
 
#ifndef __filename_h__
1475
 
#define __filename_h__
1476
 
 
 
1685
 
 
1686
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1477
1687
// This file is part of PUMA.
1478
1688
// Copyright (C) 1999-2003  The PUMA developer team.
1479
1689
//                                                                
1495
1705
#ifndef __filename_info_h__
1496
1706
#define __filename_info_h__
1497
1707
 
 
1708
 
 
1709
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
1498
1710
// This file is part of PUMA.
1499
1711
// Copyright (C) 1999-2003  The PUMA developer team.
1500
1712
//                                                                
1516
1728
#ifndef __DString_h__
1517
1729
#define __DString_h__
1518
1730
 
 
1731
 
 
1732
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1519
1733
// This file is part of PUMA.
1520
1734
// Copyright (C) 1999-2003  The PUMA developer team.
1521
1735
//                                                                
1537
1751
#ifndef __StrHashTable_h__
1538
1752
#define __StrHashTable_h__
1539
1753
 
 
1754
 
 
1755
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1540
1756
// This file is part of PUMA.
1541
1757
// Copyright (C) 1999-2003  The PUMA developer team.
1542
1758
//                                                                
1558
1774
#ifndef __StrHashKey_h__
1559
1775
#define __StrHashKey_h__
1560
1776
 
 
1777
 
 
1778
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrCol.h"
1561
1779
// This file is part of PUMA.
1562
1780
// Copyright (C) 1999-2003  The PUMA developer team.
1563
1781
//                                                                
1586
1804
 
1587
1805
class Unit;
1588
1806
 
 
1807
 
 
1808
#line 1809 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1589
1809
} // closed Puma
 
1810
class CCExprResolve;
 
1811
class CExprResolve;
1590
1812
class WinIfExists;
1591
1813
class WinImportHandler;
1592
1814
class WinMacros;
1593
 
class CMatchSyntax;
1594
 
class ExtGnu;
 
1815
class WinAsm;
 
1816
class WinDeclSpecs;
 
1817
class WinMemberExplSpec;
 
1818
class WinTypeKeywords;
 
1819
class WinFriend;
1595
1820
class ExtAC;
1596
1821
class ExtACBuilderCoupling;
1597
1822
class ExtACSyntaxCoupling;
1598
1823
class ExtACTree;
1599
1824
class ExtACKeywords;
1600
 
class WinAsm;
1601
 
class WinDeclSpecs;
1602
 
class WinMemberExplSpec;
1603
 
class WinTypeKeywords;
 
1825
class ExtGnu;
1604
1826
class PragmaOnceUnitState;
1605
1827
class PragmaOnce;
1606
 
class CCExprResolve;
1607
 
class CExprResolve;
 
1828
class CMatchSyntax;
1608
1829
namespace Puma {
1609
 
class StrCol {  friend class ::WinIfExists;
 
1830
 
 
1831
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1832
class StrCol {
 
1833
#line 1834 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1834
  friend class ::CCExprResolve;
 
1835
  friend class ::CExprResolve;
 
1836
  friend class ::WinIfExists;
1610
1837
  friend class ::WinImportHandler;
1611
1838
  friend class ::WinMacros;
1612
 
  friend class ::CMatchSyntax;
1613
 
  friend class ::ExtGnu;
 
1839
  friend class ::WinAsm;
 
1840
  friend class ::WinDeclSpecs;
 
1841
  friend class ::WinMemberExplSpec;
 
1842
  friend class ::WinTypeKeywords;
 
1843
  friend class ::WinFriend;
1614
1844
  friend class ::ExtAC;
1615
1845
  friend class ::ExtACBuilderCoupling;
1616
1846
  friend class ::ExtACSyntaxCoupling;
1617
1847
  friend class ::ExtACTree;
1618
1848
  friend class ::ExtACKeywords;
1619
 
  friend class ::WinAsm;
1620
 
  friend class ::WinDeclSpecs;
1621
 
  friend class ::WinMemberExplSpec;
1622
 
  friend class ::WinTypeKeywords;
 
1849
  friend class ::ExtGnu;
1623
1850
  friend class ::PragmaOnceUnitState;
1624
1851
  friend class ::PragmaOnce;
1625
 
  friend class ::CCExprResolve;
1626
 
  friend class ::CExprResolve;
 
1852
  friend class ::CMatchSyntax;
 
1853
 
 
1854
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrCol.h"
1627
1855
 
1628
1856
protected:
1629
1857
  StrCol () {}
1650
1878
} // namespace Puma
1651
1879
 
1652
1880
#endif /* __str_col__ */
 
1881
 
 
1882
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Chain.h"
1653
1883
// This file is part of PUMA.
1654
1884
// Copyright (C) 1999-2003  The PUMA developer team.
1655
1885
//                                                                
1683
1913
namespace Puma {
1684
1914
 
1685
1915
 
 
1916
 
 
1917
#line 1918 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1686
1918
} // closed Puma
 
1919
class CCExprResolve;
 
1920
class CExprResolve;
1687
1921
class WinIfExists;
1688
1922
class WinImportHandler;
1689
1923
class WinMacros;
1690
 
class CMatchSyntax;
1691
 
class ExtGnu;
 
1924
class WinAsm;
 
1925
class WinDeclSpecs;
 
1926
class WinMemberExplSpec;
 
1927
class WinTypeKeywords;
 
1928
class WinFriend;
1692
1929
class ExtAC;
1693
1930
class ExtACBuilderCoupling;
1694
1931
class ExtACSyntaxCoupling;
1695
1932
class ExtACTree;
1696
1933
class ExtACKeywords;
1697
 
class WinAsm;
1698
 
class WinDeclSpecs;
1699
 
class WinMemberExplSpec;
1700
 
class WinTypeKeywords;
 
1934
class ExtGnu;
1701
1935
class PragmaOnceUnitState;
1702
1936
class PragmaOnce;
1703
 
class CCExprResolve;
1704
 
class CExprResolve;
 
1937
class CMatchSyntax;
1705
1938
namespace Puma {
1706
 
class Chain {  friend class ::WinIfExists;
 
1939
 
 
1940
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1941
class Chain {
 
1942
#line 1943 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
1943
  friend class ::CCExprResolve;
 
1944
  friend class ::CExprResolve;
 
1945
  friend class ::WinIfExists;
1707
1946
  friend class ::WinImportHandler;
1708
1947
  friend class ::WinMacros;
1709
 
  friend class ::CMatchSyntax;
1710
 
  friend class ::ExtGnu;
 
1948
  friend class ::WinAsm;
 
1949
  friend class ::WinDeclSpecs;
 
1950
  friend class ::WinMemberExplSpec;
 
1951
  friend class ::WinTypeKeywords;
 
1952
  friend class ::WinFriend;
1711
1953
  friend class ::ExtAC;
1712
1954
  friend class ::ExtACBuilderCoupling;
1713
1955
  friend class ::ExtACSyntaxCoupling;
1714
1956
  friend class ::ExtACTree;
1715
1957
  friend class ::ExtACKeywords;
1716
 
  friend class ::WinAsm;
1717
 
  friend class ::WinDeclSpecs;
1718
 
  friend class ::WinMemberExplSpec;
1719
 
  friend class ::WinTypeKeywords;
 
1958
  friend class ::ExtGnu;
1720
1959
  friend class ::PragmaOnceUnitState;
1721
1960
  friend class ::PragmaOnce;
1722
 
  friend class ::CCExprResolve;
1723
 
  friend class ::CExprResolve;
 
1961
  friend class ::CMatchSyntax;
 
1962
 
 
1963
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Chain.h"
1724
1964
 
1725
1965
  Chain *next;
1726
1966
 
1783
2023
} // namespace Puma
1784
2024
 
1785
2025
#endif /* __Chain_h__ */
 
2026
 
 
2027
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1786
2028
namespace Puma {
1787
2029
 
1788
2030
 
 
2031
 
 
2032
#line 2033 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1789
2033
} // closed Puma
 
2034
class CCExprResolve;
 
2035
class CExprResolve;
1790
2036
class WinIfExists;
1791
2037
class WinImportHandler;
1792
2038
class WinMacros;
1793
 
class CMatchSyntax;
1794
 
class ExtGnu;
 
2039
class WinAsm;
 
2040
class WinDeclSpecs;
 
2041
class WinMemberExplSpec;
 
2042
class WinTypeKeywords;
 
2043
class WinFriend;
1795
2044
class ExtAC;
1796
2045
class ExtACBuilderCoupling;
1797
2046
class ExtACSyntaxCoupling;
1798
2047
class ExtACTree;
1799
2048
class ExtACKeywords;
1800
 
class WinAsm;
1801
 
class WinDeclSpecs;
1802
 
class WinMemberExplSpec;
1803
 
class WinTypeKeywords;
 
2049
class ExtGnu;
1804
2050
class PragmaOnceUnitState;
1805
2051
class PragmaOnce;
1806
 
class CCExprResolve;
1807
 
class CExprResolve;
 
2052
class CMatchSyntax;
1808
2053
namespace Puma {
1809
 
class StrHashKey : public Chain {  friend class ::WinIfExists;
 
2054
 
 
2055
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
2056
class StrHashKey : public Chain {
 
2057
#line 2058 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2058
  friend class ::CCExprResolve;
 
2059
  friend class ::CExprResolve;
 
2060
  friend class ::WinIfExists;
1810
2061
  friend class ::WinImportHandler;
1811
2062
  friend class ::WinMacros;
1812
 
  friend class ::CMatchSyntax;
1813
 
  friend class ::ExtGnu;
 
2063
  friend class ::WinAsm;
 
2064
  friend class ::WinDeclSpecs;
 
2065
  friend class ::WinMemberExplSpec;
 
2066
  friend class ::WinTypeKeywords;
 
2067
  friend class ::WinFriend;
1814
2068
  friend class ::ExtAC;
1815
2069
  friend class ::ExtACBuilderCoupling;
1816
2070
  friend class ::ExtACSyntaxCoupling;
1817
2071
  friend class ::ExtACTree;
1818
2072
  friend class ::ExtACKeywords;
1819
 
  friend class ::WinAsm;
1820
 
  friend class ::WinDeclSpecs;
1821
 
  friend class ::WinMemberExplSpec;
1822
 
  friend class ::WinTypeKeywords;
 
2073
  friend class ::ExtGnu;
1823
2074
  friend class ::PragmaOnceUnitState;
1824
2075
  friend class ::PragmaOnce;
1825
 
  friend class ::CCExprResolve;
1826
 
  friend class ::CExprResolve;
 
2076
  friend class ::CMatchSyntax;
 
2077
 
 
2078
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1827
2079
 
1828
2080
  unsigned int m_Magic;
1829
2081
  unsigned int m_Len;
1834
2086
public:
1835
2087
  StrHashKey (int m, const char *s, int l) : 
1836
2088
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
2089
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
1837
2090
 
1838
2091
  unsigned int getMagic () const { return m_Magic; }
1839
2092
  unsigned int length () const { return m_Len; }
1844
2097
} // namespace Puma
1845
2098
 
1846
2099
#endif /* __StrHashKey_h__ */
 
2100
 
 
2101
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1847
2102
#include <assert.h>
1848
2103
 
1849
2104
namespace Puma {
1850
2105
 
1851
2106
 
 
2107
 
 
2108
#line 2109 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1852
2109
} // closed Puma
 
2110
class CCExprResolve;
 
2111
class CExprResolve;
1853
2112
class WinIfExists;
1854
2113
class WinImportHandler;
1855
2114
class WinMacros;
1856
 
class CMatchSyntax;
1857
 
class ExtGnu;
 
2115
class WinAsm;
 
2116
class WinDeclSpecs;
 
2117
class WinMemberExplSpec;
 
2118
class WinTypeKeywords;
 
2119
class WinFriend;
1858
2120
class ExtAC;
1859
2121
class ExtACBuilderCoupling;
1860
2122
class ExtACSyntaxCoupling;
1861
2123
class ExtACTree;
1862
2124
class ExtACKeywords;
1863
 
class WinAsm;
1864
 
class WinDeclSpecs;
1865
 
class WinMemberExplSpec;
1866
 
class WinTypeKeywords;
 
2125
class ExtGnu;
1867
2126
class PragmaOnceUnitState;
1868
2127
class PragmaOnce;
1869
 
class CCExprResolve;
1870
 
class CExprResolve;
 
2128
class CMatchSyntax;
1871
2129
namespace Puma {
1872
 
class StrHashTable {  friend class ::WinIfExists;
 
2130
 
 
2131
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
2132
class StrHashTable {
 
2133
#line 2134 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2134
  friend class ::CCExprResolve;
 
2135
  friend class ::CExprResolve;
 
2136
  friend class ::WinIfExists;
1873
2137
  friend class ::WinImportHandler;
1874
2138
  friend class ::WinMacros;
1875
 
  friend class ::CMatchSyntax;
1876
 
  friend class ::ExtGnu;
 
2139
  friend class ::WinAsm;
 
2140
  friend class ::WinDeclSpecs;
 
2141
  friend class ::WinMemberExplSpec;
 
2142
  friend class ::WinTypeKeywords;
 
2143
  friend class ::WinFriend;
1877
2144
  friend class ::ExtAC;
1878
2145
  friend class ::ExtACBuilderCoupling;
1879
2146
  friend class ::ExtACSyntaxCoupling;
1880
2147
  friend class ::ExtACTree;
1881
2148
  friend class ::ExtACKeywords;
1882
 
  friend class ::WinAsm;
1883
 
  friend class ::WinDeclSpecs;
1884
 
  friend class ::WinMemberExplSpec;
1885
 
  friend class ::WinTypeKeywords;
 
2149
  friend class ::ExtGnu;
1886
2150
  friend class ::PragmaOnceUnitState;
1887
2151
  friend class ::PragmaOnce;
1888
 
  friend class ::CCExprResolve;
1889
 
  friend class ::CExprResolve;
 
2152
  friend class ::CMatchSyntax;
 
2153
 
 
2154
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1890
2155
 
1891
2156
  StrHashKey *_emptyKey;
1892
2157
 
1899
2164
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
1900
2165
  StrHashKey *insert (const char *);
1901
2166
  void remove (StrHashKey *);
 
2167
  void clear ();
1902
2168
 
1903
2169
  enum { STRHASHTABLE_SIZE=0xffff };
1904
2170
  
1906
2172
  Chain m_Table[STRHASHTABLE_SIZE];
1907
2173
 
1908
2174
  StrHashKey *find (unsigned int, const char *, unsigned int);
1909
 
  unsigned int hash (const char *, unsigned int);
 
2175
  unsigned int hash (const char *, unsigned int &);
1910
2176
};
1911
2177
 
1912
2178
 
1913
2179
} // namespace Puma
1914
2180
 
1915
2181
#endif /* __StrHashTable_h__ */
 
2182
 
 
2183
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
1916
2184
#include <assert.h>
1917
2185
 
1918
2186
namespace Puma {
1920
2188
 
1921
2189
extern StrHashTable ___str_dict;
1922
2190
 
 
2191
 
 
2192
#line 2193 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1923
2193
} // closed Puma
 
2194
class CCExprResolve;
 
2195
class CExprResolve;
1924
2196
class WinIfExists;
1925
2197
class WinImportHandler;
1926
2198
class WinMacros;
1927
 
class CMatchSyntax;
1928
 
class ExtGnu;
 
2199
class WinAsm;
 
2200
class WinDeclSpecs;
 
2201
class WinMemberExplSpec;
 
2202
class WinTypeKeywords;
 
2203
class WinFriend;
1929
2204
class ExtAC;
1930
2205
class ExtACBuilderCoupling;
1931
2206
class ExtACSyntaxCoupling;
1932
2207
class ExtACTree;
1933
2208
class ExtACKeywords;
1934
 
class WinAsm;
1935
 
class WinDeclSpecs;
1936
 
class WinMemberExplSpec;
1937
 
class WinTypeKeywords;
 
2209
class ExtGnu;
1938
2210
class PragmaOnceUnitState;
1939
2211
class PragmaOnce;
1940
 
class CCExprResolve;
1941
 
class CExprResolve;
 
2212
class CMatchSyntax;
1942
2213
namespace Puma {
1943
 
class DString {  friend class ::WinIfExists;
 
2214
 
 
2215
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
 
2216
class DString {
 
2217
#line 2218 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2218
  friend class ::CCExprResolve;
 
2219
  friend class ::CExprResolve;
 
2220
  friend class ::WinIfExists;
1944
2221
  friend class ::WinImportHandler;
1945
2222
  friend class ::WinMacros;
1946
 
  friend class ::CMatchSyntax;
1947
 
  friend class ::ExtGnu;
 
2223
  friend class ::WinAsm;
 
2224
  friend class ::WinDeclSpecs;
 
2225
  friend class ::WinMemberExplSpec;
 
2226
  friend class ::WinTypeKeywords;
 
2227
  friend class ::WinFriend;
1948
2228
  friend class ::ExtAC;
1949
2229
  friend class ::ExtACBuilderCoupling;
1950
2230
  friend class ::ExtACSyntaxCoupling;
1951
2231
  friend class ::ExtACTree;
1952
2232
  friend class ::ExtACKeywords;
1953
 
  friend class ::WinAsm;
1954
 
  friend class ::WinDeclSpecs;
1955
 
  friend class ::WinMemberExplSpec;
1956
 
  friend class ::WinTypeKeywords;
 
2233
  friend class ::ExtGnu;
1957
2234
  friend class ::PragmaOnceUnitState;
1958
2235
  friend class ::PragmaOnce;
1959
 
  friend class ::CCExprResolve;
1960
 
  friend class ::CExprResolve;
 
2236
  friend class ::CMatchSyntax;
 
2237
 
 
2238
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
1961
2239
 
1962
2240
  StrHashKey *m_Key;
1963
2241
 
2024
2302
    assert (m_Key);
2025
2303
    return c_str ();
2026
2304
  }
 
2305
  
 
2306
  static void clearDict() {
 
2307
    ___str_dict.clear ();
 
2308
  }
2027
2309
};
2028
2310
 
2029
2311
 
2030
2312
} // namespace Puma
2031
2313
 
2032
2314
#endif /* __DString_h__ */
 
2315
 
 
2316
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
2033
2317
namespace Puma {
2034
2318
 
2035
2319
 
 
2320
 
 
2321
#line 2322 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2036
2322
} // closed Puma
 
2323
class CCExprResolve;
 
2324
class CExprResolve;
2037
2325
class WinIfExists;
2038
2326
class WinImportHandler;
2039
2327
class WinMacros;
2040
 
class CMatchSyntax;
2041
 
class ExtGnu;
 
2328
class WinAsm;
 
2329
class WinDeclSpecs;
 
2330
class WinMemberExplSpec;
 
2331
class WinTypeKeywords;
 
2332
class WinFriend;
2042
2333
class ExtAC;
2043
2334
class ExtACBuilderCoupling;
2044
2335
class ExtACSyntaxCoupling;
2045
2336
class ExtACTree;
2046
2337
class ExtACKeywords;
2047
 
class WinAsm;
2048
 
class WinDeclSpecs;
2049
 
class WinMemberExplSpec;
2050
 
class WinTypeKeywords;
 
2338
class ExtGnu;
2051
2339
class PragmaOnceUnitState;
2052
2340
class PragmaOnce;
2053
 
class CCExprResolve;
2054
 
class CExprResolve;
 
2341
class CMatchSyntax;
2055
2342
namespace Puma {
2056
 
class FilenameInfo : public RefCnt {  friend class ::WinIfExists;
 
2343
 
 
2344
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2345
class FilenameInfo : public RefCnt {
 
2346
#line 2347 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2347
  friend class ::CCExprResolve;
 
2348
  friend class ::CExprResolve;
 
2349
  friend class ::WinIfExists;
2057
2350
  friend class ::WinImportHandler;
2058
2351
  friend class ::WinMacros;
2059
 
  friend class ::CMatchSyntax;
2060
 
  friend class ::ExtGnu;
 
2352
  friend class ::WinAsm;
 
2353
  friend class ::WinDeclSpecs;
 
2354
  friend class ::WinMemberExplSpec;
 
2355
  friend class ::WinTypeKeywords;
 
2356
  friend class ::WinFriend;
2061
2357
  friend class ::ExtAC;
2062
2358
  friend class ::ExtACBuilderCoupling;
2063
2359
  friend class ::ExtACSyntaxCoupling;
2064
2360
  friend class ::ExtACTree;
2065
2361
  friend class ::ExtACKeywords;
2066
 
  friend class ::WinAsm;
2067
 
  friend class ::WinDeclSpecs;
2068
 
  friend class ::WinMemberExplSpec;
2069
 
  friend class ::WinTypeKeywords;
 
2362
  friend class ::ExtGnu;
2070
2363
  friend class ::PragmaOnceUnitState;
2071
2364
  friend class ::PragmaOnce;
2072
 
  friend class ::CCExprResolve;
2073
 
  friend class ::CExprResolve;
 
2365
  friend class ::CMatchSyntax;
 
2366
 
 
2367
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
2074
2368
 
2075
2369
  DString _name;
2076
2370
  const char *_path;
2080
2374
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
2081
2375
  ~FilenameInfo ();
2082
2376
  void name (const char *n);
2083
 
  void name (const DString &dsn) { _name = dsn; }
 
2377
//  void name (const DString &dsn) { _name = dsn; }
2084
2378
  const char *name () const { return _name.c_str (); }
2085
2379
  const char *path ();
2086
2380
  const char *root ();
2094
2388
} // namespace Puma
2095
2389
 
2096
2390
#endif /* __filename_info_h__ */
 
2391
 
 
2392
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
2097
2393
namespace Puma {
2098
2394
 
2099
2395
 
 
2396
 
 
2397
#line 2398 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2100
2398
} // closed Puma
 
2399
class CCExprResolve;
 
2400
class CExprResolve;
2101
2401
class WinIfExists;
2102
2402
class WinImportHandler;
2103
2403
class WinMacros;
2104
 
class CMatchSyntax;
2105
 
class ExtGnu;
 
2404
class WinAsm;
 
2405
class WinDeclSpecs;
 
2406
class WinMemberExplSpec;
 
2407
class WinTypeKeywords;
 
2408
class WinFriend;
2106
2409
class ExtAC;
2107
2410
class ExtACBuilderCoupling;
2108
2411
class ExtACSyntaxCoupling;
2109
2412
class ExtACTree;
2110
2413
class ExtACKeywords;
2111
 
class WinAsm;
2112
 
class WinDeclSpecs;
2113
 
class WinMemberExplSpec;
2114
 
class WinTypeKeywords;
 
2414
class ExtGnu;
2115
2415
class PragmaOnceUnitState;
2116
2416
class PragmaOnce;
2117
 
class CCExprResolve;
2118
 
class CExprResolve;
 
2417
class CMatchSyntax;
2119
2418
namespace Puma {
2120
 
class Filename : public SmartPtr, public Printable {  friend class ::WinIfExists;
 
2419
 
 
2420
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2421
class Filename : public SmartPtr, public Printable {
 
2422
#line 2423 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2423
  friend class ::CCExprResolve;
 
2424
  friend class ::CExprResolve;
 
2425
  friend class ::WinIfExists;
2121
2426
  friend class ::WinImportHandler;
2122
2427
  friend class ::WinMacros;
2123
 
  friend class ::CMatchSyntax;
2124
 
  friend class ::ExtGnu;
 
2428
  friend class ::WinAsm;
 
2429
  friend class ::WinDeclSpecs;
 
2430
  friend class ::WinMemberExplSpec;
 
2431
  friend class ::WinTypeKeywords;
 
2432
  friend class ::WinFriend;
2125
2433
  friend class ::ExtAC;
2126
2434
  friend class ::ExtACBuilderCoupling;
2127
2435
  friend class ::ExtACSyntaxCoupling;
2128
2436
  friend class ::ExtACTree;
2129
2437
  friend class ::ExtACKeywords;
2130
 
  friend class ::WinAsm;
2131
 
  friend class ::WinDeclSpecs;
2132
 
  friend class ::WinMemberExplSpec;
2133
 
  friend class ::WinTypeKeywords;
 
2438
  friend class ::ExtGnu;
2134
2439
  friend class ::PragmaOnceUnitState;
2135
2440
  friend class ::PragmaOnce;
2136
 
  friend class ::CCExprResolve;
2137
 
  friend class ::CExprResolve;
 
2441
  friend class ::CMatchSyntax;
 
2442
 
 
2443
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
2138
2444
 
2139
2445
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
2140
2446
 
2142
2448
  Filename () {}
2143
2449
  Filename (const char *n) { name (n); }
2144
2450
  Filename &operator = (const char *n) { name (n); return *this; }
 
2451
  bool operator ~ () const { return info () != 0; }
2145
2452
  void name (const char *n);
2146
2453
  const char *name () const;
2147
2454
  const char *path () const;
2156
2463
} // namespace Puma
2157
2464
 
2158
2465
#endif /* __filename_h__ */
 
2466
 
 
2467
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
2159
2468
namespace Puma {
2160
2469
 
2161
2470
 
 
2471
 
 
2472
#line 2473 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2162
2473
} // closed Puma
 
2474
class CCExprResolve;
 
2475
class CExprResolve;
2163
2476
class WinIfExists;
2164
2477
class WinImportHandler;
2165
2478
class WinMacros;
2166
 
class CMatchSyntax;
2167
 
class ExtGnu;
 
2479
class WinAsm;
 
2480
class WinDeclSpecs;
 
2481
class WinMemberExplSpec;
 
2482
class WinTypeKeywords;
 
2483
class WinFriend;
2168
2484
class ExtAC;
2169
2485
class ExtACBuilderCoupling;
2170
2486
class ExtACSyntaxCoupling;
2171
2487
class ExtACTree;
2172
2488
class ExtACKeywords;
2173
 
class WinAsm;
2174
 
class WinDeclSpecs;
2175
 
class WinMemberExplSpec;
2176
 
class WinTypeKeywords;
 
2489
class ExtGnu;
2177
2490
class PragmaOnceUnitState;
2178
2491
class PragmaOnce;
2179
 
class CCExprResolve;
2180
 
class CExprResolve;
 
2492
class CMatchSyntax;
2181
2493
namespace Puma {
2182
 
class LocationInfo : public RefCnt {  friend class ::WinIfExists;
 
2494
 
 
2495
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
 
2496
class Location {
 
2497
#line 2498 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2498
  friend class ::CCExprResolve;
 
2499
  friend class ::CExprResolve;
 
2500
  friend class ::WinIfExists;
2183
2501
  friend class ::WinImportHandler;
2184
2502
  friend class ::WinMacros;
2185
 
  friend class ::CMatchSyntax;
2186
 
  friend class ::ExtGnu;
 
2503
  friend class ::WinAsm;
 
2504
  friend class ::WinDeclSpecs;
 
2505
  friend class ::WinMemberExplSpec;
 
2506
  friend class ::WinTypeKeywords;
 
2507
  friend class ::WinFriend;
2187
2508
  friend class ::ExtAC;
2188
2509
  friend class ::ExtACBuilderCoupling;
2189
2510
  friend class ::ExtACSyntaxCoupling;
2190
2511
  friend class ::ExtACTree;
2191
2512
  friend class ::ExtACKeywords;
2192
 
  friend class ::WinAsm;
2193
 
  friend class ::WinDeclSpecs;
2194
 
  friend class ::WinMemberExplSpec;
2195
 
  friend class ::WinTypeKeywords;
 
2513
  friend class ::ExtGnu;
2196
2514
  friend class ::PragmaOnceUnitState;
2197
2515
  friend class ::PragmaOnce;
2198
 
  friend class ::CCExprResolve;
2199
 
  friend class ::CExprResolve;
 
2516
  friend class ::CMatchSyntax;
 
2517
 
 
2518
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
2200
2519
 
2201
2520
  Filename _filename;
2202
2521
  int _line;
 
2522
  int _column;
2203
2523
 
2204
2524
public:
2205
 
  LocationInfo () : _filename (), _line (0) {}
2206
 
  void setup (Filename f, int l);
 
2525
  Location () : _filename (), _line (0), _column (0) {}
 
2526
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
2527
  void setup (Filename f, int l, int c = 0) {
 
2528
    _filename = f;
 
2529
    _line     = l;
 
2530
    _column   = c;
 
2531
  }
2207
2532
  const Filename &filename () const { return _filename; }
2208
2533
  int line () const { return _line; }
2209
 
  bool operator < (const LocationInfo &l) const;
2210
 
  bool operator == (const LocationInfo &l) const;
2211
 
};
2212
 
 
2213
 
 
2214
 
} // namespace Puma
2215
 
 
2216
 
#endif /* __location_info_h__ */
2217
 
namespace Puma {
2218
 
 
2219
 
 
2220
 
} // closed Puma
2221
 
class WinIfExists;
2222
 
class WinImportHandler;
2223
 
class WinMacros;
2224
 
class CMatchSyntax;
2225
 
class ExtGnu;
2226
 
class ExtAC;
2227
 
class ExtACBuilderCoupling;
2228
 
class ExtACSyntaxCoupling;
2229
 
class ExtACTree;
2230
 
class ExtACKeywords;
2231
 
class WinAsm;
2232
 
class WinDeclSpecs;
2233
 
class WinMemberExplSpec;
2234
 
class WinTypeKeywords;
2235
 
class PragmaOnceUnitState;
2236
 
class PragmaOnce;
2237
 
class CCExprResolve;
2238
 
class CExprResolve;
2239
 
namespace Puma {
2240
 
class Location : public SmartPtr, public Printable {  friend class ::WinIfExists;
2241
 
  friend class ::WinImportHandler;
2242
 
  friend class ::WinMacros;
2243
 
  friend class ::CMatchSyntax;
2244
 
  friend class ::ExtGnu;
2245
 
  friend class ::ExtAC;
2246
 
  friend class ::ExtACBuilderCoupling;
2247
 
  friend class ::ExtACSyntaxCoupling;
2248
 
  friend class ::ExtACTree;
2249
 
  friend class ::ExtACKeywords;
2250
 
  friend class ::WinAsm;
2251
 
  friend class ::WinDeclSpecs;
2252
 
  friend class ::WinMemberExplSpec;
2253
 
  friend class ::WinTypeKeywords;
2254
 
  friend class ::PragmaOnceUnitState;
2255
 
  friend class ::PragmaOnce;
2256
 
  friend class ::CCExprResolve;
2257
 
  friend class ::CExprResolve;
2258
 
 
2259
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
2260
 
 
2261
 
public:
2262
 
  Location () {}
2263
 
  Location (Filename f, int l) { setup (f, l); }
2264
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2265
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2266
 
  void setup (Filename f, int l);
2267
 
  const Filename &filename () const   { return info ()->filename (); }
2268
 
  int line () const;
2269
 
  bool operator == (const Location &l) const;
 
2534
  int column () const { return _column; }
 
2535
  bool operator == (const Location &l) const {
 
2536
    return filename () == l.filename () && line () == l.line () &&
 
2537
      column () == l.column ();
 
2538
  }
2270
2539
  bool operator != (const Location &l) const { return ! (*this == l); }
2271
 
  bool operator < (const Location &l) const;
 
2540
  bool operator < (const Location &l) const {
 
2541
    // TODO: does it make sense to compare the filenames? better assert?
 
2542
    if (filename () != l.filename ())
 
2543
      return false;
 
2544
    return line () < l.line () && column () < l.column ();
 
2545
  }
 
2546
};
2272
2547
 
2273
 
  virtual void print (ostream &os) const {
2274
 
    if (info ())
 
2548
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2275
2549
#ifdef VISUAL_STUDIO
2276
 
      os << filename () << "(" << line () << ")";
 
2550
  os << loc.filename () << "(" << loc.line () << ")";
2277
2551
#else
2278
 
      os << filename () << ":" << line ();
 
2552
  os << loc.filename () << ":" << loc.line ();
2279
2553
#endif
2280
 
  }
2281
 
};
2282
 
 
2283
 
 
 
2554
  return os;  
 
2555
}
2284
2556
} // namespace Puma
2285
2557
 
2286
2558
#endif /* __location_h__ */
 
2559
 
 
2560
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2287
2561
#include <assert.h>
 
2562
 
 
2563
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2288
2564
namespace Puma {
2289
2565
 
2290
2566
 
 
2567
 
 
2568
#line 2569 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2291
2569
} // closed Puma
 
2570
class CCExprResolve;
 
2571
class CExprResolve;
2292
2572
class WinIfExists;
2293
2573
class WinImportHandler;
2294
2574
class WinMacros;
2295
 
class CMatchSyntax;
2296
 
class ExtGnu;
 
2575
class WinAsm;
 
2576
class WinDeclSpecs;
 
2577
class WinMemberExplSpec;
 
2578
class WinTypeKeywords;
 
2579
class WinFriend;
2297
2580
class ExtAC;
2298
2581
class ExtACBuilderCoupling;
2299
2582
class ExtACSyntaxCoupling;
2300
2583
class ExtACTree;
2301
2584
class ExtACKeywords;
2302
 
class WinAsm;
2303
 
class WinDeclSpecs;
2304
 
class WinMemberExplSpec;
2305
 
class WinTypeKeywords;
 
2585
class ExtGnu;
2306
2586
class PragmaOnceUnitState;
2307
2587
class PragmaOnce;
2308
 
class CCExprResolve;
2309
 
class CExprResolve;
 
2588
class CMatchSyntax;
2310
2589
namespace Puma {
2311
 
class Token : public ListElement {  friend class ::WinIfExists;
 
2590
 
 
2591
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
 
2592
class Token : public ListElement {
 
2593
#line 2594 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2594
  friend class ::CCExprResolve;
 
2595
  friend class ::CExprResolve;
 
2596
  friend class ::WinIfExists;
2312
2597
  friend class ::WinImportHandler;
2313
2598
  friend class ::WinMacros;
2314
 
  friend class ::CMatchSyntax;
2315
 
  friend class ::ExtGnu;
 
2599
  friend class ::WinAsm;
 
2600
  friend class ::WinDeclSpecs;
 
2601
  friend class ::WinMemberExplSpec;
 
2602
  friend class ::WinTypeKeywords;
 
2603
  friend class ::WinFriend;
2316
2604
  friend class ::ExtAC;
2317
2605
  friend class ::ExtACBuilderCoupling;
2318
2606
  friend class ::ExtACSyntaxCoupling;
2319
2607
  friend class ::ExtACTree;
2320
2608
  friend class ::ExtACKeywords;
2321
 
  friend class ::WinAsm;
2322
 
  friend class ::WinDeclSpecs;
2323
 
  friend class ::WinMemberExplSpec;
2324
 
  friend class ::WinTypeKeywords;
 
2609
  friend class ::ExtGnu;
2325
2610
  friend class ::PragmaOnceUnitState;
2326
2611
  friend class ::PragmaOnce;
2327
 
  friend class ::CCExprResolve;
2328
 
  friend class ::CExprResolve;
 
2612
  friend class ::CMatchSyntax;
 
2613
 
 
2614
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2329
2615
 
2330
2616
  int _type, _real_type;
2331
2617
 
2332
2618
  Location _location;
2333
2619
  LanguageID _language;
2334
 
  DString _text;
 
2620
  const char *_text;
 
2621
  mutable DString _dtext;
2335
2622
 
2336
2623
  Array<int> *_cont_lines;
2337
2624
   
2372
2659
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
2373
2660
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
2374
2661
  
2375
 
  const DString &text () const     { return _text; }
 
2662
  const char *text () const;
 
2663
  DString &dtext () const;
2376
2664
  char *get_static_text () const;
2377
2665
  int type () const                 { return _type; }
2378
2666
  const Location &location () const { return _location; }
2448
2736
} // namespace Puma
2449
2737
 
2450
2738
#endif /* __Token_h__ */
 
2739
 
 
2740
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
2451
2741
namespace Puma {
2452
2742
 
2453
2743
 
 
2744
 
 
2745
#line 2746 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2454
2746
} // closed Puma
 
2747
class CCExprResolve;
 
2748
class CExprResolve;
2455
2749
class WinIfExists;
2456
2750
class WinImportHandler;
2457
2751
class WinMacros;
2458
 
class CMatchSyntax;
2459
 
class ExtGnu;
 
2752
class WinAsm;
 
2753
class WinDeclSpecs;
 
2754
class WinMemberExplSpec;
 
2755
class WinTypeKeywords;
 
2756
class WinFriend;
2460
2757
class ExtAC;
2461
2758
class ExtACBuilderCoupling;
2462
2759
class ExtACSyntaxCoupling;
2463
2760
class ExtACTree;
2464
2761
class ExtACKeywords;
2465
 
class WinAsm;
2466
 
class WinDeclSpecs;
2467
 
class WinMemberExplSpec;
2468
 
class WinTypeKeywords;
 
2762
class ExtGnu;
2469
2763
class PragmaOnceUnitState;
2470
2764
class PragmaOnce;
2471
 
class CCExprResolve;
2472
 
class CExprResolve;
 
2765
class CMatchSyntax;
2473
2766
namespace Puma {
2474
 
class UnitTokenSrc : public PumaTokenSource {  friend class ::WinIfExists;
 
2767
 
 
2768
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
2769
class UnitTokenSrc : public PumaTokenSource {
 
2770
#line 2771 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2771
  friend class ::CCExprResolve;
 
2772
  friend class ::CExprResolve;
 
2773
  friend class ::WinIfExists;
2475
2774
  friend class ::WinImportHandler;
2476
2775
  friend class ::WinMacros;
2477
 
  friend class ::CMatchSyntax;
2478
 
  friend class ::ExtGnu;
 
2776
  friend class ::WinAsm;
 
2777
  friend class ::WinDeclSpecs;
 
2778
  friend class ::WinMemberExplSpec;
 
2779
  friend class ::WinTypeKeywords;
 
2780
  friend class ::WinFriend;
2479
2781
  friend class ::ExtAC;
2480
2782
  friend class ::ExtACBuilderCoupling;
2481
2783
  friend class ::ExtACSyntaxCoupling;
2482
2784
  friend class ::ExtACTree;
2483
2785
  friend class ::ExtACKeywords;
2484
 
  friend class ::WinAsm;
2485
 
  friend class ::WinDeclSpecs;
2486
 
  friend class ::WinMemberExplSpec;
2487
 
  friend class ::WinTypeKeywords;
 
2786
  friend class ::ExtGnu;
2488
2787
  friend class ::PragmaOnceUnitState;
2489
2788
  friend class ::PragmaOnce;
2490
 
  friend class ::CCExprResolve;
2491
 
  friend class ::CExprResolve;
 
2789
  friend class ::CMatchSyntax;
 
2790
 
 
2791
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
2492
2792
 
2493
2793
  Unit &_unit;
2494
2794
  Token *_curr;
2522
2822
} // namespace Puma
2523
2823
 
2524
2824
#endif /* __Unit_Token_Src__ */
 
2825
 
 
2826
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
2525
2827
namespace Puma {
2526
2828
 
2527
2829
 
 
2830
 
 
2831
#line 2832 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2528
2832
} // closed Puma
 
2833
class CCExprResolve;
 
2834
class CExprResolve;
2529
2835
class WinIfExists;
2530
2836
class WinImportHandler;
2531
2837
class WinMacros;
2532
 
class CMatchSyntax;
2533
 
class ExtGnu;
 
2838
class WinAsm;
 
2839
class WinDeclSpecs;
 
2840
class WinMemberExplSpec;
 
2841
class WinTypeKeywords;
 
2842
class WinFriend;
2534
2843
class ExtAC;
2535
2844
class ExtACBuilderCoupling;
2536
2845
class ExtACSyntaxCoupling;
2537
2846
class ExtACTree;
2538
2847
class ExtACKeywords;
2539
 
class WinAsm;
2540
 
class WinDeclSpecs;
2541
 
class WinMemberExplSpec;
2542
 
class WinTypeKeywords;
 
2848
class ExtGnu;
2543
2849
class PragmaOnceUnitState;
2544
2850
class PragmaOnce;
2545
 
class CCExprResolve;
2546
 
class CExprResolve;
 
2851
class CMatchSyntax;
2547
2852
namespace Puma {
2548
 
class TokenStream : public PumaTokenSource, public Array<UnitTokenSrc*> {  friend class ::WinIfExists;
 
2853
 
 
2854
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
2855
class TokenStream : public PumaTokenSource, public Array<UnitTokenSrc*> {
 
2856
#line 2857 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2857
  friend class ::CCExprResolve;
 
2858
  friend class ::CExprResolve;
 
2859
  friend class ::WinIfExists;
2549
2860
  friend class ::WinImportHandler;
2550
2861
  friend class ::WinMacros;
2551
 
  friend class ::CMatchSyntax;
2552
 
  friend class ::ExtGnu;
 
2862
  friend class ::WinAsm;
 
2863
  friend class ::WinDeclSpecs;
 
2864
  friend class ::WinMemberExplSpec;
 
2865
  friend class ::WinTypeKeywords;
 
2866
  friend class ::WinFriend;
2553
2867
  friend class ::ExtAC;
2554
2868
  friend class ::ExtACBuilderCoupling;
2555
2869
  friend class ::ExtACSyntaxCoupling;
2556
2870
  friend class ::ExtACTree;
2557
2871
  friend class ::ExtACKeywords;
2558
 
  friend class ::WinAsm;
2559
 
  friend class ::WinDeclSpecs;
2560
 
  friend class ::WinMemberExplSpec;
2561
 
  friend class ::WinTypeKeywords;
 
2872
  friend class ::ExtGnu;
2562
2873
  friend class ::PragmaOnceUnitState;
2563
2874
  friend class ::PragmaOnce;
2564
 
  friend class ::CCExprResolve;
2565
 
  friend class ::CExprResolve;
 
2875
  friend class ::CMatchSyntax;
 
2876
 
 
2877
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
2566
2878
 
2567
2879
public:
2568
2880
  TokenStream () : Array<UnitTokenSrc*> (20) {}
2582
2894
} // namespace Puma
2583
2895
 
2584
2896
#endif /* __TokenStream__ */
 
2897
 
 
2898
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
2585
2899
// This file is part of PUMA.
2586
2900
// Copyright (C) 1999-2003  The PUMA developer team.
2587
2901
//                                                                
2609
2923
#include <stdio.h>
2610
2924
#include <stddef.h>
2611
2925
#include <sys/stat.h>
 
2926
 
 
2927
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
2612
2928
#ifdef _MSC_VER
2613
2929
#include <string.h>
2614
2930
#include <stdlib.h>
2616
2932
#include <dirent.h>
2617
2933
#endif // _MSVC
2618
2934
 
 
2935
 
 
2936
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
2619
2937
namespace Puma {
2620
2938
 
2621
2939
class SysCall;
 
2940
 
 
2941
 
 
2942
#line 2943 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2622
2943
} // closed Puma
 
2944
class CCExprResolve;
 
2945
class CExprResolve;
2623
2946
class WinIfExists;
2624
2947
class WinImportHandler;
2625
2948
class WinMacros;
2626
 
class CMatchSyntax;
2627
 
class ExtGnu;
 
2949
class WinAsm;
 
2950
class WinDeclSpecs;
 
2951
class WinMemberExplSpec;
 
2952
class WinTypeKeywords;
 
2953
class WinFriend;
2628
2954
class ExtAC;
2629
2955
class ExtACBuilderCoupling;
2630
2956
class ExtACSyntaxCoupling;
2631
2957
class ExtACTree;
2632
2958
class ExtACKeywords;
2633
 
class WinAsm;
2634
 
class WinDeclSpecs;
2635
 
class WinMemberExplSpec;
2636
 
class WinTypeKeywords;
 
2959
class ExtGnu;
2637
2960
class PragmaOnceUnitState;
2638
2961
class PragmaOnce;
2639
 
class CCExprResolve;
2640
 
class CExprResolve;
 
2962
class CMatchSyntax;
2641
2963
namespace Puma {
2642
 
class FileInfo {  friend class ::WinIfExists;
 
2964
 
 
2965
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
2966
class FileInfo {
 
2967
#line 2968 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
2968
  friend class ::CCExprResolve;
 
2969
  friend class ::CExprResolve;
 
2970
  friend class ::WinIfExists;
2643
2971
  friend class ::WinImportHandler;
2644
2972
  friend class ::WinMacros;
2645
 
  friend class ::CMatchSyntax;
2646
 
  friend class ::ExtGnu;
 
2973
  friend class ::WinAsm;
 
2974
  friend class ::WinDeclSpecs;
 
2975
  friend class ::WinMemberExplSpec;
 
2976
  friend class ::WinTypeKeywords;
 
2977
  friend class ::WinFriend;
2647
2978
  friend class ::ExtAC;
2648
2979
  friend class ::ExtACBuilderCoupling;
2649
2980
  friend class ::ExtACSyntaxCoupling;
2650
2981
  friend class ::ExtACTree;
2651
2982
  friend class ::ExtACKeywords;
2652
 
  friend class ::WinAsm;
2653
 
  friend class ::WinDeclSpecs;
2654
 
  friend class ::WinMemberExplSpec;
2655
 
  friend class ::WinTypeKeywords;
 
2983
  friend class ::ExtGnu;
2656
2984
  friend class ::PragmaOnceUnitState;
2657
2985
  friend class ::PragmaOnce;
2658
 
  friend class ::CCExprResolve;
2659
 
  friend class ::CExprResolve;
 
2986
  friend class ::CMatchSyntax;
 
2987
 
 
2988
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
2660
2989
 
2661
2990
  friend class SysCall;
2662
2991
#ifndef _MSC_VER
2664
2993
#else
2665
2994
  struct _stat _info;
2666
2995
#endif
 
2996
 
2667
2997
public:
2668
2998
  bool is_dir () const {
2669
2999
#ifdef _MSC_VER
2670
 
          return _S_IFDIR & _info.st_mode; }
 
3000
    return _S_IFDIR & _info.st_mode;
2671
3001
#else
2672
 
          return S_ISDIR (_info.st_mode); }
 
3002
    return S_ISDIR (_info.st_mode);
2673
3003
#endif // _MSC_VER
 
3004
  }
2674
3005
  time_t modi_time () const { return _info.st_mtime; }
2675
3006
  int size () const { return _info.st_size; }
2676
3007
};
2677
3008
 
2678
3009
#ifdef _MSC_VER
2679
3010
struct DIR {
2680
 
        long _handle;
2681
 
        DIR (long h) : _handle (h) {}
 
3011
  long _handle;
 
3012
  DIR (long h) : _handle (h) {}
2682
3013
};
2683
3014
#endif // _MSC_VER
2684
3015
 
2687
3018
 
2688
3019
class ErrorSink;
2689
3020
 
 
3021
 
 
3022
#line 3023 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2690
3023
} // closed Puma
 
3024
class CCExprResolve;
 
3025
class CExprResolve;
2691
3026
class WinIfExists;
2692
3027
class WinImportHandler;
2693
3028
class WinMacros;
2694
 
class CMatchSyntax;
2695
 
class ExtGnu;
 
3029
class WinAsm;
 
3030
class WinDeclSpecs;
 
3031
class WinMemberExplSpec;
 
3032
class WinTypeKeywords;
 
3033
class WinFriend;
2696
3034
class ExtAC;
2697
3035
class ExtACBuilderCoupling;
2698
3036
class ExtACSyntaxCoupling;
2699
3037
class ExtACTree;
2700
3038
class ExtACKeywords;
2701
 
class WinAsm;
2702
 
class WinDeclSpecs;
2703
 
class WinMemberExplSpec;
2704
 
class WinTypeKeywords;
 
3039
class ExtGnu;
2705
3040
class PragmaOnceUnitState;
2706
3041
class PragmaOnce;
2707
 
class CCExprResolve;
2708
 
class CExprResolve;
 
3042
class CMatchSyntax;
2709
3043
namespace Puma {
2710
 
class SysCall {  friend class ::WinIfExists;
 
3044
 
 
3045
#line 74 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
 
3046
class SysCall {
 
3047
#line 3048 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3048
  friend class ::CCExprResolve;
 
3049
  friend class ::CExprResolve;
 
3050
  friend class ::WinIfExists;
2711
3051
  friend class ::WinImportHandler;
2712
3052
  friend class ::WinMacros;
2713
 
  friend class ::CMatchSyntax;
2714
 
  friend class ::ExtGnu;
 
3053
  friend class ::WinAsm;
 
3054
  friend class ::WinDeclSpecs;
 
3055
  friend class ::WinMemberExplSpec;
 
3056
  friend class ::WinTypeKeywords;
 
3057
  friend class ::WinFriend;
2715
3058
  friend class ::ExtAC;
2716
3059
  friend class ::ExtACBuilderCoupling;
2717
3060
  friend class ::ExtACSyntaxCoupling;
2718
3061
  friend class ::ExtACTree;
2719
3062
  friend class ::ExtACKeywords;
2720
 
  friend class ::WinAsm;
2721
 
  friend class ::WinDeclSpecs;
2722
 
  friend class ::WinMemberExplSpec;
2723
 
  friend class ::WinTypeKeywords;
 
3063
  friend class ::ExtGnu;
2724
3064
  friend class ::PragmaOnceUnitState;
2725
3065
  friend class ::PragmaOnce;
2726
 
  friend class ::CCExprResolve;
2727
 
  friend class ::CExprResolve;
 
3066
  friend class ::CMatchSyntax;
 
3067
 
 
3068
#line 74 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SysCall.h"
2728
3069
 
2729
3070
  static void printerror (ErrorSink *, const char *, 
2730
3071
                          const char * = (const char *)0);
2736
3077
  // create temporary file name, needs to be freed by caller
2737
3078
  static const char* mktemp (const char *prefix, ErrorSink * = (ErrorSink *)0);
2738
3079
 
2739
 
  // open/close file
 
3080
  // open/create/close file with exclusive file locking
 
3081
  static int open_excl (const char *, int, ErrorSink * = (ErrorSink *)0);
 
3082
  static int create_excl (const char *, int, ErrorSink * = (ErrorSink *)0);
 
3083
  static bool close_excl (int, ErrorSink * = (ErrorSink *)0);
 
3084
        
 
3085
  // open/create/close file
2740
3086
  static int open (const char *, int, ErrorSink * = (ErrorSink *)0);
 
3087
  static int create (const char *, int, ErrorSink * = (ErrorSink *)0);
2741
3088
  static bool close (int, ErrorSink * = (ErrorSink *)0);
2742
3089
        
2743
3090
  // read from file descriptor
2789
3136
 
2790
3137
#endif /* __SysCall_h__ */
2791
3138
 
 
3139
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
3140
 
 
3141
#line 3142 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3142
 
2792
3143
#ifndef __ac_fwd_ExtACKeywords__
2793
3144
#define __ac_fwd_ExtACKeywords__
2794
3145
class ExtACKeywords;
2795
3146
namespace AC {
2796
 
  template <class JoinPoint, class Binding>
2797
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
2798
 
  template <class JoinPoint, class Binding>
2799
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
2800
 
  template <class JoinPoint>
2801
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
3147
  template <class JoinPoint>
 
3148
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
3149
  template <class JoinPoint>
 
3150
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
3151
  template <class JoinPoint>
 
3152
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
2802
3153
}
2803
3154
#endif
2804
3155
 
2805
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
2806
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
3156
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
3157
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
2807
3158
#endif
 
3159
 
 
3160
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
2808
3161
// This file is part of PUMA.
2809
3162
// Copyright (C) 1999-2003  The PUMA developer team.
2810
3163
//                                                                
2826
3179
#ifndef __c_scanner_h__
2827
3180
#define __c_scanner_h__
2828
3181
 
 
3182
 
 
3183
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
2829
3184
// This file is part of PUMA.
2830
3185
// Copyright (C) 1999-2003  The PUMA developer team.
2831
3186
//                                                                
2847
3202
#ifndef __c_recognizer_h__
2848
3203
#define __c_recognizer_h__
2849
3204
 
 
3205
 
 
3206
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
2850
3207
// This file is part of PUMA.
2851
3208
// Copyright (C) 1999-2003  The PUMA developer team.
2852
3209
//                                                                
2868
3225
#ifndef __CScanBuffer_h__
2869
3226
#define __CScanBuffer_h__
2870
3227
 
 
3228
 
 
3229
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2871
3230
// This file is part of PUMA.
2872
3231
// Copyright (C) 1999-2003  The PUMA developer team.
2873
3232
//                                                                
2889
3248
#ifndef __scan_buffer_h__
2890
3249
#define __scan_buffer_h__
2891
3250
 
 
3251
 
 
3252
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3253
using namespace std;
 
3254
 
2892
3255
namespace Puma {
2893
3256
 
2894
3257
 
 
3258
#line 3259 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2895
3259
} // closed Puma
 
3260
class CCExprResolve;
 
3261
class CExprResolve;
2896
3262
class WinIfExists;
2897
3263
class WinImportHandler;
2898
3264
class WinMacros;
2899
 
class CMatchSyntax;
2900
 
class ExtGnu;
 
3265
class WinAsm;
 
3266
class WinDeclSpecs;
 
3267
class WinMemberExplSpec;
 
3268
class WinTypeKeywords;
 
3269
class WinFriend;
2901
3270
class ExtAC;
2902
3271
class ExtACBuilderCoupling;
2903
3272
class ExtACSyntaxCoupling;
2904
3273
class ExtACTree;
2905
3274
class ExtACKeywords;
2906
 
class WinAsm;
2907
 
class WinDeclSpecs;
2908
 
class WinMemberExplSpec;
2909
 
class WinTypeKeywords;
 
3275
class ExtGnu;
2910
3276
class PragmaOnceUnitState;
2911
3277
class PragmaOnce;
2912
 
class CCExprResolve;
2913
 
class CExprResolve;
 
3278
class CMatchSyntax;
2914
3279
namespace Puma {
2915
 
class ScanBuffer {  friend class ::WinIfExists;
 
3280
 
 
3281
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
3282
class ScanBuffer {
 
3283
#line 3284 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3284
  friend class ::CCExprResolve;
 
3285
  friend class ::CExprResolve;
 
3286
  friend class ::WinIfExists;
2916
3287
  friend class ::WinImportHandler;
2917
3288
  friend class ::WinMacros;
2918
 
  friend class ::CMatchSyntax;
2919
 
  friend class ::ExtGnu;
 
3289
  friend class ::WinAsm;
 
3290
  friend class ::WinDeclSpecs;
 
3291
  friend class ::WinMemberExplSpec;
 
3292
  friend class ::WinTypeKeywords;
 
3293
  friend class ::WinFriend;
2920
3294
  friend class ::ExtAC;
2921
3295
  friend class ::ExtACBuilderCoupling;
2922
3296
  friend class ::ExtACSyntaxCoupling;
2923
3297
  friend class ::ExtACTree;
2924
3298
  friend class ::ExtACKeywords;
2925
 
  friend class ::WinAsm;
2926
 
  friend class ::WinDeclSpecs;
2927
 
  friend class ::WinMemberExplSpec;
2928
 
  friend class ::WinTypeKeywords;
 
3299
  friend class ::ExtGnu;
2929
3300
  friend class ::PragmaOnceUnitState;
2930
3301
  friend class ::PragmaOnce;
2931
 
  friend class ::CCExprResolve;
2932
 
  friend class ::CExprResolve;
 
3302
  friend class ::CMatchSyntax;
 
3303
 
 
3304
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2933
3305
 
2934
3306
public:
2935
 
  typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
 
3307
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
 
3308
 
 
3309
private:
 
3310
  int _token;      // start position of current token
 
3311
  int _pos;        // current position (in token; _pos >= _token && pos < filled)
 
3312
  char *_buffer;   // token to the buffer that contains all input characters
 
3313
  int  _buff_size; // size of the input buffer
 
3314
  State _state;
 
3315
 
 
3316
public:  
 
3317
  ScanBuffer () : _state (STATE_NEW) {}
 
3318
 
 
3319
  // init buffer to directly scan from a string
 
3320
  void init (const char *str, int l = 0);
2936
3321
  
2937
 
  virtual ~ScanBuffer () {}
2938
 
 
2939
 
  virtual char next () = 0;
2940
 
  virtual char *token () = 0;
2941
 
  virtual int len () const = 0;
2942
 
  virtual void reset () = 0;
2943
 
  virtual void retry () = 0; 
2944
 
  virtual void accept (int len) = 0;
2945
 
  virtual void more (int len) = 0;
2946
 
  virtual State state () const = 0;
 
3322
  char next () { return _buffer[_pos++]; }
 
3323
  char lookahead () { return _buffer[_pos]; }
 
3324
  char *token () const { return _buffer + _token; }
 
3325
  int len () const { return _pos - _token; }
 
3326
  void reset () { _token = _pos = 0; }
 
3327
  void retry () { _pos = _token; } 
 
3328
  void accept (int len) {
 
3329
    _token += len;
 
3330
    _pos = _token;
 
3331
  }
 
3332
  void more (int len) { _pos = _token + len; }
 
3333
  State state () {
 
3334
    if (_state == STATE_OK && _pos >= _buff_size)
 
3335
      return STATE_END;
 
3336
    return _state;
 
3337
  }
2947
3338
};
2948
3339
 
2949
3340
 
2950
3341
} // namespace Puma
2951
3342
 
2952
3343
#endif /* __scan_buffer_h__ */
 
3344
 
 
3345
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
2953
3346
namespace Puma {
2954
3347
 
2955
3348
 
 
3349
 
 
3350
#line 3351 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2956
3351
} // closed Puma
 
3352
class CCExprResolve;
 
3353
class CExprResolve;
2957
3354
class WinIfExists;
2958
3355
class WinImportHandler;
2959
3356
class WinMacros;
2960
 
class CMatchSyntax;
2961
 
class ExtGnu;
 
3357
class WinAsm;
 
3358
class WinDeclSpecs;
 
3359
class WinMemberExplSpec;
 
3360
class WinTypeKeywords;
 
3361
class WinFriend;
2962
3362
class ExtAC;
2963
3363
class ExtACBuilderCoupling;
2964
3364
class ExtACSyntaxCoupling;
2965
3365
class ExtACTree;
2966
3366
class ExtACKeywords;
2967
 
class WinAsm;
2968
 
class WinDeclSpecs;
2969
 
class WinMemberExplSpec;
2970
 
class WinTypeKeywords;
 
3367
class ExtGnu;
2971
3368
class PragmaOnceUnitState;
2972
3369
class PragmaOnce;
2973
 
class CCExprResolve;
2974
 
class CExprResolve;
 
3370
class CMatchSyntax;
2975
3371
namespace Puma {
2976
 
class CScanBuffer {  friend class ::WinIfExists;
 
3372
 
 
3373
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3374
class CScanBuffer : public ScanBuffer {
 
3375
#line 3376 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3376
  friend class ::CCExprResolve;
 
3377
  friend class ::CExprResolve;
 
3378
  friend class ::WinIfExists;
2977
3379
  friend class ::WinImportHandler;
2978
3380
  friend class ::WinMacros;
2979
 
  friend class ::CMatchSyntax;
2980
 
  friend class ::ExtGnu;
 
3381
  friend class ::WinAsm;
 
3382
  friend class ::WinDeclSpecs;
 
3383
  friend class ::WinMemberExplSpec;
 
3384
  friend class ::WinTypeKeywords;
 
3385
  friend class ::WinFriend;
2981
3386
  friend class ::ExtAC;
2982
3387
  friend class ::ExtACBuilderCoupling;
2983
3388
  friend class ::ExtACSyntaxCoupling;
2984
3389
  friend class ::ExtACTree;
2985
3390
  friend class ::ExtACKeywords;
2986
 
  friend class ::WinAsm;
2987
 
  friend class ::WinDeclSpecs;
2988
 
  friend class ::WinMemberExplSpec;
2989
 
  friend class ::WinTypeKeywords;
 
3391
  friend class ::ExtGnu;
2990
3392
  friend class ::PragmaOnceUnitState;
2991
3393
  friend class ::PragmaOnce;
2992
 
  friend class ::CCExprResolve;
2993
 
  friend class ::CExprResolve;
2994
 
 
2995
 
  ScanBuffer *next_buffer;
2996
 
  bool on_new_line;
2997
 
  int nl_pos;
2998
 
 
 
3394
  friend class ::CMatchSyntax;
 
3395
 
 
3396
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3397
 
 
3398
 
 
3399
  int _new_line_pos;
2999
3400
  void check ();
3000
3401
 
3001
3402
public:
3002
 
  void decorate (ScanBuffer *nb) { next_buffer = nb; }
 
3403
  CScanBuffer () : _new_line_pos (-1) {}
3003
3404
  inline char next ();
3004
3405
  inline void reset ();
 
3406
  inline void retry (); 
3005
3407
  inline void accept (int len);
3006
 
  inline void retry ();
3007
 
  bool new_line () const { return on_new_line; }
3008
 
  char *token () { return next_buffer->token (); }
3009
 
  int len () const { return next_buffer->len (); }
3010
 
  void more (int len) { next_buffer->more (len); }
3011
 
  ScanBuffer::State state () const { return next_buffer->state (); }
 
3408
  inline bool new_line (int len) const;
3012
3409
};
3013
3410
 
3014
3411
 
3015
3412
inline char CScanBuffer::next () {
3016
 
  char character = next_buffer->next ();
3017
 
  if (character == '\n' && nl_pos == -1)
3018
 
    nl_pos = len () - 1;
3019
 
  check ();
 
3413
  char character = ScanBuffer::next ();
 
3414
  if (character == '\n' && _new_line_pos == -1)
 
3415
    _new_line_pos = len ();
 
3416
  if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
 
3417
      ScanBuffer::lookahead () == '\\')
 
3418
    check ();
3020
3419
  return character;
3021
3420
}
3022
3421
 
3023
3422
inline void CScanBuffer::reset () { 
3024
 
  next_buffer->reset (); 
3025
 
  on_new_line = true;
3026
 
  nl_pos = -1;
 
3423
  ScanBuffer::reset ();
 
3424
  _new_line_pos = -1;
3027
3425
  check ();
3028
3426
}
3029
3427
 
3030
 
 
3031
3428
inline void CScanBuffer::retry () {
3032
 
  nl_pos = -1;
3033
 
  next_buffer->retry ();
 
3429
  ScanBuffer::retry ();
 
3430
  _new_line_pos = -1;
3034
3431
}
3035
3432
 
3036
 
 
3037
3433
inline void CScanBuffer::accept (int len) {
3038
 
  on_new_line = (nl_pos >= 0 && nl_pos < len);
3039
 
  nl_pos = -1;
3040
 
  next_buffer->accept (len);
 
3434
  ScanBuffer::accept (len);
 
3435
  _new_line_pos = -1;
 
3436
}
 
3437
 
 
3438
inline bool CScanBuffer::new_line (int len) const {
 
3439
  return _new_line_pos != -1 && _new_line_pos <= len;
3041
3440
}
3042
3441
 
3043
3442
} // namespace Puma
3044
3443
 
3045
3444
#endif // __CScanBuffer_h__
 
3445
 
 
3446
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3046
3447
// This file is part of PUMA.
3047
3448
// Copyright (C) 1999-2003  The PUMA developer team.
3048
3449
//                                                                
3064
3465
#ifndef __c_comment_recognizer_h__
3065
3466
#define __c_comment_recognizer_h__
3066
3467
 
 
3468
 
 
3469
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
3067
3470
// This file is part of PUMA.
3068
3471
// Copyright (C) 1999-2003  The PUMA developer team.
3069
3472
//                                                                
3089
3492
// orange tool. Returned expressions mapped according to an orange
3090
3493
// generated mapping table
3091
3494
 
 
3495
 
 
3496
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
3092
3497
// This file is part of PUMA.
3093
3498
// Copyright (C) 1999-2003  The PUMA developer team.
3094
3499
//                                                                
3118
3523
 
3119
3524
#ifndef __TTGEN__
3120
3525
#  define __TTGEN__
3121
 
} // closed Puma
3122
 
class WinIfExists;
3123
 
class WinImportHandler;
3124
 
class WinMacros;
3125
 
class CMatchSyntax;
3126
 
class ExtGnu;
3127
 
class ExtAC;
3128
 
class ExtACBuilderCoupling;
3129
 
class ExtACSyntaxCoupling;
3130
 
class ExtACTree;
3131
 
class ExtACKeywords;
3132
 
class WinAsm;
3133
 
class WinDeclSpecs;
3134
 
class WinMemberExplSpec;
3135
 
class WinTypeKeywords;
3136
 
class PragmaOnceUnitState;
3137
 
class PragmaOnce;
3138
 
class CCExprResolve;
3139
 
class CExprResolve;
3140
 
namespace Puma {
3141
3526
typedef struct
3142
 
 {  friend class ::WinIfExists;
3143
 
  friend class ::WinImportHandler;
3144
 
  friend class ::WinMacros;
3145
 
  friend class ::CMatchSyntax;
3146
 
  friend class ::ExtGnu;
3147
 
  friend class ::ExtAC;
3148
 
  friend class ::ExtACBuilderCoupling;
3149
 
  friend class ::ExtACSyntaxCoupling;
3150
 
  friend class ::ExtACTree;
3151
 
  friend class ::ExtACKeywords;
3152
 
  friend class ::WinAsm;
3153
 
  friend class ::WinDeclSpecs;
3154
 
  friend class ::WinMemberExplSpec;
3155
 
  friend class ::WinTypeKeywords;
3156
 
  friend class ::PragmaOnceUnitState;
3157
 
  friend class ::PragmaOnce;
3158
 
  friend class ::CCExprResolve;
3159
 
  friend class ::CExprResolve;
3160
 
 unsigned char Type;
 
3527
 { unsigned char Type;
3161
3528
   unsigned char LookAhead;
3162
3529
   int           Expression;
3163
3530
   int           Start;
3167
3534
 
3168
3535
// class declaration
3169
3536
 
3170
 
} // closed Puma
3171
 
class WinIfExists;
3172
 
class WinImportHandler;
3173
 
class WinMacros;
3174
 
class CMatchSyntax;
3175
 
class ExtGnu;
3176
 
class ExtAC;
3177
 
class ExtACBuilderCoupling;
3178
 
class ExtACSyntaxCoupling;
3179
 
class ExtACTree;
3180
 
class ExtACKeywords;
3181
 
class WinAsm;
3182
 
class WinDeclSpecs;
3183
 
class WinMemberExplSpec;
3184
 
class WinTypeKeywords;
3185
 
class PragmaOnceUnitState;
3186
 
class PragmaOnce;
3187
 
class CCExprResolve;
3188
 
class CExprResolve;
3189
 
namespace Puma {
3190
3537
template <typename TScanBuffer>
3191
 
class OrangeRecognizer {  friend class ::WinIfExists;
3192
 
  friend class ::WinImportHandler;
3193
 
  friend class ::WinMacros;
3194
 
  friend class ::CMatchSyntax;
3195
 
  friend class ::ExtGnu;
3196
 
  friend class ::ExtAC;
3197
 
  friend class ::ExtACBuilderCoupling;
3198
 
  friend class ::ExtACSyntaxCoupling;
3199
 
  friend class ::ExtACTree;
3200
 
  friend class ::ExtACKeywords;
3201
 
  friend class ::WinAsm;
3202
 
  friend class ::WinDeclSpecs;
3203
 
  friend class ::WinMemberExplSpec;
3204
 
  friend class ::WinTypeKeywords;
3205
 
  friend class ::PragmaOnceUnitState;
3206
 
  friend class ::PragmaOnce;
3207
 
  friend class ::CCExprResolve;
3208
 
  friend class ::CExprResolve;
3209
 
 
 
3538
class OrangeRecognizer {
3210
3539
  // local structures generated by Orange
3211
3540
 
3212
3541
  char *_map;
3239
3568
  int  LookAheadLen;
3240
3569
  int  AcceptLen;
3241
3570
  int  AcceptState;
3242
 
  ScanBuffer::State buffer_state = ScanBuffer::STATE_OK;
 
3571
  typename TScanBuffer::State buffer_state = TScanBuffer::STATE_OK;
3243
3572
 
3244
3573
  State = _start;
3245
3574
  AcceptState = -1;
3272
3601
      LookAheadLen = scan_buffer->len ();
3273
3602
 
3274
3603
    buffer_state = scan_buffer->state ();
3275
 
  } while (NextState != -1 && buffer_state == ScanBuffer::STATE_OK);
 
3604
  } while (NextState != -1 && buffer_state == TScanBuffer::STATE_OK);
3276
3605
 
3277
 
  if (buffer_state == ScanBuffer::STATE_ERROR)
 
3606
  if (buffer_state == TScanBuffer::STATE_ERROR)
3278
3607
    return -1;
3279
3608
 
3280
3609
  if (AcceptState == -1)
3289
3618
} // namespace Puma
3290
3619
 
3291
3620
#endif /* __orange_recognizer_h__ */
 
3621
 
 
3622
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
3292
3623
namespace Puma {
3293
3624
 
3294
3625
 
3295
3626
// class declaration
3296
3627
 
3297
 
} // closed Puma
3298
 
class WinIfExists;
3299
 
class WinImportHandler;
3300
 
class WinMacros;
3301
 
class CMatchSyntax;
3302
 
class ExtGnu;
3303
 
class ExtAC;
3304
 
class ExtACBuilderCoupling;
3305
 
class ExtACSyntaxCoupling;
3306
 
class ExtACTree;
3307
 
class ExtACKeywords;
3308
 
class WinAsm;
3309
 
class WinDeclSpecs;
3310
 
class WinMemberExplSpec;
3311
 
class WinTypeKeywords;
3312
 
class PragmaOnceUnitState;
3313
 
class PragmaOnce;
3314
 
class CCExprResolve;
3315
 
class CExprResolve;
3316
 
namespace Puma {
3317
3628
template <class ScanBuffer>
3318
 
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {  friend class ::WinIfExists;
3319
 
  friend class ::WinImportHandler;
3320
 
  friend class ::WinMacros;
3321
 
  friend class ::CMatchSyntax;
3322
 
  friend class ::ExtGnu;
3323
 
  friend class ::ExtAC;
3324
 
  friend class ::ExtACBuilderCoupling;
3325
 
  friend class ::ExtACSyntaxCoupling;
3326
 
  friend class ::ExtACTree;
3327
 
  friend class ::ExtACKeywords;
3328
 
  friend class ::WinAsm;
3329
 
  friend class ::WinDeclSpecs;
3330
 
  friend class ::WinMemberExplSpec;
3331
 
  friend class ::WinTypeKeywords;
3332
 
  friend class ::PragmaOnceUnitState;
3333
 
  friend class ::PragmaOnce;
3334
 
  friend class ::CCExprResolve;
3335
 
  friend class ::CExprResolve;
3336
 
 
 
3629
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
3337
3630
  int *_expr_map;
3338
3631
 
3339
3632
public:
3360
3653
} // namespace Puma
3361
3654
 
3362
3655
#endif // __mapped_orange_recognizer_h__
 
3656
 
 
3657
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3363
3658
namespace Puma {
3364
3659
 
3365
3660
 
 
3661
 
 
3662
#line 3663 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3366
3663
} // closed Puma
 
3664
class CCExprResolve;
 
3665
class CExprResolve;
3367
3666
class WinIfExists;
3368
3667
class WinImportHandler;
3369
3668
class WinMacros;
3370
 
class CMatchSyntax;
3371
 
class ExtGnu;
 
3669
class WinAsm;
 
3670
class WinDeclSpecs;
 
3671
class WinMemberExplSpec;
 
3672
class WinTypeKeywords;
 
3673
class WinFriend;
3372
3674
class ExtAC;
3373
3675
class ExtACBuilderCoupling;
3374
3676
class ExtACSyntaxCoupling;
3375
3677
class ExtACTree;
3376
3678
class ExtACKeywords;
3377
 
class WinAsm;
3378
 
class WinDeclSpecs;
3379
 
class WinMemberExplSpec;
3380
 
class WinTypeKeywords;
 
3679
class ExtGnu;
3381
3680
class PragmaOnceUnitState;
3382
3681
class PragmaOnce;
3383
 
class CCExprResolve;
3384
 
class CExprResolve;
 
3682
class CMatchSyntax;
3385
3683
namespace Puma {
3386
 
class CCommentRecognizer {  friend class ::WinIfExists;
 
3684
 
 
3685
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3686
class CCommentRecognizer {
 
3687
#line 3688 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3688
  friend class ::CCExprResolve;
 
3689
  friend class ::CExprResolve;
 
3690
  friend class ::WinIfExists;
3387
3691
  friend class ::WinImportHandler;
3388
3692
  friend class ::WinMacros;
3389
 
  friend class ::CMatchSyntax;
3390
 
  friend class ::ExtGnu;
 
3693
  friend class ::WinAsm;
 
3694
  friend class ::WinDeclSpecs;
 
3695
  friend class ::WinMemberExplSpec;
 
3696
  friend class ::WinTypeKeywords;
 
3697
  friend class ::WinFriend;
3391
3698
  friend class ::ExtAC;
3392
3699
  friend class ::ExtACBuilderCoupling;
3393
3700
  friend class ::ExtACSyntaxCoupling;
3394
3701
  friend class ::ExtACTree;
3395
3702
  friend class ::ExtACKeywords;
3396
 
  friend class ::WinAsm;
3397
 
  friend class ::WinDeclSpecs;
3398
 
  friend class ::WinMemberExplSpec;
3399
 
  friend class ::WinTypeKeywords;
 
3703
  friend class ::ExtGnu;
3400
3704
  friend class ::PragmaOnceUnitState;
3401
3705
  friend class ::PragmaOnce;
3402
 
  friend class ::CCExprResolve;
3403
 
  friend class ::CExprResolve;
 
3706
  friend class ::CMatchSyntax;
 
3707
 
 
3708
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3404
3709
 
3405
3710
public:
3406
3711
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
3422
3727
} // namespace Puma
3423
3728
 
3424
3729
#endif /* __c_comment_recognizer_h__ */
 
3730
 
 
3731
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3425
3732
// This file is part of PUMA.
3426
3733
// Copyright (C) 1999-2003  The PUMA developer team.
3427
3734
//                                                                
3443
3750
#ifndef __keyword_recognizer_h__
3444
3751
#define __keyword_recognizer_h__
3445
3752
 
 
3753
 
 
3754
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3446
3755
namespace Puma {
3447
3756
 
3448
3757
 
 
3758
 
 
3759
#line 3760 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3449
3760
} // closed Puma
 
3761
class CCExprResolve;
 
3762
class CExprResolve;
3450
3763
class WinIfExists;
3451
3764
class WinImportHandler;
3452
3765
class WinMacros;
3453
 
class CMatchSyntax;
3454
 
class ExtGnu;
 
3766
class WinAsm;
 
3767
class WinDeclSpecs;
 
3768
class WinMemberExplSpec;
 
3769
class WinTypeKeywords;
 
3770
class WinFriend;
3455
3771
class ExtAC;
3456
3772
class ExtACBuilderCoupling;
3457
3773
class ExtACSyntaxCoupling;
3458
3774
class ExtACTree;
3459
3775
class ExtACKeywords;
3460
 
class WinAsm;
3461
 
class WinDeclSpecs;
3462
 
class WinMemberExplSpec;
3463
 
class WinTypeKeywords;
 
3776
class ExtGnu;
3464
3777
class PragmaOnceUnitState;
3465
3778
class PragmaOnce;
3466
 
class CCExprResolve;
3467
 
class CExprResolve;
 
3779
class CMatchSyntax;
3468
3780
namespace Puma {
3469
 
class KeywordRecognizer {  friend class ::WinIfExists;
 
3781
 
 
3782
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3783
class KeywordRecognizer {
 
3784
#line 3785 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3785
  friend class ::CCExprResolve;
 
3786
  friend class ::CExprResolve;
 
3787
  friend class ::WinIfExists;
3470
3788
  friend class ::WinImportHandler;
3471
3789
  friend class ::WinMacros;
3472
 
  friend class ::CMatchSyntax;
3473
 
  friend class ::ExtGnu;
 
3790
  friend class ::WinAsm;
 
3791
  friend class ::WinDeclSpecs;
 
3792
  friend class ::WinMemberExplSpec;
 
3793
  friend class ::WinTypeKeywords;
 
3794
  friend class ::WinFriend;
3474
3795
  friend class ::ExtAC;
3475
3796
  friend class ::ExtACBuilderCoupling;
3476
3797
  friend class ::ExtACSyntaxCoupling;
3477
3798
  friend class ::ExtACTree;
3478
3799
  friend class ::ExtACKeywords;
3479
 
  friend class ::WinAsm;
3480
 
  friend class ::WinDeclSpecs;
3481
 
  friend class ::WinMemberExplSpec;
3482
 
  friend class ::WinTypeKeywords;
 
3800
  friend class ::ExtGnu;
3483
3801
  friend class ::PragmaOnceUnitState;
3484
3802
  friend class ::PragmaOnce;
3485
 
  friend class ::CCExprResolve;
3486
 
  friend class ::CExprResolve;
 
3803
  friend class ::CMatchSyntax;
 
3804
 
 
3805
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3487
3806
 
3488
3807
protected:
3489
3808
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
3497
3816
} // namespace Puma
3498
3817
 
3499
3818
#endif /* __keyword_recognizer_h__ */
 
3819
 
 
3820
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3500
3821
namespace Puma {
3501
3822
 
3502
3823
 
 
3824
 
 
3825
#line 3826 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3503
3826
} // closed Puma
 
3827
class CCExprResolve;
 
3828
class CExprResolve;
3504
3829
class WinIfExists;
3505
3830
class WinImportHandler;
3506
3831
class WinMacros;
3507
 
class CMatchSyntax;
3508
 
class ExtGnu;
 
3832
class WinAsm;
 
3833
class WinDeclSpecs;
 
3834
class WinMemberExplSpec;
 
3835
class WinTypeKeywords;
 
3836
class WinFriend;
3509
3837
class ExtAC;
3510
3838
class ExtACBuilderCoupling;
3511
3839
class ExtACSyntaxCoupling;
3512
3840
class ExtACTree;
3513
3841
class ExtACKeywords;
3514
 
class WinAsm;
3515
 
class WinDeclSpecs;
3516
 
class WinMemberExplSpec;
3517
 
class WinTypeKeywords;
 
3842
class ExtGnu;
3518
3843
class PragmaOnceUnitState;
3519
3844
class PragmaOnce;
3520
 
class CCExprResolve;
3521
 
class CExprResolve;
 
3845
class CMatchSyntax;
3522
3846
namespace Puma {
3523
 
class CRecognizer {  friend class ::WinIfExists;
 
3847
 
 
3848
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3849
class CRecognizer {
 
3850
#line 3851 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
3851
  friend class ::CCExprResolve;
 
3852
  friend class ::CExprResolve;
 
3853
  friend class ::WinIfExists;
3524
3854
  friend class ::WinImportHandler;
3525
3855
  friend class ::WinMacros;
3526
 
  friend class ::CMatchSyntax;
3527
 
  friend class ::ExtGnu;
 
3856
  friend class ::WinAsm;
 
3857
  friend class ::WinDeclSpecs;
 
3858
  friend class ::WinMemberExplSpec;
 
3859
  friend class ::WinTypeKeywords;
 
3860
  friend class ::WinFriend;
3528
3861
  friend class ::ExtAC;
3529
3862
  friend class ::ExtACBuilderCoupling;
3530
3863
  friend class ::ExtACSyntaxCoupling;
3531
3864
  friend class ::ExtACTree;
3532
3865
  friend class ::ExtACKeywords;
3533
 
  friend class ::WinAsm;
3534
 
  friend class ::WinDeclSpecs;
3535
 
  friend class ::WinMemberExplSpec;
3536
 
  friend class ::WinTypeKeywords;
 
3866
  friend class ::ExtGnu;
3537
3867
  friend class ::PragmaOnceUnitState;
3538
3868
  friend class ::PragmaOnce;
3539
 
  friend class ::CCExprResolve;
3540
 
  friend class ::CExprResolve;
3541
 
 
3542
 
  CScanBuffer scan_buffer;
 
3869
  friend class ::CMatchSyntax;
 
3870
 
 
3871
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3872
 
3543
3873
  CCommentRecognizer comment_recognizer;
3544
3874
  Array<KeywordRecognizer*> additional_keyword_recognizers;
3545
3875
 
3546
3876
public:
 
3877
  CScanBuffer scan_buffer; // TODO: temporarily made public!
 
3878
 
3547
3879
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
3548
 
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE, 
 
3880
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE, 
3549
3881
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
3550
3882
 
3551
 
  CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
 
3883
  CRecognizer () : directives(true), wildcards (false),
 
3884
    aspectc (false), macro_ops (false),
3552
3885
    std_c (true), std_cplusplus (true) {}
3553
 
  CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
3554
 
    macro_ops (false) { setup (buffer); }
 
3886
  void allow_directives (bool flag = true)    { directives = flag; }
3555
3887
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
3556
3888
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
3557
3889
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
3558
3890
  void allow_std_c (bool flag = true)         { std_c = flag; }
3559
3891
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
3560
 
  void setup (ScanBuffer &buffer);
 
3892
  void setup ();
3561
3893
  int recognize (Lang &lang, int &expr, int &len);
3562
 
  Mode mode () { return scan_mode; }
3563
 
  bool new_line () const { return scan_buffer.new_line (); }
 
3894
  Mode mode () const { return scan_mode; }
 
3895
  void mode (Mode mode) { scan_mode = mode; }
3564
3896
  CScanBuffer& buffer () { return scan_buffer; }
3565
3897
  void addRecognizer(KeywordRecognizer &recognizer) 
3566
3898
   { additional_keyword_recognizers.append(&recognizer); }
3567
3899
 
3568
3900
private:
3569
 
  static MappedOrangeRecognizer<CScanBuffer> string_recognizer;   
3570
3901
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
3571
3902
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
3572
3903
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
3573
 
  static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
3574
3904
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
3575
3905
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
3576
3906
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
3577
3907
 
3578
3908
  Mode scan_mode;
3579
 
  bool check_directive;
 
3909
  bool directives;
3580
3910
  bool wildcards;
3581
3911
  bool aspectc;
3582
3912
  bool macro_ops;
3588
3918
} // namespace Puma
3589
3919
 
3590
3920
#endif /* __c_recognizer_h__ */
 
3921
 
 
3922
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3591
3923
// This file is part of PUMA.
3592
3924
// Copyright (C) 1999-2003  The PUMA developer team.
3593
3925
//                                                                
3612
3944
// Tokenizer interface. Tokenizer read input from a "Source" and
3613
3945
// form tokens, which used to fill a "Unit".
3614
3946
 
 
3947
 
 
3948
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Source.h"
3615
3949
// This file is part of PUMA.
3616
3950
// Copyright (C) 1999-2003  The PUMA developer team.
3617
3951
//                                                                
3636
3970
namespace Puma {
3637
3971
 
3638
3972
 
 
3973
 
 
3974
#line 3975 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3639
3975
} // closed Puma
 
3976
class CCExprResolve;
 
3977
class CExprResolve;
3640
3978
class WinIfExists;
3641
3979
class WinImportHandler;
3642
3980
class WinMacros;
3643
 
class CMatchSyntax;
3644
 
class ExtGnu;
 
3981
class WinAsm;
 
3982
class WinDeclSpecs;
 
3983
class WinMemberExplSpec;
 
3984
class WinTypeKeywords;
 
3985
class WinFriend;
3645
3986
class ExtAC;
3646
3987
class ExtACBuilderCoupling;
3647
3988
class ExtACSyntaxCoupling;
3648
3989
class ExtACTree;
3649
3990
class ExtACKeywords;
3650
 
class WinAsm;
3651
 
class WinDeclSpecs;
3652
 
class WinMemberExplSpec;
3653
 
class WinTypeKeywords;
 
3991
class ExtGnu;
3654
3992
class PragmaOnceUnitState;
3655
3993
class PragmaOnce;
3656
 
class CCExprResolve;
3657
 
class CExprResolve;
 
3994
class CMatchSyntax;
3658
3995
namespace Puma {
3659
 
class Source {  friend class ::WinIfExists;
 
3996
 
 
3997
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Source.h"
 
3998
class Source {
 
3999
#line 4000 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4000
  friend class ::CCExprResolve;
 
4001
  friend class ::CExprResolve;
 
4002
  friend class ::WinIfExists;
3660
4003
  friend class ::WinImportHandler;
3661
4004
  friend class ::WinMacros;
3662
 
  friend class ::CMatchSyntax;
3663
 
  friend class ::ExtGnu;
 
4005
  friend class ::WinAsm;
 
4006
  friend class ::WinDeclSpecs;
 
4007
  friend class ::WinMemberExplSpec;
 
4008
  friend class ::WinTypeKeywords;
 
4009
  friend class ::WinFriend;
3664
4010
  friend class ::ExtAC;
3665
4011
  friend class ::ExtACBuilderCoupling;
3666
4012
  friend class ::ExtACSyntaxCoupling;
3667
4013
  friend class ::ExtACTree;
3668
4014
  friend class ::ExtACKeywords;
3669
 
  friend class ::WinAsm;
3670
 
  friend class ::WinDeclSpecs;
3671
 
  friend class ::WinMemberExplSpec;
3672
 
  friend class ::WinTypeKeywords;
 
4015
  friend class ::ExtGnu;
3673
4016
  friend class ::PragmaOnceUnitState;
3674
4017
  friend class ::PragmaOnce;
3675
 
  friend class ::CCExprResolve;
3676
 
  friend class ::CExprResolve;
 
4018
  friend class ::CMatchSyntax;
 
4019
 
 
4020
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Source.h"
3677
4021
 
3678
4022
public:
3679
4023
  Source () {}
3686
4030
} // namespace Puma
3687
4031
 
3688
4032
#endif /* __source_h__ */
 
4033
 
 
4034
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3689
4035
namespace Puma {
3690
4036
 
3691
4037
 
 
4038
 
 
4039
#line 4040 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3692
4040
} // closed Puma
 
4041
class CCExprResolve;
 
4042
class CExprResolve;
3693
4043
class WinIfExists;
3694
4044
class WinImportHandler;
3695
4045
class WinMacros;
3696
 
class CMatchSyntax;
3697
 
class ExtGnu;
 
4046
class WinAsm;
 
4047
class WinDeclSpecs;
 
4048
class WinMemberExplSpec;
 
4049
class WinTypeKeywords;
 
4050
class WinFriend;
3698
4051
class ExtAC;
3699
4052
class ExtACBuilderCoupling;
3700
4053
class ExtACSyntaxCoupling;
3701
4054
class ExtACTree;
3702
4055
class ExtACKeywords;
3703
 
class WinAsm;
3704
 
class WinDeclSpecs;
3705
 
class WinMemberExplSpec;
3706
 
class WinTypeKeywords;
 
4056
class ExtGnu;
3707
4057
class PragmaOnceUnitState;
3708
4058
class PragmaOnce;
3709
 
class CCExprResolve;
3710
 
class CExprResolve;
 
4059
class CMatchSyntax;
3711
4060
namespace Puma {
3712
 
class Tokenizer {  friend class ::WinIfExists;
 
4061
 
 
4062
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
4063
class Tokenizer {
 
4064
#line 4065 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4065
  friend class ::CCExprResolve;
 
4066
  friend class ::CExprResolve;
 
4067
  friend class ::WinIfExists;
3713
4068
  friend class ::WinImportHandler;
3714
4069
  friend class ::WinMacros;
3715
 
  friend class ::CMatchSyntax;
3716
 
  friend class ::ExtGnu;
 
4070
  friend class ::WinAsm;
 
4071
  friend class ::WinDeclSpecs;
 
4072
  friend class ::WinMemberExplSpec;
 
4073
  friend class ::WinTypeKeywords;
 
4074
  friend class ::WinFriend;
3717
4075
  friend class ::ExtAC;
3718
4076
  friend class ::ExtACBuilderCoupling;
3719
4077
  friend class ::ExtACSyntaxCoupling;
3720
4078
  friend class ::ExtACTree;
3721
4079
  friend class ::ExtACKeywords;
3722
 
  friend class ::WinAsm;
3723
 
  friend class ::WinDeclSpecs;
3724
 
  friend class ::WinMemberExplSpec;
3725
 
  friend class ::WinTypeKeywords;
 
4080
  friend class ::ExtGnu;
3726
4081
  friend class ::PragmaOnceUnitState;
3727
4082
  friend class ::PragmaOnce;
3728
 
  friend class ::CCExprResolve;
3729
 
  friend class ::CExprResolve;
 
4083
  friend class ::CMatchSyntax;
 
4084
 
 
4085
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3730
4086
 
3731
4087
public:
3732
4088
  virtual ~Tokenizer () {}
3737
4093
} // namespace Puma
3738
4094
 
3739
4095
#endif /* __Tokenizer_h__ */
 
4096
 
 
4097
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3740
4098
// This file is part of PUMA.
3741
4099
// Copyright (C) 1999-2003  The PUMA developer team.
3742
4100
//                                                                
3770
4128
// Specializations of this class could either build and print error
3771
4129
// messages or collect them for a later processing.
3772
4130
 
 
4131
 
 
4132
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3773
4133
// This file is part of PUMA.
3774
4134
// Copyright (C) 1999-2003  The PUMA developer team.
3775
4135
//                                                                
3796
4156
namespace Puma {
3797
4157
 
3798
4158
 
 
4159
 
 
4160
#line 4161 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3799
4161
} // closed Puma
 
4162
class CCExprResolve;
 
4163
class CExprResolve;
3800
4164
class WinIfExists;
3801
4165
class WinImportHandler;
3802
4166
class WinMacros;
3803
 
class CMatchSyntax;
3804
 
class ExtGnu;
 
4167
class WinAsm;
 
4168
class WinDeclSpecs;
 
4169
class WinMemberExplSpec;
 
4170
class WinTypeKeywords;
 
4171
class WinFriend;
3805
4172
class ExtAC;
3806
4173
class ExtACBuilderCoupling;
3807
4174
class ExtACSyntaxCoupling;
3808
4175
class ExtACTree;
3809
4176
class ExtACKeywords;
3810
 
class WinAsm;
3811
 
class WinDeclSpecs;
3812
 
class WinMemberExplSpec;
3813
 
class WinTypeKeywords;
 
4177
class ExtGnu;
3814
4178
class PragmaOnceUnitState;
3815
4179
class PragmaOnce;
3816
 
class CCExprResolve;
3817
 
class CExprResolve;
 
4180
class CMatchSyntax;
3818
4181
namespace Puma {
3819
 
class ErrorSeverity {  friend class ::WinIfExists;
 
4182
 
 
4183
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
4184
class ErrorSeverity {
 
4185
#line 4186 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4186
  friend class ::CCExprResolve;
 
4187
  friend class ::CExprResolve;
 
4188
  friend class ::WinIfExists;
3820
4189
  friend class ::WinImportHandler;
3821
4190
  friend class ::WinMacros;
3822
 
  friend class ::CMatchSyntax;
3823
 
  friend class ::ExtGnu;
 
4191
  friend class ::WinAsm;
 
4192
  friend class ::WinDeclSpecs;
 
4193
  friend class ::WinMemberExplSpec;
 
4194
  friend class ::WinTypeKeywords;
 
4195
  friend class ::WinFriend;
3824
4196
  friend class ::ExtAC;
3825
4197
  friend class ::ExtACBuilderCoupling;
3826
4198
  friend class ::ExtACSyntaxCoupling;
3827
4199
  friend class ::ExtACTree;
3828
4200
  friend class ::ExtACKeywords;
3829
 
  friend class ::WinAsm;
3830
 
  friend class ::WinDeclSpecs;
3831
 
  friend class ::WinMemberExplSpec;
3832
 
  friend class ::WinTypeKeywords;
 
4201
  friend class ::ExtGnu;
3833
4202
  friend class ::PragmaOnceUnitState;
3834
4203
  friend class ::PragmaOnce;
3835
 
  friend class ::CCExprResolve;
3836
 
  friend class ::CExprResolve;
 
4204
  friend class ::CMatchSyntax;
 
4205
 
 
4206
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3837
4207
 
3838
4208
  unsigned short _severity;
3839
4209
  const char *_text;
3872
4242
} // namespace Puma
3873
4243
 
3874
4244
#endif /* __error_severity_h__ */
 
4245
 
 
4246
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3875
4247
namespace Puma {
3876
4248
 
3877
4249
 
 
4250
 
 
4251
#line 4252 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3878
4252
} // closed Puma
 
4253
class CCExprResolve;
 
4254
class CExprResolve;
3879
4255
class WinIfExists;
3880
4256
class WinImportHandler;
3881
4257
class WinMacros;
3882
 
class CMatchSyntax;
3883
 
class ExtGnu;
 
4258
class WinAsm;
 
4259
class WinDeclSpecs;
 
4260
class WinMemberExplSpec;
 
4261
class WinTypeKeywords;
 
4262
class WinFriend;
3884
4263
class ExtAC;
3885
4264
class ExtACBuilderCoupling;
3886
4265
class ExtACSyntaxCoupling;
3887
4266
class ExtACTree;
3888
4267
class ExtACKeywords;
3889
 
class WinAsm;
3890
 
class WinDeclSpecs;
3891
 
class WinMemberExplSpec;
3892
 
class WinTypeKeywords;
 
4268
class ExtGnu;
3893
4269
class PragmaOnceUnitState;
3894
4270
class PragmaOnce;
3895
 
class CCExprResolve;
3896
 
class CExprResolve;
 
4271
class CMatchSyntax;
3897
4272
namespace Puma {
3898
 
class ErrorSink {  friend class ::WinIfExists;
 
4273
 
 
4274
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
4275
class ErrorSink {
 
4276
#line 4277 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4277
  friend class ::CCExprResolve;
 
4278
  friend class ::CExprResolve;
 
4279
  friend class ::WinIfExists;
3899
4280
  friend class ::WinImportHandler;
3900
4281
  friend class ::WinMacros;
3901
 
  friend class ::CMatchSyntax;
3902
 
  friend class ::ExtGnu;
 
4282
  friend class ::WinAsm;
 
4283
  friend class ::WinDeclSpecs;
 
4284
  friend class ::WinMemberExplSpec;
 
4285
  friend class ::WinTypeKeywords;
 
4286
  friend class ::WinFriend;
3903
4287
  friend class ::ExtAC;
3904
4288
  friend class ::ExtACBuilderCoupling;
3905
4289
  friend class ::ExtACSyntaxCoupling;
3906
4290
  friend class ::ExtACTree;
3907
4291
  friend class ::ExtACKeywords;
3908
 
  friend class ::WinAsm;
3909
 
  friend class ::WinDeclSpecs;
3910
 
  friend class ::WinMemberExplSpec;
3911
 
  friend class ::WinTypeKeywords;
 
4292
  friend class ::ExtGnu;
3912
4293
  friend class ::PragmaOnceUnitState;
3913
4294
  friend class ::PragmaOnce;
3914
 
  friend class ::CCExprResolve;
3915
 
  friend class ::CExprResolve;
 
4295
  friend class ::CMatchSyntax;
 
4296
 
 
4297
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3916
4298
 
3917
4299
public:
3918
4300
  virtual ~ErrorSink () {}
3936
4318
} // namespace Puma
3937
4319
 
3938
4320
#endif /* __error_sink_h__ */
 
4321
 
 
4322
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
3939
4323
// This file is part of PUMA.
3940
4324
// Copyright (C) 1999-2003  The PUMA developer team.
3941
4325
//                                                                
3960
4344
// Class Config provides evaluation of configuration 
3961
4345
// information from file or command line.
3962
4346
 
 
4347
 
 
4348
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Flags.h"
3963
4349
// This file is part of PUMA.
3964
4350
// Copyright (C) 1999-2003  The PUMA developer team.
3965
4351
//                                                                
3984
4370
namespace Puma {
3985
4371
 
3986
4372
 
 
4373
 
 
4374
#line 4375 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3987
4375
} // closed Puma
 
4376
class CCExprResolve;
 
4377
class CExprResolve;
3988
4378
class WinIfExists;
3989
4379
class WinImportHandler;
3990
4380
class WinMacros;
3991
 
class CMatchSyntax;
3992
 
class ExtGnu;
 
4381
class WinAsm;
 
4382
class WinDeclSpecs;
 
4383
class WinMemberExplSpec;
 
4384
class WinTypeKeywords;
 
4385
class WinFriend;
3993
4386
class ExtAC;
3994
4387
class ExtACBuilderCoupling;
3995
4388
class ExtACSyntaxCoupling;
3996
4389
class ExtACTree;
3997
4390
class ExtACKeywords;
3998
 
class WinAsm;
3999
 
class WinDeclSpecs;
4000
 
class WinMemberExplSpec;
4001
 
class WinTypeKeywords;
 
4391
class ExtGnu;
4002
4392
class PragmaOnceUnitState;
4003
4393
class PragmaOnce;
4004
 
class CCExprResolve;
4005
 
class CExprResolve;
 
4394
class CMatchSyntax;
4006
4395
namespace Puma {
4007
 
class Flags {  friend class ::WinIfExists;
 
4396
 
 
4397
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Flags.h"
 
4398
class Flags {
 
4399
#line 4400 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4400
  friend class ::CCExprResolve;
 
4401
  friend class ::CExprResolve;
 
4402
  friend class ::WinIfExists;
4008
4403
  friend class ::WinImportHandler;
4009
4404
  friend class ::WinMacros;
4010
 
  friend class ::CMatchSyntax;
4011
 
  friend class ::ExtGnu;
 
4405
  friend class ::WinAsm;
 
4406
  friend class ::WinDeclSpecs;
 
4407
  friend class ::WinMemberExplSpec;
 
4408
  friend class ::WinTypeKeywords;
 
4409
  friend class ::WinFriend;
4012
4410
  friend class ::ExtAC;
4013
4411
  friend class ::ExtACBuilderCoupling;
4014
4412
  friend class ::ExtACSyntaxCoupling;
4015
4413
  friend class ::ExtACTree;
4016
4414
  friend class ::ExtACKeywords;
4017
 
  friend class ::WinAsm;
4018
 
  friend class ::WinDeclSpecs;
4019
 
  friend class ::WinMemberExplSpec;
4020
 
  friend class ::WinTypeKeywords;
 
4415
  friend class ::ExtGnu;
4021
4416
  friend class ::PragmaOnceUnitState;
4022
4417
  friend class ::PragmaOnce;
4023
 
  friend class ::CCExprResolve;
4024
 
  friend class ::CExprResolve;
 
4418
  friend class ::CMatchSyntax;
 
4419
 
 
4420
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Flags.h"
4025
4421
 
4026
4422
public:
4027
4423
  enum Flag {
4084
4480
} // namespace Puma
4085
4481
 
4086
4482
#endif /* __Flags_h__ */
 
4483
 
 
4484
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4087
4485
// This file is part of PUMA.
4088
4486
// Copyright (C) 1999-2003  The PUMA developer team.
4089
4487
//                                                                
4105
4503
#ifndef __ConfOption_h__
4106
4504
#define __ConfOption_h__
4107
4505
 
 
4506
 
 
4507
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4108
4508
#include <stdlib.h>
4109
4509
 
4110
4510
namespace Puma {
4111
4511
 
4112
4512
 
 
4513
 
 
4514
#line 4515 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4113
4515
} // closed Puma
 
4516
class CCExprResolve;
 
4517
class CExprResolve;
4114
4518
class WinIfExists;
4115
4519
class WinImportHandler;
4116
4520
class WinMacros;
4117
 
class CMatchSyntax;
4118
 
class ExtGnu;
 
4521
class WinAsm;
 
4522
class WinDeclSpecs;
 
4523
class WinMemberExplSpec;
 
4524
class WinTypeKeywords;
 
4525
class WinFriend;
4119
4526
class ExtAC;
4120
4527
class ExtACBuilderCoupling;
4121
4528
class ExtACSyntaxCoupling;
4122
4529
class ExtACTree;
4123
4530
class ExtACKeywords;
4124
 
class WinAsm;
4125
 
class WinDeclSpecs;
4126
 
class WinMemberExplSpec;
4127
 
class WinTypeKeywords;
 
4531
class ExtGnu;
4128
4532
class PragmaOnceUnitState;
4129
4533
class PragmaOnce;
4130
 
class CCExprResolve;
4131
 
class CExprResolve;
 
4534
class CMatchSyntax;
4132
4535
namespace Puma {
4133
 
class ConfOption {  friend class ::WinIfExists;
 
4536
 
 
4537
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
4538
class ConfOption {
 
4539
#line 4540 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4540
  friend class ::CCExprResolve;
 
4541
  friend class ::CExprResolve;
 
4542
  friend class ::WinIfExists;
4134
4543
  friend class ::WinImportHandler;
4135
4544
  friend class ::WinMacros;
4136
 
  friend class ::CMatchSyntax;
4137
 
  friend class ::ExtGnu;
 
4545
  friend class ::WinAsm;
 
4546
  friend class ::WinDeclSpecs;
 
4547
  friend class ::WinMemberExplSpec;
 
4548
  friend class ::WinTypeKeywords;
 
4549
  friend class ::WinFriend;
4138
4550
  friend class ::ExtAC;
4139
4551
  friend class ::ExtACBuilderCoupling;
4140
4552
  friend class ::ExtACSyntaxCoupling;
4141
4553
  friend class ::ExtACTree;
4142
4554
  friend class ::ExtACKeywords;
4143
 
  friend class ::WinAsm;
4144
 
  friend class ::WinDeclSpecs;
4145
 
  friend class ::WinMemberExplSpec;
4146
 
  friend class ::WinTypeKeywords;
 
4555
  friend class ::ExtGnu;
4147
4556
  friend class ::PragmaOnceUnitState;
4148
4557
  friend class ::PragmaOnce;
4149
 
  friend class ::CCExprResolve;
4150
 
  friend class ::CExprResolve;
 
4558
  friend class ::CMatchSyntax;
 
4559
 
 
4560
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4151
4561
 
4152
4562
  const char *_name;
4153
4563
  Array<const char *> _args;
4192
4602
} // namespace Puma
4193
4603
 
4194
4604
#endif /* __ConfOption_h__ */
 
4605
 
 
4606
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4195
4607
// This file is part of PUMA.
4196
4608
// Copyright (C) 1999-2003  The PUMA developer team.
4197
4609
//                                                                
4218
4630
// The ErrorStream can be reset to it's initial state.
4219
4631
 
4220
4632
#include <sstream>
 
4633
 
 
4634
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4221
4635
using namespace std;
4222
4636
 
4223
4637
namespace Puma {
4224
4638
 
4225
4639
 
 
4640
 
 
4641
#line 4642 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4226
4642
} // closed Puma
 
4643
class CCExprResolve;
 
4644
class CExprResolve;
4227
4645
class WinIfExists;
4228
4646
class WinImportHandler;
4229
4647
class WinMacros;
4230
 
class CMatchSyntax;
4231
 
class ExtGnu;
 
4648
class WinAsm;
 
4649
class WinDeclSpecs;
 
4650
class WinMemberExplSpec;
 
4651
class WinTypeKeywords;
 
4652
class WinFriend;
4232
4653
class ExtAC;
4233
4654
class ExtACBuilderCoupling;
4234
4655
class ExtACSyntaxCoupling;
4235
4656
class ExtACTree;
4236
4657
class ExtACKeywords;
4237
 
class WinAsm;
4238
 
class WinDeclSpecs;
4239
 
class WinMemberExplSpec;
4240
 
class WinTypeKeywords;
 
4658
class ExtGnu;
4241
4659
class PragmaOnceUnitState;
4242
4660
class PragmaOnce;
4243
 
class CCExprResolve;
4244
 
class CExprResolve;
 
4661
class CMatchSyntax;
4245
4662
namespace Puma {
4246
 
class ErrorStream : public ErrorSink {  friend class ::WinIfExists;
 
4663
 
 
4664
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
4665
class ErrorStream : public ErrorSink {
 
4666
#line 4667 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4667
  friend class ::CCExprResolve;
 
4668
  friend class ::CExprResolve;
 
4669
  friend class ::WinIfExists;
4247
4670
  friend class ::WinImportHandler;
4248
4671
  friend class ::WinMacros;
4249
 
  friend class ::CMatchSyntax;
4250
 
  friend class ::ExtGnu;
 
4672
  friend class ::WinAsm;
 
4673
  friend class ::WinDeclSpecs;
 
4674
  friend class ::WinMemberExplSpec;
 
4675
  friend class ::WinTypeKeywords;
 
4676
  friend class ::WinFriend;
4251
4677
  friend class ::ExtAC;
4252
4678
  friend class ::ExtACBuilderCoupling;
4253
4679
  friend class ::ExtACSyntaxCoupling;
4254
4680
  friend class ::ExtACTree;
4255
4681
  friend class ::ExtACKeywords;
4256
 
  friend class ::WinAsm;
4257
 
  friend class ::WinDeclSpecs;
4258
 
  friend class ::WinMemberExplSpec;
4259
 
  friend class ::WinTypeKeywords;
 
4682
  friend class ::ExtGnu;
4260
4683
  friend class ::PragmaOnceUnitState;
4261
4684
  friend class ::PragmaOnce;
4262
 
  friend class ::CCExprResolve;
4263
 
  friend class ::CExprResolve;
 
4685
  friend class ::CMatchSyntax;
 
4686
 
 
4687
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4264
4688
 
4265
4689
  ostream *_ostream;
4266
4690
  ErrorSeverity _max_severity;
4302
4726
} // namespace Puma
4303
4727
 
4304
4728
#endif /* __error_stream_h__ */
 
4729
 
 
4730
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4305
4731
// This file is part of PUMA.
4306
4732
// Copyright (C) 1999-2003  The PUMA developer team.
4307
4733
//                                                                
4323
4749
#ifndef __OptsParser_h__
4324
4750
#define __OptsParser_h__
4325
4751
 
 
4752
 
 
4753
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4326
4754
// This file is part of PUMA.
4327
4755
// Copyright (C) 1999-2003  The PUMA developer team.
4328
4756
//                                                                
4344
4772
#ifndef __SimpleParser_h__
4345
4773
#define __SimpleParser_h__
4346
4774
 
 
4775
 
 
4776
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4347
4777
#include <vector>
4348
4778
using namespace std;
4349
4779
 
4350
4780
namespace Puma {
4351
4781
 
4352
4782
 
 
4783
/** 
 
4784
 * Simple string parser. 
 
4785
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
4786
 */
 
4787
 
 
4788
#line 4789 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4353
4789
} // closed Puma
 
4790
class CCExprResolve;
 
4791
class CExprResolve;
4354
4792
class WinIfExists;
4355
4793
class WinImportHandler;
4356
4794
class WinMacros;
4357
 
class CMatchSyntax;
4358
 
class ExtGnu;
 
4795
class WinAsm;
 
4796
class WinDeclSpecs;
 
4797
class WinMemberExplSpec;
 
4798
class WinTypeKeywords;
 
4799
class WinFriend;
4359
4800
class ExtAC;
4360
4801
class ExtACBuilderCoupling;
4361
4802
class ExtACSyntaxCoupling;
4362
4803
class ExtACTree;
4363
4804
class ExtACKeywords;
4364
 
class WinAsm;
4365
 
class WinDeclSpecs;
4366
 
class WinMemberExplSpec;
4367
 
class WinTypeKeywords;
 
4805
class ExtGnu;
4368
4806
class PragmaOnceUnitState;
4369
4807
class PragmaOnce;
4370
 
class CCExprResolve;
4371
 
class CExprResolve;
 
4808
class CMatchSyntax;
4372
4809
namespace Puma {
4373
 
class SimpleParser {  friend class ::WinIfExists;
 
4810
 
 
4811
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
4812
class SimpleParser {
 
4813
#line 4814 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4814
  friend class ::CCExprResolve;
 
4815
  friend class ::CExprResolve;
 
4816
  friend class ::WinIfExists;
4374
4817
  friend class ::WinImportHandler;
4375
4818
  friend class ::WinMacros;
4376
 
  friend class ::CMatchSyntax;
4377
 
  friend class ::ExtGnu;
 
4819
  friend class ::WinAsm;
 
4820
  friend class ::WinDeclSpecs;
 
4821
  friend class ::WinMemberExplSpec;
 
4822
  friend class ::WinTypeKeywords;
 
4823
  friend class ::WinFriend;
4378
4824
  friend class ::ExtAC;
4379
4825
  friend class ::ExtACBuilderCoupling;
4380
4826
  friend class ::ExtACSyntaxCoupling;
4381
4827
  friend class ::ExtACTree;
4382
4828
  friend class ::ExtACKeywords;
4383
 
  friend class ::WinAsm;
4384
 
  friend class ::WinDeclSpecs;
4385
 
  friend class ::WinMemberExplSpec;
4386
 
  friend class ::WinTypeKeywords;
 
4829
  friend class ::ExtGnu;
4387
4830
  friend class ::PragmaOnceUnitState;
4388
4831
  friend class ::PragmaOnce;
4389
 
  friend class ::CCExprResolve;
4390
 
  friend class ::CExprResolve;
 
4832
  friend class ::CMatchSyntax;
 
4833
 
 
4834
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4391
4835
 
4392
4836
public:
4393
 
  SimpleParser() {}
4394
 
  ~SimpleParser() {}
4395
 
   
4396
 
  static int tokenize (const string &, vector<string> &, 
4397
 
                       const string &delimiters = " ");
4398
 
  static string strip (const string &);
 
4837
  /**
 
4838
   * Remove enclosing double-quotes from a string.
 
4839
   * \param str The string to strip.
 
4840
   * \return String without the enclosing double-quotes.
 
4841
   */
 
4842
  static string strip (const string& str);
 
4843
  /**
 
4844
   * Splits a given string into tokens recognized by the given delimiters.
 
4845
   * \param str The string to split.
 
4846
   * \param tokens A vector for the tokens.
 
4847
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
4848
   * \return Number of recognized tokens.
 
4849
   */
 
4850
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
4851
 
 
4852
private:
 
4853
  /**
 
4854
   * Get the position of the next token.
 
4855
   * \param line The string to tokenize.
 
4856
   * \param delimiters A string with the token delimiters.
 
4857
   * \param pos The current position in the string.
 
4858
   * \param lastPos The last position in the string.
 
4859
   * \return The position of the next token.
 
4860
   */
 
4861
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
4862
  /**
 
4863
   * Get the begin of the next token.
 
4864
   * \param line The string to tokenize.
 
4865
   * \param delimiters A string with the token delimiters.
 
4866
   * \param pos The current position in the string.
 
4867
   * \return The begin of the next token.
 
4868
   */
 
4869
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
4870
  /**
 
4871
   * Get the end of the next token.
 
4872
   * \param line The string to tokenize.
 
4873
   * \param delimiters A string with the token delimiters.
 
4874
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
4875
   * \return The end of the next token.
 
4876
   */
 
4877
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
4399
4878
};
4400
4879
 
4401
4880
 
4402
4881
} // namespace Puma
4403
4882
 
4404
4883
#endif /* __SimpleParser_h__ */
 
4884
 
 
4885
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4405
4886
using namespace std;
4406
4887
 
4407
4888
namespace Puma {
4408
4889
 
4409
4890
 
 
4891
/** \brief The %Options %Parser searches command line parameters for options and
 
4892
 *  handles their option arguments, if applicable.
 
4893
 */
 
4894
 
 
4895
#line 4896 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4410
4896
} // closed Puma
 
4897
class CCExprResolve;
 
4898
class CExprResolve;
4411
4899
class WinIfExists;
4412
4900
class WinImportHandler;
4413
4901
class WinMacros;
4414
 
class CMatchSyntax;
4415
 
class ExtGnu;
 
4902
class WinAsm;
 
4903
class WinDeclSpecs;
 
4904
class WinMemberExplSpec;
 
4905
class WinTypeKeywords;
 
4906
class WinFriend;
4416
4907
class ExtAC;
4417
4908
class ExtACBuilderCoupling;
4418
4909
class ExtACSyntaxCoupling;
4419
4910
class ExtACTree;
4420
4911
class ExtACKeywords;
4421
 
class WinAsm;
4422
 
class WinDeclSpecs;
4423
 
class WinMemberExplSpec;
4424
 
class WinTypeKeywords;
 
4912
class ExtGnu;
4425
4913
class PragmaOnceUnitState;
4426
4914
class PragmaOnce;
4427
 
class CCExprResolve;
4428
 
class CExprResolve;
 
4915
class CMatchSyntax;
4429
4916
namespace Puma {
4430
 
class OptsParser : public SimpleParser {  friend class ::WinIfExists;
 
4917
 
 
4918
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
4919
class OptsParser : public SimpleParser {
 
4920
#line 4921 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
4921
  friend class ::CCExprResolve;
 
4922
  friend class ::CExprResolve;
 
4923
  friend class ::WinIfExists;
4431
4924
  friend class ::WinImportHandler;
4432
4925
  friend class ::WinMacros;
4433
 
  friend class ::CMatchSyntax;
4434
 
  friend class ::ExtGnu;
 
4926
  friend class ::WinAsm;
 
4927
  friend class ::WinDeclSpecs;
 
4928
  friend class ::WinMemberExplSpec;
 
4929
  friend class ::WinTypeKeywords;
 
4930
  friend class ::WinFriend;
4435
4931
  friend class ::ExtAC;
4436
4932
  friend class ::ExtACBuilderCoupling;
4437
4933
  friend class ::ExtACSyntaxCoupling;
4438
4934
  friend class ::ExtACTree;
4439
4935
  friend class ::ExtACKeywords;
4440
 
  friend class ::WinAsm;
4441
 
  friend class ::WinDeclSpecs;
4442
 
  friend class ::WinMemberExplSpec;
4443
 
  friend class ::WinTypeKeywords;
 
4936
  friend class ::ExtGnu;
4444
4937
  friend class ::PragmaOnceUnitState;
4445
4938
  friend class ::PragmaOnce;
4446
 
  friend class ::CCExprResolve;
4447
 
  friend class ::CExprResolve;
4448
 
 
 
4939
  friend class ::CMatchSyntax;
 
4940
 
 
4941
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
4942
 
 
4943
  
 
4944
  
 
4945
  /** \brief Vector holding the commandline parameters. 
 
4946
   *  
 
4947
   *  This vector is filled in the constructor
 
4948
   */
4449
4949
  vector<string> m_argv;
 
4950
 
 
4951
  /** \brief Position of current parameter analyzed by the 
 
4952
   *  options parser.
 
4953
   */
4450
4954
  unsigned int m_curarg;
 
4955
  
 
4956
  /** \brief The increment added to m_curarg used to get to the next 
 
4957
   *  entry of m_argv which shall be analysed.
 
4958
   */
4451
4959
  unsigned int m_tonext;
 
4960
  
 
4961
  /** \brief %Option number of currently processed element of m_argv
 
4962
   */
4452
4963
  int m_number;
 
4964
  
 
4965
  /** \brief Name of current option
 
4966
   */
 
4967
  string m_opt;
4453
4968
 
 
4969
  /** \brief Value of current option argument
 
4970
   */
4454
4971
  string m_arg;
4455
 
  string m_opt;
 
4972
  
4456
4973
   
4457
4974
public:
4458
4975
  
4459
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
4460
 
  
4461
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
4462
 
  
4463
 
  struct Option {  friend class ::WinIfExists;
 
4976
  /** \enum
 
4977
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
4978
   */
 
4979
  enum {
 
4980
     NOARG =-4, /**< %Option has no argument */
 
4981
     ERR = -3, /**< Error when parsing option */
 
4982
     NOOPTION = -2, /**< Command line parameter is not an option */
 
4983
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
4984
     FINISH = 0 /**< All options are handled */
 
4985
  };
 
4986
  
 
4987
  /** \enum
 
4988
   *  Type of argument associated to an option  
 
4989
   */
 
4990
  enum ArgType { 
 
4991
     AT_NONE = 0, /**< %Option receives no argument */
 
4992
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
4993
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
4994
  };
 
4995
  
 
4996
  /** \struct
 
4997
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
4998
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
4999
   */
 
5000
  struct Option {
 
5001
#line 5002 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5002
  friend class ::CCExprResolve;
 
5003
  friend class ::CExprResolve;
 
5004
  friend class ::WinIfExists;
4464
5005
  friend class ::WinImportHandler;
4465
5006
  friend class ::WinMacros;
4466
 
  friend class ::CMatchSyntax;
4467
 
  friend class ::ExtGnu;
 
5007
  friend class ::WinAsm;
 
5008
  friend class ::WinDeclSpecs;
 
5009
  friend class ::WinMemberExplSpec;
 
5010
  friend class ::WinTypeKeywords;
 
5011
  friend class ::WinFriend;
4468
5012
  friend class ::ExtAC;
4469
5013
  friend class ::ExtACBuilderCoupling;
4470
5014
  friend class ::ExtACSyntaxCoupling;
4471
5015
  friend class ::ExtACTree;
4472
5016
  friend class ::ExtACKeywords;
4473
 
  friend class ::WinAsm;
4474
 
  friend class ::WinDeclSpecs;
4475
 
  friend class ::WinMemberExplSpec;
4476
 
  friend class ::WinTypeKeywords;
 
5017
  friend class ::ExtGnu;
4477
5018
  friend class ::PragmaOnceUnitState;
4478
5019
  friend class ::PragmaOnce;
4479
 
  friend class ::CCExprResolve;
4480
 
  friend class ::CExprResolve;
4481
 
 
4482
 
    int number;
4483
 
    char key; 
4484
 
    const char *name;
4485
 
    const char *desc;
4486
 
    ArgType args;
 
5020
  friend class ::CMatchSyntax;
 
5021
 
 
5022
#line 91 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
5023
 
 
5024
    int number; /**< Number associated with this option */
 
5025
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
5026
    const char *longName; /**< Long namen of this option */
 
5027
    const char *desc; /**< Description of this option **/ 
 
5028
    ArgType argType; /**< Type of argument for this option */
4487
5029
  };
4488
5030
 
4489
5031
private:
 
5032
  /** Pointer to array of available options. This value is set to the value of the 
 
5033
   * parameter passed to the constructor OptsParser::OptsParser()
 
5034
   */
4490
5035
  const Option *m_opts;
4491
5036
   
4492
5037
public:
4493
 
  OptsParser (int, char **, const Option *);
4494
 
  OptsParser (const string &, const Option *);
 
5038
  /** \brief Constructor of OptsParser
 
5039
   *  
 
5040
   *  \param argc Number of parameters to be analyzed
 
5041
   *  \param argv Parameters to be analyzed
 
5042
   *  \param opts Pointer to array of options which shall be
 
5043
   *              recognized by the options parser
 
5044
   *
 
5045
   */
 
5046
  OptsParser (int argc, char **argv, const Option *opts);
 
5047
  
 
5048
  /** \brief Constructor of OptsParser
 
5049
   *  
 
5050
   *  \param line Reference to string with parameters to analyse
 
5051
   *              The paramaters are extracted from the string by splitting it up 
 
5052
   *              into tokens at:
 
5053
   *               - space character
 
5054
   *               - tabs 
 
5055
   *               - newline
 
5056
   *               - carriage return
 
5057
   *  \param opts Pointer to array of options which shall be 
 
5058
   *              recognized by the options parser
 
5059
   */
 
5060
  OptsParser (const string &line, const Option *);
4495
5061
 
4496
 
  int getCurrentArgNum () const;
4497
 
  int getNextArgNum () const;
 
5062
  
 
5063
  /** Get next parameter without modification. 
 
5064
   * No option parsing is done
 
5065
   *
 
5066
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
5067
   */
 
5068
  int getRawOption ();
 
5069
  
 
5070
  /** \brief Get next option
 
5071
   *
 
5072
   * This function processes the next parameter passed to the constructor 
 
5073
   * OptsParser::OptsParser(). 
 
5074
   * That is, search for options and eventually process
 
5075
   * option and option arguement. 
 
5076
   *
 
5077
   * \return Number of option recognized by the options parser or
 
5078
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
5079
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
5080
   *
 
5081
   */
4498
5082
  int getOption ();
 
5083
  
 
5084
  /** \brief Get result of last processed parameter
 
5085
   *
 
5086
   *  The number returned by this function is identical to the number 
 
5087
   *  returned by the last call of OptsParser::getOption
 
5088
   *   
 
5089
   * \return Number of option recognized by the options parser or
 
5090
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
5091
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
5092
   *
 
5093
   */
4499
5094
  int getResult () const;
4500
5095
  
 
5096
  /** \brief Get option argument of last processed parameter
 
5097
   *
 
5098
   *  This function returns the argument of the option processed during 
 
5099
   *  OptsParser::getOption. If the option does not provide any argument
 
5100
   *  the string will be empty.
 
5101
   *
 
5102
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
5103
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
5104
   *  which is no option, of course.
 
5105
   *
 
5106
   *  \return Argument of last processed parameter
 
5107
   */
4501
5108
  const string &getArgument () const;
 
5109
  
 
5110
  /** \brief Get option name of last processed parameter
 
5111
   *
 
5112
   *  If the last processed parameter did not contain an option the string 
 
5113
   *  returned by this function is empty.
 
5114
   *
 
5115
   *  \return Name of last processed parameter
 
5116
   *
 
5117
   */
4502
5118
  const string &getOptionName () const;
 
5119
  
 
5120
  /** \brief Get position of current argument
 
5121
   *
 
5122
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
5123
   *
 
5124
   */
 
5125
  int getCurrentArgNum () const;
 
5126
  
 
5127
  /** \brief Get position of next argument
 
5128
   *
 
5129
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
5130
   *
 
5131
   */
 
5132
  int getNextArgNum () const;
4503
5133
 
4504
 
  bool revokeArgument();
4505
 
   
4506
5134
private:
4507
 
  int  getShortOption (const string &);
4508
 
  int  getLongOption  (const string &);
4509
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
 
5135
  /** Search for an option in m_argv at position m_curarg
 
5136
   *
 
5137
   *  \param arg Currently processed parameter 
 
5138
   */
 
5139
  const Option*  findOption(const string &arg, bool isLong);
 
5140
  
 
5141
  /** Process an option found by OptsParser::findOption(). 
 
5142
   */
 
5143
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
4510
5144
};
4511
5145
 
4512
5146
 
4513
5147
} // namespace Puma
4514
5148
 
4515
5149
#endif /* __OptsParser_h__ */
 
5150
 
 
5151
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4516
5152
using namespace std;
4517
5153
 
4518
5154
namespace Puma {
4519
5155
 
4520
5156
 
 
5157
 
 
5158
#line 5159 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4521
5159
} // closed Puma
 
5160
class CCExprResolve;
 
5161
class CExprResolve;
4522
5162
class WinIfExists;
4523
5163
class WinImportHandler;
4524
5164
class WinMacros;
4525
 
class CMatchSyntax;
4526
 
class ExtGnu;
 
5165
class WinAsm;
 
5166
class WinDeclSpecs;
 
5167
class WinMemberExplSpec;
 
5168
class WinTypeKeywords;
 
5169
class WinFriend;
4527
5170
class ExtAC;
4528
5171
class ExtACBuilderCoupling;
4529
5172
class ExtACSyntaxCoupling;
4530
5173
class ExtACTree;
4531
5174
class ExtACKeywords;
4532
 
class WinAsm;
4533
 
class WinDeclSpecs;
4534
 
class WinMemberExplSpec;
4535
 
class WinTypeKeywords;
 
5175
class ExtGnu;
4536
5176
class PragmaOnceUnitState;
4537
5177
class PragmaOnce;
4538
 
class CCExprResolve;
4539
 
class CExprResolve;
 
5178
class CMatchSyntax;
4540
5179
namespace Puma {
4541
 
class Config {  friend class ::WinIfExists;
 
5180
 
 
5181
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
 
5182
class Config {
 
5183
#line 5184 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5184
  friend class ::CCExprResolve;
 
5185
  friend class ::CExprResolve;
 
5186
  friend class ::WinIfExists;
4542
5187
  friend class ::WinImportHandler;
4543
5188
  friend class ::WinMacros;
4544
 
  friend class ::CMatchSyntax;
4545
 
  friend class ::ExtGnu;
 
5189
  friend class ::WinAsm;
 
5190
  friend class ::WinDeclSpecs;
 
5191
  friend class ::WinMemberExplSpec;
 
5192
  friend class ::WinTypeKeywords;
 
5193
  friend class ::WinFriend;
4546
5194
  friend class ::ExtAC;
4547
5195
  friend class ::ExtACBuilderCoupling;
4548
5196
  friend class ::ExtACSyntaxCoupling;
4549
5197
  friend class ::ExtACTree;
4550
5198
  friend class ::ExtACKeywords;
4551
 
  friend class ::WinAsm;
4552
 
  friend class ::WinDeclSpecs;
4553
 
  friend class ::WinMemberExplSpec;
4554
 
  friend class ::WinTypeKeywords;
 
5199
  friend class ::ExtGnu;
4555
5200
  friend class ::PragmaOnceUnitState;
4556
5201
  friend class ::PragmaOnce;
4557
 
  friend class ::CCExprResolve;
4558
 
  friend class ::CExprResolve;
 
5202
  friend class ::CMatchSyntax;
 
5203
 
 
5204
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4559
5205
 
4560
5206
  Flags _flags;
4561
5207
  ErrorStream &_err;
4615
5261
private:
4616
5262
  bool Valid (const char *, const char * = (const char *)0) const;
4617
5263
 
4618
 
  bool Process (OptsParser&);
 
5264
  bool Process (OptsParser&, bool unescape = false);
4619
5265
  bool ProcessAssert (const string&);
4620
5266
  bool ProcessDefine (const string&);
4621
5267
  bool ProcessLockMacro (const string&);
4624
5270
  bool ProcessArgument (const string&,const string&);
4625
5271
  bool ProcessPathArgument (const string&,const string&);
4626
5272
 
 
5273
  string Unescape(const string&);
4627
5274
};
4628
5275
 
4629
5276
inline Config::Config (ErrorStream &e) : _err (e)
4664
5311
} // namespace Puma
4665
5312
 
4666
5313
#endif /* __Config_h__ */
 
5314
 
 
5315
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4667
5316
namespace Puma {
4668
5317
 
4669
5318
 
4670
5319
class Token;
4671
5320
 
 
5321
 
 
5322
#line 5323 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4672
5323
} // closed Puma
 
5324
class CCExprResolve;
 
5325
class CExprResolve;
4673
5326
class WinIfExists;
4674
5327
class WinImportHandler;
4675
5328
class WinMacros;
4676
 
class CMatchSyntax;
4677
 
class ExtGnu;
 
5329
class WinAsm;
 
5330
class WinDeclSpecs;
 
5331
class WinMemberExplSpec;
 
5332
class WinTypeKeywords;
 
5333
class WinFriend;
4678
5334
class ExtAC;
4679
5335
class ExtACBuilderCoupling;
4680
5336
class ExtACSyntaxCoupling;
4681
5337
class ExtACTree;
4682
5338
class ExtACKeywords;
4683
 
class WinAsm;
4684
 
class WinDeclSpecs;
4685
 
class WinMemberExplSpec;
4686
 
class WinTypeKeywords;
 
5339
class ExtGnu;
4687
5340
class PragmaOnceUnitState;
4688
5341
class PragmaOnce;
4689
 
class CCExprResolve;
4690
 
class CExprResolve;
 
5342
class CMatchSyntax;
4691
5343
namespace Puma {
4692
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
5344
 
 
5345
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5346
class CScanner : public CRecognizer, public Tokenizer {
 
5347
#line 5348 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5348
  friend class ::CCExprResolve;
 
5349
  friend class ::CExprResolve;
 
5350
  friend class ::WinIfExists;
4693
5351
  friend class ::WinImportHandler;
4694
5352
  friend class ::WinMacros;
4695
 
  friend class ::CMatchSyntax;
4696
 
  friend class ::ExtGnu;
 
5353
  friend class ::WinAsm;
 
5354
  friend class ::WinDeclSpecs;
 
5355
  friend class ::WinMemberExplSpec;
 
5356
  friend class ::WinTypeKeywords;
 
5357
  friend class ::WinFriend;
4697
5358
  friend class ::ExtAC;
4698
5359
  friend class ::ExtACBuilderCoupling;
4699
5360
  friend class ::ExtACSyntaxCoupling;
4700
5361
  friend class ::ExtACTree;
4701
5362
  friend class ::ExtACKeywords;
4702
 
  friend class ::WinAsm;
4703
 
  friend class ::WinDeclSpecs;
4704
 
  friend class ::WinMemberExplSpec;
4705
 
  friend class ::WinTypeKeywords;
 
5363
  friend class ::ExtGnu;
4706
5364
  friend class ::PragmaOnceUnitState;
4707
5365
  friend class ::PragmaOnce;
4708
 
  friend class ::CCExprResolve;
4709
 
  friend class ::CExprResolve;
 
5366
  friend class ::CMatchSyntax;
 
5367
 
 
5368
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4710
5369
 
4711
5370
  Location loc;
4712
5371
  ErrorSink &err;
4720
5379
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
4721
5380
  virtual ~CScanner () {}
4722
5381
  void configure (const Config &);
4723
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
5382
  
 
5383
#line 5384 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5384
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
5385
 
 
5386
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4724
5387
void fill_unit (Source &in, Unit &unit);
4725
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
5388
  
 
5389
#line 5390 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5390
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
5391
 
 
5392
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4726
5393
void fill_unit (const char *in, Unit &unit);
4727
5394
};
4728
5395
 
4730
5397
} // namespace Puma
4731
5398
 
4732
5399
#endif /* __c_scanner_h__ */
 
5400
 
 
5401
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FdSource.h"
4733
5402
// This file is part of PUMA.
4734
5403
// Copyright (C) 1999-2003  The PUMA developer team.
4735
5404
//                                                                
4751
5420
#ifndef __fd_source_h__
4752
5421
#define __fd_source_h__
4753
5422
 
 
5423
 
 
5424
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FdSource.h"
4754
5425
namespace Puma {
4755
5426
 
4756
5427
 
 
5428
 
 
5429
#line 5430 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4757
5430
} // closed Puma
 
5431
class CCExprResolve;
 
5432
class CExprResolve;
4758
5433
class WinIfExists;
4759
5434
class WinImportHandler;
4760
5435
class WinMacros;
4761
 
class CMatchSyntax;
4762
 
class ExtGnu;
 
5436
class WinAsm;
 
5437
class WinDeclSpecs;
 
5438
class WinMemberExplSpec;
 
5439
class WinTypeKeywords;
 
5440
class WinFriend;
4763
5441
class ExtAC;
4764
5442
class ExtACBuilderCoupling;
4765
5443
class ExtACSyntaxCoupling;
4766
5444
class ExtACTree;
4767
5445
class ExtACKeywords;
4768
 
class WinAsm;
4769
 
class WinDeclSpecs;
4770
 
class WinMemberExplSpec;
4771
 
class WinTypeKeywords;
 
5446
class ExtGnu;
4772
5447
class PragmaOnceUnitState;
4773
5448
class PragmaOnce;
4774
 
class CCExprResolve;
4775
 
class CExprResolve;
 
5449
class CMatchSyntax;
4776
5450
namespace Puma {
4777
 
class FdSource : public Source {  friend class ::WinIfExists;
 
5451
 
 
5452
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FdSource.h"
 
5453
class FdSource : public Source {
 
5454
#line 5455 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5455
  friend class ::CCExprResolve;
 
5456
  friend class ::CExprResolve;
 
5457
  friend class ::WinIfExists;
4778
5458
  friend class ::WinImportHandler;
4779
5459
  friend class ::WinMacros;
4780
 
  friend class ::CMatchSyntax;
4781
 
  friend class ::ExtGnu;
 
5460
  friend class ::WinAsm;
 
5461
  friend class ::WinDeclSpecs;
 
5462
  friend class ::WinMemberExplSpec;
 
5463
  friend class ::WinTypeKeywords;
 
5464
  friend class ::WinFriend;
4782
5465
  friend class ::ExtAC;
4783
5466
  friend class ::ExtACBuilderCoupling;
4784
5467
  friend class ::ExtACSyntaxCoupling;
4785
5468
  friend class ::ExtACTree;
4786
5469
  friend class ::ExtACKeywords;
4787
 
  friend class ::WinAsm;
4788
 
  friend class ::WinDeclSpecs;
4789
 
  friend class ::WinMemberExplSpec;
4790
 
  friend class ::WinTypeKeywords;
 
5470
  friend class ::ExtGnu;
4791
5471
  friend class ::PragmaOnceUnitState;
4792
5472
  friend class ::PragmaOnce;
4793
 
  friend class ::CCExprResolve;
4794
 
  friend class ::CExprResolve;
 
5473
  friend class ::CMatchSyntax;
 
5474
 
 
5475
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FdSource.h"
4795
5476
 
4796
5477
  int _fd;
4797
5478
 
4816
5497
} // namespace Puma
4817
5498
 
4818
5499
#endif /* __fd_source_h__ */
 
5500
 
 
5501
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CTokens.h"
4819
5502
// This file is part of PUMA.
4820
5503
// Copyright (C) 1999-2003  The PUMA developer team.
4821
5504
//                                                                
4846
5529
  TOK_ZERO_VAL,
4847
5530
  TOK_INT_VAL,
4848
5531
  TOK_FLT_VAL,
 
5532
  TOK_STRING_VAL,
 
5533
  TOK_CHAR_VAL,
4849
5534
  TOK_COMMA,
4850
5535
  TOK_ASSIGN,
4851
5536
  TOK_QUESTION,
5028
5713
  TOK_LAST_AC = TOK_UNKNOWN_T,
5029
5714
  
5030
5715
  // further [A](C|C++) token
5031
 
  TOK_STRING_VAL,
5032
 
  TOK_CHAR_VAL,
5033
5716
  TOK_ID,
5034
5717
 
5035
5718
  // These two always have to be the ** last ** token listed here!!!
5041
5724
} // namespace Puma
5042
5725
 
5043
5726
#endif /* __C_TOKENS__ */
 
5727
 
 
5728
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParser.h"
5044
5729
#define TOK_PRE_ASSERT                  1
5045
5730
#define TOK_PRE_COMMA                   2
5046
5731
#define TOK_PRE_DEFINE                  3
5063
5748
#define TOK_PRE_UNASSERT               20
5064
5749
#define TOK_PRE_UNDEF                  21
5065
5750
#define TOK_PRE_WARNING                22
 
5751
 
 
5752
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
5753
 
 
5754
#line 5755 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5755
 
 
5756
#ifndef __ac_fwd_PragmaOnceUnitState__
 
5757
#define __ac_fwd_PragmaOnceUnitState__
 
5758
class PragmaOnceUnitState;
 
5759
namespace AC {
 
5760
  template <class JoinPoint>
 
5761
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
5762
  template <class JoinPoint>
 
5763
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
5764
}
 
5765
#endif
 
5766
 
 
5767
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
5768
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
5769
#endif
 
5770
 
 
5771
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5066
5772
// This file is part of PUMA.
5067
5773
// Copyright (C) 1999-2003  The PUMA developer team.
5068
5774
//                                                                
5086
5792
 
5087
5793
// Class UnitManager helps you to have control of all units built.
5088
5794
 
 
5795
 
 
5796
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5089
5797
#include <list>
5090
5798
#include <map>
 
5799
 
 
5800
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5091
5801
using namespace std;
 
5802
 
 
5803
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5092
5804
namespace Puma {
5093
5805
 
5094
5806
 
5096
5808
class Source;
5097
5809
class Tokenizer;
5098
5810
 
 
5811
 
 
5812
#line 5813 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5099
5813
} // closed Puma
 
5814
class CCExprResolve;
 
5815
class CExprResolve;
5100
5816
class WinIfExists;
5101
5817
class WinImportHandler;
5102
5818
class WinMacros;
5103
 
class CMatchSyntax;
5104
 
class ExtGnu;
 
5819
class WinAsm;
 
5820
class WinDeclSpecs;
 
5821
class WinMemberExplSpec;
 
5822
class WinTypeKeywords;
 
5823
class WinFriend;
5105
5824
class ExtAC;
5106
5825
class ExtACBuilderCoupling;
5107
5826
class ExtACSyntaxCoupling;
5108
5827
class ExtACTree;
5109
5828
class ExtACKeywords;
5110
 
class WinAsm;
5111
 
class WinDeclSpecs;
5112
 
class WinMemberExplSpec;
5113
 
class WinTypeKeywords;
 
5829
class ExtGnu;
5114
5830
class PragmaOnceUnitState;
5115
5831
class PragmaOnce;
5116
 
class CCExprResolve;
5117
 
class CExprResolve;
 
5832
class CMatchSyntax;
5118
5833
namespace Puma {
5119
 
class UnitManager {  friend class ::WinIfExists;
 
5834
 
 
5835
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
5836
class UnitManager {
 
5837
#line 5838 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5838
  friend class ::CCExprResolve;
 
5839
  friend class ::CExprResolve;
 
5840
  friend class ::WinIfExists;
5120
5841
  friend class ::WinImportHandler;
5121
5842
  friend class ::WinMacros;
5122
 
  friend class ::CMatchSyntax;
5123
 
  friend class ::ExtGnu;
 
5843
  friend class ::WinAsm;
 
5844
  friend class ::WinDeclSpecs;
 
5845
  friend class ::WinMemberExplSpec;
 
5846
  friend class ::WinTypeKeywords;
 
5847
  friend class ::WinFriend;
5124
5848
  friend class ::ExtAC;
5125
5849
  friend class ::ExtACBuilderCoupling;
5126
5850
  friend class ::ExtACSyntaxCoupling;
5127
5851
  friend class ::ExtACTree;
5128
5852
  friend class ::ExtACKeywords;
5129
 
  friend class ::WinAsm;
5130
 
  friend class ::WinDeclSpecs;
5131
 
  friend class ::WinMemberExplSpec;
5132
 
  friend class ::WinTypeKeywords;
 
5853
  friend class ::ExtGnu;
5133
5854
  friend class ::PragmaOnceUnitState;
5134
5855
  friend class ::PragmaOnce;
5135
 
  friend class ::CCExprResolve;
5136
 
  friend class ::CExprResolve;
 
5856
  friend class ::CMatchSyntax;
 
5857
 
 
5858
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5137
5859
 
5138
5860
public:
5139
5861
  typedef map<string, Unit*> UMap;
5186
5908
      
5187
5909
  // Initialize the unit manager and the managed 
5188
5910
  // units for the next parse process.
5189
 
  void init ();
 
5911
  
 
5912
#line 5913 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
5913
public: __attribute__((always_inline)) inline void __exec_old_init();
 
5914
 
 
5915
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
5916
void init ();
5190
5917
};
5191
5918
 
5192
5919
 
5193
5920
} // namespace Puma
5194
5921
 
5195
5922
#endif /* __UnitManager__ */
 
5923
 
 
5924
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
5196
5925
// This file is part of PUMA.
5197
5926
// Copyright (C) 1999-2003  The PUMA developer team.
5198
5927
//                                                                
5221
5950
#include <set>
5222
5951
using std::set;
5223
5952
 
 
5953
 
 
5954
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
5224
5955
// This file is part of PUMA.
5225
5956
// Copyright (C) 1999-2003  The PUMA developer team.
5226
5957
//                                                                
5244
5975
 
5245
5976
// The macro manager manages all defined macros.
5246
5977
 
 
5978
 
 
5979
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
5247
5980
// This file is part of PUMA.
5248
5981
// Copyright (C) 1999-2003  The PUMA developer team.
5249
5982
//                                                                
5271
6004
// is called a function-like macro. In addition it consists of a list 
5272
6005
// of arguments.
5273
6006
 
 
6007
 
 
6008
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
5274
6009
namespace Puma {
5275
6010
 
5276
6011
 
5277
6012
class PreTree;
5278
6013
class CScanner;
5279
6014
 
 
6015
 
 
6016
#line 6017 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5280
6017
} // closed Puma
 
6018
class CCExprResolve;
 
6019
class CExprResolve;
5281
6020
class WinIfExists;
5282
6021
class WinImportHandler;
5283
6022
class WinMacros;
5284
 
class CMatchSyntax;
5285
 
class ExtGnu;
 
6023
class WinAsm;
 
6024
class WinDeclSpecs;
 
6025
class WinMemberExplSpec;
 
6026
class WinTypeKeywords;
 
6027
class WinFriend;
5286
6028
class ExtAC;
5287
6029
class ExtACBuilderCoupling;
5288
6030
class ExtACSyntaxCoupling;
5289
6031
class ExtACTree;
5290
6032
class ExtACKeywords;
5291
 
class WinAsm;
5292
 
class WinDeclSpecs;
5293
 
class WinMemberExplSpec;
5294
 
class WinTypeKeywords;
 
6033
class ExtGnu;
5295
6034
class PragmaOnceUnitState;
5296
6035
class PragmaOnce;
5297
 
class CCExprResolve;
5298
 
class CExprResolve;
 
6036
class CMatchSyntax;
5299
6037
namespace Puma {
5300
 
class PreMacro : public Chain {  friend class ::WinIfExists;
 
6038
 
 
6039
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
6040
class PreMacro : public Chain {
 
6041
#line 6042 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6042
  friend class ::CCExprResolve;
 
6043
  friend class ::CExprResolve;
 
6044
  friend class ::WinIfExists;
5301
6045
  friend class ::WinImportHandler;
5302
6046
  friend class ::WinMacros;
5303
 
  friend class ::CMatchSyntax;
5304
 
  friend class ::ExtGnu;
 
6047
  friend class ::WinAsm;
 
6048
  friend class ::WinDeclSpecs;
 
6049
  friend class ::WinMemberExplSpec;
 
6050
  friend class ::WinTypeKeywords;
 
6051
  friend class ::WinFriend;
5305
6052
  friend class ::ExtAC;
5306
6053
  friend class ::ExtACBuilderCoupling;
5307
6054
  friend class ::ExtACSyntaxCoupling;
5308
6055
  friend class ::ExtACTree;
5309
6056
  friend class ::ExtACKeywords;
5310
 
  friend class ::WinAsm;
5311
 
  friend class ::WinDeclSpecs;
5312
 
  friend class ::WinMemberExplSpec;
5313
 
  friend class ::WinTypeKeywords;
 
6057
  friend class ::ExtGnu;
5314
6058
  friend class ::PragmaOnceUnitState;
5315
6059
  friend class ::PragmaOnce;
5316
 
  friend class ::CCExprResolve;
5317
 
  friend class ::CExprResolve;
 
6060
  friend class ::CMatchSyntax;
 
6061
 
 
6062
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
5318
6063
 
5319
6064
public:
5320
6065
  typedef Array<const char *> MacroArgs;
5381
6126
} // namespace Puma
5382
6127
 
5383
6128
#endif /* __pre_macro__ */
 
6129
 
 
6130
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
5384
6131
using namespace std;
5385
6132
 
5386
6133
#ifdef __puma
5394
6141
 
5395
6142
class ErrorStream;
5396
6143
 
 
6144
 
 
6145
#line 6146 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5397
6146
} // closed Puma
 
6147
class CCExprResolve;
 
6148
class CExprResolve;
5398
6149
class WinIfExists;
5399
6150
class WinImportHandler;
5400
6151
class WinMacros;
5401
 
class CMatchSyntax;
5402
 
class ExtGnu;
 
6152
class WinAsm;
 
6153
class WinDeclSpecs;
 
6154
class WinMemberExplSpec;
 
6155
class WinTypeKeywords;
 
6156
class WinFriend;
5403
6157
class ExtAC;
5404
6158
class ExtACBuilderCoupling;
5405
6159
class ExtACSyntaxCoupling;
5406
6160
class ExtACTree;
5407
6161
class ExtACKeywords;
5408
 
class WinAsm;
5409
 
class WinDeclSpecs;
5410
 
class WinMemberExplSpec;
5411
 
class WinTypeKeywords;
 
6162
class ExtGnu;
5412
6163
class PragmaOnceUnitState;
5413
6164
class PragmaOnce;
5414
 
class CCExprResolve;
5415
 
class CExprResolve;
 
6165
class CMatchSyntax;
5416
6166
namespace Puma {
5417
 
class PreMacroManager {  friend class ::WinIfExists;
 
6167
 
 
6168
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
6169
class PreMacroManager {
 
6170
#line 6171 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6171
  friend class ::CCExprResolve;
 
6172
  friend class ::CExprResolve;
 
6173
  friend class ::WinIfExists;
5418
6174
  friend class ::WinImportHandler;
5419
6175
  friend class ::WinMacros;
5420
 
  friend class ::CMatchSyntax;
5421
 
  friend class ::ExtGnu;
 
6176
  friend class ::WinAsm;
 
6177
  friend class ::WinDeclSpecs;
 
6178
  friend class ::WinMemberExplSpec;
 
6179
  friend class ::WinTypeKeywords;
 
6180
  friend class ::WinFriend;
5422
6181
  friend class ::ExtAC;
5423
6182
  friend class ::ExtACBuilderCoupling;
5424
6183
  friend class ::ExtACSyntaxCoupling;
5425
6184
  friend class ::ExtACTree;
5426
6185
  friend class ::ExtACKeywords;
5427
 
  friend class ::WinAsm;
5428
 
  friend class ::WinDeclSpecs;
5429
 
  friend class ::WinMemberExplSpec;
5430
 
  friend class ::WinTypeKeywords;
 
6186
  friend class ::ExtGnu;
5431
6187
  friend class ::PragmaOnceUnitState;
5432
6188
  friend class ::PragmaOnce;
5433
 
  friend class ::CCExprResolve;
5434
 
  friend class ::CExprResolve;
 
6189
  friend class ::CMatchSyntax;
 
6190
 
 
6191
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
5435
6192
 
5436
6193
  PreMacro *_Line;
5437
6194
  PreMacro *_Date;
5480
6237
} // namespace Puma
5481
6238
 
5482
6239
#endif /* __pre_macro_manager__ */
 
6240
 
 
6241
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
5483
6242
namespace Puma {
5484
6243
 
5485
6244
 
5488
6247
class PreMacro;
5489
6248
class TokenStream;
5490
6249
 
 
6250
 
 
6251
#line 6252 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5491
6252
} // closed Puma
 
6253
class CCExprResolve;
 
6254
class CExprResolve;
5492
6255
class WinIfExists;
5493
6256
class WinImportHandler;
5494
6257
class WinMacros;
5495
 
class CMatchSyntax;
5496
 
class ExtGnu;
 
6258
class WinAsm;
 
6259
class WinDeclSpecs;
 
6260
class WinMemberExplSpec;
 
6261
class WinTypeKeywords;
 
6262
class WinFriend;
5497
6263
class ExtAC;
5498
6264
class ExtACBuilderCoupling;
5499
6265
class ExtACSyntaxCoupling;
5500
6266
class ExtACTree;
5501
6267
class ExtACKeywords;
5502
 
class WinAsm;
5503
 
class WinDeclSpecs;
5504
 
class WinMemberExplSpec;
5505
 
class WinTypeKeywords;
 
6268
class ExtGnu;
5506
6269
class PragmaOnceUnitState;
5507
6270
class PragmaOnce;
5508
 
class CCExprResolve;
5509
 
class CExprResolve;
 
6271
class CMatchSyntax;
5510
6272
namespace Puma {
5511
 
class PreParserState {  friend class ::WinIfExists;
 
6273
 
 
6274
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
 
6275
class PreParserState {
 
6276
#line 6277 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6277
  friend class ::CCExprResolve;
 
6278
  friend class ::CExprResolve;
 
6279
  friend class ::WinIfExists;
5512
6280
  friend class ::WinImportHandler;
5513
6281
  friend class ::WinMacros;
5514
 
  friend class ::CMatchSyntax;
5515
 
  friend class ::ExtGnu;
 
6282
  friend class ::WinAsm;
 
6283
  friend class ::WinDeclSpecs;
 
6284
  friend class ::WinMemberExplSpec;
 
6285
  friend class ::WinTypeKeywords;
 
6286
  friend class ::WinFriend;
5516
6287
  friend class ::ExtAC;
5517
6288
  friend class ::ExtACBuilderCoupling;
5518
6289
  friend class ::ExtACSyntaxCoupling;
5519
6290
  friend class ::ExtACTree;
5520
6291
  friend class ::ExtACKeywords;
5521
 
  friend class ::WinAsm;
5522
 
  friend class ::WinDeclSpecs;
5523
 
  friend class ::WinMemberExplSpec;
5524
 
  friend class ::WinTypeKeywords;
 
6292
  friend class ::ExtGnu;
5525
6293
  friend class ::PragmaOnceUnitState;
5526
6294
  friend class ::PragmaOnce;
5527
 
  friend class ::CCExprResolve;
5528
 
  friend class ::CExprResolve;
 
6295
  friend class ::CMatchSyntax;
 
6296
 
 
6297
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
5529
6298
 
5530
6299
  // some constant strings
5531
6300
  DString _Line, _File, _Date, _Time, _IncLevel;
5579
6348
} // namespace Puma
5580
6349
 
5581
6350
#endif /* __pre_parser_state__ */
 
6351
 
 
6352
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
5582
6353
// This file is part of PUMA.
5583
6354
// Copyright (C) 1999-2003  The PUMA developer team.
5584
6355
//                                                                
5603
6374
// Preprocessor class to handle includes.
5604
6375
 
5605
6376
 
 
6377
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6378
 
 
6379
#line 6380 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6380
 
 
6381
#ifndef __ac_fwd_PragmaOnce__
 
6382
#define __ac_fwd_PragmaOnce__
 
6383
class PragmaOnce;
 
6384
namespace AC {
 
6385
  template <class JoinPoint>
 
6386
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
6387
  template <class JoinPoint>
 
6388
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
6389
  template <class JoinPoint>
 
6390
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
6391
  template <class JoinPoint>
 
6392
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
6393
}
 
6394
#endif
 
6395
 
 
6396
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6397
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6398
#endif
 
6399
 
 
6400
#ifndef __ac_fwd_WinMacros__
 
6401
#define __ac_fwd_WinMacros__
 
6402
class WinMacros;
 
6403
namespace AC {
 
6404
  template <class JoinPoint>
 
6405
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
 
6406
}
 
6407
#endif
 
6408
 
 
6409
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
6410
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
6411
#endif
 
6412
 
5606
6413
#ifndef __ac_fwd_WinIfExists__
5607
6414
#define __ac_fwd_WinIfExists__
5608
6415
class WinIfExists;
5609
6416
namespace AC {
5610
6417
  template <class JoinPoint>
5611
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
 
6418
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
5612
6419
}
5613
6420
#endif
5614
6421
 
5615
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
5616
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
6422
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
6423
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
5617
6424
#endif
5618
6425
 
5619
6426
#ifndef __ac_fwd_WinImportHandler__
5620
6427
#define __ac_fwd_WinImportHandler__
5621
6428
class WinImportHandler;
5622
6429
namespace AC {
5623
 
  template <class JoinPoint, class Binding>
5624
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
5625
 
}
5626
 
#endif
5627
 
 
5628
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5629
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5630
 
#endif
5631
 
 
5632
 
#ifndef __ac_fwd_PragmaOnce__
5633
 
#define __ac_fwd_PragmaOnce__
5634
 
class PragmaOnce;
5635
 
namespace AC {
5636
 
  template <class JoinPoint>
5637
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
5638
 
  template <class JoinPoint>
5639
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
5640
 
  template <class JoinPoint, class Binding>
5641
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
5642
 
  template <class JoinPoint>
5643
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
5644
 
}
5645
 
#endif
5646
 
 
5647
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
5648
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
5649
 
#endif
5650
 
 
5651
 
#ifndef __ac_fwd_WinMacros__
5652
 
#define __ac_fwd_WinMacros__
5653
 
class WinMacros;
5654
 
namespace AC {
5655
 
  template <class JoinPoint, class Binding>
5656
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
5657
 
}
5658
 
#endif
5659
 
 
5660
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
5661
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
5662
 
#endif
 
6430
  template <class JoinPoint>
 
6431
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
 
6432
}
 
6433
#endif
 
6434
 
 
6435
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
6436
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
6437
#endif
 
6438
 
 
6439
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
5663
6440
// This file is part of PUMA.
5664
6441
// Copyright (C) 1999-2003  The PUMA developer team.
5665
6442
//                                                                
5678
6455
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
5679
6456
// MA  02111-1307  USA                                            
5680
6457
 
5681
 
#ifndef __WinIfExists__
5682
 
#define __WinIfExists__
5683
 
 
5684
 
/********************************************************/
5685
 
/* Win __if_exists and __if_not_exists support aspect   */
5686
 
/********************************************************/
5687
 
 
 
6458
#ifndef __preprocessor_parser__
 
6459
#define __preprocessor_parser__
 
6460
 
 
6461
// Preprocessor parser class. !!! The preprocessor parser has to 
 
6462
// be added last to the composite parser of a translation unit !!!
 
6463
 
 
6464
 
 
6465
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Stack.h"
5688
6466
// This file is part of PUMA.
5689
6467
// Copyright (C) 1999-2003  The PUMA developer team.
5690
6468
//                                                                
5706
6484
#ifndef __stack_h__
5707
6485
#define __stack_h__
5708
6486
 
5709
 
namespace Puma {
5710
 
 
5711
 
} // closed Puma
5712
 
class WinIfExists;
5713
 
class WinImportHandler;
5714
 
class WinMacros;
5715
 
class CMatchSyntax;
5716
 
class ExtGnu;
5717
 
class ExtAC;
5718
 
class ExtACBuilderCoupling;
5719
 
class ExtACSyntaxCoupling;
5720
 
class ExtACTree;
5721
 
class ExtACKeywords;
5722
 
class WinAsm;
5723
 
class WinDeclSpecs;
5724
 
class WinMemberExplSpec;
5725
 
class WinTypeKeywords;
5726
 
class PragmaOnceUnitState;
5727
 
class PragmaOnce;
5728
 
class CCExprResolve;
5729
 
class CExprResolve;
5730
 
namespace Puma {
 
6487
 
 
6488
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Stack.h"
 
6489
namespace Puma {
 
6490
 
5731
6491
template <class Item>
5732
 
class Stack : private Array<Item> {  friend class ::WinIfExists;
5733
 
  friend class ::WinImportHandler;
5734
 
  friend class ::WinMacros;
5735
 
  friend class ::CMatchSyntax;
5736
 
  friend class ::ExtGnu;
5737
 
  friend class ::ExtAC;
5738
 
  friend class ::ExtACBuilderCoupling;
5739
 
  friend class ::ExtACSyntaxCoupling;
5740
 
  friend class ::ExtACTree;
5741
 
  friend class ::ExtACKeywords;
5742
 
  friend class ::WinAsm;
5743
 
  friend class ::WinDeclSpecs;
5744
 
  friend class ::WinMemberExplSpec;
5745
 
  friend class ::WinTypeKeywords;
5746
 
  friend class ::PragmaOnceUnitState;
5747
 
  friend class ::PragmaOnce;
5748
 
  friend class ::CCExprResolve;
5749
 
  friend class ::CExprResolve;
5750
 
 
 
6492
class Stack : private Array<Item> {
5751
6493
public:
5752
6494
  Stack (long is = 8192, long incr = 8192) :
5753
6495
    Array<Item> (is, incr) {}
5762
6504
} // namespace Puma
5763
6505
 
5764
6506
#endif /* __stack_h__ */
5765
 
using namespace Puma;
5766
 
 
5767
 
namespace Puma {
5768
 
  
5769
 
}
5770
 
 
5771
 
class WinImportHandler;
5772
 
class WinMacros;
5773
 
class CMatchSyntax;
5774
 
class ExtGnu;
5775
 
class ExtAC;
5776
 
class ExtACBuilderCoupling;
5777
 
class ExtACSyntaxCoupling;
5778
 
class ExtACTree;
5779
 
class ExtACKeywords;
5780
 
class WinAsm;
5781
 
class WinDeclSpecs;
5782
 
class WinMemberExplSpec;
5783
 
class WinTypeKeywords;
5784
 
class PragmaOnceUnitState;
5785
 
class PragmaOnce;
5786
 
class CCExprResolve;
5787
 
class CExprResolve;
5788
 
class WinIfExists {
5789
 
public:
5790
 
  static WinIfExists *aspectof () {
5791
 
    static WinIfExists __instance;
5792
 
    return &__instance;
5793
 
  }
5794
 
  static WinIfExists *aspectOf () {
5795
 
    return aspectof ();
5796
 
  }
5797
 
private:
5798
 
  friend class ::WinImportHandler;
5799
 
  friend class ::WinMacros;
5800
 
  friend class ::CMatchSyntax;
5801
 
  friend class ::ExtGnu;
5802
 
  friend class ::ExtAC;
5803
 
  friend class ::ExtACBuilderCoupling;
5804
 
  friend class ::ExtACSyntaxCoupling;
5805
 
  friend class ::ExtACTree;
5806
 
  friend class ::ExtACKeywords;
5807
 
  friend class ::WinAsm;
5808
 
  friend class ::WinDeclSpecs;
5809
 
  friend class ::WinMemberExplSpec;
5810
 
  friend class ::WinTypeKeywords;
5811
 
  friend class ::PragmaOnceUnitState;
5812
 
  friend class ::PragmaOnce;
5813
 
  friend class ::CCExprResolve;
5814
 
  friend class ::CExprResolve;
5815
 
 
5816
 
  /********************************************************/
5817
 
  /* Win __if_exists and __if_not_exists                  */
5818
 
  /********************************************************/
5819
 
 
5820
 
  // pointcut definitions
5821
 
  
5822
 
 
5823
 
  // structural extensions
5824
 
  
5825
 
 
5826
 
  // preprocess __if_exists and __if_not_exists statements
5827
 
  
5828
 
public: template<class JoinPoint> void __a0_around (JoinPoint *tjp) {
5829
 
  JoinPoint *&thisJoinPoint = tjp;
5830
 
 
5831
 
  typedef typename JoinPoint::That __JP_That;
5832
 
  typedef typename JoinPoint::Target __JP_Target;
5833
 
  typedef typename JoinPoint::Result __JP_Result;
5834
 
 
5835
 
    Token *token;
5836
 
    int type;
5837
 
    __JP_That *preparser;
5838
 
  
5839
 
        preparser = tjp->that ();
5840
 
    tjp->proceed (); // get the next token
5841
 
    token = *tjp->result ();
5842
 
    if (token) {
5843
 
      type = token->type ();
5844
 
      // __if_exists (...) { ... }
5845
 
      if (type == TOK_IF_EXISTS) {
5846
 
        preparser->skip_up_to (TOK_CLOSE_CURLY);
5847
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
5848
 
                    return;
5849
 
        // __if_not_exists (...) { ... }
5850
 
      } else if (type == TOK_IF_NOT_EXISTS) {
5851
 
        preparser->skip_up_to (TOK_OPEN_CURLY);
5852
 
        preparser->_depth.push (1);
5853
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
5854
 
                    return;
5855
 
      }
5856
 
      // skip closing `}' of __if_not_exists
5857
 
      if (preparser->_depth.length ()) {
5858
 
        if (type == TOK_OPEN_CURLY) 
5859
 
          preparser->_depth.top () = preparser->_depth.top () + 1;
5860
 
        else if (type == TOK_CLOSE_CURLY) { 
5861
 
          preparser->_depth.top () = preparser->_depth.top () - 1;
5862
 
                    if (preparser->_depth.top () == 0) {
5863
 
                  preparser->_depth.pop ();
5864
 
                  *(Token**)thisJoinPoint->result () = preparser->next ();
5865
 
                  return;
5866
 
                    }
5867
 
        }
5868
 
      }
5869
 
    }
5870
 
  }
5871
 
private:
5872
 
 
5873
 
 
5874
 
protected:
5875
 
  WinIfExists () {}
5876
 
};
5877
 
namespace AC {
5878
 
  template <class JoinPoint>
5879
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
5880
 
    ::WinIfExists::aspectof()->__a0_around (tjp);
5881
 
  }
5882
 
5883
 
 
5884
 
 
5885
 
namespace Puma {
5886
 
  
5887
 
    
5888
 
  // skip __if_exists resp. __if_not_exists statement
5889
 
  
5890
 
}
5891
 
 
5892
 
#endif /* __WinIfExists__ */
5893
 
// This file is part of PUMA.
5894
 
// Copyright (C) 1999-2003  The PUMA developer team.
5895
 
//                                                                
5896
 
// This program is free software;  you can redistribute it and/or 
5897
 
// modify it under the terms of the GNU General Public License as 
5898
 
// published by the Free Software Foundation; either version 2 of 
5899
 
// the License, or (at your option) any later version.            
5900
 
//                                                                
5901
 
// This program is distributed in the hope that it will be useful,
5902
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
5903
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
5904
 
// GNU General Public License for more details.                   
5905
 
//                                                                
5906
 
// You should have received a copy of the GNU General Public      
5907
 
// License along with this program; if not, write to the Free     
5908
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
5909
 
// MA  02111-1307  USA                                            
5910
 
 
5911
 
#ifndef __WinImportHandler__
5912
 
#define __WinImportHandler__
5913
 
 
5914
 
/********************************************************/
5915
 
/* Win #import directive support                        */
5916
 
/********************************************************/
5917
 
 
5918
 
using namespace Puma;
5919
 
 
5920
 
 
5921
 
class WinIfExists;
5922
 
class WinMacros;
5923
 
class CMatchSyntax;
5924
 
class ExtGnu;
5925
 
class ExtAC;
5926
 
class ExtACBuilderCoupling;
5927
 
class ExtACSyntaxCoupling;
5928
 
class ExtACTree;
5929
 
class ExtACKeywords;
5930
 
class WinAsm;
5931
 
class WinDeclSpecs;
5932
 
class WinMemberExplSpec;
5933
 
class WinTypeKeywords;
5934
 
class PragmaOnceUnitState;
5935
 
class PragmaOnce;
5936
 
class CCExprResolve;
5937
 
class CExprResolve;
5938
 
class WinImportHandler {
5939
 
public:
5940
 
  static WinImportHandler *aspectof () {
5941
 
    static WinImportHandler __instance;
5942
 
    return &__instance;
5943
 
  }
5944
 
  static WinImportHandler *aspectOf () {
5945
 
    return aspectof ();
5946
 
  }
5947
 
private:
5948
 
  friend class ::WinIfExists;
5949
 
  friend class ::WinMacros;
5950
 
  friend class ::CMatchSyntax;
5951
 
  friend class ::ExtGnu;
5952
 
  friend class ::ExtAC;
5953
 
  friend class ::ExtACBuilderCoupling;
5954
 
  friend class ::ExtACSyntaxCoupling;
5955
 
  friend class ::ExtACTree;
5956
 
  friend class ::ExtACKeywords;
5957
 
  friend class ::WinAsm;
5958
 
  friend class ::WinDeclSpecs;
5959
 
  friend class ::WinMemberExplSpec;
5960
 
  friend class ::WinTypeKeywords;
5961
 
  friend class ::PragmaOnceUnitState;
5962
 
  friend class ::PragmaOnce;
5963
 
  friend class ::CCExprResolve;
5964
 
  friend class ::CExprResolve;
5965
 
 
5966
 
  /********************************************************/
5967
 
  /* Win #import directive                                */
5968
 
  /********************************************************/
5969
 
 
5970
 
  // pointcuts
5971
 
  
5972
 
  
5973
 
  // add access method for _importHandler data member
5974
 
  
5975
 
 
5976
 
  // handle --import-handler option
5977
 
  
5978
 
public: template<class JoinPoint> void __a0_before (JoinPoint *tjp, const Config &config, bool process_includes) {
5979
 
  JoinPoint *&thisJoinPoint = tjp;
5980
 
 
5981
 
  typedef typename JoinPoint::That __JP_That;
5982
 
  typedef typename JoinPoint::Target __JP_Target;
5983
 
  typedef typename JoinPoint::Result __JP_Result;
5984
 
 
5985
 
    const ConfOption *opt;
5986
 
    char *tmp;
5987
 
    
5988
 
    if (process_includes) {
5989
 
      opt = config.Option ("--import-handler");
5990
 
      if (opt && opt->Arguments ()) {
5991
 
        // delete old import handler
5992
 
        if (thisJoinPoint->that ()->_importHandler)
5993
 
          delete[] thisJoinPoint->that ()->_importHandler;
5994
 
        
5995
 
        // get new import handler
5996
 
        tmp = new char[strlen (opt->Argument (0))+1];
5997
 
        strcpy (tmp, opt->Argument (0));
5998
 
        thisJoinPoint->that ()->_importHandler = tmp;
5999
 
      }
6000
 
    }
6001
 
  }
6002
 
private:
6003
 
 
6004
 
 
6005
 
protected:
6006
 
  WinImportHandler () {}
6007
 
};
6008
 
namespace AC {
6009
 
  template <class JoinPoint, class Binding>
6010
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
6011
 
    typedef typename Binding::template Arg<0> Arg0;
6012
 
    typedef typename Binding::template Arg<1> Arg1;
6013
 
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
6014
 
  }
6015
 
6016
 
 
6017
 
 
6018
 
 
6019
 
#endif /* __WinImportHandler__ */
6020
 
// This file is part of PUMA.
6021
 
// Copyright (C) 1999-2003  The PUMA developer team.
6022
 
//                                                                
6023
 
// This program is free software;  you can redistribute it and/or 
6024
 
// modify it under the terms of the GNU General Public License as 
6025
 
// published by the Free Software Foundation; either version 2 of 
6026
 
// the License, or (at your option) any later version.            
6027
 
//                                                                
6028
 
// This program is distributed in the hope that it will be useful,
6029
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
6030
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
6031
 
// GNU General Public License for more details.                   
6032
 
//                                                                
6033
 
// You should have received a copy of the GNU General Public      
6034
 
// License along with this program; if not, write to the Free     
6035
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
6036
 
// MA  02111-1307  USA                                            
6037
 
 
6038
 
#ifndef __PragmaOnce__
6039
 
#define __PragmaOnce__
6040
 
 
6041
 
/********************************************************/
6042
 
/* Win #pragma once support aspect                      */
6043
 
/********************************************************/
6044
 
 
6045
 
using std::cout;
6046
 
using std::endl;
6047
 
 
6048
 
using namespace Puma;
6049
 
 
6050
 
 
6051
 
class WinIfExists;
6052
 
class WinImportHandler;
6053
 
class WinMacros;
6054
 
class CMatchSyntax;
6055
 
class ExtGnu;
6056
 
class ExtAC;
6057
 
class ExtACBuilderCoupling;
6058
 
class ExtACSyntaxCoupling;
6059
 
class ExtACTree;
6060
 
class ExtACKeywords;
6061
 
class WinAsm;
6062
 
class WinDeclSpecs;
6063
 
class WinMemberExplSpec;
6064
 
class WinTypeKeywords;
6065
 
class PragmaOnceUnitState;
6066
 
class CCExprResolve;
6067
 
class CExprResolve;
6068
 
class PragmaOnce {
6069
 
public:
6070
 
  static PragmaOnce *aspectof () {
6071
 
    static PragmaOnce __instance;
6072
 
    return &__instance;
6073
 
  }
6074
 
  static PragmaOnce *aspectOf () {
6075
 
    return aspectof ();
6076
 
  }
6077
 
private:
6078
 
  friend class ::WinIfExists;
6079
 
  friend class ::WinImportHandler;
6080
 
  friend class ::WinMacros;
6081
 
  friend class ::CMatchSyntax;
6082
 
  friend class ::ExtGnu;
6083
 
  friend class ::ExtAC;
6084
 
  friend class ::ExtACBuilderCoupling;
6085
 
  friend class ::ExtACSyntaxCoupling;
6086
 
  friend class ::ExtACTree;
6087
 
  friend class ::ExtACKeywords;
6088
 
  friend class ::WinAsm;
6089
 
  friend class ::WinDeclSpecs;
6090
 
  friend class ::WinMemberExplSpec;
6091
 
  friend class ::WinTypeKeywords;
6092
 
  friend class ::PragmaOnceUnitState;
6093
 
  friend class ::CCExprResolve;
6094
 
  friend class ::CExprResolve;
6095
 
 
6096
 
  /******************************************************/
6097
 
  /* detect #pragma once in the token stream of cpp     */
6098
 
  /******************************************************/
6099
 
 
6100
 
  // pointcut definitions
6101
 
  
6102
 
  
6103
 
  
6104
 
  // extend the preprocessor parser by the filter state
6105
 
  
6106
 
 
6107
 
  // initialize the filter state
6108
 
  
6109
 
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
6110
 
  typedef typename JoinPoint::That __JP_That;
6111
 
  typedef typename JoinPoint::Target __JP_Target;
6112
 
  typedef typename JoinPoint::Result __JP_Result;
6113
 
 
6114
 
    // TODO: it would be better to have construction advice -> but in lem file
6115
 
    tjp->that ()->_pragma_token = 0;
6116
 
  }
6117
 
private:
6118
 
 
6119
 
  
6120
 
  // filter #pragma once
6121
 
  
6122
 
public: template<class JoinPoint> void __a1_after (JoinPoint *tjp) {
6123
 
  typedef typename JoinPoint::That __JP_That;
6124
 
  typedef typename JoinPoint::Target __JP_Target;
6125
 
  typedef typename JoinPoint::Result __JP_Result;
6126
 
 
6127
 
    Token *tok = *tjp->result ();
6128
 
    __JP_That &that = *tjp->that ();
6129
 
    if (!tok || !tok->is_directive ()) {
6130
 
      that._pragma_token = 0;
6131
 
      return;
6132
 
    }
6133
 
    if (strcmp ("#pragma", tok->text ()) == 0) {
6134
 
      that._pragma_token = tok;
6135
 
    }
6136
 
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
6137
 
      Unit *unit = (Unit*)tok->belonging_to ();
6138
 
      assert (unit);
6139
 
      unit->state ().onlyOnce (true);
6140
 
    }
6141
 
  }
6142
 
private:
6143
 
 
6144
 
  
6145
 
  /********************************************************/
6146
 
  /* block the handling of pragma once files              */
6147
 
  /********************************************************/
6148
 
 
6149
 
  // don't let file includer include files twice
6150
 
  // to be precise: the file is included again, but the inclusion produces
6151
 
  // no tokens
6152
 
  
6153
 
public: template<class JoinPoint> void __a2_around (JoinPoint *tjp, Unit *unit) {
6154
 
  typedef typename JoinPoint::That __JP_That;
6155
 
  typedef typename JoinPoint::Target __JP_Target;
6156
 
  typedef typename JoinPoint::Result __JP_Result;
6157
 
 
6158
 
    if (! unit || ! unit->state ().onlyOnce ())
6159
 
      tjp->proceed ();
6160
 
  }
6161
 
private:
6162
 
 
6163
 
 
6164
 
  // includeFile shall return 0 if the file was not included
6165
 
  
6166
 
public: template<class JoinPoint> void __a3_after (JoinPoint *tjp) {
6167
 
  typedef typename JoinPoint::That __JP_That;
6168
 
  typedef typename JoinPoint::Target __JP_Target;
6169
 
  typedef typename JoinPoint::Result __JP_Result;
6170
 
 
6171
 
    Unit *&unit = *tjp->result ();
6172
 
    if (unit && unit->state ().onlyOnce ())
6173
 
      unit = 0;
6174
 
  }
6175
 
private:
6176
 
 
6177
 
    
6178
 
protected:
6179
 
  // this aspect should never be instantiated directly
6180
 
  PragmaOnce () {}
6181
 
};
6182
 
namespace AC {
6183
 
  template <class JoinPoint>
6184
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
6185
 
    ::PragmaOnce::aspectof()->__a0_after (tjp);
6186
 
  }
6187
 
  template <class JoinPoint>
6188
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
6189
 
    ::PragmaOnce::aspectof()->__a1_after (tjp);
6190
 
  }
6191
 
  template <class JoinPoint, class Binding>
6192
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
6193
 
    typedef typename Binding::template Arg<0> Arg0;
6194
 
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
6195
 
  }
6196
 
  template <class JoinPoint>
6197
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
6198
 
    ::PragmaOnce::aspectof()->__a3_after (tjp);
6199
 
  }
6200
 
6201
 
 
6202
 
 
6203
 
 
6204
 
#endif /* __PragmaOnce__ */
6205
 
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
6206
 
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
6207
 
// This file is part of PUMA.
6208
 
// Copyright (C) 1999-2003  The PUMA developer team.
6209
 
//                                                                
6210
 
// This program is free software;  you can redistribute it and/or 
6211
 
// modify it under the terms of the GNU General Public License as 
6212
 
// published by the Free Software Foundation; either version 2 of 
6213
 
// the License, or (at your option) any later version.            
6214
 
//                                                                
6215
 
// This program is distributed in the hope that it will be useful,
6216
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
6217
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
6218
 
// GNU General Public License for more details.                   
6219
 
//                                                                
6220
 
// You should have received a copy of the GNU General Public      
6221
 
// License along with this program; if not, write to the Free     
6222
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
6223
 
// MA  02111-1307  USA                                            
6224
 
 
6225
 
#ifndef __preprocessor_parser__
6226
 
#define __preprocessor_parser__
6227
 
 
6228
 
// Preprocessor parser class. !!! The preprocessor parser has to 
6229
 
// be added last to the composite parser of a translation unit !!!
6230
 
 
 
6507
 
 
6508
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6509
 
 
6510
#line 6511 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6231
6511
 
6232
6512
#ifndef __ac_fwd_ExtACKeywords__
6233
6513
#define __ac_fwd_ExtACKeywords__
6234
6514
class ExtACKeywords;
6235
6515
namespace AC {
6236
 
  template <class JoinPoint, class Binding>
6237
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
6238
 
  template <class JoinPoint, class Binding>
6239
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
6240
 
  template <class JoinPoint>
6241
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
6516
  template <class JoinPoint>
 
6517
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
6518
  template <class JoinPoint>
 
6519
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
6520
  template <class JoinPoint>
 
6521
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
6242
6522
}
6243
6523
#endif
6244
6524
 
6245
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6246
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
6525
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
6526
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6247
6527
#endif
 
6528
 
 
6529
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6248
6530
// This file is part of PUMA.
6249
6531
// Copyright (C) 1999-2003  The PUMA developer team.
6250
6532
//                                                                
6280
6562
 
6281
6563
class Token;
6282
6564
 
 
6565
 
 
6566
#line 6567 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6283
6567
} // closed Puma
 
6568
class CCExprResolve;
 
6569
class CExprResolve;
6284
6570
class WinIfExists;
6285
6571
class WinImportHandler;
6286
6572
class WinMacros;
6287
 
class CMatchSyntax;
6288
 
class ExtGnu;
 
6573
class WinAsm;
 
6574
class WinDeclSpecs;
 
6575
class WinMemberExplSpec;
 
6576
class WinTypeKeywords;
 
6577
class WinFriend;
6289
6578
class ExtAC;
6290
6579
class ExtACBuilderCoupling;
6291
6580
class ExtACSyntaxCoupling;
6292
6581
class ExtACTree;
6293
6582
class ExtACKeywords;
6294
 
class WinAsm;
6295
 
class WinDeclSpecs;
6296
 
class WinMemberExplSpec;
6297
 
class WinTypeKeywords;
 
6583
class ExtGnu;
6298
6584
class PragmaOnceUnitState;
6299
6585
class PragmaOnce;
6300
 
class CCExprResolve;
6301
 
class CExprResolve;
 
6586
class CMatchSyntax;
6302
6587
namespace Puma {
6303
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
6588
 
 
6589
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6590
class CScanner : public CRecognizer, public Tokenizer {
 
6591
#line 6592 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6592
  friend class ::CCExprResolve;
 
6593
  friend class ::CExprResolve;
 
6594
  friend class ::WinIfExists;
6304
6595
  friend class ::WinImportHandler;
6305
6596
  friend class ::WinMacros;
6306
 
  friend class ::CMatchSyntax;
6307
 
  friend class ::ExtGnu;
 
6597
  friend class ::WinAsm;
 
6598
  friend class ::WinDeclSpecs;
 
6599
  friend class ::WinMemberExplSpec;
 
6600
  friend class ::WinTypeKeywords;
 
6601
  friend class ::WinFriend;
6308
6602
  friend class ::ExtAC;
6309
6603
  friend class ::ExtACBuilderCoupling;
6310
6604
  friend class ::ExtACSyntaxCoupling;
6311
6605
  friend class ::ExtACTree;
6312
6606
  friend class ::ExtACKeywords;
6313
 
  friend class ::WinAsm;
6314
 
  friend class ::WinDeclSpecs;
6315
 
  friend class ::WinMemberExplSpec;
6316
 
  friend class ::WinTypeKeywords;
 
6607
  friend class ::ExtGnu;
6317
6608
  friend class ::PragmaOnceUnitState;
6318
6609
  friend class ::PragmaOnce;
6319
 
  friend class ::CCExprResolve;
6320
 
  friend class ::CExprResolve;
 
6610
  friend class ::CMatchSyntax;
 
6611
 
 
6612
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6321
6613
 
6322
6614
  Location loc;
6323
6615
  ErrorSink &err;
6331
6623
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
6332
6624
  virtual ~CScanner () {}
6333
6625
  void configure (const Config &);
6334
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
6626
  
 
6627
#line 6628 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6628
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
6629
 
 
6630
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6335
6631
void fill_unit (Source &in, Unit &unit);
6336
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
6632
  
 
6633
#line 6634 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6634
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
6635
 
 
6636
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6337
6637
void fill_unit (const char *in, Unit &unit);
6338
6638
};
6339
6639
 
6341
6641
} // namespace Puma
6342
6642
 
6343
6643
#endif /* __c_scanner_h__ */
 
6644
 
 
6645
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
6344
6646
// This file is part of PUMA.
6345
6647
// Copyright (C) 1999-2003  The PUMA developer team.
6346
6648
//                                                                
6363
6665
#define __c_unit_h__
6364
6666
 
6365
6667
 
 
6668
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6669
 
 
6670
#line 6671 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6671
 
6366
6672
#ifndef __ac_fwd_ExtACKeywords__
6367
6673
#define __ac_fwd_ExtACKeywords__
6368
6674
class ExtACKeywords;
6369
6675
namespace AC {
6370
 
  template <class JoinPoint, class Binding>
6371
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
6372
 
  template <class JoinPoint, class Binding>
6373
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
6374
 
  template <class JoinPoint>
6375
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
6676
  template <class JoinPoint>
 
6677
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
6678
  template <class JoinPoint>
 
6679
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
6680
  template <class JoinPoint>
 
6681
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
6376
6682
}
6377
6683
#endif
6378
6684
 
6379
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6380
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
6685
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
6686
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6381
6687
#endif
 
6688
 
 
6689
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6382
6690
// This file is part of PUMA.
6383
6691
// Copyright (C) 1999-2003  The PUMA developer team.
6384
6692
//                                                                
6414
6722
 
6415
6723
class Token;
6416
6724
 
 
6725
 
 
6726
#line 6727 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6417
6727
} // closed Puma
 
6728
class CCExprResolve;
 
6729
class CExprResolve;
6418
6730
class WinIfExists;
6419
6731
class WinImportHandler;
6420
6732
class WinMacros;
6421
 
class CMatchSyntax;
6422
 
class ExtGnu;
 
6733
class WinAsm;
 
6734
class WinDeclSpecs;
 
6735
class WinMemberExplSpec;
 
6736
class WinTypeKeywords;
 
6737
class WinFriend;
6423
6738
class ExtAC;
6424
6739
class ExtACBuilderCoupling;
6425
6740
class ExtACSyntaxCoupling;
6426
6741
class ExtACTree;
6427
6742
class ExtACKeywords;
6428
 
class WinAsm;
6429
 
class WinDeclSpecs;
6430
 
class WinMemberExplSpec;
6431
 
class WinTypeKeywords;
 
6743
class ExtGnu;
6432
6744
class PragmaOnceUnitState;
6433
6745
class PragmaOnce;
6434
 
class CCExprResolve;
6435
 
class CExprResolve;
 
6746
class CMatchSyntax;
6436
6747
namespace Puma {
6437
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
6748
 
 
6749
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6750
class CScanner : public CRecognizer, public Tokenizer {
 
6751
#line 6752 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6752
  friend class ::CCExprResolve;
 
6753
  friend class ::CExprResolve;
 
6754
  friend class ::WinIfExists;
6438
6755
  friend class ::WinImportHandler;
6439
6756
  friend class ::WinMacros;
6440
 
  friend class ::CMatchSyntax;
6441
 
  friend class ::ExtGnu;
 
6757
  friend class ::WinAsm;
 
6758
  friend class ::WinDeclSpecs;
 
6759
  friend class ::WinMemberExplSpec;
 
6760
  friend class ::WinTypeKeywords;
 
6761
  friend class ::WinFriend;
6442
6762
  friend class ::ExtAC;
6443
6763
  friend class ::ExtACBuilderCoupling;
6444
6764
  friend class ::ExtACSyntaxCoupling;
6445
6765
  friend class ::ExtACTree;
6446
6766
  friend class ::ExtACKeywords;
6447
 
  friend class ::WinAsm;
6448
 
  friend class ::WinDeclSpecs;
6449
 
  friend class ::WinMemberExplSpec;
6450
 
  friend class ::WinTypeKeywords;
 
6767
  friend class ::ExtGnu;
6451
6768
  friend class ::PragmaOnceUnitState;
6452
6769
  friend class ::PragmaOnce;
6453
 
  friend class ::CCExprResolve;
6454
 
  friend class ::CExprResolve;
 
6770
  friend class ::CMatchSyntax;
 
6771
 
 
6772
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6455
6773
 
6456
6774
  Location loc;
6457
6775
  ErrorSink &err;
6465
6783
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
6466
6784
  virtual ~CScanner () {}
6467
6785
  void configure (const Config &);
6468
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
6786
  
 
6787
#line 6788 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6788
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
6789
 
 
6790
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6469
6791
void fill_unit (Source &in, Unit &unit);
6470
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
6792
  
 
6793
#line 6794 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6794
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
6795
 
 
6796
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6471
6797
void fill_unit (const char *in, Unit &unit);
6472
6798
};
6473
6799
 
6475
6801
} // namespace Puma
6476
6802
 
6477
6803
#endif /* __c_scanner_h__ */
 
6804
 
 
6805
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
6478
6806
using namespace std;
6479
6807
 
6480
6808
namespace Puma {
6481
6809
 
6482
6810
 
 
6811
 
 
6812
#line 6813 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6483
6813
} // closed Puma
 
6814
class CCExprResolve;
 
6815
class CExprResolve;
6484
6816
class WinIfExists;
6485
6817
class WinImportHandler;
6486
6818
class WinMacros;
6487
 
class CMatchSyntax;
6488
 
class ExtGnu;
 
6819
class WinAsm;
 
6820
class WinDeclSpecs;
 
6821
class WinMemberExplSpec;
 
6822
class WinTypeKeywords;
 
6823
class WinFriend;
6489
6824
class ExtAC;
6490
6825
class ExtACBuilderCoupling;
6491
6826
class ExtACSyntaxCoupling;
6492
6827
class ExtACTree;
6493
6828
class ExtACKeywords;
6494
 
class WinAsm;
6495
 
class WinDeclSpecs;
6496
 
class WinMemberExplSpec;
6497
 
class WinTypeKeywords;
 
6829
class ExtGnu;
6498
6830
class PragmaOnceUnitState;
6499
6831
class PragmaOnce;
6500
 
class CCExprResolve;
6501
 
class CExprResolve;
 
6832
class CMatchSyntax;
6502
6833
namespace Puma {
6503
 
class CUnit : public Unit, public std::ostringstream {  friend class ::WinIfExists;
 
6834
 
 
6835
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
6836
class CUnit : public Unit, public std::ostringstream {
 
6837
#line 6838 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6838
  friend class ::CCExprResolve;
 
6839
  friend class ::CExprResolve;
 
6840
  friend class ::WinIfExists;
6504
6841
  friend class ::WinImportHandler;
6505
6842
  friend class ::WinMacros;
6506
 
  friend class ::CMatchSyntax;
6507
 
  friend class ::ExtGnu;
 
6843
  friend class ::WinAsm;
 
6844
  friend class ::WinDeclSpecs;
 
6845
  friend class ::WinMemberExplSpec;
 
6846
  friend class ::WinTypeKeywords;
 
6847
  friend class ::WinFriend;
6508
6848
  friend class ::ExtAC;
6509
6849
  friend class ::ExtACBuilderCoupling;
6510
6850
  friend class ::ExtACSyntaxCoupling;
6511
6851
  friend class ::ExtACTree;
6512
6852
  friend class ::ExtACKeywords;
6513
 
  friend class ::WinAsm;
6514
 
  friend class ::WinDeclSpecs;
6515
 
  friend class ::WinMemberExplSpec;
6516
 
  friend class ::WinTypeKeywords;
 
6853
  friend class ::ExtGnu;
6517
6854
  friend class ::PragmaOnceUnitState;
6518
6855
  friend class ::PragmaOnce;
6519
 
  friend class ::CCExprResolve;
6520
 
  friend class ::CExprResolve;
 
6856
  friend class ::CMatchSyntax;
 
6857
 
 
6858
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
6521
6859
 
6522
6860
  CScanner _scanner;
6523
6861
 
6538
6876
} // namespace Puma
6539
6877
 
6540
6878
#endif /* __c_unit_h__ */
 
6879
 
 
6880
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6541
6881
// This file is part of PUMA.
6542
6882
// Copyright (C) 1999-2003  The PUMA developer team.
6543
6883
//                                                                
6562
6902
// The macro expander provides methods to expand a single macro or
6563
6903
// all macros of a given string or unit.
6564
6904
 
 
6905
 
 
6906
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6565
6907
using std::set;
6566
6908
 
 
6909
 
 
6910
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6567
6911
// This file is part of PUMA.
6568
6912
// Copyright (C) 1999-2003  The PUMA developer team.
6569
6913
//                                                                
6585
6929
#ifndef __pre_arg_desc__
6586
6930
#define __pre_arg_desc__
6587
6931
 
 
6932
 
 
6933
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6588
6934
// This file is part of PUMA.
6589
6935
// Copyright (C) 1999-2003  The PUMA developer team.
6590
6936
//                                                                
6608
6954
 
6609
6955
// Special unit for macro expansions
6610
6956
 
 
6957
 
 
6958
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6611
6959
namespace Puma {
6612
6960
 
6613
6961
 
 
6962
 
 
6963
#line 6964 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6614
6964
} // closed Puma
 
6965
class CCExprResolve;
 
6966
class CExprResolve;
6615
6967
class WinIfExists;
6616
6968
class WinImportHandler;
6617
6969
class WinMacros;
6618
 
class CMatchSyntax;
6619
 
class ExtGnu;
 
6970
class WinAsm;
 
6971
class WinDeclSpecs;
 
6972
class WinMemberExplSpec;
 
6973
class WinTypeKeywords;
 
6974
class WinFriend;
6620
6975
class ExtAC;
6621
6976
class ExtACBuilderCoupling;
6622
6977
class ExtACSyntaxCoupling;
6623
6978
class ExtACTree;
6624
6979
class ExtACKeywords;
6625
 
class WinAsm;
6626
 
class WinDeclSpecs;
6627
 
class WinMemberExplSpec;
6628
 
class WinTypeKeywords;
 
6980
class ExtGnu;
6629
6981
class PragmaOnceUnitState;
6630
6982
class PragmaOnce;
6631
 
class CCExprResolve;
6632
 
class CExprResolve;
 
6983
class CMatchSyntax;
6633
6984
namespace Puma {
6634
 
class MacroUnit : public Unit {  friend class ::WinIfExists;
 
6985
 
 
6986
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
6987
class MacroUnit : public Unit {
 
6988
#line 6989 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
6989
  friend class ::CCExprResolve;
 
6990
  friend class ::CExprResolve;
 
6991
  friend class ::WinIfExists;
6635
6992
  friend class ::WinImportHandler;
6636
6993
  friend class ::WinMacros;
6637
 
  friend class ::CMatchSyntax;
6638
 
  friend class ::ExtGnu;
 
6994
  friend class ::WinAsm;
 
6995
  friend class ::WinDeclSpecs;
 
6996
  friend class ::WinMemberExplSpec;
 
6997
  friend class ::WinTypeKeywords;
 
6998
  friend class ::WinFriend;
6639
6999
  friend class ::ExtAC;
6640
7000
  friend class ::ExtACBuilderCoupling;
6641
7001
  friend class ::ExtACSyntaxCoupling;
6642
7002
  friend class ::ExtACTree;
6643
7003
  friend class ::ExtACKeywords;
6644
 
  friend class ::WinAsm;
6645
 
  friend class ::WinDeclSpecs;
6646
 
  friend class ::WinMemberExplSpec;
6647
 
  friend class ::WinTypeKeywords;
 
7004
  friend class ::ExtGnu;
6648
7005
  friend class ::PragmaOnceUnitState;
6649
7006
  friend class ::PragmaOnce;
6650
 
  friend class ::CCExprResolve;
6651
 
  friend class ::CExprResolve;
 
7007
  friend class ::CMatchSyntax;
 
7008
 
 
7009
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6652
7010
 
6653
7011
  Unit *_CallingUnit;
6654
7012
  Token *_StartToken;
6684
7042
} // namespace Puma
6685
7043
 
6686
7044
#endif /* __MacroUnit__ */
 
7045
 
 
7046
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6687
7047
namespace Puma {
6688
7048
 
6689
7049
 
 
7050
 
 
7051
#line 7052 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6690
7052
} // closed Puma
 
7053
class CCExprResolve;
 
7054
class CExprResolve;
6691
7055
class WinIfExists;
6692
7056
class WinImportHandler;
6693
7057
class WinMacros;
6694
 
class CMatchSyntax;
6695
 
class ExtGnu;
 
7058
class WinAsm;
 
7059
class WinDeclSpecs;
 
7060
class WinMemberExplSpec;
 
7061
class WinTypeKeywords;
 
7062
class WinFriend;
6696
7063
class ExtAC;
6697
7064
class ExtACBuilderCoupling;
6698
7065
class ExtACSyntaxCoupling;
6699
7066
class ExtACTree;
6700
7067
class ExtACKeywords;
6701
 
class WinAsm;
6702
 
class WinDeclSpecs;
6703
 
class WinMemberExplSpec;
6704
 
class WinTypeKeywords;
 
7068
class ExtGnu;
6705
7069
class PragmaOnceUnitState;
6706
7070
class PragmaOnce;
6707
 
class CCExprResolve;
6708
 
class CExprResolve;
 
7071
class CMatchSyntax;
6709
7072
namespace Puma {
6710
 
class PreArgDesc {  friend class ::WinIfExists;
 
7073
 
 
7074
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
7075
class PreArgDesc {
 
7076
#line 7077 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7077
  friend class ::CCExprResolve;
 
7078
  friend class ::CExprResolve;
 
7079
  friend class ::WinIfExists;
6711
7080
  friend class ::WinImportHandler;
6712
7081
  friend class ::WinMacros;
6713
 
  friend class ::CMatchSyntax;
6714
 
  friend class ::ExtGnu;
 
7082
  friend class ::WinAsm;
 
7083
  friend class ::WinDeclSpecs;
 
7084
  friend class ::WinMemberExplSpec;
 
7085
  friend class ::WinTypeKeywords;
 
7086
  friend class ::WinFriend;
6715
7087
  friend class ::ExtAC;
6716
7088
  friend class ::ExtACBuilderCoupling;
6717
7089
  friend class ::ExtACSyntaxCoupling;
6718
7090
  friend class ::ExtACTree;
6719
7091
  friend class ::ExtACKeywords;
6720
 
  friend class ::WinAsm;
6721
 
  friend class ::WinDeclSpecs;
6722
 
  friend class ::WinMemberExplSpec;
6723
 
  friend class ::WinTypeKeywords;
 
7092
  friend class ::ExtGnu;
6724
7093
  friend class ::PragmaOnceUnitState;
6725
7094
  friend class ::PragmaOnce;
6726
 
  friend class ::CCExprResolve;
6727
 
  friend class ::CExprResolve;
 
7095
  friend class ::CMatchSyntax;
 
7096
 
 
7097
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
6728
7098
 
6729
7099
  // Collected arguments of a function-like macro.
6730
7100
  Array<MacroUnit> m_Args;
6752
7122
} // namespace Puma
6753
7123
 
6754
7124
#endif /* __pre_arg_desc__ */
 
7125
 
 
7126
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6755
7127
namespace Puma {
6756
7128
 
6757
7129
 
6763
7135
class ErrorStream;
6764
7136
class PreMacro;
6765
7137
 
 
7138
 
 
7139
#line 7140 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6766
7140
} // closed Puma
 
7141
class CCExprResolve;
 
7142
class CExprResolve;
6767
7143
class WinIfExists;
6768
7144
class WinImportHandler;
6769
7145
class WinMacros;
6770
 
class CMatchSyntax;
6771
 
class ExtGnu;
 
7146
class WinAsm;
 
7147
class WinDeclSpecs;
 
7148
class WinMemberExplSpec;
 
7149
class WinTypeKeywords;
 
7150
class WinFriend;
6772
7151
class ExtAC;
6773
7152
class ExtACBuilderCoupling;
6774
7153
class ExtACSyntaxCoupling;
6775
7154
class ExtACTree;
6776
7155
class ExtACKeywords;
6777
 
class WinAsm;
6778
 
class WinDeclSpecs;
6779
 
class WinMemberExplSpec;
6780
 
class WinTypeKeywords;
 
7156
class ExtGnu;
6781
7157
class PragmaOnceUnitState;
6782
7158
class PragmaOnce;
6783
 
class CCExprResolve;
6784
 
class CExprResolve;
 
7159
class CMatchSyntax;
6785
7160
namespace Puma {
6786
 
class PreMacroExpander {  friend class ::WinIfExists;
 
7161
 
 
7162
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
7163
class PreMacroExpander {
 
7164
#line 7165 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7165
  friend class ::CCExprResolve;
 
7166
  friend class ::CExprResolve;
 
7167
  friend class ::WinIfExists;
6787
7168
  friend class ::WinImportHandler;
6788
7169
  friend class ::WinMacros;
6789
 
  friend class ::CMatchSyntax;
6790
 
  friend class ::ExtGnu;
 
7170
  friend class ::WinAsm;
 
7171
  friend class ::WinDeclSpecs;
 
7172
  friend class ::WinMemberExplSpec;
 
7173
  friend class ::WinTypeKeywords;
 
7174
  friend class ::WinFriend;
6791
7175
  friend class ::ExtAC;
6792
7176
  friend class ::ExtACBuilderCoupling;
6793
7177
  friend class ::ExtACSyntaxCoupling;
6794
7178
  friend class ::ExtACTree;
6795
7179
  friend class ::ExtACKeywords;
6796
 
  friend class ::WinAsm;
6797
 
  friend class ::WinDeclSpecs;
6798
 
  friend class ::WinMemberExplSpec;
6799
 
  friend class ::WinTypeKeywords;
 
7180
  friend class ::ExtGnu;
6800
7181
  friend class ::PragmaOnceUnitState;
6801
7182
  friend class ::PragmaOnce;
6802
 
  friend class ::CCExprResolve;
6803
 
  friend class ::CExprResolve;
 
7183
  friend class ::CMatchSyntax;
 
7184
 
 
7185
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6804
7186
 
6805
7187
  TokenStream        *_scanner;
6806
7188
  PreMacroManager    *_macroManager;
6865
7247
  // Push unit on token stream.
6866
7248
  void pushUnit (TokenStream &, Unit *) const;
6867
7249
 
 
7250
  // Get the next non-whitespace non-comment token
 
7251
  Token* nextPreprocessingToken (Token*, Unit*) const;
 
7252
 
 
7253
  // Get the previous non-whitespace non-comment token
 
7254
  Token* prevPreprocessingToken (Token*, Unit*) const;
 
7255
 
 
7256
  // Check if the given unit contains only spaces and comments.
 
7257
  bool onlySpacesAndComments (MacroUnit&) const;
 
7258
 
6868
7259
public:
6869
7260
  // Special constructor. Call reset() before using the expander.
6870
7261
  PreMacroExpander ();
6890
7281
} // namespace Puma
6891
7282
 
6892
7283
#endif /* __pre_macro_expander__ */
 
7284
 
 
7285
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6893
7286
using namespace std;
6894
7287
 
6895
7288
namespace Puma {
6905
7298
class PreFileIncluder;
6906
7299
class PrePredicateManager;
6907
7300
 
6908
 
} // closed Puma
6909
 
class WinIfExists;
6910
 
class WinImportHandler;
6911
 
class WinMacros;
6912
 
class CMatchSyntax;
6913
 
class ExtGnu;
6914
 
class ExtAC;
6915
 
class ExtACBuilderCoupling;
6916
 
class ExtACSyntaxCoupling;
6917
 
class ExtACTree;
6918
 
class ExtACKeywords;
6919
 
class WinAsm;
6920
 
class WinDeclSpecs;
6921
 
class WinMemberExplSpec;
6922
 
class WinTypeKeywords;
6923
 
class PragmaOnceUnitState;
6924
 
class PragmaOnce;
6925
 
class CCExprResolve;
6926
 
class CExprResolve;
6927
 
namespace Puma {
6928
 
class PreprocessorParser : public PumaTokenSource {  friend class ::WinIfExists;
6929
 
  friend class ::WinImportHandler;
6930
 
  friend class ::WinMacros;
6931
 
  friend class ::CMatchSyntax;
6932
 
  friend class ::ExtGnu;
6933
 
  friend class ::ExtAC;
6934
 
  friend class ::ExtACBuilderCoupling;
6935
 
  friend class ::ExtACSyntaxCoupling;
6936
 
  friend class ::ExtACTree;
6937
 
  friend class ::ExtACKeywords;
6938
 
  friend class ::WinAsm;
6939
 
  friend class ::WinDeclSpecs;
6940
 
  friend class ::WinMemberExplSpec;
6941
 
  friend class ::WinTypeKeywords;
6942
 
  friend class ::PragmaOnceUnitState;
6943
 
  friend class ::PragmaOnce;
6944
 
  friend class ::CCExprResolve;
6945
 
  friend class ::CExprResolve;
 
7301
 
 
7302
#line 7303 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7303
} // closed Puma
 
7304
class CCExprResolve;
 
7305
class CExprResolve;
 
7306
class WinIfExists;
 
7307
class WinImportHandler;
 
7308
class WinMacros;
 
7309
class WinAsm;
 
7310
class WinDeclSpecs;
 
7311
class WinMemberExplSpec;
 
7312
class WinTypeKeywords;
 
7313
class WinFriend;
 
7314
class ExtAC;
 
7315
class ExtACBuilderCoupling;
 
7316
class ExtACSyntaxCoupling;
 
7317
class ExtACTree;
 
7318
class ExtACKeywords;
 
7319
class ExtGnu;
 
7320
class PragmaOnceUnitState;
 
7321
class PragmaOnce;
 
7322
class CMatchSyntax;
 
7323
namespace Puma {
 
7324
 
 
7325
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7326
 
 
7327
#line 7328 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7328
} // closed Puma
 
7329
 
 
7330
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
7331
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
7332
 
 
7333
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7334
// This file is part of PUMA.
 
7335
// Copyright (C) 1999-2003  The PUMA developer team.
 
7336
//                                                                
 
7337
// This program is free software;  you can redistribute it and/or 
 
7338
// modify it under the terms of the GNU General Public License as 
 
7339
// published by the Free Software Foundation; either version 2 of 
 
7340
// the License, or (at your option) any later version.            
 
7341
//                                                                
 
7342
// This program is distributed in the hope that it will be useful,
 
7343
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
7344
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
7345
// GNU General Public License for more details.                   
 
7346
//                                                                
 
7347
// You should have received a copy of the GNU General Public      
 
7348
// License along with this program; if not, write to the Free     
 
7349
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
7350
// MA  02111-1307  USA                                            
 
7351
 
 
7352
#ifndef __WinIfExists__
 
7353
#define __WinIfExists__
 
7354
 
 
7355
/********************************************************/
 
7356
/* Win __if_exists and __if_not_exists support aspect   */
 
7357
/********************************************************/
 
7358
 
 
7359
 
 
7360
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7361
namespace Puma {
 
7362
  
 
7363
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7364
 
 
7365
}
 
7366
 
 
7367
 
 
7368
#line 7369 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7369
class CCExprResolve;
 
7370
class CExprResolve;
 
7371
class WinImportHandler;
 
7372
class WinMacros;
 
7373
class WinAsm;
 
7374
class WinDeclSpecs;
 
7375
class WinMemberExplSpec;
 
7376
class WinTypeKeywords;
 
7377
class WinFriend;
 
7378
class ExtAC;
 
7379
class ExtACBuilderCoupling;
 
7380
class ExtACSyntaxCoupling;
 
7381
class ExtACTree;
 
7382
class ExtACKeywords;
 
7383
class ExtGnu;
 
7384
class PragmaOnceUnitState;
 
7385
class PragmaOnce;
 
7386
class CMatchSyntax;
 
7387
 
 
7388
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7389
class WinIfExists {
 
7390
#line 7391 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7391
 
 
7392
public:
 
7393
  static WinIfExists *aspectof () {
 
7394
    static WinIfExists __instance;
 
7395
    return &__instance;
 
7396
  }
 
7397
  static WinIfExists *aspectOf () {
 
7398
    return aspectof ();
 
7399
  }
 
7400
private:
 
7401
 
 
7402
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7403
 
 
7404
#line 7405 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7405
  friend class ::CCExprResolve;
 
7406
  friend class ::CExprResolve;
 
7407
  friend class ::WinImportHandler;
 
7408
  friend class ::WinMacros;
 
7409
  friend class ::WinAsm;
 
7410
  friend class ::WinDeclSpecs;
 
7411
  friend class ::WinMemberExplSpec;
 
7412
  friend class ::WinTypeKeywords;
 
7413
  friend class ::WinFriend;
 
7414
  friend class ::ExtAC;
 
7415
  friend class ::ExtACBuilderCoupling;
 
7416
  friend class ::ExtACSyntaxCoupling;
 
7417
  friend class ::ExtACTree;
 
7418
  friend class ::ExtACKeywords;
 
7419
  friend class ::ExtGnu;
 
7420
  friend class ::PragmaOnceUnitState;
 
7421
  friend class ::PragmaOnce;
 
7422
  friend class ::CMatchSyntax;
 
7423
 
 
7424
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7425
 
 
7426
  /********************************************************/
 
7427
  /* Win __if_exists and __if_not_exists                  */
 
7428
  /********************************************************/
 
7429
 
 
7430
  // pointcut definitions
 
7431
  
 
7432
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7433
 
 
7434
 
 
7435
  // structural extensions
 
7436
  
 
7437
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7438
 
 
7439
 
 
7440
  // preprocess __if_exists and __if_not_exists statements
 
7441
  
 
7442
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7443
 
 
7444
public: template<class JoinPoint> void __a0_around 
 
7445
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7446
 
 
7447
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7448
(JoinPoint *tjp)
 
7449
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7450
 {
 
7451
#line 7452 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7452
 
 
7453
  JoinPoint *&thisJoinPoint = tjp;
 
7454
 
 
7455
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7456
 
 
7457
#line 7458 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7458
 
 
7459
  typedef typename JoinPoint::That __JP_That;
 
7460
  typedef typename JoinPoint::Target __JP_Target;
 
7461
  typedef typename JoinPoint::Result __JP_Result;
 
7462
 
 
7463
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7464
 
 
7465
    Puma::Token *token;
 
7466
    int type;
 
7467
    __JP_That
 
7468
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7469
 *preparser;
 
7470
  
 
7471
    preparser = tjp->that ();
 
7472
    tjp->proceed (); // get the next token
 
7473
    token = *tjp->result ();
 
7474
    if (token) {
 
7475
      type = token->type ();
 
7476
      // __if_exists (...) { ... }
 
7477
      if (type == Puma::TOK_IF_EXISTS) {
 
7478
        preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
 
7479
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
7480
        return;
 
7481
        // __if_not_exists (...) { ... }
 
7482
      } else if (type == Puma::TOK_IF_NOT_EXISTS) {
 
7483
        preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
 
7484
        preparser->_depth.push (1);
 
7485
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
7486
        return;
 
7487
      }
 
7488
      // skip closing `}' of __if_not_exists
 
7489
      if (preparser->_depth.length ()) {
 
7490
        if (type == Puma::TOK_OPEN_CURLY) 
 
7491
          preparser->_depth.top () = preparser->_depth.top () + 1;
 
7492
        else if (type == Puma::TOK_CLOSE_CURLY) { 
 
7493
          preparser->_depth.top () = preparser->_depth.top () - 1;
 
7494
          if (preparser->_depth.top () == 0) {
 
7495
            preparser->_depth.pop ();
 
7496
            *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
7497
            return;
 
7498
          }
 
7499
        }
 
7500
      }
 
7501
    }
 
7502
  }
 
7503
#line 7504 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7504
 
 
7505
private:
 
7506
 
 
7507
#line 82 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7508
 
 
7509
 
 
7510
protected:
 
7511
  WinIfExists () {}
 
7512
};
 
7513
#line 7514 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7514
 
 
7515
namespace AC {
 
7516
  template <class JoinPoint>
 
7517
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
 
7518
    ::WinIfExists::aspectof()->__a0_around (tjp);
 
7519
  }
 
7520
 
7521
 
 
7522
#line 86 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7523
 
 
7524
 
 
7525
namespace Puma {
 
7526
  
 
7527
#line 95 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7528
 
 
7529
    
 
7530
  // skip __if_exists resp. __if_not_exists statement
 
7531
  
 
7532
#line 135 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7533
 
 
7534
}
 
7535
 
 
7536
#endif /* __WinIfExists__ */
 
7537
 
 
7538
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7539
#endif
 
7540
namespace Puma {
 
7541
 
 
7542
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7543
 
 
7544
#line 7545 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7545
} // closed Puma
 
7546
 
 
7547
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
7548
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
7549
 
 
7550
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7551
// This file is part of PUMA.
 
7552
// Copyright (C) 1999-2003  The PUMA developer team.
 
7553
//                                                                
 
7554
// This program is free software;  you can redistribute it and/or 
 
7555
// modify it under the terms of the GNU General Public License as 
 
7556
// published by the Free Software Foundation; either version 2 of 
 
7557
// the License, or (at your option) any later version.            
 
7558
//                                                                
 
7559
// This program is distributed in the hope that it will be useful,
 
7560
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
7561
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
7562
// GNU General Public License for more details.                   
 
7563
//                                                                
 
7564
// You should have received a copy of the GNU General Public      
 
7565
// License along with this program; if not, write to the Free     
 
7566
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
7567
// MA  02111-1307  USA                                            
 
7568
 
 
7569
#ifndef __PragmaOnce__
 
7570
#define __PragmaOnce__
 
7571
 
 
7572
/********************************************************/
 
7573
/* Win #pragma once support aspect                      */
 
7574
/********************************************************/
 
7575
 
 
7576
 
 
7577
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7578
 
 
7579
#line 7580 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7580
class CCExprResolve;
 
7581
class CExprResolve;
 
7582
class WinIfExists;
 
7583
class WinImportHandler;
 
7584
class WinMacros;
 
7585
class WinAsm;
 
7586
class WinDeclSpecs;
 
7587
class WinMemberExplSpec;
 
7588
class WinTypeKeywords;
 
7589
class WinFriend;
 
7590
class ExtAC;
 
7591
class ExtACBuilderCoupling;
 
7592
class ExtACSyntaxCoupling;
 
7593
class ExtACTree;
 
7594
class ExtACKeywords;
 
7595
class ExtGnu;
 
7596
class PragmaOnceUnitState;
 
7597
class CMatchSyntax;
 
7598
 
 
7599
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7600
class PragmaOnce {
 
7601
#line 7602 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7602
 
 
7603
public:
 
7604
  static PragmaOnce *aspectof () {
 
7605
    static PragmaOnce __instance;
 
7606
    return &__instance;
 
7607
  }
 
7608
  static PragmaOnce *aspectOf () {
 
7609
    return aspectof ();
 
7610
  }
 
7611
private:
 
7612
 
 
7613
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7614
 
 
7615
#line 7616 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7616
  friend class ::CCExprResolve;
 
7617
  friend class ::CExprResolve;
 
7618
  friend class ::WinIfExists;
 
7619
  friend class ::WinImportHandler;
 
7620
  friend class ::WinMacros;
 
7621
  friend class ::WinAsm;
 
7622
  friend class ::WinDeclSpecs;
 
7623
  friend class ::WinMemberExplSpec;
 
7624
  friend class ::WinTypeKeywords;
 
7625
  friend class ::WinFriend;
 
7626
  friend class ::ExtAC;
 
7627
  friend class ::ExtACBuilderCoupling;
 
7628
  friend class ::ExtACSyntaxCoupling;
 
7629
  friend class ::ExtACTree;
 
7630
  friend class ::ExtACKeywords;
 
7631
  friend class ::ExtGnu;
 
7632
  friend class ::PragmaOnceUnitState;
 
7633
  friend class ::CMatchSyntax;
 
7634
 
 
7635
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7636
 
 
7637
  /******************************************************/
 
7638
  /* detect #pragma once in the token stream of cpp     */
 
7639
  /******************************************************/
 
7640
 
 
7641
  // pointcut definitions
 
7642
  
 
7643
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7644
 
 
7645
  
 
7646
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7647
 
 
7648
  
 
7649
  // extend the preprocessor parser by the filter state
 
7650
  
 
7651
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7652
 
 
7653
 
 
7654
  // initialize the filter state
 
7655
  
 
7656
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7657
 
 
7658
public: template<class JoinPoint> void __a0_after 
 
7659
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7660
 
 
7661
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7662
(JoinPoint *tjp)
 
7663
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7664
 {
 
7665
#line 7666 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7666
 
 
7667
  typedef typename JoinPoint::That __JP_That;
 
7668
  typedef typename JoinPoint::Target __JP_Target;
 
7669
  typedef typename JoinPoint::Result __JP_Result;
 
7670
 
 
7671
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7672
 
 
7673
    // TODO: it would be better to have construction advice -> but in lem file
 
7674
    tjp->that ()->_pragma_token = 0;
 
7675
  }
 
7676
#line 7677 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7677
 
 
7678
private:
 
7679
 
 
7680
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7681
 
 
7682
  
 
7683
  // filter #pragma once
 
7684
  
 
7685
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7686
 
 
7687
public: template<class JoinPoint> void __a1_after 
 
7688
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7689
 
 
7690
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7691
(JoinPoint *tjp)
 
7692
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7693
 {
 
7694
#line 7695 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7695
 
 
7696
  typedef typename JoinPoint::That __JP_That;
 
7697
  typedef typename JoinPoint::Target __JP_Target;
 
7698
  typedef typename JoinPoint::Result __JP_Result;
 
7699
 
 
7700
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7701
 
 
7702
    Puma::Token *tok = *tjp->result ();
 
7703
    __JP_That
 
7704
#line 53 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7705
 &that = *tjp->that ();
 
7706
    if (!tok || !tok->is_directive ()) {
 
7707
      that._pragma_token = 0;
 
7708
      return;
 
7709
    }
 
7710
    if (strcmp ("#pragma", tok->text ()) == 0) {
 
7711
      that._pragma_token = tok;
 
7712
    }
 
7713
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
 
7714
      Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
 
7715
      assert (unit);
 
7716
      unit->state ().onlyOnce (true);
 
7717
    }
 
7718
  }
 
7719
#line 7720 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7720
 
 
7721
private:
 
7722
 
 
7723
#line 66 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7724
 
 
7725
  
 
7726
  /********************************************************/
 
7727
  /* block the handling of pragma once files              */
 
7728
  /********************************************************/
 
7729
 
 
7730
  // don't let file includer include files twice
 
7731
  // to be precise: the file is included again, but the inclusion produces
 
7732
  // no tokens
 
7733
  
 
7734
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7735
 
 
7736
public: template<class JoinPoint> void __a2_around 
 
7737
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7738
 
 
7739
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7740
(JoinPoint *tjp, Puma::Unit *unit)
 
7741
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7742
 {
 
7743
#line 7744 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7744
 
 
7745
  typedef typename JoinPoint::That __JP_That;
 
7746
  typedef typename JoinPoint::Target __JP_Target;
 
7747
  typedef typename JoinPoint::Result __JP_Result;
 
7748
 
 
7749
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7750
 
 
7751
    if (! unit || ! unit->state ().onlyOnce ())
 
7752
      tjp->proceed ();
 
7753
  }
 
7754
#line 7755 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7755
 
 
7756
private:
 
7757
 
 
7758
#line 80 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7759
 
 
7760
 
 
7761
  // includeFile shall return 0 if the file was not included
 
7762
  
 
7763
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7764
 
 
7765
public: template<class JoinPoint> void __a3_after 
 
7766
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7767
 
 
7768
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7769
(JoinPoint *tjp)
 
7770
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7771
 {
 
7772
#line 7773 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7773
 
 
7774
  typedef typename JoinPoint::That __JP_That;
 
7775
  typedef typename JoinPoint::Target __JP_Target;
 
7776
  typedef typename JoinPoint::Result __JP_Result;
 
7777
 
 
7778
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7779
 
 
7780
    Puma::Unit *&unit = *tjp->result ();
 
7781
    if (unit && unit->state ().onlyOnce ())
 
7782
      //unit = 0;
 
7783
      tjp->that ()->_guarded = true;
 
7784
  }
 
7785
#line 7786 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7786
 
 
7787
private:
 
7788
 
 
7789
#line 89 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7790
 
 
7791
    
 
7792
protected:
 
7793
  // this aspect should never be instantiated directly
 
7794
  PragmaOnce () {}
 
7795
};
 
7796
#line 7797 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7797
 
 
7798
namespace AC {
 
7799
  template <class JoinPoint>
 
7800
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
 
7801
    ::PragmaOnce::aspectof()->__a0_after (tjp);
 
7802
  }
 
7803
  template <class JoinPoint>
 
7804
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
 
7805
    ::PragmaOnce::aspectof()->__a1_after (tjp);
 
7806
  }
 
7807
  template <class JoinPoint>
 
7808
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
 
7809
    typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
 
7810
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
 
7811
  }
 
7812
  template <class JoinPoint>
 
7813
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
 
7814
    ::PragmaOnce::aspectof()->__a3_after (tjp);
 
7815
  }
 
7816
 
7817
 
 
7818
#line 94 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7819
 
 
7820
 
 
7821
 
 
7822
#endif /* __PragmaOnce__ */
 
7823
 
 
7824
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7825
#endif
 
7826
namespace Puma {
 
7827
 
 
7828
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7829
class PreprocessorParser : public PumaTokenSource {
 
7830
#line 7831 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7831
  friend class ::CCExprResolve;
 
7832
  friend class ::CExprResolve;
 
7833
  friend class ::WinIfExists;
 
7834
  friend class ::WinImportHandler;
 
7835
  friend class ::WinMacros;
 
7836
  friend class ::WinAsm;
 
7837
  friend class ::WinDeclSpecs;
 
7838
  friend class ::WinMemberExplSpec;
 
7839
  friend class ::WinTypeKeywords;
 
7840
  friend class ::WinFriend;
 
7841
  friend class ::ExtAC;
 
7842
  friend class ::ExtACBuilderCoupling;
 
7843
  friend class ::ExtACSyntaxCoupling;
 
7844
  friend class ::ExtACTree;
 
7845
  friend class ::ExtACKeywords;
 
7846
  friend class ::ExtGnu;
 
7847
  friend class ::PragmaOnceUnitState;
 
7848
  friend class ::PragmaOnce;
 
7849
  friend class ::CMatchSyntax;
 
7850
 
 
7851
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6946
7852
 
6947
7853
public:
6948
7854
  // The current mode for token preprocessing
7002
7908
  PreLevelState       *levelState () const       { return _levelState; }
7003
7909
  PreParserState      *parserState () const      { return _parserState; }
7004
7910
  PreMacroManager     *macroManager () const     { return _macroManager; }
 
7911
  void macroManager   (PreMacroManager *m)       { _macroManager = m; }
7005
7912
  PreFileIncluder     *fileIncluder () const     { return _fileIncluder; }
7006
7913
  PrePredicateManager *predicateManager () const { return _predicateManager; }
7007
7914
  UnitManager         *unitManager () const      { return _unitManager; }
7009
7916
  PreMode              pre_mode () const         { return _pre_mode; } 
7010
7917
  bool                 supportGNU () const       { return _support_gnu; }
7011
7918
  CScanner            &cscanner () const         { return (CScanner&) _scanner; }
 
7919
  const char          *importHandler () const    { return _importHandler; }
7012
7920
 
7013
7921
  // Return the preprocessor syntax tree.
7014
7922
  PreTree *syntaxTree () const;
7027
7935
  void freeSyntaxTree ();
7028
7936
        
7029
7937
  // Configure the preprocessor.
7030
 
  public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
7938
  
 
7939
#line 7940 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7940
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
7941
 
 
7942
#line 134 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7031
7943
void configure (const Config &, bool = true);
7032
7944
        
7033
7945
  // Get the next token to parse.
7034
 
  public: inline ::Puma::Token * __exec_old_next();
 
7946
  
 
7947
#line 7948 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
7948
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
 
7949
 
 
7950
#line 137 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7035
7951
Token *next ();
7036
7952
        
7037
7953
  TokenStream *scanner () const { return _stream; }
7063
7979
 
7064
7980
  void supportGNU (bool);
7065
7981
   private:
 
7982
 
 
7983
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
7984
 Puma :: Token * _pragma_token ;   private:
7066
7985
  typedef PreprocessorParser WinIfExistsCpp;
7067
 
 public :
7068
 
 
7069
 
Stack < unsigned > _depth ;
7070
 
 
7071
 
void skip_up_to ( int ) ;  private:
7072
 
 public :
7073
 
const char * importHandler ( ) const { return _importHandler ; }  private:
7074
 
 Token * _pragma_token ;};
 
7986
 
 
7987
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7988
 public :
 
7989
 
 
7990
Puma :: Stack < unsigned > _depth ;
 
7991
 
 
7992
void skip_up_to ( int ) ;
 
7993
#line 167 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7994
};
7075
7995
 
7076
7996
 
7077
7997
} // namespace Puma
7078
7998
 
7079
7999
#endif /* __preprocessor_parser__ */
7080
 
#endif // __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
8000
 
 
8001
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7081
8002
using std::map;
7082
8003
 
7083
8004
namespace Puma {
7088
8009
class UnitManager;
7089
8010
class Unit;
7090
8011
 
 
8012
 
 
8013
#line 8014 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7091
8014
} // closed Puma
 
8015
class CCExprResolve;
 
8016
class CExprResolve;
7092
8017
class WinIfExists;
7093
8018
class WinImportHandler;
7094
8019
class WinMacros;
7095
 
class CMatchSyntax;
7096
 
class ExtGnu;
 
8020
class WinAsm;
 
8021
class WinDeclSpecs;
 
8022
class WinMemberExplSpec;
 
8023
class WinTypeKeywords;
 
8024
class WinFriend;
7097
8025
class ExtAC;
7098
8026
class ExtACBuilderCoupling;
7099
8027
class ExtACSyntaxCoupling;
7100
8028
class ExtACTree;
7101
8029
class ExtACKeywords;
7102
 
class WinAsm;
7103
 
class WinDeclSpecs;
7104
 
class WinMemberExplSpec;
7105
 
class WinTypeKeywords;
 
8030
class ExtGnu;
7106
8031
class PragmaOnceUnitState;
7107
8032
class PragmaOnce;
7108
 
class CCExprResolve;
7109
 
class CExprResolve;
 
8033
class CMatchSyntax;
7110
8034
namespace Puma {
7111
 
class PreFileIncluder {  friend class ::WinIfExists;
 
8035
 
 
8036
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
8037
class PreFileIncluder {
 
8038
#line 8039 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8039
  friend class ::CCExprResolve;
 
8040
  friend class ::CExprResolve;
 
8041
  friend class ::WinIfExists;
7112
8042
  friend class ::WinImportHandler;
7113
8043
  friend class ::WinMacros;
7114
 
  friend class ::CMatchSyntax;
7115
 
  friend class ::ExtGnu;
 
8044
  friend class ::WinAsm;
 
8045
  friend class ::WinDeclSpecs;
 
8046
  friend class ::WinMemberExplSpec;
 
8047
  friend class ::WinTypeKeywords;
 
8048
  friend class ::WinFriend;
7116
8049
  friend class ::ExtAC;
7117
8050
  friend class ::ExtACBuilderCoupling;
7118
8051
  friend class ::ExtACSyntaxCoupling;
7119
8052
  friend class ::ExtACTree;
7120
8053
  friend class ::ExtACKeywords;
7121
 
  friend class ::WinAsm;
7122
 
  friend class ::WinDeclSpecs;
7123
 
  friend class ::WinMemberExplSpec;
7124
 
  friend class ::WinTypeKeywords;
 
8054
  friend class ::ExtGnu;
7125
8055
  friend class ::PragmaOnceUnitState;
7126
8056
  friend class ::PragmaOnce;
7127
 
  friend class ::CCExprResolve;
7128
 
  friend class ::CExprResolve;
 
8057
  friend class ::CMatchSyntax;
 
8058
 
 
8059
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7129
8060
 
7130
8061
  int                       _next;
7131
8062
  PreParserState     *_state;
7136
8067
  PreMacroExpander _expander;
7137
8068
 
7138
8069
  // List of include paths.
7139
 
  Array<char*> _includeDirs;
 
8070
  Array<Filename> _includeDirs;
7140
8071
  
7141
8072
  // true if the last included file was protected by an active include guard
7142
8073
  bool _guarded;
7170
8101
        
7171
8102
public:
7172
8103
  PreFileIncluder (PreprocessorParser &);
7173
 
  ~PreFileIncluder ();
7174
8104
                
7175
8105
  // Push unit on token stack.
7176
 
  public: inline void __exec_old_pushOnStack(::Puma::Unit * );
 
8106
  
 
8107
#line 8108 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8108
public: __attribute__((always_inline)) inline void __exec_old_pushOnStack(::Puma::Unit * );
 
8109
 
 
8110
#line 86 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7177
8111
void pushOnStack (Unit *);
7178
8112
        
7179
8113
  // Include a file.
7180
 
  public: inline ::Puma::Unit * __exec_old_includeFile(const char * name);
 
8114
  
 
8115
#line 8116 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8116
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_includeFile(const char * name);
 
8117
 
 
8118
#line 89 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7181
8119
Unit *includeFile (const char *name);
7182
8120
  Unit *handleIncludeOption (const char *name);
7183
8121
                          
7191
8129
  // Add a new include path to list of include paths.
7192
8130
  void addIncludePath (const char *path);
7193
8131
        
7194
 
  Array<char*> &getIncludePaths () { return (Array<char*> &)_includeDirs; }
 
8132
  Array<Filename> &getIncludePaths () { return _includeDirs; }
7195
8133
};
7196
8134
 
7197
8135
 
7199
8137
 
7200
8138
#endif /* __pre_file_includer__ */
7201
8139
 
 
8140
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8141
 
 
8142
#line 8143 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8143
 
 
8144
#ifndef __ac_fwd_PragmaOnce__
 
8145
#define __ac_fwd_PragmaOnce__
 
8146
class PragmaOnce;
 
8147
namespace AC {
 
8148
  template <class JoinPoint>
 
8149
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
8150
  template <class JoinPoint>
 
8151
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
8152
  template <class JoinPoint>
 
8153
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
8154
  template <class JoinPoint>
 
8155
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
8156
}
 
8157
#endif
 
8158
 
 
8159
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8160
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8161
#endif
 
8162
 
 
8163
#ifndef __ac_fwd_WinMacros__
 
8164
#define __ac_fwd_WinMacros__
 
8165
class WinMacros;
 
8166
namespace AC {
 
8167
  template <class JoinPoint>
 
8168
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
 
8169
}
 
8170
#endif
 
8171
 
 
8172
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
8173
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
8174
#endif
 
8175
 
7202
8176
#ifndef __ac_fwd_WinIfExists__
7203
8177
#define __ac_fwd_WinIfExists__
7204
8178
class WinIfExists;
7205
8179
namespace AC {
7206
8180
  template <class JoinPoint>
7207
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
 
8181
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
7208
8182
}
7209
8183
#endif
7210
8184
 
7211
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
7212
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8185
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8186
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
7213
8187
#endif
7214
8188
 
7215
8189
#ifndef __ac_fwd_WinImportHandler__
7216
8190
#define __ac_fwd_WinImportHandler__
7217
8191
class WinImportHandler;
7218
8192
namespace AC {
7219
 
  template <class JoinPoint, class Binding>
7220
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
7221
 
}
7222
 
#endif
7223
 
 
7224
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
7225
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
7226
 
#endif
7227
 
 
7228
 
#ifndef __ac_fwd_PragmaOnce__
7229
 
#define __ac_fwd_PragmaOnce__
7230
 
class PragmaOnce;
7231
 
namespace AC {
7232
 
  template <class JoinPoint>
7233
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
7234
 
  template <class JoinPoint>
7235
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
7236
 
  template <class JoinPoint, class Binding>
7237
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
7238
 
  template <class JoinPoint>
7239
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
7240
 
}
7241
 
#endif
7242
 
 
7243
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7244
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7245
 
#endif
7246
 
 
7247
 
#ifndef __ac_fwd_WinMacros__
7248
 
#define __ac_fwd_WinMacros__
7249
 
class WinMacros;
7250
 
namespace AC {
7251
 
  template <class JoinPoint, class Binding>
7252
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
7253
 
}
7254
 
#endif
7255
 
 
7256
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
7257
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
7258
 
#endif
7259
 
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7260
 
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
8193
  template <class JoinPoint>
 
8194
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
 
8195
}
 
8196
#endif
 
8197
 
 
8198
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
8199
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
8200
#endif
 
8201
 
 
8202
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7261
8203
// This file is part of PUMA.
7262
8204
// Copyright (C) 1999-2003  The PUMA developer team.
7263
8205
//                                                                
7305
8247
class PreFileIncluder;
7306
8248
class PrePredicateManager;
7307
8249
 
 
8250
 
 
8251
#line 8252 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7308
8252
} // closed Puma
 
8253
class CCExprResolve;
 
8254
class CExprResolve;
7309
8255
class WinIfExists;
7310
8256
class WinImportHandler;
7311
8257
class WinMacros;
7312
 
class CMatchSyntax;
7313
 
class ExtGnu;
 
8258
class WinAsm;
 
8259
class WinDeclSpecs;
 
8260
class WinMemberExplSpec;
 
8261
class WinTypeKeywords;
 
8262
class WinFriend;
7314
8263
class ExtAC;
7315
8264
class ExtACBuilderCoupling;
7316
8265
class ExtACSyntaxCoupling;
7317
8266
class ExtACTree;
7318
8267
class ExtACKeywords;
7319
 
class WinAsm;
7320
 
class WinDeclSpecs;
7321
 
class WinMemberExplSpec;
7322
 
class WinTypeKeywords;
 
8268
class ExtGnu;
7323
8269
class PragmaOnceUnitState;
7324
8270
class PragmaOnce;
7325
 
class CCExprResolve;
7326
 
class CExprResolve;
7327
 
namespace Puma {
7328
 
class PreprocessorParser : public PumaTokenSource {  friend class ::WinIfExists;
 
8271
class CMatchSyntax;
 
8272
namespace Puma {
 
8273
 
 
8274
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8275
 
 
8276
#line 8277 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8277
} // closed Puma
 
8278
 
 
8279
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8280
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8281
#include "WinIfExists.ah"
 
8282
#endif
 
8283
namespace Puma {
 
8284
 
 
8285
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8286
 
 
8287
#line 8288 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8288
} // closed Puma
 
8289
 
 
8290
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8291
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8292
#include "PragmaOnce.ah"
 
8293
#endif
 
8294
namespace Puma {
 
8295
 
 
8296
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8297
class PreprocessorParser : public PumaTokenSource {
 
8298
#line 8299 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8299
  friend class ::CCExprResolve;
 
8300
  friend class ::CExprResolve;
 
8301
  friend class ::WinIfExists;
7329
8302
  friend class ::WinImportHandler;
7330
8303
  friend class ::WinMacros;
7331
 
  friend class ::CMatchSyntax;
7332
 
  friend class ::ExtGnu;
 
8304
  friend class ::WinAsm;
 
8305
  friend class ::WinDeclSpecs;
 
8306
  friend class ::WinMemberExplSpec;
 
8307
  friend class ::WinTypeKeywords;
 
8308
  friend class ::WinFriend;
7333
8309
  friend class ::ExtAC;
7334
8310
  friend class ::ExtACBuilderCoupling;
7335
8311
  friend class ::ExtACSyntaxCoupling;
7336
8312
  friend class ::ExtACTree;
7337
8313
  friend class ::ExtACKeywords;
7338
 
  friend class ::WinAsm;
7339
 
  friend class ::WinDeclSpecs;
7340
 
  friend class ::WinMemberExplSpec;
7341
 
  friend class ::WinTypeKeywords;
 
8314
  friend class ::ExtGnu;
7342
8315
  friend class ::PragmaOnceUnitState;
7343
8316
  friend class ::PragmaOnce;
7344
 
  friend class ::CCExprResolve;
7345
 
  friend class ::CExprResolve;
 
8317
  friend class ::CMatchSyntax;
 
8318
 
 
8319
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7346
8320
 
7347
8321
public:
7348
8322
  // The current mode for token preprocessing
7402
8376
  PreLevelState       *levelState () const       { return _levelState; }
7403
8377
  PreParserState      *parserState () const      { return _parserState; }
7404
8378
  PreMacroManager     *macroManager () const     { return _macroManager; }
 
8379
  void macroManager   (PreMacroManager *m)       { _macroManager = m; }
7405
8380
  PreFileIncluder     *fileIncluder () const     { return _fileIncluder; }
7406
8381
  PrePredicateManager *predicateManager () const { return _predicateManager; }
7407
8382
  UnitManager         *unitManager () const      { return _unitManager; }
7409
8384
  PreMode              pre_mode () const         { return _pre_mode; } 
7410
8385
  bool                 supportGNU () const       { return _support_gnu; }
7411
8386
  CScanner            &cscanner () const         { return (CScanner&) _scanner; }
 
8387
  const char          *importHandler () const    { return _importHandler; }
7412
8388
 
7413
8389
  // Return the preprocessor syntax tree.
7414
8390
  PreTree *syntaxTree () const;
7427
8403
  void freeSyntaxTree ();
7428
8404
        
7429
8405
  // Configure the preprocessor.
7430
 
  public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
8406
  
 
8407
#line 8408 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8408
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
8409
 
 
8410
#line 134 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7431
8411
void configure (const Config &, bool = true);
7432
8412
        
7433
8413
  // Get the next token to parse.
7434
 
  public: inline ::Puma::Token * __exec_old_next();
 
8414
  
 
8415
#line 8416 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8416
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
 
8417
 
 
8418
#line 137 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7435
8419
Token *next ();
7436
8420
        
7437
8421
  TokenStream *scanner () const { return _stream; }
7463
8447
 
7464
8448
  void supportGNU (bool);
7465
8449
   private:
 
8450
 
 
8451
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8452
 Puma :: Token * _pragma_token ;   private:
7466
8453
  typedef PreprocessorParser WinIfExistsCpp;
7467
 
 public :
7468
 
 
7469
 
Stack < unsigned > _depth ;
7470
 
 
7471
 
void skip_up_to ( int ) ;  private:
7472
 
 public :
7473
 
const char * importHandler ( ) const { return _importHandler ; }  private:
7474
 
 Token * _pragma_token ;};
 
8454
 
 
8455
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8456
 public :
 
8457
 
 
8458
Puma :: Stack < unsigned > _depth ;
 
8459
 
 
8460
void skip_up_to ( int ) ;
 
8461
#line 167 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8462
};
7475
8463
 
7476
8464
 
7477
8465
} // namespace Puma
7478
8466
 
7479
8467
#endif /* __preprocessor_parser__ */
7480
 
#endif // __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
8468
 
 
8469
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
7481
8470
#include <stdio.h>
7482
8471
#include <fcntl.h>
7483
8472
using namespace std;
7499
8488
 }
7500
8489
 
7501
8490
 
7502
 
PreFileIncluder::~PreFileIncluder () 
7503
 
 { 
7504
 
    for (long i = 0; i < _includeDirs.length (); i++)
7505
 
        delete[] _includeDirs[i];
7506
 
 }
7507
 
 
7508
 
 
7509
8491
// Add a new path to include paths list.
7510
 
void PreFileIncluder::addIncludePath (const char* path)
7511
 
 {
7512
 
    if (! path) return;
7513
 
  
7514
 
    char* tmp = new char[strlen(path) + 1];
7515
 
    strcpy(tmp,path);
7516
 
    
7517
 
    _includeDirs.append (tmp);
7518
 
 }
 
8492
void PreFileIncluder::addIncludePath (const char* path) {
 
8493
  if (path)
 
8494
    _includeDirs.append (Filename (path));
 
8495
}
7519
8496
 
7520
8497
 
7521
8498
// Include a file.
7541
8518
 
7542
8519
// Include a file.
7543
8520
 
7544
 
 
7545
 
struct TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0 {
7546
 
  typedef ::Puma::Unit * Result;
7547
 
  typedef ::Puma::PreFileIncluder That;
7548
 
  typedef ::Puma::PreFileIncluder Target;
7549
 
  static const int JPID = 53;
 
8521
#line 8522 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8522
 
 
8523
 
 
8524
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0 {
 
8525
  typedef TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0 __TJP;
 
8526
  typedef TResult Result;
 
8527
  typedef TThat   That;
 
8528
  typedef TTarget Target;
 
8529
  enum { ARGS = TArgs::ARGS };
 
8530
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
8531
  static const int JPID = 4404;
7550
8532
  static const AC::JPType JPTYPE = (AC::JPType)8;
7551
8533
  struct Res {
7552
 
    typedef ::Puma::Unit * Type;
7553
 
    typedef ::Puma::Unit * ReferredType;
7554
 
  };
7555
 
  enum { ARGS = 1 };
7556
 
  template <int I, int DUMMY = 0> struct Arg {
7557
 
    typedef void Type;
7558
 
    typedef void ReferredType;
7559
 
  };
7560
 
  template <int DUMMY> struct Arg<0, DUMMY> {
7561
 
    typedef const char * Type;
7562
 
    typedef const char * ReferredType;
 
8534
    typedef TResult Type;
 
8535
    typedef TResult ReferredType;
7563
8536
  };
7564
8537
 
7565
8538
  Result *_result;
 
8539
  That *_that;
7566
8540
 
7567
8541
  inline Result *result() {return (Result*)_result;}
 
8542
  inline That *that() {return (That*)_that;}
7568
8543
 
7569
8544
};
7570
8545
 
 
8546
 
 
8547
#line 87 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
7571
8548
Unit* PreFileIncluder::includeFile (const char*  arg0)
7572
 
 {
7573
 
  AC::ResultBuffer< ::Puma::Unit *  > result;
7574
 
  TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0 tjp;
7575
 
  tjp._result = &(TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0::Result&)result;
7576
 
  ::new (&result) ::Puma::Unit *  (this->__exec_old_includeFile(arg0));
7577
 
  AC::invoke_PragmaOnce_PragmaOnce_a3_after<TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0> (&tjp);
 
8549
 
 
8550
#line 8551 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8551
{
 
8552
  typedef TJP__ZN4Puma15PreFileIncluder11includeFileEPKc_0< ::Puma::Unit * , ::Puma::PreFileIncluder , ::Puma::PreFileIncluder ,  AC::TL< const char * , AC::TLE > > __TJP;
 
8553
  ::Puma::Unit * result;
 
8554
  __TJP tjp;
 
8555
  tjp._result = &(__TJP::Result&)result;
 
8556
  tjp._that =  (__TJP::That*)this;
 
8557
    result = this->__exec_old_includeFile(arg0);
 
8558
  AC::invoke_PragmaOnce_PragmaOnce_a3_after<__TJP> (&tjp);
7578
8559
  return (::Puma::Unit * &)result;
7579
8560
 
7580
8561
}
7581
 
inline ::Puma::Unit * Puma::PreFileIncluder::__exec_old_includeFile(const char * string){
 
8562
__attribute__((always_inline)) inline ::Puma::Unit * Puma::PreFileIncluder::__exec_old_includeFile(const char * string)
 
8563
#line 88 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
8564
{
7582
8565
    if (! string) return (Unit*) 0;
7583
8566
 
7584
8567
    // Build the token unit from string.
7634
8617
                
7635
8618
        // Search the path.
7636
8619
        for (i = _includeDirs.length () - 1; i >= 0; i--) 
7637
 
            if (strcmp (path, _includeDirs[i]) == 0) 
 
8620
            if (strcmp (path, _includeDirs[i].name ()) == 0) 
7638
8621
                break;
7639
8622
        
7640
8623
        // Calculate how many paths should skipped.
7693
8676
        file << token->text ();
7694
8677
    }
7695
8678
 
7696
 
    file << std::ends;
7697
8679
    delete unit;
7698
8680
 
7699
8681
    // If file name is empty we have a syntax error.
7765
8747
        for (int i = _includeDirs.length () - _next; i >= 0; i--) 
7766
8748
        {
7767
8749
            // Build file name like `path/file'
7768
 
            size     = strlen (file) + strlen (_includeDirs.lookup (i)) + 5;
 
8750
            size     = strlen (file) +
 
8751
                       strlen (_includeDirs.lookup (i).name ()) + 5;
7769
8752
            fullname = new char[size];
7770
 
                sprintf (fullname, "%s/%s", _includeDirs.lookup (i), file);
 
8753
            sprintf (fullname, "%s/%s", _includeDirs.lookup (i).name (),
 
8754
              file);
7771
8755
            
7772
8756
            // Now try to include the file from current system 
7773
8757
            // include directory. If this is not the last directory
7940
8924
 
7941
8925
// Push the unit on token stack.
7942
8926
 
7943
 
 
7944
 
struct TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0 {
7945
 
  typedef void Result;
7946
 
  typedef ::Puma::PreFileIncluder That;
7947
 
  typedef ::Puma::PreFileIncluder Target;
7948
 
  static const int JPID = 52;
 
8927
#line 8928 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8928
 
 
8929
 
 
8930
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0 {
 
8931
  typedef TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0 __TJP;
 
8932
  typedef TResult Result;
 
8933
  typedef TThat   That;
 
8934
  typedef TTarget Target;
 
8935
  enum { ARGS = TArgs::ARGS };
 
8936
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
8937
  static const int JPID = 4402;
7949
8938
  static const AC::JPType JPTYPE = (AC::JPType)8;
7950
8939
  struct Res {
7951
 
    typedef void Type;
7952
 
    typedef void ReferredType;
7953
 
  };
7954
 
  enum { ARGS = 1 };
7955
 
  template <int I, int DUMMY = 0> struct Arg {
7956
 
    typedef void Type;
7957
 
    typedef void ReferredType;
7958
 
  };
7959
 
  template <int DUMMY> struct Arg<0, DUMMY> {
7960
 
    typedef ::Puma::Unit * Type;
7961
 
    typedef ::Puma::Unit * ReferredType;
 
8940
    typedef TResult Type;
 
8941
    typedef TResult ReferredType;
7962
8942
  };
7963
8943
 
7964
 
  void **_args;
 
8944
  void *_args[ARGS];
7965
8945
  That *_that;
7966
8946
 
7967
8947
  inline void *arg (int n) {return _args[n];}
7971
8951
  inline That *that() {return (That*)_that;}
7972
8952
 
7973
8953
  void proceed () {
7974
 
((TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0::That*)_that)->__exec_old_pushOnStack(*((TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0::Arg<0>::ReferredType*)_args[0]));
 
8954
    __TJP::that ()->__exec_old_pushOnStack(*(typename __TJP::template Arg<0>::ReferredType*)__TJP::arg(0));
7975
8955
  }
7976
 
};
7977
 
struct Binding_TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0_PragmaOnce_PragmaOnce_a2_around {
7978
 
  typedef TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0 TJP;
 
8956
struct Binding_PragmaOnce_PragmaOnce_a2_around {
 
8957
  typedef __TJP TJP;
7979
8958
  template <int I, int DUMMY = 0> struct Arg {
7980
8959
    void val (TJP *tjp) {} // for VC7
7981
8960
  };
7982
8961
  template <int DUMMY> struct Arg<0, DUMMY> {
7983
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
8962
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
7984
8963
  };
7985
8964
};
7986
 
 
7987
 
void PreFileIncluder::pushOnStack (Unit * arg0) {
7988
 
  void *args__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit[] = { (void*)&arg0 };
7989
 
  TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0 tjp;
7990
 
  tjp._args = args__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit;
7991
 
  tjp._that =  (TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0::That*)this;
7992
 
  AC::invoke_PragmaOnce_PragmaOnce_a2_around<TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0, Binding_TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0_PragmaOnce_PragmaOnce_a2_around> (&tjp);
7993
 
 
 
8965
};
 
8966
 
 
8967
 
 
8968
#line 450 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
8969
void PreFileIncluder::pushOnStack (Unit * arg0) 
 
8970
#line 8971 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
8971
{
 
8972
  typedef TJP__ZN4Puma15PreFileIncluder11pushOnStackEPN4PumaE4Unit_0< void, ::Puma::PreFileIncluder , ::Puma::PreFileIncluder ,  AC::TL< ::Puma::Unit * , AC::TLE > > __TJP;
 
8973
    __TJP tjp;
 
8974
  tjp._args[0] = (void*)&arg0;
 
8975
  tjp._that =  (__TJP::That*)this;
 
8976
  AC::invoke_PragmaOnce_PragmaOnce_a2_around<__TJP> (&tjp);
 
8977
  
7994
8978
}
7995
 
inline void Puma::PreFileIncluder::__exec_old_pushOnStack(::Puma::Unit * unit){
 
8979
__attribute__((always_inline)) inline void Puma::PreFileIncluder::__exec_old_pushOnStack(::Puma::Unit * unit)
 
8980
#line 450 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
8981
{
7996
8982
  if (!hasActiveIncludeGuard (unit))
7997
8983
    ((TokenStream*) (_parser->scanner ()))->push (unit);
7998
8984
}
8073
9059
 
8074
9060
} // namespace Puma
8075
9061
 
8076
 
#ifdef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
8077
 
/*** begin of aspect includes ***/
8078
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__)
8079
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
8080
 
#endif
8081
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
8082
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8083
 
#endif
8084
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__)
8085
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
 
9062
#line 9063 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9063
 
 
9064
#ifdef __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__
 
9065
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
9066
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
9067
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
9068
#include "CCExprResolveCC.ah"
 
9069
#endif
 
9070
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9071
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9072
#include "ExtACTree.ah"
 
9073
#endif
 
9074
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
9075
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
9076
#include "ExtGnu.ah"
 
9077
#endif
 
9078
#endif
 
9079
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9080
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9081
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9082
#include "CCExprResolveH.ah"
 
9083
#endif
 
9084
#endif
 
9085
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
9086
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
9087
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
9088
#include "CExprResolveCC.ah"
 
9089
#endif
 
9090
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9091
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9092
#include "ExtACTree.ah"
 
9093
#endif
 
9094
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
9095
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
9096
#include "ExtGnu.ah"
 
9097
#endif
 
9098
#endif
 
9099
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9100
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9101
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9102
#include "CExprResolveH.ah"
 
9103
#endif
 
9104
#endif
 
9105
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9106
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9107
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
9108
 
 
9109
#line 47 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
9110
#endif
 
9111
#endif
 
9112
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
9113
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
9114
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
9115
 
 
9116
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9117
// This file is part of PUMA.
 
9118
// Copyright (C) 1999-2003  The PUMA developer team.
 
9119
//                                                                
 
9120
// This program is free software;  you can redistribute it and/or 
 
9121
// modify it under the terms of the GNU General Public License as 
 
9122
// published by the Free Software Foundation; either version 2 of 
 
9123
// the License, or (at your option) any later version.            
 
9124
//                                                                
 
9125
// This program is distributed in the hope that it will be useful,
 
9126
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
9127
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
9128
// GNU General Public License for more details.                   
 
9129
//                                                                
 
9130
// You should have received a copy of the GNU General Public      
 
9131
// License along with this program; if not, write to the Free     
 
9132
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
9133
// MA  02111-1307  USA                                            
 
9134
 
 
9135
#ifndef __WinImportHandler__
 
9136
#define __WinImportHandler__
 
9137
 
 
9138
/********************************************************/
 
9139
/* Win #import directive support                        */
 
9140
/********************************************************/
 
9141
 
 
9142
 
 
9143
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9144
 
 
9145
#line 9146 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9146
class CCExprResolve;
 
9147
class CExprResolve;
 
9148
class WinIfExists;
 
9149
class WinMacros;
 
9150
class WinAsm;
 
9151
class WinDeclSpecs;
 
9152
class WinMemberExplSpec;
 
9153
class WinTypeKeywords;
 
9154
class WinFriend;
 
9155
class ExtAC;
 
9156
class ExtACBuilderCoupling;
 
9157
class ExtACSyntaxCoupling;
 
9158
class ExtACTree;
 
9159
class ExtACKeywords;
 
9160
class ExtGnu;
 
9161
class PragmaOnceUnitState;
 
9162
class PragmaOnce;
 
9163
class CMatchSyntax;
 
9164
 
 
9165
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9166
class WinImportHandler {
 
9167
#line 9168 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9168
 
 
9169
public:
 
9170
  static WinImportHandler *aspectof () {
 
9171
    static WinImportHandler __instance;
 
9172
    return &__instance;
 
9173
  }
 
9174
  static WinImportHandler *aspectOf () {
 
9175
    return aspectof ();
 
9176
  }
 
9177
private:
 
9178
 
 
9179
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9180
 
 
9181
#line 9182 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9182
  friend class ::CCExprResolve;
 
9183
  friend class ::CExprResolve;
 
9184
  friend class ::WinIfExists;
 
9185
  friend class ::WinMacros;
 
9186
  friend class ::WinAsm;
 
9187
  friend class ::WinDeclSpecs;
 
9188
  friend class ::WinMemberExplSpec;
 
9189
  friend class ::WinTypeKeywords;
 
9190
  friend class ::WinFriend;
 
9191
  friend class ::ExtAC;
 
9192
  friend class ::ExtACBuilderCoupling;
 
9193
  friend class ::ExtACSyntaxCoupling;
 
9194
  friend class ::ExtACTree;
 
9195
  friend class ::ExtACKeywords;
 
9196
  friend class ::ExtGnu;
 
9197
  friend class ::PragmaOnceUnitState;
 
9198
  friend class ::PragmaOnce;
 
9199
  friend class ::CMatchSyntax;
 
9200
 
 
9201
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9202
 
 
9203
  /********************************************************/
 
9204
  /* Win #import directive                                */
 
9205
  /********************************************************/
 
9206
 
 
9207
  // pointcuts
 
9208
  
 
9209
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9210
 
 
9211
  
 
9212
  // handle --import-handler option
 
9213
  
 
9214
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9215
 
 
9216
public: template<class JoinPoint> void __a0_before 
 
9217
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9218
 
 
9219
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9220
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
 
9221
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9222
 {
 
9223
#line 9224 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9224
 
 
9225
  JoinPoint *&thisJoinPoint = tjp;
 
9226
 
 
9227
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9228
 
 
9229
#line 9230 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9230
 
 
9231
  typedef typename JoinPoint::That __JP_That;
 
9232
  typedef typename JoinPoint::Target __JP_Target;
 
9233
  typedef typename JoinPoint::Result __JP_Result;
 
9234
 
 
9235
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9236
 
 
9237
    const Puma::ConfOption *opt;
 
9238
    char *tmp;
 
9239
    
 
9240
    if (process_includes) {
 
9241
      opt = config.Option ("--import-handler");
 
9242
      if (opt && opt->Arguments ()) {
 
9243
        // delete old import handler
 
9244
        if (thisJoinPoint->that ()->_importHandler)
 
9245
          delete[] thisJoinPoint->that ()->_importHandler;
 
9246
        
 
9247
        // get new import handler
 
9248
        tmp = new char[strlen (opt->Argument (0))+1];
 
9249
        strcpy (tmp, opt->Argument (0));
 
9250
        thisJoinPoint->that ()->_importHandler = tmp;
 
9251
      }
 
9252
    }
 
9253
  }
 
9254
#line 9255 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9255
 
 
9256
private:
 
9257
 
 
9258
#line 58 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9259
 
 
9260
 
 
9261
protected:
 
9262
  WinImportHandler () {}
 
9263
};
 
9264
#line 9265 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9265
 
 
9266
namespace AC {
 
9267
  template <class JoinPoint>
 
9268
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
 
9269
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
 
9270
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
 
9271
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
 
9272
  }
 
9273
 
9274
 
 
9275
#line 62 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
9276
 
 
9277
 
 
9278
 
 
9279
#endif /* __WinImportHandler__ */
 
9280
 
 
9281
#line 53 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
9282
#endif
 
9283
#endif
 
9284
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
9285
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
9286
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
9287
 
 
9288
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
8086
9289
// This file is part of PUMA.
8087
9290
// Copyright (C) 1999-2003  The PUMA developer team.
8088
9291
//                                                                
8108
9311
/* Win predefined macros aspect                         */
8109
9312
/********************************************************/
8110
9313
 
8111
 
using namespace Puma;
8112
 
 
8113
 
 
 
9314
 
 
9315
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9316
 
 
9317
#line 9318 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9318
class CCExprResolve;
 
9319
class CExprResolve;
8114
9320
class WinIfExists;
8115
9321
class WinImportHandler;
8116
 
class CMatchSyntax;
8117
 
class ExtGnu;
 
9322
class WinAsm;
 
9323
class WinDeclSpecs;
 
9324
class WinMemberExplSpec;
 
9325
class WinTypeKeywords;
 
9326
class WinFriend;
8118
9327
class ExtAC;
8119
9328
class ExtACBuilderCoupling;
8120
9329
class ExtACSyntaxCoupling;
8121
9330
class ExtACTree;
8122
9331
class ExtACKeywords;
8123
 
class WinAsm;
8124
 
class WinDeclSpecs;
8125
 
class WinMemberExplSpec;
8126
 
class WinTypeKeywords;
 
9332
class ExtGnu;
8127
9333
class PragmaOnceUnitState;
8128
9334
class PragmaOnce;
8129
 
class CCExprResolve;
8130
 
class CExprResolve;
 
9335
class CMatchSyntax;
 
9336
 
 
9337
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
8131
9338
class WinMacros {
 
9339
#line 9340 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9340
 
8132
9341
public:
8133
9342
  static WinMacros *aspectof () {
8134
9343
    static WinMacros __instance;
8138
9347
    return aspectof ();
8139
9348
  }
8140
9349
private:
 
9350
 
 
9351
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9352
 
 
9353
#line 9354 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9354
  friend class ::CCExprResolve;
 
9355
  friend class ::CExprResolve;
8141
9356
  friend class ::WinIfExists;
8142
9357
  friend class ::WinImportHandler;
8143
 
  friend class ::CMatchSyntax;
8144
 
  friend class ::ExtGnu;
 
9358
  friend class ::WinAsm;
 
9359
  friend class ::WinDeclSpecs;
 
9360
  friend class ::WinMemberExplSpec;
 
9361
  friend class ::WinTypeKeywords;
 
9362
  friend class ::WinFriend;
8145
9363
  friend class ::ExtAC;
8146
9364
  friend class ::ExtACBuilderCoupling;
8147
9365
  friend class ::ExtACSyntaxCoupling;
8148
9366
  friend class ::ExtACTree;
8149
9367
  friend class ::ExtACKeywords;
8150
 
  friend class ::WinAsm;
8151
 
  friend class ::WinDeclSpecs;
8152
 
  friend class ::WinMemberExplSpec;
8153
 
  friend class ::WinTypeKeywords;
 
9368
  friend class ::ExtGnu;
8154
9369
  friend class ::PragmaOnceUnitState;
8155
9370
  friend class ::PragmaOnce;
8156
 
  friend class ::CCExprResolve;
8157
 
  friend class ::CExprResolve;
 
9371
  friend class ::CMatchSyntax;
 
9372
 
 
9373
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
8158
9374
 
8159
9375
  /********************************************************/
8160
9376
  /* Win specific predefined macros                       */
8162
9378
 
8163
9379
  // predefine win specific macros
8164
9380
  
8165
 
public: template<class JoinPoint> void __a0_before (JoinPoint *tjp, const Config &config) {
 
9381
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9382
 
 
9383
public: template<class JoinPoint> void __a0_before 
 
9384
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9385
 
 
9386
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9387
(JoinPoint *tjp, const Puma::Config &config)
 
9388
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9389
 {
 
9390
#line 9391 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9391
 
8166
9392
  JoinPoint *&thisJoinPoint = tjp;
8167
9393
 
 
9394
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9395
 
 
9396
#line 9397 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9397
 
8168
9398
  typedef typename JoinPoint::That __JP_That;
8169
9399
  typedef typename JoinPoint::Target __JP_Target;
8170
9400
  typedef typename JoinPoint::Result __JP_Result;
8171
9401
 
 
9402
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9403
 
8172
9404
    if (config.Option ("--vc")) {
8173
9405
      // constants
8174
9406
      thisJoinPoint->that ()->defMacro ("__w64", " ");
8180
9412
      thisJoinPoint->that ()->defMacro ("__noop", " ");
8181
9413
 
8182
9414
      // function-like macros
8183
 
      PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
 
9415
      Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
8184
9416
      args->append ("__arg0");
8185
9417
      thisJoinPoint->that ()->macroManager ()->addMacro (
8186
 
        new PreMacro ("__declspec", args, " "));
 
9418
        new Puma::PreMacro ("__declspec", args, " "));
8187
9419
    }
8188
9420
  }
 
9421
#line 9422 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9422
 
8189
9423
private:
8190
9424
 
 
9425
#line 54 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9426
 
8191
9427
 
8192
9428
protected:
8193
9429
  WinMacros () {}
8194
9430
};
 
9431
#line 9432 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9432
 
8195
9433
namespace AC {
8196
 
  template <class JoinPoint, class Binding>
8197
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
8198
 
    typedef typename Binding::template Arg<0> Arg0;
 
9434
  template <class JoinPoint>
 
9435
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
 
9436
    typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
8199
9437
    ::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
8200
9438
  }
8201
9439
8202
9440
 
 
9441
#line 58 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
9442
 
8203
9443
 
8204
9444
 
8205
9445
#endif /* __WinMacros__ */
8206
 
#endif
8207
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
8208
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
8209
 
#include "CMatchSyntax.ah"
8210
 
#endif
8211
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__)
8212
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__
8213
 
#include "ExtGnu.ah"
8214
 
#endif
8215
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__)
8216
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__
 
9446
 
 
9447
#line 59 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
9448
#endif
 
9449
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
9450
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
9451
 
 
9452
#line 63 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
9453
#endif
 
9454
#endif
 
9455
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
 
9456
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
 
9457
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
 
9458
#include "WinAsm.ah"
 
9459
#endif
 
9460
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9461
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9462
#include "ExtACTree.ah"
 
9463
#endif
 
9464
#endif
 
9465
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
9466
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
9467
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
9468
#include "WinDeclSpecs.ah"
 
9469
#endif
 
9470
#endif
 
9471
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
9472
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
9473
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
9474
#include "WinMemberExplSpec.ah"
 
9475
#endif
 
9476
#endif
 
9477
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
9478
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
9479
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
9480
#include "WinTypeKeywords.ah"
 
9481
#endif
 
9482
#endif
 
9483
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
 
9484
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
 
9485
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
 
9486
#include "WinFriend.ah"
 
9487
#endif
 
9488
#endif
 
9489
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
 
9490
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
 
9491
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
8217
9492
#include "ExtAC.ah"
8218
9493
#endif
8219
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
8220
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
9494
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9495
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9496
#include "ExtACTree.ah"
 
9497
#endif
 
9498
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9499
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9500
#include "ExtACKeywords.ah"
 
9501
#endif
 
9502
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
9503
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
9504
#include "ExtGnu.ah"
 
9505
#endif
 
9506
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
9507
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
9508
#include "PragmaOnceUnitState.ah"
 
9509
#endif
 
9510
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
9511
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
9512
#include "CMatchSyntax.ah"
 
9513
#endif
 
9514
#endif
 
9515
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
9516
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
9517
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
8221
9518
#include "ExtACBuilderH.ah"
8222
9519
#endif
8223
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
8224
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
9520
#endif
 
9521
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
9522
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
9523
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
8225
9524
#include "ExtACBuilderCC.ah"
8226
9525
#endif
8227
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
8228
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
9526
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9527
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9528
#include "ExtACTree.ah"
 
9529
#endif
 
9530
#endif
 
9531
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
9532
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
9533
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
8229
9534
#include "ExtACSyntaxH.ah"
8230
9535
#endif
8231
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
8232
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
9536
#endif
 
9537
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
9538
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
9539
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
8233
9540
#include "ExtACSyntaxCC.ah"
8234
9541
#endif
8235
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__)
8236
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9542
#endif
 
9543
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9544
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
9545
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
8237
9546
#include "ExtACTree.ah"
8238
9547
#endif
8239
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
8240
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9548
#endif
 
9549
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9550
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9551
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9552
 
 
9553
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
8241
9554
// This file is part of PUMA.
8242
9555
// Copyright (C) 1999-2003  The PUMA developer team.
8243
9556
//                                                                
8260
9573
#define __ext_ac_keywords_ah__
8261
9574
 
8262
9575
 
 
9576
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
 
9577
 
 
9578
#line 9579 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9579
 
8263
9580
#ifndef __ac_fwd_ExtACKeywords__
8264
9581
#define __ac_fwd_ExtACKeywords__
8265
9582
class ExtACKeywords;
8266
9583
namespace AC {
8267
 
  template <class JoinPoint, class Binding>
8268
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
8269
 
  template <class JoinPoint, class Binding>
8270
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
8271
 
  template <class JoinPoint>
8272
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
9584
  template <class JoinPoint>
 
9585
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
9586
  template <class JoinPoint>
 
9587
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
9588
  template <class JoinPoint>
 
9589
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
8273
9590
}
8274
9591
#endif
8275
9592
 
8276
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8277
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9593
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
9594
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8278
9595
#endif
 
9596
 
 
9597
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
8279
9598
// This file is part of PUMA.
8280
9599
// Copyright (C) 1999-2003  The PUMA developer team.
8281
9600
//                                                                
8299
9618
 
8300
9619
// Special project derivation for C++ sources.
8301
9620
 
 
9621
 
 
9622
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
8302
9623
// This file is part of PUMA.
8303
9624
// Copyright (C) 1999-2003  The PUMA developer team.
8304
9625
//                                                                
8323
9644
// The basic project is a set of source directories. It provides 
8324
9645
// methods for searching and writing files. 
8325
9646
 
 
9647
 
 
9648
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
8326
9649
// This file is part of PUMA.
8327
9650
// Copyright (C) 1999-2003  The PUMA developer team.
8328
9651
//                                                                
8346
9669
 
8347
9670
// Manages directories and methods to access the files in it.
8348
9671
 
 
9672
 
 
9673
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathInfo.h"
8349
9674
// This file is part of PUMA.
8350
9675
// Copyright (C) 1999-2003  The PUMA developer team.
8351
9676
//                                                                
8373
9698
namespace Puma {
8374
9699
 
8375
9700
 
 
9701
 
 
9702
#line 9703 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8376
9703
} // closed Puma
 
9704
class CCExprResolve;
 
9705
class CExprResolve;
8377
9706
class WinIfExists;
8378
9707
class WinImportHandler;
8379
9708
class WinMacros;
8380
 
class CMatchSyntax;
8381
 
class ExtGnu;
 
9709
class WinAsm;
 
9710
class WinDeclSpecs;
 
9711
class WinMemberExplSpec;
 
9712
class WinTypeKeywords;
 
9713
class WinFriend;
8382
9714
class ExtAC;
8383
9715
class ExtACBuilderCoupling;
8384
9716
class ExtACSyntaxCoupling;
8385
9717
class ExtACTree;
8386
9718
class ExtACKeywords;
8387
 
class WinAsm;
8388
 
class WinDeclSpecs;
8389
 
class WinMemberExplSpec;
8390
 
class WinTypeKeywords;
 
9719
class ExtGnu;
8391
9720
class PragmaOnceUnitState;
8392
9721
class PragmaOnce;
8393
 
class CCExprResolve;
8394
 
class CExprResolve;
 
9722
class CMatchSyntax;
8395
9723
namespace Puma {
8396
 
class PathInfo {  friend class ::WinIfExists;
 
9724
 
 
9725
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
9726
class PathInfo {
 
9727
#line 9728 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9728
  friend class ::CCExprResolve;
 
9729
  friend class ::CExprResolve;
 
9730
  friend class ::WinIfExists;
8397
9731
  friend class ::WinImportHandler;
8398
9732
  friend class ::WinMacros;
8399
 
  friend class ::CMatchSyntax;
8400
 
  friend class ::ExtGnu;
 
9733
  friend class ::WinAsm;
 
9734
  friend class ::WinDeclSpecs;
 
9735
  friend class ::WinMemberExplSpec;
 
9736
  friend class ::WinTypeKeywords;
 
9737
  friend class ::WinFriend;
8401
9738
  friend class ::ExtAC;
8402
9739
  friend class ::ExtACBuilderCoupling;
8403
9740
  friend class ::ExtACSyntaxCoupling;
8404
9741
  friend class ::ExtACTree;
8405
9742
  friend class ::ExtACKeywords;
8406
 
  friend class ::WinAsm;
8407
 
  friend class ::WinDeclSpecs;
8408
 
  friend class ::WinMemberExplSpec;
8409
 
  friend class ::WinTypeKeywords;
 
9743
  friend class ::ExtGnu;
8410
9744
  friend class ::PragmaOnceUnitState;
8411
9745
  friend class ::PragmaOnce;
8412
 
  friend class ::CCExprResolve;
8413
 
  friend class ::CExprResolve;
 
9746
  friend class ::CMatchSyntax;
 
9747
 
 
9748
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathInfo.h"
8414
9749
 
8415
9750
  const char *_src;        // Source path.
8416
9751
  const char *_dest;        // Destination path.
8436
9771
} // namespace Puma
8437
9772
 
8438
9773
#endif /* __path_info__ */
 
9774
 
 
9775
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
8439
9776
// This file is part of PUMA.
8440
9777
// Copyright (C) 1999-2003  The PUMA developer team.
8441
9778
//                                                                
8461
9798
// a project is managing. But only files matching a given pattern 
8462
9799
// are iterated. 
8463
9800
 
 
9801
 
 
9802
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
8464
9803
// This file is part of PUMA.
8465
9804
// Copyright (C) 1999-2003  The PUMA developer team.
8466
9805
//                                                                
8482
9821
#ifndef __project_file__
8483
9822
#define __project_file__
8484
9823
 
 
9824
 
 
9825
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
8485
9826
using std::map;
 
9827
 
 
9828
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
8486
9829
using std::string;
8487
9830
 
 
9831
 
 
9832
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
8488
9833
namespace Puma {
8489
9834
 
8490
9835
// the project file abstraction is used to store all filenames relevant
8491
9836
// for a specific file that is managed by Puma.
8492
9837
 
 
9838
 
 
9839
#line 9840 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8493
9840
} // closed Puma
 
9841
class CCExprResolve;
 
9842
class CExprResolve;
8494
9843
class WinIfExists;
8495
9844
class WinImportHandler;
8496
9845
class WinMacros;
8497
 
class CMatchSyntax;
8498
 
class ExtGnu;
 
9846
class WinAsm;
 
9847
class WinDeclSpecs;
 
9848
class WinMemberExplSpec;
 
9849
class WinTypeKeywords;
 
9850
class WinFriend;
8499
9851
class ExtAC;
8500
9852
class ExtACBuilderCoupling;
8501
9853
class ExtACSyntaxCoupling;
8502
9854
class ExtACTree;
8503
9855
class ExtACKeywords;
8504
 
class WinAsm;
8505
 
class WinDeclSpecs;
8506
 
class WinMemberExplSpec;
8507
 
class WinTypeKeywords;
 
9856
class ExtGnu;
8508
9857
class PragmaOnceUnitState;
8509
9858
class PragmaOnce;
8510
 
class CCExprResolve;
8511
 
class CExprResolve;
 
9859
class CMatchSyntax;
8512
9860
namespace Puma {
8513
 
class ProjectFile {  friend class ::WinIfExists;
 
9861
 
 
9862
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
9863
class ProjectFile {
 
9864
#line 9865 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9865
  friend class ::CCExprResolve;
 
9866
  friend class ::CExprResolve;
 
9867
  friend class ::WinIfExists;
8514
9868
  friend class ::WinImportHandler;
8515
9869
  friend class ::WinMacros;
8516
 
  friend class ::CMatchSyntax;
8517
 
  friend class ::ExtGnu;
 
9870
  friend class ::WinAsm;
 
9871
  friend class ::WinDeclSpecs;
 
9872
  friend class ::WinMemberExplSpec;
 
9873
  friend class ::WinTypeKeywords;
 
9874
  friend class ::WinFriend;
8518
9875
  friend class ::ExtAC;
8519
9876
  friend class ::ExtACBuilderCoupling;
8520
9877
  friend class ::ExtACSyntaxCoupling;
8521
9878
  friend class ::ExtACTree;
8522
9879
  friend class ::ExtACKeywords;
8523
 
  friend class ::WinAsm;
8524
 
  friend class ::WinDeclSpecs;
8525
 
  friend class ::WinMemberExplSpec;
8526
 
  friend class ::WinTypeKeywords;
 
9880
  friend class ::ExtGnu;
8527
9881
  friend class ::PragmaOnceUnitState;
8528
9882
  friend class ::PragmaOnce;
8529
 
  friend class ::CCExprResolve;
8530
 
  friend class ::CExprResolve;
 
9883
  friend class ::CMatchSyntax;
 
9884
 
 
9885
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
8531
9886
 
8532
9887
  Filename _nick_name;
8533
9888
  Filename _dest_path;
8550
9905
} // namespace Puma
8551
9906
 
8552
9907
#endif // __project_file__
 
9908
 
 
9909
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
8553
9910
namespace Puma {
8554
9911
 
8555
9912
class PathManager;
8556
9913
class RegComp;
8557
9914
 
 
9915
 
 
9916
#line 9917 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8558
9917
} // closed Puma
 
9918
class CCExprResolve;
 
9919
class CExprResolve;
8559
9920
class WinIfExists;
8560
9921
class WinImportHandler;
8561
9922
class WinMacros;
8562
 
class CMatchSyntax;
8563
 
class ExtGnu;
 
9923
class WinAsm;
 
9924
class WinDeclSpecs;
 
9925
class WinMemberExplSpec;
 
9926
class WinTypeKeywords;
 
9927
class WinFriend;
8564
9928
class ExtAC;
8565
9929
class ExtACBuilderCoupling;
8566
9930
class ExtACSyntaxCoupling;
8567
9931
class ExtACTree;
8568
9932
class ExtACKeywords;
8569
 
class WinAsm;
8570
 
class WinDeclSpecs;
8571
 
class WinMemberExplSpec;
8572
 
class WinTypeKeywords;
 
9933
class ExtGnu;
8573
9934
class PragmaOnceUnitState;
8574
9935
class PragmaOnce;
8575
 
class CCExprResolve;
8576
 
class CExprResolve;
 
9936
class CMatchSyntax;
8577
9937
namespace Puma {
8578
 
class PathIterator : public PFMConstIter {  friend class ::WinIfExists;
 
9938
 
 
9939
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
9940
class PathIterator : public PFMConstIter {
 
9941
#line 9942 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
9942
  friend class ::CCExprResolve;
 
9943
  friend class ::CExprResolve;
 
9944
  friend class ::WinIfExists;
8579
9945
  friend class ::WinImportHandler;
8580
9946
  friend class ::WinMacros;
8581
 
  friend class ::CMatchSyntax;
8582
 
  friend class ::ExtGnu;
 
9947
  friend class ::WinAsm;
 
9948
  friend class ::WinDeclSpecs;
 
9949
  friend class ::WinMemberExplSpec;
 
9950
  friend class ::WinTypeKeywords;
 
9951
  friend class ::WinFriend;
8583
9952
  friend class ::ExtAC;
8584
9953
  friend class ::ExtACBuilderCoupling;
8585
9954
  friend class ::ExtACSyntaxCoupling;
8586
9955
  friend class ::ExtACTree;
8587
9956
  friend class ::ExtACKeywords;
8588
 
  friend class ::WinAsm;
8589
 
  friend class ::WinDeclSpecs;
8590
 
  friend class ::WinMemberExplSpec;
8591
 
  friend class ::WinTypeKeywords;
 
9957
  friend class ::ExtGnu;
8592
9958
  friend class ::PragmaOnceUnitState;
8593
9959
  friend class ::PragmaOnce;
8594
 
  friend class ::CCExprResolve;
8595
 
  friend class ::CExprResolve;
 
9960
  friend class ::CMatchSyntax;
 
9961
 
 
9962
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
8596
9963
 
8597
9964
  friend class PathManager;
8598
9965
 
8616
9983
} // namespace Puma
8617
9984
 
8618
9985
#endif /* __path_iterator__ */
 
9986
 
 
9987
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
8619
9988
namespace Puma {
8620
9989
 
8621
9990
class RegComp;
8622
9991
class Config;
8623
9992
class Unit;
8624
9993
 
 
9994
 
 
9995
#line 9996 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8625
9996
} // closed Puma
 
9997
class CCExprResolve;
 
9998
class CExprResolve;
8626
9999
class WinIfExists;
8627
10000
class WinImportHandler;
8628
10001
class WinMacros;
8629
 
class CMatchSyntax;
8630
 
class ExtGnu;
 
10002
class WinAsm;
 
10003
class WinDeclSpecs;
 
10004
class WinMemberExplSpec;
 
10005
class WinTypeKeywords;
 
10006
class WinFriend;
8631
10007
class ExtAC;
8632
10008
class ExtACBuilderCoupling;
8633
10009
class ExtACSyntaxCoupling;
8634
10010
class ExtACTree;
8635
10011
class ExtACKeywords;
8636
 
class WinAsm;
8637
 
class WinDeclSpecs;
8638
 
class WinMemberExplSpec;
8639
 
class WinTypeKeywords;
 
10012
class ExtGnu;
8640
10013
class PragmaOnceUnitState;
8641
10014
class PragmaOnce;
8642
 
class CCExprResolve;
8643
 
class CExprResolve;
 
10015
class CMatchSyntax;
8644
10016
namespace Puma {
8645
 
class PathManager {  friend class ::WinIfExists;
 
10017
 
 
10018
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
10019
class PathManager {
 
10020
#line 10021 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10021
  friend class ::CCExprResolve;
 
10022
  friend class ::CExprResolve;
 
10023
  friend class ::WinIfExists;
8646
10024
  friend class ::WinImportHandler;
8647
10025
  friend class ::WinMacros;
8648
 
  friend class ::CMatchSyntax;
8649
 
  friend class ::ExtGnu;
 
10026
  friend class ::WinAsm;
 
10027
  friend class ::WinDeclSpecs;
 
10028
  friend class ::WinMemberExplSpec;
 
10029
  friend class ::WinTypeKeywords;
 
10030
  friend class ::WinFriend;
8650
10031
  friend class ::ExtAC;
8651
10032
  friend class ::ExtACBuilderCoupling;
8652
10033
  friend class ::ExtACSyntaxCoupling;
8653
10034
  friend class ::ExtACTree;
8654
10035
  friend class ::ExtACKeywords;
8655
 
  friend class ::WinAsm;
8656
 
  friend class ::WinDeclSpecs;
8657
 
  friend class ::WinMemberExplSpec;
8658
 
  friend class ::WinTypeKeywords;
 
10036
  friend class ::ExtGnu;
8659
10037
  friend class ::PragmaOnceUnitState;
8660
10038
  friend class ::PragmaOnce;
8661
 
  friend class ::CCExprResolve;
8662
 
  friend class ::CExprResolve;
 
10039
  friend class ::CMatchSyntax;
 
10040
 
 
10041
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
8663
10042
 
8664
10043
 
8665
10044
  ErrorStream     *_err;
8760
10139
} // namespace Puma
8761
10140
 
8762
10141
#endif /* __path_manager__ */
 
10142
 
 
10143
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
10144
 
 
10145
#line 10146 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10146
 
 
10147
#ifndef __ac_fwd_PragmaOnceUnitState__
 
10148
#define __ac_fwd_PragmaOnceUnitState__
 
10149
class PragmaOnceUnitState;
 
10150
namespace AC {
 
10151
  template <class JoinPoint>
 
10152
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
10153
  template <class JoinPoint>
 
10154
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
10155
}
 
10156
#endif
 
10157
 
 
10158
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
10159
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
10160
#endif
 
10161
 
 
10162
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
10163
// This file is part of PUMA.
 
10164
// Copyright (C) 1999-2003  The PUMA developer team.
 
10165
//                                                                
 
10166
// This program is free software;  you can redistribute it and/or 
 
10167
// modify it under the terms of the GNU General Public License as 
 
10168
// published by the Free Software Foundation; either version 2 of 
 
10169
// the License, or (at your option) any later version.            
 
10170
//                                                                
 
10171
// This program is distributed in the hope that it will be useful,
 
10172
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
10173
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
10174
// GNU General Public License for more details.                   
 
10175
//                                                                
 
10176
// You should have received a copy of the GNU General Public      
 
10177
// License along with this program; if not, write to the Free     
 
10178
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
10179
// MA  02111-1307  USA                                            
 
10180
 
 
10181
#ifndef __UnitManager__
 
10182
#define __UnitManager__
 
10183
 
 
10184
// Class UnitManager helps you to have control of all units built.
 
10185
 
 
10186
#include <iostream>
 
10187
#include <list>
 
10188
#include <map>
 
10189
#include <string>
 
10190
using namespace std;
 
10191
#include "Puma/ErrorStream.h"
 
10192
 
 
10193
namespace Puma {
 
10194
 
 
10195
 
 
10196
class Unit;
 
10197
class Source;
 
10198
class Tokenizer;
 
10199
 
 
10200
 
 
10201
#line 10202 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10202
} // closed Puma
 
10203
class CCExprResolve;
 
10204
class CExprResolve;
 
10205
class WinIfExists;
 
10206
class WinImportHandler;
 
10207
class WinMacros;
 
10208
class WinAsm;
 
10209
class WinDeclSpecs;
 
10210
class WinMemberExplSpec;
 
10211
class WinTypeKeywords;
 
10212
class WinFriend;
 
10213
class ExtAC;
 
10214
class ExtACBuilderCoupling;
 
10215
class ExtACSyntaxCoupling;
 
10216
class ExtACTree;
 
10217
class ExtACKeywords;
 
10218
class ExtGnu;
 
10219
class PragmaOnceUnitState;
 
10220
class PragmaOnce;
 
10221
class CMatchSyntax;
 
10222
namespace Puma {
 
10223
 
 
10224
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
10225
class UnitManager {
 
10226
#line 10227 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10227
  friend class ::CCExprResolve;
 
10228
  friend class ::CExprResolve;
 
10229
  friend class ::WinIfExists;
 
10230
  friend class ::WinImportHandler;
 
10231
  friend class ::WinMacros;
 
10232
  friend class ::WinAsm;
 
10233
  friend class ::WinDeclSpecs;
 
10234
  friend class ::WinMemberExplSpec;
 
10235
  friend class ::WinTypeKeywords;
 
10236
  friend class ::WinFriend;
 
10237
  friend class ::ExtAC;
 
10238
  friend class ::ExtACBuilderCoupling;
 
10239
  friend class ::ExtACSyntaxCoupling;
 
10240
  friend class ::ExtACTree;
 
10241
  friend class ::ExtACKeywords;
 
10242
  friend class ::ExtGnu;
 
10243
  friend class ::PragmaOnceUnitState;
 
10244
  friend class ::PragmaOnce;
 
10245
  friend class ::CMatchSyntax;
 
10246
 
 
10247
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
10248
 
 
10249
public:
 
10250
  typedef map<string, Unit*> UMap;
 
10251
private:
 
10252
  ErrorStream *_err;        // For error messages.
 
10253
  list<Unit*> _nonames;     // Noname units list.
 
10254
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
10255
  typedef UMap::value_type UMapPair;
 
10256
  Tokenizer *_tokenizer;    // File scanner.
 
10257
 
 
10258
public:
 
10259
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
10260
        
 
10261
  // Destructor: Delete all units.
 
10262
  virtual ~UnitManager ();
 
10263
        
 
10264
  // Get the unit hash table.
 
10265
  UMap &getTable () const { return _umap; }
 
10266
  typedef UMap::iterator UMapIter;
 
10267
        
 
10268
  // Get/Set the file scanner that is used by newUnit
 
10269
  Tokenizer *tokenizer () const { return _tokenizer; }
 
10270
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
10271
 
 
10272
  // Add a unit to manager.
 
10273
  void addUnit (Unit *unit);
 
10274
        
 
10275
  // Remove (and destroy) a unit from hash table. If the name
 
10276
  // is NULL remove all (but not the nonames).
 
10277
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
10278
                   bool destroy = true) const;
 
10279
 
 
10280
  // Empty a unit. Don't remove from hash table.
 
10281
  // Preserve the last save location information.
 
10282
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
10283
 
 
10284
  // Build and add a new unit. 
 
10285
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
10286
        
 
10287
  // Get a unit by name. 
 
10288
  Unit *getUnit (const char *name, bool = false) const;
 
10289
                        
 
10290
  // Print given unit to the given outstream. If no
 
10291
  // name is given, print all units.
 
10292
  void print (const char *name = (const char*) 0, bool = false, 
 
10293
              ostream &out = cout) const;
 
10294
 
 
10295
  // Destroy all noname units.
 
10296
  void removeNonames ();
 
10297
      
 
10298
  // Initialize the unit manager and the managed 
 
10299
  // units for the next parse process.
 
10300
  
 
10301
#line 10302 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10302
public: __attribute__((always_inline)) inline void __exec_old_init();
 
10303
 
 
10304
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
10305
void init ();
 
10306
};
 
10307
 
 
10308
 
 
10309
} // namespace Puma
 
10310
 
 
10311
#endif /* __UnitManager__ */
 
10312
 
 
10313
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
8763
10314
// This file is part of PUMA.
8764
10315
// Copyright (C) 1999-2003  The PUMA developer team.
8765
10316
//                                                                
8785
10336
 
8786
10337
 
8787
10338
// Project file save mode.
 
10339
 
 
10340
#line 10341 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8788
10341
} // closed Puma
 
10342
class CCExprResolve;
 
10343
class CExprResolve;
8789
10344
class WinIfExists;
8790
10345
class WinImportHandler;
8791
10346
class WinMacros;
8792
 
class CMatchSyntax;
8793
 
class ExtGnu;
 
10347
class WinAsm;
 
10348
class WinDeclSpecs;
 
10349
class WinMemberExplSpec;
 
10350
class WinTypeKeywords;
 
10351
class WinFriend;
8794
10352
class ExtAC;
8795
10353
class ExtACBuilderCoupling;
8796
10354
class ExtACSyntaxCoupling;
8797
10355
class ExtACTree;
8798
10356
class ExtACKeywords;
8799
 
class WinAsm;
8800
 
class WinDeclSpecs;
8801
 
class WinMemberExplSpec;
8802
 
class WinTypeKeywords;
 
10357
class ExtGnu;
8803
10358
class PragmaOnceUnitState;
8804
10359
class PragmaOnce;
8805
 
class CCExprResolve;
8806
 
class CExprResolve;
 
10360
class CMatchSyntax;
8807
10361
namespace Puma {
8808
 
struct SaveMode {  friend class ::WinIfExists;
 
10362
 
 
10363
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
10364
struct SaveMode {
 
10365
#line 10366 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10366
  friend class ::CCExprResolve;
 
10367
  friend class ::CExprResolve;
 
10368
  friend class ::WinIfExists;
8809
10369
  friend class ::WinImportHandler;
8810
10370
  friend class ::WinMacros;
8811
 
  friend class ::CMatchSyntax;
8812
 
  friend class ::ExtGnu;
 
10371
  friend class ::WinAsm;
 
10372
  friend class ::WinDeclSpecs;
 
10373
  friend class ::WinMemberExplSpec;
 
10374
  friend class ::WinTypeKeywords;
 
10375
  friend class ::WinFriend;
8813
10376
  friend class ::ExtAC;
8814
10377
  friend class ::ExtACBuilderCoupling;
8815
10378
  friend class ::ExtACSyntaxCoupling;
8816
10379
  friend class ::ExtACTree;
8817
10380
  friend class ::ExtACKeywords;
8818
 
  friend class ::WinAsm;
8819
 
  friend class ::WinDeclSpecs;
8820
 
  friend class ::WinMemberExplSpec;
8821
 
  friend class ::WinTypeKeywords;
 
10381
  friend class ::ExtGnu;
8822
10382
  friend class ::PragmaOnceUnitState;
8823
10383
  friend class ::PragmaOnce;
8824
 
  friend class ::CCExprResolve;
8825
 
  friend class ::CExprResolve;
 
10384
  friend class ::CMatchSyntax;
 
10385
 
 
10386
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
8826
10387
 
8827
10388
  enum Mode { 
8828
10389
    OVERWRITE = 1, 
8835
10396
} // namespace Puma
8836
10397
 
8837
10398
#endif /* __SaveMode__ */
 
10399
 
 
10400
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
8838
10401
#include <fstream>
 
10402
 
 
10403
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
8839
10404
using namespace std;
8840
10405
 
8841
10406
namespace Puma {
8842
10407
 
8843
10408
 
 
10409
 
 
10410
#line 10411 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8844
10411
} // closed Puma
 
10412
class CCExprResolve;
 
10413
class CExprResolve;
8845
10414
class WinIfExists;
8846
10415
class WinImportHandler;
8847
10416
class WinMacros;
8848
 
class CMatchSyntax;
8849
 
class ExtGnu;
 
10417
class WinAsm;
 
10418
class WinDeclSpecs;
 
10419
class WinMemberExplSpec;
 
10420
class WinTypeKeywords;
 
10421
class WinFriend;
8850
10422
class ExtAC;
8851
10423
class ExtACBuilderCoupling;
8852
10424
class ExtACSyntaxCoupling;
8853
10425
class ExtACTree;
8854
10426
class ExtACKeywords;
8855
 
class WinAsm;
8856
 
class WinDeclSpecs;
8857
 
class WinMemberExplSpec;
8858
 
class WinTypeKeywords;
 
10427
class ExtGnu;
8859
10428
class PragmaOnceUnitState;
8860
10429
class PragmaOnce;
8861
 
class CCExprResolve;
8862
 
class CExprResolve;
 
10430
class CMatchSyntax;
8863
10431
namespace Puma {
8864
 
class Project : public PathManager, public SaveMode {  friend class ::WinIfExists;
 
10432
 
 
10433
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
 
10434
class Project : public PathManager, public SaveMode {
 
10435
#line 10436 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10436
  friend class ::CCExprResolve;
 
10437
  friend class ::CExprResolve;
 
10438
  friend class ::WinIfExists;
8865
10439
  friend class ::WinImportHandler;
8866
10440
  friend class ::WinMacros;
8867
 
  friend class ::CMatchSyntax;
8868
 
  friend class ::ExtGnu;
 
10441
  friend class ::WinAsm;
 
10442
  friend class ::WinDeclSpecs;
 
10443
  friend class ::WinMemberExplSpec;
 
10444
  friend class ::WinTypeKeywords;
 
10445
  friend class ::WinFriend;
8869
10446
  friend class ::ExtAC;
8870
10447
  friend class ::ExtACBuilderCoupling;
8871
10448
  friend class ::ExtACSyntaxCoupling;
8872
10449
  friend class ::ExtACTree;
8873
10450
  friend class ::ExtACKeywords;
8874
 
  friend class ::WinAsm;
8875
 
  friend class ::WinDeclSpecs;
8876
 
  friend class ::WinMemberExplSpec;
8877
 
  friend class ::WinTypeKeywords;
 
10451
  friend class ::ExtGnu;
8878
10452
  friend class ::PragmaOnceUnitState;
8879
10453
  friend class ::PragmaOnce;
8880
 
  friend class ::CCExprResolve;
8881
 
  friend class ::CExprResolve;
 
10454
  friend class ::CMatchSyntax;
 
10455
 
 
10456
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
8882
10457
 
8883
10458
  UnitManager  _unitManager; 
8884
10459
  const char  *_suffix;           // Current file name suffix.
8965
10540
 
8966
10541
#endif /* __project__ */
8967
10542
 
 
10543
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
10544
 
 
10545
#line 10546 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10546
 
8968
10547
#ifndef __ac_fwd_ExtACKeywords__
8969
10548
#define __ac_fwd_ExtACKeywords__
8970
10549
class ExtACKeywords;
8971
10550
namespace AC {
8972
 
  template <class JoinPoint, class Binding>
8973
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
8974
 
  template <class JoinPoint, class Binding>
8975
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
8976
 
  template <class JoinPoint>
8977
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
10551
  template <class JoinPoint>
 
10552
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
10553
  template <class JoinPoint>
 
10554
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
10555
  template <class JoinPoint>
 
10556
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
8978
10557
}
8979
10558
#endif
8980
10559
 
8981
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8982
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
10560
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
10561
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
8983
10562
#endif
 
10563
 
 
10564
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
8984
10565
// This file is part of PUMA.
8985
10566
// Copyright (C) 1999-2003  The PUMA developer team.
8986
10567
//                                                                
9016
10597
 
9017
10598
class Token;
9018
10599
 
 
10600
 
 
10601
#line 10602 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9019
10602
} // closed Puma
 
10603
class CCExprResolve;
 
10604
class CExprResolve;
9020
10605
class WinIfExists;
9021
10606
class WinImportHandler;
9022
10607
class WinMacros;
9023
 
class CMatchSyntax;
9024
 
class ExtGnu;
 
10608
class WinAsm;
 
10609
class WinDeclSpecs;
 
10610
class WinMemberExplSpec;
 
10611
class WinTypeKeywords;
 
10612
class WinFriend;
9025
10613
class ExtAC;
9026
10614
class ExtACBuilderCoupling;
9027
10615
class ExtACSyntaxCoupling;
9028
10616
class ExtACTree;
9029
10617
class ExtACKeywords;
9030
 
class WinAsm;
9031
 
class WinDeclSpecs;
9032
 
class WinMemberExplSpec;
9033
 
class WinTypeKeywords;
 
10618
class ExtGnu;
9034
10619
class PragmaOnceUnitState;
9035
10620
class PragmaOnce;
9036
 
class CCExprResolve;
9037
 
class CExprResolve;
 
10621
class CMatchSyntax;
9038
10622
namespace Puma {
9039
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
10623
 
 
10624
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
10625
class CScanner : public CRecognizer, public Tokenizer {
 
10626
#line 10627 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10627
  friend class ::CCExprResolve;
 
10628
  friend class ::CExprResolve;
 
10629
  friend class ::WinIfExists;
9040
10630
  friend class ::WinImportHandler;
9041
10631
  friend class ::WinMacros;
9042
 
  friend class ::CMatchSyntax;
9043
 
  friend class ::ExtGnu;
 
10632
  friend class ::WinAsm;
 
10633
  friend class ::WinDeclSpecs;
 
10634
  friend class ::WinMemberExplSpec;
 
10635
  friend class ::WinTypeKeywords;
 
10636
  friend class ::WinFriend;
9044
10637
  friend class ::ExtAC;
9045
10638
  friend class ::ExtACBuilderCoupling;
9046
10639
  friend class ::ExtACSyntaxCoupling;
9047
10640
  friend class ::ExtACTree;
9048
10641
  friend class ::ExtACKeywords;
9049
 
  friend class ::WinAsm;
9050
 
  friend class ::WinDeclSpecs;
9051
 
  friend class ::WinMemberExplSpec;
9052
 
  friend class ::WinTypeKeywords;
 
10642
  friend class ::ExtGnu;
9053
10643
  friend class ::PragmaOnceUnitState;
9054
10644
  friend class ::PragmaOnce;
9055
 
  friend class ::CCExprResolve;
9056
 
  friend class ::CExprResolve;
 
10645
  friend class ::CMatchSyntax;
 
10646
 
 
10647
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
9057
10648
 
9058
10649
  Location loc;
9059
10650
  ErrorSink &err;
9067
10658
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
9068
10659
  virtual ~CScanner () {}
9069
10660
  void configure (const Config &);
9070
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
10661
  
 
10662
#line 10663 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10663
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
10664
 
 
10665
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
9071
10666
void fill_unit (Source &in, Unit &unit);
9072
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
10667
  
 
10668
#line 10669 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10669
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
10670
 
 
10671
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
9073
10672
void fill_unit (const char *in, Unit &unit);
9074
10673
};
9075
10674
 
9077
10676
} // namespace Puma
9078
10677
 
9079
10678
#endif /* __c_scanner_h__ */
 
10679
 
 
10680
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
9080
10681
namespace Puma {
9081
10682
 
9082
10683
 
9083
10684
class Source;
9084
10685
class CTypeInfo;
9085
10686
 
 
10687
 
 
10688
#line 10689 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9086
10689
} // closed Puma
 
10690
class CCExprResolve;
 
10691
class CExprResolve;
9087
10692
class WinIfExists;
9088
10693
class WinImportHandler;
9089
10694
class WinMacros;
9090
 
class CMatchSyntax;
9091
 
class ExtGnu;
 
10695
class WinAsm;
 
10696
class WinDeclSpecs;
 
10697
class WinMemberExplSpec;
 
10698
class WinTypeKeywords;
 
10699
class WinFriend;
9092
10700
class ExtAC;
9093
10701
class ExtACBuilderCoupling;
9094
10702
class ExtACSyntaxCoupling;
9095
10703
class ExtACTree;
9096
10704
class ExtACKeywords;
9097
 
class WinAsm;
9098
 
class WinDeclSpecs;
9099
 
class WinMemberExplSpec;
9100
 
class WinTypeKeywords;
 
10705
class ExtGnu;
9101
10706
class PragmaOnceUnitState;
9102
10707
class PragmaOnce;
9103
 
class CCExprResolve;
9104
 
class CExprResolve;
 
10708
class CMatchSyntax;
9105
10709
namespace Puma {
9106
 
class CProject : public Project {  friend class ::WinIfExists;
 
10710
 
 
10711
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
 
10712
class CProject : public Project {
 
10713
#line 10714 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10714
  friend class ::CCExprResolve;
 
10715
  friend class ::CExprResolve;
 
10716
  friend class ::WinIfExists;
9107
10717
  friend class ::WinImportHandler;
9108
10718
  friend class ::WinMacros;
9109
 
  friend class ::CMatchSyntax;
9110
 
  friend class ::ExtGnu;
 
10719
  friend class ::WinAsm;
 
10720
  friend class ::WinDeclSpecs;
 
10721
  friend class ::WinMemberExplSpec;
 
10722
  friend class ::WinTypeKeywords;
 
10723
  friend class ::WinFriend;
9111
10724
  friend class ::ExtAC;
9112
10725
  friend class ::ExtACBuilderCoupling;
9113
10726
  friend class ::ExtACSyntaxCoupling;
9114
10727
  friend class ::ExtACTree;
9115
10728
  friend class ::ExtACKeywords;
9116
 
  friend class ::WinAsm;
9117
 
  friend class ::WinDeclSpecs;
9118
 
  friend class ::WinMemberExplSpec;
9119
 
  friend class ::WinTypeKeywords;
 
10729
  friend class ::ExtGnu;
9120
10730
  friend class ::PragmaOnceUnitState;
9121
10731
  friend class ::PragmaOnce;
9122
 
  friend class ::CCExprResolve;
9123
 
  friend class ::CExprResolve;
 
10732
  friend class ::CMatchSyntax;
 
10733
 
 
10734
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
9124
10735
 
9125
10736
  Config _config;
9126
10737
  CScanner _scanner;
9155
10766
 
9156
10767
  // Scan the file `file' or the source if given. When
9157
10768
  // scanning a source the resulting unit gets the name `file'.
9158
 
  public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
10769
  
 
10770
#line 10771 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10771
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
10772
 
 
10773
#line 69 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
9159
10774
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
9160
10775
                          bool isFile = true);
9161
10776
        
9184
10799
} // namespace Puma
9185
10800
 
9186
10801
#endif /* __CProject_h__ */
 
10802
 
 
10803
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
9187
10804
// This file is part of PUMA.
9188
10805
// Copyright (C) 1999-2003  The PUMA developer team.
9189
10806
//                                                                
9208
10825
// Special Unit for files. Knows its last save location and the
9209
10826
// absolute path of the corresponding file.
9210
10827
 
 
10828
 
 
10829
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
9211
10830
namespace Puma {
9212
10831
 
9213
10832
 
9214
10833
class Project;
9215
10834
 
 
10835
 
 
10836
#line 10837 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9216
10837
} // closed Puma
 
10838
class CCExprResolve;
 
10839
class CExprResolve;
9217
10840
class WinIfExists;
9218
10841
class WinImportHandler;
9219
10842
class WinMacros;
9220
 
class CMatchSyntax;
9221
 
class ExtGnu;
 
10843
class WinAsm;
 
10844
class WinDeclSpecs;
 
10845
class WinMemberExplSpec;
 
10846
class WinTypeKeywords;
 
10847
class WinFriend;
9222
10848
class ExtAC;
9223
10849
class ExtACBuilderCoupling;
9224
10850
class ExtACSyntaxCoupling;
9225
10851
class ExtACTree;
9226
10852
class ExtACKeywords;
9227
 
class WinAsm;
9228
 
class WinDeclSpecs;
9229
 
class WinMemberExplSpec;
9230
 
class WinTypeKeywords;
 
10853
class ExtGnu;
9231
10854
class PragmaOnceUnitState;
9232
10855
class PragmaOnce;
9233
 
class CCExprResolve;
9234
 
class CExprResolve;
 
10856
class CMatchSyntax;
9235
10857
namespace Puma {
9236
 
class FileUnit : public Unit {  friend class ::WinIfExists;
 
10858
 
 
10859
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
10860
class FileUnit : public Unit {
 
10861
#line 10862 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10862
  friend class ::CCExprResolve;
 
10863
  friend class ::CExprResolve;
 
10864
  friend class ::WinIfExists;
9237
10865
  friend class ::WinImportHandler;
9238
10866
  friend class ::WinMacros;
9239
 
  friend class ::CMatchSyntax;
9240
 
  friend class ::ExtGnu;
 
10867
  friend class ::WinAsm;
 
10868
  friend class ::WinDeclSpecs;
 
10869
  friend class ::WinMemberExplSpec;
 
10870
  friend class ::WinTypeKeywords;
 
10871
  friend class ::WinFriend;
9241
10872
  friend class ::ExtAC;
9242
10873
  friend class ::ExtACBuilderCoupling;
9243
10874
  friend class ::ExtACSyntaxCoupling;
9244
10875
  friend class ::ExtACTree;
9245
10876
  friend class ::ExtACKeywords;
9246
 
  friend class ::WinAsm;
9247
 
  friend class ::WinDeclSpecs;
9248
 
  friend class ::WinMemberExplSpec;
9249
 
  friend class ::WinTypeKeywords;
 
10877
  friend class ::ExtGnu;
9250
10878
  friend class ::PragmaOnceUnitState;
9251
10879
  friend class ::PragmaOnce;
9252
 
  friend class ::CCExprResolve;
9253
 
  friend class ::CExprResolve;
 
10880
  friend class ::CMatchSyntax;
 
10881
 
 
10882
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
9254
10883
 
9255
10884
  char *_lastLocation; 
9256
10885
  char *_absolutePath;
9315
10944
} // namespace Puma
9316
10945
 
9317
10946
#endif /* __FileUnit__ */
9318
 
using namespace Puma;
9319
10947
 
 
10948
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9320
10949
// *****************************************
9321
10950
// AspectC++ keyword handling in the scanner
9322
10951
// *****************************************
 
10952
 
 
10953
#line 10954 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10954
class CCExprResolve;
 
10955
class CExprResolve;
9323
10956
class WinIfExists;
9324
10957
class WinImportHandler;
9325
10958
class WinMacros;
9326
 
class CMatchSyntax;
9327
 
class ExtGnu;
 
10959
class WinAsm;
 
10960
class WinDeclSpecs;
 
10961
class WinMemberExplSpec;
 
10962
class WinTypeKeywords;
 
10963
class WinFriend;
9328
10964
class ExtAC;
9329
10965
class ExtACBuilderCoupling;
9330
10966
class ExtACSyntaxCoupling;
9331
10967
class ExtACTree;
9332
 
class WinAsm;
9333
 
class WinDeclSpecs;
9334
 
class WinMemberExplSpec;
9335
 
class WinTypeKeywords;
 
10968
class ExtGnu;
9336
10969
class PragmaOnceUnitState;
9337
10970
class PragmaOnce;
9338
 
class CCExprResolve;
9339
 
class CExprResolve;
 
10971
class CMatchSyntax;
 
10972
 
 
10973
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9340
10974
class ExtACKeywords {
 
10975
#line 10976 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10976
 
9341
10977
public:
9342
10978
  static ExtACKeywords *aspectof () {
9343
10979
    static ExtACKeywords __instance;
9347
10983
    return aspectof ();
9348
10984
  }
9349
10985
private:
 
10986
 
 
10987
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
10988
 
 
10989
#line 10990 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
10990
  friend class ::CCExprResolve;
 
10991
  friend class ::CExprResolve;
9350
10992
  friend class ::WinIfExists;
9351
10993
  friend class ::WinImportHandler;
9352
10994
  friend class ::WinMacros;
9353
 
  friend class ::CMatchSyntax;
9354
 
  friend class ::ExtGnu;
 
10995
  friend class ::WinAsm;
 
10996
  friend class ::WinDeclSpecs;
 
10997
  friend class ::WinMemberExplSpec;
 
10998
  friend class ::WinTypeKeywords;
 
10999
  friend class ::WinFriend;
9355
11000
  friend class ::ExtAC;
9356
11001
  friend class ::ExtACBuilderCoupling;
9357
11002
  friend class ::ExtACSyntaxCoupling;
9358
11003
  friend class ::ExtACTree;
9359
 
  friend class ::WinAsm;
9360
 
  friend class ::WinDeclSpecs;
9361
 
  friend class ::WinMemberExplSpec;
9362
 
  friend class ::WinTypeKeywords;
 
11004
  friend class ::ExtGnu;
9363
11005
  friend class ::PragmaOnceUnitState;
9364
11006
  friend class ::PragmaOnce;
9365
 
  friend class ::CCExprResolve;
9366
 
  friend class ::CExprResolve;
 
11007
  friend class ::CMatchSyntax;
 
11008
 
 
11009
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9367
11010
 
9368
11011
 
9369
11012
  bool _prj_keywords;
9370
 
  CProject *_project; // active project
 
11013
  Puma::CProject *_project; // active project
9371
11014
  
9372
11015
protected:
9373
11016
  ExtACKeywords () : _prj_keywords (false) {}
 
11017
  
9374
11018
public:
9375
11019
  // allow/forbid AspectC++ keywords in normal project files
9376
11020
  void prj_keywords (bool kw) { _prj_keywords = kw; }
9377
11021
  
9378
11022
  
9379
 
public: void __a0_before (CProject &project) {
 
11023
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11024
 
 
11025
public: void __a0_before 
 
11026
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11027
 
 
11028
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11029
(Puma::CProject &project)
 
11030
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11031
 {
9380
11032
    _project = &project;
9381
11033
  }
9382
11034
  
9383
11035
  
9384
 
public: template<class JoinPoint> void __a1_before (JoinPoint *tjp, Unit &unit) {
 
11036
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11037
 
 
11038
public: template<class JoinPoint> void __a1_before 
 
11039
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11040
 
 
11041
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11042
(JoinPoint *tjp, Puma::Unit &unit)
 
11043
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11044
 {
 
11045
#line 11046 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
11046
 
9385
11047
  typedef typename JoinPoint::That __JP_That;
9386
11048
  typedef typename JoinPoint::Target __JP_Target;
9387
11049
  typedef typename JoinPoint::Result __JP_Result;
9388
11050
 
 
11051
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11052
 
9389
11053
    if (!unit.isFile ())
9390
11054
      return;
9391
11055
      
9392
11056
    bool ac_kw = _prj_keywords;
9393
11057
    // in external files the AspectC++ keywords are always identifiers
9394
 
    if (!((FileUnit*)&unit)->belongsTo (*_project)) {
 
11058
    if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
9395
11059
      ac_kw = false;
9396
11060
    }
9397
11061
    // in aspect headers keywords are keywords
9404
11068
  }
9405
11069
  
9406
11070
  
9407
 
public: template<class JoinPoint> void __a2_before (JoinPoint *tjp) {
 
11071
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11072
 
 
11073
public: template<class JoinPoint> void __a2_before 
 
11074
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11075
 
 
11076
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11077
(JoinPoint *tjp)
 
11078
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11079
 {
 
11080
#line 11081 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
11081
 
9408
11082
  typedef typename JoinPoint::That __JP_That;
9409
11083
  typedef typename JoinPoint::Target __JP_Target;
9410
11084
  typedef typename JoinPoint::Result __JP_Result;
9411
11085
 
 
11086
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
11087
 
9412
11088
    _project = tjp->that ();
9413
11089
  }
9414
11090
};
 
11091
#line 11092 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
 
11092
 
9415
11093
namespace AC {
9416
 
  template <class JoinPoint, class Binding>
9417
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
9418
 
    typedef typename Binding::template Arg<0> Arg0;
 
11094
  template <class JoinPoint>
 
11095
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
 
11096
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
9419
11097
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
9420
11098
  }
9421
 
  template <class JoinPoint, class Binding>
9422
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
9423
 
    typedef typename Binding::template Arg<0> Arg0;
 
11099
  template <class JoinPoint>
 
11100
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
 
11101
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
9424
11102
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
9425
11103
  }
9426
11104
  template <class JoinPoint>
9427
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
 
11105
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
9428
11106
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
9429
11107
  }
9430
11108
 
11109
 
 
11110
#line 70 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9431
11111
  
9432
11112
 
9433
11113
#endif /* __ext_ac_keywords_ah__ */
9434
 
#endif
9435
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
9436
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
11114
 
 
11115
#line 163 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
11116
#endif
 
11117
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11118
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11119
#include "PragmaOnceUnitState.ah"
 
11120
#endif
 
11121
#endif
 
11122
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11123
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11124
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11125
#include "ExtACTree.ah"
 
11126
#endif
 
11127
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11128
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
11129
#include "ExtGnu.ah"
 
11130
#endif
 
11131
#endif
 
11132
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
11133
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11134
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
11135
#include "ExtACTree.ah"
 
11136
#endif
 
11137
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
11138
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
11139
#include "ExtGnuCSemDeclSpecs.ah"
 
11140
#endif
 
11141
#endif
 
11142
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11143
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11144
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11145
#include "PragmaOnceUnitState.ah"
 
11146
#endif
 
11147
#endif
 
11148
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
11149
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11150
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
11151
#include "PragmaOnceUnitState.ah"
 
11152
#endif
 
11153
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
11154
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
11155
 
 
11156
#line 203 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
 
11157
#endif
 
11158
#endif
 
11159
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
11160
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
11161
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
9437
11162
#include "TraceSyntax.ah"
9438
11163
#endif
9439
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__)
9440
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__
9441
 
#include "WinAsm.ah"
9442
 
#endif
9443
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
9444
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9445
 
#include "WinDeclSpecs.ah"
9446
 
#endif
9447
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
9448
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9449
 
#include "WinMemberExplSpec.ah"
9450
 
#endif
9451
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
9452
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9453
 
#include "WinTypeKeywords.ah"
9454
 
#endif
9455
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
9456
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9457
 
#endif
9458
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
9459
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
9460
 
#endif
9461
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
9462
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9463
 
#include "CCExprResolveH.ah"
9464
 
#endif
9465
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
9466
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9467
 
#include "CCExprResolveCC.ah"
9468
 
#endif
9469
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
9470
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9471
 
#include "CExprResolveH.ah"
9472
 
#endif
9473
 
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
9474
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9475
 
#include "CExprResolveCC.ah"
9476
 
#endif
9477
 
/*** end of aspect includes ***/
9478
 
#undef __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
9479
 
#undef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
9480
 
#endif // __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
 
11164
#endif
 
11165
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11166
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11167
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
11168
#include "CMatchSyntax.ah"
 
11169
#endif
 
11170
#endif
 
11171
#undef __ac_FIRST__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1__
 
11172
#undef __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__
 
11173
#endif // __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__