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

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-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_PreParser_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/PreParser.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_PreParser_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/PreParser.cc"
 
9
 
 
10
#line 11 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.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
 
// This file is part of PUMA.
37
 
// Copyright (C) 1999-2003  The PUMA developer team.
38
 
//                                                                
39
 
// This program is free software;  you can redistribute it and/or 
40
 
// modify it under the terms of the GNU General Public License as 
41
 
// published by the Free Software Foundation; either version 2 of 
42
 
// the License, or (at your option) any later version.            
43
 
//                                                                
44
 
// This program is distributed in the hope that it will be useful,
45
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
46
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
47
 
// GNU General Public License for more details.                   
48
 
//                                                                
49
 
// You should have received a copy of the GNU General Public      
50
 
// License along with this program; if not, write to the Free     
51
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
52
 
// MA  02111-1307  USA                                            
53
 
 
54
 
#ifndef __WinIfExists__
55
 
#define __WinIfExists__
56
 
 
57
 
/********************************************************/
58
 
/* Win __if_exists and __if_not_exists support aspect   */
59
 
/********************************************************/
60
 
 
61
 
// This file is part of PUMA.
62
 
// Copyright (C) 1999-2003  The PUMA developer team.
63
 
//                                                                
64
 
// This program is free software;  you can redistribute it and/or 
65
 
// modify it under the terms of the GNU General Public License as 
66
 
// published by the Free Software Foundation; either version 2 of 
67
 
// the License, or (at your option) any later version.            
68
 
//                                                                
69
 
// This program is distributed in the hope that it will be useful,
70
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
71
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
72
 
// GNU General Public License for more details.                   
73
 
//                                                                
74
 
// You should have received a copy of the GNU General Public      
75
 
// License along with this program; if not, write to the Free     
76
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
77
 
// MA  02111-1307  USA                                            
78
 
 
79
 
#ifndef __stack_h__
80
 
#define __stack_h__
81
 
 
82
 
// This file is part of PUMA.
83
 
// Copyright (C) 1999-2003  The PUMA developer team.
84
 
//                                                                
85
 
// This program is free software;  you can redistribute it and/or 
86
 
// modify it under the terms of the GNU General Public License as 
87
 
// published by the Free Software Foundation; either version 2 of 
88
 
// the License, or (at your option) any later version.            
89
 
//                                                                
90
 
// This program is distributed in the hope that it will be useful,
91
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
92
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
93
 
// GNU General Public License for more details.                   
94
 
//                                                                
95
 
// You should have received a copy of the GNU General Public      
96
 
// License along with this program; if not, write to the Free     
97
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
98
 
// MA  02111-1307  USA                                            
99
 
 
100
 
#ifndef __array_h__
101
 
#define __array_h__
 
58
 
 
59
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
60
 
 
61
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
62
/* Driver template for the LEMON parser generator.
 
63
** Copyright 1991-1995 by D. Richard Hipp.
 
64
**
 
65
** This library is free software; you can redistribute it and/or
 
66
** modify it under the terms of the GNU Library General Public
 
67
** License as published by the Free Software Foundation; either
 
68
** version 2 of the License, or (at your option) any later version.
 
69
** 
 
70
** This library is distributed in the hope that it will be useful,
 
71
** but WITHOUT ANY WARRANTY; without even the implied warranty of
 
72
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
73
** Library General Public License for more details.
 
74
** 
 
75
** You should have received a copy of the GNU Library General Public
 
76
** License along with this library; if not, write to the
 
77
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
78
** Boston, MA  02111-1307, USA.
 
79
**
 
80
** Modified 1997 to make it suitable for use with makeheaders.
 
81
*/
 
82
/* First off, code is include which follows the "include" declaration
 
83
** in the input file. */
 
84
#include <stdio.h>
 
85
#line 27 "cpp/PreParser.lem"
 
86
 
 
87
 
 
88
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
 
89
// This file is part of PUMA.
 
90
// Copyright (C) 1999-2003  The PUMA developer team.
 
91
//                                                                
 
92
// This program is free software;  you can redistribute it and/or 
 
93
// modify it under the terms of the GNU General Public License as 
 
94
// published by the Free Software Foundation; either version 2 of 
 
95
// the License, or (at your option) any later version.            
 
96
//                                                                
 
97
// This program is distributed in the hope that it will be useful,
 
98
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
99
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
100
// GNU General Public License for more details.                   
 
101
//                                                                
 
102
// You should have received a copy of the GNU General Public      
 
103
// License along with this program; if not, write to the Free     
 
104
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
105
// MA  02111-1307  USA                                            
 
106
 
 
107
#ifndef __list_h__
 
108
#define __list_h__
 
109
 
 
110
 
 
111
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
112
// This file is part of PUMA.
 
113
// Copyright (C) 1999-2003  The PUMA developer team.
 
114
//                                                                
 
115
// This program is free software;  you can redistribute it and/or 
 
116
// modify it under the terms of the GNU General Public License as 
 
117
// published by the Free Software Foundation; either version 2 of 
 
118
// the License, or (at your option) any later version.            
 
119
//                                                                
 
120
// This program is distributed in the hope that it will be useful,
 
121
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
122
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
123
// GNU General Public License for more details.                   
 
124
//                                                                
 
125
// You should have received a copy of the GNU General Public      
 
126
// License along with this program; if not, write to the Free     
 
127
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
128
// MA  02111-1307  USA                                            
 
129
 
 
130
#ifndef __list_element_h__
 
131
#define __list_element_h__
 
132
 
 
133
// Base class for objects that may be inserted into a List. Lists
 
134
// autonomously delete or copy list element. So it's necessary to
 
135
// define a destructor and a duplicate method in the derived
 
136
// classes.
102
137
 
103
138
#include <assert.h>
104
139
 
105
140
namespace Puma {
106
141
 
107
 
} // closed Puma
108
 
class WinIfExists;
109
 
class WinImportHandler;
110
 
class WinMacros;
111
 
class CMatchSyntax;
112
 
class ExtGnu;
113
 
class ExtAC;
114
 
class ExtACBuilderCoupling;
115
 
class ExtACSyntaxCoupling;
116
 
class ExtACTree;
117
 
class ExtACKeywords;
118
 
class WinAsm;
119
 
class WinDeclSpecs;
120
 
class WinMemberExplSpec;
121
 
class WinTypeKeywords;
122
 
class PragmaOnceUnitState;
123
 
class PragmaOnce;
124
 
class CCExprResolve;
125
 
class CExprResolve;
126
 
namespace Puma {
127
 
template <class Item>
128
 
class Array {  friend class ::WinIfExists;
129
 
  friend class ::WinImportHandler;
130
 
  friend class ::WinMacros;
131
 
  friend class ::CMatchSyntax;
132
 
  friend class ::ExtGnu;
133
 
  friend class ::ExtAC;
134
 
  friend class ::ExtACBuilderCoupling;
135
 
  friend class ::ExtACSyntaxCoupling;
136
 
  friend class ::ExtACTree;
137
 
  friend class ::ExtACKeywords;
138
 
  friend class ::WinAsm;
139
 
  friend class ::WinDeclSpecs;
140
 
  friend class ::WinMemberExplSpec;
141
 
  friend class ::WinTypeKeywords;
142
 
  friend class ::PragmaOnceUnitState;
143
 
  friend class ::PragmaOnce;
144
 
  friend class ::CCExprResolve;
145
 
  friend class ::CExprResolve;
146
 
 
147
 
   protected:
148
 
      static const long default_init_size = 5;
149
 
      static const long default_increment = 5;
150
 
 
151
 
   public:
152
 
      Array (long is = default_init_size, long incr = default_increment);
153
 
      Array (const Array<Item>& array);
154
 
      Array<Item>& operator =(const Array<Item>&);
155
 
      ~Array ();
156
 
      void append (const Item& item);
157
 
      void insert (long index, const Item& item);
158
 
      void prepend (const Item& item);
159
 
      void remove (long index);
160
 
      void reset ();
161
 
      Item& get (long index);
162
 
      Item& operator[] (long index);
163
 
      Item fetch (long index) const;
164
 
      Item& lookup (long index) const;
165
 
      long length () const;
166
 
 
 
142
 
 
143
class List;
 
144
 
 
145
 
 
146
#line 147 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
147
} // closed Puma
 
148
class CCExprResolve;
 
149
class CExprResolve;
 
150
class WinIfExists;
 
151
class WinImportHandler;
 
152
class WinMacros;
 
153
class WinAsm;
 
154
class WinDeclSpecs;
 
155
class WinMemberExplSpec;
 
156
class WinTypeKeywords;
 
157
class WinFriend;
 
158
class ExtAC;
 
159
class ExtACBuilderCoupling;
 
160
class ExtACSyntaxCoupling;
 
161
class ExtACTree;
 
162
class ExtACKeywords;
 
163
class ExtGnu;
 
164
class PragmaOnceUnitState;
 
165
class PragmaOnce;
 
166
class CMatchSyntax;
 
167
namespace Puma {
 
168
 
 
169
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
170
class ListElement {
 
171
#line 172 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
172
  friend class ::CCExprResolve;
 
173
  friend class ::CExprResolve;
 
174
  friend class ::WinIfExists;
 
175
  friend class ::WinImportHandler;
 
176
  friend class ::WinMacros;
 
177
  friend class ::WinAsm;
 
178
  friend class ::WinDeclSpecs;
 
179
  friend class ::WinMemberExplSpec;
 
180
  friend class ::WinTypeKeywords;
 
181
  friend class ::WinFriend;
 
182
  friend class ::ExtAC;
 
183
  friend class ::ExtACBuilderCoupling;
 
184
  friend class ::ExtACSyntaxCoupling;
 
185
  friend class ::ExtACTree;
 
186
  friend class ::ExtACKeywords;
 
187
  friend class ::ExtGnu;
 
188
  friend class ::PragmaOnceUnitState;
 
189
  friend class ::PragmaOnce;
 
190
  friend class ::CMatchSyntax;
 
191
 
 
192
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
193
 
 
194
  friend class List;
 
195
 
 
196
  List        *_belonging_to;
 
197
  ListElement *_next;
 
198
  ListElement *_prev;
 
199
 
 
200
public:
 
201
  ListElement () : _belonging_to ((List*)0) {}
 
202
  virtual ~ListElement () { assert (! _belonging_to); };
 
203
 
 
204
  virtual ListElement *duplicate () = 0;
 
205
  List *belonging_to () const { return _belonging_to; }
 
206
};
 
207
 
 
208
 
 
209
} // namespace Puma
 
210
 
 
211
#endif /* __list_element_h__ */
 
212
 
 
213
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
 
214
namespace Puma {
 
215
 
 
216
 
 
217
 
 
218
#line 219 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
219
} // closed Puma
 
220
class CCExprResolve;
 
221
class CExprResolve;
 
222
class WinIfExists;
 
223
class WinImportHandler;
 
224
class WinMacros;
 
225
class WinAsm;
 
226
class WinDeclSpecs;
 
227
class WinMemberExplSpec;
 
228
class WinTypeKeywords;
 
229
class WinFriend;
 
230
class ExtAC;
 
231
class ExtACBuilderCoupling;
 
232
class ExtACSyntaxCoupling;
 
233
class ExtACTree;
 
234
class ExtACKeywords;
 
235
class ExtGnu;
 
236
class PragmaOnceUnitState;
 
237
class PragmaOnce;
 
238
class CMatchSyntax;
 
239
namespace Puma {
 
240
 
 
241
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
 
242
class List {
 
243
#line 244 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
244
  friend class ::CCExprResolve;
 
245
  friend class ::CExprResolve;
 
246
  friend class ::WinIfExists;
 
247
  friend class ::WinImportHandler;
 
248
  friend class ::WinMacros;
 
249
  friend class ::WinAsm;
 
250
  friend class ::WinDeclSpecs;
 
251
  friend class ::WinMemberExplSpec;
 
252
  friend class ::WinTypeKeywords;
 
253
  friend class ::WinFriend;
 
254
  friend class ::ExtAC;
 
255
  friend class ::ExtACBuilderCoupling;
 
256
  friend class ::ExtACSyntaxCoupling;
 
257
  friend class ::ExtACTree;
 
258
  friend class ::ExtACKeywords;
 
259
  friend class ::ExtGnu;
 
260
  friend class ::PragmaOnceUnitState;
 
261
  friend class ::PragmaOnce;
 
262
  friend class ::CMatchSyntax;
 
263
 
 
264
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/List.h"
 
265
 
 
266
  ListElement *_first;
 
267
  ListElement *_last;
 
268
 
 
269
public:
 
270
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
 
271
  List (const List &);
 
272
  ~List();
 
273
 
 
274
  List &operator = (const List &);
 
275
  List &operator += (const List &);
 
276
  List operator + (const List &);
 
277
 
 
278
  void clear ();
 
279
 
 
280
  void append (ListElement &);
 
281
  void prepend (ListElement &);
 
282
  void insert (ListElement *at, ListElement &element);
 
283
  void remove (ListElement *element);
 
284
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
 
285
   { List discard; cut (discard, from, to); }
 
286
 
 
287
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
 
288
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
 
289
  List *copy (ListElement *from = (ListElement*)0, 
 
290
              ListElement *to = (ListElement*)0);
 
291
  void paste (ListElement *at, const List &l);
 
292
  void paste_before (ListElement *at, const List &l);
 
293
  void move (ListElement *at, List &l);
 
294
  void move_before (ListElement *at, List &l);
 
295
 
 
296
  bool empty () const { return _first == (ListElement*)0; }
 
297
  const ListElement *first () const { return _first; }
 
298
  const ListElement *last () const { return _last; }
 
299
  const ListElement *next (const ListElement *element) const
 
300
   { return element ? element->_next : 0; }
 
301
  const ListElement *prev (const ListElement *element) const 
 
302
   { return element ? element->_prev : 0; }
 
303
};
 
304
 
 
305
 
 
306
} // namespace Puma
 
307
 
 
308
#endif /* __list_h__ */
 
309
 
 
310
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
 
311
// This file is part of PUMA.
 
312
// Copyright (C) 1999-2003  The PUMA developer team.
 
313
//                                                                
 
314
// This program is free software;  you can redistribute it and/or 
 
315
// modify it under the terms of the GNU General Public License as 
 
316
// published by the Free Software Foundation; either version 2 of 
 
317
// the License, or (at your option) any later version.            
 
318
//                                                                
 
319
// This program is distributed in the hope that it will be useful,
 
320
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
321
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
322
// GNU General Public License for more details.                   
 
323
//                                                                
 
324
// You should have received a copy of the GNU General Public      
 
325
// License along with this program; if not, write to the Free     
 
326
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
327
// MA  02111-1307  USA                                            
 
328
 
 
329
#ifndef __unit_h__
 
330
#define __unit_h__
 
331
 
 
332
 
 
333
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Printable.h"
 
334
// This file is part of PUMA.
 
335
// Copyright (C) 1999-2003  The PUMA developer team.
 
336
//                                                                
 
337
// This program is free software;  you can redistribute it and/or 
 
338
// modify it under the terms of the GNU General Public License as 
 
339
// published by the Free Software Foundation; either version 2 of 
 
340
// the License, or (at your option) any later version.            
 
341
//                                                                
 
342
// This program is distributed in the hope that it will be useful,
 
343
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
344
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
345
// GNU General Public License for more details.                   
 
346
//                                                                
 
347
// You should have received a copy of the GNU General Public      
 
348
// License along with this program; if not, write to the Free     
 
349
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
350
// MA  02111-1307  USA                                            
 
351
 
 
352
#ifndef __printable_h__
 
353
#define __printable_h__
 
354
 
 
355
#include <iostream>
 
356
using namespace std;
 
357
 
 
358
namespace Puma {
 
359
 
 
360
 
 
361
 
 
362
#line 363 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
363
} // closed Puma
 
364
class CCExprResolve;
 
365
class CExprResolve;
 
366
class WinIfExists;
 
367
class WinImportHandler;
 
368
class WinMacros;
 
369
class WinAsm;
 
370
class WinDeclSpecs;
 
371
class WinMemberExplSpec;
 
372
class WinTypeKeywords;
 
373
class WinFriend;
 
374
class ExtAC;
 
375
class ExtACBuilderCoupling;
 
376
class ExtACSyntaxCoupling;
 
377
class ExtACTree;
 
378
class ExtACKeywords;
 
379
class ExtGnu;
 
380
class PragmaOnceUnitState;
 
381
class PragmaOnce;
 
382
class CMatchSyntax;
 
383
namespace Puma {
 
384
 
 
385
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Printable.h"
 
386
class Printable {
 
387
#line 388 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
388
  friend class ::CCExprResolve;
 
389
  friend class ::CExprResolve;
 
390
  friend class ::WinIfExists;
 
391
  friend class ::WinImportHandler;
 
392
  friend class ::WinMacros;
 
393
  friend class ::WinAsm;
 
394
  friend class ::WinDeclSpecs;
 
395
  friend class ::WinMemberExplSpec;
 
396
  friend class ::WinTypeKeywords;
 
397
  friend class ::WinFriend;
 
398
  friend class ::ExtAC;
 
399
  friend class ::ExtACBuilderCoupling;
 
400
  friend class ::ExtACSyntaxCoupling;
 
401
  friend class ::ExtACTree;
 
402
  friend class ::ExtACKeywords;
 
403
  friend class ::ExtGnu;
 
404
  friend class ::PragmaOnceUnitState;
 
405
  friend class ::PragmaOnce;
 
406
  friend class ::CMatchSyntax;
 
407
 
 
408
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Printable.h"
 
409
 
 
410
public:
 
411
  virtual ~Printable () {}
 
412
  virtual void print (ostream &os) const = 0;
 
413
};
 
414
 
 
415
 
 
416
inline ostream &operator << (ostream &os, const Printable &object) {
 
417
  object.print (os);
 
418
  return os;
 
419
}
 
420
 
 
421
 
 
422
} // namespace Puma
 
423
 
 
424
#endif /* __printable_h__ */
 
425
 
 
426
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
427
 
 
428
#line 429 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
429
 
 
430
#ifndef __ac_fwd_PragmaOnceUnitState__
 
431
#define __ac_fwd_PragmaOnceUnitState__
 
432
class PragmaOnceUnitState;
 
433
namespace AC {
 
434
  template <class JoinPoint>
 
435
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
436
  template <class JoinPoint>
 
437
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
438
}
 
439
#endif
 
440
 
 
441
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
442
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
443
#endif
 
444
 
 
445
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
446
// This file is part of PUMA.
 
447
// Copyright (C) 1999-2003  The PUMA developer team.
 
448
//                                                                
 
449
// This program is free software;  you can redistribute it and/or 
 
450
// modify it under the terms of the GNU General Public License as 
 
451
// published by the Free Software Foundation; either version 2 of 
 
452
// the License, or (at your option) any later version.            
 
453
//                                                                
 
454
// This program is distributed in the hope that it will be useful,
 
455
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
456
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
457
// GNU General Public License for more details.                   
 
458
//                                                                
 
459
// You should have received a copy of the GNU General Public      
 
460
// License along with this program; if not, write to the Free     
 
461
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
462
// MA  02111-1307  USA                                            
 
463
 
 
464
#ifndef __UnitState__
 
465
#define __UnitState__
 
466
 
 
467
// The state of a unit: 
 
468
// 1. modified by manipulations and not updated at the class registry
 
469
// 2. modified by manipulations and updated at the class registry
 
470
// 3. unmodified by manipulations and not updated at the class registry
 
471
// 4. unmodified by manipulations and updated at the class registry
 
472
 
 
473
namespace Puma {
 
474
 
 
475
 
 
476
 
 
477
#line 478 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
478
} // closed Puma
 
479
class CCExprResolve;
 
480
class CExprResolve;
 
481
class WinIfExists;
 
482
class WinImportHandler;
 
483
class WinMacros;
 
484
class WinAsm;
 
485
class WinDeclSpecs;
 
486
class WinMemberExplSpec;
 
487
class WinTypeKeywords;
 
488
class WinFriend;
 
489
class ExtAC;
 
490
class ExtACBuilderCoupling;
 
491
class ExtACSyntaxCoupling;
 
492
class ExtACTree;
 
493
class ExtACKeywords;
 
494
class ExtGnu;
 
495
class PragmaOnceUnitState;
 
496
class PragmaOnce;
 
497
class CMatchSyntax;
 
498
namespace Puma {
 
499
 
 
500
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
501
 
 
502
#line 503 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
503
} // closed Puma
 
504
 
 
505
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
506
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
507
 
 
508
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
509
// This file is part of PUMA.
 
510
// Copyright (C) 1999-2003  The PUMA developer team.
 
511
//                                                                
 
512
// This program is free software;  you can redistribute it and/or 
 
513
// modify it under the terms of the GNU General Public License as 
 
514
// published by the Free Software Foundation; either version 2 of 
 
515
// the License, or (at your option) any later version.            
 
516
//                                                                
 
517
// This program is distributed in the hope that it will be useful,
 
518
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
519
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
520
// GNU General Public License for more details.                   
 
521
//                                                                
 
522
// You should have received a copy of the GNU General Public      
 
523
// License along with this program; if not, write to the Free     
 
524
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
525
// MA  02111-1307  USA                                            
 
526
 
 
527
#ifndef __PragmaOnceUnitState__
 
528
#define __PragmaOnceUnitState__
 
529
 
 
530
 
 
531
#line 532 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
532
class CCExprResolve;
 
533
class CExprResolve;
 
534
class WinIfExists;
 
535
class WinImportHandler;
 
536
class WinMacros;
 
537
class WinAsm;
 
538
class WinDeclSpecs;
 
539
class WinMemberExplSpec;
 
540
class WinTypeKeywords;
 
541
class WinFriend;
 
542
class ExtAC;
 
543
class ExtACBuilderCoupling;
 
544
class ExtACSyntaxCoupling;
 
545
class ExtACTree;
 
546
class ExtACKeywords;
 
547
class ExtGnu;
 
548
class PragmaOnce;
 
549
class CMatchSyntax;
 
550
 
 
551
#line 22 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
552
class PragmaOnceUnitState {
 
553
#line 554 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
554
 
 
555
public:
 
556
  static PragmaOnceUnitState *aspectof () {
 
557
    static PragmaOnceUnitState __instance;
 
558
    return &__instance;
 
559
  }
 
560
  static PragmaOnceUnitState *aspectOf () {
 
561
    return aspectof ();
 
562
  }
 
563
private:
 
564
 
 
565
#line 22 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
566
 
 
567
#line 568 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
568
  friend class ::CCExprResolve;
 
569
  friend class ::CExprResolve;
 
570
  friend class ::WinIfExists;
 
571
  friend class ::WinImportHandler;
 
572
  friend class ::WinMacros;
 
573
  friend class ::WinAsm;
 
574
  friend class ::WinDeclSpecs;
 
575
  friend class ::WinMemberExplSpec;
 
576
  friend class ::WinTypeKeywords;
 
577
  friend class ::WinFriend;
 
578
  friend class ::ExtAC;
 
579
  friend class ::ExtACBuilderCoupling;
 
580
  friend class ::ExtACSyntaxCoupling;
 
581
  friend class ::ExtACTree;
 
582
  friend class ::ExtACKeywords;
 
583
  friend class ::ExtGnu;
 
584
  friend class ::PragmaOnce;
 
585
  friend class ::CMatchSyntax;
 
586
 
 
587
#line 22 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
588
 
 
589
  /******************************************************/
 
590
  /* specific #pragma once unit state                   */
 
591
  /******************************************************/
 
592
 
 
593
  // pointcut definitions
 
594
  
 
595
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
596
 
 
597
 
 
598
  
 
599
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
600
 
 
601
  
 
602
  // initialize new state flag
 
603
  
 
604
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
605
 
 
606
public: template<class JoinPoint> void __a0_after 
 
607
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
608
 
 
609
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
610
(JoinPoint *tjp)
 
611
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
612
 {
 
613
#line 614 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
614
 
 
615
  JoinPoint *&thisJoinPoint = tjp;
 
616
 
 
617
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
618
 
 
619
#line 620 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
620
 
 
621
  typedef typename JoinPoint::That __JP_That;
 
622
  typedef typename JoinPoint::Target __JP_Target;
 
623
  typedef typename JoinPoint::Result __JP_Result;
 
624
 
 
625
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
626
 
 
627
    thisJoinPoint->that ()->_once = false;
 
628
  }
 
629
#line 630 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
630
 
 
631
private:
 
632
 
 
633
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
634
 
 
635
  
 
636
  // initialize new flag for all managed units 
 
637
  
 
638
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
639
 
 
640
public: template<class JoinPoint> void __a1_after 
 
641
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
642
 
 
643
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
644
(JoinPoint *tjp)
 
645
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
646
 {
 
647
#line 648 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
648
 
 
649
  typedef typename JoinPoint::That __JP_That;
 
650
  typedef typename JoinPoint::Target __JP_Target;
 
651
  typedef typename JoinPoint::Result __JP_Result;
 
652
 
 
653
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
654
 
 
655
    // go through the whole unit hash table and reset the 
 
656
    // `#pragma once' state of the units
 
657
    typename __JP_That
 
658
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
659
::UMapIter iter;
 
660
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
 
661
      (*iter).second->state ().onlyOnce (false);
 
662
  }
 
663
#line 664 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
664
 
 
665
private:
 
666
 
 
667
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
668
 
 
669
 
 
670
protected:
 
671
  // this aspect should never be instantiated directly
 
672
  PragmaOnceUnitState () {}
 
673
};
 
674
#line 675 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
675
 
 
676
namespace AC {
 
677
  template <class JoinPoint>
 
678
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
 
679
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
 
680
  }
 
681
  template <class JoinPoint>
 
682
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
 
683
    ::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
 
684
  }
 
685
 
686
 
 
687
#line 56 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
688
 
 
689
 
 
690
 
 
691
#endif /* __PragmaOnceUnitState__ */
 
692
 
 
693
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
694
#endif
 
695
namespace Puma {
 
696
 
 
697
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
698
class UnitState {
 
699
#line 700 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
700
  friend class ::CCExprResolve;
 
701
  friend class ::CExprResolve;
 
702
  friend class ::WinIfExists;
 
703
  friend class ::WinImportHandler;
 
704
  friend class ::WinMacros;
 
705
  friend class ::WinAsm;
 
706
  friend class ::WinDeclSpecs;
 
707
  friend class ::WinMemberExplSpec;
 
708
  friend class ::WinTypeKeywords;
 
709
  friend class ::WinFriend;
 
710
  friend class ::ExtAC;
 
711
  friend class ::ExtACBuilderCoupling;
 
712
  friend class ::ExtACSyntaxCoupling;
 
713
  friend class ::ExtACTree;
 
714
  friend class ::ExtACKeywords;
 
715
  friend class ::ExtGnu;
 
716
  friend class ::PragmaOnceUnitState;
 
717
  friend class ::PragmaOnce;
 
718
  friend class ::CMatchSyntax;
 
719
 
 
720
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
721
 
 
722
  bool _modified;
 
723
  bool _updated;
 
724
  long _lastModified;
 
725
      
 
726
public:
 
727
  
 
728
#line 729 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
729
public: __attribute__((always_inline)) inline void __exec_old_C1();
 
730
 
 
731
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
732
UnitState ();
 
733
      
 
734
  bool isModified () const;
 
735
  bool isUpdated () const;
 
736
  long lastModified () const;
 
737
 
 
738
  // Is modified and has to be updated.
 
739
  void modified ();
 
740
  void lastModified (long);
 
741
  void unmodified ();
 
742
  void updated ();
167
743
   private:
168
 
      Item* data;
169
 
      long size;
170
 
      long count;
171
 
      long increment;
172
 
      
173
 
      void check (long wanted);
174
 
 };
175
 
 
176
 
template <class Item>
177
 
inline Array<Item>::Array (long is, long incr)
178
 
 {
179
 
   count     = 0; 
180
 
   size      = is;
181
 
   increment = incr;
182
 
   data      = new Item[size];
183
 
 }
184
 
 
185
 
template <class Item>
186
 
Array<Item>::Array (const Array<Item>& array)
187
 
 {
188
 
   count = 0;
189
 
   size  = array.size;
190
 
   data  = new Item[size];
191
 
   increment = array.increment;
192
 
 
193
 
   for (int pos = 0; pos < array.length (); pos++)
194
 
      append (array.lookup (pos));
195
 
 }
196
 
 
197
 
template <class Item>
198
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
199
 
 {
200
 
   if (data)
201
 
      delete[] data;
202
 
   count = 0;
203
 
   size  = array.size;
204
 
   data  = new Item[size];
205
 
   increment = array.increment;
206
 
 
207
 
   for (int pos = 0; pos < array.length (); pos++)
208
 
      append (array.lookup (pos));
209
 
   return *this;
210
 
 }
211
 
 
212
 
template <class Item>
213
 
Array<Item>::~Array ()
214
 
 {
215
 
   if (data)
216
 
      delete[] data;
217
 
 }
218
 
 
219
 
template <class Item>
220
 
inline void Array<Item>::check (long wanted)
221
 
 {
222
 
   if (wanted >= size)
223
 
    {
224
 
      Item* new_data;
225
 
 
226
 
      while (wanted >= size)
227
 
      {
228
 
         size += increment;
229
 
         increment*=2;
230
 
      }
231
 
      new_data = new Item[size];
232
 
      for (int pos = 0; pos < count; pos++)
233
 
         new_data[pos] = data[pos];
234
 
      delete[] data;
235
 
      data = new_data;
236
 
    }
237
 
 }
238
 
   
239
 
template <class Item>
240
 
inline void Array<Item>::append (const Item& item)
241
 
 {
242
 
   check (count);
243
 
   data[count++] = item;
244
 
 }
245
 
 
246
 
template <class Item>
247
 
void Array<Item>::prepend (const Item& item)
248
 
 {
249
 
   insert (0, item);
250
 
 }
251
 
 
252
 
template <class Item>
253
 
void Array<Item>::insert (long index, const Item& item)
254
 
 {
255
 
   check (count);
256
 
   for (int pos = count; pos > index; pos--)
257
 
      data[pos] = data[pos - 1];
258
 
   data[index] = item;
259
 
   count++;
260
 
 }
261
 
 
262
 
template <class Item>
263
 
inline Item& Array<Item>::get (long index)
264
 
 {
265
 
   check (index);
266
 
   if (index >= count)
267
 
      count = index + 1;
268
 
   return data[index];
269
 
 }
270
 
 
271
 
template <class Item>
272
 
inline Item& Array<Item>::operator[] (long index)
273
 
 {
274
 
   return get (index);
275
 
 }
276
 
 
277
 
template <class Item>
278
 
inline Item Array<Item>::fetch (long index) const
279
 
 {
280
 
   assert(index < count);
281
 
   return data[index];
282
 
 }
283
 
 
284
 
template <class Item>
285
 
inline long Array<Item>::length () const
286
 
 {
287
 
   return count;
288
 
 }
289
 
 
290
 
template <class Item>
291
 
inline void Array<Item>::remove (long index)
292
 
 {
293
 
   if (index < count && count > 0)
294
 
    {
295
 
      for (int pos = index; pos < count - 1; pos++)
296
 
         data[pos] = data[pos + 1];
297
 
      count--;
298
 
    }
299
 
 }
300
 
 
301
 
#ifndef __puma
302
 
template <>
303
 
inline void Array<int>::reset () {
304
 
   count = 0; 
305
 
}
306
 
#endif
307
 
 
308
 
template <class Item>
309
 
void Array<Item>::reset ()
310
 
 {
311
 
   if (data)
312
 
      delete[] data;
313
 
   count     = 0; 
314
 
   size      = default_init_size;
315
 
   increment = default_increment;
316
 
   data      = new Item[size];
317
 
 }
318
 
 
319
 
template <class Item>
320
 
inline Item& Array<Item>::lookup (long index) const
321
 
 {
322
 
   assert(index >= 0 && index < count);
323
 
//   if (index >= count) index = count - 1; 
324
 
//   if (index < 0)      index = 0;
325
 
   return data[index];
326
 
 }
327
 
 
328
 
 
329
 
} // namespace Puma
330
 
 
331
 
// Array specialization for pointer types sharing method definitions
332
 
 
333
 
#ifndef __puma
334
 
 
335
 
#include "Puma/VoidPtrArray.h"
336
 
 
337
 
namespace Puma {
338
 
 
339
 
 
340
 
template <class Item>
341
 
class Array<Item*> : private VoidPtrArray {
342
 
  typedef VoidPtrArray Base;
 
744
 
 
745
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
746
 bool _once ;
 
747
public :
 
748
 
 
749
bool onlyOnce ( ) const { return _once ; }
 
750
void onlyOnce ( bool v ) { _once = v ; }
 
751
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
752
 
 
753
#line 754 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
754
 
 
755
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
 
756
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
 
757
  typedef TResult Result;
 
758
  typedef TThat   That;
 
759
  typedef TTarget Target;
 
760
  enum { ARGS = TArgs::ARGS };
 
761
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
762
  static const int JPID = 3641;
 
763
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
764
  struct Res {
 
765
    typedef void Type;
 
766
    typedef void ReferredType;
 
767
  };
 
768
 
 
769
  That *_that;
 
770
 
 
771
  inline That *that() {return (That*)_that;}
 
772
 
 
773
};
 
774
 
 
775
 
 
776
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
777
 
 
778
#line 779 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
343
779
 
344
780
public:
345
 
  Array (long is = default_init_size, long incr = default_increment) :
346
 
    Base (is, incr) {}
347
 
  Array (const Array<Item*> &array) : 
348
 
    Base (array) {}
349
 
  Array<Item*> &operator= (const Array<Item*> &array) 
350
 
   { return (Array<Item*>&)Base::operator= (array); }
351
 
 
352
 
  ~Array () {}
353
 
 
354
 
  void append (const Item *item)           { Base::append ((void*)item); }
355
 
  void insert (long idx, const Item *item) { Base::insert (idx, (void*)item); }
356
 
  void prepend (const Item *item)          { Base::prepend ((void*)item); }
357
 
  void remove (long idx)                   { Base::remove (idx); }
358
 
  void reset ()                            { Base::reset (); }
359
 
 
360
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
361
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
362
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
363
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
364
 
  long length () const           { return Base::length (); }
365
 
};
 
781
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
 
782
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
 
783
  __TJP tjp;
 
784
  tjp._that =  (__TJP::That*)this;
 
785
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
786
 
 
787
}
 
788
 
 
789
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
790
};
 
791
 
 
792
 
 
793
#line 794 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
794
 
 
795
 
 
796
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
 
797
  typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
 
798
  typedef TResult Result;
 
799
  typedef TThat   That;
 
800
  typedef TTarget Target;
 
801
  enum { ARGS = TArgs::ARGS };
 
802
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
803
  static const int JPID = 3617;
 
804
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
805
  struct Res {
 
806
    typedef void Type;
 
807
    typedef void ReferredType;
 
808
  };
 
809
 
 
810
  That *_that;
 
811
 
 
812
  inline That *that() {return (That*)_that;}
 
813
 
 
814
};
 
815
 
 
816
 
 
817
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
818
inline UnitState::UnitState ()
 
819
 
 
820
#line 821 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
821
{
 
822
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
 
823
    __TJP tjp;
 
824
  tjp._that =  (__TJP::That*)this;
 
825
    this->__exec_old_C1();
 
826
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
827
  
 
828
}
 
829
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
 
830
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
831
{ _modified = false; _updated = false; _lastModified = 0; }
 
832
 
 
833
inline bool UnitState::isModified () const 
 
834
 { return _modified; }
 
835
inline bool UnitState::isUpdated () const 
 
836
 { return _updated; }
 
837
inline long UnitState::lastModified () const
 
838
 { return _lastModified; }
 
839
 
 
840
inline void UnitState::modified () 
 
841
 { _modified = true; _updated = false; _lastModified = 0; }
 
842
inline void UnitState::unmodified () 
 
843
 { _modified = false; }
 
844
inline void UnitState::updated () 
 
845
 { _updated = true; }
 
846
inline void UnitState::lastModified (long when) 
 
847
 { _lastModified = when; }
366
848
 
367
849
 
368
850
} // namespace Puma
369
851
 
370
 
#endif /* __puma */
 
852
#endif /* __UnitState__ */
371
853
 
372
 
#endif /* __array_h__ */
 
854
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
373
855
namespace Puma {
374
856
 
 
857
 
 
858
 
 
859
#line 860 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
375
860
} // closed Puma
 
861
class CCExprResolve;
 
862
class CExprResolve;
376
863
class WinIfExists;
377
864
class WinImportHandler;
378
865
class WinMacros;
379
 
class CMatchSyntax;
380
 
class ExtGnu;
 
866
class WinAsm;
 
867
class WinDeclSpecs;
 
868
class WinMemberExplSpec;
 
869
class WinTypeKeywords;
 
870
class WinFriend;
381
871
class ExtAC;
382
872
class ExtACBuilderCoupling;
383
873
class ExtACSyntaxCoupling;
384
874
class ExtACTree;
385
875
class ExtACKeywords;
386
 
class WinAsm;
387
 
class WinDeclSpecs;
388
 
class WinMemberExplSpec;
389
 
class WinTypeKeywords;
 
876
class ExtGnu;
390
877
class PragmaOnceUnitState;
391
878
class PragmaOnce;
392
 
class CCExprResolve;
393
 
class CExprResolve;
 
879
class CMatchSyntax;
394
880
namespace Puma {
395
 
template <class Item>
396
 
class Stack : private Array<Item> {  friend class ::WinIfExists;
 
881
 
 
882
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
 
883
class Unit : public List, public Printable {
 
884
#line 885 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
885
  friend class ::CCExprResolve;
 
886
  friend class ::CExprResolve;
 
887
  friend class ::WinIfExists;
397
888
  friend class ::WinImportHandler;
398
889
  friend class ::WinMacros;
399
 
  friend class ::CMatchSyntax;
400
 
  friend class ::ExtGnu;
 
890
  friend class ::WinAsm;
 
891
  friend class ::WinDeclSpecs;
 
892
  friend class ::WinMemberExplSpec;
 
893
  friend class ::WinTypeKeywords;
 
894
  friend class ::WinFriend;
401
895
  friend class ::ExtAC;
402
896
  friend class ::ExtACBuilderCoupling;
403
897
  friend class ::ExtACSyntaxCoupling;
404
898
  friend class ::ExtACTree;
405
899
  friend class ::ExtACKeywords;
406
 
  friend class ::WinAsm;
407
 
  friend class ::WinDeclSpecs;
408
 
  friend class ::WinMemberExplSpec;
409
 
  friend class ::WinTypeKeywords;
 
900
  friend class ::ExtGnu;
410
901
  friend class ::PragmaOnceUnitState;
411
902
  friend class ::PragmaOnce;
412
 
  friend class ::CCExprResolve;
413
 
  friend class ::CExprResolve;
 
903
  friend class ::CMatchSyntax;
 
904
 
 
905
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Unit.h"
 
906
 
 
907
  char *_name;
 
908
  UnitState _state;
414
909
 
415
910
public:
416
 
  Stack (long is = 8192, long incr = 8192) :
417
 
    Array<Item> (is, incr) {}
418
 
  void push (Item f) { Array<Item>::append (f); }
419
 
  Item &top () const { long len = Array<Item>::length ()-1; 
420
 
                       return Array<Item>::lookup (len >= 0 ? len : 0); }
421
 
  void pop () { Array<Item>::remove (Array<Item>::length () - 1); }
422
 
  long length () const { return Array<Item>::length (); }
423
 
  void reset () { Array<Item>::reset (); }
424
 
};
425
 
 
426
 
} // namespace Puma
427
 
 
428
 
#endif /* __stack_h__ */
429
 
// This file is part of PUMA.
430
 
// Copyright (C) 1999-2003  The PUMA developer team.
431
 
//                                                                
432
 
// This program is free software;  you can redistribute it and/or 
433
 
// modify it under the terms of the GNU General Public License as 
434
 
// published by the Free Software Foundation; either version 2 of 
435
 
// the License, or (at your option) any later version.            
436
 
//                                                                
437
 
// This program is distributed in the hope that it will be useful,
438
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
439
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
440
 
// GNU General Public License for more details.                   
441
 
//                                                                
442
 
// You should have received a copy of the GNU General Public      
443
 
// License along with this program; if not, write to the Free     
444
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
445
 
// MA  02111-1307  USA                                            
446
 
 
447
 
#ifndef __C_TOKENS__
448
 
#define __C_TOKENS__
449
 
 
450
 
namespace Puma {
451
 
 
452
 
enum CTokens {
453
 
 
454
 
  // core tokens, i.e. numbers, operator symbols, brackets, etc.
455
 
  TOK_AT = 100,
456
 
  TOK_ZERO_VAL,
457
 
  TOK_INT_VAL,
458
 
  TOK_FLT_VAL,
459
 
  TOK_COMMA,
460
 
  TOK_ASSIGN,
461
 
  TOK_QUESTION,
462
 
  TOK_OR,
463
 
  TOK_ROOF,
464
 
  TOK_AND,
465
 
  TOK_PLUS,
466
 
  TOK_MINUS,
467
 
  TOK_MUL,
468
 
  TOK_DIV,
469
 
  TOK_MODULO,
470
 
  TOK_LESS,
471
 
  TOK_GREATER,
472
 
  TOK_OPEN_ROUND,
473
 
  TOK_CLOSE_ROUND,
474
 
  TOK_OPEN_SQUARE,
475
 
  TOK_CLOSE_SQUARE,
476
 
  TOK_OPEN_CURLY,
477
 
  TOK_CLOSE_CURLY,
478
 
  TOK_SEMI_COLON,
479
 
  TOK_COLON,
480
 
  TOK_NOT,
481
 
  TOK_TILDE,
482
 
  TOK_DOT,
483
 
  TOK_MUL_EQ,
484
 
  TOK_DIV_EQ,
485
 
  TOK_MOD_EQ,
486
 
  TOK_ADD_EQ,
487
 
  TOK_SUB_EQ,
488
 
  TOK_LSH_EQ,
489
 
  TOK_RSH_EQ,
490
 
  TOK_AND_EQ,
491
 
  TOK_XOR_EQ,
492
 
  TOK_IOR_EQ,
493
 
  TOK_OR_OR,
494
 
  TOK_AND_AND,
495
 
  TOK_EQL,
496
 
  TOK_NEQ,
497
 
  TOK_LEQ,
498
 
  TOK_GEQ,
499
 
  TOK_LSH,
500
 
  TOK_RSH,
501
 
  TOK_DOT_STAR,
502
 
  TOK_PTS_STAR,
503
 
  TOK_INCR,
504
 
  TOK_DECR,
505
 
  TOK_PTS,
506
 
  TOK_COLON_COLON,
507
 
  TOK_ELLIPSIS,
508
 
  TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
509
 
  
510
 
  // C keywords:
511
 
  TOK_ASM,
512
 
  TOK_AUTO,
513
 
  TOK_BREAK,
514
 
  TOK_CASE,
515
 
  TOK_CHAR,
516
 
  TOK_CONST,
517
 
  TOK_CONTINUE,
518
 
  TOK_DEFAULT,
519
 
  TOK_DO,
520
 
  TOK_DOUBLE,
521
 
  TOK_ELSE,
522
 
  TOK_ENUM,
523
 
  TOK_EXTERN,
524
 
  TOK_FLOAT,
525
 
  TOK_FOR,
526
 
  TOK_GOTO,
527
 
  TOK_IF,
528
 
  TOK_INLINE,
529
 
  TOK_INT,
530
 
  TOK_LONG,
531
 
  TOK_REGISTER,
532
 
  TOK_RESTRICT,
533
 
  TOK_RETURN,
534
 
  TOK_SHORT,
535
 
  TOK_SIGNED,
536
 
  TOK_SIZEOF,
537
 
  TOK_STATIC,
538
 
  TOK_STRUCT,
539
 
  TOK_SWITCH,
540
 
  TOK_TYPEDEF,
541
 
  TOK_UNION,
542
 
  TOK_UNSIGNED,
543
 
  TOK_VOID,
544
 
  TOK_VOLATILE,
545
 
  TOK_WCHAR_T,
546
 
  TOK_WHILE,
547
 
 
548
 
  // C compatibility keywords
549
 
 
550
 
  TOK_ASM_2,
551
 
  TOK_ASM_3,
552
 
  TOK_BOOL_2,
553
 
  TOK_CONST_2,
554
 
  TOK_CONST_3,
555
 
  TOK_INLINE_2,
556
 
  TOK_INLINE_3,
557
 
  TOK_RESTRICT_2,
558
 
  TOK_RESTRICT_3,
559
 
  TOK_SIGNED_2,
560
 
  TOK_SIGNED_3,
561
 
  TOK_VOLATILE_2,
562
 
  TOK_VOLATILE_3,
563
 
  TOK_WCHAR_T_2,
564
 
  TOK_TYPEOF,
565
 
  TOK_TYPEOF_2,
566
 
  TOK_TYPEOF_3,
567
 
 
568
 
  // C win specific keywords
569
 
 
570
 
  TOK_INT64,
571
 
  TOK_CDECL,
572
 
  TOK_CDECL_2,
573
 
  TOK_STDCALL,
574
 
  TOK_STDCALL_2,
575
 
  TOK_FASTCALL,
576
 
  TOK_FASTCALL_2,
577
 
  TOK_IF_EXISTS,
578
 
  TOK_IF_NOT_EXISTS,
579
 
 
580
 
  TOK_LAST_C = TOK_IF_NOT_EXISTS,
581
 
  
582
 
  // a boolean constant:
583
 
  TOK_BOOL_VAL,
584
 
 
585
 
  // C++ keywords:
586
 
 
587
 
  TOK_BOOL,
588
 
  TOK_CATCH,
589
 
  TOK_CLASS,
590
 
  TOK_CONST_CAST,
591
 
  TOK_DELETE,
592
 
  TOK_DYN_CAST,
593
 
  TOK_EXPLICIT,
594
 
  TOK_EXPORT,
595
 
  TOK_FRIEND,
596
 
  TOK_MUTABLE,
597
 
  TOK_NAMESPACE,
598
 
  TOK_NEW,
599
 
  TOK_OPERATOR,
600
 
  TOK_PRIVATE,
601
 
  TOK_PROTECTED,
602
 
  TOK_PUBLIC,
603
 
  TOK_REINT_CAST,
604
 
  TOK_STAT_CAST,
605
 
  TOK_TEMPLATE,
606
 
  TOK_THIS,
607
 
  TOK_THROW,
608
 
  TOK_TRY,
609
 
  TOK_TYPEID,
610
 
  TOK_TYPENAME,
611
 
  TOK_USING,
612
 
  TOK_VIRTUAL,
613
 
 
614
 
  // C++ alternative representation of operators (ISO 646):
615
 
 
616
 
  TOK_AND_AND_ISO_646,
617
 
  TOK_AND_EQ_ISO_646,
618
 
  TOK_AND_ISO_646,
619
 
  TOK_OR_ISO_646,
620
 
  TOK_TILDE_ISO_646,
621
 
  TOK_NOT_ISO_646,
622
 
  TOK_NEQ_ISO_646,
623
 
  TOK_OR_OR_ISO_646,
624
 
  TOK_IOR_EQ_ISO_646,
625
 
  TOK_ROOF_ISO_646,
626
 
  TOK_XOR_EQ_ISO_646,
627
 
 
628
 
  TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
629
 
  
630
 
  // AspectC++ keywords:
631
 
 
632
 
  TOK_POINTCUT,
633
 
  TOK_ASPECT,
634
 
  TOK_ADVICE,
635
 
  TOK_SLICE,
636
 
  TOK_UNKNOWN_T,
637
 
 
638
 
  TOK_LAST_AC = TOK_UNKNOWN_T,
639
 
  
640
 
  // further [A](C|C++) token
641
 
  TOK_STRING_VAL,
642
 
  TOK_CHAR_VAL,
643
 
  TOK_ID,
644
 
 
645
 
  // These two always have to be the ** last ** token listed here!!!
646
 
  TOK_EPSILON,
647
 
  TOK_NO
648
 
  
649
 
};
650
 
 
651
 
} // namespace Puma
652
 
 
653
 
#endif /* __C_TOKENS__ */
 
911
  Unit () : List (), _name ((char*)0) {}
 
912
  Unit (const List &list) : List (list), _name ((char*)0) {}
 
913
  virtual ~Unit ();
 
914
  virtual void name (const char *);
 
915
  char *name () const { return _name; }
 
916
  virtual void print (ostream &os) const;
 
917
  virtual bool isFile () const { return false; }
 
918
  virtual bool isMacroExp () const { return false; }
 
919
  UnitState &state () { return _state; }
 
920
};
 
921
 
 
922
 
 
923
} // namespace Puma
 
924
 
 
925
#endif /* __unit_h__ */
 
926
 
 
927
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
654
928
// This file is part of PUMA.
655
929
// Copyright (C) 1999-2003  The PUMA developer team.
656
930
//                                                                
677
951
// lexical unit of the scanned text.
678
952
 
679
953
#include <stdlib.h>
 
954
 
 
955
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/LanguageID.h"
680
956
// This file is part of PUMA.
681
957
// Copyright (C) 1999-2003  The PUMA developer team.
682
958
//                                                                
703
979
namespace Puma {
704
980
 
705
981
 
 
982
 
 
983
#line 984 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
706
984
} // closed Puma
 
985
class CCExprResolve;
 
986
class CExprResolve;
707
987
class WinIfExists;
708
988
class WinImportHandler;
709
989
class WinMacros;
710
 
class CMatchSyntax;
711
 
class ExtGnu;
 
990
class WinAsm;
 
991
class WinDeclSpecs;
 
992
class WinMemberExplSpec;
 
993
class WinTypeKeywords;
 
994
class WinFriend;
712
995
class ExtAC;
713
996
class ExtACBuilderCoupling;
714
997
class ExtACSyntaxCoupling;
715
998
class ExtACTree;
716
999
class ExtACKeywords;
717
 
class WinAsm;
718
 
class WinDeclSpecs;
719
 
class WinMemberExplSpec;
720
 
class WinTypeKeywords;
 
1000
class ExtGnu;
721
1001
class PragmaOnceUnitState;
722
1002
class PragmaOnce;
723
 
class CCExprResolve;
724
 
class CExprResolve;
 
1003
class CMatchSyntax;
725
1004
namespace Puma {
726
 
class LanguageID {  friend class ::WinIfExists;
 
1005
 
 
1006
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1007
class LanguageID {
 
1008
#line 1009 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1009
  friend class ::CCExprResolve;
 
1010
  friend class ::CExprResolve;
 
1011
  friend class ::WinIfExists;
727
1012
  friend class ::WinImportHandler;
728
1013
  friend class ::WinMacros;
729
 
  friend class ::CMatchSyntax;
730
 
  friend class ::ExtGnu;
 
1014
  friend class ::WinAsm;
 
1015
  friend class ::WinDeclSpecs;
 
1016
  friend class ::WinMemberExplSpec;
 
1017
  friend class ::WinTypeKeywords;
 
1018
  friend class ::WinFriend;
731
1019
  friend class ::ExtAC;
732
1020
  friend class ::ExtACBuilderCoupling;
733
1021
  friend class ::ExtACSyntaxCoupling;
734
1022
  friend class ::ExtACTree;
735
1023
  friend class ::ExtACKeywords;
736
 
  friend class ::WinAsm;
737
 
  friend class ::WinDeclSpecs;
738
 
  friend class ::WinMemberExplSpec;
739
 
  friend class ::WinTypeKeywords;
 
1024
  friend class ::ExtGnu;
740
1025
  friend class ::PragmaOnceUnitState;
741
1026
  friend class ::PragmaOnce;
742
 
  friend class ::CCExprResolve;
743
 
  friend class ::CExprResolve;
 
1027
  friend class ::CMatchSyntax;
 
1028
 
 
1029
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/LanguageID.h"
744
1030
 
745
1031
  const char *_id;
746
1032
 
756
1042
} // namespace Puma
757
1043
 
758
1044
#endif /* __language_id_h__ */
 
1045
 
 
1046
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
759
1047
// This file is part of PUMA.
760
1048
// Copyright (C) 1999-2003  The PUMA developer team.
761
1049
//                                                                
777
1065
#ifndef __location_h__
778
1066
#define __location_h__
779
1067
 
 
1068
 
 
1069
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1070
// This file is part of PUMA.
 
1071
// Copyright (C) 1999-2003  The PUMA developer team.
 
1072
//                                                                
 
1073
// This program is free software;  you can redistribute it and/or 
 
1074
// modify it under the terms of the GNU General Public License as 
 
1075
// published by the Free Software Foundation; either version 2 of 
 
1076
// the License, or (at your option) any later version.            
 
1077
//                                                                
 
1078
// This program is distributed in the hope that it will be useful,
 
1079
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1080
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1081
// GNU General Public License for more details.                   
 
1082
//                                                                
 
1083
// You should have received a copy of the GNU General Public      
 
1084
// License along with this program; if not, write to the Free     
 
1085
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1086
// MA  02111-1307  USA                                            
 
1087
 
 
1088
#ifndef __filename_h__
 
1089
#define __filename_h__
 
1090
 
 
1091
 
 
1092
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
780
1093
// This file is part of PUMA.
781
1094
// Copyright (C) 1999-2003  The PUMA developer team.
782
1095
//                                                                
798
1111
#ifndef __smart_ptr_h__
799
1112
#define __smart_ptr_h__
800
1113
 
 
1114
 
 
1115
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/RefCnt.h"
801
1116
// This file is part of PUMA.
802
1117
// Copyright (C) 1999-2003  The PUMA developer team.
803
1118
//                                                                
822
1137
namespace Puma {
823
1138
 
824
1139
 
 
1140
 
 
1141
#line 1142 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
825
1142
} // closed Puma
 
1143
class CCExprResolve;
 
1144
class CExprResolve;
826
1145
class WinIfExists;
827
1146
class WinImportHandler;
828
1147
class WinMacros;
829
 
class CMatchSyntax;
830
 
class ExtGnu;
 
1148
class WinAsm;
 
1149
class WinDeclSpecs;
 
1150
class WinMemberExplSpec;
 
1151
class WinTypeKeywords;
 
1152
class WinFriend;
831
1153
class ExtAC;
832
1154
class ExtACBuilderCoupling;
833
1155
class ExtACSyntaxCoupling;
834
1156
class ExtACTree;
835
1157
class ExtACKeywords;
836
 
class WinAsm;
837
 
class WinDeclSpecs;
838
 
class WinMemberExplSpec;
839
 
class WinTypeKeywords;
 
1158
class ExtGnu;
840
1159
class PragmaOnceUnitState;
841
1160
class PragmaOnce;
842
 
class CCExprResolve;
843
 
class CExprResolve;
 
1161
class CMatchSyntax;
844
1162
namespace Puma {
845
 
class RefCnt {  friend class ::WinIfExists;
 
1163
 
 
1164
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1165
class RefCnt {
 
1166
#line 1167 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1167
  friend class ::CCExprResolve;
 
1168
  friend class ::CExprResolve;
 
1169
  friend class ::WinIfExists;
846
1170
  friend class ::WinImportHandler;
847
1171
  friend class ::WinMacros;
848
 
  friend class ::CMatchSyntax;
849
 
  friend class ::ExtGnu;
 
1172
  friend class ::WinAsm;
 
1173
  friend class ::WinDeclSpecs;
 
1174
  friend class ::WinMemberExplSpec;
 
1175
  friend class ::WinTypeKeywords;
 
1176
  friend class ::WinFriend;
850
1177
  friend class ::ExtAC;
851
1178
  friend class ::ExtACBuilderCoupling;
852
1179
  friend class ::ExtACSyntaxCoupling;
853
1180
  friend class ::ExtACTree;
854
1181
  friend class ::ExtACKeywords;
855
 
  friend class ::WinAsm;
856
 
  friend class ::WinDeclSpecs;
857
 
  friend class ::WinMemberExplSpec;
858
 
  friend class ::WinTypeKeywords;
 
1182
  friend class ::ExtGnu;
859
1183
  friend class ::PragmaOnceUnitState;
860
1184
  friend class ::PragmaOnce;
861
 
  friend class ::CCExprResolve;
862
 
  friend class ::CExprResolve;
 
1185
  friend class ::CMatchSyntax;
 
1186
 
 
1187
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/RefCnt.h"
863
1188
 
864
1189
  int _counter;
865
1190
 
876
1201
} // namespace Puma
877
1202
 
878
1203
#endif /* __ref_cnt_h__ */
 
1204
 
 
1205
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
879
1206
namespace Puma {
880
1207
 
881
1208
 
 
1209
 
 
1210
#line 1211 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
882
1211
} // closed Puma
 
1212
class CCExprResolve;
 
1213
class CExprResolve;
883
1214
class WinIfExists;
884
1215
class WinImportHandler;
885
1216
class WinMacros;
886
 
class CMatchSyntax;
887
 
class ExtGnu;
 
1217
class WinAsm;
 
1218
class WinDeclSpecs;
 
1219
class WinMemberExplSpec;
 
1220
class WinTypeKeywords;
 
1221
class WinFriend;
888
1222
class ExtAC;
889
1223
class ExtACBuilderCoupling;
890
1224
class ExtACSyntaxCoupling;
891
1225
class ExtACTree;
892
1226
class ExtACKeywords;
893
 
class WinAsm;
894
 
class WinDeclSpecs;
895
 
class WinMemberExplSpec;
896
 
class WinTypeKeywords;
 
1227
class ExtGnu;
897
1228
class PragmaOnceUnitState;
898
1229
class PragmaOnce;
899
 
class CCExprResolve;
900
 
class CExprResolve;
 
1230
class CMatchSyntax;
901
1231
namespace Puma {
902
 
class SmartPtr {  friend class ::WinIfExists;
 
1232
 
 
1233
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1234
class SmartPtr {
 
1235
#line 1236 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1236
  friend class ::CCExprResolve;
 
1237
  friend class ::CExprResolve;
 
1238
  friend class ::WinIfExists;
903
1239
  friend class ::WinImportHandler;
904
1240
  friend class ::WinMacros;
905
 
  friend class ::CMatchSyntax;
906
 
  friend class ::ExtGnu;
 
1241
  friend class ::WinAsm;
 
1242
  friend class ::WinDeclSpecs;
 
1243
  friend class ::WinMemberExplSpec;
 
1244
  friend class ::WinTypeKeywords;
 
1245
  friend class ::WinFriend;
907
1246
  friend class ::ExtAC;
908
1247
  friend class ::ExtACBuilderCoupling;
909
1248
  friend class ::ExtACSyntaxCoupling;
910
1249
  friend class ::ExtACTree;
911
1250
  friend class ::ExtACKeywords;
912
 
  friend class ::WinAsm;
913
 
  friend class ::WinDeclSpecs;
914
 
  friend class ::WinMemberExplSpec;
915
 
  friend class ::WinTypeKeywords;
 
1251
  friend class ::ExtGnu;
916
1252
  friend class ::PragmaOnceUnitState;
917
1253
  friend class ::PragmaOnce;
918
 
  friend class ::CCExprResolve;
919
 
  friend class ::CExprResolve;
 
1254
  friend class ::CMatchSyntax;
 
1255
 
 
1256
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
920
1257
 
921
1258
  RefCnt *_data;
922
1259
 
937
1274
} // namespace Puma
938
1275
 
939
1276
#endif /* __smart_ptr_h__ */
940
 
// This file is part of PUMA.
941
 
// Copyright (C) 1999-2003  The PUMA developer team.
942
 
//                                                                
943
 
// This program is free software;  you can redistribute it and/or 
944
 
// modify it under the terms of the GNU General Public License as 
945
 
// published by the Free Software Foundation; either version 2 of 
946
 
// the License, or (at your option) any later version.            
947
 
//                                                                
948
 
// This program is distributed in the hope that it will be useful,
949
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
950
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
951
 
// GNU General Public License for more details.                   
952
 
//                                                                
953
 
// You should have received a copy of the GNU General Public      
954
 
// License along with this program; if not, write to the Free     
955
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
956
 
// MA  02111-1307  USA                                            
957
 
 
958
 
#ifndef __printable_h__
959
 
#define __printable_h__
960
 
 
961
 
#include <iostream>
962
 
using namespace std;
963
 
 
964
 
namespace Puma {
965
 
 
966
 
 
967
 
} // closed Puma
968
 
class WinIfExists;
969
 
class WinImportHandler;
970
 
class WinMacros;
971
 
class CMatchSyntax;
972
 
class ExtGnu;
973
 
class ExtAC;
974
 
class ExtACBuilderCoupling;
975
 
class ExtACSyntaxCoupling;
976
 
class ExtACTree;
977
 
class ExtACKeywords;
978
 
class WinAsm;
979
 
class WinDeclSpecs;
980
 
class WinMemberExplSpec;
981
 
class WinTypeKeywords;
982
 
class PragmaOnceUnitState;
983
 
class PragmaOnce;
984
 
class CCExprResolve;
985
 
class CExprResolve;
986
 
namespace Puma {
987
 
class Printable {  friend class ::WinIfExists;
988
 
  friend class ::WinImportHandler;
989
 
  friend class ::WinMacros;
990
 
  friend class ::CMatchSyntax;
991
 
  friend class ::ExtGnu;
992
 
  friend class ::ExtAC;
993
 
  friend class ::ExtACBuilderCoupling;
994
 
  friend class ::ExtACSyntaxCoupling;
995
 
  friend class ::ExtACTree;
996
 
  friend class ::ExtACKeywords;
997
 
  friend class ::WinAsm;
998
 
  friend class ::WinDeclSpecs;
999
 
  friend class ::WinMemberExplSpec;
1000
 
  friend class ::WinTypeKeywords;
1001
 
  friend class ::PragmaOnceUnitState;
1002
 
  friend class ::PragmaOnce;
1003
 
  friend class ::CCExprResolve;
1004
 
  friend class ::CExprResolve;
1005
 
 
1006
 
public:
1007
 
  virtual ~Printable () {}
1008
 
  virtual void print (ostream &os) const = 0;
1009
 
};
1010
 
 
1011
 
 
1012
 
inline ostream &operator << (ostream &os, const Printable &object) {
1013
 
  object.print (os);
1014
 
  return os;
1015
 
}
1016
 
 
1017
 
 
1018
 
} // namespace Puma
1019
 
 
1020
 
#endif /* __printable_h__ */
1021
 
// This file is part of PUMA.
1022
 
// Copyright (C) 1999-2003  The PUMA developer team.
1023
 
//                                                                
1024
 
// This program is free software;  you can redistribute it and/or 
1025
 
// modify it under the terms of the GNU General Public License as 
1026
 
// published by the Free Software Foundation; either version 2 of 
1027
 
// the License, or (at your option) any later version.            
1028
 
//                                                                
1029
 
// This program is distributed in the hope that it will be useful,
1030
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1031
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1032
 
// GNU General Public License for more details.                   
1033
 
//                                                                
1034
 
// You should have received a copy of the GNU General Public      
1035
 
// License along with this program; if not, write to the Free     
1036
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1037
 
// MA  02111-1307  USA                                            
1038
 
 
1039
 
#ifndef __location_info_h__
1040
 
#define __location_info_h__
1041
 
 
1042
 
// This file is part of PUMA.
1043
 
// Copyright (C) 1999-2003  The PUMA developer team.
1044
 
//                                                                
1045
 
// This program is free software;  you can redistribute it and/or 
1046
 
// modify it under the terms of the GNU General Public License as 
1047
 
// published by the Free Software Foundation; either version 2 of 
1048
 
// the License, or (at your option) any later version.            
1049
 
//                                                                
1050
 
// This program is distributed in the hope that it will be useful,
1051
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1052
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1053
 
// GNU General Public License for more details.                   
1054
 
//                                                                
1055
 
// You should have received a copy of the GNU General Public      
1056
 
// License along with this program; if not, write to the Free     
1057
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1058
 
// MA  02111-1307  USA                                            
1059
 
 
1060
 
#ifndef __filename_h__
1061
 
#define __filename_h__
1062
 
 
 
1277
 
 
1278
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1063
1279
// This file is part of PUMA.
1064
1280
// Copyright (C) 1999-2003  The PUMA developer team.
1065
1281
//                                                                
1081
1297
#ifndef __filename_info_h__
1082
1298
#define __filename_info_h__
1083
1299
 
 
1300
 
 
1301
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
1084
1302
// This file is part of PUMA.
1085
1303
// Copyright (C) 1999-2003  The PUMA developer team.
1086
1304
//                                                                
1102
1320
#ifndef __DString_h__
1103
1321
#define __DString_h__
1104
1322
 
 
1323
 
 
1324
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1105
1325
// This file is part of PUMA.
1106
1326
// Copyright (C) 1999-2003  The PUMA developer team.
1107
1327
//                                                                
1123
1343
#ifndef __StrHashTable_h__
1124
1344
#define __StrHashTable_h__
1125
1345
 
 
1346
 
 
1347
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1126
1348
// This file is part of PUMA.
1127
1349
// Copyright (C) 1999-2003  The PUMA developer team.
1128
1350
//                                                                
1144
1366
#ifndef __StrHashKey_h__
1145
1367
#define __StrHashKey_h__
1146
1368
 
 
1369
 
 
1370
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrCol.h"
1147
1371
// This file is part of PUMA.
1148
1372
// Copyright (C) 1999-2003  The PUMA developer team.
1149
1373
//                                                                
1172
1396
 
1173
1397
class Unit;
1174
1398
 
 
1399
 
 
1400
#line 1401 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1175
1401
} // closed Puma
 
1402
class CCExprResolve;
 
1403
class CExprResolve;
1176
1404
class WinIfExists;
1177
1405
class WinImportHandler;
1178
1406
class WinMacros;
1179
 
class CMatchSyntax;
1180
 
class ExtGnu;
 
1407
class WinAsm;
 
1408
class WinDeclSpecs;
 
1409
class WinMemberExplSpec;
 
1410
class WinTypeKeywords;
 
1411
class WinFriend;
1181
1412
class ExtAC;
1182
1413
class ExtACBuilderCoupling;
1183
1414
class ExtACSyntaxCoupling;
1184
1415
class ExtACTree;
1185
1416
class ExtACKeywords;
1186
 
class WinAsm;
1187
 
class WinDeclSpecs;
1188
 
class WinMemberExplSpec;
1189
 
class WinTypeKeywords;
 
1417
class ExtGnu;
1190
1418
class PragmaOnceUnitState;
1191
1419
class PragmaOnce;
1192
 
class CCExprResolve;
1193
 
class CExprResolve;
 
1420
class CMatchSyntax;
1194
1421
namespace Puma {
1195
 
class StrCol {  friend class ::WinIfExists;
 
1422
 
 
1423
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1424
class StrCol {
 
1425
#line 1426 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1426
  friend class ::CCExprResolve;
 
1427
  friend class ::CExprResolve;
 
1428
  friend class ::WinIfExists;
1196
1429
  friend class ::WinImportHandler;
1197
1430
  friend class ::WinMacros;
1198
 
  friend class ::CMatchSyntax;
1199
 
  friend class ::ExtGnu;
 
1431
  friend class ::WinAsm;
 
1432
  friend class ::WinDeclSpecs;
 
1433
  friend class ::WinMemberExplSpec;
 
1434
  friend class ::WinTypeKeywords;
 
1435
  friend class ::WinFriend;
1200
1436
  friend class ::ExtAC;
1201
1437
  friend class ::ExtACBuilderCoupling;
1202
1438
  friend class ::ExtACSyntaxCoupling;
1203
1439
  friend class ::ExtACTree;
1204
1440
  friend class ::ExtACKeywords;
1205
 
  friend class ::WinAsm;
1206
 
  friend class ::WinDeclSpecs;
1207
 
  friend class ::WinMemberExplSpec;
1208
 
  friend class ::WinTypeKeywords;
 
1441
  friend class ::ExtGnu;
1209
1442
  friend class ::PragmaOnceUnitState;
1210
1443
  friend class ::PragmaOnce;
1211
 
  friend class ::CCExprResolve;
1212
 
  friend class ::CExprResolve;
 
1444
  friend class ::CMatchSyntax;
 
1445
 
 
1446
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrCol.h"
1213
1447
 
1214
1448
protected:
1215
1449
  StrCol () {}
1236
1470
} // namespace Puma
1237
1471
 
1238
1472
#endif /* __str_col__ */
 
1473
 
 
1474
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Chain.h"
1239
1475
// This file is part of PUMA.
1240
1476
// Copyright (C) 1999-2003  The PUMA developer team.
1241
1477
//                                                                
1269
1505
namespace Puma {
1270
1506
 
1271
1507
 
 
1508
 
 
1509
#line 1510 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1272
1510
} // closed Puma
 
1511
class CCExprResolve;
 
1512
class CExprResolve;
1273
1513
class WinIfExists;
1274
1514
class WinImportHandler;
1275
1515
class WinMacros;
1276
 
class CMatchSyntax;
1277
 
class ExtGnu;
 
1516
class WinAsm;
 
1517
class WinDeclSpecs;
 
1518
class WinMemberExplSpec;
 
1519
class WinTypeKeywords;
 
1520
class WinFriend;
1278
1521
class ExtAC;
1279
1522
class ExtACBuilderCoupling;
1280
1523
class ExtACSyntaxCoupling;
1281
1524
class ExtACTree;
1282
1525
class ExtACKeywords;
1283
 
class WinAsm;
1284
 
class WinDeclSpecs;
1285
 
class WinMemberExplSpec;
1286
 
class WinTypeKeywords;
 
1526
class ExtGnu;
1287
1527
class PragmaOnceUnitState;
1288
1528
class PragmaOnce;
1289
 
class CCExprResolve;
1290
 
class CExprResolve;
 
1529
class CMatchSyntax;
1291
1530
namespace Puma {
1292
 
class Chain {  friend class ::WinIfExists;
 
1531
 
 
1532
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1533
class Chain {
 
1534
#line 1535 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1535
  friend class ::CCExprResolve;
 
1536
  friend class ::CExprResolve;
 
1537
  friend class ::WinIfExists;
1293
1538
  friend class ::WinImportHandler;
1294
1539
  friend class ::WinMacros;
1295
 
  friend class ::CMatchSyntax;
1296
 
  friend class ::ExtGnu;
 
1540
  friend class ::WinAsm;
 
1541
  friend class ::WinDeclSpecs;
 
1542
  friend class ::WinMemberExplSpec;
 
1543
  friend class ::WinTypeKeywords;
 
1544
  friend class ::WinFriend;
1297
1545
  friend class ::ExtAC;
1298
1546
  friend class ::ExtACBuilderCoupling;
1299
1547
  friend class ::ExtACSyntaxCoupling;
1300
1548
  friend class ::ExtACTree;
1301
1549
  friend class ::ExtACKeywords;
1302
 
  friend class ::WinAsm;
1303
 
  friend class ::WinDeclSpecs;
1304
 
  friend class ::WinMemberExplSpec;
1305
 
  friend class ::WinTypeKeywords;
 
1550
  friend class ::ExtGnu;
1306
1551
  friend class ::PragmaOnceUnitState;
1307
1552
  friend class ::PragmaOnce;
1308
 
  friend class ::CCExprResolve;
1309
 
  friend class ::CExprResolve;
 
1553
  friend class ::CMatchSyntax;
 
1554
 
 
1555
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Chain.h"
1310
1556
 
1311
1557
  Chain *next;
1312
1558
 
1369
1615
} // namespace Puma
1370
1616
 
1371
1617
#endif /* __Chain_h__ */
 
1618
 
 
1619
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1372
1620
namespace Puma {
1373
1621
 
1374
1622
 
 
1623
 
 
1624
#line 1625 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1375
1625
} // closed Puma
 
1626
class CCExprResolve;
 
1627
class CExprResolve;
1376
1628
class WinIfExists;
1377
1629
class WinImportHandler;
1378
1630
class WinMacros;
1379
 
class CMatchSyntax;
1380
 
class ExtGnu;
 
1631
class WinAsm;
 
1632
class WinDeclSpecs;
 
1633
class WinMemberExplSpec;
 
1634
class WinTypeKeywords;
 
1635
class WinFriend;
1381
1636
class ExtAC;
1382
1637
class ExtACBuilderCoupling;
1383
1638
class ExtACSyntaxCoupling;
1384
1639
class ExtACTree;
1385
1640
class ExtACKeywords;
1386
 
class WinAsm;
1387
 
class WinDeclSpecs;
1388
 
class WinMemberExplSpec;
1389
 
class WinTypeKeywords;
 
1641
class ExtGnu;
1390
1642
class PragmaOnceUnitState;
1391
1643
class PragmaOnce;
1392
 
class CCExprResolve;
1393
 
class CExprResolve;
 
1644
class CMatchSyntax;
1394
1645
namespace Puma {
1395
 
class StrHashKey : public Chain {  friend class ::WinIfExists;
 
1646
 
 
1647
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1648
class StrHashKey : public Chain {
 
1649
#line 1650 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1650
  friend class ::CCExprResolve;
 
1651
  friend class ::CExprResolve;
 
1652
  friend class ::WinIfExists;
1396
1653
  friend class ::WinImportHandler;
1397
1654
  friend class ::WinMacros;
1398
 
  friend class ::CMatchSyntax;
1399
 
  friend class ::ExtGnu;
 
1655
  friend class ::WinAsm;
 
1656
  friend class ::WinDeclSpecs;
 
1657
  friend class ::WinMemberExplSpec;
 
1658
  friend class ::WinTypeKeywords;
 
1659
  friend class ::WinFriend;
1400
1660
  friend class ::ExtAC;
1401
1661
  friend class ::ExtACBuilderCoupling;
1402
1662
  friend class ::ExtACSyntaxCoupling;
1403
1663
  friend class ::ExtACTree;
1404
1664
  friend class ::ExtACKeywords;
1405
 
  friend class ::WinAsm;
1406
 
  friend class ::WinDeclSpecs;
1407
 
  friend class ::WinMemberExplSpec;
1408
 
  friend class ::WinTypeKeywords;
 
1665
  friend class ::ExtGnu;
1409
1666
  friend class ::PragmaOnceUnitState;
1410
1667
  friend class ::PragmaOnce;
1411
 
  friend class ::CCExprResolve;
1412
 
  friend class ::CExprResolve;
 
1668
  friend class ::CMatchSyntax;
 
1669
 
 
1670
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1413
1671
 
1414
1672
  unsigned int m_Magic;
1415
1673
  unsigned int m_Len;
1420
1678
public:
1421
1679
  StrHashKey (int m, const char *s, int l) : 
1422
1680
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
1681
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
1423
1682
 
1424
1683
  unsigned int getMagic () const { return m_Magic; }
1425
1684
  unsigned int length () const { return m_Len; }
1430
1689
} // namespace Puma
1431
1690
 
1432
1691
#endif /* __StrHashKey_h__ */
 
1692
 
 
1693
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1433
1694
#include <assert.h>
1434
1695
 
1435
1696
namespace Puma {
1436
1697
 
1437
1698
 
 
1699
 
 
1700
#line 1701 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1438
1701
} // closed Puma
 
1702
class CCExprResolve;
 
1703
class CExprResolve;
1439
1704
class WinIfExists;
1440
1705
class WinImportHandler;
1441
1706
class WinMacros;
1442
 
class CMatchSyntax;
1443
 
class ExtGnu;
 
1707
class WinAsm;
 
1708
class WinDeclSpecs;
 
1709
class WinMemberExplSpec;
 
1710
class WinTypeKeywords;
 
1711
class WinFriend;
1444
1712
class ExtAC;
1445
1713
class ExtACBuilderCoupling;
1446
1714
class ExtACSyntaxCoupling;
1447
1715
class ExtACTree;
1448
1716
class ExtACKeywords;
1449
 
class WinAsm;
1450
 
class WinDeclSpecs;
1451
 
class WinMemberExplSpec;
1452
 
class WinTypeKeywords;
 
1717
class ExtGnu;
1453
1718
class PragmaOnceUnitState;
1454
1719
class PragmaOnce;
1455
 
class CCExprResolve;
1456
 
class CExprResolve;
 
1720
class CMatchSyntax;
1457
1721
namespace Puma {
1458
 
class StrHashTable {  friend class ::WinIfExists;
 
1722
 
 
1723
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1724
class StrHashTable {
 
1725
#line 1726 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1726
  friend class ::CCExprResolve;
 
1727
  friend class ::CExprResolve;
 
1728
  friend class ::WinIfExists;
1459
1729
  friend class ::WinImportHandler;
1460
1730
  friend class ::WinMacros;
1461
 
  friend class ::CMatchSyntax;
1462
 
  friend class ::ExtGnu;
 
1731
  friend class ::WinAsm;
 
1732
  friend class ::WinDeclSpecs;
 
1733
  friend class ::WinMemberExplSpec;
 
1734
  friend class ::WinTypeKeywords;
 
1735
  friend class ::WinFriend;
1463
1736
  friend class ::ExtAC;
1464
1737
  friend class ::ExtACBuilderCoupling;
1465
1738
  friend class ::ExtACSyntaxCoupling;
1466
1739
  friend class ::ExtACTree;
1467
1740
  friend class ::ExtACKeywords;
1468
 
  friend class ::WinAsm;
1469
 
  friend class ::WinDeclSpecs;
1470
 
  friend class ::WinMemberExplSpec;
1471
 
  friend class ::WinTypeKeywords;
 
1741
  friend class ::ExtGnu;
1472
1742
  friend class ::PragmaOnceUnitState;
1473
1743
  friend class ::PragmaOnce;
1474
 
  friend class ::CCExprResolve;
1475
 
  friend class ::CExprResolve;
 
1744
  friend class ::CMatchSyntax;
 
1745
 
 
1746
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1476
1747
 
1477
1748
  StrHashKey *_emptyKey;
1478
1749
 
1485
1756
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
1486
1757
  StrHashKey *insert (const char *);
1487
1758
  void remove (StrHashKey *);
 
1759
  void clear ();
1488
1760
 
1489
1761
  enum { STRHASHTABLE_SIZE=0xffff };
1490
1762
  
1492
1764
  Chain m_Table[STRHASHTABLE_SIZE];
1493
1765
 
1494
1766
  StrHashKey *find (unsigned int, const char *, unsigned int);
1495
 
  unsigned int hash (const char *, unsigned int);
 
1767
  unsigned int hash (const char *, unsigned int &);
1496
1768
};
1497
1769
 
1498
1770
 
1499
1771
} // namespace Puma
1500
1772
 
1501
1773
#endif /* __StrHashTable_h__ */
 
1774
 
 
1775
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
1502
1776
#include <assert.h>
1503
1777
 
1504
1778
namespace Puma {
1506
1780
 
1507
1781
extern StrHashTable ___str_dict;
1508
1782
 
 
1783
 
 
1784
#line 1785 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1509
1785
} // closed Puma
 
1786
class CCExprResolve;
 
1787
class CExprResolve;
1510
1788
class WinIfExists;
1511
1789
class WinImportHandler;
1512
1790
class WinMacros;
1513
 
class CMatchSyntax;
1514
 
class ExtGnu;
 
1791
class WinAsm;
 
1792
class WinDeclSpecs;
 
1793
class WinMemberExplSpec;
 
1794
class WinTypeKeywords;
 
1795
class WinFriend;
1515
1796
class ExtAC;
1516
1797
class ExtACBuilderCoupling;
1517
1798
class ExtACSyntaxCoupling;
1518
1799
class ExtACTree;
1519
1800
class ExtACKeywords;
1520
 
class WinAsm;
1521
 
class WinDeclSpecs;
1522
 
class WinMemberExplSpec;
1523
 
class WinTypeKeywords;
 
1801
class ExtGnu;
1524
1802
class PragmaOnceUnitState;
1525
1803
class PragmaOnce;
1526
 
class CCExprResolve;
1527
 
class CExprResolve;
 
1804
class CMatchSyntax;
1528
1805
namespace Puma {
1529
 
class DString {  friend class ::WinIfExists;
 
1806
 
 
1807
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
 
1808
class DString {
 
1809
#line 1810 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1810
  friend class ::CCExprResolve;
 
1811
  friend class ::CExprResolve;
 
1812
  friend class ::WinIfExists;
1530
1813
  friend class ::WinImportHandler;
1531
1814
  friend class ::WinMacros;
1532
 
  friend class ::CMatchSyntax;
1533
 
  friend class ::ExtGnu;
 
1815
  friend class ::WinAsm;
 
1816
  friend class ::WinDeclSpecs;
 
1817
  friend class ::WinMemberExplSpec;
 
1818
  friend class ::WinTypeKeywords;
 
1819
  friend class ::WinFriend;
1534
1820
  friend class ::ExtAC;
1535
1821
  friend class ::ExtACBuilderCoupling;
1536
1822
  friend class ::ExtACSyntaxCoupling;
1537
1823
  friend class ::ExtACTree;
1538
1824
  friend class ::ExtACKeywords;
1539
 
  friend class ::WinAsm;
1540
 
  friend class ::WinDeclSpecs;
1541
 
  friend class ::WinMemberExplSpec;
1542
 
  friend class ::WinTypeKeywords;
 
1825
  friend class ::ExtGnu;
1543
1826
  friend class ::PragmaOnceUnitState;
1544
1827
  friend class ::PragmaOnce;
1545
 
  friend class ::CCExprResolve;
1546
 
  friend class ::CExprResolve;
 
1828
  friend class ::CMatchSyntax;
 
1829
 
 
1830
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/DString.h"
1547
1831
 
1548
1832
  StrHashKey *m_Key;
1549
1833
 
1610
1894
    assert (m_Key);
1611
1895
    return c_str ();
1612
1896
  }
 
1897
  
 
1898
  static void clearDict() {
 
1899
    ___str_dict.clear ();
 
1900
  }
1613
1901
};
1614
1902
 
1615
1903
 
1616
1904
} // namespace Puma
1617
1905
 
1618
1906
#endif /* __DString_h__ */
 
1907
 
 
1908
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1619
1909
namespace Puma {
1620
1910
 
1621
1911
 
 
1912
 
 
1913
#line 1914 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1622
1914
} // closed Puma
 
1915
class CCExprResolve;
 
1916
class CExprResolve;
1623
1917
class WinIfExists;
1624
1918
class WinImportHandler;
1625
1919
class WinMacros;
1626
 
class CMatchSyntax;
1627
 
class ExtGnu;
 
1920
class WinAsm;
 
1921
class WinDeclSpecs;
 
1922
class WinMemberExplSpec;
 
1923
class WinTypeKeywords;
 
1924
class WinFriend;
1628
1925
class ExtAC;
1629
1926
class ExtACBuilderCoupling;
1630
1927
class ExtACSyntaxCoupling;
1631
1928
class ExtACTree;
1632
1929
class ExtACKeywords;
1633
 
class WinAsm;
1634
 
class WinDeclSpecs;
1635
 
class WinMemberExplSpec;
1636
 
class WinTypeKeywords;
 
1930
class ExtGnu;
1637
1931
class PragmaOnceUnitState;
1638
1932
class PragmaOnce;
1639
 
class CCExprResolve;
1640
 
class CExprResolve;
 
1933
class CMatchSyntax;
1641
1934
namespace Puma {
1642
 
class FilenameInfo : public RefCnt {  friend class ::WinIfExists;
 
1935
 
 
1936
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1937
class FilenameInfo : public RefCnt {
 
1938
#line 1939 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
1939
  friend class ::CCExprResolve;
 
1940
  friend class ::CExprResolve;
 
1941
  friend class ::WinIfExists;
1643
1942
  friend class ::WinImportHandler;
1644
1943
  friend class ::WinMacros;
1645
 
  friend class ::CMatchSyntax;
1646
 
  friend class ::ExtGnu;
 
1944
  friend class ::WinAsm;
 
1945
  friend class ::WinDeclSpecs;
 
1946
  friend class ::WinMemberExplSpec;
 
1947
  friend class ::WinTypeKeywords;
 
1948
  friend class ::WinFriend;
1647
1949
  friend class ::ExtAC;
1648
1950
  friend class ::ExtACBuilderCoupling;
1649
1951
  friend class ::ExtACSyntaxCoupling;
1650
1952
  friend class ::ExtACTree;
1651
1953
  friend class ::ExtACKeywords;
1652
 
  friend class ::WinAsm;
1653
 
  friend class ::WinDeclSpecs;
1654
 
  friend class ::WinMemberExplSpec;
1655
 
  friend class ::WinTypeKeywords;
 
1954
  friend class ::ExtGnu;
1656
1955
  friend class ::PragmaOnceUnitState;
1657
1956
  friend class ::PragmaOnce;
1658
 
  friend class ::CCExprResolve;
1659
 
  friend class ::CExprResolve;
 
1957
  friend class ::CMatchSyntax;
 
1958
 
 
1959
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1660
1960
 
1661
1961
  DString _name;
1662
1962
  const char *_path;
1666
1966
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
1667
1967
  ~FilenameInfo ();
1668
1968
  void name (const char *n);
1669
 
  void name (const DString &dsn) { _name = dsn; }
 
1969
//  void name (const DString &dsn) { _name = dsn; }
1670
1970
  const char *name () const { return _name.c_str (); }
1671
1971
  const char *path ();
1672
1972
  const char *root ();
1680
1980
} // namespace Puma
1681
1981
 
1682
1982
#endif /* __filename_info_h__ */
 
1983
 
 
1984
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
1683
1985
namespace Puma {
1684
1986
 
1685
1987
 
 
1988
 
 
1989
#line 1990 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1686
1990
} // closed Puma
 
1991
class CCExprResolve;
 
1992
class CExprResolve;
1687
1993
class WinIfExists;
1688
1994
class WinImportHandler;
1689
1995
class WinMacros;
1690
 
class CMatchSyntax;
1691
 
class ExtGnu;
 
1996
class WinAsm;
 
1997
class WinDeclSpecs;
 
1998
class WinMemberExplSpec;
 
1999
class WinTypeKeywords;
 
2000
class WinFriend;
1692
2001
class ExtAC;
1693
2002
class ExtACBuilderCoupling;
1694
2003
class ExtACSyntaxCoupling;
1695
2004
class ExtACTree;
1696
2005
class ExtACKeywords;
1697
 
class WinAsm;
1698
 
class WinDeclSpecs;
1699
 
class WinMemberExplSpec;
1700
 
class WinTypeKeywords;
 
2006
class ExtGnu;
1701
2007
class PragmaOnceUnitState;
1702
2008
class PragmaOnce;
1703
 
class CCExprResolve;
1704
 
class CExprResolve;
 
2009
class CMatchSyntax;
1705
2010
namespace Puma {
1706
 
class Filename : public SmartPtr, public Printable {  friend class ::WinIfExists;
 
2011
 
 
2012
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2013
class Filename : public SmartPtr, public Printable {
 
2014
#line 2015 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2015
  friend class ::CCExprResolve;
 
2016
  friend class ::CExprResolve;
 
2017
  friend class ::WinIfExists;
1707
2018
  friend class ::WinImportHandler;
1708
2019
  friend class ::WinMacros;
1709
 
  friend class ::CMatchSyntax;
1710
 
  friend class ::ExtGnu;
 
2020
  friend class ::WinAsm;
 
2021
  friend class ::WinDeclSpecs;
 
2022
  friend class ::WinMemberExplSpec;
 
2023
  friend class ::WinTypeKeywords;
 
2024
  friend class ::WinFriend;
1711
2025
  friend class ::ExtAC;
1712
2026
  friend class ::ExtACBuilderCoupling;
1713
2027
  friend class ::ExtACSyntaxCoupling;
1714
2028
  friend class ::ExtACTree;
1715
2029
  friend class ::ExtACKeywords;
1716
 
  friend class ::WinAsm;
1717
 
  friend class ::WinDeclSpecs;
1718
 
  friend class ::WinMemberExplSpec;
1719
 
  friend class ::WinTypeKeywords;
 
2030
  friend class ::ExtGnu;
1720
2031
  friend class ::PragmaOnceUnitState;
1721
2032
  friend class ::PragmaOnce;
1722
 
  friend class ::CCExprResolve;
1723
 
  friend class ::CExprResolve;
 
2033
  friend class ::CMatchSyntax;
 
2034
 
 
2035
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Filename.h"
1724
2036
 
1725
2037
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
1726
2038
 
1728
2040
  Filename () {}
1729
2041
  Filename (const char *n) { name (n); }
1730
2042
  Filename &operator = (const char *n) { name (n); return *this; }
 
2043
  bool operator ~ () const { return info () != 0; }
1731
2044
  void name (const char *n);
1732
2045
  const char *name () const;
1733
2046
  const char *path () const;
1742
2055
} // namespace Puma
1743
2056
 
1744
2057
#endif /* __filename_h__ */
 
2058
 
 
2059
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
1745
2060
namespace Puma {
1746
2061
 
1747
2062
 
 
2063
 
 
2064
#line 2065 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
1748
2065
} // closed Puma
 
2066
class CCExprResolve;
 
2067
class CExprResolve;
1749
2068
class WinIfExists;
1750
2069
class WinImportHandler;
1751
2070
class WinMacros;
1752
 
class CMatchSyntax;
1753
 
class ExtGnu;
 
2071
class WinAsm;
 
2072
class WinDeclSpecs;
 
2073
class WinMemberExplSpec;
 
2074
class WinTypeKeywords;
 
2075
class WinFriend;
1754
2076
class ExtAC;
1755
2077
class ExtACBuilderCoupling;
1756
2078
class ExtACSyntaxCoupling;
1757
2079
class ExtACTree;
1758
2080
class ExtACKeywords;
1759
 
class WinAsm;
1760
 
class WinDeclSpecs;
1761
 
class WinMemberExplSpec;
1762
 
class WinTypeKeywords;
 
2081
class ExtGnu;
1763
2082
class PragmaOnceUnitState;
1764
2083
class PragmaOnce;
1765
 
class CCExprResolve;
1766
 
class CExprResolve;
 
2084
class CMatchSyntax;
1767
2085
namespace Puma {
1768
 
class LocationInfo : public RefCnt {  friend class ::WinIfExists;
 
2086
 
 
2087
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
 
2088
class Location {
 
2089
#line 2090 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2090
  friend class ::CCExprResolve;
 
2091
  friend class ::CExprResolve;
 
2092
  friend class ::WinIfExists;
1769
2093
  friend class ::WinImportHandler;
1770
2094
  friend class ::WinMacros;
1771
 
  friend class ::CMatchSyntax;
1772
 
  friend class ::ExtGnu;
 
2095
  friend class ::WinAsm;
 
2096
  friend class ::WinDeclSpecs;
 
2097
  friend class ::WinMemberExplSpec;
 
2098
  friend class ::WinTypeKeywords;
 
2099
  friend class ::WinFriend;
1773
2100
  friend class ::ExtAC;
1774
2101
  friend class ::ExtACBuilderCoupling;
1775
2102
  friend class ::ExtACSyntaxCoupling;
1776
2103
  friend class ::ExtACTree;
1777
2104
  friend class ::ExtACKeywords;
1778
 
  friend class ::WinAsm;
1779
 
  friend class ::WinDeclSpecs;
1780
 
  friend class ::WinMemberExplSpec;
1781
 
  friend class ::WinTypeKeywords;
 
2105
  friend class ::ExtGnu;
1782
2106
  friend class ::PragmaOnceUnitState;
1783
2107
  friend class ::PragmaOnce;
1784
 
  friend class ::CCExprResolve;
1785
 
  friend class ::CExprResolve;
 
2108
  friend class ::CMatchSyntax;
 
2109
 
 
2110
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
1786
2111
 
1787
2112
  Filename _filename;
1788
2113
  int _line;
 
2114
  int _column;
1789
2115
 
1790
2116
public:
1791
 
  LocationInfo () : _filename (), _line (0) {}
1792
 
  void setup (Filename f, int l);
 
2117
  Location () : _filename (), _line (0), _column (0) {}
 
2118
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
2119
  void setup (Filename f, int l, int c = 0) {
 
2120
    _filename = f;
 
2121
    _line     = l;
 
2122
    _column   = c;
 
2123
  }
1793
2124
  const Filename &filename () const { return _filename; }
1794
2125
  int line () const { return _line; }
1795
 
  bool operator < (const LocationInfo &l) const;
1796
 
  bool operator == (const LocationInfo &l) const;
1797
 
};
1798
 
 
1799
 
 
1800
 
} // namespace Puma
1801
 
 
1802
 
#endif /* __location_info_h__ */
1803
 
namespace Puma {
1804
 
 
1805
 
 
1806
 
} // closed Puma
1807
 
class WinIfExists;
1808
 
class WinImportHandler;
1809
 
class WinMacros;
1810
 
class CMatchSyntax;
1811
 
class ExtGnu;
1812
 
class ExtAC;
1813
 
class ExtACBuilderCoupling;
1814
 
class ExtACSyntaxCoupling;
1815
 
class ExtACTree;
1816
 
class ExtACKeywords;
1817
 
class WinAsm;
1818
 
class WinDeclSpecs;
1819
 
class WinMemberExplSpec;
1820
 
class WinTypeKeywords;
1821
 
class PragmaOnceUnitState;
1822
 
class PragmaOnce;
1823
 
class CCExprResolve;
1824
 
class CExprResolve;
1825
 
namespace Puma {
1826
 
class Location : public SmartPtr, public Printable {  friend class ::WinIfExists;
1827
 
  friend class ::WinImportHandler;
1828
 
  friend class ::WinMacros;
1829
 
  friend class ::CMatchSyntax;
1830
 
  friend class ::ExtGnu;
1831
 
  friend class ::ExtAC;
1832
 
  friend class ::ExtACBuilderCoupling;
1833
 
  friend class ::ExtACSyntaxCoupling;
1834
 
  friend class ::ExtACTree;
1835
 
  friend class ::ExtACKeywords;
1836
 
  friend class ::WinAsm;
1837
 
  friend class ::WinDeclSpecs;
1838
 
  friend class ::WinMemberExplSpec;
1839
 
  friend class ::WinTypeKeywords;
1840
 
  friend class ::PragmaOnceUnitState;
1841
 
  friend class ::PragmaOnce;
1842
 
  friend class ::CCExprResolve;
1843
 
  friend class ::CExprResolve;
1844
 
 
1845
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
1846
 
 
1847
 
public:
1848
 
  Location () {}
1849
 
  Location (Filename f, int l) { setup (f, l); }
1850
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
1851
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
1852
 
  void setup (Filename f, int l);
1853
 
  const Filename &filename () const   { return info ()->filename (); }
1854
 
  int line () const;
1855
 
  bool operator == (const Location &l) const;
 
2126
  int column () const { return _column; }
 
2127
  bool operator == (const Location &l) const {
 
2128
    return filename () == l.filename () && line () == l.line () &&
 
2129
      column () == l.column ();
 
2130
  }
1856
2131
  bool operator != (const Location &l) const { return ! (*this == l); }
1857
 
  bool operator < (const Location &l) const;
 
2132
  bool operator < (const Location &l) const {
 
2133
    // TODO: does it make sense to compare the filenames? better assert?
 
2134
    if (filename () != l.filename ())
 
2135
      return false;
 
2136
    return line () < l.line () && column () < l.column ();
 
2137
  }
 
2138
};
1858
2139
 
1859
 
  virtual void print (ostream &os) const {
1860
 
    if (info ())
 
2140
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
1861
2141
#ifdef VISUAL_STUDIO
1862
 
      os << filename () << "(" << line () << ")";
 
2142
  os << loc.filename () << "(" << loc.line () << ")";
1863
2143
#else
1864
 
      os << filename () << ":" << line ();
 
2144
  os << loc.filename () << ":" << loc.line ();
1865
2145
#endif
1866
 
  }
1867
 
};
1868
 
 
1869
 
 
 
2146
  return os;  
 
2147
}
1870
2148
} // namespace Puma
1871
2149
 
1872
2150
#endif /* __location_h__ */
 
2151
 
 
2152
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Array.h"
1873
2153
// This file is part of PUMA.
1874
2154
// Copyright (C) 1999-2003  The PUMA developer team.
1875
2155
//                                                                
1888
2168
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1889
2169
// MA  02111-1307  USA                                            
1890
2170
 
1891
 
#ifndef __list_element_h__
1892
 
#define __list_element_h__
1893
 
 
1894
 
// Base class for objects that may be inserted into a List. Lists
1895
 
// autonomously delete or copy list element. So it's necessary to
1896
 
// define a destructor and a duplicate method in the derived
1897
 
// classes.
1898
 
 
1899
 
#include <assert.h>
1900
 
 
1901
 
namespace Puma {
1902
 
 
1903
 
 
1904
 
class List;
1905
 
 
1906
 
} // closed Puma
1907
 
class WinIfExists;
1908
 
class WinImportHandler;
1909
 
class WinMacros;
1910
 
class CMatchSyntax;
1911
 
class ExtGnu;
1912
 
class ExtAC;
1913
 
class ExtACBuilderCoupling;
1914
 
class ExtACSyntaxCoupling;
1915
 
class ExtACTree;
1916
 
class ExtACKeywords;
1917
 
class WinAsm;
1918
 
class WinDeclSpecs;
1919
 
class WinMemberExplSpec;
1920
 
class WinTypeKeywords;
1921
 
class PragmaOnceUnitState;
1922
 
class PragmaOnce;
1923
 
class CCExprResolve;
1924
 
class CExprResolve;
1925
 
namespace Puma {
1926
 
class ListElement {  friend class ::WinIfExists;
1927
 
  friend class ::WinImportHandler;
1928
 
  friend class ::WinMacros;
1929
 
  friend class ::CMatchSyntax;
1930
 
  friend class ::ExtGnu;
1931
 
  friend class ::ExtAC;
1932
 
  friend class ::ExtACBuilderCoupling;
1933
 
  friend class ::ExtACSyntaxCoupling;
1934
 
  friend class ::ExtACTree;
1935
 
  friend class ::ExtACKeywords;
1936
 
  friend class ::WinAsm;
1937
 
  friend class ::WinDeclSpecs;
1938
 
  friend class ::WinMemberExplSpec;
1939
 
  friend class ::WinTypeKeywords;
1940
 
  friend class ::PragmaOnceUnitState;
1941
 
  friend class ::PragmaOnce;
1942
 
  friend class ::CCExprResolve;
1943
 
  friend class ::CExprResolve;
1944
 
 
1945
 
  friend class List;
1946
 
 
1947
 
  List        *_belonging_to;
1948
 
  ListElement *_next;
1949
 
  ListElement *_prev;
1950
 
 
1951
 
public:
1952
 
  ListElement () : _belonging_to ((List*)0) {}
1953
 
  virtual ~ListElement () { assert (! _belonging_to); };
1954
 
 
1955
 
  virtual ListElement *duplicate () = 0;
1956
 
  List *belonging_to () const { return _belonging_to; }
1957
 
};
1958
 
 
1959
 
 
1960
 
} // namespace Puma
1961
 
 
1962
 
#endif /* __list_element_h__ */
1963
 
#include <assert.h>
1964
 
namespace Puma {
1965
 
 
1966
 
 
1967
 
} // closed Puma
1968
 
class WinIfExists;
1969
 
class WinImportHandler;
1970
 
class WinMacros;
1971
 
class CMatchSyntax;
1972
 
class ExtGnu;
1973
 
class ExtAC;
1974
 
class ExtACBuilderCoupling;
1975
 
class ExtACSyntaxCoupling;
1976
 
class ExtACTree;
1977
 
class ExtACKeywords;
1978
 
class WinAsm;
1979
 
class WinDeclSpecs;
1980
 
class WinMemberExplSpec;
1981
 
class WinTypeKeywords;
1982
 
class PragmaOnceUnitState;
1983
 
class PragmaOnce;
1984
 
class CCExprResolve;
1985
 
class CExprResolve;
1986
 
namespace Puma {
1987
 
class Token : public ListElement {  friend class ::WinIfExists;
1988
 
  friend class ::WinImportHandler;
1989
 
  friend class ::WinMacros;
1990
 
  friend class ::CMatchSyntax;
1991
 
  friend class ::ExtGnu;
1992
 
  friend class ::ExtAC;
1993
 
  friend class ::ExtACBuilderCoupling;
1994
 
  friend class ::ExtACSyntaxCoupling;
1995
 
  friend class ::ExtACTree;
1996
 
  friend class ::ExtACKeywords;
1997
 
  friend class ::WinAsm;
1998
 
  friend class ::WinDeclSpecs;
1999
 
  friend class ::WinMemberExplSpec;
2000
 
  friend class ::WinTypeKeywords;
2001
 
  friend class ::PragmaOnceUnitState;
2002
 
  friend class ::PragmaOnce;
2003
 
  friend class ::CCExprResolve;
2004
 
  friend class ::CExprResolve;
 
2171
#ifndef __array_h__
 
2172
#define __array_h__
 
2173
 
 
2174
#include <assert.h>
 
2175
 
 
2176
namespace Puma {
 
2177
 
 
2178
template <class Item>
 
2179
class Array {
 
2180
protected:
 
2181
  static const long default_init_size = 5;
 
2182
  static const long default_increment = 5;
 
2183
 
 
2184
public:
 
2185
  Array (long is = default_init_size, long incr = default_increment);
 
2186
  Array (const Array<Item>& array);
 
2187
  Array<Item>& operator =(const Array<Item>&);
 
2188
  ~Array ();
 
2189
  void append (const Item& item);
 
2190
  void insert (long index, const Item& item);
 
2191
  void prepend (const Item& item);
 
2192
  void remove (long index);
 
2193
  void reset ();
 
2194
  Item& get (long index);
 
2195
  Item& operator[] (long index);
 
2196
  Item fetch (long index) const;
 
2197
  Item& lookup (long index) const;
 
2198
  long length () const;
 
2199
 
 
2200
private:
 
2201
  Item* data;
 
2202
  long size;
 
2203
  long count;
 
2204
  long increment;
 
2205
      
 
2206
  void grow (long wanted);
 
2207
};
 
2208
 
 
2209
template <class Item>
 
2210
inline Array<Item>::Array (long is, long incr) {
 
2211
  count     = 0; 
 
2212
  size      = is;
 
2213
  increment = incr;
 
2214
  data      = 0;
 
2215
}
 
2216
 
 
2217
template <class Item>
 
2218
Array<Item>::Array (const Array<Item>& array) {
 
2219
  count     = 0;
 
2220
  size      = array.size;
 
2221
  increment = array.increment;
 
2222
  
 
2223
  if (size && array.data) {
 
2224
    data = new Item[size];
 
2225
    for (; count < array.count; count++) {
 
2226
      data[count] = array.data[count];
 
2227
    }
 
2228
  } else
 
2229
    data = 0;
 
2230
}
 
2231
 
 
2232
template <class Item>
 
2233
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
2234
  if (data)
 
2235
    delete[] data;
 
2236
 
 
2237
  count     = 0;
 
2238
  size      = array.size;
 
2239
  increment = array.increment;
 
2240
 
 
2241
  if (size && array.data) {
 
2242
    data = new Item[size];
 
2243
    for (; count < array.count; count++) {
 
2244
      data[count] = array.data[count];
 
2245
    }
 
2246
  } else
 
2247
    data = 0;
 
2248
  
 
2249
  return *this;
 
2250
}
 
2251
 
 
2252
template <class Item>
 
2253
Array<Item>::~Array () {
 
2254
  if (data)
 
2255
    delete[] data;
 
2256
}
 
2257
 
 
2258
template <class Item>
 
2259
inline void Array<Item>::grow (long wanted) {
 
2260
  do {
 
2261
    size += increment;
 
2262
    increment *= 2;
 
2263
  } while (wanted >= size);
 
2264
 
 
2265
  if (data) {
 
2266
    Item* new_data = new Item[size];
 
2267
    for (long i = 0; i < count; i++) {
 
2268
      new_data[i] = data[i];
 
2269
    }
 
2270
    delete[] data;
 
2271
    data = new_data;
 
2272
  } else
 
2273
    data = new Item[size];
 
2274
}
 
2275
   
 
2276
template <class Item>
 
2277
inline void Array<Item>::append (const Item& item) {
 
2278
  if (count >= size || ! data) {
 
2279
    grow (count);
 
2280
  }
 
2281
  data[count++] = item;
 
2282
}
 
2283
 
 
2284
template <class Item>
 
2285
void Array<Item>::prepend (const Item& item) {
 
2286
  insert (0, item);
 
2287
}
 
2288
 
 
2289
template <class Item>
 
2290
void Array<Item>::insert (long index, const Item& item) {
 
2291
  if (count >= size || ! data) {
 
2292
    grow (count);
 
2293
  }
 
2294
  for (long i = count; i > index; i--)
 
2295
    data[i] = data[i - 1];
 
2296
  data[index] = item;
 
2297
  count++;
 
2298
}
 
2299
 
 
2300
template <class Item>
 
2301
inline Item& Array<Item>::get (long index) {
 
2302
  if (index >= size || ! data) {
 
2303
    grow (index);
 
2304
  }
 
2305
  if (index >= count)
 
2306
    count = index + 1;
 
2307
  return data[index];
 
2308
}
 
2309
 
 
2310
template <class Item>
 
2311
inline Item& Array<Item>::operator[] (long index) {
 
2312
  return get (index);
 
2313
}
 
2314
 
 
2315
template <class Item>
 
2316
inline Item Array<Item>::fetch (long index) const {
 
2317
  assert(index < count && data);
 
2318
  return data[index];
 
2319
}
 
2320
 
 
2321
template <class Item>
 
2322
inline long Array<Item>::length () const {
 
2323
  return count;
 
2324
}
 
2325
 
 
2326
template <class Item>
 
2327
inline void Array<Item>::remove (long index) {
 
2328
  if (index < count && count > 0) {
 
2329
    for (long i = index; i < count - 1; i++)
 
2330
      data[i] = data[i + 1];
 
2331
    count--;
 
2332
  }
 
2333
}
 
2334
 
 
2335
#ifndef __puma
 
2336
template <>
 
2337
inline void Array<int>::reset () {
 
2338
  count = 0; 
 
2339
}
 
2340
#endif
 
2341
 
 
2342
template <class Item>
 
2343
void Array<Item>::reset () {
 
2344
  if (data)
 
2345
    delete[] data;
 
2346
    
 
2347
  count     = 0; 
 
2348
  size      = default_init_size;
 
2349
  increment = default_increment;
 
2350
  data      = new Item[size];
 
2351
}
 
2352
 
 
2353
template <class Item>
 
2354
inline Item& Array<Item>::lookup (long index) const {
 
2355
  assert(index >= 0 && index < count);
 
2356
  return data[index];
 
2357
}
 
2358
 
 
2359
 
 
2360
} // namespace Puma
 
2361
 
 
2362
// Array specialization for pointer types sharing method definitions
 
2363
 
 
2364
#ifndef __puma
 
2365
 
 
2366
#include "Puma/VoidPtrArray.h"
 
2367
 
 
2368
namespace Puma {
 
2369
 
 
2370
 
 
2371
template <class Item>
 
2372
class Array<Item*> : private VoidPtrArray {
 
2373
  typedef VoidPtrArray Base;
 
2374
 
 
2375
public:
 
2376
  Array (long is = default_init_size, long incr = default_increment) :
 
2377
    Base (is, incr) {}
 
2378
  Array (const Array<Item*> &array) : 
 
2379
    Base (array) {}
 
2380
  Array<Item*> &operator= (const Array<Item*> &array) 
 
2381
   { return (Array<Item*>&)Base::operator= (array); }
 
2382
 
 
2383
  ~Array () {}
 
2384
 
 
2385
  void append (const Item *item)           { Base::append ((void*)item); }
 
2386
  void insert (long idx, const Item *item) { Base::insert (idx, (void*)item); }
 
2387
  void prepend (const Item *item)          { Base::prepend ((void*)item); }
 
2388
  void remove (long idx)                   { Base::remove (idx); }
 
2389
  void reset ()                            { Base::reset (); }
 
2390
 
 
2391
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
2392
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
2393
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
2394
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
2395
  long length () const                     { return Base::length (); }
 
2396
};
 
2397
 
 
2398
 
 
2399
} // namespace Puma
 
2400
 
 
2401
#endif /* __puma */
 
2402
 
 
2403
#endif /* __array_h__ */
 
2404
 
 
2405
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
 
2406
#include <assert.h>
 
2407
 
 
2408
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
 
2409
namespace Puma {
 
2410
 
 
2411
 
 
2412
 
 
2413
#line 2414 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2414
} // closed Puma
 
2415
class CCExprResolve;
 
2416
class CExprResolve;
 
2417
class WinIfExists;
 
2418
class WinImportHandler;
 
2419
class WinMacros;
 
2420
class WinAsm;
 
2421
class WinDeclSpecs;
 
2422
class WinMemberExplSpec;
 
2423
class WinTypeKeywords;
 
2424
class WinFriend;
 
2425
class ExtAC;
 
2426
class ExtACBuilderCoupling;
 
2427
class ExtACSyntaxCoupling;
 
2428
class ExtACTree;
 
2429
class ExtACKeywords;
 
2430
class ExtGnu;
 
2431
class PragmaOnceUnitState;
 
2432
class PragmaOnce;
 
2433
class CMatchSyntax;
 
2434
namespace Puma {
 
2435
 
 
2436
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
 
2437
class Token : public ListElement {
 
2438
#line 2439 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2439
  friend class ::CCExprResolve;
 
2440
  friend class ::CExprResolve;
 
2441
  friend class ::WinIfExists;
 
2442
  friend class ::WinImportHandler;
 
2443
  friend class ::WinMacros;
 
2444
  friend class ::WinAsm;
 
2445
  friend class ::WinDeclSpecs;
 
2446
  friend class ::WinMemberExplSpec;
 
2447
  friend class ::WinTypeKeywords;
 
2448
  friend class ::WinFriend;
 
2449
  friend class ::ExtAC;
 
2450
  friend class ::ExtACBuilderCoupling;
 
2451
  friend class ::ExtACSyntaxCoupling;
 
2452
  friend class ::ExtACTree;
 
2453
  friend class ::ExtACKeywords;
 
2454
  friend class ::ExtGnu;
 
2455
  friend class ::PragmaOnceUnitState;
 
2456
  friend class ::PragmaOnce;
 
2457
  friend class ::CMatchSyntax;
 
2458
 
 
2459
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2005
2460
 
2006
2461
  int _type, _real_type;
2007
2462
 
2008
2463
  Location _location;
2009
2464
  LanguageID _language;
2010
 
  DString _text;
 
2465
  const char *_text;
 
2466
  mutable DString _dtext;
2011
2467
 
2012
2468
  Array<int> *_cont_lines;
2013
2469
   
2048
2504
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
2049
2505
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
2050
2506
  
2051
 
  const DString &text () const     { return _text; }
 
2507
  const char *text () const;
 
2508
  DString &dtext () const;
2052
2509
  char *get_static_text () const;
2053
2510
  int type () const                 { return _type; }
2054
2511
  const Location &location () const { return _location; }
2124
2581
} // namespace Puma
2125
2582
 
2126
2583
#endif /* __Token_h__ */
2127
 
using namespace Puma;
2128
 
 
2129
 
namespace Puma {
2130
 
  
2131
 
}
2132
 
 
2133
 
class WinImportHandler;
2134
 
class WinMacros;
2135
 
class CMatchSyntax;
2136
 
class ExtGnu;
2137
 
class ExtAC;
2138
 
class ExtACBuilderCoupling;
2139
 
class ExtACSyntaxCoupling;
2140
 
class ExtACTree;
2141
 
class ExtACKeywords;
2142
 
class WinAsm;
2143
 
class WinDeclSpecs;
2144
 
class WinMemberExplSpec;
2145
 
class WinTypeKeywords;
2146
 
class PragmaOnceUnitState;
2147
 
class PragmaOnce;
2148
 
class CCExprResolve;
2149
 
class CExprResolve;
2150
 
class WinIfExists {
2151
 
public:
2152
 
  static WinIfExists *aspectof () {
2153
 
    static WinIfExists __instance;
2154
 
    return &__instance;
2155
 
  }
2156
 
  static WinIfExists *aspectOf () {
2157
 
    return aspectof ();
2158
 
  }
2159
 
private:
2160
 
  friend class ::WinImportHandler;
2161
 
  friend class ::WinMacros;
2162
 
  friend class ::CMatchSyntax;
2163
 
  friend class ::ExtGnu;
2164
 
  friend class ::ExtAC;
2165
 
  friend class ::ExtACBuilderCoupling;
2166
 
  friend class ::ExtACSyntaxCoupling;
2167
 
  friend class ::ExtACTree;
2168
 
  friend class ::ExtACKeywords;
2169
 
  friend class ::WinAsm;
2170
 
  friend class ::WinDeclSpecs;
2171
 
  friend class ::WinMemberExplSpec;
2172
 
  friend class ::WinTypeKeywords;
2173
 
  friend class ::PragmaOnceUnitState;
2174
 
  friend class ::PragmaOnce;
2175
 
  friend class ::CCExprResolve;
2176
 
  friend class ::CExprResolve;
2177
 
 
2178
 
  /********************************************************/
2179
 
  /* Win __if_exists and __if_not_exists                  */
2180
 
  /********************************************************/
2181
 
 
2182
 
  // pointcut definitions
2183
 
  
2184
 
 
2185
 
  // structural extensions
2186
 
  
2187
 
 
2188
 
  // preprocess __if_exists and __if_not_exists statements
2189
 
  
2190
 
public: template<class JoinPoint> void __a0_around (JoinPoint *tjp) {
2191
 
  JoinPoint *&thisJoinPoint = tjp;
2192
 
 
2193
 
  typedef typename JoinPoint::That __JP_That;
2194
 
  typedef typename JoinPoint::Target __JP_Target;
2195
 
  typedef typename JoinPoint::Result __JP_Result;
2196
 
 
2197
 
    Token *token;
2198
 
    int type;
2199
 
    __JP_That *preparser;
2200
 
  
2201
 
        preparser = tjp->that ();
2202
 
    tjp->proceed (); // get the next token
2203
 
    token = *tjp->result ();
2204
 
    if (token) {
2205
 
      type = token->type ();
2206
 
      // __if_exists (...) { ... }
2207
 
      if (type == TOK_IF_EXISTS) {
2208
 
        preparser->skip_up_to (TOK_CLOSE_CURLY);
2209
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
2210
 
                    return;
2211
 
        // __if_not_exists (...) { ... }
2212
 
      } else if (type == TOK_IF_NOT_EXISTS) {
2213
 
        preparser->skip_up_to (TOK_OPEN_CURLY);
2214
 
        preparser->_depth.push (1);
2215
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
2216
 
                    return;
2217
 
      }
2218
 
      // skip closing `}' of __if_not_exists
2219
 
      if (preparser->_depth.length ()) {
2220
 
        if (type == TOK_OPEN_CURLY) 
2221
 
          preparser->_depth.top () = preparser->_depth.top () + 1;
2222
 
        else if (type == TOK_CLOSE_CURLY) { 
2223
 
          preparser->_depth.top () = preparser->_depth.top () - 1;
2224
 
                    if (preparser->_depth.top () == 0) {
2225
 
                  preparser->_depth.pop ();
2226
 
                  *(Token**)thisJoinPoint->result () = preparser->next ();
2227
 
                  return;
2228
 
                    }
2229
 
        }
2230
 
      }
2231
 
    }
2232
 
  }
2233
 
private:
2234
 
 
2235
 
 
2236
 
protected:
2237
 
  WinIfExists () {}
2238
 
};
2239
 
namespace AC {
2240
 
  template <class JoinPoint>
2241
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
2242
 
    ::WinIfExists::aspectof()->__a0_around (tjp);
2243
 
  }
2244
 
2245
 
 
2246
 
 
2247
 
namespace Puma {
2248
 
  
2249
 
    
2250
 
  // skip __if_exists resp. __if_not_exists statement
2251
 
  
2252
 
}
2253
 
 
2254
 
#endif /* __WinIfExists__ */
2255
 
 
2256
 
#ifndef __ac_fwd_PragmaOnce__
2257
 
#define __ac_fwd_PragmaOnce__
2258
 
class PragmaOnce;
2259
 
namespace AC {
2260
 
  template <class JoinPoint>
2261
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
2262
 
  template <class JoinPoint>
2263
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
2264
 
  template <class JoinPoint, class Binding>
2265
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
2266
 
  template <class JoinPoint>
2267
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
2268
 
}
2269
 
#endif
2270
 
 
2271
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
2272
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
2273
 
#endif
2274
 
/* Driver template for the LEMON parser generator.
2275
 
** Copyright 1991-1995 by D. Richard Hipp.
2276
 
**
2277
 
** This library is free software; you can redistribute it and/or
2278
 
** modify it under the terms of the GNU Library General Public
2279
 
** License as published by the Free Software Foundation; either
2280
 
** version 2 of the License, or (at your option) any later version.
2281
 
** 
2282
 
** This library is distributed in the hope that it will be useful,
2283
 
** but WITHOUT ANY WARRANTY; without even the implied warranty of
2284
 
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
2285
 
** Library General Public License for more details.
2286
 
** 
2287
 
** You should have received a copy of the GNU Library General Public
2288
 
** License along with this library; if not, write to the
2289
 
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
2290
 
** Boston, MA  02111-1307, USA.
2291
 
**
2292
 
** Modified 1997 to make it suitable for use with makeheaders.
2293
 
*/
2294
 
/* First off, code is include which follows the "include" declaration
2295
 
** in the input file. */
2296
 
#include <stdio.h>
2297
 
#line 27 "cpp/PreParser.lem"
2298
 
 
2299
 
// This file is part of PUMA.
2300
 
// Copyright (C) 1999-2003  The PUMA developer team.
2301
 
//                                                                
2302
 
// This program is free software;  you can redistribute it and/or 
2303
 
// modify it under the terms of the GNU General Public License as 
2304
 
// published by the Free Software Foundation; either version 2 of 
2305
 
// the License, or (at your option) any later version.            
2306
 
//                                                                
2307
 
// This program is distributed in the hope that it will be useful,
2308
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2309
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2310
 
// GNU General Public License for more details.                   
2311
 
//                                                                
2312
 
// You should have received a copy of the GNU General Public      
2313
 
// License along with this program; if not, write to the Free     
2314
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2315
 
// MA  02111-1307  USA                                            
2316
 
 
2317
 
#ifndef __list_h__
2318
 
#define __list_h__
2319
 
 
2320
 
namespace Puma {
2321
 
 
2322
 
 
2323
 
} // closed Puma
2324
 
class WinIfExists;
2325
 
class WinImportHandler;
2326
 
class WinMacros;
2327
 
class CMatchSyntax;
2328
 
class ExtGnu;
2329
 
class ExtAC;
2330
 
class ExtACBuilderCoupling;
2331
 
class ExtACSyntaxCoupling;
2332
 
class ExtACTree;
2333
 
class ExtACKeywords;
2334
 
class WinAsm;
2335
 
class WinDeclSpecs;
2336
 
class WinMemberExplSpec;
2337
 
class WinTypeKeywords;
2338
 
class PragmaOnceUnitState;
2339
 
class PragmaOnce;
2340
 
class CCExprResolve;
2341
 
class CExprResolve;
2342
 
namespace Puma {
2343
 
class List {  friend class ::WinIfExists;
2344
 
  friend class ::WinImportHandler;
2345
 
  friend class ::WinMacros;
2346
 
  friend class ::CMatchSyntax;
2347
 
  friend class ::ExtGnu;
2348
 
  friend class ::ExtAC;
2349
 
  friend class ::ExtACBuilderCoupling;
2350
 
  friend class ::ExtACSyntaxCoupling;
2351
 
  friend class ::ExtACTree;
2352
 
  friend class ::ExtACKeywords;
2353
 
  friend class ::WinAsm;
2354
 
  friend class ::WinDeclSpecs;
2355
 
  friend class ::WinMemberExplSpec;
2356
 
  friend class ::WinTypeKeywords;
2357
 
  friend class ::PragmaOnceUnitState;
2358
 
  friend class ::PragmaOnce;
2359
 
  friend class ::CCExprResolve;
2360
 
  friend class ::CExprResolve;
2361
 
 
2362
 
  ListElement *_first;
2363
 
  ListElement *_last;
2364
 
 
2365
 
public:
2366
 
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
2367
 
  List (const List &);
2368
 
  ~List();
2369
 
 
2370
 
  List &operator = (const List &);
2371
 
  List &operator += (const List &);
2372
 
  List operator + (const List &);
2373
 
 
2374
 
  void clear ();
2375
 
 
2376
 
  void append (ListElement &);
2377
 
  void prepend (ListElement &);
2378
 
  void insert (ListElement *at, ListElement &element);
2379
 
  void remove (ListElement *element);
2380
 
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
2381
 
   { List discard; cut (discard, from, to); }
2382
 
 
2383
 
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
2384
 
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
2385
 
  List *copy (ListElement *from = (ListElement*)0, 
2386
 
              ListElement *to = (ListElement*)0);
2387
 
  void paste (ListElement *at, const List &l);
2388
 
  void paste_before (ListElement *at, const List &l);
2389
 
  void move (ListElement *at, List &l);
2390
 
  void move_before (ListElement *at, List &l);
2391
 
 
2392
 
  bool empty () const { return _first == (ListElement*)0; }
2393
 
  const ListElement *first () const { return _first; }
2394
 
  const ListElement *last () const { return _last; }
2395
 
  const ListElement *next (const ListElement *element) const
2396
 
   { return element->_next; }
2397
 
  const ListElement *prev (const ListElement *element) const 
2398
 
   { return element->_prev; }
2399
 
};
2400
 
 
2401
 
 
2402
 
} // namespace Puma
2403
 
 
2404
 
#endif /* __list_h__ */
2405
 
// This file is part of PUMA.
2406
 
// Copyright (C) 1999-2003  The PUMA developer team.
2407
 
//                                                                
2408
 
// This program is free software;  you can redistribute it and/or 
2409
 
// modify it under the terms of the GNU General Public License as 
2410
 
// published by the Free Software Foundation; either version 2 of 
2411
 
// the License, or (at your option) any later version.            
2412
 
//                                                                
2413
 
// This program is distributed in the hope that it will be useful,
2414
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2415
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2416
 
// GNU General Public License for more details.                   
2417
 
//                                                                
2418
 
// You should have received a copy of the GNU General Public      
2419
 
// License along with this program; if not, write to the Free     
2420
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2421
 
// MA  02111-1307  USA                                            
2422
 
 
2423
 
#ifndef __unit_h__
2424
 
#define __unit_h__
2425
 
 
2426
 
 
2427
 
#ifndef __ac_fwd_PragmaOnceUnitState__
2428
 
#define __ac_fwd_PragmaOnceUnitState__
2429
 
class PragmaOnceUnitState;
2430
 
namespace AC {
2431
 
  template <class JoinPoint>
2432
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
2433
 
}
2434
 
#endif
2435
 
 
2436
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2437
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2438
 
#endif
2439
 
// This file is part of PUMA.
2440
 
// Copyright (C) 1999-2003  The PUMA developer team.
2441
 
//                                                                
2442
 
// This program is free software;  you can redistribute it and/or 
2443
 
// modify it under the terms of the GNU General Public License as 
2444
 
// published by the Free Software Foundation; either version 2 of 
2445
 
// the License, or (at your option) any later version.            
2446
 
//                                                                
2447
 
// This program is distributed in the hope that it will be useful,
2448
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2449
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2450
 
// GNU General Public License for more details.                   
2451
 
//                                                                
2452
 
// You should have received a copy of the GNU General Public      
2453
 
// License along with this program; if not, write to the Free     
2454
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2455
 
// MA  02111-1307  USA                                            
2456
 
 
2457
 
#ifndef __PragmaOnceUnitState__
2458
 
#define __PragmaOnceUnitState__
2459
 
 
2460
 
using namespace Puma;
2461
 
 
2462
 
class WinIfExists;
2463
 
class WinImportHandler;
2464
 
class WinMacros;
2465
 
class CMatchSyntax;
2466
 
class ExtGnu;
2467
 
class ExtAC;
2468
 
class ExtACBuilderCoupling;
2469
 
class ExtACSyntaxCoupling;
2470
 
class ExtACTree;
2471
 
class ExtACKeywords;
2472
 
class WinAsm;
2473
 
class WinDeclSpecs;
2474
 
class WinMemberExplSpec;
2475
 
class WinTypeKeywords;
2476
 
class PragmaOnce;
2477
 
class CCExprResolve;
2478
 
class CExprResolve;
2479
 
class PragmaOnceUnitState {
2480
 
public:
2481
 
  static PragmaOnceUnitState *aspectof () {
2482
 
    static PragmaOnceUnitState __instance;
2483
 
    return &__instance;
2484
 
  }
2485
 
  static PragmaOnceUnitState *aspectOf () {
2486
 
    return aspectof ();
2487
 
  }
2488
 
private:
2489
 
  friend class ::WinIfExists;
2490
 
  friend class ::WinImportHandler;
2491
 
  friend class ::WinMacros;
2492
 
  friend class ::CMatchSyntax;
2493
 
  friend class ::ExtGnu;
2494
 
  friend class ::ExtAC;
2495
 
  friend class ::ExtACBuilderCoupling;
2496
 
  friend class ::ExtACSyntaxCoupling;
2497
 
  friend class ::ExtACTree;
2498
 
  friend class ::ExtACKeywords;
2499
 
  friend class ::WinAsm;
2500
 
  friend class ::WinDeclSpecs;
2501
 
  friend class ::WinMemberExplSpec;
2502
 
  friend class ::WinTypeKeywords;
2503
 
  friend class ::PragmaOnce;
2504
 
  friend class ::CCExprResolve;
2505
 
  friend class ::CExprResolve;
2506
 
 
2507
 
  /******************************************************/
2508
 
  /* specific #pragma once unit state                   */
2509
 
  /******************************************************/
2510
 
 
2511
 
  // pointcut definitions
2512
 
  
2513
 
 
2514
 
  
2515
 
  
2516
 
  // initialize new state flag
2517
 
  
2518
 
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
2519
 
  JoinPoint *&thisJoinPoint = tjp;
2520
 
 
2521
 
  typedef typename JoinPoint::That __JP_That;
2522
 
  typedef typename JoinPoint::Target __JP_Target;
2523
 
  typedef typename JoinPoint::Result __JP_Result;
2524
 
 
2525
 
    thisJoinPoint->that ()->_once = false;
2526
 
  }
2527
 
private:
2528
 
 
2529
 
 
2530
 
protected:
2531
 
  // this aspect should never be instantiated directly
2532
 
  PragmaOnceUnitState () {}
2533
 
};
2534
 
namespace AC {
2535
 
  template <class JoinPoint>
2536
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
2537
 
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
2538
 
  }
2539
 
2540
 
 
2541
 
 
2542
 
 
2543
 
#endif /* __PragmaOnceUnitState__ */
2544
 
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
2545
 
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
2546
 
// This file is part of PUMA.
2547
 
// Copyright (C) 1999-2003  The PUMA developer team.
2548
 
//                                                                
2549
 
// This program is free software;  you can redistribute it and/or 
2550
 
// modify it under the terms of the GNU General Public License as 
2551
 
// published by the Free Software Foundation; either version 2 of 
2552
 
// the License, or (at your option) any later version.            
2553
 
//                                                                
2554
 
// This program is distributed in the hope that it will be useful,
2555
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2556
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2557
 
// GNU General Public License for more details.                   
2558
 
//                                                                
2559
 
// You should have received a copy of the GNU General Public      
2560
 
// License along with this program; if not, write to the Free     
2561
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2562
 
// MA  02111-1307  USA                                            
2563
 
 
2564
 
#ifndef __UnitState__
2565
 
#define __UnitState__
2566
 
 
2567
 
// The state of a unit: 
2568
 
// 1. modified by manipulations and not updated at the class registry
2569
 
// 2. modified by manipulations and updated at the class registry
2570
 
// 3. unmodified by manipulations and not updated at the class registry
2571
 
// 4. unmodified by manipulations and updated at the class registry
2572
 
 
2573
 
namespace Puma {
2574
 
 
2575
 
 
2576
 
} // closed Puma
2577
 
class WinIfExists;
2578
 
class WinImportHandler;
2579
 
class WinMacros;
2580
 
class CMatchSyntax;
2581
 
class ExtGnu;
2582
 
class ExtAC;
2583
 
class ExtACBuilderCoupling;
2584
 
class ExtACSyntaxCoupling;
2585
 
class ExtACTree;
2586
 
class ExtACKeywords;
2587
 
class WinAsm;
2588
 
class WinDeclSpecs;
2589
 
class WinMemberExplSpec;
2590
 
class WinTypeKeywords;
2591
 
class PragmaOnceUnitState;
2592
 
class PragmaOnce;
2593
 
class CCExprResolve;
2594
 
class CExprResolve;
2595
 
namespace Puma {
2596
 
class UnitState {  friend class ::WinIfExists;
2597
 
  friend class ::WinImportHandler;
2598
 
  friend class ::WinMacros;
2599
 
  friend class ::CMatchSyntax;
2600
 
  friend class ::ExtGnu;
2601
 
  friend class ::ExtAC;
2602
 
  friend class ::ExtACBuilderCoupling;
2603
 
  friend class ::ExtACSyntaxCoupling;
2604
 
  friend class ::ExtACTree;
2605
 
  friend class ::ExtACKeywords;
2606
 
  friend class ::WinAsm;
2607
 
  friend class ::WinDeclSpecs;
2608
 
  friend class ::WinMemberExplSpec;
2609
 
  friend class ::WinTypeKeywords;
2610
 
  friend class ::PragmaOnceUnitState;
2611
 
  friend class ::PragmaOnce;
2612
 
  friend class ::CCExprResolve;
2613
 
  friend class ::CExprResolve;
2614
 
 
2615
 
  bool _modified;
2616
 
  bool _updated;
2617
 
  long _lastModified;
2618
 
      
2619
 
public:
2620
 
  public: inline void __exec_old_C1();
2621
 
UnitState ();
2622
 
      
2623
 
  bool isModified () const;
2624
 
  bool isUpdated () const;
2625
 
  long lastModified () const;
2626
 
 
2627
 
  // Is modified and has to be updated.
2628
 
  void modified ();
2629
 
  void lastModified (long);
2630
 
  void unmodified ();
2631
 
  void updated ();
2632
 
   private:
2633
 
 bool _once ;
2634
 
public :
2635
 
 
2636
 
bool onlyOnce ( ) const { return _once ; }
2637
 
void onlyOnce ( bool v ) { _once = v ; }
2638
 
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
2639
 
  typedef void Result;
2640
 
  typedef ::Puma::UnitState That;
2641
 
  typedef ::Puma::UnitState Target;
2642
 
  static const int JPID = 5;
2643
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
2644
 
  struct Res {
2645
 
    typedef void Type;
2646
 
    typedef void ReferredType;
2647
 
  };
2648
 
  enum { ARGS = 1 };
2649
 
  template <int I, int DUMMY = 0> struct Arg {
2650
 
    typedef void Type;
2651
 
    typedef void ReferredType;
2652
 
  };
2653
 
  template <int DUMMY> struct Arg<0, DUMMY> {
2654
 
    typedef const ::Puma::UnitState & Type;
2655
 
    typedef const ::Puma::UnitState ReferredType;
2656
 
  };
2657
 
 
2658
 
  That *_that;
2659
 
 
2660
 
  inline That *that() {return (That*)_that;}
2661
 
 
2662
 
};
2663
 
 
2664
 
 
2665
 
public:
2666
 
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
2667
 
  TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
2668
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
2669
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
2670
 
 
2671
 
}
2672
 
};
2673
 
 
2674
 
 
2675
 
 
2676
 
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
2677
 
  typedef void Result;
2678
 
  typedef ::Puma::UnitState That;
2679
 
  typedef ::Puma::UnitState Target;
2680
 
  static const int JPID = 5;
2681
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
2682
 
  struct Res {
2683
 
    typedef void Type;
2684
 
    typedef void ReferredType;
2685
 
  };
2686
 
  enum { ARGS = 0 };
2687
 
  template <int I, int DUMMY = 0> struct Arg {
2688
 
    typedef void Type;
2689
 
    typedef void ReferredType;
2690
 
  };
2691
 
 
2692
 
  That *_that;
2693
 
 
2694
 
  inline That *that() {return (That*)_that;}
2695
 
 
2696
 
};
2697
 
 
2698
 
inline UnitState::UnitState ()
2699
 
 {
2700
 
  TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
2701
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
2702
 
this->__exec_old_C1();
2703
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
2704
 
 
2705
 
}
2706
 
inline void Puma::UnitState::__exec_old_C1(){ _modified = false; _updated = false; _lastModified = 0; }
2707
 
 
2708
 
inline bool UnitState::isModified () const 
2709
 
 { return _modified; }
2710
 
inline bool UnitState::isUpdated () const 
2711
 
 { return _updated; }
2712
 
inline long UnitState::lastModified () const
2713
 
 { return _lastModified; }
2714
 
 
2715
 
inline void UnitState::modified () 
2716
 
 { _modified = true; _updated = false; _lastModified = 0; }
2717
 
inline void UnitState::unmodified () 
2718
 
 { _modified = false; }
2719
 
inline void UnitState::updated () 
2720
 
 { _updated = true; }
2721
 
inline void UnitState::lastModified (long when) 
2722
 
 { _lastModified = when; }
2723
 
 
2724
 
 
2725
 
} // namespace Puma
2726
 
 
2727
 
#endif /* __UnitState__ */
2728
 
#endif // __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
2729
 
namespace Puma {
2730
 
 
2731
 
 
2732
 
} // closed Puma
2733
 
class WinIfExists;
2734
 
class WinImportHandler;
2735
 
class WinMacros;
2736
 
class CMatchSyntax;
2737
 
class ExtGnu;
2738
 
class ExtAC;
2739
 
class ExtACBuilderCoupling;
2740
 
class ExtACSyntaxCoupling;
2741
 
class ExtACTree;
2742
 
class ExtACKeywords;
2743
 
class WinAsm;
2744
 
class WinDeclSpecs;
2745
 
class WinMemberExplSpec;
2746
 
class WinTypeKeywords;
2747
 
class PragmaOnceUnitState;
2748
 
class PragmaOnce;
2749
 
class CCExprResolve;
2750
 
class CExprResolve;
2751
 
namespace Puma {
2752
 
class Unit : public List, public Printable {  friend class ::WinIfExists;
2753
 
  friend class ::WinImportHandler;
2754
 
  friend class ::WinMacros;
2755
 
  friend class ::CMatchSyntax;
2756
 
  friend class ::ExtGnu;
2757
 
  friend class ::ExtAC;
2758
 
  friend class ::ExtACBuilderCoupling;
2759
 
  friend class ::ExtACSyntaxCoupling;
2760
 
  friend class ::ExtACTree;
2761
 
  friend class ::ExtACKeywords;
2762
 
  friend class ::WinAsm;
2763
 
  friend class ::WinDeclSpecs;
2764
 
  friend class ::WinMemberExplSpec;
2765
 
  friend class ::WinTypeKeywords;
2766
 
  friend class ::PragmaOnceUnitState;
2767
 
  friend class ::PragmaOnce;
2768
 
  friend class ::CCExprResolve;
2769
 
  friend class ::CExprResolve;
2770
 
 
2771
 
  char *_name;
2772
 
  UnitState _state;
2773
 
 
2774
 
public:
2775
 
  Unit () : List (), _name ((char*)0) {}
2776
 
  Unit (const List &list) : List (list), _name ((char*)0) {}
2777
 
  virtual ~Unit ();
2778
 
  virtual void name (const char *);
2779
 
  char *name () const { return _name; }
2780
 
  virtual void print (ostream &os) const;
2781
 
  virtual bool isFile () const { return false; }
2782
 
  virtual bool isMacroExp () const { return false; }
2783
 
  UnitState &state () { return _state; }
2784
 
};
2785
 
 
2786
 
 
2787
 
} // namespace Puma
2788
 
 
2789
 
#endif /* __unit_h__ */
 
2584
 
 
2585
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreExpr.h"
2790
2586
// This file is part of PUMA.
2791
2587
// Copyright (C) 1999-2003  The PUMA developer team.
2792
2588
//                                                                
2810
2606
 
2811
2607
// Node class for the preprocessor expression parser. 
2812
2608
 
 
2609
 
 
2610
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
2813
2611
// This file is part of PUMA.
2814
2612
// Copyright (C) 1999-2003  The PUMA developer team.
2815
2613
//                                                                
2835
2633
// orange tool. Returned expressions mapped according to an orange
2836
2634
// generated mapping table
2837
2635
 
 
2636
 
 
2637
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
2838
2638
// This file is part of PUMA.
2839
2639
// Copyright (C) 1999-2003  The PUMA developer team.
2840
2640
//                                                                
2859
2659
// The token recognizer class, which uses scanner tables generated by the
2860
2660
// orange tool.
2861
2661
 
2862
 
// This file is part of PUMA.
2863
 
// Copyright (C) 1999-2003  The PUMA developer team.
2864
 
//                                                                
2865
 
// This program is free software;  you can redistribute it and/or 
2866
 
// modify it under the terms of the GNU General Public License as 
2867
 
// published by the Free Software Foundation; either version 2 of 
2868
 
// the License, or (at your option) any later version.            
2869
 
//                                                                
2870
 
// This program is distributed in the hope that it will be useful,
2871
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2872
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2873
 
// GNU General Public License for more details.                   
2874
 
//                                                                
2875
 
// You should have received a copy of the GNU General Public      
2876
 
// License along with this program; if not, write to the Free     
2877
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2878
 
// MA  02111-1307  USA                                            
2879
 
 
2880
 
#ifndef __scan_buffer_h__
2881
 
#define __scan_buffer_h__
2882
 
 
2883
 
namespace Puma {
2884
 
 
2885
 
 
2886
 
} // closed Puma
2887
 
class WinIfExists;
2888
 
class WinImportHandler;
2889
 
class WinMacros;
2890
 
class CMatchSyntax;
2891
 
class ExtGnu;
2892
 
class ExtAC;
2893
 
class ExtACBuilderCoupling;
2894
 
class ExtACSyntaxCoupling;
2895
 
class ExtACTree;
2896
 
class ExtACKeywords;
2897
 
class WinAsm;
2898
 
class WinDeclSpecs;
2899
 
class WinMemberExplSpec;
2900
 
class WinTypeKeywords;
2901
 
class PragmaOnceUnitState;
2902
 
class PragmaOnce;
2903
 
class CCExprResolve;
2904
 
class CExprResolve;
2905
 
namespace Puma {
2906
 
class ScanBuffer {  friend class ::WinIfExists;
2907
 
  friend class ::WinImportHandler;
2908
 
  friend class ::WinMacros;
2909
 
  friend class ::CMatchSyntax;
2910
 
  friend class ::ExtGnu;
2911
 
  friend class ::ExtAC;
2912
 
  friend class ::ExtACBuilderCoupling;
2913
 
  friend class ::ExtACSyntaxCoupling;
2914
 
  friend class ::ExtACTree;
2915
 
  friend class ::ExtACKeywords;
2916
 
  friend class ::WinAsm;
2917
 
  friend class ::WinDeclSpecs;
2918
 
  friend class ::WinMemberExplSpec;
2919
 
  friend class ::WinTypeKeywords;
2920
 
  friend class ::PragmaOnceUnitState;
2921
 
  friend class ::PragmaOnce;
2922
 
  friend class ::CCExprResolve;
2923
 
  friend class ::CExprResolve;
2924
 
 
2925
 
public:
2926
 
  typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
2927
 
  
2928
 
  virtual ~ScanBuffer () {}
2929
 
 
2930
 
  virtual char next () = 0;
2931
 
  virtual char *token () = 0;
2932
 
  virtual int len () const = 0;
2933
 
  virtual void reset () = 0;
2934
 
  virtual void retry () = 0; 
2935
 
  virtual void accept (int len) = 0;
2936
 
  virtual void more (int len) = 0;
2937
 
  virtual State state () const = 0;
2938
 
};
2939
 
 
2940
 
 
2941
 
} // namespace Puma
2942
 
 
2943
 
#endif /* __scan_buffer_h__ */
2944
2662
namespace Puma {
2945
2663
 
2946
2664
 
2947
2665
#ifndef __TTGEN__
2948
2666
#  define __TTGEN__
2949
 
} // closed Puma
2950
 
class WinIfExists;
2951
 
class WinImportHandler;
2952
 
class WinMacros;
2953
 
class CMatchSyntax;
2954
 
class ExtGnu;
2955
 
class ExtAC;
2956
 
class ExtACBuilderCoupling;
2957
 
class ExtACSyntaxCoupling;
2958
 
class ExtACTree;
2959
 
class ExtACKeywords;
2960
 
class WinAsm;
2961
 
class WinDeclSpecs;
2962
 
class WinMemberExplSpec;
2963
 
class WinTypeKeywords;
2964
 
class PragmaOnceUnitState;
2965
 
class PragmaOnce;
2966
 
class CCExprResolve;
2967
 
class CExprResolve;
2968
 
namespace Puma {
2969
2667
typedef struct
2970
 
 {  friend class ::WinIfExists;
2971
 
  friend class ::WinImportHandler;
2972
 
  friend class ::WinMacros;
2973
 
  friend class ::CMatchSyntax;
2974
 
  friend class ::ExtGnu;
2975
 
  friend class ::ExtAC;
2976
 
  friend class ::ExtACBuilderCoupling;
2977
 
  friend class ::ExtACSyntaxCoupling;
2978
 
  friend class ::ExtACTree;
2979
 
  friend class ::ExtACKeywords;
2980
 
  friend class ::WinAsm;
2981
 
  friend class ::WinDeclSpecs;
2982
 
  friend class ::WinMemberExplSpec;
2983
 
  friend class ::WinTypeKeywords;
2984
 
  friend class ::PragmaOnceUnitState;
2985
 
  friend class ::PragmaOnce;
2986
 
  friend class ::CCExprResolve;
2987
 
  friend class ::CExprResolve;
2988
 
 unsigned char Type;
 
2668
 { unsigned char Type;
2989
2669
   unsigned char LookAhead;
2990
2670
   int           Expression;
2991
2671
   int           Start;
2995
2675
 
2996
2676
// class declaration
2997
2677
 
2998
 
} // closed Puma
2999
 
class WinIfExists;
3000
 
class WinImportHandler;
3001
 
class WinMacros;
3002
 
class CMatchSyntax;
3003
 
class ExtGnu;
3004
 
class ExtAC;
3005
 
class ExtACBuilderCoupling;
3006
 
class ExtACSyntaxCoupling;
3007
 
class ExtACTree;
3008
 
class ExtACKeywords;
3009
 
class WinAsm;
3010
 
class WinDeclSpecs;
3011
 
class WinMemberExplSpec;
3012
 
class WinTypeKeywords;
3013
 
class PragmaOnceUnitState;
3014
 
class PragmaOnce;
3015
 
class CCExprResolve;
3016
 
class CExprResolve;
3017
 
namespace Puma {
3018
2678
template <typename TScanBuffer>
3019
 
class OrangeRecognizer {  friend class ::WinIfExists;
3020
 
  friend class ::WinImportHandler;
3021
 
  friend class ::WinMacros;
3022
 
  friend class ::CMatchSyntax;
3023
 
  friend class ::ExtGnu;
3024
 
  friend class ::ExtAC;
3025
 
  friend class ::ExtACBuilderCoupling;
3026
 
  friend class ::ExtACSyntaxCoupling;
3027
 
  friend class ::ExtACTree;
3028
 
  friend class ::ExtACKeywords;
3029
 
  friend class ::WinAsm;
3030
 
  friend class ::WinDeclSpecs;
3031
 
  friend class ::WinMemberExplSpec;
3032
 
  friend class ::WinTypeKeywords;
3033
 
  friend class ::PragmaOnceUnitState;
3034
 
  friend class ::PragmaOnce;
3035
 
  friend class ::CCExprResolve;
3036
 
  friend class ::CExprResolve;
3037
 
 
 
2679
class OrangeRecognizer {
3038
2680
  // local structures generated by Orange
3039
2681
 
3040
2682
  char *_map;
3067
2709
  int  LookAheadLen;
3068
2710
  int  AcceptLen;
3069
2711
  int  AcceptState;
3070
 
  ScanBuffer::State buffer_state = ScanBuffer::STATE_OK;
 
2712
  typename TScanBuffer::State buffer_state = TScanBuffer::STATE_OK;
3071
2713
 
3072
2714
  State = _start;
3073
2715
  AcceptState = -1;
3100
2742
      LookAheadLen = scan_buffer->len ();
3101
2743
 
3102
2744
    buffer_state = scan_buffer->state ();
3103
 
  } while (NextState != -1 && buffer_state == ScanBuffer::STATE_OK);
 
2745
  } while (NextState != -1 && buffer_state == TScanBuffer::STATE_OK);
3104
2746
 
3105
 
  if (buffer_state == ScanBuffer::STATE_ERROR)
 
2747
  if (buffer_state == TScanBuffer::STATE_ERROR)
3106
2748
    return -1;
3107
2749
 
3108
2750
  if (AcceptState == -1)
3117
2759
} // namespace Puma
3118
2760
 
3119
2761
#endif /* __orange_recognizer_h__ */
 
2762
 
 
2763
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
3120
2764
namespace Puma {
3121
2765
 
3122
2766
 
3123
2767
// class declaration
3124
2768
 
3125
 
} // closed Puma
3126
 
class WinIfExists;
3127
 
class WinImportHandler;
3128
 
class WinMacros;
3129
 
class CMatchSyntax;
3130
 
class ExtGnu;
3131
 
class ExtAC;
3132
 
class ExtACBuilderCoupling;
3133
 
class ExtACSyntaxCoupling;
3134
 
class ExtACTree;
3135
 
class ExtACKeywords;
3136
 
class WinAsm;
3137
 
class WinDeclSpecs;
3138
 
class WinMemberExplSpec;
3139
 
class WinTypeKeywords;
3140
 
class PragmaOnceUnitState;
3141
 
class PragmaOnce;
3142
 
class CCExprResolve;
3143
 
class CExprResolve;
3144
 
namespace Puma {
3145
2769
template <class ScanBuffer>
3146
 
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {  friend class ::WinIfExists;
3147
 
  friend class ::WinImportHandler;
3148
 
  friend class ::WinMacros;
3149
 
  friend class ::CMatchSyntax;
3150
 
  friend class ::ExtGnu;
3151
 
  friend class ::ExtAC;
3152
 
  friend class ::ExtACBuilderCoupling;
3153
 
  friend class ::ExtACSyntaxCoupling;
3154
 
  friend class ::ExtACTree;
3155
 
  friend class ::ExtACKeywords;
3156
 
  friend class ::WinAsm;
3157
 
  friend class ::WinDeclSpecs;
3158
 
  friend class ::WinMemberExplSpec;
3159
 
  friend class ::WinTypeKeywords;
3160
 
  friend class ::PragmaOnceUnitState;
3161
 
  friend class ::PragmaOnce;
3162
 
  friend class ::CCExprResolve;
3163
 
  friend class ::CExprResolve;
3164
 
 
 
2770
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
3165
2771
  int *_expr_map;
3166
2772
 
3167
2773
public:
3188
2794
} // namespace Puma
3189
2795
 
3190
2796
#endif // __mapped_orange_recognizer_h__
 
2797
 
 
2798
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
2799
// This file is part of PUMA.
 
2800
// Copyright (C) 1999-2003  The PUMA developer team.
 
2801
//                                                                
 
2802
// This program is free software;  you can redistribute it and/or 
 
2803
// modify it under the terms of the GNU General Public License as 
 
2804
// published by the Free Software Foundation; either version 2 of 
 
2805
// the License, or (at your option) any later version.            
 
2806
//                                                                
 
2807
// This program is distributed in the hope that it will be useful,
 
2808
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2809
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2810
// GNU General Public License for more details.                   
 
2811
//                                                                
 
2812
// You should have received a copy of the GNU General Public      
 
2813
// License along with this program; if not, write to the Free     
 
2814
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2815
// MA  02111-1307  USA                                            
 
2816
 
 
2817
#ifndef __scan_buffer_h__
 
2818
#define __scan_buffer_h__
 
2819
 
 
2820
 
 
2821
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
2822
using namespace std;
 
2823
 
 
2824
namespace Puma {
 
2825
 
 
2826
 
 
2827
#line 2828 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2828
} // closed Puma
 
2829
class CCExprResolve;
 
2830
class CExprResolve;
 
2831
class WinIfExists;
 
2832
class WinImportHandler;
 
2833
class WinMacros;
 
2834
class WinAsm;
 
2835
class WinDeclSpecs;
 
2836
class WinMemberExplSpec;
 
2837
class WinTypeKeywords;
 
2838
class WinFriend;
 
2839
class ExtAC;
 
2840
class ExtACBuilderCoupling;
 
2841
class ExtACSyntaxCoupling;
 
2842
class ExtACTree;
 
2843
class ExtACKeywords;
 
2844
class ExtGnu;
 
2845
class PragmaOnceUnitState;
 
2846
class PragmaOnce;
 
2847
class CMatchSyntax;
 
2848
namespace Puma {
 
2849
 
 
2850
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
2851
class ScanBuffer {
 
2852
#line 2853 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2853
  friend class ::CCExprResolve;
 
2854
  friend class ::CExprResolve;
 
2855
  friend class ::WinIfExists;
 
2856
  friend class ::WinImportHandler;
 
2857
  friend class ::WinMacros;
 
2858
  friend class ::WinAsm;
 
2859
  friend class ::WinDeclSpecs;
 
2860
  friend class ::WinMemberExplSpec;
 
2861
  friend class ::WinTypeKeywords;
 
2862
  friend class ::WinFriend;
 
2863
  friend class ::ExtAC;
 
2864
  friend class ::ExtACBuilderCoupling;
 
2865
  friend class ::ExtACSyntaxCoupling;
 
2866
  friend class ::ExtACTree;
 
2867
  friend class ::ExtACKeywords;
 
2868
  friend class ::ExtGnu;
 
2869
  friend class ::PragmaOnceUnitState;
 
2870
  friend class ::PragmaOnce;
 
2871
  friend class ::CMatchSyntax;
 
2872
 
 
2873
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
2874
 
 
2875
public:
 
2876
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
 
2877
 
 
2878
private:
 
2879
  int _token;      // start position of current token
 
2880
  int _pos;        // current position (in token; _pos >= _token && pos < filled)
 
2881
  char *_buffer;   // token to the buffer that contains all input characters
 
2882
  int  _buff_size; // size of the input buffer
 
2883
  State _state;
 
2884
 
 
2885
public:  
 
2886
  ScanBuffer () : _state (STATE_NEW) {}
 
2887
 
 
2888
  // init buffer to directly scan from a string
 
2889
  void init (const char *str, int l = 0);
 
2890
  
 
2891
  char next () { return _buffer[_pos++]; }
 
2892
  char lookahead () { return _buffer[_pos]; }
 
2893
  char *token () const { return _buffer + _token; }
 
2894
  int len () const { return _pos - _token; }
 
2895
  void reset () { _token = _pos = 0; }
 
2896
  void retry () { _pos = _token; } 
 
2897
  void accept (int len) {
 
2898
    _token += len;
 
2899
    _pos = _token;
 
2900
  }
 
2901
  void more (int len) { _pos = _token + len; }
 
2902
  State state () {
 
2903
    if (_state == STATE_OK && _pos >= _buff_size)
 
2904
      return STATE_END;
 
2905
    return _state;
 
2906
  }
 
2907
};
 
2908
 
 
2909
 
 
2910
} // namespace Puma
 
2911
 
 
2912
#endif /* __scan_buffer_h__ */
 
2913
 
 
2914
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreExpr.h"
3191
2915
namespace Puma {
3192
2916
 
3193
2917
 
3194
2918
class ErrorStream;
3195
2919
 
 
2920
 
 
2921
#line 2922 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3196
2922
} // closed Puma
 
2923
class CCExprResolve;
 
2924
class CExprResolve;
3197
2925
class WinIfExists;
3198
2926
class WinImportHandler;
3199
2927
class WinMacros;
3200
 
class CMatchSyntax;
3201
 
class ExtGnu;
 
2928
class WinAsm;
 
2929
class WinDeclSpecs;
 
2930
class WinMemberExplSpec;
 
2931
class WinTypeKeywords;
 
2932
class WinFriend;
3202
2933
class ExtAC;
3203
2934
class ExtACBuilderCoupling;
3204
2935
class ExtACSyntaxCoupling;
3205
2936
class ExtACTree;
3206
2937
class ExtACKeywords;
3207
 
class WinAsm;
3208
 
class WinDeclSpecs;
3209
 
class WinMemberExplSpec;
3210
 
class WinTypeKeywords;
 
2938
class ExtGnu;
3211
2939
class PragmaOnceUnitState;
3212
2940
class PragmaOnce;
3213
 
class CCExprResolve;
3214
 
class CExprResolve;
 
2941
class CMatchSyntax;
3215
2942
namespace Puma {
3216
 
class PreExpr {  friend class ::WinIfExists;
 
2943
 
 
2944
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreExpr.h"
 
2945
class PreExpr {
 
2946
#line 2947 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
2947
  friend class ::CCExprResolve;
 
2948
  friend class ::CExprResolve;
 
2949
  friend class ::WinIfExists;
3217
2950
  friend class ::WinImportHandler;
3218
2951
  friend class ::WinMacros;
3219
 
  friend class ::CMatchSyntax;
3220
 
  friend class ::ExtGnu;
 
2952
  friend class ::WinAsm;
 
2953
  friend class ::WinDeclSpecs;
 
2954
  friend class ::WinMemberExplSpec;
 
2955
  friend class ::WinTypeKeywords;
 
2956
  friend class ::WinFriend;
3221
2957
  friend class ::ExtAC;
3222
2958
  friend class ::ExtACBuilderCoupling;
3223
2959
  friend class ::ExtACSyntaxCoupling;
3224
2960
  friend class ::ExtACTree;
3225
2961
  friend class ::ExtACKeywords;
3226
 
  friend class ::WinAsm;
3227
 
  friend class ::WinDeclSpecs;
3228
 
  friend class ::WinMemberExplSpec;
3229
 
  friend class ::WinTypeKeywords;
 
2962
  friend class ::ExtGnu;
3230
2963
  friend class ::PragmaOnceUnitState;
3231
2964
  friend class ::PragmaOnce;
3232
 
  friend class ::CCExprResolve;
3233
 
  friend class ::CExprResolve;
 
2965
  friend class ::CMatchSyntax;
 
2966
 
 
2967
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreExpr.h"
3234
2968
 
3235
2969
  bool _result;        
3236
2970
 
3266
3000
 
3267
3001
#endif /* __pre_expr__ */
3268
3002
 
 
3003
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
3004
 
 
3005
#line 3006 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3006
 
3269
3007
#ifndef __ac_fwd_ExtACKeywords__
3270
3008
#define __ac_fwd_ExtACKeywords__
3271
3009
class ExtACKeywords;
3272
3010
namespace AC {
3273
 
  template <class JoinPoint, class Binding>
3274
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
3275
 
  template <class JoinPoint, class Binding>
3276
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
3277
 
  template <class JoinPoint>
3278
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
3011
  template <class JoinPoint>
 
3012
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
3013
  template <class JoinPoint>
 
3014
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
3015
  template <class JoinPoint>
 
3016
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
3279
3017
}
3280
3018
#endif
3281
3019
 
3282
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
3283
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
3020
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
3021
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
3284
3022
#endif
 
3023
 
 
3024
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
3285
3025
// This file is part of PUMA.
3286
3026
// Copyright (C) 1999-2003  The PUMA developer team.
3287
3027
//                                                                
3303
3043
#ifndef __c_scanner_h__
3304
3044
#define __c_scanner_h__
3305
3045
 
 
3046
 
 
3047
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3306
3048
// This file is part of PUMA.
3307
3049
// Copyright (C) 1999-2003  The PUMA developer team.
3308
3050
//                                                                
3324
3066
#ifndef __c_recognizer_h__
3325
3067
#define __c_recognizer_h__
3326
3068
 
 
3069
 
 
3070
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3327
3071
// This file is part of PUMA.
3328
3072
// Copyright (C) 1999-2003  The PUMA developer team.
3329
3073
//                                                                
3345
3089
#ifndef __CScanBuffer_h__
3346
3090
#define __CScanBuffer_h__
3347
3091
 
 
3092
 
 
3093
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3348
3094
namespace Puma {
3349
3095
 
3350
3096
 
 
3097
 
 
3098
#line 3099 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3351
3099
} // closed Puma
 
3100
class CCExprResolve;
 
3101
class CExprResolve;
3352
3102
class WinIfExists;
3353
3103
class WinImportHandler;
3354
3104
class WinMacros;
3355
 
class CMatchSyntax;
3356
 
class ExtGnu;
 
3105
class WinAsm;
 
3106
class WinDeclSpecs;
 
3107
class WinMemberExplSpec;
 
3108
class WinTypeKeywords;
 
3109
class WinFriend;
3357
3110
class ExtAC;
3358
3111
class ExtACBuilderCoupling;
3359
3112
class ExtACSyntaxCoupling;
3360
3113
class ExtACTree;
3361
3114
class ExtACKeywords;
3362
 
class WinAsm;
3363
 
class WinDeclSpecs;
3364
 
class WinMemberExplSpec;
3365
 
class WinTypeKeywords;
 
3115
class ExtGnu;
3366
3116
class PragmaOnceUnitState;
3367
3117
class PragmaOnce;
3368
 
class CCExprResolve;
3369
 
class CExprResolve;
 
3118
class CMatchSyntax;
3370
3119
namespace Puma {
3371
 
class CScanBuffer {  friend class ::WinIfExists;
 
3120
 
 
3121
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3122
class CScanBuffer : public ScanBuffer {
 
3123
#line 3124 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3124
  friend class ::CCExprResolve;
 
3125
  friend class ::CExprResolve;
 
3126
  friend class ::WinIfExists;
3372
3127
  friend class ::WinImportHandler;
3373
3128
  friend class ::WinMacros;
3374
 
  friend class ::CMatchSyntax;
3375
 
  friend class ::ExtGnu;
 
3129
  friend class ::WinAsm;
 
3130
  friend class ::WinDeclSpecs;
 
3131
  friend class ::WinMemberExplSpec;
 
3132
  friend class ::WinTypeKeywords;
 
3133
  friend class ::WinFriend;
3376
3134
  friend class ::ExtAC;
3377
3135
  friend class ::ExtACBuilderCoupling;
3378
3136
  friend class ::ExtACSyntaxCoupling;
3379
3137
  friend class ::ExtACTree;
3380
3138
  friend class ::ExtACKeywords;
3381
 
  friend class ::WinAsm;
3382
 
  friend class ::WinDeclSpecs;
3383
 
  friend class ::WinMemberExplSpec;
3384
 
  friend class ::WinTypeKeywords;
 
3139
  friend class ::ExtGnu;
3385
3140
  friend class ::PragmaOnceUnitState;
3386
3141
  friend class ::PragmaOnce;
3387
 
  friend class ::CCExprResolve;
3388
 
  friend class ::CExprResolve;
3389
 
 
3390
 
  ScanBuffer *next_buffer;
3391
 
  bool on_new_line;
3392
 
  int nl_pos;
3393
 
 
 
3142
  friend class ::CMatchSyntax;
 
3143
 
 
3144
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
3145
 
 
3146
 
 
3147
  int _new_line_pos;
3394
3148
  void check ();
3395
3149
 
3396
3150
public:
3397
 
  void decorate (ScanBuffer *nb) { next_buffer = nb; }
 
3151
  CScanBuffer () : _new_line_pos (-1) {}
3398
3152
  inline char next ();
3399
3153
  inline void reset ();
 
3154
  inline void retry (); 
3400
3155
  inline void accept (int len);
3401
 
  inline void retry ();
3402
 
  bool new_line () const { return on_new_line; }
3403
 
  char *token () { return next_buffer->token (); }
3404
 
  int len () const { return next_buffer->len (); }
3405
 
  void more (int len) { next_buffer->more (len); }
3406
 
  ScanBuffer::State state () const { return next_buffer->state (); }
 
3156
  inline bool new_line (int len) const;
3407
3157
};
3408
3158
 
3409
3159
 
3410
3160
inline char CScanBuffer::next () {
3411
 
  char character = next_buffer->next ();
3412
 
  if (character == '\n' && nl_pos == -1)
3413
 
    nl_pos = len () - 1;
3414
 
  check ();
 
3161
  char character = ScanBuffer::next ();
 
3162
  if (character == '\n' && _new_line_pos == -1)
 
3163
    _new_line_pos = len ();
 
3164
  if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
 
3165
      ScanBuffer::lookahead () == '\\')
 
3166
    check ();
3415
3167
  return character;
3416
3168
}
3417
3169
 
3418
3170
inline void CScanBuffer::reset () { 
3419
 
  next_buffer->reset (); 
3420
 
  on_new_line = true;
3421
 
  nl_pos = -1;
 
3171
  ScanBuffer::reset ();
 
3172
  _new_line_pos = -1;
3422
3173
  check ();
3423
3174
}
3424
3175
 
3425
 
 
3426
3176
inline void CScanBuffer::retry () {
3427
 
  nl_pos = -1;
3428
 
  next_buffer->retry ();
 
3177
  ScanBuffer::retry ();
 
3178
  _new_line_pos = -1;
3429
3179
}
3430
3180
 
3431
 
 
3432
3181
inline void CScanBuffer::accept (int len) {
3433
 
  on_new_line = (nl_pos >= 0 && nl_pos < len);
3434
 
  nl_pos = -1;
3435
 
  next_buffer->accept (len);
 
3182
  ScanBuffer::accept (len);
 
3183
  _new_line_pos = -1;
 
3184
}
 
3185
 
 
3186
inline bool CScanBuffer::new_line (int len) const {
 
3187
  return _new_line_pos != -1 && _new_line_pos <= len;
3436
3188
}
3437
3189
 
3438
3190
} // namespace Puma
3439
3191
 
3440
3192
#endif // __CScanBuffer_h__
 
3193
 
 
3194
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3441
3195
// This file is part of PUMA.
3442
3196
// Copyright (C) 1999-2003  The PUMA developer team.
3443
3197
//                                                                
3459
3213
#ifndef __c_comment_recognizer_h__
3460
3214
#define __c_comment_recognizer_h__
3461
3215
 
 
3216
 
 
3217
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3462
3218
namespace Puma {
3463
3219
 
3464
3220
 
 
3221
 
 
3222
#line 3223 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3465
3223
} // closed Puma
 
3224
class CCExprResolve;
 
3225
class CExprResolve;
3466
3226
class WinIfExists;
3467
3227
class WinImportHandler;
3468
3228
class WinMacros;
3469
 
class CMatchSyntax;
3470
 
class ExtGnu;
 
3229
class WinAsm;
 
3230
class WinDeclSpecs;
 
3231
class WinMemberExplSpec;
 
3232
class WinTypeKeywords;
 
3233
class WinFriend;
3471
3234
class ExtAC;
3472
3235
class ExtACBuilderCoupling;
3473
3236
class ExtACSyntaxCoupling;
3474
3237
class ExtACTree;
3475
3238
class ExtACKeywords;
3476
 
class WinAsm;
3477
 
class WinDeclSpecs;
3478
 
class WinMemberExplSpec;
3479
 
class WinTypeKeywords;
 
3239
class ExtGnu;
3480
3240
class PragmaOnceUnitState;
3481
3241
class PragmaOnce;
3482
 
class CCExprResolve;
3483
 
class CExprResolve;
 
3242
class CMatchSyntax;
3484
3243
namespace Puma {
3485
 
class CCommentRecognizer {  friend class ::WinIfExists;
 
3244
 
 
3245
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
3246
class CCommentRecognizer {
 
3247
#line 3248 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3248
  friend class ::CCExprResolve;
 
3249
  friend class ::CExprResolve;
 
3250
  friend class ::WinIfExists;
3486
3251
  friend class ::WinImportHandler;
3487
3252
  friend class ::WinMacros;
3488
 
  friend class ::CMatchSyntax;
3489
 
  friend class ::ExtGnu;
 
3253
  friend class ::WinAsm;
 
3254
  friend class ::WinDeclSpecs;
 
3255
  friend class ::WinMemberExplSpec;
 
3256
  friend class ::WinTypeKeywords;
 
3257
  friend class ::WinFriend;
3490
3258
  friend class ::ExtAC;
3491
3259
  friend class ::ExtACBuilderCoupling;
3492
3260
  friend class ::ExtACSyntaxCoupling;
3493
3261
  friend class ::ExtACTree;
3494
3262
  friend class ::ExtACKeywords;
3495
 
  friend class ::WinAsm;
3496
 
  friend class ::WinDeclSpecs;
3497
 
  friend class ::WinMemberExplSpec;
3498
 
  friend class ::WinTypeKeywords;
 
3263
  friend class ::ExtGnu;
3499
3264
  friend class ::PragmaOnceUnitState;
3500
3265
  friend class ::PragmaOnce;
3501
 
  friend class ::CCExprResolve;
3502
 
  friend class ::CExprResolve;
 
3266
  friend class ::CMatchSyntax;
 
3267
 
 
3268
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3503
3269
 
3504
3270
public:
3505
3271
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
3521
3287
} // namespace Puma
3522
3288
 
3523
3289
#endif /* __c_comment_recognizer_h__ */
 
3290
 
 
3291
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3524
3292
// This file is part of PUMA.
3525
3293
// Copyright (C) 1999-2003  The PUMA developer team.
3526
3294
//                                                                
3542
3310
#ifndef __keyword_recognizer_h__
3543
3311
#define __keyword_recognizer_h__
3544
3312
 
 
3313
 
 
3314
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3545
3315
namespace Puma {
3546
3316
 
3547
3317
 
 
3318
 
 
3319
#line 3320 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3548
3320
} // closed Puma
 
3321
class CCExprResolve;
 
3322
class CExprResolve;
3549
3323
class WinIfExists;
3550
3324
class WinImportHandler;
3551
3325
class WinMacros;
3552
 
class CMatchSyntax;
3553
 
class ExtGnu;
 
3326
class WinAsm;
 
3327
class WinDeclSpecs;
 
3328
class WinMemberExplSpec;
 
3329
class WinTypeKeywords;
 
3330
class WinFriend;
3554
3331
class ExtAC;
3555
3332
class ExtACBuilderCoupling;
3556
3333
class ExtACSyntaxCoupling;
3557
3334
class ExtACTree;
3558
3335
class ExtACKeywords;
3559
 
class WinAsm;
3560
 
class WinDeclSpecs;
3561
 
class WinMemberExplSpec;
3562
 
class WinTypeKeywords;
 
3336
class ExtGnu;
3563
3337
class PragmaOnceUnitState;
3564
3338
class PragmaOnce;
3565
 
class CCExprResolve;
3566
 
class CExprResolve;
 
3339
class CMatchSyntax;
3567
3340
namespace Puma {
3568
 
class KeywordRecognizer {  friend class ::WinIfExists;
 
3341
 
 
3342
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
3343
class KeywordRecognizer {
 
3344
#line 3345 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3345
  friend class ::CCExprResolve;
 
3346
  friend class ::CExprResolve;
 
3347
  friend class ::WinIfExists;
3569
3348
  friend class ::WinImportHandler;
3570
3349
  friend class ::WinMacros;
3571
 
  friend class ::CMatchSyntax;
3572
 
  friend class ::ExtGnu;
 
3350
  friend class ::WinAsm;
 
3351
  friend class ::WinDeclSpecs;
 
3352
  friend class ::WinMemberExplSpec;
 
3353
  friend class ::WinTypeKeywords;
 
3354
  friend class ::WinFriend;
3573
3355
  friend class ::ExtAC;
3574
3356
  friend class ::ExtACBuilderCoupling;
3575
3357
  friend class ::ExtACSyntaxCoupling;
3576
3358
  friend class ::ExtACTree;
3577
3359
  friend class ::ExtACKeywords;
3578
 
  friend class ::WinAsm;
3579
 
  friend class ::WinDeclSpecs;
3580
 
  friend class ::WinMemberExplSpec;
3581
 
  friend class ::WinTypeKeywords;
 
3360
  friend class ::ExtGnu;
3582
3361
  friend class ::PragmaOnceUnitState;
3583
3362
  friend class ::PragmaOnce;
3584
 
  friend class ::CCExprResolve;
3585
 
  friend class ::CExprResolve;
 
3363
  friend class ::CMatchSyntax;
 
3364
 
 
3365
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
3586
3366
 
3587
3367
protected:
3588
3368
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
3596
3376
} // namespace Puma
3597
3377
 
3598
3378
#endif /* __keyword_recognizer_h__ */
 
3379
 
 
3380
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3599
3381
namespace Puma {
3600
3382
 
3601
3383
 
 
3384
 
 
3385
#line 3386 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3602
3386
} // closed Puma
 
3387
class CCExprResolve;
 
3388
class CExprResolve;
3603
3389
class WinIfExists;
3604
3390
class WinImportHandler;
3605
3391
class WinMacros;
3606
 
class CMatchSyntax;
3607
 
class ExtGnu;
 
3392
class WinAsm;
 
3393
class WinDeclSpecs;
 
3394
class WinMemberExplSpec;
 
3395
class WinTypeKeywords;
 
3396
class WinFriend;
3608
3397
class ExtAC;
3609
3398
class ExtACBuilderCoupling;
3610
3399
class ExtACSyntaxCoupling;
3611
3400
class ExtACTree;
3612
3401
class ExtACKeywords;
3613
 
class WinAsm;
3614
 
class WinDeclSpecs;
3615
 
class WinMemberExplSpec;
3616
 
class WinTypeKeywords;
 
3402
class ExtGnu;
3617
3403
class PragmaOnceUnitState;
3618
3404
class PragmaOnce;
3619
 
class CCExprResolve;
3620
 
class CExprResolve;
 
3405
class CMatchSyntax;
3621
3406
namespace Puma {
3622
 
class CRecognizer {  friend class ::WinIfExists;
 
3407
 
 
3408
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3409
class CRecognizer {
 
3410
#line 3411 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3411
  friend class ::CCExprResolve;
 
3412
  friend class ::CExprResolve;
 
3413
  friend class ::WinIfExists;
3623
3414
  friend class ::WinImportHandler;
3624
3415
  friend class ::WinMacros;
3625
 
  friend class ::CMatchSyntax;
3626
 
  friend class ::ExtGnu;
 
3416
  friend class ::WinAsm;
 
3417
  friend class ::WinDeclSpecs;
 
3418
  friend class ::WinMemberExplSpec;
 
3419
  friend class ::WinTypeKeywords;
 
3420
  friend class ::WinFriend;
3627
3421
  friend class ::ExtAC;
3628
3422
  friend class ::ExtACBuilderCoupling;
3629
3423
  friend class ::ExtACSyntaxCoupling;
3630
3424
  friend class ::ExtACTree;
3631
3425
  friend class ::ExtACKeywords;
3632
 
  friend class ::WinAsm;
3633
 
  friend class ::WinDeclSpecs;
3634
 
  friend class ::WinMemberExplSpec;
3635
 
  friend class ::WinTypeKeywords;
 
3426
  friend class ::ExtGnu;
3636
3427
  friend class ::PragmaOnceUnitState;
3637
3428
  friend class ::PragmaOnce;
3638
 
  friend class ::CCExprResolve;
3639
 
  friend class ::CExprResolve;
3640
 
 
3641
 
  CScanBuffer scan_buffer;
 
3429
  friend class ::CMatchSyntax;
 
3430
 
 
3431
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
3432
 
3642
3433
  CCommentRecognizer comment_recognizer;
3643
3434
  Array<KeywordRecognizer*> additional_keyword_recognizers;
3644
3435
 
3645
3436
public:
 
3437
  CScanBuffer scan_buffer; // TODO: temporarily made public!
 
3438
 
3646
3439
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
3647
 
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE, 
 
3440
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE, 
3648
3441
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
3649
3442
 
3650
 
  CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
 
3443
  CRecognizer () : directives(true), wildcards (false),
 
3444
    aspectc (false), macro_ops (false),
3651
3445
    std_c (true), std_cplusplus (true) {}
3652
 
  CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
3653
 
    macro_ops (false) { setup (buffer); }
 
3446
  void allow_directives (bool flag = true)    { directives = flag; }
3654
3447
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
3655
3448
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
3656
3449
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
3657
3450
  void allow_std_c (bool flag = true)         { std_c = flag; }
3658
3451
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
3659
 
  void setup (ScanBuffer &buffer);
 
3452
  void setup ();
3660
3453
  int recognize (Lang &lang, int &expr, int &len);
3661
 
  Mode mode () { return scan_mode; }
3662
 
  bool new_line () const { return scan_buffer.new_line (); }
 
3454
  Mode mode () const { return scan_mode; }
 
3455
  void mode (Mode mode) { scan_mode = mode; }
3663
3456
  CScanBuffer& buffer () { return scan_buffer; }
3664
3457
  void addRecognizer(KeywordRecognizer &recognizer) 
3665
3458
   { additional_keyword_recognizers.append(&recognizer); }
3666
3459
 
3667
3460
private:
3668
 
  static MappedOrangeRecognizer<CScanBuffer> string_recognizer;   
3669
3461
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
3670
3462
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
3671
3463
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
3672
 
  static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
3673
3464
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
3674
3465
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
3675
3466
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
3676
3467
 
3677
3468
  Mode scan_mode;
3678
 
  bool check_directive;
 
3469
  bool directives;
3679
3470
  bool wildcards;
3680
3471
  bool aspectc;
3681
3472
  bool macro_ops;
3687
3478
} // namespace Puma
3688
3479
 
3689
3480
#endif /* __c_recognizer_h__ */
 
3481
 
 
3482
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3690
3483
// This file is part of PUMA.
3691
3484
// Copyright (C) 1999-2003  The PUMA developer team.
3692
3485
//                                                                
3711
3504
// Tokenizer interface. Tokenizer read input from a "Source" and
3712
3505
// form tokens, which used to fill a "Unit".
3713
3506
 
 
3507
 
 
3508
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Source.h"
3714
3509
// This file is part of PUMA.
3715
3510
// Copyright (C) 1999-2003  The PUMA developer team.
3716
3511
//                                                                
3735
3530
namespace Puma {
3736
3531
 
3737
3532
 
 
3533
 
 
3534
#line 3535 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3738
3535
} // closed Puma
 
3536
class CCExprResolve;
 
3537
class CExprResolve;
3739
3538
class WinIfExists;
3740
3539
class WinImportHandler;
3741
3540
class WinMacros;
3742
 
class CMatchSyntax;
3743
 
class ExtGnu;
 
3541
class WinAsm;
 
3542
class WinDeclSpecs;
 
3543
class WinMemberExplSpec;
 
3544
class WinTypeKeywords;
 
3545
class WinFriend;
3744
3546
class ExtAC;
3745
3547
class ExtACBuilderCoupling;
3746
3548
class ExtACSyntaxCoupling;
3747
3549
class ExtACTree;
3748
3550
class ExtACKeywords;
3749
 
class WinAsm;
3750
 
class WinDeclSpecs;
3751
 
class WinMemberExplSpec;
3752
 
class WinTypeKeywords;
 
3551
class ExtGnu;
3753
3552
class PragmaOnceUnitState;
3754
3553
class PragmaOnce;
3755
 
class CCExprResolve;
3756
 
class CExprResolve;
 
3554
class CMatchSyntax;
3757
3555
namespace Puma {
3758
 
class Source {  friend class ::WinIfExists;
 
3556
 
 
3557
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Source.h"
 
3558
class Source {
 
3559
#line 3560 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3560
  friend class ::CCExprResolve;
 
3561
  friend class ::CExprResolve;
 
3562
  friend class ::WinIfExists;
3759
3563
  friend class ::WinImportHandler;
3760
3564
  friend class ::WinMacros;
3761
 
  friend class ::CMatchSyntax;
3762
 
  friend class ::ExtGnu;
 
3565
  friend class ::WinAsm;
 
3566
  friend class ::WinDeclSpecs;
 
3567
  friend class ::WinMemberExplSpec;
 
3568
  friend class ::WinTypeKeywords;
 
3569
  friend class ::WinFriend;
3763
3570
  friend class ::ExtAC;
3764
3571
  friend class ::ExtACBuilderCoupling;
3765
3572
  friend class ::ExtACSyntaxCoupling;
3766
3573
  friend class ::ExtACTree;
3767
3574
  friend class ::ExtACKeywords;
3768
 
  friend class ::WinAsm;
3769
 
  friend class ::WinDeclSpecs;
3770
 
  friend class ::WinMemberExplSpec;
3771
 
  friend class ::WinTypeKeywords;
 
3575
  friend class ::ExtGnu;
3772
3576
  friend class ::PragmaOnceUnitState;
3773
3577
  friend class ::PragmaOnce;
3774
 
  friend class ::CCExprResolve;
3775
 
  friend class ::CExprResolve;
 
3578
  friend class ::CMatchSyntax;
 
3579
 
 
3580
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Source.h"
3776
3581
 
3777
3582
public:
3778
3583
  Source () {}
3785
3590
} // namespace Puma
3786
3591
 
3787
3592
#endif /* __source_h__ */
 
3593
 
 
3594
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3788
3595
namespace Puma {
3789
3596
 
3790
3597
 
 
3598
 
 
3599
#line 3600 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3791
3600
} // closed Puma
 
3601
class CCExprResolve;
 
3602
class CExprResolve;
3792
3603
class WinIfExists;
3793
3604
class WinImportHandler;
3794
3605
class WinMacros;
3795
 
class CMatchSyntax;
3796
 
class ExtGnu;
 
3606
class WinAsm;
 
3607
class WinDeclSpecs;
 
3608
class WinMemberExplSpec;
 
3609
class WinTypeKeywords;
 
3610
class WinFriend;
3797
3611
class ExtAC;
3798
3612
class ExtACBuilderCoupling;
3799
3613
class ExtACSyntaxCoupling;
3800
3614
class ExtACTree;
3801
3615
class ExtACKeywords;
3802
 
class WinAsm;
3803
 
class WinDeclSpecs;
3804
 
class WinMemberExplSpec;
3805
 
class WinTypeKeywords;
 
3616
class ExtGnu;
3806
3617
class PragmaOnceUnitState;
3807
3618
class PragmaOnce;
3808
 
class CCExprResolve;
3809
 
class CExprResolve;
 
3619
class CMatchSyntax;
3810
3620
namespace Puma {
3811
 
class Tokenizer {  friend class ::WinIfExists;
 
3621
 
 
3622
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
3623
class Tokenizer {
 
3624
#line 3625 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3625
  friend class ::CCExprResolve;
 
3626
  friend class ::CExprResolve;
 
3627
  friend class ::WinIfExists;
3812
3628
  friend class ::WinImportHandler;
3813
3629
  friend class ::WinMacros;
3814
 
  friend class ::CMatchSyntax;
3815
 
  friend class ::ExtGnu;
 
3630
  friend class ::WinAsm;
 
3631
  friend class ::WinDeclSpecs;
 
3632
  friend class ::WinMemberExplSpec;
 
3633
  friend class ::WinTypeKeywords;
 
3634
  friend class ::WinFriend;
3816
3635
  friend class ::ExtAC;
3817
3636
  friend class ::ExtACBuilderCoupling;
3818
3637
  friend class ::ExtACSyntaxCoupling;
3819
3638
  friend class ::ExtACTree;
3820
3639
  friend class ::ExtACKeywords;
3821
 
  friend class ::WinAsm;
3822
 
  friend class ::WinDeclSpecs;
3823
 
  friend class ::WinMemberExplSpec;
3824
 
  friend class ::WinTypeKeywords;
 
3640
  friend class ::ExtGnu;
3825
3641
  friend class ::PragmaOnceUnitState;
3826
3642
  friend class ::PragmaOnce;
3827
 
  friend class ::CCExprResolve;
3828
 
  friend class ::CExprResolve;
 
3643
  friend class ::CMatchSyntax;
 
3644
 
 
3645
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3829
3646
 
3830
3647
public:
3831
3648
  virtual ~Tokenizer () {}
3836
3653
} // namespace Puma
3837
3654
 
3838
3655
#endif /* __Tokenizer_h__ */
 
3656
 
 
3657
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3839
3658
// This file is part of PUMA.
3840
3659
// Copyright (C) 1999-2003  The PUMA developer team.
3841
3660
//                                                                
3869
3688
// Specializations of this class could either build and print error
3870
3689
// messages or collect them for a later processing.
3871
3690
 
 
3691
 
 
3692
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3872
3693
// This file is part of PUMA.
3873
3694
// Copyright (C) 1999-2003  The PUMA developer team.
3874
3695
//                                                                
3895
3716
namespace Puma {
3896
3717
 
3897
3718
 
 
3719
 
 
3720
#line 3721 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3898
3721
} // closed Puma
 
3722
class CCExprResolve;
 
3723
class CExprResolve;
3899
3724
class WinIfExists;
3900
3725
class WinImportHandler;
3901
3726
class WinMacros;
3902
 
class CMatchSyntax;
3903
 
class ExtGnu;
 
3727
class WinAsm;
 
3728
class WinDeclSpecs;
 
3729
class WinMemberExplSpec;
 
3730
class WinTypeKeywords;
 
3731
class WinFriend;
3904
3732
class ExtAC;
3905
3733
class ExtACBuilderCoupling;
3906
3734
class ExtACSyntaxCoupling;
3907
3735
class ExtACTree;
3908
3736
class ExtACKeywords;
3909
 
class WinAsm;
3910
 
class WinDeclSpecs;
3911
 
class WinMemberExplSpec;
3912
 
class WinTypeKeywords;
 
3737
class ExtGnu;
3913
3738
class PragmaOnceUnitState;
3914
3739
class PragmaOnce;
3915
 
class CCExprResolve;
3916
 
class CExprResolve;
 
3740
class CMatchSyntax;
3917
3741
namespace Puma {
3918
 
class ErrorSeverity {  friend class ::WinIfExists;
 
3742
 
 
3743
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
3744
class ErrorSeverity {
 
3745
#line 3746 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3746
  friend class ::CCExprResolve;
 
3747
  friend class ::CExprResolve;
 
3748
  friend class ::WinIfExists;
3919
3749
  friend class ::WinImportHandler;
3920
3750
  friend class ::WinMacros;
3921
 
  friend class ::CMatchSyntax;
3922
 
  friend class ::ExtGnu;
 
3751
  friend class ::WinAsm;
 
3752
  friend class ::WinDeclSpecs;
 
3753
  friend class ::WinMemberExplSpec;
 
3754
  friend class ::WinTypeKeywords;
 
3755
  friend class ::WinFriend;
3923
3756
  friend class ::ExtAC;
3924
3757
  friend class ::ExtACBuilderCoupling;
3925
3758
  friend class ::ExtACSyntaxCoupling;
3926
3759
  friend class ::ExtACTree;
3927
3760
  friend class ::ExtACKeywords;
3928
 
  friend class ::WinAsm;
3929
 
  friend class ::WinDeclSpecs;
3930
 
  friend class ::WinMemberExplSpec;
3931
 
  friend class ::WinTypeKeywords;
 
3761
  friend class ::ExtGnu;
3932
3762
  friend class ::PragmaOnceUnitState;
3933
3763
  friend class ::PragmaOnce;
3934
 
  friend class ::CCExprResolve;
3935
 
  friend class ::CExprResolve;
 
3764
  friend class ::CMatchSyntax;
 
3765
 
 
3766
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3936
3767
 
3937
3768
  unsigned short _severity;
3938
3769
  const char *_text;
3971
3802
} // namespace Puma
3972
3803
 
3973
3804
#endif /* __error_severity_h__ */
 
3805
 
 
3806
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3974
3807
namespace Puma {
3975
3808
 
3976
3809
 
 
3810
 
 
3811
#line 3812 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
3977
3812
} // closed Puma
 
3813
class CCExprResolve;
 
3814
class CExprResolve;
3978
3815
class WinIfExists;
3979
3816
class WinImportHandler;
3980
3817
class WinMacros;
3981
 
class CMatchSyntax;
3982
 
class ExtGnu;
 
3818
class WinAsm;
 
3819
class WinDeclSpecs;
 
3820
class WinMemberExplSpec;
 
3821
class WinTypeKeywords;
 
3822
class WinFriend;
3983
3823
class ExtAC;
3984
3824
class ExtACBuilderCoupling;
3985
3825
class ExtACSyntaxCoupling;
3986
3826
class ExtACTree;
3987
3827
class ExtACKeywords;
3988
 
class WinAsm;
3989
 
class WinDeclSpecs;
3990
 
class WinMemberExplSpec;
3991
 
class WinTypeKeywords;
 
3828
class ExtGnu;
3992
3829
class PragmaOnceUnitState;
3993
3830
class PragmaOnce;
3994
 
class CCExprResolve;
3995
 
class CExprResolve;
 
3831
class CMatchSyntax;
3996
3832
namespace Puma {
3997
 
class ErrorSink {  friend class ::WinIfExists;
 
3833
 
 
3834
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
3835
class ErrorSink {
 
3836
#line 3837 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3837
  friend class ::CCExprResolve;
 
3838
  friend class ::CExprResolve;
 
3839
  friend class ::WinIfExists;
3998
3840
  friend class ::WinImportHandler;
3999
3841
  friend class ::WinMacros;
4000
 
  friend class ::CMatchSyntax;
4001
 
  friend class ::ExtGnu;
 
3842
  friend class ::WinAsm;
 
3843
  friend class ::WinDeclSpecs;
 
3844
  friend class ::WinMemberExplSpec;
 
3845
  friend class ::WinTypeKeywords;
 
3846
  friend class ::WinFriend;
4002
3847
  friend class ::ExtAC;
4003
3848
  friend class ::ExtACBuilderCoupling;
4004
3849
  friend class ::ExtACSyntaxCoupling;
4005
3850
  friend class ::ExtACTree;
4006
3851
  friend class ::ExtACKeywords;
4007
 
  friend class ::WinAsm;
4008
 
  friend class ::WinDeclSpecs;
4009
 
  friend class ::WinMemberExplSpec;
4010
 
  friend class ::WinTypeKeywords;
 
3852
  friend class ::ExtGnu;
4011
3853
  friend class ::PragmaOnceUnitState;
4012
3854
  friend class ::PragmaOnce;
4013
 
  friend class ::CCExprResolve;
4014
 
  friend class ::CExprResolve;
 
3855
  friend class ::CMatchSyntax;
 
3856
 
 
3857
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
4015
3858
 
4016
3859
public:
4017
3860
  virtual ~ErrorSink () {}
4035
3878
} // namespace Puma
4036
3879
 
4037
3880
#endif /* __error_sink_h__ */
 
3881
 
 
3882
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4038
3883
// This file is part of PUMA.
4039
3884
// Copyright (C) 1999-2003  The PUMA developer team.
4040
3885
//                                                                
4059
3904
// Class Config provides evaluation of configuration 
4060
3905
// information from file or command line.
4061
3906
 
 
3907
 
 
3908
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Flags.h"
4062
3909
// This file is part of PUMA.
4063
3910
// Copyright (C) 1999-2003  The PUMA developer team.
4064
3911
//                                                                
4083
3930
namespace Puma {
4084
3931
 
4085
3932
 
 
3933
 
 
3934
#line 3935 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4086
3935
} // closed Puma
 
3936
class CCExprResolve;
 
3937
class CExprResolve;
4087
3938
class WinIfExists;
4088
3939
class WinImportHandler;
4089
3940
class WinMacros;
4090
 
class CMatchSyntax;
4091
 
class ExtGnu;
 
3941
class WinAsm;
 
3942
class WinDeclSpecs;
 
3943
class WinMemberExplSpec;
 
3944
class WinTypeKeywords;
 
3945
class WinFriend;
4092
3946
class ExtAC;
4093
3947
class ExtACBuilderCoupling;
4094
3948
class ExtACSyntaxCoupling;
4095
3949
class ExtACTree;
4096
3950
class ExtACKeywords;
4097
 
class WinAsm;
4098
 
class WinDeclSpecs;
4099
 
class WinMemberExplSpec;
4100
 
class WinTypeKeywords;
 
3951
class ExtGnu;
4101
3952
class PragmaOnceUnitState;
4102
3953
class PragmaOnce;
4103
 
class CCExprResolve;
4104
 
class CExprResolve;
 
3954
class CMatchSyntax;
4105
3955
namespace Puma {
4106
 
class Flags {  friend class ::WinIfExists;
 
3956
 
 
3957
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Flags.h"
 
3958
class Flags {
 
3959
#line 3960 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
3960
  friend class ::CCExprResolve;
 
3961
  friend class ::CExprResolve;
 
3962
  friend class ::WinIfExists;
4107
3963
  friend class ::WinImportHandler;
4108
3964
  friend class ::WinMacros;
4109
 
  friend class ::CMatchSyntax;
4110
 
  friend class ::ExtGnu;
 
3965
  friend class ::WinAsm;
 
3966
  friend class ::WinDeclSpecs;
 
3967
  friend class ::WinMemberExplSpec;
 
3968
  friend class ::WinTypeKeywords;
 
3969
  friend class ::WinFriend;
4111
3970
  friend class ::ExtAC;
4112
3971
  friend class ::ExtACBuilderCoupling;
4113
3972
  friend class ::ExtACSyntaxCoupling;
4114
3973
  friend class ::ExtACTree;
4115
3974
  friend class ::ExtACKeywords;
4116
 
  friend class ::WinAsm;
4117
 
  friend class ::WinDeclSpecs;
4118
 
  friend class ::WinMemberExplSpec;
4119
 
  friend class ::WinTypeKeywords;
 
3975
  friend class ::ExtGnu;
4120
3976
  friend class ::PragmaOnceUnitState;
4121
3977
  friend class ::PragmaOnce;
4122
 
  friend class ::CCExprResolve;
4123
 
  friend class ::CExprResolve;
 
3978
  friend class ::CMatchSyntax;
 
3979
 
 
3980
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Flags.h"
4124
3981
 
4125
3982
public:
4126
3983
  enum Flag {
4183
4040
} // namespace Puma
4184
4041
 
4185
4042
#endif /* __Flags_h__ */
 
4043
 
 
4044
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4186
4045
// This file is part of PUMA.
4187
4046
// Copyright (C) 1999-2003  The PUMA developer team.
4188
4047
//                                                                
4204
4063
#ifndef __ConfOption_h__
4205
4064
#define __ConfOption_h__
4206
4065
 
 
4066
 
 
4067
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4207
4068
#include <stdlib.h>
4208
4069
 
4209
4070
namespace Puma {
4210
4071
 
4211
4072
 
 
4073
 
 
4074
#line 4075 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4212
4075
} // closed Puma
 
4076
class CCExprResolve;
 
4077
class CExprResolve;
4213
4078
class WinIfExists;
4214
4079
class WinImportHandler;
4215
4080
class WinMacros;
4216
 
class CMatchSyntax;
4217
 
class ExtGnu;
 
4081
class WinAsm;
 
4082
class WinDeclSpecs;
 
4083
class WinMemberExplSpec;
 
4084
class WinTypeKeywords;
 
4085
class WinFriend;
4218
4086
class ExtAC;
4219
4087
class ExtACBuilderCoupling;
4220
4088
class ExtACSyntaxCoupling;
4221
4089
class ExtACTree;
4222
4090
class ExtACKeywords;
4223
 
class WinAsm;
4224
 
class WinDeclSpecs;
4225
 
class WinMemberExplSpec;
4226
 
class WinTypeKeywords;
 
4091
class ExtGnu;
4227
4092
class PragmaOnceUnitState;
4228
4093
class PragmaOnce;
4229
 
class CCExprResolve;
4230
 
class CExprResolve;
 
4094
class CMatchSyntax;
4231
4095
namespace Puma {
4232
 
class ConfOption {  friend class ::WinIfExists;
 
4096
 
 
4097
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
4098
class ConfOption {
 
4099
#line 4100 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4100
  friend class ::CCExprResolve;
 
4101
  friend class ::CExprResolve;
 
4102
  friend class ::WinIfExists;
4233
4103
  friend class ::WinImportHandler;
4234
4104
  friend class ::WinMacros;
4235
 
  friend class ::CMatchSyntax;
4236
 
  friend class ::ExtGnu;
 
4105
  friend class ::WinAsm;
 
4106
  friend class ::WinDeclSpecs;
 
4107
  friend class ::WinMemberExplSpec;
 
4108
  friend class ::WinTypeKeywords;
 
4109
  friend class ::WinFriend;
4237
4110
  friend class ::ExtAC;
4238
4111
  friend class ::ExtACBuilderCoupling;
4239
4112
  friend class ::ExtACSyntaxCoupling;
4240
4113
  friend class ::ExtACTree;
4241
4114
  friend class ::ExtACKeywords;
4242
 
  friend class ::WinAsm;
4243
 
  friend class ::WinDeclSpecs;
4244
 
  friend class ::WinMemberExplSpec;
4245
 
  friend class ::WinTypeKeywords;
 
4115
  friend class ::ExtGnu;
4246
4116
  friend class ::PragmaOnceUnitState;
4247
4117
  friend class ::PragmaOnce;
4248
 
  friend class ::CCExprResolve;
4249
 
  friend class ::CExprResolve;
 
4118
  friend class ::CMatchSyntax;
 
4119
 
 
4120
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ConfOption.h"
4250
4121
 
4251
4122
  const char *_name;
4252
4123
  Array<const char *> _args;
4291
4162
} // namespace Puma
4292
4163
 
4293
4164
#endif /* __ConfOption_h__ */
 
4165
 
 
4166
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4294
4167
// This file is part of PUMA.
4295
4168
// Copyright (C) 1999-2003  The PUMA developer team.
4296
4169
//                                                                
4317
4190
// The ErrorStream can be reset to it's initial state.
4318
4191
 
4319
4192
#include <sstream>
 
4193
 
 
4194
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4320
4195
using namespace std;
4321
4196
 
4322
4197
namespace Puma {
4323
4198
 
4324
4199
 
 
4200
 
 
4201
#line 4202 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4325
4202
} // closed Puma
 
4203
class CCExprResolve;
 
4204
class CExprResolve;
4326
4205
class WinIfExists;
4327
4206
class WinImportHandler;
4328
4207
class WinMacros;
4329
 
class CMatchSyntax;
4330
 
class ExtGnu;
 
4208
class WinAsm;
 
4209
class WinDeclSpecs;
 
4210
class WinMemberExplSpec;
 
4211
class WinTypeKeywords;
 
4212
class WinFriend;
4331
4213
class ExtAC;
4332
4214
class ExtACBuilderCoupling;
4333
4215
class ExtACSyntaxCoupling;
4334
4216
class ExtACTree;
4335
4217
class ExtACKeywords;
4336
 
class WinAsm;
4337
 
class WinDeclSpecs;
4338
 
class WinMemberExplSpec;
4339
 
class WinTypeKeywords;
 
4218
class ExtGnu;
4340
4219
class PragmaOnceUnitState;
4341
4220
class PragmaOnce;
4342
 
class CCExprResolve;
4343
 
class CExprResolve;
 
4221
class CMatchSyntax;
4344
4222
namespace Puma {
4345
 
class ErrorStream : public ErrorSink {  friend class ::WinIfExists;
 
4223
 
 
4224
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
4225
class ErrorStream : public ErrorSink {
 
4226
#line 4227 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4227
  friend class ::CCExprResolve;
 
4228
  friend class ::CExprResolve;
 
4229
  friend class ::WinIfExists;
4346
4230
  friend class ::WinImportHandler;
4347
4231
  friend class ::WinMacros;
4348
 
  friend class ::CMatchSyntax;
4349
 
  friend class ::ExtGnu;
 
4232
  friend class ::WinAsm;
 
4233
  friend class ::WinDeclSpecs;
 
4234
  friend class ::WinMemberExplSpec;
 
4235
  friend class ::WinTypeKeywords;
 
4236
  friend class ::WinFriend;
4350
4237
  friend class ::ExtAC;
4351
4238
  friend class ::ExtACBuilderCoupling;
4352
4239
  friend class ::ExtACSyntaxCoupling;
4353
4240
  friend class ::ExtACTree;
4354
4241
  friend class ::ExtACKeywords;
4355
 
  friend class ::WinAsm;
4356
 
  friend class ::WinDeclSpecs;
4357
 
  friend class ::WinMemberExplSpec;
4358
 
  friend class ::WinTypeKeywords;
 
4242
  friend class ::ExtGnu;
4359
4243
  friend class ::PragmaOnceUnitState;
4360
4244
  friend class ::PragmaOnce;
4361
 
  friend class ::CCExprResolve;
4362
 
  friend class ::CExprResolve;
 
4245
  friend class ::CMatchSyntax;
 
4246
 
 
4247
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
4363
4248
 
4364
4249
  ostream *_ostream;
4365
4250
  ErrorSeverity _max_severity;
4401
4286
} // namespace Puma
4402
4287
 
4403
4288
#endif /* __error_stream_h__ */
 
4289
 
 
4290
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4404
4291
// This file is part of PUMA.
4405
4292
// Copyright (C) 1999-2003  The PUMA developer team.
4406
4293
//                                                                
4422
4309
#ifndef __OptsParser_h__
4423
4310
#define __OptsParser_h__
4424
4311
 
 
4312
 
 
4313
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4425
4314
// This file is part of PUMA.
4426
4315
// Copyright (C) 1999-2003  The PUMA developer team.
4427
4316
//                                                                
4443
4332
#ifndef __SimpleParser_h__
4444
4333
#define __SimpleParser_h__
4445
4334
 
 
4335
 
 
4336
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4446
4337
#include <vector>
4447
4338
using namespace std;
4448
4339
 
4449
4340
namespace Puma {
4450
4341
 
4451
4342
 
 
4343
/** 
 
4344
 * Simple string parser. 
 
4345
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
4346
 */
 
4347
 
 
4348
#line 4349 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4452
4349
} // closed Puma
 
4350
class CCExprResolve;
 
4351
class CExprResolve;
4453
4352
class WinIfExists;
4454
4353
class WinImportHandler;
4455
4354
class WinMacros;
4456
 
class CMatchSyntax;
4457
 
class ExtGnu;
 
4355
class WinAsm;
 
4356
class WinDeclSpecs;
 
4357
class WinMemberExplSpec;
 
4358
class WinTypeKeywords;
 
4359
class WinFriend;
4458
4360
class ExtAC;
4459
4361
class ExtACBuilderCoupling;
4460
4362
class ExtACSyntaxCoupling;
4461
4363
class ExtACTree;
4462
4364
class ExtACKeywords;
4463
 
class WinAsm;
4464
 
class WinDeclSpecs;
4465
 
class WinMemberExplSpec;
4466
 
class WinTypeKeywords;
 
4365
class ExtGnu;
4467
4366
class PragmaOnceUnitState;
4468
4367
class PragmaOnce;
4469
 
class CCExprResolve;
4470
 
class CExprResolve;
 
4368
class CMatchSyntax;
4471
4369
namespace Puma {
4472
 
class SimpleParser {  friend class ::WinIfExists;
 
4370
 
 
4371
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
4372
class SimpleParser {
 
4373
#line 4374 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4374
  friend class ::CCExprResolve;
 
4375
  friend class ::CExprResolve;
 
4376
  friend class ::WinIfExists;
4473
4377
  friend class ::WinImportHandler;
4474
4378
  friend class ::WinMacros;
4475
 
  friend class ::CMatchSyntax;
4476
 
  friend class ::ExtGnu;
 
4379
  friend class ::WinAsm;
 
4380
  friend class ::WinDeclSpecs;
 
4381
  friend class ::WinMemberExplSpec;
 
4382
  friend class ::WinTypeKeywords;
 
4383
  friend class ::WinFriend;
4477
4384
  friend class ::ExtAC;
4478
4385
  friend class ::ExtACBuilderCoupling;
4479
4386
  friend class ::ExtACSyntaxCoupling;
4480
4387
  friend class ::ExtACTree;
4481
4388
  friend class ::ExtACKeywords;
4482
 
  friend class ::WinAsm;
4483
 
  friend class ::WinDeclSpecs;
4484
 
  friend class ::WinMemberExplSpec;
4485
 
  friend class ::WinTypeKeywords;
 
4389
  friend class ::ExtGnu;
4486
4390
  friend class ::PragmaOnceUnitState;
4487
4391
  friend class ::PragmaOnce;
4488
 
  friend class ::CCExprResolve;
4489
 
  friend class ::CExprResolve;
 
4392
  friend class ::CMatchSyntax;
 
4393
 
 
4394
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4490
4395
 
4491
4396
public:
4492
 
  SimpleParser() {}
4493
 
  ~SimpleParser() {}
4494
 
   
4495
 
  static int tokenize (const string &, vector<string> &, 
4496
 
                       const string &delimiters = " ");
4497
 
  static string strip (const string &);
 
4397
  /**
 
4398
   * Remove enclosing double-quotes from a string.
 
4399
   * \param str The string to strip.
 
4400
   * \return String without the enclosing double-quotes.
 
4401
   */
 
4402
  static string strip (const string& str);
 
4403
  /**
 
4404
   * Splits a given string into tokens recognized by the given delimiters.
 
4405
   * \param str The string to split.
 
4406
   * \param tokens A vector for the tokens.
 
4407
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
4408
   * \return Number of recognized tokens.
 
4409
   */
 
4410
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
4411
 
 
4412
private:
 
4413
  /**
 
4414
   * Get the position of the next token.
 
4415
   * \param line The string to tokenize.
 
4416
   * \param delimiters A string with the token delimiters.
 
4417
   * \param pos The current position in the string.
 
4418
   * \param lastPos The last position in the string.
 
4419
   * \return The position of the next token.
 
4420
   */
 
4421
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
4422
  /**
 
4423
   * Get the begin of the next token.
 
4424
   * \param line The string to tokenize.
 
4425
   * \param delimiters A string with the token delimiters.
 
4426
   * \param pos The current position in the string.
 
4427
   * \return The begin of the next token.
 
4428
   */
 
4429
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
4430
  /**
 
4431
   * Get the end of the next token.
 
4432
   * \param line The string to tokenize.
 
4433
   * \param delimiters A string with the token delimiters.
 
4434
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
4435
   * \return The end of the next token.
 
4436
   */
 
4437
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
4498
4438
};
4499
4439
 
4500
4440
 
4501
4441
} // namespace Puma
4502
4442
 
4503
4443
#endif /* __SimpleParser_h__ */
 
4444
 
 
4445
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4504
4446
using namespace std;
4505
4447
 
4506
4448
namespace Puma {
4507
4449
 
4508
4450
 
 
4451
/** \brief The %Options %Parser searches command line parameters for options and
 
4452
 *  handles their option arguments, if applicable.
 
4453
 */
 
4454
 
 
4455
#line 4456 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4509
4456
} // closed Puma
 
4457
class CCExprResolve;
 
4458
class CExprResolve;
4510
4459
class WinIfExists;
4511
4460
class WinImportHandler;
4512
4461
class WinMacros;
4513
 
class CMatchSyntax;
4514
 
class ExtGnu;
 
4462
class WinAsm;
 
4463
class WinDeclSpecs;
 
4464
class WinMemberExplSpec;
 
4465
class WinTypeKeywords;
 
4466
class WinFriend;
4515
4467
class ExtAC;
4516
4468
class ExtACBuilderCoupling;
4517
4469
class ExtACSyntaxCoupling;
4518
4470
class ExtACTree;
4519
4471
class ExtACKeywords;
4520
 
class WinAsm;
4521
 
class WinDeclSpecs;
4522
 
class WinMemberExplSpec;
4523
 
class WinTypeKeywords;
 
4472
class ExtGnu;
4524
4473
class PragmaOnceUnitState;
4525
4474
class PragmaOnce;
4526
 
class CCExprResolve;
4527
 
class CExprResolve;
 
4475
class CMatchSyntax;
4528
4476
namespace Puma {
4529
 
class OptsParser : public SimpleParser {  friend class ::WinIfExists;
 
4477
 
 
4478
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
4479
class OptsParser : public SimpleParser {
 
4480
#line 4481 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4481
  friend class ::CCExprResolve;
 
4482
  friend class ::CExprResolve;
 
4483
  friend class ::WinIfExists;
4530
4484
  friend class ::WinImportHandler;
4531
4485
  friend class ::WinMacros;
4532
 
  friend class ::CMatchSyntax;
4533
 
  friend class ::ExtGnu;
 
4486
  friend class ::WinAsm;
 
4487
  friend class ::WinDeclSpecs;
 
4488
  friend class ::WinMemberExplSpec;
 
4489
  friend class ::WinTypeKeywords;
 
4490
  friend class ::WinFriend;
4534
4491
  friend class ::ExtAC;
4535
4492
  friend class ::ExtACBuilderCoupling;
4536
4493
  friend class ::ExtACSyntaxCoupling;
4537
4494
  friend class ::ExtACTree;
4538
4495
  friend class ::ExtACKeywords;
4539
 
  friend class ::WinAsm;
4540
 
  friend class ::WinDeclSpecs;
4541
 
  friend class ::WinMemberExplSpec;
4542
 
  friend class ::WinTypeKeywords;
 
4496
  friend class ::ExtGnu;
4543
4497
  friend class ::PragmaOnceUnitState;
4544
4498
  friend class ::PragmaOnce;
4545
 
  friend class ::CCExprResolve;
4546
 
  friend class ::CExprResolve;
4547
 
 
 
4499
  friend class ::CMatchSyntax;
 
4500
 
 
4501
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
4502
 
 
4503
  
 
4504
  
 
4505
  /** \brief Vector holding the commandline parameters. 
 
4506
   *  
 
4507
   *  This vector is filled in the constructor
 
4508
   */
4548
4509
  vector<string> m_argv;
 
4510
 
 
4511
  /** \brief Position of current parameter analyzed by the 
 
4512
   *  options parser.
 
4513
   */
4549
4514
  unsigned int m_curarg;
 
4515
  
 
4516
  /** \brief The increment added to m_curarg used to get to the next 
 
4517
   *  entry of m_argv which shall be analysed.
 
4518
   */
4550
4519
  unsigned int m_tonext;
 
4520
  
 
4521
  /** \brief %Option number of currently processed element of m_argv
 
4522
   */
4551
4523
  int m_number;
 
4524
  
 
4525
  /** \brief Name of current option
 
4526
   */
 
4527
  string m_opt;
4552
4528
 
 
4529
  /** \brief Value of current option argument
 
4530
   */
4553
4531
  string m_arg;
4554
 
  string m_opt;
 
4532
  
4555
4533
   
4556
4534
public:
4557
4535
  
4558
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
4559
 
  
4560
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
4561
 
  
4562
 
  struct Option {  friend class ::WinIfExists;
 
4536
  /** \enum
 
4537
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
4538
   */
 
4539
  enum {
 
4540
     NOARG =-4, /**< %Option has no argument */
 
4541
     ERR = -3, /**< Error when parsing option */
 
4542
     NOOPTION = -2, /**< Command line parameter is not an option */
 
4543
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
4544
     FINISH = 0 /**< All options are handled */
 
4545
  };
 
4546
  
 
4547
  /** \enum
 
4548
   *  Type of argument associated to an option  
 
4549
   */
 
4550
  enum ArgType { 
 
4551
     AT_NONE = 0, /**< %Option receives no argument */
 
4552
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
4553
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
4554
  };
 
4555
  
 
4556
  /** \struct
 
4557
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
4558
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
4559
   */
 
4560
  struct Option {
 
4561
#line 4562 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4562
  friend class ::CCExprResolve;
 
4563
  friend class ::CExprResolve;
 
4564
  friend class ::WinIfExists;
4563
4565
  friend class ::WinImportHandler;
4564
4566
  friend class ::WinMacros;
4565
 
  friend class ::CMatchSyntax;
4566
 
  friend class ::ExtGnu;
 
4567
  friend class ::WinAsm;
 
4568
  friend class ::WinDeclSpecs;
 
4569
  friend class ::WinMemberExplSpec;
 
4570
  friend class ::WinTypeKeywords;
 
4571
  friend class ::WinFriend;
4567
4572
  friend class ::ExtAC;
4568
4573
  friend class ::ExtACBuilderCoupling;
4569
4574
  friend class ::ExtACSyntaxCoupling;
4570
4575
  friend class ::ExtACTree;
4571
4576
  friend class ::ExtACKeywords;
4572
 
  friend class ::WinAsm;
4573
 
  friend class ::WinDeclSpecs;
4574
 
  friend class ::WinMemberExplSpec;
4575
 
  friend class ::WinTypeKeywords;
 
4577
  friend class ::ExtGnu;
4576
4578
  friend class ::PragmaOnceUnitState;
4577
4579
  friend class ::PragmaOnce;
4578
 
  friend class ::CCExprResolve;
4579
 
  friend class ::CExprResolve;
4580
 
 
4581
 
    int number;
4582
 
    char key; 
4583
 
    const char *name;
4584
 
    const char *desc;
4585
 
    ArgType args;
 
4580
  friend class ::CMatchSyntax;
 
4581
 
 
4582
#line 91 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
4583
 
 
4584
    int number; /**< Number associated with this option */
 
4585
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
4586
    const char *longName; /**< Long namen of this option */
 
4587
    const char *desc; /**< Description of this option **/ 
 
4588
    ArgType argType; /**< Type of argument for this option */
4586
4589
  };
4587
4590
 
4588
4591
private:
 
4592
  /** Pointer to array of available options. This value is set to the value of the 
 
4593
   * parameter passed to the constructor OptsParser::OptsParser()
 
4594
   */
4589
4595
  const Option *m_opts;
4590
4596
   
4591
4597
public:
4592
 
  OptsParser (int, char **, const Option *);
4593
 
  OptsParser (const string &, const Option *);
 
4598
  /** \brief Constructor of OptsParser
 
4599
   *  
 
4600
   *  \param argc Number of parameters to be analyzed
 
4601
   *  \param argv Parameters to be analyzed
 
4602
   *  \param opts Pointer to array of options which shall be
 
4603
   *              recognized by the options parser
 
4604
   *
 
4605
   */
 
4606
  OptsParser (int argc, char **argv, const Option *opts);
 
4607
  
 
4608
  /** \brief Constructor of OptsParser
 
4609
   *  
 
4610
   *  \param line Reference to string with parameters to analyse
 
4611
   *              The paramaters are extracted from the string by splitting it up 
 
4612
   *              into tokens at:
 
4613
   *               - space character
 
4614
   *               - tabs 
 
4615
   *               - newline
 
4616
   *               - carriage return
 
4617
   *  \param opts Pointer to array of options which shall be 
 
4618
   *              recognized by the options parser
 
4619
   */
 
4620
  OptsParser (const string &line, const Option *);
4594
4621
 
4595
 
  int getCurrentArgNum () const;
4596
 
  int getNextArgNum () const;
 
4622
  
 
4623
  /** Get next parameter without modification. 
 
4624
   * No option parsing is done
 
4625
   *
 
4626
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
4627
   */
 
4628
  int getRawOption ();
 
4629
  
 
4630
  /** \brief Get next option
 
4631
   *
 
4632
   * This function processes the next parameter passed to the constructor 
 
4633
   * OptsParser::OptsParser(). 
 
4634
   * That is, search for options and eventually process
 
4635
   * option and option arguement. 
 
4636
   *
 
4637
   * \return Number of option recognized by the options parser or
 
4638
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
4639
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
4640
   *
 
4641
   */
4597
4642
  int getOption ();
 
4643
  
 
4644
  /** \brief Get result of last processed parameter
 
4645
   *
 
4646
   *  The number returned by this function is identical to the number 
 
4647
   *  returned by the last call of OptsParser::getOption
 
4648
   *   
 
4649
   * \return Number of option recognized by the options parser or
 
4650
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
4651
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
4652
   *
 
4653
   */
4598
4654
  int getResult () const;
4599
4655
  
 
4656
  /** \brief Get option argument of last processed parameter
 
4657
   *
 
4658
   *  This function returns the argument of the option processed during 
 
4659
   *  OptsParser::getOption. If the option does not provide any argument
 
4660
   *  the string will be empty.
 
4661
   *
 
4662
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
4663
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
4664
   *  which is no option, of course.
 
4665
   *
 
4666
   *  \return Argument of last processed parameter
 
4667
   */
4600
4668
  const string &getArgument () const;
 
4669
  
 
4670
  /** \brief Get option name of last processed parameter
 
4671
   *
 
4672
   *  If the last processed parameter did not contain an option the string 
 
4673
   *  returned by this function is empty.
 
4674
   *
 
4675
   *  \return Name of last processed parameter
 
4676
   *
 
4677
   */
4601
4678
  const string &getOptionName () const;
 
4679
  
 
4680
  /** \brief Get position of current argument
 
4681
   *
 
4682
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
4683
   *
 
4684
   */
 
4685
  int getCurrentArgNum () const;
 
4686
  
 
4687
  /** \brief Get position of next argument
 
4688
   *
 
4689
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
4690
   *
 
4691
   */
 
4692
  int getNextArgNum () const;
4602
4693
 
4603
 
  bool revokeArgument();
4604
 
   
4605
4694
private:
4606
 
  int  getShortOption (const string &);
4607
 
  int  getLongOption  (const string &);
4608
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
 
4695
  /** Search for an option in m_argv at position m_curarg
 
4696
   *
 
4697
   *  \param arg Currently processed parameter 
 
4698
   */
 
4699
  const Option*  findOption(const string &arg, bool isLong);
 
4700
  
 
4701
  /** Process an option found by OptsParser::findOption(). 
 
4702
   */
 
4703
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
4609
4704
};
4610
4705
 
4611
4706
 
4612
4707
} // namespace Puma
4613
4708
 
4614
4709
#endif /* __OptsParser_h__ */
 
4710
 
 
4711
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4615
4712
using namespace std;
4616
4713
 
4617
4714
namespace Puma {
4618
4715
 
4619
4716
 
 
4717
 
 
4718
#line 4719 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4620
4719
} // closed Puma
 
4720
class CCExprResolve;
 
4721
class CExprResolve;
4621
4722
class WinIfExists;
4622
4723
class WinImportHandler;
4623
4724
class WinMacros;
4624
 
class CMatchSyntax;
4625
 
class ExtGnu;
 
4725
class WinAsm;
 
4726
class WinDeclSpecs;
 
4727
class WinMemberExplSpec;
 
4728
class WinTypeKeywords;
 
4729
class WinFriend;
4626
4730
class ExtAC;
4627
4731
class ExtACBuilderCoupling;
4628
4732
class ExtACSyntaxCoupling;
4629
4733
class ExtACTree;
4630
4734
class ExtACKeywords;
4631
 
class WinAsm;
4632
 
class WinDeclSpecs;
4633
 
class WinMemberExplSpec;
4634
 
class WinTypeKeywords;
 
4735
class ExtGnu;
4635
4736
class PragmaOnceUnitState;
4636
4737
class PragmaOnce;
4637
 
class CCExprResolve;
4638
 
class CExprResolve;
 
4738
class CMatchSyntax;
4639
4739
namespace Puma {
4640
 
class Config {  friend class ::WinIfExists;
 
4740
 
 
4741
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
 
4742
class Config {
 
4743
#line 4744 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4744
  friend class ::CCExprResolve;
 
4745
  friend class ::CExprResolve;
 
4746
  friend class ::WinIfExists;
4641
4747
  friend class ::WinImportHandler;
4642
4748
  friend class ::WinMacros;
4643
 
  friend class ::CMatchSyntax;
4644
 
  friend class ::ExtGnu;
 
4749
  friend class ::WinAsm;
 
4750
  friend class ::WinDeclSpecs;
 
4751
  friend class ::WinMemberExplSpec;
 
4752
  friend class ::WinTypeKeywords;
 
4753
  friend class ::WinFriend;
4645
4754
  friend class ::ExtAC;
4646
4755
  friend class ::ExtACBuilderCoupling;
4647
4756
  friend class ::ExtACSyntaxCoupling;
4648
4757
  friend class ::ExtACTree;
4649
4758
  friend class ::ExtACKeywords;
4650
 
  friend class ::WinAsm;
4651
 
  friend class ::WinDeclSpecs;
4652
 
  friend class ::WinMemberExplSpec;
4653
 
  friend class ::WinTypeKeywords;
 
4759
  friend class ::ExtGnu;
4654
4760
  friend class ::PragmaOnceUnitState;
4655
4761
  friend class ::PragmaOnce;
4656
 
  friend class ::CCExprResolve;
4657
 
  friend class ::CExprResolve;
 
4762
  friend class ::CMatchSyntax;
 
4763
 
 
4764
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4658
4765
 
4659
4766
  Flags _flags;
4660
4767
  ErrorStream &_err;
4714
4821
private:
4715
4822
  bool Valid (const char *, const char * = (const char *)0) const;
4716
4823
 
4717
 
  bool Process (OptsParser&);
 
4824
  bool Process (OptsParser&, bool unescape = false);
4718
4825
  bool ProcessAssert (const string&);
4719
4826
  bool ProcessDefine (const string&);
4720
4827
  bool ProcessLockMacro (const string&);
4723
4830
  bool ProcessArgument (const string&,const string&);
4724
4831
  bool ProcessPathArgument (const string&,const string&);
4725
4832
 
 
4833
  string Unescape(const string&);
4726
4834
};
4727
4835
 
4728
4836
inline Config::Config (ErrorStream &e) : _err (e)
4763
4871
} // namespace Puma
4764
4872
 
4765
4873
#endif /* __Config_h__ */
 
4874
 
 
4875
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4766
4876
namespace Puma {
4767
4877
 
4768
4878
 
4769
4879
class Token;
4770
4880
 
 
4881
 
 
4882
#line 4883 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4771
4883
} // closed Puma
 
4884
class CCExprResolve;
 
4885
class CExprResolve;
4772
4886
class WinIfExists;
4773
4887
class WinImportHandler;
4774
4888
class WinMacros;
4775
 
class CMatchSyntax;
4776
 
class ExtGnu;
 
4889
class WinAsm;
 
4890
class WinDeclSpecs;
 
4891
class WinMemberExplSpec;
 
4892
class WinTypeKeywords;
 
4893
class WinFriend;
4777
4894
class ExtAC;
4778
4895
class ExtACBuilderCoupling;
4779
4896
class ExtACSyntaxCoupling;
4780
4897
class ExtACTree;
4781
4898
class ExtACKeywords;
4782
 
class WinAsm;
4783
 
class WinDeclSpecs;
4784
 
class WinMemberExplSpec;
4785
 
class WinTypeKeywords;
 
4899
class ExtGnu;
4786
4900
class PragmaOnceUnitState;
4787
4901
class PragmaOnce;
4788
 
class CCExprResolve;
4789
 
class CExprResolve;
 
4902
class CMatchSyntax;
4790
4903
namespace Puma {
4791
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
4904
 
 
4905
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
4906
class CScanner : public CRecognizer, public Tokenizer {
 
4907
#line 4908 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4908
  friend class ::CCExprResolve;
 
4909
  friend class ::CExprResolve;
 
4910
  friend class ::WinIfExists;
4792
4911
  friend class ::WinImportHandler;
4793
4912
  friend class ::WinMacros;
4794
 
  friend class ::CMatchSyntax;
4795
 
  friend class ::ExtGnu;
 
4913
  friend class ::WinAsm;
 
4914
  friend class ::WinDeclSpecs;
 
4915
  friend class ::WinMemberExplSpec;
 
4916
  friend class ::WinTypeKeywords;
 
4917
  friend class ::WinFriend;
4796
4918
  friend class ::ExtAC;
4797
4919
  friend class ::ExtACBuilderCoupling;
4798
4920
  friend class ::ExtACSyntaxCoupling;
4799
4921
  friend class ::ExtACTree;
4800
4922
  friend class ::ExtACKeywords;
4801
 
  friend class ::WinAsm;
4802
 
  friend class ::WinDeclSpecs;
4803
 
  friend class ::WinMemberExplSpec;
4804
 
  friend class ::WinTypeKeywords;
 
4923
  friend class ::ExtGnu;
4805
4924
  friend class ::PragmaOnceUnitState;
4806
4925
  friend class ::PragmaOnce;
4807
 
  friend class ::CCExprResolve;
4808
 
  friend class ::CExprResolve;
 
4926
  friend class ::CMatchSyntax;
 
4927
 
 
4928
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4809
4929
 
4810
4930
  Location loc;
4811
4931
  ErrorSink &err;
4819
4939
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
4820
4940
  virtual ~CScanner () {}
4821
4941
  void configure (const Config &);
4822
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
4942
  
 
4943
#line 4944 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4944
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
4945
 
 
4946
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4823
4947
void fill_unit (Source &in, Unit &unit);
4824
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
4948
  
 
4949
#line 4950 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
4950
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
4951
 
 
4952
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
4825
4953
void fill_unit (const char *in, Unit &unit);
4826
4954
};
4827
4955
 
4829
4957
} // namespace Puma
4830
4958
 
4831
4959
#endif /* __c_scanner_h__ */
 
4960
 
 
4961
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
4832
4962
// This file is part of PUMA.
4833
4963
// Copyright (C) 1999-2003  The PUMA developer team.
4834
4964
//                                                                
4856
4986
// is called a function-like macro. In addition it consists of a list 
4857
4987
// of arguments.
4858
4988
 
 
4989
 
 
4990
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
4859
4991
namespace Puma {
4860
4992
 
4861
4993
 
4862
4994
class PreTree;
4863
4995
class CScanner;
4864
4996
 
 
4997
 
 
4998
#line 4999 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
4865
4999
} // closed Puma
 
5000
class CCExprResolve;
 
5001
class CExprResolve;
4866
5002
class WinIfExists;
4867
5003
class WinImportHandler;
4868
5004
class WinMacros;
4869
 
class CMatchSyntax;
4870
 
class ExtGnu;
 
5005
class WinAsm;
 
5006
class WinDeclSpecs;
 
5007
class WinMemberExplSpec;
 
5008
class WinTypeKeywords;
 
5009
class WinFriend;
4871
5010
class ExtAC;
4872
5011
class ExtACBuilderCoupling;
4873
5012
class ExtACSyntaxCoupling;
4874
5013
class ExtACTree;
4875
5014
class ExtACKeywords;
4876
 
class WinAsm;
4877
 
class WinDeclSpecs;
4878
 
class WinMemberExplSpec;
4879
 
class WinTypeKeywords;
 
5015
class ExtGnu;
4880
5016
class PragmaOnceUnitState;
4881
5017
class PragmaOnce;
4882
 
class CCExprResolve;
4883
 
class CExprResolve;
 
5018
class CMatchSyntax;
4884
5019
namespace Puma {
4885
 
class PreMacro : public Chain {  friend class ::WinIfExists;
 
5020
 
 
5021
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
5022
class PreMacro : public Chain {
 
5023
#line 5024 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5024
  friend class ::CCExprResolve;
 
5025
  friend class ::CExprResolve;
 
5026
  friend class ::WinIfExists;
4886
5027
  friend class ::WinImportHandler;
4887
5028
  friend class ::WinMacros;
4888
 
  friend class ::CMatchSyntax;
4889
 
  friend class ::ExtGnu;
 
5029
  friend class ::WinAsm;
 
5030
  friend class ::WinDeclSpecs;
 
5031
  friend class ::WinMemberExplSpec;
 
5032
  friend class ::WinTypeKeywords;
 
5033
  friend class ::WinFriend;
4890
5034
  friend class ::ExtAC;
4891
5035
  friend class ::ExtACBuilderCoupling;
4892
5036
  friend class ::ExtACSyntaxCoupling;
4893
5037
  friend class ::ExtACTree;
4894
5038
  friend class ::ExtACKeywords;
4895
 
  friend class ::WinAsm;
4896
 
  friend class ::WinDeclSpecs;
4897
 
  friend class ::WinMemberExplSpec;
4898
 
  friend class ::WinTypeKeywords;
 
5039
  friend class ::ExtGnu;
4899
5040
  friend class ::PragmaOnceUnitState;
4900
5041
  friend class ::PragmaOnce;
4901
 
  friend class ::CCExprResolve;
4902
 
  friend class ::CExprResolve;
 
5042
  friend class ::CMatchSyntax;
 
5043
 
 
5044
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacro.h"
4903
5045
 
4904
5046
public:
4905
5047
  typedef Array<const char *> MacroArgs;
4966
5108
} // namespace Puma
4967
5109
 
4968
5110
#endif /* __pre_macro__ */
 
5111
 
 
5112
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
5113
// This file is part of PUMA.
 
5114
// Copyright (C) 1999-2003  The PUMA developer team.
 
5115
//                                                                
 
5116
// This program is free software;  you can redistribute it and/or 
 
5117
// modify it under the terms of the GNU General Public License as 
 
5118
// published by the Free Software Foundation; either version 2 of 
 
5119
// the License, or (at your option) any later version.            
 
5120
//                                                                
 
5121
// This program is distributed in the hope that it will be useful,
 
5122
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5123
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5124
// GNU General Public License for more details.                   
 
5125
//                                                                
 
5126
// You should have received a copy of the GNU General Public      
 
5127
// License along with this program; if not, write to the Free     
 
5128
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5129
// MA  02111-1307  USA                                            
 
5130
 
 
5131
#ifndef __C_TOKENS__
 
5132
#define __C_TOKENS__
 
5133
 
 
5134
namespace Puma {
 
5135
 
 
5136
enum CTokens {
 
5137
 
 
5138
  // core tokens, i.e. numbers, operator symbols, brackets, etc.
 
5139
  TOK_AT = 100,
 
5140
  TOK_ZERO_VAL,
 
5141
  TOK_INT_VAL,
 
5142
  TOK_FLT_VAL,
 
5143
  TOK_STRING_VAL,
 
5144
  TOK_CHAR_VAL,
 
5145
  TOK_COMMA,
 
5146
  TOK_ASSIGN,
 
5147
  TOK_QUESTION,
 
5148
  TOK_OR,
 
5149
  TOK_ROOF,
 
5150
  TOK_AND,
 
5151
  TOK_PLUS,
 
5152
  TOK_MINUS,
 
5153
  TOK_MUL,
 
5154
  TOK_DIV,
 
5155
  TOK_MODULO,
 
5156
  TOK_LESS,
 
5157
  TOK_GREATER,
 
5158
  TOK_OPEN_ROUND,
 
5159
  TOK_CLOSE_ROUND,
 
5160
  TOK_OPEN_SQUARE,
 
5161
  TOK_CLOSE_SQUARE,
 
5162
  TOK_OPEN_CURLY,
 
5163
  TOK_CLOSE_CURLY,
 
5164
  TOK_SEMI_COLON,
 
5165
  TOK_COLON,
 
5166
  TOK_NOT,
 
5167
  TOK_TILDE,
 
5168
  TOK_DOT,
 
5169
  TOK_MUL_EQ,
 
5170
  TOK_DIV_EQ,
 
5171
  TOK_MOD_EQ,
 
5172
  TOK_ADD_EQ,
 
5173
  TOK_SUB_EQ,
 
5174
  TOK_LSH_EQ,
 
5175
  TOK_RSH_EQ,
 
5176
  TOK_AND_EQ,
 
5177
  TOK_XOR_EQ,
 
5178
  TOK_IOR_EQ,
 
5179
  TOK_OR_OR,
 
5180
  TOK_AND_AND,
 
5181
  TOK_EQL,
 
5182
  TOK_NEQ,
 
5183
  TOK_LEQ,
 
5184
  TOK_GEQ,
 
5185
  TOK_LSH,
 
5186
  TOK_RSH,
 
5187
  TOK_DOT_STAR,
 
5188
  TOK_PTS_STAR,
 
5189
  TOK_INCR,
 
5190
  TOK_DECR,
 
5191
  TOK_PTS,
 
5192
  TOK_COLON_COLON,
 
5193
  TOK_ELLIPSIS,
 
5194
  TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
 
5195
  
 
5196
  // C keywords:
 
5197
  TOK_ASM,
 
5198
  TOK_AUTO,
 
5199
  TOK_BREAK,
 
5200
  TOK_CASE,
 
5201
  TOK_CHAR,
 
5202
  TOK_CONST,
 
5203
  TOK_CONTINUE,
 
5204
  TOK_DEFAULT,
 
5205
  TOK_DO,
 
5206
  TOK_DOUBLE,
 
5207
  TOK_ELSE,
 
5208
  TOK_ENUM,
 
5209
  TOK_EXTERN,
 
5210
  TOK_FLOAT,
 
5211
  TOK_FOR,
 
5212
  TOK_GOTO,
 
5213
  TOK_IF,
 
5214
  TOK_INLINE,
 
5215
  TOK_INT,
 
5216
  TOK_LONG,
 
5217
  TOK_REGISTER,
 
5218
  TOK_RESTRICT,
 
5219
  TOK_RETURN,
 
5220
  TOK_SHORT,
 
5221
  TOK_SIGNED,
 
5222
  TOK_SIZEOF,
 
5223
  TOK_STATIC,
 
5224
  TOK_STRUCT,
 
5225
  TOK_SWITCH,
 
5226
  TOK_TYPEDEF,
 
5227
  TOK_UNION,
 
5228
  TOK_UNSIGNED,
 
5229
  TOK_VOID,
 
5230
  TOK_VOLATILE,
 
5231
  TOK_WCHAR_T,
 
5232
  TOK_WHILE,
 
5233
 
 
5234
  // C compatibility keywords
 
5235
 
 
5236
  TOK_ASM_2,
 
5237
  TOK_ASM_3,
 
5238
  TOK_BOOL_2,
 
5239
  TOK_CONST_2,
 
5240
  TOK_CONST_3,
 
5241
  TOK_INLINE_2,
 
5242
  TOK_INLINE_3,
 
5243
  TOK_RESTRICT_2,
 
5244
  TOK_RESTRICT_3,
 
5245
  TOK_SIGNED_2,
 
5246
  TOK_SIGNED_3,
 
5247
  TOK_VOLATILE_2,
 
5248
  TOK_VOLATILE_3,
 
5249
  TOK_WCHAR_T_2,
 
5250
  TOK_TYPEOF,
 
5251
  TOK_TYPEOF_2,
 
5252
  TOK_TYPEOF_3,
 
5253
 
 
5254
  // C win specific keywords
 
5255
 
 
5256
  TOK_INT64,
 
5257
  TOK_CDECL,
 
5258
  TOK_CDECL_2,
 
5259
  TOK_STDCALL,
 
5260
  TOK_STDCALL_2,
 
5261
  TOK_FASTCALL,
 
5262
  TOK_FASTCALL_2,
 
5263
  TOK_IF_EXISTS,
 
5264
  TOK_IF_NOT_EXISTS,
 
5265
 
 
5266
  TOK_LAST_C = TOK_IF_NOT_EXISTS,
 
5267
  
 
5268
  // a boolean constant:
 
5269
  TOK_BOOL_VAL,
 
5270
 
 
5271
  // C++ keywords:
 
5272
 
 
5273
  TOK_BOOL,
 
5274
  TOK_CATCH,
 
5275
  TOK_CLASS,
 
5276
  TOK_CONST_CAST,
 
5277
  TOK_DELETE,
 
5278
  TOK_DYN_CAST,
 
5279
  TOK_EXPLICIT,
 
5280
  TOK_EXPORT,
 
5281
  TOK_FRIEND,
 
5282
  TOK_MUTABLE,
 
5283
  TOK_NAMESPACE,
 
5284
  TOK_NEW,
 
5285
  TOK_OPERATOR,
 
5286
  TOK_PRIVATE,
 
5287
  TOK_PROTECTED,
 
5288
  TOK_PUBLIC,
 
5289
  TOK_REINT_CAST,
 
5290
  TOK_STAT_CAST,
 
5291
  TOK_TEMPLATE,
 
5292
  TOK_THIS,
 
5293
  TOK_THROW,
 
5294
  TOK_TRY,
 
5295
  TOK_TYPEID,
 
5296
  TOK_TYPENAME,
 
5297
  TOK_USING,
 
5298
  TOK_VIRTUAL,
 
5299
 
 
5300
  // C++ alternative representation of operators (ISO 646):
 
5301
 
 
5302
  TOK_AND_AND_ISO_646,
 
5303
  TOK_AND_EQ_ISO_646,
 
5304
  TOK_AND_ISO_646,
 
5305
  TOK_OR_ISO_646,
 
5306
  TOK_TILDE_ISO_646,
 
5307
  TOK_NOT_ISO_646,
 
5308
  TOK_NEQ_ISO_646,
 
5309
  TOK_OR_OR_ISO_646,
 
5310
  TOK_IOR_EQ_ISO_646,
 
5311
  TOK_ROOF_ISO_646,
 
5312
  TOK_XOR_EQ_ISO_646,
 
5313
 
 
5314
  TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
 
5315
  
 
5316
  // AspectC++ keywords:
 
5317
 
 
5318
  TOK_POINTCUT,
 
5319
  TOK_ASPECT,
 
5320
  TOK_ADVICE,
 
5321
  TOK_SLICE,
 
5322
  TOK_UNKNOWN_T,
 
5323
 
 
5324
  TOK_LAST_AC = TOK_UNKNOWN_T,
 
5325
  
 
5326
  // further [A](C|C++) token
 
5327
  TOK_ID,
 
5328
 
 
5329
  // These two always have to be the ** last ** token listed here!!!
 
5330
  TOK_EPSILON,
 
5331
  TOK_NO
 
5332
  
 
5333
};
 
5334
 
 
5335
} // namespace Puma
 
5336
 
 
5337
#endif /* __C_TOKENS__ */
 
5338
 
 
5339
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParser.h"
4969
5340
#define TOK_PRE_ASSERT                  1
4970
5341
#define TOK_PRE_COMMA                   2
4971
5342
#define TOK_PRE_DEFINE                  3
4988
5359
#define TOK_PRE_UNASSERT               20
4989
5360
#define TOK_PRE_UNDEF                  21
4990
5361
#define TOK_PRE_WARNING                22
 
5362
 
 
5363
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTree.h"
4991
5364
// This file is part of PUMA.
4992
5365
// Copyright (C) 1999-2003  The PUMA developer team.
4993
5366
//                                                                
5011
5384
 
5012
5385
// Syntax tree definition according to the composite pattern from [GoF].
5013
5386
 
 
5387
 
 
5388
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
5014
5389
// This file is part of PUMA.
5015
5390
// Copyright (C) 1999-2003  The PUMA developer team.
5016
5391
//                                                                
5067
5442
class PreForcedInclude;
5068
5443
 
5069
5444
 
 
5445
 
 
5446
#line 5447 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5070
5447
} // closed Puma
 
5448
class CCExprResolve;
 
5449
class CExprResolve;
5071
5450
class WinIfExists;
5072
5451
class WinImportHandler;
5073
5452
class WinMacros;
5074
 
class CMatchSyntax;
5075
 
class ExtGnu;
 
5453
class WinAsm;
 
5454
class WinDeclSpecs;
 
5455
class WinMemberExplSpec;
 
5456
class WinTypeKeywords;
 
5457
class WinFriend;
5076
5458
class ExtAC;
5077
5459
class ExtACBuilderCoupling;
5078
5460
class ExtACSyntaxCoupling;
5079
5461
class ExtACTree;
5080
5462
class ExtACKeywords;
5081
 
class WinAsm;
5082
 
class WinDeclSpecs;
5083
 
class WinMemberExplSpec;
5084
 
class WinTypeKeywords;
 
5463
class ExtGnu;
5085
5464
class PragmaOnceUnitState;
5086
5465
class PragmaOnce;
5087
 
class CCExprResolve;
5088
 
class CExprResolve;
 
5466
class CMatchSyntax;
5089
5467
namespace Puma {
5090
 
class PreVisitor {  friend class ::WinIfExists;
 
5468
 
 
5469
#line 57 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
 
5470
class PreVisitor {
 
5471
#line 5472 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5472
  friend class ::CCExprResolve;
 
5473
  friend class ::CExprResolve;
 
5474
  friend class ::WinIfExists;
5091
5475
  friend class ::WinImportHandler;
5092
5476
  friend class ::WinMacros;
5093
 
  friend class ::CMatchSyntax;
5094
 
  friend class ::ExtGnu;
 
5477
  friend class ::WinAsm;
 
5478
  friend class ::WinDeclSpecs;
 
5479
  friend class ::WinMemberExplSpec;
 
5480
  friend class ::WinTypeKeywords;
 
5481
  friend class ::WinFriend;
5095
5482
  friend class ::ExtAC;
5096
5483
  friend class ::ExtACBuilderCoupling;
5097
5484
  friend class ::ExtACSyntaxCoupling;
5098
5485
  friend class ::ExtACTree;
5099
5486
  friend class ::ExtACKeywords;
5100
 
  friend class ::WinAsm;
5101
 
  friend class ::WinDeclSpecs;
5102
 
  friend class ::WinMemberExplSpec;
5103
 
  friend class ::WinTypeKeywords;
 
5487
  friend class ::ExtGnu;
5104
5488
  friend class ::PragmaOnceUnitState;
5105
5489
  friend class ::PragmaOnce;
5106
 
  friend class ::CCExprResolve;
5107
 
  friend class ::CExprResolve;
 
5490
  friend class ::CMatchSyntax;
 
5491
 
 
5492
#line 57 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreVisitor.h"
5108
5493
 
5109
5494
protected:
5110
5495
  PreVisitor () {};
5192
5577
} // namespace Puma
5193
5578
 
5194
5579
#endif /* __pre_visitor_h__ */
 
5580
 
 
5581
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTree.h"
5195
5582
namespace Puma {
5196
5583
 
5197
5584
 
5198
5585
// Common node interface
 
5586
 
 
5587
#line 5588 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5199
5588
} // closed Puma
 
5589
class CCExprResolve;
 
5590
class CExprResolve;
5200
5591
class WinIfExists;
5201
5592
class WinImportHandler;
5202
5593
class WinMacros;
5203
 
class CMatchSyntax;
5204
 
class ExtGnu;
 
5594
class WinAsm;
 
5595
class WinDeclSpecs;
 
5596
class WinMemberExplSpec;
 
5597
class WinTypeKeywords;
 
5598
class WinFriend;
5205
5599
class ExtAC;
5206
5600
class ExtACBuilderCoupling;
5207
5601
class ExtACSyntaxCoupling;
5208
5602
class ExtACTree;
5209
5603
class ExtACKeywords;
5210
 
class WinAsm;
5211
 
class WinDeclSpecs;
5212
 
class WinMemberExplSpec;
5213
 
class WinTypeKeywords;
 
5604
class ExtGnu;
5214
5605
class PragmaOnceUnitState;
5215
5606
class PragmaOnce;
5216
 
class CCExprResolve;
5217
 
class CExprResolve;
 
5607
class CMatchSyntax;
5218
5608
namespace Puma {
5219
 
class PreTree {  friend class ::WinIfExists;
 
5609
 
 
5610
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTree.h"
 
5611
class PreTree {
 
5612
#line 5613 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5613
  friend class ::CCExprResolve;
 
5614
  friend class ::CExprResolve;
 
5615
  friend class ::WinIfExists;
5220
5616
  friend class ::WinImportHandler;
5221
5617
  friend class ::WinMacros;
5222
 
  friend class ::CMatchSyntax;
5223
 
  friend class ::ExtGnu;
 
5618
  friend class ::WinAsm;
 
5619
  friend class ::WinDeclSpecs;
 
5620
  friend class ::WinMemberExplSpec;
 
5621
  friend class ::WinTypeKeywords;
 
5622
  friend class ::WinFriend;
5224
5623
  friend class ::ExtAC;
5225
5624
  friend class ::ExtACBuilderCoupling;
5226
5625
  friend class ::ExtACSyntaxCoupling;
5227
5626
  friend class ::ExtACTree;
5228
5627
  friend class ::ExtACKeywords;
5229
 
  friend class ::WinAsm;
5230
 
  friend class ::WinDeclSpecs;
5231
 
  friend class ::WinMemberExplSpec;
5232
 
  friend class ::WinTypeKeywords;
 
5628
  friend class ::ExtGnu;
5233
5629
  friend class ::PragmaOnceUnitState;
5234
5630
  friend class ::PragmaOnce;
5235
 
  friend class ::CCExprResolve;
5236
 
  friend class ::CExprResolve;
 
5631
  friend class ::CMatchSyntax;
 
5632
 
 
5633
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTree.h"
5237
5634
 
5238
5635
protected:
5239
5636
  PreTree () {};
5261
5658
} // namespace Puma
5262
5659
 
5263
5660
#endif /* __pre_syntax_tree__ */
 
5661
 
 
5662
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
5663
 
 
5664
#line 5665 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5665
 
 
5666
#ifndef __ac_fwd_PragmaOnceUnitState__
 
5667
#define __ac_fwd_PragmaOnceUnitState__
 
5668
class PragmaOnceUnitState;
 
5669
namespace AC {
 
5670
  template <class JoinPoint>
 
5671
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
5672
  template <class JoinPoint>
 
5673
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
5674
}
 
5675
#endif
 
5676
 
 
5677
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
5678
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
5679
#endif
 
5680
 
 
5681
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5264
5682
// This file is part of PUMA.
5265
5683
// Copyright (C) 1999-2003  The PUMA developer team.
5266
5684
//                                                                
5284
5702
 
5285
5703
// Class UnitManager helps you to have control of all units built.
5286
5704
 
 
5705
 
 
5706
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5287
5707
#include <list>
5288
5708
#include <map>
 
5709
 
 
5710
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5289
5711
using namespace std;
 
5712
 
 
5713
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5290
5714
namespace Puma {
5291
5715
 
5292
5716
 
5294
5718
class Source;
5295
5719
class Tokenizer;
5296
5720
 
 
5721
 
 
5722
#line 5723 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5297
5723
} // closed Puma
 
5724
class CCExprResolve;
 
5725
class CExprResolve;
5298
5726
class WinIfExists;
5299
5727
class WinImportHandler;
5300
5728
class WinMacros;
5301
 
class CMatchSyntax;
5302
 
class ExtGnu;
 
5729
class WinAsm;
 
5730
class WinDeclSpecs;
 
5731
class WinMemberExplSpec;
 
5732
class WinTypeKeywords;
 
5733
class WinFriend;
5303
5734
class ExtAC;
5304
5735
class ExtACBuilderCoupling;
5305
5736
class ExtACSyntaxCoupling;
5306
5737
class ExtACTree;
5307
5738
class ExtACKeywords;
5308
 
class WinAsm;
5309
 
class WinDeclSpecs;
5310
 
class WinMemberExplSpec;
5311
 
class WinTypeKeywords;
 
5739
class ExtGnu;
5312
5740
class PragmaOnceUnitState;
5313
5741
class PragmaOnce;
5314
 
class CCExprResolve;
5315
 
class CExprResolve;
 
5742
class CMatchSyntax;
5316
5743
namespace Puma {
5317
 
class UnitManager {  friend class ::WinIfExists;
 
5744
 
 
5745
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
5746
class UnitManager {
 
5747
#line 5748 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5748
  friend class ::CCExprResolve;
 
5749
  friend class ::CExprResolve;
 
5750
  friend class ::WinIfExists;
5318
5751
  friend class ::WinImportHandler;
5319
5752
  friend class ::WinMacros;
5320
 
  friend class ::CMatchSyntax;
5321
 
  friend class ::ExtGnu;
 
5753
  friend class ::WinAsm;
 
5754
  friend class ::WinDeclSpecs;
 
5755
  friend class ::WinMemberExplSpec;
 
5756
  friend class ::WinTypeKeywords;
 
5757
  friend class ::WinFriend;
5322
5758
  friend class ::ExtAC;
5323
5759
  friend class ::ExtACBuilderCoupling;
5324
5760
  friend class ::ExtACSyntaxCoupling;
5325
5761
  friend class ::ExtACTree;
5326
5762
  friend class ::ExtACKeywords;
5327
 
  friend class ::WinAsm;
5328
 
  friend class ::WinDeclSpecs;
5329
 
  friend class ::WinMemberExplSpec;
5330
 
  friend class ::WinTypeKeywords;
 
5763
  friend class ::ExtGnu;
5331
5764
  friend class ::PragmaOnceUnitState;
5332
5765
  friend class ::PragmaOnce;
5333
 
  friend class ::CCExprResolve;
5334
 
  friend class ::CExprResolve;
 
5766
  friend class ::CMatchSyntax;
 
5767
 
 
5768
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
5335
5769
 
5336
5770
public:
5337
5771
  typedef map<string, Unit*> UMap;
5384
5818
      
5385
5819
  // Initialize the unit manager and the managed 
5386
5820
  // units for the next parse process.
5387
 
  void init ();
 
5821
  
 
5822
#line 5823 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5823
public: __attribute__((always_inline)) inline void __exec_old_init();
 
5824
 
 
5825
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
5826
void init ();
5388
5827
};
5389
5828
 
5390
5829
 
5391
5830
} // namespace Puma
5392
5831
 
5393
5832
#endif /* __UnitManager__ */
 
5833
 
 
5834
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
5394
5835
// This file is part of PUMA.
5395
5836
// Copyright (C) 1999-2003  The PUMA developer team.
5396
5837
//                                                                
5416
5857
// tokens corresponding to the #include hierarchy of the 
5417
5858
// input files. 
5418
5859
 
 
5860
 
 
5861
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
5419
5862
// This file is part of PUMA.
5420
5863
// Copyright (C) 1999-2003  The PUMA developer team.
5421
5864
//                                                                
5437
5880
#ifndef __Unit_Token_Src__
5438
5881
#define __Unit_Token_Src__
5439
5882
 
 
5883
 
 
5884
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenSource.h"
5440
5885
// This file is part of PUMA.
5441
5886
// Copyright (C) 1999-2003  The PUMA developer team.
5442
5887
//                                                                
5463
5908
 
5464
5909
class Token;
5465
5910
 
 
5911
 
 
5912
#line 5913 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5466
5913
} // closed Puma
 
5914
class CCExprResolve;
 
5915
class CExprResolve;
5467
5916
class WinIfExists;
5468
5917
class WinImportHandler;
5469
5918
class WinMacros;
5470
 
class CMatchSyntax;
5471
 
class ExtGnu;
 
5919
class WinAsm;
 
5920
class WinDeclSpecs;
 
5921
class WinMemberExplSpec;
 
5922
class WinTypeKeywords;
 
5923
class WinFriend;
5472
5924
class ExtAC;
5473
5925
class ExtACBuilderCoupling;
5474
5926
class ExtACSyntaxCoupling;
5475
5927
class ExtACTree;
5476
5928
class ExtACKeywords;
5477
 
class WinAsm;
5478
 
class WinDeclSpecs;
5479
 
class WinMemberExplSpec;
5480
 
class WinTypeKeywords;
 
5929
class ExtGnu;
5481
5930
class PragmaOnceUnitState;
5482
5931
class PragmaOnce;
5483
 
class CCExprResolve;
5484
 
class CExprResolve;
 
5932
class CMatchSyntax;
5485
5933
namespace Puma {
5486
 
class PumaTokenSource {  friend class ::WinIfExists;
 
5934
 
 
5935
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
5936
class PumaTokenSource {
 
5937
#line 5938 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
5938
  friend class ::CCExprResolve;
 
5939
  friend class ::CExprResolve;
 
5940
  friend class ::WinIfExists;
5487
5941
  friend class ::WinImportHandler;
5488
5942
  friend class ::WinMacros;
5489
 
  friend class ::CMatchSyntax;
5490
 
  friend class ::ExtGnu;
 
5943
  friend class ::WinAsm;
 
5944
  friend class ::WinDeclSpecs;
 
5945
  friend class ::WinMemberExplSpec;
 
5946
  friend class ::WinTypeKeywords;
 
5947
  friend class ::WinFriend;
5491
5948
  friend class ::ExtAC;
5492
5949
  friend class ::ExtACBuilderCoupling;
5493
5950
  friend class ::ExtACSyntaxCoupling;
5494
5951
  friend class ::ExtACTree;
5495
5952
  friend class ::ExtACKeywords;
5496
 
  friend class ::WinAsm;
5497
 
  friend class ::WinDeclSpecs;
5498
 
  friend class ::WinMemberExplSpec;
5499
 
  friend class ::WinTypeKeywords;
 
5953
  friend class ::ExtGnu;
5500
5954
  friend class ::PragmaOnceUnitState;
5501
5955
  friend class ::PragmaOnce;
5502
 
  friend class ::CCExprResolve;
5503
 
  friend class ::CExprResolve;
 
5956
  friend class ::CMatchSyntax;
 
5957
 
 
5958
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenSource.h"
5504
5959
 
5505
5960
protected:
5506
5961
  PumaTokenSource () {}
5514
5969
} // namespace Puma
5515
5970
 
5516
5971
#endif /* __Token_Source__ */
 
5972
 
 
5973
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
5517
5974
namespace Puma {
5518
5975
 
5519
5976
 
 
5977
 
 
5978
#line 5979 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5520
5979
} // closed Puma
 
5980
class CCExprResolve;
 
5981
class CExprResolve;
5521
5982
class WinIfExists;
5522
5983
class WinImportHandler;
5523
5984
class WinMacros;
5524
 
class CMatchSyntax;
5525
 
class ExtGnu;
 
5985
class WinAsm;
 
5986
class WinDeclSpecs;
 
5987
class WinMemberExplSpec;
 
5988
class WinTypeKeywords;
 
5989
class WinFriend;
5526
5990
class ExtAC;
5527
5991
class ExtACBuilderCoupling;
5528
5992
class ExtACSyntaxCoupling;
5529
5993
class ExtACTree;
5530
5994
class ExtACKeywords;
5531
 
class WinAsm;
5532
 
class WinDeclSpecs;
5533
 
class WinMemberExplSpec;
5534
 
class WinTypeKeywords;
 
5995
class ExtGnu;
5535
5996
class PragmaOnceUnitState;
5536
5997
class PragmaOnce;
5537
 
class CCExprResolve;
5538
 
class CExprResolve;
 
5998
class CMatchSyntax;
5539
5999
namespace Puma {
5540
 
class UnitTokenSrc : public PumaTokenSource {  friend class ::WinIfExists;
 
6000
 
 
6001
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
6002
class UnitTokenSrc : public PumaTokenSource {
 
6003
#line 6004 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6004
  friend class ::CCExprResolve;
 
6005
  friend class ::CExprResolve;
 
6006
  friend class ::WinIfExists;
5541
6007
  friend class ::WinImportHandler;
5542
6008
  friend class ::WinMacros;
5543
 
  friend class ::CMatchSyntax;
5544
 
  friend class ::ExtGnu;
 
6009
  friend class ::WinAsm;
 
6010
  friend class ::WinDeclSpecs;
 
6011
  friend class ::WinMemberExplSpec;
 
6012
  friend class ::WinTypeKeywords;
 
6013
  friend class ::WinFriend;
5545
6014
  friend class ::ExtAC;
5546
6015
  friend class ::ExtACBuilderCoupling;
5547
6016
  friend class ::ExtACSyntaxCoupling;
5548
6017
  friend class ::ExtACTree;
5549
6018
  friend class ::ExtACKeywords;
5550
 
  friend class ::WinAsm;
5551
 
  friend class ::WinDeclSpecs;
5552
 
  friend class ::WinMemberExplSpec;
5553
 
  friend class ::WinTypeKeywords;
 
6019
  friend class ::ExtGnu;
5554
6020
  friend class ::PragmaOnceUnitState;
5555
6021
  friend class ::PragmaOnce;
5556
 
  friend class ::CCExprResolve;
5557
 
  friend class ::CExprResolve;
 
6022
  friend class ::CMatchSyntax;
 
6023
 
 
6024
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
5558
6025
 
5559
6026
  Unit &_unit;
5560
6027
  Token *_curr;
5588
6055
} // namespace Puma
5589
6056
 
5590
6057
#endif /* __Unit_Token_Src__ */
 
6058
 
 
6059
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
5591
6060
namespace Puma {
5592
6061
 
5593
6062
 
 
6063
 
 
6064
#line 6065 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5594
6065
} // closed Puma
 
6066
class CCExprResolve;
 
6067
class CExprResolve;
5595
6068
class WinIfExists;
5596
6069
class WinImportHandler;
5597
6070
class WinMacros;
5598
 
class CMatchSyntax;
5599
 
class ExtGnu;
 
6071
class WinAsm;
 
6072
class WinDeclSpecs;
 
6073
class WinMemberExplSpec;
 
6074
class WinTypeKeywords;
 
6075
class WinFriend;
5600
6076
class ExtAC;
5601
6077
class ExtACBuilderCoupling;
5602
6078
class ExtACSyntaxCoupling;
5603
6079
class ExtACTree;
5604
6080
class ExtACKeywords;
5605
 
class WinAsm;
5606
 
class WinDeclSpecs;
5607
 
class WinMemberExplSpec;
5608
 
class WinTypeKeywords;
 
6081
class ExtGnu;
5609
6082
class PragmaOnceUnitState;
5610
6083
class PragmaOnce;
5611
 
class CCExprResolve;
5612
 
class CExprResolve;
 
6084
class CMatchSyntax;
5613
6085
namespace Puma {
5614
 
class TokenStream : public PumaTokenSource, public Array<UnitTokenSrc*> {  friend class ::WinIfExists;
 
6086
 
 
6087
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
6088
class TokenStream : public PumaTokenSource, public Array<UnitTokenSrc*> {
 
6089
#line 6090 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6090
  friend class ::CCExprResolve;
 
6091
  friend class ::CExprResolve;
 
6092
  friend class ::WinIfExists;
5615
6093
  friend class ::WinImportHandler;
5616
6094
  friend class ::WinMacros;
5617
 
  friend class ::CMatchSyntax;
5618
 
  friend class ::ExtGnu;
 
6095
  friend class ::WinAsm;
 
6096
  friend class ::WinDeclSpecs;
 
6097
  friend class ::WinMemberExplSpec;
 
6098
  friend class ::WinTypeKeywords;
 
6099
  friend class ::WinFriend;
5619
6100
  friend class ::ExtAC;
5620
6101
  friend class ::ExtACBuilderCoupling;
5621
6102
  friend class ::ExtACSyntaxCoupling;
5622
6103
  friend class ::ExtACTree;
5623
6104
  friend class ::ExtACKeywords;
5624
 
  friend class ::WinAsm;
5625
 
  friend class ::WinDeclSpecs;
5626
 
  friend class ::WinMemberExplSpec;
5627
 
  friend class ::WinTypeKeywords;
 
6105
  friend class ::ExtGnu;
5628
6106
  friend class ::PragmaOnceUnitState;
5629
6107
  friend class ::PragmaOnce;
5630
 
  friend class ::CCExprResolve;
5631
 
  friend class ::CExprResolve;
 
6108
  friend class ::CMatchSyntax;
 
6109
 
 
6110
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/TokenStream.h"
5632
6111
 
5633
6112
public:
5634
6113
  TokenStream () : Array<UnitTokenSrc*> (20) {}
5648
6127
} // namespace Puma
5649
6128
 
5650
6129
#endif /* __TokenStream__ */
 
6130
 
 
6131
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
5651
6132
// This file is part of PUMA.
5652
6133
// Copyright (C) 1999-2003  The PUMA developer team.
5653
6134
//                                                                
5676
6157
// That makes predicates to an alternative for the use of macros
5677
6158
// within conditionals.
5678
6159
 
 
6160
 
 
6161
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
5679
6162
namespace Puma {
5680
6163
 
5681
6164
 
 
6165
 
 
6166
#line 6167 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5682
6167
} // closed Puma
 
6168
class CCExprResolve;
 
6169
class CExprResolve;
5683
6170
class WinIfExists;
5684
6171
class WinImportHandler;
5685
6172
class WinMacros;
5686
 
class CMatchSyntax;
5687
 
class ExtGnu;
 
6173
class WinAsm;
 
6174
class WinDeclSpecs;
 
6175
class WinMemberExplSpec;
 
6176
class WinTypeKeywords;
 
6177
class WinFriend;
5688
6178
class ExtAC;
5689
6179
class ExtACBuilderCoupling;
5690
6180
class ExtACSyntaxCoupling;
5691
6181
class ExtACTree;
5692
6182
class ExtACKeywords;
5693
 
class WinAsm;
5694
 
class WinDeclSpecs;
5695
 
class WinMemberExplSpec;
5696
 
class WinTypeKeywords;
 
6183
class ExtGnu;
5697
6184
class PragmaOnceUnitState;
5698
6185
class PragmaOnce;
5699
 
class CCExprResolve;
5700
 
class CExprResolve;
 
6186
class CMatchSyntax;
5701
6187
namespace Puma {
5702
 
class PrePredicate : public List {  friend class ::WinIfExists;
 
6188
 
 
6189
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
 
6190
class PrePredicate : public List {
 
6191
#line 6192 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6192
  friend class ::CCExprResolve;
 
6193
  friend class ::CExprResolve;
 
6194
  friend class ::WinIfExists;
5703
6195
  friend class ::WinImportHandler;
5704
6196
  friend class ::WinMacros;
5705
 
  friend class ::CMatchSyntax;
5706
 
  friend class ::ExtGnu;
 
6197
  friend class ::WinAsm;
 
6198
  friend class ::WinDeclSpecs;
 
6199
  friend class ::WinMemberExplSpec;
 
6200
  friend class ::WinTypeKeywords;
 
6201
  friend class ::WinFriend;
5707
6202
  friend class ::ExtAC;
5708
6203
  friend class ::ExtACBuilderCoupling;
5709
6204
  friend class ::ExtACSyntaxCoupling;
5710
6205
  friend class ::ExtACTree;
5711
6206
  friend class ::ExtACKeywords;
5712
 
  friend class ::WinAsm;
5713
 
  friend class ::WinDeclSpecs;
5714
 
  friend class ::WinMemberExplSpec;
5715
 
  friend class ::WinTypeKeywords;
 
6207
  friend class ::ExtGnu;
5716
6208
  friend class ::PragmaOnceUnitState;
5717
6209
  friend class ::PragmaOnce;
5718
 
  friend class ::CCExprResolve;
5719
 
  friend class ::CExprResolve;
 
6210
  friend class ::CMatchSyntax;
 
6211
 
 
6212
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicate.h"
5720
6213
 
5721
6214
  char *_name;                // The name of the predicate.
5722
6215
  int   _numAnswers;        // The number of arguments.
5744
6237
} // namespace Puma
5745
6238
 
5746
6239
#endif /* __pre_predicate__ */
 
6240
 
 
6241
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
5747
6242
// This file is part of PUMA.
5748
6243
// Copyright (C) 1999-2003  The PUMA developer team.
5749
6244
//                                                                
5773
6268
class PreprocessorParser;
5774
6269
class Unit;
5775
6270
 
 
6271
 
 
6272
#line 6273 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5776
6273
} // closed Puma
 
6274
class CCExprResolve;
 
6275
class CExprResolve;
5777
6276
class WinIfExists;
5778
6277
class WinImportHandler;
5779
6278
class WinMacros;
5780
 
class CMatchSyntax;
5781
 
class ExtGnu;
 
6279
class WinAsm;
 
6280
class WinDeclSpecs;
 
6281
class WinMemberExplSpec;
 
6282
class WinTypeKeywords;
 
6283
class WinFriend;
5782
6284
class ExtAC;
5783
6285
class ExtACBuilderCoupling;
5784
6286
class ExtACSyntaxCoupling;
5785
6287
class ExtACTree;
5786
6288
class ExtACKeywords;
5787
 
class WinAsm;
5788
 
class WinDeclSpecs;
5789
 
class WinMemberExplSpec;
5790
 
class WinTypeKeywords;
 
6289
class ExtGnu;
5791
6290
class PragmaOnceUnitState;
5792
6291
class PragmaOnce;
5793
 
class CCExprResolve;
5794
 
class CExprResolve;
 
6292
class CMatchSyntax;
5795
6293
namespace Puma {
5796
 
class ImportHandler {  friend class ::WinIfExists;
 
6294
 
 
6295
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
 
6296
class ImportHandler {
 
6297
#line 6298 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6298
  friend class ::CCExprResolve;
 
6299
  friend class ::CExprResolve;
 
6300
  friend class ::WinIfExists;
5797
6301
  friend class ::WinImportHandler;
5798
6302
  friend class ::WinMacros;
5799
 
  friend class ::CMatchSyntax;
5800
 
  friend class ::ExtGnu;
 
6303
  friend class ::WinAsm;
 
6304
  friend class ::WinDeclSpecs;
 
6305
  friend class ::WinMemberExplSpec;
 
6306
  friend class ::WinTypeKeywords;
 
6307
  friend class ::WinFriend;
5801
6308
  friend class ::ExtAC;
5802
6309
  friend class ::ExtACBuilderCoupling;
5803
6310
  friend class ::ExtACSyntaxCoupling;
5804
6311
  friend class ::ExtACTree;
5805
6312
  friend class ::ExtACKeywords;
5806
 
  friend class ::WinAsm;
5807
 
  friend class ::WinDeclSpecs;
5808
 
  friend class ::WinMemberExplSpec;
5809
 
  friend class ::WinTypeKeywords;
 
6313
  friend class ::ExtGnu;
5810
6314
  friend class ::PragmaOnceUnitState;
5811
6315
  friend class ::PragmaOnce;
5812
 
  friend class ::CCExprResolve;
5813
 
  friend class ::CExprResolve;
 
6316
  friend class ::CMatchSyntax;
 
6317
 
 
6318
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ImportHandler.h"
5814
6319
 
5815
6320
  PreprocessorParser &parser;
5816
6321
  Unit *header;
5828
6333
} // namespace Puma
5829
6334
 
5830
6335
#endif /* __ImportHandler__ */
 
6336
 
 
6337
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
5831
6338
// This file is part of PUMA.
5832
6339
// Copyright (C) 1999-2003  The PUMA developer team.
5833
6340
//                                                                
5855
6362
// the current value of the conditional group at this level. It is used 
5856
6363
// to controll which source code will be ignored.
5857
6364
 
 
6365
 
 
6366
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
5858
6367
namespace Puma {
5859
6368
 
5860
6369
 
 
6370
 
 
6371
#line 6372 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
5861
6372
} // closed Puma
 
6373
class CCExprResolve;
 
6374
class CExprResolve;
5862
6375
class WinIfExists;
5863
6376
class WinImportHandler;
5864
6377
class WinMacros;
5865
 
class CMatchSyntax;
5866
 
class ExtGnu;
 
6378
class WinAsm;
 
6379
class WinDeclSpecs;
 
6380
class WinMemberExplSpec;
 
6381
class WinTypeKeywords;
 
6382
class WinFriend;
5867
6383
class ExtAC;
5868
6384
class ExtACBuilderCoupling;
5869
6385
class ExtACSyntaxCoupling;
5870
6386
class ExtACTree;
5871
6387
class ExtACKeywords;
5872
 
class WinAsm;
5873
 
class WinDeclSpecs;
5874
 
class WinMemberExplSpec;
5875
 
class WinTypeKeywords;
 
6388
class ExtGnu;
5876
6389
class PragmaOnceUnitState;
5877
6390
class PragmaOnce;
5878
 
class CCExprResolve;
5879
 
class CExprResolve;
 
6391
class CMatchSyntax;
5880
6392
namespace Puma {
5881
 
class PreLevelState {  friend class ::WinIfExists;
 
6393
 
 
6394
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
 
6395
class PreLevelState {
 
6396
#line 6397 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6397
  friend class ::CCExprResolve;
 
6398
  friend class ::CExprResolve;
 
6399
  friend class ::WinIfExists;
5882
6400
  friend class ::WinImportHandler;
5883
6401
  friend class ::WinMacros;
5884
 
  friend class ::CMatchSyntax;
5885
 
  friend class ::ExtGnu;
 
6402
  friend class ::WinAsm;
 
6403
  friend class ::WinDeclSpecs;
 
6404
  friend class ::WinMemberExplSpec;
 
6405
  friend class ::WinTypeKeywords;
 
6406
  friend class ::WinFriend;
5886
6407
  friend class ::ExtAC;
5887
6408
  friend class ::ExtACBuilderCoupling;
5888
6409
  friend class ::ExtACSyntaxCoupling;
5889
6410
  friend class ::ExtACTree;
5890
6411
  friend class ::ExtACKeywords;
5891
 
  friend class ::WinAsm;
5892
 
  friend class ::WinDeclSpecs;
5893
 
  friend class ::WinMemberExplSpec;
5894
 
  friend class ::WinTypeKeywords;
 
6412
  friend class ::ExtGnu;
5895
6413
  friend class ::PragmaOnceUnitState;
5896
6414
  friend class ::PragmaOnce;
5897
 
  friend class ::CCExprResolve;
5898
 
  friend class ::CExprResolve;
 
6415
  friend class ::CMatchSyntax;
 
6416
 
 
6417
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
5899
6418
 
5900
6419
  long _level;
5901
6420
        
5902
6421
  // The state structure.
5903
 
  struct _state {  friend class ::WinIfExists;
 
6422
  struct _state {
 
6423
#line 6424 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6424
  friend class ::CCExprResolve;
 
6425
  friend class ::CExprResolve;
 
6426
  friend class ::WinIfExists;
5904
6427
  friend class ::WinImportHandler;
5905
6428
  friend class ::WinMacros;
5906
 
  friend class ::CMatchSyntax;
5907
 
  friend class ::ExtGnu;
 
6429
  friend class ::WinAsm;
 
6430
  friend class ::WinDeclSpecs;
 
6431
  friend class ::WinMemberExplSpec;
 
6432
  friend class ::WinTypeKeywords;
 
6433
  friend class ::WinFriend;
5908
6434
  friend class ::ExtAC;
5909
6435
  friend class ::ExtACBuilderCoupling;
5910
6436
  friend class ::ExtACSyntaxCoupling;
5911
6437
  friend class ::ExtACTree;
5912
6438
  friend class ::ExtACKeywords;
5913
 
  friend class ::WinAsm;
5914
 
  friend class ::WinDeclSpecs;
5915
 
  friend class ::WinMemberExplSpec;
5916
 
  friend class ::WinTypeKeywords;
 
6439
  friend class ::ExtGnu;
5917
6440
  friend class ::PragmaOnceUnitState;
5918
6441
  friend class ::PragmaOnce;
5919
 
  friend class ::CCExprResolve;
5920
 
  friend class ::CExprResolve;
 
6442
  friend class ::CMatchSyntax;
 
6443
 
 
6444
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
5921
6445
 
5922
6446
    bool state;                // The level value.
5923
6447
    bool passOn;        // Decide whether code will be not ignored.
5953
6477
} // namespace Puma
5954
6478
 
5955
6479
#endif /* __pre_level_state__ */
 
6480
 
 
6481
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentTokens.h"
5956
6482
// This file is part of PUMA.
5957
6483
// Copyright (C) 1999-2003  The PUMA developer team.
5958
6484
//                                                                
5978
6504
 
5979
6505
 
5980
6506
enum {
 
6507
  TOK_WSPACE = 400,
5981
6508
  TOK_CCSINGLE = 350,
5982
6509
  TOK_CCMULTIBEGIN,
5983
6510
  TOK_CCMULTIEND,
5988
6515
} // namespace Puma
5989
6516
 
5990
6517
#endif /* __C_COMMENT_TOKENS_H__ */
 
6518
 
 
6519
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
5991
6520
// This file is part of PUMA.
5992
6521
// Copyright (C) 1999-2003  The PUMA developer team.
5993
6522
//                                                                
6016
6545
#include <set>
6017
6546
using std::set;
6018
6547
 
 
6548
 
 
6549
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6019
6550
// This file is part of PUMA.
6020
6551
// Copyright (C) 1999-2003  The PUMA developer team.
6021
6552
//                                                                
6039
6570
 
6040
6571
// The macro manager manages all defined macros.
6041
6572
 
 
6573
 
 
6574
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6042
6575
using namespace std;
6043
6576
 
6044
6577
#ifdef __puma
6052
6585
 
6053
6586
class ErrorStream;
6054
6587
 
 
6588
 
 
6589
#line 6590 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
6055
6590
} // closed Puma
 
6591
class CCExprResolve;
 
6592
class CExprResolve;
6056
6593
class WinIfExists;
6057
6594
class WinImportHandler;
6058
6595
class WinMacros;
6059
 
class CMatchSyntax;
6060
 
class ExtGnu;
 
6596
class WinAsm;
 
6597
class WinDeclSpecs;
 
6598
class WinMemberExplSpec;
 
6599
class WinTypeKeywords;
 
6600
class WinFriend;
6061
6601
class ExtAC;
6062
6602
class ExtACBuilderCoupling;
6063
6603
class ExtACSyntaxCoupling;
6064
6604
class ExtACTree;
6065
6605
class ExtACKeywords;
6066
 
class WinAsm;
6067
 
class WinDeclSpecs;
6068
 
class WinMemberExplSpec;
6069
 
class WinTypeKeywords;
 
6606
class ExtGnu;
6070
6607
class PragmaOnceUnitState;
6071
6608
class PragmaOnce;
6072
 
class CCExprResolve;
6073
 
class CExprResolve;
 
6609
class CMatchSyntax;
6074
6610
namespace Puma {
6075
 
class PreMacroManager {  friend class ::WinIfExists;
 
6611
 
 
6612
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
6613
class PreMacroManager {
 
6614
#line 6615 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6615
  friend class ::CCExprResolve;
 
6616
  friend class ::CExprResolve;
 
6617
  friend class ::WinIfExists;
6076
6618
  friend class ::WinImportHandler;
6077
6619
  friend class ::WinMacros;
6078
 
  friend class ::CMatchSyntax;
6079
 
  friend class ::ExtGnu;
 
6620
  friend class ::WinAsm;
 
6621
  friend class ::WinDeclSpecs;
 
6622
  friend class ::WinMemberExplSpec;
 
6623
  friend class ::WinTypeKeywords;
 
6624
  friend class ::WinFriend;
6080
6625
  friend class ::ExtAC;
6081
6626
  friend class ::ExtACBuilderCoupling;
6082
6627
  friend class ::ExtACSyntaxCoupling;
6083
6628
  friend class ::ExtACTree;
6084
6629
  friend class ::ExtACKeywords;
6085
 
  friend class ::WinAsm;
6086
 
  friend class ::WinDeclSpecs;
6087
 
  friend class ::WinMemberExplSpec;
6088
 
  friend class ::WinTypeKeywords;
 
6630
  friend class ::ExtGnu;
6089
6631
  friend class ::PragmaOnceUnitState;
6090
6632
  friend class ::PragmaOnce;
6091
 
  friend class ::CCExprResolve;
6092
 
  friend class ::CExprResolve;
 
6633
  friend class ::CMatchSyntax;
 
6634
 
 
6635
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
6093
6636
 
6094
6637
  PreMacro *_Line;
6095
6638
  PreMacro *_Date;
6138
6681
} // namespace Puma
6139
6682
 
6140
6683
#endif /* __pre_macro_manager__ */
 
6684
 
 
6685
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6141
6686
namespace Puma {
6142
6687
 
6143
6688
 
6146
6691
class PreMacro;
6147
6692
class TokenStream;
6148
6693
 
 
6694
 
 
6695
#line 6696 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
6149
6696
} // closed Puma
 
6697
class CCExprResolve;
 
6698
class CExprResolve;
6150
6699
class WinIfExists;
6151
6700
class WinImportHandler;
6152
6701
class WinMacros;
6153
 
class CMatchSyntax;
6154
 
class ExtGnu;
 
6702
class WinAsm;
 
6703
class WinDeclSpecs;
 
6704
class WinMemberExplSpec;
 
6705
class WinTypeKeywords;
 
6706
class WinFriend;
6155
6707
class ExtAC;
6156
6708
class ExtACBuilderCoupling;
6157
6709
class ExtACSyntaxCoupling;
6158
6710
class ExtACTree;
6159
6711
class ExtACKeywords;
6160
 
class WinAsm;
6161
 
class WinDeclSpecs;
6162
 
class WinMemberExplSpec;
6163
 
class WinTypeKeywords;
 
6712
class ExtGnu;
6164
6713
class PragmaOnceUnitState;
6165
6714
class PragmaOnce;
6166
 
class CCExprResolve;
6167
 
class CExprResolve;
 
6715
class CMatchSyntax;
6168
6716
namespace Puma {
6169
 
class PreParserState {  friend class ::WinIfExists;
 
6717
 
 
6718
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
 
6719
class PreParserState {
 
6720
#line 6721 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6721
  friend class ::CCExprResolve;
 
6722
  friend class ::CExprResolve;
 
6723
  friend class ::WinIfExists;
6170
6724
  friend class ::WinImportHandler;
6171
6725
  friend class ::WinMacros;
6172
 
  friend class ::CMatchSyntax;
6173
 
  friend class ::ExtGnu;
 
6726
  friend class ::WinAsm;
 
6727
  friend class ::WinDeclSpecs;
 
6728
  friend class ::WinMemberExplSpec;
 
6729
  friend class ::WinTypeKeywords;
 
6730
  friend class ::WinFriend;
6174
6731
  friend class ::ExtAC;
6175
6732
  friend class ::ExtACBuilderCoupling;
6176
6733
  friend class ::ExtACSyntaxCoupling;
6177
6734
  friend class ::ExtACTree;
6178
6735
  friend class ::ExtACKeywords;
6179
 
  friend class ::WinAsm;
6180
 
  friend class ::WinDeclSpecs;
6181
 
  friend class ::WinMemberExplSpec;
6182
 
  friend class ::WinTypeKeywords;
 
6736
  friend class ::ExtGnu;
6183
6737
  friend class ::PragmaOnceUnitState;
6184
6738
  friend class ::PragmaOnce;
6185
 
  friend class ::CCExprResolve;
6186
 
  friend class ::CExprResolve;
 
6739
  friend class ::CMatchSyntax;
 
6740
 
 
6741
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreParserState.h"
6187
6742
 
6188
6743
  // some constant strings
6189
6744
  DString _Line, _File, _Date, _Time, _IncLevel;
6238
6793
 
6239
6794
#endif /* __pre_parser_state__ */
6240
6795
 
 
6796
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
6797
 
 
6798
#line 6799 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6799
 
6241
6800
#ifndef __ac_fwd_PragmaOnce__
6242
6801
#define __ac_fwd_PragmaOnce__
6243
6802
class PragmaOnce;
6244
6803
namespace AC {
6245
6804
  template <class JoinPoint>
6246
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
6247
 
  template <class JoinPoint>
6248
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
6249
 
  template <class JoinPoint, class Binding>
6250
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
6251
 
  template <class JoinPoint>
6252
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
6805
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
6806
  template <class JoinPoint>
 
6807
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
6808
  template <class JoinPoint>
 
6809
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
6810
  template <class JoinPoint>
 
6811
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
6253
6812
}
6254
6813
#endif
6255
6814
 
6256
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6257
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6815
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6816
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6258
6817
#endif
 
6818
 
 
6819
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
6259
6820
// This file is part of PUMA.
6260
6821
// Copyright (C) 1999-2003  The PUMA developer team.
6261
6822
//                                                                
6280
6841
// Preprocessor class to handle includes.
6281
6842
 
6282
6843
 
 
6844
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
6845
 
 
6846
#line 6847 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6847
 
6283
6848
#ifndef __ac_fwd_WinIfExists__
6284
6849
#define __ac_fwd_WinIfExists__
6285
6850
class WinIfExists;
6286
6851
namespace AC {
6287
6852
  template <class JoinPoint>
6288
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
 
6853
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
6289
6854
}
6290
6855
#endif
6291
6856
 
6292
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
6293
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
6857
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
6858
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
6294
6859
#endif
6295
6860
 
6296
6861
#ifndef __ac_fwd_WinImportHandler__
6297
6862
#define __ac_fwd_WinImportHandler__
6298
6863
class WinImportHandler;
6299
6864
namespace AC {
6300
 
  template <class JoinPoint, class Binding>
6301
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
6302
 
}
6303
 
#endif
6304
 
 
6305
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
6306
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
6865
  template <class JoinPoint>
 
6866
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
 
6867
}
 
6868
#endif
 
6869
 
 
6870
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
6871
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
6872
#endif
 
6873
 
 
6874
#ifndef __ac_fwd_WinMacros__
 
6875
#define __ac_fwd_WinMacros__
 
6876
class WinMacros;
 
6877
namespace AC {
 
6878
  template <class JoinPoint>
 
6879
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
 
6880
}
 
6881
#endif
 
6882
 
 
6883
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
6884
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
6307
6885
#endif
6308
6886
 
6309
6887
#ifndef __ac_fwd_PragmaOnce__
6311
6889
class PragmaOnce;
6312
6890
namespace AC {
6313
6891
  template <class JoinPoint>
6314
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
6315
 
  template <class JoinPoint>
6316
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
6317
 
  template <class JoinPoint, class Binding>
6318
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
6319
 
  template <class JoinPoint>
6320
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
6321
 
}
6322
 
#endif
6323
 
 
6324
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6325
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6326
 
#endif
6327
 
 
6328
 
#ifndef __ac_fwd_WinMacros__
6329
 
#define __ac_fwd_WinMacros__
6330
 
class WinMacros;
6331
 
namespace AC {
6332
 
  template <class JoinPoint, class Binding>
6333
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
6334
 
}
6335
 
#endif
6336
 
 
6337
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
6338
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
6339
 
#endif
6340
 
// This file is part of PUMA.
6341
 
// Copyright (C) 1999-2003  The PUMA developer team.
6342
 
//                                                                
6343
 
// This program is free software;  you can redistribute it and/or 
6344
 
// modify it under the terms of the GNU General Public License as 
6345
 
// published by the Free Software Foundation; either version 2 of 
6346
 
// the License, or (at your option) any later version.            
6347
 
//                                                                
6348
 
// This program is distributed in the hope that it will be useful,
6349
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
6350
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
6351
 
// GNU General Public License for more details.                   
6352
 
//                                                                
6353
 
// You should have received a copy of the GNU General Public      
6354
 
// License along with this program; if not, write to the Free     
6355
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
6356
 
// MA  02111-1307  USA                                            
6357
 
 
6358
 
#ifndef __WinImportHandler__
6359
 
#define __WinImportHandler__
6360
 
 
6361
 
/********************************************************/
6362
 
/* Win #import directive support                        */
6363
 
/********************************************************/
6364
 
 
6365
 
using namespace Puma;
6366
 
 
6367
 
 
6368
 
class WinIfExists;
6369
 
class WinMacros;
6370
 
class CMatchSyntax;
6371
 
class ExtGnu;
6372
 
class ExtAC;
6373
 
class ExtACBuilderCoupling;
6374
 
class ExtACSyntaxCoupling;
6375
 
class ExtACTree;
6376
 
class ExtACKeywords;
6377
 
class WinAsm;
6378
 
class WinDeclSpecs;
6379
 
class WinMemberExplSpec;
6380
 
class WinTypeKeywords;
6381
 
class PragmaOnceUnitState;
6382
 
class PragmaOnce;
6383
 
class CCExprResolve;
6384
 
class CExprResolve;
6385
 
class WinImportHandler {
6386
 
public:
6387
 
  static WinImportHandler *aspectof () {
6388
 
    static WinImportHandler __instance;
6389
 
    return &__instance;
6390
 
  }
6391
 
  static WinImportHandler *aspectOf () {
6392
 
    return aspectof ();
6393
 
  }
6394
 
private:
6395
 
  friend class ::WinIfExists;
6396
 
  friend class ::WinMacros;
6397
 
  friend class ::CMatchSyntax;
6398
 
  friend class ::ExtGnu;
6399
 
  friend class ::ExtAC;
6400
 
  friend class ::ExtACBuilderCoupling;
6401
 
  friend class ::ExtACSyntaxCoupling;
6402
 
  friend class ::ExtACTree;
6403
 
  friend class ::ExtACKeywords;
6404
 
  friend class ::WinAsm;
6405
 
  friend class ::WinDeclSpecs;
6406
 
  friend class ::WinMemberExplSpec;
6407
 
  friend class ::WinTypeKeywords;
6408
 
  friend class ::PragmaOnceUnitState;
6409
 
  friend class ::PragmaOnce;
6410
 
  friend class ::CCExprResolve;
6411
 
  friend class ::CExprResolve;
6412
 
 
6413
 
  /********************************************************/
6414
 
  /* Win #import directive                                */
6415
 
  /********************************************************/
6416
 
 
6417
 
  // pointcuts
6418
 
  
6419
 
  
6420
 
  // add access method for _importHandler data member
6421
 
  
6422
 
 
6423
 
  // handle --import-handler option
6424
 
  
6425
 
public: template<class JoinPoint> void __a0_before (JoinPoint *tjp, const Config &config, bool process_includes) {
6426
 
  JoinPoint *&thisJoinPoint = tjp;
6427
 
 
6428
 
  typedef typename JoinPoint::That __JP_That;
6429
 
  typedef typename JoinPoint::Target __JP_Target;
6430
 
  typedef typename JoinPoint::Result __JP_Result;
6431
 
 
6432
 
    const ConfOption *opt;
6433
 
    char *tmp;
6434
 
    
6435
 
    if (process_includes) {
6436
 
      opt = config.Option ("--import-handler");
6437
 
      if (opt && opt->Arguments ()) {
6438
 
        // delete old import handler
6439
 
        if (thisJoinPoint->that ()->_importHandler)
6440
 
          delete[] thisJoinPoint->that ()->_importHandler;
6441
 
        
6442
 
        // get new import handler
6443
 
        tmp = new char[strlen (opt->Argument (0))+1];
6444
 
        strcpy (tmp, opt->Argument (0));
6445
 
        thisJoinPoint->that ()->_importHandler = tmp;
6446
 
      }
6447
 
    }
6448
 
  }
6449
 
private:
6450
 
 
6451
 
 
6452
 
protected:
6453
 
  WinImportHandler () {}
6454
 
};
6455
 
namespace AC {
6456
 
  template <class JoinPoint, class Binding>
6457
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
6458
 
    typedef typename Binding::template Arg<0> Arg0;
6459
 
    typedef typename Binding::template Arg<1> Arg1;
6460
 
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
6461
 
  }
6462
 
6463
 
 
6464
 
 
6465
 
 
6466
 
#endif /* __WinImportHandler__ */
6467
 
// This file is part of PUMA.
6468
 
// Copyright (C) 1999-2003  The PUMA developer team.
6469
 
//                                                                
6470
 
// This program is free software;  you can redistribute it and/or 
6471
 
// modify it under the terms of the GNU General Public License as 
6472
 
// published by the Free Software Foundation; either version 2 of 
6473
 
// the License, or (at your option) any later version.            
6474
 
//                                                                
6475
 
// This program is distributed in the hope that it will be useful,
6476
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
6477
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
6478
 
// GNU General Public License for more details.                   
6479
 
//                                                                
6480
 
// You should have received a copy of the GNU General Public      
6481
 
// License along with this program; if not, write to the Free     
6482
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
6483
 
// MA  02111-1307  USA                                            
6484
 
 
6485
 
#ifndef __PragmaOnce__
6486
 
#define __PragmaOnce__
6487
 
 
6488
 
/********************************************************/
6489
 
/* Win #pragma once support aspect                      */
6490
 
/********************************************************/
6491
 
 
6492
 
using std::cout;
6493
 
using std::endl;
6494
 
 
6495
 
using namespace Puma;
6496
 
 
6497
 
 
6498
 
class WinIfExists;
6499
 
class WinImportHandler;
6500
 
class WinMacros;
6501
 
class CMatchSyntax;
6502
 
class ExtGnu;
6503
 
class ExtAC;
6504
 
class ExtACBuilderCoupling;
6505
 
class ExtACSyntaxCoupling;
6506
 
class ExtACTree;
6507
 
class ExtACKeywords;
6508
 
class WinAsm;
6509
 
class WinDeclSpecs;
6510
 
class WinMemberExplSpec;
6511
 
class WinTypeKeywords;
6512
 
class PragmaOnceUnitState;
6513
 
class CCExprResolve;
6514
 
class CExprResolve;
6515
 
class PragmaOnce {
6516
 
public:
6517
 
  static PragmaOnce *aspectof () {
6518
 
    static PragmaOnce __instance;
6519
 
    return &__instance;
6520
 
  }
6521
 
  static PragmaOnce *aspectOf () {
6522
 
    return aspectof ();
6523
 
  }
6524
 
private:
6525
 
  friend class ::WinIfExists;
6526
 
  friend class ::WinImportHandler;
6527
 
  friend class ::WinMacros;
6528
 
  friend class ::CMatchSyntax;
6529
 
  friend class ::ExtGnu;
6530
 
  friend class ::ExtAC;
6531
 
  friend class ::ExtACBuilderCoupling;
6532
 
  friend class ::ExtACSyntaxCoupling;
6533
 
  friend class ::ExtACTree;
6534
 
  friend class ::ExtACKeywords;
6535
 
  friend class ::WinAsm;
6536
 
  friend class ::WinDeclSpecs;
6537
 
  friend class ::WinMemberExplSpec;
6538
 
  friend class ::WinTypeKeywords;
6539
 
  friend class ::PragmaOnceUnitState;
6540
 
  friend class ::CCExprResolve;
6541
 
  friend class ::CExprResolve;
6542
 
 
6543
 
  /******************************************************/
6544
 
  /* detect #pragma once in the token stream of cpp     */
6545
 
  /******************************************************/
6546
 
 
6547
 
  // pointcut definitions
6548
 
  
6549
 
  
6550
 
  
6551
 
  // extend the preprocessor parser by the filter state
6552
 
  
6553
 
 
6554
 
  // initialize the filter state
6555
 
  
6556
 
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
6557
 
  typedef typename JoinPoint::That __JP_That;
6558
 
  typedef typename JoinPoint::Target __JP_Target;
6559
 
  typedef typename JoinPoint::Result __JP_Result;
6560
 
 
6561
 
    // TODO: it would be better to have construction advice -> but in lem file
6562
 
    tjp->that ()->_pragma_token = 0;
6563
 
  }
6564
 
private:
6565
 
 
6566
 
  
6567
 
  // filter #pragma once
6568
 
  
6569
 
public: template<class JoinPoint> void __a1_after (JoinPoint *tjp) {
6570
 
  typedef typename JoinPoint::That __JP_That;
6571
 
  typedef typename JoinPoint::Target __JP_Target;
6572
 
  typedef typename JoinPoint::Result __JP_Result;
6573
 
 
6574
 
    Token *tok = *tjp->result ();
6575
 
    __JP_That &that = *tjp->that ();
6576
 
    if (!tok || !tok->is_directive ()) {
6577
 
      that._pragma_token = 0;
6578
 
      return;
6579
 
    }
6580
 
    if (strcmp ("#pragma", tok->text ()) == 0) {
6581
 
      that._pragma_token = tok;
6582
 
    }
6583
 
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
6584
 
      Unit *unit = (Unit*)tok->belonging_to ();
6585
 
      assert (unit);
6586
 
      unit->state ().onlyOnce (true);
6587
 
    }
6588
 
  }
6589
 
private:
6590
 
 
6591
 
  
6592
 
  /********************************************************/
6593
 
  /* block the handling of pragma once files              */
6594
 
  /********************************************************/
6595
 
 
6596
 
  // don't let file includer include files twice
6597
 
  // to be precise: the file is included again, but the inclusion produces
6598
 
  // no tokens
6599
 
  
6600
 
public: template<class JoinPoint> void __a2_around (JoinPoint *tjp, Unit *unit) {
6601
 
  typedef typename JoinPoint::That __JP_That;
6602
 
  typedef typename JoinPoint::Target __JP_Target;
6603
 
  typedef typename JoinPoint::Result __JP_Result;
6604
 
 
6605
 
    if (! unit || ! unit->state ().onlyOnce ())
6606
 
      tjp->proceed ();
6607
 
  }
6608
 
private:
6609
 
 
6610
 
 
6611
 
  // includeFile shall return 0 if the file was not included
6612
 
  
6613
 
public: template<class JoinPoint> void __a3_after (JoinPoint *tjp) {
6614
 
  typedef typename JoinPoint::That __JP_That;
6615
 
  typedef typename JoinPoint::Target __JP_Target;
6616
 
  typedef typename JoinPoint::Result __JP_Result;
6617
 
 
6618
 
    Unit *&unit = *tjp->result ();
6619
 
    if (unit && unit->state ().onlyOnce ())
6620
 
      unit = 0;
6621
 
  }
6622
 
private:
6623
 
 
6624
 
    
6625
 
protected:
6626
 
  // this aspect should never be instantiated directly
6627
 
  PragmaOnce () {}
6628
 
};
6629
 
namespace AC {
6630
 
  template <class JoinPoint>
6631
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
6632
 
    ::PragmaOnce::aspectof()->__a0_after (tjp);
6633
 
  }
6634
 
  template <class JoinPoint>
6635
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
6636
 
    ::PragmaOnce::aspectof()->__a1_after (tjp);
6637
 
  }
6638
 
  template <class JoinPoint, class Binding>
6639
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
6640
 
    typedef typename Binding::template Arg<0> Arg0;
6641
 
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
6642
 
  }
6643
 
  template <class JoinPoint>
6644
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
6645
 
    ::PragmaOnce::aspectof()->__a3_after (tjp);
6646
 
  }
6647
 
6648
 
 
6649
 
 
6650
 
 
6651
 
#endif /* __PragmaOnce__ */
6652
 
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
6653
 
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
6892
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
6893
  template <class JoinPoint>
 
6894
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
6895
  template <class JoinPoint>
 
6896
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
6897
  template <class JoinPoint>
 
6898
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
6899
}
 
6900
#endif
 
6901
 
 
6902
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6903
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
6904
#endif
 
6905
 
 
6906
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6654
6907
// This file is part of PUMA.
6655
6908
// Copyright (C) 1999-2003  The PUMA developer team.
6656
6909
//                                                                
6676
6929
// be added last to the composite parser of a translation unit !!!
6677
6930
 
6678
6931
 
 
6932
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Stack.h"
 
6933
// This file is part of PUMA.
 
6934
// Copyright (C) 1999-2003  The PUMA developer team.
 
6935
//                                                                
 
6936
// This program is free software;  you can redistribute it and/or 
 
6937
// modify it under the terms of the GNU General Public License as 
 
6938
// published by the Free Software Foundation; either version 2 of 
 
6939
// the License, or (at your option) any later version.            
 
6940
//                                                                
 
6941
// This program is distributed in the hope that it will be useful,
 
6942
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6943
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6944
// GNU General Public License for more details.                   
 
6945
//                                                                
 
6946
// You should have received a copy of the GNU General Public      
 
6947
// License along with this program; if not, write to the Free     
 
6948
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6949
// MA  02111-1307  USA                                            
 
6950
 
 
6951
#ifndef __stack_h__
 
6952
#define __stack_h__
 
6953
 
 
6954
 
 
6955
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Stack.h"
 
6956
namespace Puma {
 
6957
 
 
6958
template <class Item>
 
6959
class Stack : private Array<Item> {
 
6960
public:
 
6961
  Stack (long is = 8192, long incr = 8192) :
 
6962
    Array<Item> (is, incr) {}
 
6963
  void push (Item f) { Array<Item>::append (f); }
 
6964
  Item &top () const { long len = Array<Item>::length ()-1; 
 
6965
                       return Array<Item>::lookup (len >= 0 ? len : 0); }
 
6966
  void pop () { Array<Item>::remove (Array<Item>::length () - 1); }
 
6967
  long length () const { return Array<Item>::length (); }
 
6968
  void reset () { Array<Item>::reset (); }
 
6969
};
 
6970
 
 
6971
} // namespace Puma
 
6972
 
 
6973
#endif /* __stack_h__ */
 
6974
 
 
6975
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6976
 
 
6977
#line 6978 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
6978
 
6679
6979
#ifndef __ac_fwd_ExtACKeywords__
6680
6980
#define __ac_fwd_ExtACKeywords__
6681
6981
class ExtACKeywords;
6682
6982
namespace AC {
6683
 
  template <class JoinPoint, class Binding>
6684
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
6685
 
  template <class JoinPoint, class Binding>
6686
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
6687
 
  template <class JoinPoint>
6688
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
6983
  template <class JoinPoint>
 
6984
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
6985
  template <class JoinPoint>
 
6986
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
6987
  template <class JoinPoint>
 
6988
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
6689
6989
}
6690
6990
#endif
6691
6991
 
6692
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6693
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
6992
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
6993
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6694
6994
#endif
 
6995
 
 
6996
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6695
6997
// This file is part of PUMA.
6696
6998
// Copyright (C) 1999-2003  The PUMA developer team.
6697
6999
//                                                                
6727
7029
 
6728
7030
class Token;
6729
7031
 
 
7032
 
 
7033
#line 7034 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
6730
7034
} // closed Puma
 
7035
class CCExprResolve;
 
7036
class CExprResolve;
6731
7037
class WinIfExists;
6732
7038
class WinImportHandler;
6733
7039
class WinMacros;
6734
 
class CMatchSyntax;
6735
 
class ExtGnu;
 
7040
class WinAsm;
 
7041
class WinDeclSpecs;
 
7042
class WinMemberExplSpec;
 
7043
class WinTypeKeywords;
 
7044
class WinFriend;
6736
7045
class ExtAC;
6737
7046
class ExtACBuilderCoupling;
6738
7047
class ExtACSyntaxCoupling;
6739
7048
class ExtACTree;
6740
7049
class ExtACKeywords;
6741
 
class WinAsm;
6742
 
class WinDeclSpecs;
6743
 
class WinMemberExplSpec;
6744
 
class WinTypeKeywords;
 
7050
class ExtGnu;
6745
7051
class PragmaOnceUnitState;
6746
7052
class PragmaOnce;
6747
 
class CCExprResolve;
6748
 
class CExprResolve;
 
7053
class CMatchSyntax;
6749
7054
namespace Puma {
6750
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
7055
 
 
7056
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7057
class CScanner : public CRecognizer, public Tokenizer {
 
7058
#line 7059 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7059
  friend class ::CCExprResolve;
 
7060
  friend class ::CExprResolve;
 
7061
  friend class ::WinIfExists;
6751
7062
  friend class ::WinImportHandler;
6752
7063
  friend class ::WinMacros;
6753
 
  friend class ::CMatchSyntax;
6754
 
  friend class ::ExtGnu;
 
7064
  friend class ::WinAsm;
 
7065
  friend class ::WinDeclSpecs;
 
7066
  friend class ::WinMemberExplSpec;
 
7067
  friend class ::WinTypeKeywords;
 
7068
  friend class ::WinFriend;
6755
7069
  friend class ::ExtAC;
6756
7070
  friend class ::ExtACBuilderCoupling;
6757
7071
  friend class ::ExtACSyntaxCoupling;
6758
7072
  friend class ::ExtACTree;
6759
7073
  friend class ::ExtACKeywords;
6760
 
  friend class ::WinAsm;
6761
 
  friend class ::WinDeclSpecs;
6762
 
  friend class ::WinMemberExplSpec;
6763
 
  friend class ::WinTypeKeywords;
 
7074
  friend class ::ExtGnu;
6764
7075
  friend class ::PragmaOnceUnitState;
6765
7076
  friend class ::PragmaOnce;
6766
 
  friend class ::CCExprResolve;
6767
 
  friend class ::CExprResolve;
 
7077
  friend class ::CMatchSyntax;
 
7078
 
 
7079
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6768
7080
 
6769
7081
  Location loc;
6770
7082
  ErrorSink &err;
6778
7090
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
6779
7091
  virtual ~CScanner () {}
6780
7092
  void configure (const Config &);
6781
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
7093
  
 
7094
#line 7095 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7095
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
7096
 
 
7097
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6782
7098
void fill_unit (Source &in, Unit &unit);
6783
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
7099
  
 
7100
#line 7101 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7101
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
7102
 
 
7103
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6784
7104
void fill_unit (const char *in, Unit &unit);
6785
7105
};
6786
7106
 
6788
7108
} // namespace Puma
6789
7109
 
6790
7110
#endif /* __c_scanner_h__ */
 
7111
 
 
7112
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
6791
7113
// This file is part of PUMA.
6792
7114
// Copyright (C) 1999-2003  The PUMA developer team.
6793
7115
//                                                                
6810
7132
#define __c_unit_h__
6811
7133
 
6812
7134
 
 
7135
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7136
 
 
7137
#line 7138 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7138
 
6813
7139
#ifndef __ac_fwd_ExtACKeywords__
6814
7140
#define __ac_fwd_ExtACKeywords__
6815
7141
class ExtACKeywords;
6816
7142
namespace AC {
6817
 
  template <class JoinPoint, class Binding>
6818
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
6819
 
  template <class JoinPoint, class Binding>
6820
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
6821
 
  template <class JoinPoint>
6822
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
7143
  template <class JoinPoint>
 
7144
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
7145
  template <class JoinPoint>
 
7146
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
7147
  template <class JoinPoint>
 
7148
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
6823
7149
}
6824
7150
#endif
6825
7151
 
6826
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6827
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
7152
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
7153
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6828
7154
#endif
 
7155
 
 
7156
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6829
7157
// This file is part of PUMA.
6830
7158
// Copyright (C) 1999-2003  The PUMA developer team.
6831
7159
//                                                                
6861
7189
 
6862
7190
class Token;
6863
7191
 
 
7192
 
 
7193
#line 7194 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
6864
7194
} // closed Puma
 
7195
class CCExprResolve;
 
7196
class CExprResolve;
6865
7197
class WinIfExists;
6866
7198
class WinImportHandler;
6867
7199
class WinMacros;
6868
 
class CMatchSyntax;
6869
 
class ExtGnu;
 
7200
class WinAsm;
 
7201
class WinDeclSpecs;
 
7202
class WinMemberExplSpec;
 
7203
class WinTypeKeywords;
 
7204
class WinFriend;
6870
7205
class ExtAC;
6871
7206
class ExtACBuilderCoupling;
6872
7207
class ExtACSyntaxCoupling;
6873
7208
class ExtACTree;
6874
7209
class ExtACKeywords;
6875
 
class WinAsm;
6876
 
class WinDeclSpecs;
6877
 
class WinMemberExplSpec;
6878
 
class WinTypeKeywords;
 
7210
class ExtGnu;
6879
7211
class PragmaOnceUnitState;
6880
7212
class PragmaOnce;
6881
 
class CCExprResolve;
6882
 
class CExprResolve;
 
7213
class CMatchSyntax;
6883
7214
namespace Puma {
6884
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
7215
 
 
7216
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7217
class CScanner : public CRecognizer, public Tokenizer {
 
7218
#line 7219 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7219
  friend class ::CCExprResolve;
 
7220
  friend class ::CExprResolve;
 
7221
  friend class ::WinIfExists;
6885
7222
  friend class ::WinImportHandler;
6886
7223
  friend class ::WinMacros;
6887
 
  friend class ::CMatchSyntax;
6888
 
  friend class ::ExtGnu;
 
7224
  friend class ::WinAsm;
 
7225
  friend class ::WinDeclSpecs;
 
7226
  friend class ::WinMemberExplSpec;
 
7227
  friend class ::WinTypeKeywords;
 
7228
  friend class ::WinFriend;
6889
7229
  friend class ::ExtAC;
6890
7230
  friend class ::ExtACBuilderCoupling;
6891
7231
  friend class ::ExtACSyntaxCoupling;
6892
7232
  friend class ::ExtACTree;
6893
7233
  friend class ::ExtACKeywords;
6894
 
  friend class ::WinAsm;
6895
 
  friend class ::WinDeclSpecs;
6896
 
  friend class ::WinMemberExplSpec;
6897
 
  friend class ::WinTypeKeywords;
 
7234
  friend class ::ExtGnu;
6898
7235
  friend class ::PragmaOnceUnitState;
6899
7236
  friend class ::PragmaOnce;
6900
 
  friend class ::CCExprResolve;
6901
 
  friend class ::CExprResolve;
 
7237
  friend class ::CMatchSyntax;
 
7238
 
 
7239
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6902
7240
 
6903
7241
  Location loc;
6904
7242
  ErrorSink &err;
6912
7250
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
6913
7251
  virtual ~CScanner () {}
6914
7252
  void configure (const Config &);
6915
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
7253
  
 
7254
#line 7255 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7255
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
7256
 
 
7257
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6916
7258
void fill_unit (Source &in, Unit &unit);
6917
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
7259
  
 
7260
#line 7261 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7261
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
7262
 
 
7263
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6918
7264
void fill_unit (const char *in, Unit &unit);
6919
7265
};
6920
7266
 
6922
7268
} // namespace Puma
6923
7269
 
6924
7270
#endif /* __c_scanner_h__ */
 
7271
 
 
7272
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
6925
7273
using namespace std;
6926
7274
 
6927
7275
namespace Puma {
6928
7276
 
6929
7277
 
 
7278
 
 
7279
#line 7280 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
6930
7280
} // closed Puma
 
7281
class CCExprResolve;
 
7282
class CExprResolve;
6931
7283
class WinIfExists;
6932
7284
class WinImportHandler;
6933
7285
class WinMacros;
6934
 
class CMatchSyntax;
6935
 
class ExtGnu;
 
7286
class WinAsm;
 
7287
class WinDeclSpecs;
 
7288
class WinMemberExplSpec;
 
7289
class WinTypeKeywords;
 
7290
class WinFriend;
6936
7291
class ExtAC;
6937
7292
class ExtACBuilderCoupling;
6938
7293
class ExtACSyntaxCoupling;
6939
7294
class ExtACTree;
6940
7295
class ExtACKeywords;
6941
 
class WinAsm;
6942
 
class WinDeclSpecs;
6943
 
class WinMemberExplSpec;
6944
 
class WinTypeKeywords;
 
7296
class ExtGnu;
6945
7297
class PragmaOnceUnitState;
6946
7298
class PragmaOnce;
6947
 
class CCExprResolve;
6948
 
class CExprResolve;
 
7299
class CMatchSyntax;
6949
7300
namespace Puma {
6950
 
class CUnit : public Unit, public std::ostringstream {  friend class ::WinIfExists;
 
7301
 
 
7302
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
7303
class CUnit : public Unit, public std::ostringstream {
 
7304
#line 7305 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7305
  friend class ::CCExprResolve;
 
7306
  friend class ::CExprResolve;
 
7307
  friend class ::WinIfExists;
6951
7308
  friend class ::WinImportHandler;
6952
7309
  friend class ::WinMacros;
6953
 
  friend class ::CMatchSyntax;
6954
 
  friend class ::ExtGnu;
 
7310
  friend class ::WinAsm;
 
7311
  friend class ::WinDeclSpecs;
 
7312
  friend class ::WinMemberExplSpec;
 
7313
  friend class ::WinTypeKeywords;
 
7314
  friend class ::WinFriend;
6955
7315
  friend class ::ExtAC;
6956
7316
  friend class ::ExtACBuilderCoupling;
6957
7317
  friend class ::ExtACSyntaxCoupling;
6958
7318
  friend class ::ExtACTree;
6959
7319
  friend class ::ExtACKeywords;
6960
 
  friend class ::WinAsm;
6961
 
  friend class ::WinDeclSpecs;
6962
 
  friend class ::WinMemberExplSpec;
6963
 
  friend class ::WinTypeKeywords;
 
7320
  friend class ::ExtGnu;
6964
7321
  friend class ::PragmaOnceUnitState;
6965
7322
  friend class ::PragmaOnce;
6966
 
  friend class ::CCExprResolve;
6967
 
  friend class ::CExprResolve;
 
7323
  friend class ::CMatchSyntax;
 
7324
 
 
7325
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CUnit.h"
6968
7326
 
6969
7327
  CScanner _scanner;
6970
7328
 
6985
7343
} // namespace Puma
6986
7344
 
6987
7345
#endif /* __c_unit_h__ */
 
7346
 
 
7347
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
6988
7348
// This file is part of PUMA.
6989
7349
// Copyright (C) 1999-2003  The PUMA developer team.
6990
7350
//                                                                
7009
7369
// The macro expander provides methods to expand a single macro or
7010
7370
// all macros of a given string or unit.
7011
7371
 
 
7372
 
 
7373
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7012
7374
using std::set;
7013
7375
 
 
7376
 
 
7377
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7014
7378
// This file is part of PUMA.
7015
7379
// Copyright (C) 1999-2003  The PUMA developer team.
7016
7380
//                                                                
7032
7396
#ifndef __pre_arg_desc__
7033
7397
#define __pre_arg_desc__
7034
7398
 
 
7399
 
 
7400
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7035
7401
// This file is part of PUMA.
7036
7402
// Copyright (C) 1999-2003  The PUMA developer team.
7037
7403
//                                                                
7055
7421
 
7056
7422
// Special unit for macro expansions
7057
7423
 
 
7424
 
 
7425
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7058
7426
namespace Puma {
7059
7427
 
7060
7428
 
 
7429
 
 
7430
#line 7431 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
7061
7431
} // closed Puma
 
7432
class CCExprResolve;
 
7433
class CExprResolve;
7062
7434
class WinIfExists;
7063
7435
class WinImportHandler;
7064
7436
class WinMacros;
7065
 
class CMatchSyntax;
7066
 
class ExtGnu;
 
7437
class WinAsm;
 
7438
class WinDeclSpecs;
 
7439
class WinMemberExplSpec;
 
7440
class WinTypeKeywords;
 
7441
class WinFriend;
7067
7442
class ExtAC;
7068
7443
class ExtACBuilderCoupling;
7069
7444
class ExtACSyntaxCoupling;
7070
7445
class ExtACTree;
7071
7446
class ExtACKeywords;
7072
 
class WinAsm;
7073
 
class WinDeclSpecs;
7074
 
class WinMemberExplSpec;
7075
 
class WinTypeKeywords;
 
7447
class ExtGnu;
7076
7448
class PragmaOnceUnitState;
7077
7449
class PragmaOnce;
7078
 
class CCExprResolve;
7079
 
class CExprResolve;
 
7450
class CMatchSyntax;
7080
7451
namespace Puma {
7081
 
class MacroUnit : public Unit {  friend class ::WinIfExists;
 
7452
 
 
7453
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
7454
class MacroUnit : public Unit {
 
7455
#line 7456 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7456
  friend class ::CCExprResolve;
 
7457
  friend class ::CExprResolve;
 
7458
  friend class ::WinIfExists;
7082
7459
  friend class ::WinImportHandler;
7083
7460
  friend class ::WinMacros;
7084
 
  friend class ::CMatchSyntax;
7085
 
  friend class ::ExtGnu;
 
7461
  friend class ::WinAsm;
 
7462
  friend class ::WinDeclSpecs;
 
7463
  friend class ::WinMemberExplSpec;
 
7464
  friend class ::WinTypeKeywords;
 
7465
  friend class ::WinFriend;
7086
7466
  friend class ::ExtAC;
7087
7467
  friend class ::ExtACBuilderCoupling;
7088
7468
  friend class ::ExtACSyntaxCoupling;
7089
7469
  friend class ::ExtACTree;
7090
7470
  friend class ::ExtACKeywords;
7091
 
  friend class ::WinAsm;
7092
 
  friend class ::WinDeclSpecs;
7093
 
  friend class ::WinMemberExplSpec;
7094
 
  friend class ::WinTypeKeywords;
 
7471
  friend class ::ExtGnu;
7095
7472
  friend class ::PragmaOnceUnitState;
7096
7473
  friend class ::PragmaOnce;
7097
 
  friend class ::CCExprResolve;
7098
 
  friend class ::CExprResolve;
 
7474
  friend class ::CMatchSyntax;
 
7475
 
 
7476
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
7099
7477
 
7100
7478
  Unit *_CallingUnit;
7101
7479
  Token *_StartToken;
7131
7509
} // namespace Puma
7132
7510
 
7133
7511
#endif /* __MacroUnit__ */
 
7512
 
 
7513
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7134
7514
namespace Puma {
7135
7515
 
7136
7516
 
 
7517
 
 
7518
#line 7519 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
7137
7519
} // closed Puma
 
7520
class CCExprResolve;
 
7521
class CExprResolve;
7138
7522
class WinIfExists;
7139
7523
class WinImportHandler;
7140
7524
class WinMacros;
7141
 
class CMatchSyntax;
7142
 
class ExtGnu;
 
7525
class WinAsm;
 
7526
class WinDeclSpecs;
 
7527
class WinMemberExplSpec;
 
7528
class WinTypeKeywords;
 
7529
class WinFriend;
7143
7530
class ExtAC;
7144
7531
class ExtACBuilderCoupling;
7145
7532
class ExtACSyntaxCoupling;
7146
7533
class ExtACTree;
7147
7534
class ExtACKeywords;
7148
 
class WinAsm;
7149
 
class WinDeclSpecs;
7150
 
class WinMemberExplSpec;
7151
 
class WinTypeKeywords;
 
7535
class ExtGnu;
7152
7536
class PragmaOnceUnitState;
7153
7537
class PragmaOnce;
7154
 
class CCExprResolve;
7155
 
class CExprResolve;
 
7538
class CMatchSyntax;
7156
7539
namespace Puma {
7157
 
class PreArgDesc {  friend class ::WinIfExists;
 
7540
 
 
7541
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
7542
class PreArgDesc {
 
7543
#line 7544 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7544
  friend class ::CCExprResolve;
 
7545
  friend class ::CExprResolve;
 
7546
  friend class ::WinIfExists;
7158
7547
  friend class ::WinImportHandler;
7159
7548
  friend class ::WinMacros;
7160
 
  friend class ::CMatchSyntax;
7161
 
  friend class ::ExtGnu;
 
7549
  friend class ::WinAsm;
 
7550
  friend class ::WinDeclSpecs;
 
7551
  friend class ::WinMemberExplSpec;
 
7552
  friend class ::WinTypeKeywords;
 
7553
  friend class ::WinFriend;
7162
7554
  friend class ::ExtAC;
7163
7555
  friend class ::ExtACBuilderCoupling;
7164
7556
  friend class ::ExtACSyntaxCoupling;
7165
7557
  friend class ::ExtACTree;
7166
7558
  friend class ::ExtACKeywords;
7167
 
  friend class ::WinAsm;
7168
 
  friend class ::WinDeclSpecs;
7169
 
  friend class ::WinMemberExplSpec;
7170
 
  friend class ::WinTypeKeywords;
 
7559
  friend class ::ExtGnu;
7171
7560
  friend class ::PragmaOnceUnitState;
7172
7561
  friend class ::PragmaOnce;
7173
 
  friend class ::CCExprResolve;
7174
 
  friend class ::CExprResolve;
 
7562
  friend class ::CMatchSyntax;
 
7563
 
 
7564
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
7175
7565
 
7176
7566
  // Collected arguments of a function-like macro.
7177
7567
  Array<MacroUnit> m_Args;
7199
7589
} // namespace Puma
7200
7590
 
7201
7591
#endif /* __pre_arg_desc__ */
 
7592
 
 
7593
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7202
7594
namespace Puma {
7203
7595
 
7204
7596
 
7210
7602
class ErrorStream;
7211
7603
class PreMacro;
7212
7604
 
 
7605
 
 
7606
#line 7607 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
7213
7607
} // closed Puma
 
7608
class CCExprResolve;
 
7609
class CExprResolve;
7214
7610
class WinIfExists;
7215
7611
class WinImportHandler;
7216
7612
class WinMacros;
7217
 
class CMatchSyntax;
7218
 
class ExtGnu;
 
7613
class WinAsm;
 
7614
class WinDeclSpecs;
 
7615
class WinMemberExplSpec;
 
7616
class WinTypeKeywords;
 
7617
class WinFriend;
7219
7618
class ExtAC;
7220
7619
class ExtACBuilderCoupling;
7221
7620
class ExtACSyntaxCoupling;
7222
7621
class ExtACTree;
7223
7622
class ExtACKeywords;
7224
 
class WinAsm;
7225
 
class WinDeclSpecs;
7226
 
class WinMemberExplSpec;
7227
 
class WinTypeKeywords;
 
7623
class ExtGnu;
7228
7624
class PragmaOnceUnitState;
7229
7625
class PragmaOnce;
7230
 
class CCExprResolve;
7231
 
class CExprResolve;
 
7626
class CMatchSyntax;
7232
7627
namespace Puma {
7233
 
class PreMacroExpander {  friend class ::WinIfExists;
 
7628
 
 
7629
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
7630
class PreMacroExpander {
 
7631
#line 7632 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7632
  friend class ::CCExprResolve;
 
7633
  friend class ::CExprResolve;
 
7634
  friend class ::WinIfExists;
7234
7635
  friend class ::WinImportHandler;
7235
7636
  friend class ::WinMacros;
7236
 
  friend class ::CMatchSyntax;
7237
 
  friend class ::ExtGnu;
 
7637
  friend class ::WinAsm;
 
7638
  friend class ::WinDeclSpecs;
 
7639
  friend class ::WinMemberExplSpec;
 
7640
  friend class ::WinTypeKeywords;
 
7641
  friend class ::WinFriend;
7238
7642
  friend class ::ExtAC;
7239
7643
  friend class ::ExtACBuilderCoupling;
7240
7644
  friend class ::ExtACSyntaxCoupling;
7241
7645
  friend class ::ExtACTree;
7242
7646
  friend class ::ExtACKeywords;
7243
 
  friend class ::WinAsm;
7244
 
  friend class ::WinDeclSpecs;
7245
 
  friend class ::WinMemberExplSpec;
7246
 
  friend class ::WinTypeKeywords;
 
7647
  friend class ::ExtGnu;
7247
7648
  friend class ::PragmaOnceUnitState;
7248
7649
  friend class ::PragmaOnce;
7249
 
  friend class ::CCExprResolve;
7250
 
  friend class ::CExprResolve;
 
7650
  friend class ::CMatchSyntax;
 
7651
 
 
7652
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
7251
7653
 
7252
7654
  TokenStream        *_scanner;
7253
7655
  PreMacroManager    *_macroManager;
7312
7714
  // Push unit on token stream.
7313
7715
  void pushUnit (TokenStream &, Unit *) const;
7314
7716
 
 
7717
  // Get the next non-whitespace non-comment token
 
7718
  Token* nextPreprocessingToken (Token*, Unit*) const;
 
7719
 
 
7720
  // Get the previous non-whitespace non-comment token
 
7721
  Token* prevPreprocessingToken (Token*, Unit*) const;
 
7722
 
 
7723
  // Check if the given unit contains only spaces and comments.
 
7724
  bool onlySpacesAndComments (MacroUnit&) const;
 
7725
 
7315
7726
public:
7316
7727
  // Special constructor. Call reset() before using the expander.
7317
7728
  PreMacroExpander ();
7337
7748
} // namespace Puma
7338
7749
 
7339
7750
#endif /* __pre_macro_expander__ */
 
7751
 
 
7752
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7340
7753
using namespace std;
7341
7754
 
7342
7755
namespace Puma {
7352
7765
class PreFileIncluder;
7353
7766
class PrePredicateManager;
7354
7767
 
7355
 
} // closed Puma
7356
 
class WinIfExists;
7357
 
class WinImportHandler;
7358
 
class WinMacros;
7359
 
class CMatchSyntax;
7360
 
class ExtGnu;
7361
 
class ExtAC;
7362
 
class ExtACBuilderCoupling;
7363
 
class ExtACSyntaxCoupling;
7364
 
class ExtACTree;
7365
 
class ExtACKeywords;
7366
 
class WinAsm;
7367
 
class WinDeclSpecs;
7368
 
class WinMemberExplSpec;
7369
 
class WinTypeKeywords;
7370
 
class PragmaOnceUnitState;
7371
 
class PragmaOnce;
7372
 
class CCExprResolve;
7373
 
class CExprResolve;
7374
 
namespace Puma {
7375
 
class PreprocessorParser : public PumaTokenSource {  friend class ::WinIfExists;
7376
 
  friend class ::WinImportHandler;
7377
 
  friend class ::WinMacros;
7378
 
  friend class ::CMatchSyntax;
7379
 
  friend class ::ExtGnu;
7380
 
  friend class ::ExtAC;
7381
 
  friend class ::ExtACBuilderCoupling;
7382
 
  friend class ::ExtACSyntaxCoupling;
7383
 
  friend class ::ExtACTree;
7384
 
  friend class ::ExtACKeywords;
7385
 
  friend class ::WinAsm;
7386
 
  friend class ::WinDeclSpecs;
7387
 
  friend class ::WinMemberExplSpec;
7388
 
  friend class ::WinTypeKeywords;
7389
 
  friend class ::PragmaOnceUnitState;
7390
 
  friend class ::PragmaOnce;
7391
 
  friend class ::CCExprResolve;
7392
 
  friend class ::CExprResolve;
 
7768
 
 
7769
#line 7770 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7770
} // closed Puma
 
7771
class CCExprResolve;
 
7772
class CExprResolve;
 
7773
class WinIfExists;
 
7774
class WinImportHandler;
 
7775
class WinMacros;
 
7776
class WinAsm;
 
7777
class WinDeclSpecs;
 
7778
class WinMemberExplSpec;
 
7779
class WinTypeKeywords;
 
7780
class WinFriend;
 
7781
class ExtAC;
 
7782
class ExtACBuilderCoupling;
 
7783
class ExtACSyntaxCoupling;
 
7784
class ExtACTree;
 
7785
class ExtACKeywords;
 
7786
class ExtGnu;
 
7787
class PragmaOnceUnitState;
 
7788
class PragmaOnce;
 
7789
class CMatchSyntax;
 
7790
namespace Puma {
 
7791
 
 
7792
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
7793
 
 
7794
#line 7795 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7795
} // closed Puma
 
7796
 
 
7797
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
7798
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
7799
 
 
7800
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7801
// This file is part of PUMA.
 
7802
// Copyright (C) 1999-2003  The PUMA developer team.
 
7803
//                                                                
 
7804
// This program is free software;  you can redistribute it and/or 
 
7805
// modify it under the terms of the GNU General Public License as 
 
7806
// published by the Free Software Foundation; either version 2 of 
 
7807
// the License, or (at your option) any later version.            
 
7808
//                                                                
 
7809
// This program is distributed in the hope that it will be useful,
 
7810
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
7811
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
7812
// GNU General Public License for more details.                   
 
7813
//                                                                
 
7814
// You should have received a copy of the GNU General Public      
 
7815
// License along with this program; if not, write to the Free     
 
7816
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
7817
// MA  02111-1307  USA                                            
 
7818
 
 
7819
#ifndef __WinIfExists__
 
7820
#define __WinIfExists__
 
7821
 
 
7822
/********************************************************/
 
7823
/* Win __if_exists and __if_not_exists support aspect   */
 
7824
/********************************************************/
 
7825
 
 
7826
 
 
7827
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7828
namespace Puma {
 
7829
  
 
7830
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7831
 
 
7832
}
 
7833
 
 
7834
 
 
7835
#line 7836 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7836
class CCExprResolve;
 
7837
class CExprResolve;
 
7838
class WinImportHandler;
 
7839
class WinMacros;
 
7840
class WinAsm;
 
7841
class WinDeclSpecs;
 
7842
class WinMemberExplSpec;
 
7843
class WinTypeKeywords;
 
7844
class WinFriend;
 
7845
class ExtAC;
 
7846
class ExtACBuilderCoupling;
 
7847
class ExtACSyntaxCoupling;
 
7848
class ExtACTree;
 
7849
class ExtACKeywords;
 
7850
class ExtGnu;
 
7851
class PragmaOnceUnitState;
 
7852
class PragmaOnce;
 
7853
class CMatchSyntax;
 
7854
 
 
7855
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7856
class WinIfExists {
 
7857
#line 7858 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7858
 
 
7859
public:
 
7860
  static WinIfExists *aspectof () {
 
7861
    static WinIfExists __instance;
 
7862
    return &__instance;
 
7863
  }
 
7864
  static WinIfExists *aspectOf () {
 
7865
    return aspectof ();
 
7866
  }
 
7867
private:
 
7868
 
 
7869
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7870
 
 
7871
#line 7872 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7872
  friend class ::CCExprResolve;
 
7873
  friend class ::CExprResolve;
 
7874
  friend class ::WinImportHandler;
 
7875
  friend class ::WinMacros;
 
7876
  friend class ::WinAsm;
 
7877
  friend class ::WinDeclSpecs;
 
7878
  friend class ::WinMemberExplSpec;
 
7879
  friend class ::WinTypeKeywords;
 
7880
  friend class ::WinFriend;
 
7881
  friend class ::ExtAC;
 
7882
  friend class ::ExtACBuilderCoupling;
 
7883
  friend class ::ExtACSyntaxCoupling;
 
7884
  friend class ::ExtACTree;
 
7885
  friend class ::ExtACKeywords;
 
7886
  friend class ::ExtGnu;
 
7887
  friend class ::PragmaOnceUnitState;
 
7888
  friend class ::PragmaOnce;
 
7889
  friend class ::CMatchSyntax;
 
7890
 
 
7891
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7892
 
 
7893
  /********************************************************/
 
7894
  /* Win __if_exists and __if_not_exists                  */
 
7895
  /********************************************************/
 
7896
 
 
7897
  // pointcut definitions
 
7898
  
 
7899
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7900
 
 
7901
 
 
7902
  // structural extensions
 
7903
  
 
7904
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7905
 
 
7906
 
 
7907
  // preprocess __if_exists and __if_not_exists statements
 
7908
  
 
7909
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7910
 
 
7911
public: template<class JoinPoint> void __a0_around 
 
7912
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7913
 
 
7914
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7915
(JoinPoint *tjp)
 
7916
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7917
 {
 
7918
#line 7919 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7919
 
 
7920
  JoinPoint *&thisJoinPoint = tjp;
 
7921
 
 
7922
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7923
 
 
7924
#line 7925 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7925
 
 
7926
  typedef typename JoinPoint::That __JP_That;
 
7927
  typedef typename JoinPoint::Target __JP_Target;
 
7928
  typedef typename JoinPoint::Result __JP_Result;
 
7929
 
 
7930
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7931
 
 
7932
    Puma::Token *token;
 
7933
    int type;
 
7934
    __JP_That
 
7935
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7936
 *preparser;
 
7937
  
 
7938
    preparser = tjp->that ();
 
7939
    tjp->proceed (); // get the next token
 
7940
    token = *tjp->result ();
 
7941
    if (token) {
 
7942
      type = token->type ();
 
7943
      // __if_exists (...) { ... }
 
7944
      if (type == Puma::TOK_IF_EXISTS) {
 
7945
        preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
 
7946
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
7947
        return;
 
7948
        // __if_not_exists (...) { ... }
 
7949
      } else if (type == Puma::TOK_IF_NOT_EXISTS) {
 
7950
        preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
 
7951
        preparser->_depth.push (1);
 
7952
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
7953
        return;
 
7954
      }
 
7955
      // skip closing `}' of __if_not_exists
 
7956
      if (preparser->_depth.length ()) {
 
7957
        if (type == Puma::TOK_OPEN_CURLY) 
 
7958
          preparser->_depth.top () = preparser->_depth.top () + 1;
 
7959
        else if (type == Puma::TOK_CLOSE_CURLY) { 
 
7960
          preparser->_depth.top () = preparser->_depth.top () - 1;
 
7961
          if (preparser->_depth.top () == 0) {
 
7962
            preparser->_depth.pop ();
 
7963
            *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
7964
            return;
 
7965
          }
 
7966
        }
 
7967
      }
 
7968
    }
 
7969
  }
 
7970
#line 7971 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7971
 
 
7972
private:
 
7973
 
 
7974
#line 82 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7975
 
 
7976
 
 
7977
protected:
 
7978
  WinIfExists () {}
 
7979
};
 
7980
#line 7981 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
7981
 
 
7982
namespace AC {
 
7983
  template <class JoinPoint>
 
7984
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
 
7985
    ::WinIfExists::aspectof()->__a0_around (tjp);
 
7986
  }
 
7987
 
7988
 
 
7989
#line 86 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7990
 
 
7991
 
 
7992
namespace Puma {
 
7993
  
 
7994
#line 95 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
7995
 
 
7996
    
 
7997
  // skip __if_exists resp. __if_not_exists statement
 
7998
  
 
7999
#line 135 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8000
 
 
8001
}
 
8002
 
 
8003
#endif /* __WinIfExists__ */
 
8004
 
 
8005
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8006
#endif
 
8007
namespace Puma {
 
8008
 
 
8009
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8010
 
 
8011
#line 8012 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8012
} // closed Puma
 
8013
 
 
8014
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8015
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8016
 
 
8017
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8018
// This file is part of PUMA.
 
8019
// Copyright (C) 1999-2003  The PUMA developer team.
 
8020
//                                                                
 
8021
// This program is free software;  you can redistribute it and/or 
 
8022
// modify it under the terms of the GNU General Public License as 
 
8023
// published by the Free Software Foundation; either version 2 of 
 
8024
// the License, or (at your option) any later version.            
 
8025
//                                                                
 
8026
// This program is distributed in the hope that it will be useful,
 
8027
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
8028
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
8029
// GNU General Public License for more details.                   
 
8030
//                                                                
 
8031
// You should have received a copy of the GNU General Public      
 
8032
// License along with this program; if not, write to the Free     
 
8033
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
8034
// MA  02111-1307  USA                                            
 
8035
 
 
8036
#ifndef __PragmaOnce__
 
8037
#define __PragmaOnce__
 
8038
 
 
8039
/********************************************************/
 
8040
/* Win #pragma once support aspect                      */
 
8041
/********************************************************/
 
8042
 
 
8043
 
 
8044
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8045
 
 
8046
#line 8047 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8047
class CCExprResolve;
 
8048
class CExprResolve;
 
8049
class WinIfExists;
 
8050
class WinImportHandler;
 
8051
class WinMacros;
 
8052
class WinAsm;
 
8053
class WinDeclSpecs;
 
8054
class WinMemberExplSpec;
 
8055
class WinTypeKeywords;
 
8056
class WinFriend;
 
8057
class ExtAC;
 
8058
class ExtACBuilderCoupling;
 
8059
class ExtACSyntaxCoupling;
 
8060
class ExtACTree;
 
8061
class ExtACKeywords;
 
8062
class ExtGnu;
 
8063
class PragmaOnceUnitState;
 
8064
class CMatchSyntax;
 
8065
 
 
8066
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8067
class PragmaOnce {
 
8068
#line 8069 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8069
 
 
8070
public:
 
8071
  static PragmaOnce *aspectof () {
 
8072
    static PragmaOnce __instance;
 
8073
    return &__instance;
 
8074
  }
 
8075
  static PragmaOnce *aspectOf () {
 
8076
    return aspectof ();
 
8077
  }
 
8078
private:
 
8079
 
 
8080
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8081
 
 
8082
#line 8083 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8083
  friend class ::CCExprResolve;
 
8084
  friend class ::CExprResolve;
 
8085
  friend class ::WinIfExists;
 
8086
  friend class ::WinImportHandler;
 
8087
  friend class ::WinMacros;
 
8088
  friend class ::WinAsm;
 
8089
  friend class ::WinDeclSpecs;
 
8090
  friend class ::WinMemberExplSpec;
 
8091
  friend class ::WinTypeKeywords;
 
8092
  friend class ::WinFriend;
 
8093
  friend class ::ExtAC;
 
8094
  friend class ::ExtACBuilderCoupling;
 
8095
  friend class ::ExtACSyntaxCoupling;
 
8096
  friend class ::ExtACTree;
 
8097
  friend class ::ExtACKeywords;
 
8098
  friend class ::ExtGnu;
 
8099
  friend class ::PragmaOnceUnitState;
 
8100
  friend class ::CMatchSyntax;
 
8101
 
 
8102
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8103
 
 
8104
  /******************************************************/
 
8105
  /* detect #pragma once in the token stream of cpp     */
 
8106
  /******************************************************/
 
8107
 
 
8108
  // pointcut definitions
 
8109
  
 
8110
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8111
 
 
8112
  
 
8113
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8114
 
 
8115
  
 
8116
  // extend the preprocessor parser by the filter state
 
8117
  
 
8118
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8119
 
 
8120
 
 
8121
  // initialize the filter state
 
8122
  
 
8123
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8124
 
 
8125
public: template<class JoinPoint> void __a0_after 
 
8126
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8127
 
 
8128
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8129
(JoinPoint *tjp)
 
8130
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8131
 {
 
8132
#line 8133 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8133
 
 
8134
  typedef typename JoinPoint::That __JP_That;
 
8135
  typedef typename JoinPoint::Target __JP_Target;
 
8136
  typedef typename JoinPoint::Result __JP_Result;
 
8137
 
 
8138
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8139
 
 
8140
    // TODO: it would be better to have construction advice -> but in lem file
 
8141
    tjp->that ()->_pragma_token = 0;
 
8142
  }
 
8143
#line 8144 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8144
 
 
8145
private:
 
8146
 
 
8147
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8148
 
 
8149
  
 
8150
  // filter #pragma once
 
8151
  
 
8152
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8153
 
 
8154
public: template<class JoinPoint> void __a1_after 
 
8155
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8156
 
 
8157
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8158
(JoinPoint *tjp)
 
8159
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8160
 {
 
8161
#line 8162 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8162
 
 
8163
  typedef typename JoinPoint::That __JP_That;
 
8164
  typedef typename JoinPoint::Target __JP_Target;
 
8165
  typedef typename JoinPoint::Result __JP_Result;
 
8166
 
 
8167
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8168
 
 
8169
    Puma::Token *tok = *tjp->result ();
 
8170
    __JP_That
 
8171
#line 53 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8172
 &that = *tjp->that ();
 
8173
    if (!tok || !tok->is_directive ()) {
 
8174
      that._pragma_token = 0;
 
8175
      return;
 
8176
    }
 
8177
    if (strcmp ("#pragma", tok->text ()) == 0) {
 
8178
      that._pragma_token = tok;
 
8179
    }
 
8180
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
 
8181
      Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
 
8182
      assert (unit);
 
8183
      unit->state ().onlyOnce (true);
 
8184
    }
 
8185
  }
 
8186
#line 8187 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8187
 
 
8188
private:
 
8189
 
 
8190
#line 66 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8191
 
 
8192
  
 
8193
  /********************************************************/
 
8194
  /* block the handling of pragma once files              */
 
8195
  /********************************************************/
 
8196
 
 
8197
  // don't let file includer include files twice
 
8198
  // to be precise: the file is included again, but the inclusion produces
 
8199
  // no tokens
 
8200
  
 
8201
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8202
 
 
8203
public: template<class JoinPoint> void __a2_around 
 
8204
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8205
 
 
8206
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8207
(JoinPoint *tjp, Puma::Unit *unit)
 
8208
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8209
 {
 
8210
#line 8211 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8211
 
 
8212
  typedef typename JoinPoint::That __JP_That;
 
8213
  typedef typename JoinPoint::Target __JP_Target;
 
8214
  typedef typename JoinPoint::Result __JP_Result;
 
8215
 
 
8216
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8217
 
 
8218
    if (! unit || ! unit->state ().onlyOnce ())
 
8219
      tjp->proceed ();
 
8220
  }
 
8221
#line 8222 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8222
 
 
8223
private:
 
8224
 
 
8225
#line 80 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8226
 
 
8227
 
 
8228
  // includeFile shall return 0 if the file was not included
 
8229
  
 
8230
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8231
 
 
8232
public: template<class JoinPoint> void __a3_after 
 
8233
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8234
 
 
8235
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8236
(JoinPoint *tjp)
 
8237
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8238
 {
 
8239
#line 8240 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8240
 
 
8241
  typedef typename JoinPoint::That __JP_That;
 
8242
  typedef typename JoinPoint::Target __JP_Target;
 
8243
  typedef typename JoinPoint::Result __JP_Result;
 
8244
 
 
8245
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8246
 
 
8247
    Puma::Unit *&unit = *tjp->result ();
 
8248
    if (unit && unit->state ().onlyOnce ())
 
8249
      //unit = 0;
 
8250
      tjp->that ()->_guarded = true;
 
8251
  }
 
8252
#line 8253 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8253
 
 
8254
private:
 
8255
 
 
8256
#line 89 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8257
 
 
8258
    
 
8259
protected:
 
8260
  // this aspect should never be instantiated directly
 
8261
  PragmaOnce () {}
 
8262
};
 
8263
#line 8264 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8264
 
 
8265
namespace AC {
 
8266
  template <class JoinPoint>
 
8267
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
 
8268
    ::PragmaOnce::aspectof()->__a0_after (tjp);
 
8269
  }
 
8270
  template <class JoinPoint>
 
8271
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
 
8272
    ::PragmaOnce::aspectof()->__a1_after (tjp);
 
8273
  }
 
8274
  template <class JoinPoint>
 
8275
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
 
8276
    typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
 
8277
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
 
8278
  }
 
8279
  template <class JoinPoint>
 
8280
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
 
8281
    ::PragmaOnce::aspectof()->__a3_after (tjp);
 
8282
  }
 
8283
 
8284
 
 
8285
#line 94 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8286
 
 
8287
 
 
8288
 
 
8289
#endif /* __PragmaOnce__ */
 
8290
 
 
8291
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8292
#endif
 
8293
namespace Puma {
 
8294
 
 
8295
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8296
class PreprocessorParser : public PumaTokenSource {
 
8297
#line 8298 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8298
  friend class ::CCExprResolve;
 
8299
  friend class ::CExprResolve;
 
8300
  friend class ::WinIfExists;
 
8301
  friend class ::WinImportHandler;
 
8302
  friend class ::WinMacros;
 
8303
  friend class ::WinAsm;
 
8304
  friend class ::WinDeclSpecs;
 
8305
  friend class ::WinMemberExplSpec;
 
8306
  friend class ::WinTypeKeywords;
 
8307
  friend class ::WinFriend;
 
8308
  friend class ::ExtAC;
 
8309
  friend class ::ExtACBuilderCoupling;
 
8310
  friend class ::ExtACSyntaxCoupling;
 
8311
  friend class ::ExtACTree;
 
8312
  friend class ::ExtACKeywords;
 
8313
  friend class ::ExtGnu;
 
8314
  friend class ::PragmaOnceUnitState;
 
8315
  friend class ::PragmaOnce;
 
8316
  friend class ::CMatchSyntax;
 
8317
 
 
8318
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7393
8319
 
7394
8320
public:
7395
8321
  // The current mode for token preprocessing
7449
8375
  PreLevelState       *levelState () const       { return _levelState; }
7450
8376
  PreParserState      *parserState () const      { return _parserState; }
7451
8377
  PreMacroManager     *macroManager () const     { return _macroManager; }
 
8378
  void macroManager   (PreMacroManager *m)       { _macroManager = m; }
7452
8379
  PreFileIncluder     *fileIncluder () const     { return _fileIncluder; }
7453
8380
  PrePredicateManager *predicateManager () const { return _predicateManager; }
7454
8381
  UnitManager         *unitManager () const      { return _unitManager; }
7456
8383
  PreMode              pre_mode () const         { return _pre_mode; } 
7457
8384
  bool                 supportGNU () const       { return _support_gnu; }
7458
8385
  CScanner            &cscanner () const         { return (CScanner&) _scanner; }
 
8386
  const char          *importHandler () const    { return _importHandler; }
7459
8387
 
7460
8388
  // Return the preprocessor syntax tree.
7461
8389
  PreTree *syntaxTree () const;
7474
8402
  void freeSyntaxTree ();
7475
8403
        
7476
8404
  // Configure the preprocessor.
7477
 
  public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
8405
  
 
8406
#line 8407 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8407
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
8408
 
 
8409
#line 134 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7478
8410
void configure (const Config &, bool = true);
7479
8411
        
7480
8412
  // Get the next token to parse.
7481
 
  public: inline ::Puma::Token * __exec_old_next();
 
8413
  
 
8414
#line 8415 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8415
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
 
8416
 
 
8417
#line 137 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7482
8418
Token *next ();
7483
8419
        
7484
8420
  TokenStream *scanner () const { return _stream; }
7510
8446
 
7511
8447
  void supportGNU (bool);
7512
8448
   private:
 
8449
 
 
8450
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
8451
 Puma :: Token * _pragma_token ;   private:
7513
8452
  typedef PreprocessorParser WinIfExistsCpp;
7514
 
 public :
7515
 
 
7516
 
Stack < unsigned > _depth ;
7517
 
 
7518
 
void skip_up_to ( int ) ;  private:
7519
 
 public :
7520
 
const char * importHandler ( ) const { return _importHandler ; }  private:
7521
 
 Token * _pragma_token ;};
 
8453
 
 
8454
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
8455
 public :
 
8456
 
 
8457
Puma :: Stack < unsigned > _depth ;
 
8458
 
 
8459
void skip_up_to ( int ) ;
 
8460
#line 167 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8461
};
7522
8462
 
7523
8463
 
7524
8464
} // namespace Puma
7525
8465
 
7526
8466
#endif /* __preprocessor_parser__ */
7527
 
#endif // __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
8467
 
 
8468
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7528
8469
using std::map;
7529
8470
 
7530
8471
namespace Puma {
7535
8476
class UnitManager;
7536
8477
class Unit;
7537
8478
 
 
8479
 
 
8480
#line 8481 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
7538
8481
} // closed Puma
 
8482
class CCExprResolve;
 
8483
class CExprResolve;
7539
8484
class WinIfExists;
7540
8485
class WinImportHandler;
7541
8486
class WinMacros;
7542
 
class CMatchSyntax;
7543
 
class ExtGnu;
 
8487
class WinAsm;
 
8488
class WinDeclSpecs;
 
8489
class WinMemberExplSpec;
 
8490
class WinTypeKeywords;
 
8491
class WinFriend;
7544
8492
class ExtAC;
7545
8493
class ExtACBuilderCoupling;
7546
8494
class ExtACSyntaxCoupling;
7547
8495
class ExtACTree;
7548
8496
class ExtACKeywords;
7549
 
class WinAsm;
7550
 
class WinDeclSpecs;
7551
 
class WinMemberExplSpec;
7552
 
class WinTypeKeywords;
 
8497
class ExtGnu;
7553
8498
class PragmaOnceUnitState;
7554
8499
class PragmaOnce;
7555
 
class CCExprResolve;
7556
 
class CExprResolve;
 
8500
class CMatchSyntax;
7557
8501
namespace Puma {
7558
 
class PreFileIncluder {  friend class ::WinIfExists;
 
8502
 
 
8503
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
 
8504
class PreFileIncluder {
 
8505
#line 8506 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8506
  friend class ::CCExprResolve;
 
8507
  friend class ::CExprResolve;
 
8508
  friend class ::WinIfExists;
7559
8509
  friend class ::WinImportHandler;
7560
8510
  friend class ::WinMacros;
7561
 
  friend class ::CMatchSyntax;
7562
 
  friend class ::ExtGnu;
 
8511
  friend class ::WinAsm;
 
8512
  friend class ::WinDeclSpecs;
 
8513
  friend class ::WinMemberExplSpec;
 
8514
  friend class ::WinTypeKeywords;
 
8515
  friend class ::WinFriend;
7563
8516
  friend class ::ExtAC;
7564
8517
  friend class ::ExtACBuilderCoupling;
7565
8518
  friend class ::ExtACSyntaxCoupling;
7566
8519
  friend class ::ExtACTree;
7567
8520
  friend class ::ExtACKeywords;
7568
 
  friend class ::WinAsm;
7569
 
  friend class ::WinDeclSpecs;
7570
 
  friend class ::WinMemberExplSpec;
7571
 
  friend class ::WinTypeKeywords;
 
8521
  friend class ::ExtGnu;
7572
8522
  friend class ::PragmaOnceUnitState;
7573
8523
  friend class ::PragmaOnce;
7574
 
  friend class ::CCExprResolve;
7575
 
  friend class ::CExprResolve;
 
8524
  friend class ::CMatchSyntax;
 
8525
 
 
8526
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7576
8527
 
7577
8528
  int                       _next;
7578
8529
  PreParserState     *_state;
7583
8534
  PreMacroExpander _expander;
7584
8535
 
7585
8536
  // List of include paths.
7586
 
  Array<char*> _includeDirs;
 
8537
  Array<Filename> _includeDirs;
7587
8538
  
7588
8539
  // true if the last included file was protected by an active include guard
7589
8540
  bool _guarded;
7617
8568
        
7618
8569
public:
7619
8570
  PreFileIncluder (PreprocessorParser &);
7620
 
  ~PreFileIncluder ();
7621
8571
                
7622
8572
  // Push unit on token stack.
7623
 
  public: inline void __exec_old_pushOnStack(::Puma::Unit * );
 
8573
  
 
8574
#line 8575 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8575
public: __attribute__((always_inline)) inline void __exec_old_pushOnStack(::Puma::Unit * );
 
8576
 
 
8577
#line 86 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7624
8578
void pushOnStack (Unit *);
7625
8579
        
7626
8580
  // Include a file.
7627
 
  public: inline ::Puma::Unit * __exec_old_includeFile(const char * name);
 
8581
  
 
8582
#line 8583 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8583
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_includeFile(const char * name);
 
8584
 
 
8585
#line 89 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreFileIncluder.h"
7628
8586
Unit *includeFile (const char *name);
7629
8587
  Unit *handleIncludeOption (const char *name);
7630
8588
                          
7638
8596
  // Add a new include path to list of include paths.
7639
8597
  void addIncludePath (const char *path);
7640
8598
        
7641
 
  Array<char*> &getIncludePaths () { return (Array<char*> &)_includeDirs; }
 
8599
  Array<Filename> &getIncludePaths () { return _includeDirs; }
7642
8600
};
7643
8601
 
7644
8602
 
7645
8603
} // namespace Puma
7646
8604
 
7647
8605
#endif /* __pre_file_includer__ */
 
8606
 
 
8607
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
7648
8608
// This file is part of PUMA.
7649
8609
// Copyright (C) 1999-2003  The PUMA developer team.
7650
8610
//                                                                
7669
8629
// Class PreTreeToken makes it possible to let tokens be
7670
8630
// a part of a syntax tree.
7671
8631
 
 
8632
 
 
8633
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
7672
8634
namespace Puma {
7673
8635
 
7674
8636
 
 
8637
 
 
8638
#line 8639 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
7675
8639
} // closed Puma
 
8640
class CCExprResolve;
 
8641
class CExprResolve;
7676
8642
class WinIfExists;
7677
8643
class WinImportHandler;
7678
8644
class WinMacros;
7679
 
class CMatchSyntax;
7680
 
class ExtGnu;
 
8645
class WinAsm;
 
8646
class WinDeclSpecs;
 
8647
class WinMemberExplSpec;
 
8648
class WinTypeKeywords;
 
8649
class WinFriend;
7681
8650
class ExtAC;
7682
8651
class ExtACBuilderCoupling;
7683
8652
class ExtACSyntaxCoupling;
7684
8653
class ExtACTree;
7685
8654
class ExtACKeywords;
7686
 
class WinAsm;
7687
 
class WinDeclSpecs;
7688
 
class WinMemberExplSpec;
7689
 
class WinTypeKeywords;
 
8655
class ExtGnu;
7690
8656
class PragmaOnceUnitState;
7691
8657
class PragmaOnce;
7692
 
class CCExprResolve;
7693
 
class CExprResolve;
 
8658
class CMatchSyntax;
7694
8659
namespace Puma {
7695
 
class PreTreeToken : public PreTree {  friend class ::WinIfExists;
 
8660
 
 
8661
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
 
8662
class PreTreeToken : public PreTree {
 
8663
#line 8664 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8664
  friend class ::CCExprResolve;
 
8665
  friend class ::CExprResolve;
 
8666
  friend class ::WinIfExists;
7696
8667
  friend class ::WinImportHandler;
7697
8668
  friend class ::WinMacros;
7698
 
  friend class ::CMatchSyntax;
7699
 
  friend class ::ExtGnu;
 
8669
  friend class ::WinAsm;
 
8670
  friend class ::WinDeclSpecs;
 
8671
  friend class ::WinMemberExplSpec;
 
8672
  friend class ::WinTypeKeywords;
 
8673
  friend class ::WinFriend;
7700
8674
  friend class ::ExtAC;
7701
8675
  friend class ::ExtACBuilderCoupling;
7702
8676
  friend class ::ExtACSyntaxCoupling;
7703
8677
  friend class ::ExtACTree;
7704
8678
  friend class ::ExtACKeywords;
7705
 
  friend class ::WinAsm;
7706
 
  friend class ::WinDeclSpecs;
7707
 
  friend class ::WinMemberExplSpec;
7708
 
  friend class ::WinTypeKeywords;
 
8679
  friend class ::ExtGnu;
7709
8680
  friend class ::PragmaOnceUnitState;
7710
8681
  friend class ::PragmaOnce;
7711
 
  friend class ::CCExprResolve;
7712
 
  friend class ::CExprResolve;
 
8682
  friend class ::CMatchSyntax;
 
8683
 
 
8684
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeToken.h"
7713
8685
 
7714
8686
  Token *_token;
7715
8687
        
7734
8706
 
7735
8707
#endif /*__syntax_tree_token__ */
7736
8708
 
 
8709
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8710
 
 
8711
#line 8712 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8712
 
7737
8713
#ifndef __ac_fwd_WinIfExists__
7738
8714
#define __ac_fwd_WinIfExists__
7739
8715
class WinIfExists;
7740
8716
namespace AC {
7741
8717
  template <class JoinPoint>
7742
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
 
8718
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
7743
8719
}
7744
8720
#endif
7745
8721
 
7746
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
7747
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8722
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8723
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
7748
8724
#endif
7749
8725
 
7750
8726
#ifndef __ac_fwd_WinImportHandler__
7751
8727
#define __ac_fwd_WinImportHandler__
7752
8728
class WinImportHandler;
7753
8729
namespace AC {
7754
 
  template <class JoinPoint, class Binding>
7755
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
7756
 
}
7757
 
#endif
7758
 
 
7759
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
7760
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
8730
  template <class JoinPoint>
 
8731
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
 
8732
}
 
8733
#endif
 
8734
 
 
8735
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
8736
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
8737
#endif
 
8738
 
 
8739
#ifndef __ac_fwd_WinMacros__
 
8740
#define __ac_fwd_WinMacros__
 
8741
class WinMacros;
 
8742
namespace AC {
 
8743
  template <class JoinPoint>
 
8744
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
 
8745
}
 
8746
#endif
 
8747
 
 
8748
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
8749
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
7761
8750
#endif
7762
8751
 
7763
8752
#ifndef __ac_fwd_PragmaOnce__
7765
8754
class PragmaOnce;
7766
8755
namespace AC {
7767
8756
  template <class JoinPoint>
7768
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
7769
 
  template <class JoinPoint>
7770
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
7771
 
  template <class JoinPoint, class Binding>
7772
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
7773
 
  template <class JoinPoint>
7774
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
7775
 
}
7776
 
#endif
7777
 
 
7778
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7779
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7780
 
#endif
7781
 
 
7782
 
#ifndef __ac_fwd_WinMacros__
7783
 
#define __ac_fwd_WinMacros__
7784
 
class WinMacros;
7785
 
namespace AC {
7786
 
  template <class JoinPoint, class Binding>
7787
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
7788
 
}
7789
 
#endif
7790
 
 
7791
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
7792
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
7793
 
#endif
7794
 
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7795
 
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
8757
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
8758
  template <class JoinPoint>
 
8759
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
8760
  template <class JoinPoint>
 
8761
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
8762
  template <class JoinPoint>
 
8763
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
8764
}
 
8765
#endif
 
8766
 
 
8767
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8768
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8769
#endif
 
8770
 
 
8771
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7796
8772
// This file is part of PUMA.
7797
8773
// Copyright (C) 1999-2003  The PUMA developer team.
7798
8774
//                                                                
7840
8816
class PreFileIncluder;
7841
8817
class PrePredicateManager;
7842
8818
 
 
8819
 
 
8820
#line 8821 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
7843
8821
} // closed Puma
 
8822
class CCExprResolve;
 
8823
class CExprResolve;
7844
8824
class WinIfExists;
7845
8825
class WinImportHandler;
7846
8826
class WinMacros;
7847
 
class CMatchSyntax;
7848
 
class ExtGnu;
 
8827
class WinAsm;
 
8828
class WinDeclSpecs;
 
8829
class WinMemberExplSpec;
 
8830
class WinTypeKeywords;
 
8831
class WinFriend;
7849
8832
class ExtAC;
7850
8833
class ExtACBuilderCoupling;
7851
8834
class ExtACSyntaxCoupling;
7852
8835
class ExtACTree;
7853
8836
class ExtACKeywords;
7854
 
class WinAsm;
7855
 
class WinDeclSpecs;
7856
 
class WinMemberExplSpec;
7857
 
class WinTypeKeywords;
 
8837
class ExtGnu;
7858
8838
class PragmaOnceUnitState;
7859
8839
class PragmaOnce;
7860
 
class CCExprResolve;
7861
 
class CExprResolve;
7862
 
namespace Puma {
7863
 
class PreprocessorParser : public PumaTokenSource {  friend class ::WinIfExists;
 
8840
class CMatchSyntax;
 
8841
namespace Puma {
 
8842
 
 
8843
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8844
 
 
8845
#line 8846 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8846
} // closed Puma
 
8847
 
 
8848
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8849
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
8850
#include "WinIfExists.ah"
 
8851
#endif
 
8852
namespace Puma {
 
8853
 
 
8854
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8855
 
 
8856
#line 8857 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8857
} // closed Puma
 
8858
 
 
8859
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8860
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
8861
#include "PragmaOnce.ah"
 
8862
#endif
 
8863
namespace Puma {
 
8864
 
 
8865
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
8866
class PreprocessorParser : public PumaTokenSource {
 
8867
#line 8868 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8868
  friend class ::CCExprResolve;
 
8869
  friend class ::CExprResolve;
 
8870
  friend class ::WinIfExists;
7864
8871
  friend class ::WinImportHandler;
7865
8872
  friend class ::WinMacros;
7866
 
  friend class ::CMatchSyntax;
7867
 
  friend class ::ExtGnu;
 
8873
  friend class ::WinAsm;
 
8874
  friend class ::WinDeclSpecs;
 
8875
  friend class ::WinMemberExplSpec;
 
8876
  friend class ::WinTypeKeywords;
 
8877
  friend class ::WinFriend;
7868
8878
  friend class ::ExtAC;
7869
8879
  friend class ::ExtACBuilderCoupling;
7870
8880
  friend class ::ExtACSyntaxCoupling;
7871
8881
  friend class ::ExtACTree;
7872
8882
  friend class ::ExtACKeywords;
7873
 
  friend class ::WinAsm;
7874
 
  friend class ::WinDeclSpecs;
7875
 
  friend class ::WinMemberExplSpec;
7876
 
  friend class ::WinTypeKeywords;
 
8883
  friend class ::ExtGnu;
7877
8884
  friend class ::PragmaOnceUnitState;
7878
8885
  friend class ::PragmaOnce;
7879
 
  friend class ::CCExprResolve;
7880
 
  friend class ::CExprResolve;
 
8886
  friend class ::CMatchSyntax;
 
8887
 
 
8888
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7881
8889
 
7882
8890
public:
7883
8891
  // The current mode for token preprocessing
7937
8945
  PreLevelState       *levelState () const       { return _levelState; }
7938
8946
  PreParserState      *parserState () const      { return _parserState; }
7939
8947
  PreMacroManager     *macroManager () const     { return _macroManager; }
 
8948
  void macroManager   (PreMacroManager *m)       { _macroManager = m; }
7940
8949
  PreFileIncluder     *fileIncluder () const     { return _fileIncluder; }
7941
8950
  PrePredicateManager *predicateManager () const { return _predicateManager; }
7942
8951
  UnitManager         *unitManager () const      { return _unitManager; }
7944
8953
  PreMode              pre_mode () const         { return _pre_mode; } 
7945
8954
  bool                 supportGNU () const       { return _support_gnu; }
7946
8955
  CScanner            &cscanner () const         { return (CScanner&) _scanner; }
 
8956
  const char          *importHandler () const    { return _importHandler; }
7947
8957
 
7948
8958
  // Return the preprocessor syntax tree.
7949
8959
  PreTree *syntaxTree () const;
7962
8972
  void freeSyntaxTree ();
7963
8973
        
7964
8974
  // Configure the preprocessor.
7965
 
  public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
8975
  
 
8976
#line 8977 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8977
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
8978
 
 
8979
#line 134 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7966
8980
void configure (const Config &, bool = true);
7967
8981
        
7968
8982
  // Get the next token to parse.
7969
 
  public: inline ::Puma::Token * __exec_old_next();
 
8983
  
 
8984
#line 8985 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
8985
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
 
8986
 
 
8987
#line 137 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7970
8988
Token *next ();
7971
8989
        
7972
8990
  TokenStream *scanner () const { return _stream; }
7998
9016
 
7999
9017
  void supportGNU (bool);
8000
9018
   private:
 
9019
 
 
9020
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
9021
 Puma :: Token * _pragma_token ;   private:
8001
9022
  typedef PreprocessorParser WinIfExistsCpp;
8002
 
 public :
8003
 
 
8004
 
Stack < unsigned > _depth ;
8005
 
 
8006
 
void skip_up_to ( int ) ;  private:
8007
 
 public :
8008
 
const char * importHandler ( ) const { return _importHandler ; }  private:
8009
 
 Token * _pragma_token ;};
 
9023
 
 
9024
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
9025
 public :
 
9026
 
 
9027
Puma :: Stack < unsigned > _depth ;
 
9028
 
 
9029
void skip_up_to ( int ) ;
 
9030
#line 167 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
9031
};
8010
9032
 
8011
9033
 
8012
9034
} // namespace Puma
8013
9035
 
8014
9036
#endif /* __preprocessor_parser__ */
8015
 
#endif // __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
 
9037
 
 
9038
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8016
9039
// This file is part of PUMA.
8017
9040
// Copyright (C) 1999-2003  The PUMA developer team.
8018
9041
//                                                                
8036
9059
 
8037
9060
// Contains all node classes for the preprocessor syntax tree.
8038
9061
 
 
9062
 
 
9063
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
8039
9064
// This file is part of PUMA.
8040
9065
// Copyright (C) 1999-2003  The PUMA developer team.
8041
9066
//                                                                
8057
9082
#ifndef __syntax_tree_composite__
8058
9083
#define __syntax_tree_composite__
8059
9084
 
 
9085
 
 
9086
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
8060
9087
namespace Puma {
8061
9088
 
8062
9089
 
8063
9090
// Generic composite nodes:
 
9091
 
 
9092
#line 9093 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8064
9093
} // closed Puma
 
9094
class CCExprResolve;
 
9095
class CExprResolve;
8065
9096
class WinIfExists;
8066
9097
class WinImportHandler;
8067
9098
class WinMacros;
8068
 
class CMatchSyntax;
8069
 
class ExtGnu;
 
9099
class WinAsm;
 
9100
class WinDeclSpecs;
 
9101
class WinMemberExplSpec;
 
9102
class WinTypeKeywords;
 
9103
class WinFriend;
8070
9104
class ExtAC;
8071
9105
class ExtACBuilderCoupling;
8072
9106
class ExtACSyntaxCoupling;
8073
9107
class ExtACTree;
8074
9108
class ExtACKeywords;
8075
 
class WinAsm;
8076
 
class WinDeclSpecs;
8077
 
class WinMemberExplSpec;
8078
 
class WinTypeKeywords;
 
9109
class ExtGnu;
8079
9110
class PragmaOnceUnitState;
8080
9111
class PragmaOnce;
8081
 
class CCExprResolve;
8082
 
class CExprResolve;
 
9112
class CMatchSyntax;
8083
9113
namespace Puma {
8084
 
class PreTreeComposite : public PreTree {  friend class ::WinIfExists;
 
9114
 
 
9115
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
 
9116
class PreTreeComposite : public PreTree {
 
9117
#line 9118 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9118
  friend class ::CCExprResolve;
 
9119
  friend class ::CExprResolve;
 
9120
  friend class ::WinIfExists;
8085
9121
  friend class ::WinImportHandler;
8086
9122
  friend class ::WinMacros;
8087
 
  friend class ::CMatchSyntax;
8088
 
  friend class ::ExtGnu;
 
9123
  friend class ::WinAsm;
 
9124
  friend class ::WinDeclSpecs;
 
9125
  friend class ::WinMemberExplSpec;
 
9126
  friend class ::WinTypeKeywords;
 
9127
  friend class ::WinFriend;
8089
9128
  friend class ::ExtAC;
8090
9129
  friend class ::ExtACBuilderCoupling;
8091
9130
  friend class ::ExtACSyntaxCoupling;
8092
9131
  friend class ::ExtACTree;
8093
9132
  friend class ::ExtACKeywords;
8094
 
  friend class ::WinAsm;
8095
 
  friend class ::WinDeclSpecs;
8096
 
  friend class ::WinMemberExplSpec;
8097
 
  friend class ::WinTypeKeywords;
 
9133
  friend class ::ExtGnu;
8098
9134
  friend class ::PragmaOnceUnitState;
8099
9135
  friend class ::PragmaOnce;
8100
 
  friend class ::CCExprResolve;
8101
 
  friend class ::CExprResolve;
 
9136
  friend class ::CMatchSyntax;
 
9137
 
 
9138
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeComposite.h"
8102
9139
 
8103
9140
private:
8104
9141
  Array<PreTree*> *son_array;
8134
9171
} // namespace Puma
8135
9172
 
8136
9173
#endif /* __syntax_tree_composite__ */
 
9174
 
 
9175
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8137
9176
namespace Puma {
8138
9177
 
8139
9178
 
8140
9179
// The root node of the preprocessor syntax tree.
 
9180
 
 
9181
#line 9182 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8141
9182
} // closed Puma
 
9183
class CCExprResolve;
 
9184
class CExprResolve;
8142
9185
class WinIfExists;
8143
9186
class WinImportHandler;
8144
9187
class WinMacros;
8145
 
class CMatchSyntax;
8146
 
class ExtGnu;
 
9188
class WinAsm;
 
9189
class WinDeclSpecs;
 
9190
class WinMemberExplSpec;
 
9191
class WinTypeKeywords;
 
9192
class WinFriend;
8147
9193
class ExtAC;
8148
9194
class ExtACBuilderCoupling;
8149
9195
class ExtACSyntaxCoupling;
8150
9196
class ExtACTree;
8151
9197
class ExtACKeywords;
8152
 
class WinAsm;
8153
 
class WinDeclSpecs;
8154
 
class WinMemberExplSpec;
8155
 
class WinTypeKeywords;
 
9198
class ExtGnu;
8156
9199
class PragmaOnceUnitState;
8157
9200
class PragmaOnce;
8158
 
class CCExprResolve;
8159
 
class CExprResolve;
 
9201
class CMatchSyntax;
8160
9202
namespace Puma {
8161
 
class PreProgram : public PreTreeComposite {  friend class ::WinIfExists;
 
9203
 
 
9204
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
9205
class PreProgram : public PreTreeComposite {
 
9206
#line 9207 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9207
  friend class ::CCExprResolve;
 
9208
  friend class ::CExprResolve;
 
9209
  friend class ::WinIfExists;
8162
9210
  friend class ::WinImportHandler;
8163
9211
  friend class ::WinMacros;
8164
 
  friend class ::CMatchSyntax;
8165
 
  friend class ::ExtGnu;
 
9212
  friend class ::WinAsm;
 
9213
  friend class ::WinDeclSpecs;
 
9214
  friend class ::WinMemberExplSpec;
 
9215
  friend class ::WinTypeKeywords;
 
9216
  friend class ::WinFriend;
8166
9217
  friend class ::ExtAC;
8167
9218
  friend class ::ExtACBuilderCoupling;
8168
9219
  friend class ::ExtACSyntaxCoupling;
8169
9220
  friend class ::ExtACTree;
8170
9221
  friend class ::ExtACKeywords;
8171
 
  friend class ::WinAsm;
8172
 
  friend class ::WinDeclSpecs;
8173
 
  friend class ::WinMemberExplSpec;
8174
 
  friend class ::WinTypeKeywords;
 
9222
  friend class ::ExtGnu;
8175
9223
  friend class ::PragmaOnceUnitState;
8176
9224
  friend class ::PragmaOnce;
8177
 
  friend class ::CCExprResolve;
8178
 
  friend class ::CExprResolve;
 
9225
  friend class ::CMatchSyntax;
 
9226
 
 
9227
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8179
9228
 
8180
9229
public:
8181
9230
  PreProgram (PreTree* a) : PreTreeComposite (1, 0) 
8190
9239
 
8191
9240
 
8192
9241
// Assemble groups of directive groups to a `super' group => the program.
 
9242
 
 
9243
#line 9244 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8193
9244
} // closed Puma
 
9245
class CCExprResolve;
 
9246
class CExprResolve;
8194
9247
class WinIfExists;
8195
9248
class WinImportHandler;
8196
9249
class WinMacros;
8197
 
class CMatchSyntax;
8198
 
class ExtGnu;
 
9250
class WinAsm;
 
9251
class WinDeclSpecs;
 
9252
class WinMemberExplSpec;
 
9253
class WinTypeKeywords;
 
9254
class WinFriend;
8199
9255
class ExtAC;
8200
9256
class ExtACBuilderCoupling;
8201
9257
class ExtACSyntaxCoupling;
8202
9258
class ExtACTree;
8203
9259
class ExtACKeywords;
8204
 
class WinAsm;
8205
 
class WinDeclSpecs;
8206
 
class WinMemberExplSpec;
8207
 
class WinTypeKeywords;
 
9260
class ExtGnu;
8208
9261
class PragmaOnceUnitState;
8209
9262
class PragmaOnce;
8210
 
class CCExprResolve;
8211
 
class CExprResolve;
 
9263
class CMatchSyntax;
8212
9264
namespace Puma {
8213
 
class PreDirectiveGroups : public PreTreeComposite {  friend class ::WinIfExists;
 
9265
 
 
9266
#line 47 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
9267
class PreDirectiveGroups : public PreTreeComposite {
 
9268
#line 9269 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9269
  friend class ::CCExprResolve;
 
9270
  friend class ::CExprResolve;
 
9271
  friend class ::WinIfExists;
8214
9272
  friend class ::WinImportHandler;
8215
9273
  friend class ::WinMacros;
8216
 
  friend class ::CMatchSyntax;
8217
 
  friend class ::ExtGnu;
 
9274
  friend class ::WinAsm;
 
9275
  friend class ::WinDeclSpecs;
 
9276
  friend class ::WinMemberExplSpec;
 
9277
  friend class ::WinTypeKeywords;
 
9278
  friend class ::WinFriend;
8218
9279
  friend class ::ExtAC;
8219
9280
  friend class ::ExtACBuilderCoupling;
8220
9281
  friend class ::ExtACSyntaxCoupling;
8221
9282
  friend class ::ExtACTree;
8222
9283
  friend class ::ExtACKeywords;
8223
 
  friend class ::WinAsm;
8224
 
  friend class ::WinDeclSpecs;
8225
 
  friend class ::WinMemberExplSpec;
8226
 
  friend class ::WinTypeKeywords;
 
9284
  friend class ::ExtGnu;
8227
9285
  friend class ::PragmaOnceUnitState;
8228
9286
  friend class ::PragmaOnce;
8229
 
  friend class ::CCExprResolve;
8230
 
  friend class ::CExprResolve;
 
9287
  friend class ::CMatchSyntax;
 
9288
 
 
9289
#line 47 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8231
9290
 
8232
9291
public:
8233
9292
  PreDirectiveGroups () : PreTreeComposite (-1, 0) {};
8242
9301
 
8243
9302
// Assemble conditional directives to a logical group.
8244
9303
// Like: #if ... #elif ... #else ... #endif.
 
9304
 
 
9305
#line 9306 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8245
9306
} // closed Puma
 
9307
class CCExprResolve;
 
9308
class CExprResolve;
8246
9309
class WinIfExists;
8247
9310
class WinImportHandler;
8248
9311
class WinMacros;
8249
 
class CMatchSyntax;
8250
 
class ExtGnu;
 
9312
class WinAsm;
 
9313
class WinDeclSpecs;
 
9314
class WinMemberExplSpec;
 
9315
class WinTypeKeywords;
 
9316
class WinFriend;
8251
9317
class ExtAC;
8252
9318
class ExtACBuilderCoupling;
8253
9319
class ExtACSyntaxCoupling;
8254
9320
class ExtACTree;
8255
9321
class ExtACKeywords;
8256
 
class WinAsm;
8257
 
class WinDeclSpecs;
8258
 
class WinMemberExplSpec;
8259
 
class WinTypeKeywords;
 
9322
class ExtGnu;
8260
9323
class PragmaOnceUnitState;
8261
9324
class PragmaOnce;
8262
 
class CCExprResolve;
8263
 
class CExprResolve;
 
9325
class CMatchSyntax;
8264
9326
namespace Puma {
8265
 
class PreConditionalGroup : public PreTreeComposite {  friend class ::WinIfExists;
 
9327
 
 
9328
#line 61 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
9329
class PreConditionalGroup : public PreTreeComposite {
 
9330
#line 9331 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9331
  friend class ::CCExprResolve;
 
9332
  friend class ::CExprResolve;
 
9333
  friend class ::WinIfExists;
8266
9334
  friend class ::WinImportHandler;
8267
9335
  friend class ::WinMacros;
8268
 
  friend class ::CMatchSyntax;
8269
 
  friend class ::ExtGnu;
 
9336
  friend class ::WinAsm;
 
9337
  friend class ::WinDeclSpecs;
 
9338
  friend class ::WinMemberExplSpec;
 
9339
  friend class ::WinTypeKeywords;
 
9340
  friend class ::WinFriend;
8270
9341
  friend class ::ExtAC;
8271
9342
  friend class ::ExtACBuilderCoupling;
8272
9343
  friend class ::ExtACSyntaxCoupling;
8273
9344
  friend class ::ExtACTree;
8274
9345
  friend class ::ExtACKeywords;
8275
 
  friend class ::WinAsm;
8276
 
  friend class ::WinDeclSpecs;
8277
 
  friend class ::WinMemberExplSpec;
8278
 
  friend class ::WinTypeKeywords;
 
9346
  friend class ::ExtGnu;
8279
9347
  friend class ::PragmaOnceUnitState;
8280
9348
  friend class ::PragmaOnce;
8281
 
  friend class ::CCExprResolve;
8282
 
  friend class ::CExprResolve;
 
9349
  friend class ::CMatchSyntax;
 
9350
 
 
9351
#line 61 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8283
9352
 
8284
9353
public:
8285
9354
  PreConditionalGroup (PreTree* a, PreTree* b, PreTree* c) : 
8301
9370
// Assemble conditional directives within the else part of a 
8302
9371
// conditional group to a logical group.
8303
9372
// Like: ... #elif ... #elif ... #elif ... #else.
 
9373
 
 
9374
#line 9375 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8304
9375
} // closed Puma
 
9376
class CCExprResolve;
 
9377
class CExprResolve;
8305
9378
class WinIfExists;
8306
9379
class WinImportHandler;
8307
9380
class WinMacros;
8308
 
class CMatchSyntax;
8309
 
class ExtGnu;
 
9381
class WinAsm;
 
9382
class WinDeclSpecs;
 
9383
class WinMemberExplSpec;
 
9384
class WinTypeKeywords;
 
9385
class WinFriend;
8310
9386
class ExtAC;
8311
9387
class ExtACBuilderCoupling;
8312
9388
class ExtACSyntaxCoupling;
8313
9389
class ExtACTree;
8314
9390
class ExtACKeywords;
8315
 
class WinAsm;
8316
 
class WinDeclSpecs;
8317
 
class WinMemberExplSpec;
8318
 
class WinTypeKeywords;
 
9391
class ExtGnu;
8319
9392
class PragmaOnceUnitState;
8320
9393
class PragmaOnce;
8321
 
class CCExprResolve;
8322
 
class CExprResolve;
 
9394
class CMatchSyntax;
8323
9395
namespace Puma {
8324
 
class PreElsePart : public PreTreeComposite {  friend class ::WinIfExists;
 
9396
 
 
9397
#line 82 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
 
9398
class PreElsePart : public PreTreeComposite {
 
9399
#line 9400 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9400
  friend class ::CCExprResolve;
 
9401
  friend class ::CExprResolve;
 
9402
  friend class ::WinIfExists;
8325
9403
  friend class ::WinImportHandler;
8326
9404
  friend class ::WinMacros;
8327
 
  friend class ::CMatchSyntax;
8328
 
  friend class ::ExtGnu;
 
9405
  friend class ::WinAsm;
 
9406
  friend class ::WinDeclSpecs;
 
9407
  friend class ::WinMemberExplSpec;
 
9408
  friend class ::WinTypeKeywords;
 
9409
  friend class ::WinFriend;
8329
9410
  friend class ::ExtAC;
8330
9411
  friend class ::ExtACBuilderCoupling;
8331
9412
  friend class ::ExtACSyntaxCoupling;
8332
9413
  friend class ::ExtACTree;
8333
9414
  friend class ::ExtACKeywords;
8334
 
  friend class ::WinAsm;
8335
 
  friend class ::WinDeclSpecs;
8336
 
  friend class ::WinMemberExplSpec;
8337
 
  friend class ::WinTypeKeywords;
 
9415
  friend class ::ExtGnu;
8338
9416
  friend class ::PragmaOnceUnitState;
8339
9417
  friend class ::PragmaOnce;
8340
 
  friend class ::CCExprResolve;
8341
 
  friend class ::CExprResolve;
 
9418
  friend class ::CMatchSyntax;
 
9419
 
 
9420
#line 82 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8342
9421
 
8343
9422
public:
8344
9423
  PreElsePart (PreTree* a, PreTree* b) : 
8360
9439
// Assemble conditional directives in the elif part of a conditional 
8361
9440
// group to a logical group.
8362
9441
// Like: ... #elif ... #elif ... #elif.
 
9442
 
 
9443
#line 9444 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8363
9444
} // closed Puma
 
9445
class CCExprResolve;
 
9446
class CExprResolve;
8364
9447
class WinIfExists;
8365
9448
class WinImportHandler;
8366
9449
class WinMacros;
8367
 
class CMatchSyntax;
8368
 
class ExtGnu;
 
9450
class WinAsm;
 
9451
class WinDeclSpecs;
 
9452
class WinMemberExplSpec;
 
9453
class WinTypeKeywords;
 
9454
class WinFriend;
8369
9455
class ExtAC;
8370
9456
class ExtACBuilderCoupling;
8371
9457
class ExtACSyntaxCoupling;
8372
9458
class ExtACTree;
8373
9459
class ExtACKeywords;
8374
 
class WinAsm;
8375
 
class WinDeclSpecs;
8376
 
class WinMemberExplSpec;
8377
 
class WinTypeKeywords;
 
9460
class ExtGnu;
8378
9461
class PragmaOnceUnitState;
8379
9462
class PragmaOnce;
8380
 
class CCExprResolve;
8381
 
class CExprResolve;
 
9463
class CMatchSyntax;
8382
9464
namespace Puma {
 
9465
 
 
9466
#line 103 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8383
9467
class PreElifPart : public PreTreeComposite
8384
 
 {  friend class ::WinIfExists;
 
9468
 {
 
9469
#line 9470 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9470
  friend class ::CCExprResolve;
 
9471
  friend class ::CExprResolve;
 
9472
  friend class ::WinIfExists;
8385
9473
  friend class ::WinImportHandler;
8386
9474
  friend class ::WinMacros;
8387
 
  friend class ::CMatchSyntax;
8388
 
  friend class ::ExtGnu;
 
9475
  friend class ::WinAsm;
 
9476
  friend class ::WinDeclSpecs;
 
9477
  friend class ::WinMemberExplSpec;
 
9478
  friend class ::WinTypeKeywords;
 
9479
  friend class ::WinFriend;
8389
9480
  friend class ::ExtAC;
8390
9481
  friend class ::ExtACBuilderCoupling;
8391
9482
  friend class ::ExtACSyntaxCoupling;
8392
9483
  friend class ::ExtACTree;
8393
9484
  friend class ::ExtACKeywords;
8394
 
  friend class ::WinAsm;
8395
 
  friend class ::WinDeclSpecs;
8396
 
  friend class ::WinMemberExplSpec;
8397
 
  friend class ::WinTypeKeywords;
 
9485
  friend class ::ExtGnu;
8398
9486
  friend class ::PragmaOnceUnitState;
8399
9487
  friend class ::PragmaOnce;
8400
 
  friend class ::CCExprResolve;
8401
 
  friend class ::CExprResolve;
 
9488
  friend class ::CMatchSyntax;
 
9489
 
 
9490
#line 104 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8402
9491
 
8403
9492
    public:
8404
9493
                                // Dynamic sons, no daughters.
8418
9507
 
8419
9508
 
8420
9509
// The #if directive.
 
9510
 
 
9511
#line 9512 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8421
9512
} // closed Puma
 
9513
class CCExprResolve;
 
9514
class CExprResolve;
8422
9515
class WinIfExists;
8423
9516
class WinImportHandler;
8424
9517
class WinMacros;
8425
 
class CMatchSyntax;
8426
 
class ExtGnu;
 
9518
class WinAsm;
 
9519
class WinDeclSpecs;
 
9520
class WinMemberExplSpec;
 
9521
class WinTypeKeywords;
 
9522
class WinFriend;
8427
9523
class ExtAC;
8428
9524
class ExtACBuilderCoupling;
8429
9525
class ExtACSyntaxCoupling;
8430
9526
class ExtACTree;
8431
9527
class ExtACKeywords;
8432
 
class WinAsm;
8433
 
class WinDeclSpecs;
8434
 
class WinMemberExplSpec;
8435
 
class WinTypeKeywords;
 
9528
class ExtGnu;
8436
9529
class PragmaOnceUnitState;
8437
9530
class PragmaOnce;
8438
 
class CCExprResolve;
8439
 
class CExprResolve;
 
9531
class CMatchSyntax;
8440
9532
namespace Puma {
 
9533
 
 
9534
#line 123 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8441
9535
class PreIfDirective : public PreTreeComposite
8442
 
 {  friend class ::WinIfExists;
 
9536
 {
 
9537
#line 9538 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9538
  friend class ::CCExprResolve;
 
9539
  friend class ::CExprResolve;
 
9540
  friend class ::WinIfExists;
8443
9541
  friend class ::WinImportHandler;
8444
9542
  friend class ::WinMacros;
8445
 
  friend class ::CMatchSyntax;
8446
 
  friend class ::ExtGnu;
 
9543
  friend class ::WinAsm;
 
9544
  friend class ::WinDeclSpecs;
 
9545
  friend class ::WinMemberExplSpec;
 
9546
  friend class ::WinTypeKeywords;
 
9547
  friend class ::WinFriend;
8447
9548
  friend class ::ExtAC;
8448
9549
  friend class ::ExtACBuilderCoupling;
8449
9550
  friend class ::ExtACSyntaxCoupling;
8450
9551
  friend class ::ExtACTree;
8451
9552
  friend class ::ExtACKeywords;
8452
 
  friend class ::WinAsm;
8453
 
  friend class ::WinDeclSpecs;
8454
 
  friend class ::WinMemberExplSpec;
8455
 
  friend class ::WinTypeKeywords;
 
9553
  friend class ::ExtGnu;
8456
9554
  friend class ::PragmaOnceUnitState;
8457
9555
  friend class ::PragmaOnce;
8458
 
  friend class ::CCExprResolve;
8459
 
  friend class ::CExprResolve;
 
9556
  friend class ::CMatchSyntax;
 
9557
 
 
9558
#line 124 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8460
9559
 
8461
9560
    public:
8462
9561
                                        
8474
9573
 
8475
9574
 
8476
9575
// The #ifdef directive.
 
9576
 
 
9577
#line 9578 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8477
9578
} // closed Puma
 
9579
class CCExprResolve;
 
9580
class CExprResolve;
8478
9581
class WinIfExists;
8479
9582
class WinImportHandler;
8480
9583
class WinMacros;
8481
 
class CMatchSyntax;
8482
 
class ExtGnu;
 
9584
class WinAsm;
 
9585
class WinDeclSpecs;
 
9586
class WinMemberExplSpec;
 
9587
class WinTypeKeywords;
 
9588
class WinFriend;
8483
9589
class ExtAC;
8484
9590
class ExtACBuilderCoupling;
8485
9591
class ExtACSyntaxCoupling;
8486
9592
class ExtACTree;
8487
9593
class ExtACKeywords;
8488
 
class WinAsm;
8489
 
class WinDeclSpecs;
8490
 
class WinMemberExplSpec;
8491
 
class WinTypeKeywords;
 
9594
class ExtGnu;
8492
9595
class PragmaOnceUnitState;
8493
9596
class PragmaOnce;
8494
 
class CCExprResolve;
8495
 
class CExprResolve;
 
9597
class CMatchSyntax;
8496
9598
namespace Puma {
 
9599
 
 
9600
#line 141 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8497
9601
class PreIfdefDirective : public PreTreeComposite
8498
 
 {  friend class ::WinIfExists;
 
9602
 {
 
9603
#line 9604 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9604
  friend class ::CCExprResolve;
 
9605
  friend class ::CExprResolve;
 
9606
  friend class ::WinIfExists;
8499
9607
  friend class ::WinImportHandler;
8500
9608
  friend class ::WinMacros;
8501
 
  friend class ::CMatchSyntax;
8502
 
  friend class ::ExtGnu;
 
9609
  friend class ::WinAsm;
 
9610
  friend class ::WinDeclSpecs;
 
9611
  friend class ::WinMemberExplSpec;
 
9612
  friend class ::WinTypeKeywords;
 
9613
  friend class ::WinFriend;
8503
9614
  friend class ::ExtAC;
8504
9615
  friend class ::ExtACBuilderCoupling;
8505
9616
  friend class ::ExtACSyntaxCoupling;
8506
9617
  friend class ::ExtACTree;
8507
9618
  friend class ::ExtACKeywords;
8508
 
  friend class ::WinAsm;
8509
 
  friend class ::WinDeclSpecs;
8510
 
  friend class ::WinMemberExplSpec;
8511
 
  friend class ::WinTypeKeywords;
 
9619
  friend class ::ExtGnu;
8512
9620
  friend class ::PragmaOnceUnitState;
8513
9621
  friend class ::PragmaOnce;
8514
 
  friend class ::CCExprResolve;
8515
 
  friend class ::CExprResolve;
 
9622
  friend class ::CMatchSyntax;
 
9623
 
 
9624
#line 142 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8516
9625
 
8517
9626
    public:
8518
9627
                                        
8533
9642
 
8534
9643
 
8535
9644
// The #ifndef directive.
 
9645
 
 
9646
#line 9647 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8536
9647
} // closed Puma
 
9648
class CCExprResolve;
 
9649
class CExprResolve;
8537
9650
class WinIfExists;
8538
9651
class WinImportHandler;
8539
9652
class WinMacros;
8540
 
class CMatchSyntax;
8541
 
class ExtGnu;
 
9653
class WinAsm;
 
9654
class WinDeclSpecs;
 
9655
class WinMemberExplSpec;
 
9656
class WinTypeKeywords;
 
9657
class WinFriend;
8542
9658
class ExtAC;
8543
9659
class ExtACBuilderCoupling;
8544
9660
class ExtACSyntaxCoupling;
8545
9661
class ExtACTree;
8546
9662
class ExtACKeywords;
8547
 
class WinAsm;
8548
 
class WinDeclSpecs;
8549
 
class WinMemberExplSpec;
8550
 
class WinTypeKeywords;
 
9663
class ExtGnu;
8551
9664
class PragmaOnceUnitState;
8552
9665
class PragmaOnce;
8553
 
class CCExprResolve;
8554
 
class CExprResolve;
 
9666
class CMatchSyntax;
8555
9667
namespace Puma {
 
9668
 
 
9669
#line 162 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8556
9670
class PreIfndefDirective : public PreTreeComposite
8557
 
 {  friend class ::WinIfExists;
 
9671
 {
 
9672
#line 9673 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9673
  friend class ::CCExprResolve;
 
9674
  friend class ::CExprResolve;
 
9675
  friend class ::WinIfExists;
8558
9676
  friend class ::WinImportHandler;
8559
9677
  friend class ::WinMacros;
8560
 
  friend class ::CMatchSyntax;
8561
 
  friend class ::ExtGnu;
 
9678
  friend class ::WinAsm;
 
9679
  friend class ::WinDeclSpecs;
 
9680
  friend class ::WinMemberExplSpec;
 
9681
  friend class ::WinTypeKeywords;
 
9682
  friend class ::WinFriend;
8562
9683
  friend class ::ExtAC;
8563
9684
  friend class ::ExtACBuilderCoupling;
8564
9685
  friend class ::ExtACSyntaxCoupling;
8565
9686
  friend class ::ExtACTree;
8566
9687
  friend class ::ExtACKeywords;
8567
 
  friend class ::WinAsm;
8568
 
  friend class ::WinDeclSpecs;
8569
 
  friend class ::WinMemberExplSpec;
8570
 
  friend class ::WinTypeKeywords;
 
9688
  friend class ::ExtGnu;
8571
9689
  friend class ::PragmaOnceUnitState;
8572
9690
  friend class ::PragmaOnce;
8573
 
  friend class ::CCExprResolve;
8574
 
  friend class ::CExprResolve;
 
9691
  friend class ::CMatchSyntax;
 
9692
 
 
9693
#line 163 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8575
9694
 
8576
9695
    public:
8577
9696
                                        
8592
9711
 
8593
9712
 
8594
9713
// The #elif directive.
 
9714
 
 
9715
#line 9716 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8595
9716
} // closed Puma
 
9717
class CCExprResolve;
 
9718
class CExprResolve;
8596
9719
class WinIfExists;
8597
9720
class WinImportHandler;
8598
9721
class WinMacros;
8599
 
class CMatchSyntax;
8600
 
class ExtGnu;
 
9722
class WinAsm;
 
9723
class WinDeclSpecs;
 
9724
class WinMemberExplSpec;
 
9725
class WinTypeKeywords;
 
9726
class WinFriend;
8601
9727
class ExtAC;
8602
9728
class ExtACBuilderCoupling;
8603
9729
class ExtACSyntaxCoupling;
8604
9730
class ExtACTree;
8605
9731
class ExtACKeywords;
8606
 
class WinAsm;
8607
 
class WinDeclSpecs;
8608
 
class WinMemberExplSpec;
8609
 
class WinTypeKeywords;
 
9732
class ExtGnu;
8610
9733
class PragmaOnceUnitState;
8611
9734
class PragmaOnce;
8612
 
class CCExprResolve;
8613
 
class CExprResolve;
 
9735
class CMatchSyntax;
8614
9736
namespace Puma {
 
9737
 
 
9738
#line 183 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8615
9739
class PreElifDirective : public PreTreeComposite
8616
 
 {  friend class ::WinIfExists;
 
9740
 {
 
9741
#line 9742 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9742
  friend class ::CCExprResolve;
 
9743
  friend class ::CExprResolve;
 
9744
  friend class ::WinIfExists;
8617
9745
  friend class ::WinImportHandler;
8618
9746
  friend class ::WinMacros;
8619
 
  friend class ::CMatchSyntax;
8620
 
  friend class ::ExtGnu;
 
9747
  friend class ::WinAsm;
 
9748
  friend class ::WinDeclSpecs;
 
9749
  friend class ::WinMemberExplSpec;
 
9750
  friend class ::WinTypeKeywords;
 
9751
  friend class ::WinFriend;
8621
9752
  friend class ::ExtAC;
8622
9753
  friend class ::ExtACBuilderCoupling;
8623
9754
  friend class ::ExtACSyntaxCoupling;
8624
9755
  friend class ::ExtACTree;
8625
9756
  friend class ::ExtACKeywords;
8626
 
  friend class ::WinAsm;
8627
 
  friend class ::WinDeclSpecs;
8628
 
  friend class ::WinMemberExplSpec;
8629
 
  friend class ::WinTypeKeywords;
 
9757
  friend class ::ExtGnu;
8630
9758
  friend class ::PragmaOnceUnitState;
8631
9759
  friend class ::PragmaOnce;
8632
 
  friend class ::CCExprResolve;
8633
 
  friend class ::CExprResolve;
 
9760
  friend class ::CMatchSyntax;
 
9761
 
 
9762
#line 184 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8634
9763
 
8635
9764
    public:
8636
9765
                                        
8648
9777
 
8649
9778
 
8650
9779
// The #else directive.
 
9780
 
 
9781
#line 9782 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8651
9782
} // closed Puma
 
9783
class CCExprResolve;
 
9784
class CExprResolve;
8652
9785
class WinIfExists;
8653
9786
class WinImportHandler;
8654
9787
class WinMacros;
8655
 
class CMatchSyntax;
8656
 
class ExtGnu;
 
9788
class WinAsm;
 
9789
class WinDeclSpecs;
 
9790
class WinMemberExplSpec;
 
9791
class WinTypeKeywords;
 
9792
class WinFriend;
8657
9793
class ExtAC;
8658
9794
class ExtACBuilderCoupling;
8659
9795
class ExtACSyntaxCoupling;
8660
9796
class ExtACTree;
8661
9797
class ExtACKeywords;
8662
 
class WinAsm;
8663
 
class WinDeclSpecs;
8664
 
class WinMemberExplSpec;
8665
 
class WinTypeKeywords;
 
9798
class ExtGnu;
8666
9799
class PragmaOnceUnitState;
8667
9800
class PragmaOnce;
8668
 
class CCExprResolve;
8669
 
class CExprResolve;
 
9801
class CMatchSyntax;
8670
9802
namespace Puma {
 
9803
 
 
9804
#line 201 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8671
9805
class PreElseDirective : public PreTreeComposite
8672
 
 {  friend class ::WinIfExists;
 
9806
 {
 
9807
#line 9808 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9808
  friend class ::CCExprResolve;
 
9809
  friend class ::CExprResolve;
 
9810
  friend class ::WinIfExists;
8673
9811
  friend class ::WinImportHandler;
8674
9812
  friend class ::WinMacros;
8675
 
  friend class ::CMatchSyntax;
8676
 
  friend class ::ExtGnu;
 
9813
  friend class ::WinAsm;
 
9814
  friend class ::WinDeclSpecs;
 
9815
  friend class ::WinMemberExplSpec;
 
9816
  friend class ::WinTypeKeywords;
 
9817
  friend class ::WinFriend;
8677
9818
  friend class ::ExtAC;
8678
9819
  friend class ::ExtACBuilderCoupling;
8679
9820
  friend class ::ExtACSyntaxCoupling;
8680
9821
  friend class ::ExtACTree;
8681
9822
  friend class ::ExtACKeywords;
8682
 
  friend class ::WinAsm;
8683
 
  friend class ::WinDeclSpecs;
8684
 
  friend class ::WinMemberExplSpec;
8685
 
  friend class ::WinTypeKeywords;
 
9823
  friend class ::ExtGnu;
8686
9824
  friend class ::PragmaOnceUnitState;
8687
9825
  friend class ::PragmaOnce;
8688
 
  friend class ::CCExprResolve;
8689
 
  friend class ::CExprResolve;
 
9826
  friend class ::CMatchSyntax;
 
9827
 
 
9828
#line 202 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8690
9829
 
8691
9830
    public:
8692
9831
                                        
8704
9843
 
8705
9844
 
8706
9845
// The #endif directive.
 
9846
 
 
9847
#line 9848 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8707
9848
} // closed Puma
 
9849
class CCExprResolve;
 
9850
class CExprResolve;
8708
9851
class WinIfExists;
8709
9852
class WinImportHandler;
8710
9853
class WinMacros;
8711
 
class CMatchSyntax;
8712
 
class ExtGnu;
 
9854
class WinAsm;
 
9855
class WinDeclSpecs;
 
9856
class WinMemberExplSpec;
 
9857
class WinTypeKeywords;
 
9858
class WinFriend;
8713
9859
class ExtAC;
8714
9860
class ExtACBuilderCoupling;
8715
9861
class ExtACSyntaxCoupling;
8716
9862
class ExtACTree;
8717
9863
class ExtACKeywords;
8718
 
class WinAsm;
8719
 
class WinDeclSpecs;
8720
 
class WinMemberExplSpec;
8721
 
class WinTypeKeywords;
 
9864
class ExtGnu;
8722
9865
class PragmaOnceUnitState;
8723
9866
class PragmaOnce;
8724
 
class CCExprResolve;
8725
 
class CExprResolve;
 
9867
class CMatchSyntax;
8726
9868
namespace Puma {
 
9869
 
 
9870
#line 219 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8727
9871
class PreEndifDirective : public PreTreeComposite
8728
 
 {  friend class ::WinIfExists;
 
9872
 {
 
9873
#line 9874 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9874
  friend class ::CCExprResolve;
 
9875
  friend class ::CExprResolve;
 
9876
  friend class ::WinIfExists;
8729
9877
  friend class ::WinImportHandler;
8730
9878
  friend class ::WinMacros;
8731
 
  friend class ::CMatchSyntax;
8732
 
  friend class ::ExtGnu;
 
9879
  friend class ::WinAsm;
 
9880
  friend class ::WinDeclSpecs;
 
9881
  friend class ::WinMemberExplSpec;
 
9882
  friend class ::WinTypeKeywords;
 
9883
  friend class ::WinFriend;
8733
9884
  friend class ::ExtAC;
8734
9885
  friend class ::ExtACBuilderCoupling;
8735
9886
  friend class ::ExtACSyntaxCoupling;
8736
9887
  friend class ::ExtACTree;
8737
9888
  friend class ::ExtACKeywords;
8738
 
  friend class ::WinAsm;
8739
 
  friend class ::WinDeclSpecs;
8740
 
  friend class ::WinMemberExplSpec;
8741
 
  friend class ::WinTypeKeywords;
 
9889
  friend class ::ExtGnu;
8742
9890
  friend class ::PragmaOnceUnitState;
8743
9891
  friend class ::PragmaOnce;
8744
 
  friend class ::CCExprResolve;
8745
 
  friend class ::CExprResolve;
 
9892
  friend class ::CMatchSyntax;
 
9893
 
 
9894
#line 220 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8746
9895
 
8747
9896
    public:
8748
9897
                                        
8760
9909
 
8761
9910
 
8762
9911
// The #include and #include_next directive.
 
9912
 
 
9913
#line 9914 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8763
9914
} // closed Puma
 
9915
class CCExprResolve;
 
9916
class CExprResolve;
8764
9917
class WinIfExists;
8765
9918
class WinImportHandler;
8766
9919
class WinMacros;
8767
 
class CMatchSyntax;
8768
 
class ExtGnu;
 
9920
class WinAsm;
 
9921
class WinDeclSpecs;
 
9922
class WinMemberExplSpec;
 
9923
class WinTypeKeywords;
 
9924
class WinFriend;
8769
9925
class ExtAC;
8770
9926
class ExtACBuilderCoupling;
8771
9927
class ExtACSyntaxCoupling;
8772
9928
class ExtACTree;
8773
9929
class ExtACKeywords;
8774
 
class WinAsm;
8775
 
class WinDeclSpecs;
8776
 
class WinMemberExplSpec;
8777
 
class WinTypeKeywords;
 
9930
class ExtGnu;
8778
9931
class PragmaOnceUnitState;
8779
9932
class PragmaOnce;
8780
 
class CCExprResolve;
8781
 
class CExprResolve;
 
9933
class CMatchSyntax;
8782
9934
namespace Puma {
 
9935
 
 
9936
#line 237 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8783
9937
class PreIncludeDirective : public PreTreeComposite
8784
 
 {  friend class ::WinIfExists;
 
9938
 {
 
9939
#line 9940 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
9940
  friend class ::CCExprResolve;
 
9941
  friend class ::CExprResolve;
 
9942
  friend class ::WinIfExists;
8785
9943
  friend class ::WinImportHandler;
8786
9944
  friend class ::WinMacros;
8787
 
  friend class ::CMatchSyntax;
8788
 
  friend class ::ExtGnu;
 
9945
  friend class ::WinAsm;
 
9946
  friend class ::WinDeclSpecs;
 
9947
  friend class ::WinMemberExplSpec;
 
9948
  friend class ::WinTypeKeywords;
 
9949
  friend class ::WinFriend;
8789
9950
  friend class ::ExtAC;
8790
9951
  friend class ::ExtACBuilderCoupling;
8791
9952
  friend class ::ExtACSyntaxCoupling;
8792
9953
  friend class ::ExtACTree;
8793
9954
  friend class ::ExtACKeywords;
8794
 
  friend class ::WinAsm;
8795
 
  friend class ::WinDeclSpecs;
8796
 
  friend class ::WinMemberExplSpec;
8797
 
  friend class ::WinTypeKeywords;
 
9955
  friend class ::ExtGnu;
8798
9956
  friend class ::PragmaOnceUnitState;
8799
9957
  friend class ::PragmaOnce;
8800
 
  friend class ::CCExprResolve;
8801
 
  friend class ::CExprResolve;
 
9958
  friend class ::CMatchSyntax;
 
9959
 
 
9960
#line 238 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8802
9961
 
8803
9962
        int _depth;
8804
9963
 
8832
9991
 
8833
9992
 
8834
9993
// The #assert directive.
 
9994
 
 
9995
#line 9996 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8835
9996
} // closed Puma
 
9997
class CCExprResolve;
 
9998
class CExprResolve;
8836
9999
class WinIfExists;
8837
10000
class WinImportHandler;
8838
10001
class WinMacros;
8839
 
class CMatchSyntax;
8840
 
class ExtGnu;
 
10002
class WinAsm;
 
10003
class WinDeclSpecs;
 
10004
class WinMemberExplSpec;
 
10005
class WinTypeKeywords;
 
10006
class WinFriend;
8841
10007
class ExtAC;
8842
10008
class ExtACBuilderCoupling;
8843
10009
class ExtACSyntaxCoupling;
8844
10010
class ExtACTree;
8845
10011
class ExtACKeywords;
8846
 
class WinAsm;
8847
 
class WinDeclSpecs;
8848
 
class WinMemberExplSpec;
8849
 
class WinTypeKeywords;
 
10012
class ExtGnu;
8850
10013
class PragmaOnceUnitState;
8851
10014
class PragmaOnce;
8852
 
class CCExprResolve;
8853
 
class CExprResolve;
 
10015
class CMatchSyntax;
8854
10016
namespace Puma {
 
10017
 
 
10018
#line 271 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8855
10019
class PreAssertDirective : public PreTreeComposite
8856
 
 {  friend class ::WinIfExists;
 
10020
 {
 
10021
#line 10022 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10022
  friend class ::CCExprResolve;
 
10023
  friend class ::CExprResolve;
 
10024
  friend class ::WinIfExists;
8857
10025
  friend class ::WinImportHandler;
8858
10026
  friend class ::WinMacros;
8859
 
  friend class ::CMatchSyntax;
8860
 
  friend class ::ExtGnu;
 
10027
  friend class ::WinAsm;
 
10028
  friend class ::WinDeclSpecs;
 
10029
  friend class ::WinMemberExplSpec;
 
10030
  friend class ::WinTypeKeywords;
 
10031
  friend class ::WinFriend;
8861
10032
  friend class ::ExtAC;
8862
10033
  friend class ::ExtACBuilderCoupling;
8863
10034
  friend class ::ExtACSyntaxCoupling;
8864
10035
  friend class ::ExtACTree;
8865
10036
  friend class ::ExtACKeywords;
8866
 
  friend class ::WinAsm;
8867
 
  friend class ::WinDeclSpecs;
8868
 
  friend class ::WinMemberExplSpec;
8869
 
  friend class ::WinTypeKeywords;
 
10037
  friend class ::ExtGnu;
8870
10038
  friend class ::PragmaOnceUnitState;
8871
10039
  friend class ::PragmaOnce;
8872
 
  friend class ::CCExprResolve;
8873
 
  friend class ::CExprResolve;
 
10040
  friend class ::CMatchSyntax;
 
10041
 
 
10042
#line 272 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8874
10043
 
8875
10044
    public:
8876
10045
                                        
8891
10060
 
8892
10061
 
8893
10062
// The #unassert directive.
 
10063
 
 
10064
#line 10065 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8894
10065
} // closed Puma
 
10066
class CCExprResolve;
 
10067
class CExprResolve;
8895
10068
class WinIfExists;
8896
10069
class WinImportHandler;
8897
10070
class WinMacros;
8898
 
class CMatchSyntax;
8899
 
class ExtGnu;
 
10071
class WinAsm;
 
10072
class WinDeclSpecs;
 
10073
class WinMemberExplSpec;
 
10074
class WinTypeKeywords;
 
10075
class WinFriend;
8900
10076
class ExtAC;
8901
10077
class ExtACBuilderCoupling;
8902
10078
class ExtACSyntaxCoupling;
8903
10079
class ExtACTree;
8904
10080
class ExtACKeywords;
8905
 
class WinAsm;
8906
 
class WinDeclSpecs;
8907
 
class WinMemberExplSpec;
8908
 
class WinTypeKeywords;
 
10081
class ExtGnu;
8909
10082
class PragmaOnceUnitState;
8910
10083
class PragmaOnce;
8911
 
class CCExprResolve;
8912
 
class CExprResolve;
 
10084
class CMatchSyntax;
8913
10085
namespace Puma {
 
10086
 
 
10087
#line 292 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8914
10088
class PreUnassertDirective : public PreTreeComposite
8915
 
 {  friend class ::WinIfExists;
 
10089
 {
 
10090
#line 10091 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10091
  friend class ::CCExprResolve;
 
10092
  friend class ::CExprResolve;
 
10093
  friend class ::WinIfExists;
8916
10094
  friend class ::WinImportHandler;
8917
10095
  friend class ::WinMacros;
8918
 
  friend class ::CMatchSyntax;
8919
 
  friend class ::ExtGnu;
 
10096
  friend class ::WinAsm;
 
10097
  friend class ::WinDeclSpecs;
 
10098
  friend class ::WinMemberExplSpec;
 
10099
  friend class ::WinTypeKeywords;
 
10100
  friend class ::WinFriend;
8920
10101
  friend class ::ExtAC;
8921
10102
  friend class ::ExtACBuilderCoupling;
8922
10103
  friend class ::ExtACSyntaxCoupling;
8923
10104
  friend class ::ExtACTree;
8924
10105
  friend class ::ExtACKeywords;
8925
 
  friend class ::WinAsm;
8926
 
  friend class ::WinDeclSpecs;
8927
 
  friend class ::WinMemberExplSpec;
8928
 
  friend class ::WinTypeKeywords;
 
10106
  friend class ::ExtGnu;
8929
10107
  friend class ::PragmaOnceUnitState;
8930
10108
  friend class ::PragmaOnce;
8931
 
  friend class ::CCExprResolve;
8932
 
  friend class ::CExprResolve;
 
10109
  friend class ::CMatchSyntax;
 
10110
 
 
10111
#line 293 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8933
10112
 
8934
10113
    public:
8935
10114
                                        
8951
10130
 
8952
10131
// The #define directive that defines function-like macros.
8953
10132
// Like: #define FUNCTION (id,...,id) ... ... ...
 
10133
 
 
10134
#line 10135 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
8954
10135
} // closed Puma
 
10136
class CCExprResolve;
 
10137
class CExprResolve;
8955
10138
class WinIfExists;
8956
10139
class WinImportHandler;
8957
10140
class WinMacros;
8958
 
class CMatchSyntax;
8959
 
class ExtGnu;
 
10141
class WinAsm;
 
10142
class WinDeclSpecs;
 
10143
class WinMemberExplSpec;
 
10144
class WinTypeKeywords;
 
10145
class WinFriend;
8960
10146
class ExtAC;
8961
10147
class ExtACBuilderCoupling;
8962
10148
class ExtACSyntaxCoupling;
8963
10149
class ExtACTree;
8964
10150
class ExtACKeywords;
8965
 
class WinAsm;
8966
 
class WinDeclSpecs;
8967
 
class WinMemberExplSpec;
8968
 
class WinTypeKeywords;
 
10151
class ExtGnu;
8969
10152
class PragmaOnceUnitState;
8970
10153
class PragmaOnce;
8971
 
class CCExprResolve;
8972
 
class CExprResolve;
 
10154
class CMatchSyntax;
8973
10155
namespace Puma {
 
10156
 
 
10157
#line 314 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8974
10158
class PreDefineFunctionDirective : public PreTreeComposite
8975
 
 {  friend class ::WinIfExists;
 
10159
 {
 
10160
#line 10161 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10161
  friend class ::CCExprResolve;
 
10162
  friend class ::CExprResolve;
 
10163
  friend class ::WinIfExists;
8976
10164
  friend class ::WinImportHandler;
8977
10165
  friend class ::WinMacros;
8978
 
  friend class ::CMatchSyntax;
8979
 
  friend class ::ExtGnu;
 
10166
  friend class ::WinAsm;
 
10167
  friend class ::WinDeclSpecs;
 
10168
  friend class ::WinMemberExplSpec;
 
10169
  friend class ::WinTypeKeywords;
 
10170
  friend class ::WinFriend;
8980
10171
  friend class ::ExtAC;
8981
10172
  friend class ::ExtACBuilderCoupling;
8982
10173
  friend class ::ExtACSyntaxCoupling;
8983
10174
  friend class ::ExtACTree;
8984
10175
  friend class ::ExtACKeywords;
8985
 
  friend class ::WinAsm;
8986
 
  friend class ::WinDeclSpecs;
8987
 
  friend class ::WinMemberExplSpec;
8988
 
  friend class ::WinTypeKeywords;
 
10176
  friend class ::ExtGnu;
8989
10177
  friend class ::PragmaOnceUnitState;
8990
10178
  friend class ::PragmaOnce;
8991
 
  friend class ::CCExprResolve;
8992
 
  friend class ::CExprResolve;
 
10179
  friend class ::CMatchSyntax;
 
10180
 
 
10181
#line 315 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
8993
10182
 
8994
10183
    public:
8995
10184
                                        
9032
10221
 
9033
10222
// The #define directive that defines symbolic constants macros.
9034
10223
// Like: #define CONSTANT ... ... ...
 
10224
 
 
10225
#line 10226 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9035
10226
} // closed Puma
 
10227
class CCExprResolve;
 
10228
class CExprResolve;
9036
10229
class WinIfExists;
9037
10230
class WinImportHandler;
9038
10231
class WinMacros;
9039
 
class CMatchSyntax;
9040
 
class ExtGnu;
 
10232
class WinAsm;
 
10233
class WinDeclSpecs;
 
10234
class WinMemberExplSpec;
 
10235
class WinTypeKeywords;
 
10236
class WinFriend;
9041
10237
class ExtAC;
9042
10238
class ExtACBuilderCoupling;
9043
10239
class ExtACSyntaxCoupling;
9044
10240
class ExtACTree;
9045
10241
class ExtACKeywords;
9046
 
class WinAsm;
9047
 
class WinDeclSpecs;
9048
 
class WinMemberExplSpec;
9049
 
class WinTypeKeywords;
 
10242
class ExtGnu;
9050
10243
class PragmaOnceUnitState;
9051
10244
class PragmaOnce;
9052
 
class CCExprResolve;
9053
 
class CExprResolve;
 
10245
class CMatchSyntax;
9054
10246
namespace Puma {
 
10247
 
 
10248
#line 357 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9055
10249
class PreDefineConstantDirective : public PreTreeComposite
9056
 
 {  friend class ::WinIfExists;
 
10250
 {
 
10251
#line 10252 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10252
  friend class ::CCExprResolve;
 
10253
  friend class ::CExprResolve;
 
10254
  friend class ::WinIfExists;
9057
10255
  friend class ::WinImportHandler;
9058
10256
  friend class ::WinMacros;
9059
 
  friend class ::CMatchSyntax;
9060
 
  friend class ::ExtGnu;
 
10257
  friend class ::WinAsm;
 
10258
  friend class ::WinDeclSpecs;
 
10259
  friend class ::WinMemberExplSpec;
 
10260
  friend class ::WinTypeKeywords;
 
10261
  friend class ::WinFriend;
9061
10262
  friend class ::ExtAC;
9062
10263
  friend class ::ExtACBuilderCoupling;
9063
10264
  friend class ::ExtACSyntaxCoupling;
9064
10265
  friend class ::ExtACTree;
9065
10266
  friend class ::ExtACKeywords;
9066
 
  friend class ::WinAsm;
9067
 
  friend class ::WinDeclSpecs;
9068
 
  friend class ::WinMemberExplSpec;
9069
 
  friend class ::WinTypeKeywords;
 
10267
  friend class ::ExtGnu;
9070
10268
  friend class ::PragmaOnceUnitState;
9071
10269
  friend class ::PragmaOnce;
9072
 
  friend class ::CCExprResolve;
9073
 
  friend class ::CExprResolve;
 
10270
  friend class ::CMatchSyntax;
 
10271
 
 
10272
#line 358 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9074
10273
 
9075
10274
    public:
9076
10275
                                        
9091
10290
 
9092
10291
 
9093
10292
// The #undef directive.
 
10293
 
 
10294
#line 10295 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9094
10295
} // closed Puma
 
10296
class CCExprResolve;
 
10297
class CExprResolve;
9095
10298
class WinIfExists;
9096
10299
class WinImportHandler;
9097
10300
class WinMacros;
9098
 
class CMatchSyntax;
9099
 
class ExtGnu;
 
10301
class WinAsm;
 
10302
class WinDeclSpecs;
 
10303
class WinMemberExplSpec;
 
10304
class WinTypeKeywords;
 
10305
class WinFriend;
9100
10306
class ExtAC;
9101
10307
class ExtACBuilderCoupling;
9102
10308
class ExtACSyntaxCoupling;
9103
10309
class ExtACTree;
9104
10310
class ExtACKeywords;
9105
 
class WinAsm;
9106
 
class WinDeclSpecs;
9107
 
class WinMemberExplSpec;
9108
 
class WinTypeKeywords;
 
10311
class ExtGnu;
9109
10312
class PragmaOnceUnitState;
9110
10313
class PragmaOnce;
9111
 
class CCExprResolve;
9112
 
class CExprResolve;
 
10314
class CMatchSyntax;
9113
10315
namespace Puma {
 
10316
 
 
10317
#line 378 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9114
10318
class PreUndefDirective : public PreTreeComposite
9115
 
 {  friend class ::WinIfExists;
 
10319
 {
 
10320
#line 10321 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10321
  friend class ::CCExprResolve;
 
10322
  friend class ::CExprResolve;
 
10323
  friend class ::WinIfExists;
9116
10324
  friend class ::WinImportHandler;
9117
10325
  friend class ::WinMacros;
9118
 
  friend class ::CMatchSyntax;
9119
 
  friend class ::ExtGnu;
 
10326
  friend class ::WinAsm;
 
10327
  friend class ::WinDeclSpecs;
 
10328
  friend class ::WinMemberExplSpec;
 
10329
  friend class ::WinTypeKeywords;
 
10330
  friend class ::WinFriend;
9120
10331
  friend class ::ExtAC;
9121
10332
  friend class ::ExtACBuilderCoupling;
9122
10333
  friend class ::ExtACSyntaxCoupling;
9123
10334
  friend class ::ExtACTree;
9124
10335
  friend class ::ExtACKeywords;
9125
 
  friend class ::WinAsm;
9126
 
  friend class ::WinDeclSpecs;
9127
 
  friend class ::WinMemberExplSpec;
9128
 
  friend class ::WinTypeKeywords;
 
10336
  friend class ::ExtGnu;
9129
10337
  friend class ::PragmaOnceUnitState;
9130
10338
  friend class ::PragmaOnce;
9131
 
  friend class ::CCExprResolve;
9132
 
  friend class ::CExprResolve;
 
10339
  friend class ::CMatchSyntax;
 
10340
 
 
10341
#line 379 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9133
10342
 
9134
10343
    public:
9135
10344
                                        
9150
10359
 
9151
10360
 
9152
10361
// The #warning directive.
 
10362
 
 
10363
#line 10364 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9153
10364
} // closed Puma
 
10365
class CCExprResolve;
 
10366
class CExprResolve;
9154
10367
class WinIfExists;
9155
10368
class WinImportHandler;
9156
10369
class WinMacros;
9157
 
class CMatchSyntax;
9158
 
class ExtGnu;
 
10370
class WinAsm;
 
10371
class WinDeclSpecs;
 
10372
class WinMemberExplSpec;
 
10373
class WinTypeKeywords;
 
10374
class WinFriend;
9159
10375
class ExtAC;
9160
10376
class ExtACBuilderCoupling;
9161
10377
class ExtACSyntaxCoupling;
9162
10378
class ExtACTree;
9163
10379
class ExtACKeywords;
9164
 
class WinAsm;
9165
 
class WinDeclSpecs;
9166
 
class WinMemberExplSpec;
9167
 
class WinTypeKeywords;
 
10380
class ExtGnu;
9168
10381
class PragmaOnceUnitState;
9169
10382
class PragmaOnce;
9170
 
class CCExprResolve;
9171
 
class CExprResolve;
 
10383
class CMatchSyntax;
9172
10384
namespace Puma {
 
10385
 
 
10386
#line 399 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9173
10387
class PreWarningDirective : public PreTreeComposite
9174
 
 {  friend class ::WinIfExists;
 
10388
 {
 
10389
#line 10390 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10390
  friend class ::CCExprResolve;
 
10391
  friend class ::CExprResolve;
 
10392
  friend class ::WinIfExists;
9175
10393
  friend class ::WinImportHandler;
9176
10394
  friend class ::WinMacros;
9177
 
  friend class ::CMatchSyntax;
9178
 
  friend class ::ExtGnu;
 
10395
  friend class ::WinAsm;
 
10396
  friend class ::WinDeclSpecs;
 
10397
  friend class ::WinMemberExplSpec;
 
10398
  friend class ::WinTypeKeywords;
 
10399
  friend class ::WinFriend;
9179
10400
  friend class ::ExtAC;
9180
10401
  friend class ::ExtACBuilderCoupling;
9181
10402
  friend class ::ExtACSyntaxCoupling;
9182
10403
  friend class ::ExtACTree;
9183
10404
  friend class ::ExtACKeywords;
9184
 
  friend class ::WinAsm;
9185
 
  friend class ::WinDeclSpecs;
9186
 
  friend class ::WinMemberExplSpec;
9187
 
  friend class ::WinTypeKeywords;
 
10405
  friend class ::ExtGnu;
9188
10406
  friend class ::PragmaOnceUnitState;
9189
10407
  friend class ::PragmaOnce;
9190
 
  friend class ::CCExprResolve;
9191
 
  friend class ::CExprResolve;
 
10408
  friend class ::CMatchSyntax;
 
10409
 
 
10410
#line 400 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9192
10411
 
9193
10412
    public:
9194
10413
                                        
9206
10425
 
9207
10426
 
9208
10427
// The #error directive.
 
10428
 
 
10429
#line 10430 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9209
10430
} // closed Puma
 
10431
class CCExprResolve;
 
10432
class CExprResolve;
9210
10433
class WinIfExists;
9211
10434
class WinImportHandler;
9212
10435
class WinMacros;
9213
 
class CMatchSyntax;
9214
 
class ExtGnu;
 
10436
class WinAsm;
 
10437
class WinDeclSpecs;
 
10438
class WinMemberExplSpec;
 
10439
class WinTypeKeywords;
 
10440
class WinFriend;
9215
10441
class ExtAC;
9216
10442
class ExtACBuilderCoupling;
9217
10443
class ExtACSyntaxCoupling;
9218
10444
class ExtACTree;
9219
10445
class ExtACKeywords;
9220
 
class WinAsm;
9221
 
class WinDeclSpecs;
9222
 
class WinMemberExplSpec;
9223
 
class WinTypeKeywords;
 
10446
class ExtGnu;
9224
10447
class PragmaOnceUnitState;
9225
10448
class PragmaOnce;
9226
 
class CCExprResolve;
9227
 
class CExprResolve;
 
10449
class CMatchSyntax;
9228
10450
namespace Puma {
 
10451
 
 
10452
#line 417 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9229
10453
class PreErrorDirective : public PreTreeComposite
9230
 
 {  friend class ::WinIfExists;
 
10454
 {
 
10455
#line 10456 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10456
  friend class ::CCExprResolve;
 
10457
  friend class ::CExprResolve;
 
10458
  friend class ::WinIfExists;
9231
10459
  friend class ::WinImportHandler;
9232
10460
  friend class ::WinMacros;
9233
 
  friend class ::CMatchSyntax;
9234
 
  friend class ::ExtGnu;
 
10461
  friend class ::WinAsm;
 
10462
  friend class ::WinDeclSpecs;
 
10463
  friend class ::WinMemberExplSpec;
 
10464
  friend class ::WinTypeKeywords;
 
10465
  friend class ::WinFriend;
9235
10466
  friend class ::ExtAC;
9236
10467
  friend class ::ExtACBuilderCoupling;
9237
10468
  friend class ::ExtACSyntaxCoupling;
9238
10469
  friend class ::ExtACTree;
9239
10470
  friend class ::ExtACKeywords;
9240
 
  friend class ::WinAsm;
9241
 
  friend class ::WinDeclSpecs;
9242
 
  friend class ::WinMemberExplSpec;
9243
 
  friend class ::WinTypeKeywords;
 
10471
  friend class ::ExtGnu;
9244
10472
  friend class ::PragmaOnceUnitState;
9245
10473
  friend class ::PragmaOnce;
9246
 
  friend class ::CCExprResolve;
9247
 
  friend class ::CExprResolve;
 
10474
  friend class ::CMatchSyntax;
 
10475
 
 
10476
#line 418 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9248
10477
 
9249
10478
    public:
9250
10479
                                        
9263
10492
 
9264
10493
// Collects comma separated argument identifiers for a function-like macro.
9265
10494
// Like: id, id, ..., id.
 
10495
 
 
10496
#line 10497 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9266
10497
} // closed Puma
 
10498
class CCExprResolve;
 
10499
class CExprResolve;
9267
10500
class WinIfExists;
9268
10501
class WinImportHandler;
9269
10502
class WinMacros;
9270
 
class CMatchSyntax;
9271
 
class ExtGnu;
 
10503
class WinAsm;
 
10504
class WinDeclSpecs;
 
10505
class WinMemberExplSpec;
 
10506
class WinTypeKeywords;
 
10507
class WinFriend;
9272
10508
class ExtAC;
9273
10509
class ExtACBuilderCoupling;
9274
10510
class ExtACSyntaxCoupling;
9275
10511
class ExtACTree;
9276
10512
class ExtACKeywords;
9277
 
class WinAsm;
9278
 
class WinDeclSpecs;
9279
 
class WinMemberExplSpec;
9280
 
class WinTypeKeywords;
 
10513
class ExtGnu;
9281
10514
class PragmaOnceUnitState;
9282
10515
class PragmaOnce;
9283
 
class CCExprResolve;
9284
 
class CExprResolve;
 
10516
class CMatchSyntax;
9285
10517
namespace Puma {
 
10518
 
 
10519
#line 436 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9286
10520
class PreIdentifierList : public PreTreeComposite
9287
 
 {  friend class ::WinIfExists;
 
10521
 {
 
10522
#line 10523 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10523
  friend class ::CCExprResolve;
 
10524
  friend class ::CExprResolve;
 
10525
  friend class ::WinIfExists;
9288
10526
  friend class ::WinImportHandler;
9289
10527
  friend class ::WinMacros;
9290
 
  friend class ::CMatchSyntax;
9291
 
  friend class ::ExtGnu;
 
10528
  friend class ::WinAsm;
 
10529
  friend class ::WinDeclSpecs;
 
10530
  friend class ::WinMemberExplSpec;
 
10531
  friend class ::WinTypeKeywords;
 
10532
  friend class ::WinFriend;
9292
10533
  friend class ::ExtAC;
9293
10534
  friend class ::ExtACBuilderCoupling;
9294
10535
  friend class ::ExtACSyntaxCoupling;
9295
10536
  friend class ::ExtACTree;
9296
10537
  friend class ::ExtACKeywords;
9297
 
  friend class ::WinAsm;
9298
 
  friend class ::WinDeclSpecs;
9299
 
  friend class ::WinMemberExplSpec;
9300
 
  friend class ::WinTypeKeywords;
 
10538
  friend class ::ExtGnu;
9301
10539
  friend class ::PragmaOnceUnitState;
9302
10540
  friend class ::PragmaOnce;
9303
 
  friend class ::CCExprResolve;
9304
 
  friend class ::CExprResolve;
 
10541
  friend class ::CMatchSyntax;
 
10542
 
 
10543
#line 437 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9305
10544
 
9306
10545
    public:
9307
10546
                                        // Dynamic sons, no daughters. 
9322
10561
 
9323
10562
 
9324
10563
// Collects every kind of token  (except comments) for the macro body.
 
10564
 
 
10565
#line 10566 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9325
10566
} // closed Puma
 
10567
class CCExprResolve;
 
10568
class CExprResolve;
9326
10569
class WinIfExists;
9327
10570
class WinImportHandler;
9328
10571
class WinMacros;
9329
 
class CMatchSyntax;
9330
 
class ExtGnu;
 
10572
class WinAsm;
 
10573
class WinDeclSpecs;
 
10574
class WinMemberExplSpec;
 
10575
class WinTypeKeywords;
 
10576
class WinFriend;
9331
10577
class ExtAC;
9332
10578
class ExtACBuilderCoupling;
9333
10579
class ExtACSyntaxCoupling;
9334
10580
class ExtACTree;
9335
10581
class ExtACKeywords;
9336
 
class WinAsm;
9337
 
class WinDeclSpecs;
9338
 
class WinMemberExplSpec;
9339
 
class WinTypeKeywords;
 
10582
class ExtGnu;
9340
10583
class PragmaOnceUnitState;
9341
10584
class PragmaOnce;
9342
 
class CCExprResolve;
9343
 
class CExprResolve;
 
10585
class CMatchSyntax;
9344
10586
namespace Puma {
 
10587
 
 
10588
#line 457 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9345
10589
class PreTokenList : public PreTreeComposite
9346
 
 {  friend class ::WinIfExists;
 
10590
 {
 
10591
#line 10592 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10592
  friend class ::CCExprResolve;
 
10593
  friend class ::CExprResolve;
 
10594
  friend class ::WinIfExists;
9347
10595
  friend class ::WinImportHandler;
9348
10596
  friend class ::WinMacros;
9349
 
  friend class ::CMatchSyntax;
9350
 
  friend class ::ExtGnu;
 
10597
  friend class ::WinAsm;
 
10598
  friend class ::WinDeclSpecs;
 
10599
  friend class ::WinMemberExplSpec;
 
10600
  friend class ::WinTypeKeywords;
 
10601
  friend class ::WinFriend;
9351
10602
  friend class ::ExtAC;
9352
10603
  friend class ::ExtACBuilderCoupling;
9353
10604
  friend class ::ExtACSyntaxCoupling;
9354
10605
  friend class ::ExtACTree;
9355
10606
  friend class ::ExtACKeywords;
9356
 
  friend class ::WinAsm;
9357
 
  friend class ::WinDeclSpecs;
9358
 
  friend class ::WinMemberExplSpec;
9359
 
  friend class ::WinTypeKeywords;
 
10607
  friend class ::ExtGnu;
9360
10608
  friend class ::PragmaOnceUnitState;
9361
10609
  friend class ::PragmaOnce;
9362
 
  friend class ::CCExprResolve;
9363
 
  friend class ::CExprResolve;
 
10610
  friend class ::CMatchSyntax;
 
10611
 
 
10612
#line 458 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9364
10613
 
9365
10614
    public:
9366
10615
                                        
9383
10632
 
9384
10633
 
9385
10634
// Contains every kind of token  (except comments) for the macro body.
 
10635
 
 
10636
#line 10637 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9386
10637
} // closed Puma
 
10638
class CCExprResolve;
 
10639
class CExprResolve;
9387
10640
class WinIfExists;
9388
10641
class WinImportHandler;
9389
10642
class WinMacros;
9390
 
class CMatchSyntax;
9391
 
class ExtGnu;
 
10643
class WinAsm;
 
10644
class WinDeclSpecs;
 
10645
class WinMemberExplSpec;
 
10646
class WinTypeKeywords;
 
10647
class WinFriend;
9392
10648
class ExtAC;
9393
10649
class ExtACBuilderCoupling;
9394
10650
class ExtACSyntaxCoupling;
9395
10651
class ExtACTree;
9396
10652
class ExtACKeywords;
9397
 
class WinAsm;
9398
 
class WinDeclSpecs;
9399
 
class WinMemberExplSpec;
9400
 
class WinTypeKeywords;
 
10653
class ExtGnu;
9401
10654
class PragmaOnceUnitState;
9402
10655
class PragmaOnce;
9403
 
class CCExprResolve;
9404
 
class CExprResolve;
 
10656
class CMatchSyntax;
9405
10657
namespace Puma {
 
10658
 
 
10659
#line 480 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9406
10660
class PreTokenListPart : public PreTreeComposite
9407
 
 {  friend class ::WinIfExists;
 
10661
 {
 
10662
#line 10663 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10663
  friend class ::CCExprResolve;
 
10664
  friend class ::CExprResolve;
 
10665
  friend class ::WinIfExists;
9408
10666
  friend class ::WinImportHandler;
9409
10667
  friend class ::WinMacros;
9410
 
  friend class ::CMatchSyntax;
9411
 
  friend class ::ExtGnu;
 
10668
  friend class ::WinAsm;
 
10669
  friend class ::WinDeclSpecs;
 
10670
  friend class ::WinMemberExplSpec;
 
10671
  friend class ::WinTypeKeywords;
 
10672
  friend class ::WinFriend;
9412
10673
  friend class ::ExtAC;
9413
10674
  friend class ::ExtACBuilderCoupling;
9414
10675
  friend class ::ExtACSyntaxCoupling;
9415
10676
  friend class ::ExtACTree;
9416
10677
  friend class ::ExtACKeywords;
9417
 
  friend class ::WinAsm;
9418
 
  friend class ::WinDeclSpecs;
9419
 
  friend class ::WinMemberExplSpec;
9420
 
  friend class ::WinTypeKeywords;
 
10678
  friend class ::ExtGnu;
9421
10679
  friend class ::PragmaOnceUnitState;
9422
10680
  friend class ::PragmaOnce;
9423
 
  friend class ::CCExprResolve;
9424
 
  friend class ::CExprResolve;
 
10681
  friend class ::CMatchSyntax;
 
10682
 
 
10683
#line 481 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9425
10684
 
9426
10685
    public:
9427
10686
                                        // Dynamic sons, no daughters.
9438
10697
 
9439
10698
 
9440
10699
// Semantic node for conditionals.
 
10700
 
 
10701
#line 10702 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9441
10702
} // closed Puma
 
10703
class CCExprResolve;
 
10704
class CExprResolve;
9442
10705
class WinIfExists;
9443
10706
class WinImportHandler;
9444
10707
class WinMacros;
9445
 
class CMatchSyntax;
9446
 
class ExtGnu;
 
10708
class WinAsm;
 
10709
class WinDeclSpecs;
 
10710
class WinMemberExplSpec;
 
10711
class WinTypeKeywords;
 
10712
class WinFriend;
9447
10713
class ExtAC;
9448
10714
class ExtACBuilderCoupling;
9449
10715
class ExtACSyntaxCoupling;
9450
10716
class ExtACTree;
9451
10717
class ExtACKeywords;
9452
 
class WinAsm;
9453
 
class WinDeclSpecs;
9454
 
class WinMemberExplSpec;
9455
 
class WinTypeKeywords;
 
10718
class ExtGnu;
9456
10719
class PragmaOnceUnitState;
9457
10720
class PragmaOnce;
9458
 
class CCExprResolve;
9459
 
class CExprResolve;
 
10721
class CMatchSyntax;
9460
10722
namespace Puma {
 
10723
 
 
10724
#line 497 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9461
10725
class PreCondSemNode : public PreTree
9462
 
 {  friend class ::WinIfExists;
 
10726
 {
 
10727
#line 10728 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10728
  friend class ::CCExprResolve;
 
10729
  friend class ::CExprResolve;
 
10730
  friend class ::WinIfExists;
9463
10731
  friend class ::WinImportHandler;
9464
10732
  friend class ::WinMacros;
9465
 
  friend class ::CMatchSyntax;
9466
 
  friend class ::ExtGnu;
 
10733
  friend class ::WinAsm;
 
10734
  friend class ::WinDeclSpecs;
 
10735
  friend class ::WinMemberExplSpec;
 
10736
  friend class ::WinTypeKeywords;
 
10737
  friend class ::WinFriend;
9467
10738
  friend class ::ExtAC;
9468
10739
  friend class ::ExtACBuilderCoupling;
9469
10740
  friend class ::ExtACSyntaxCoupling;
9470
10741
  friend class ::ExtACTree;
9471
10742
  friend class ::ExtACKeywords;
9472
 
  friend class ::WinAsm;
9473
 
  friend class ::WinDeclSpecs;
9474
 
  friend class ::WinMemberExplSpec;
9475
 
  friend class ::WinTypeKeywords;
 
10743
  friend class ::ExtGnu;
9476
10744
  friend class ::PragmaOnceUnitState;
9477
10745
  friend class ::PragmaOnce;
9478
 
  friend class ::CCExprResolve;
9479
 
  friend class ::CExprResolve;
 
10746
  friend class ::CMatchSyntax;
 
10747
 
 
10748
#line 498 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9480
10749
 
9481
10750
        // Boolean value of the condition of a conditional.
9482
10751
        bool _value;
9496
10765
 
9497
10766
 
9498
10767
// Semantic node for the #include directive.
 
10768
 
 
10769
#line 10770 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9499
10770
} // closed Puma
 
10771
class CCExprResolve;
 
10772
class CExprResolve;
9500
10773
class WinIfExists;
9501
10774
class WinImportHandler;
9502
10775
class WinMacros;
9503
 
class CMatchSyntax;
9504
 
class ExtGnu;
 
10776
class WinAsm;
 
10777
class WinDeclSpecs;
 
10778
class WinMemberExplSpec;
 
10779
class WinTypeKeywords;
 
10780
class WinFriend;
9505
10781
class ExtAC;
9506
10782
class ExtACBuilderCoupling;
9507
10783
class ExtACSyntaxCoupling;
9508
10784
class ExtACTree;
9509
10785
class ExtACKeywords;
9510
 
class WinAsm;
9511
 
class WinDeclSpecs;
9512
 
class WinMemberExplSpec;
9513
 
class WinTypeKeywords;
 
10786
class ExtGnu;
9514
10787
class PragmaOnceUnitState;
9515
10788
class PragmaOnce;
9516
 
class CCExprResolve;
9517
 
class CExprResolve;
 
10789
class CMatchSyntax;
9518
10790
namespace Puma {
 
10791
 
 
10792
#line 517 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9519
10793
class PreInclSemNode : public PreTree
9520
 
 {  friend class ::WinIfExists;
 
10794
 {
 
10795
#line 10796 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10796
  friend class ::CCExprResolve;
 
10797
  friend class ::CExprResolve;
 
10798
  friend class ::WinIfExists;
9521
10799
  friend class ::WinImportHandler;
9522
10800
  friend class ::WinMacros;
9523
 
  friend class ::CMatchSyntax;
9524
 
  friend class ::ExtGnu;
 
10801
  friend class ::WinAsm;
 
10802
  friend class ::WinDeclSpecs;
 
10803
  friend class ::WinMemberExplSpec;
 
10804
  friend class ::WinTypeKeywords;
 
10805
  friend class ::WinFriend;
9525
10806
  friend class ::ExtAC;
9526
10807
  friend class ::ExtACBuilderCoupling;
9527
10808
  friend class ::ExtACSyntaxCoupling;
9528
10809
  friend class ::ExtACTree;
9529
10810
  friend class ::ExtACKeywords;
9530
 
  friend class ::WinAsm;
9531
 
  friend class ::WinDeclSpecs;
9532
 
  friend class ::WinMemberExplSpec;
9533
 
  friend class ::WinTypeKeywords;
 
10811
  friend class ::ExtGnu;
9534
10812
  friend class ::PragmaOnceUnitState;
9535
10813
  friend class ::PragmaOnce;
9536
 
  friend class ::CCExprResolve;
9537
 
  friend class ::CExprResolve;
 
10814
  friend class ::CMatchSyntax;
 
10815
 
 
10816
#line 518 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9538
10817
 
9539
10818
        // Pointer of the included file unit.
9540
10819
        Unit* _unit;
9563
10842
 
9564
10843
// Special parse error node to show the location of an error in the
9565
10844
// preprocessor syntax tree.
 
10845
 
 
10846
#line 10847 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9566
10847
} // closed Puma
 
10848
class CCExprResolve;
 
10849
class CExprResolve;
9567
10850
class WinIfExists;
9568
10851
class WinImportHandler;
9569
10852
class WinMacros;
9570
 
class CMatchSyntax;
9571
 
class ExtGnu;
 
10853
class WinAsm;
 
10854
class WinDeclSpecs;
 
10855
class WinMemberExplSpec;
 
10856
class WinTypeKeywords;
 
10857
class WinFriend;
9572
10858
class ExtAC;
9573
10859
class ExtACBuilderCoupling;
9574
10860
class ExtACSyntaxCoupling;
9575
10861
class ExtACTree;
9576
10862
class ExtACKeywords;
9577
 
class WinAsm;
9578
 
class WinDeclSpecs;
9579
 
class WinMemberExplSpec;
9580
 
class WinTypeKeywords;
 
10863
class ExtGnu;
9581
10864
class PragmaOnceUnitState;
9582
10865
class PragmaOnce;
9583
 
class CCExprResolve;
9584
 
class CExprResolve;
 
10866
class CMatchSyntax;
9585
10867
namespace Puma {
 
10868
 
 
10869
#line 546 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9586
10870
class PreError : public PreTree
9587
 
 {  friend class ::WinIfExists;
 
10871
 {
 
10872
#line 10873 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10873
  friend class ::CCExprResolve;
 
10874
  friend class ::CExprResolve;
 
10875
  friend class ::WinIfExists;
9588
10876
  friend class ::WinImportHandler;
9589
10877
  friend class ::WinMacros;
9590
 
  friend class ::CMatchSyntax;
9591
 
  friend class ::ExtGnu;
 
10878
  friend class ::WinAsm;
 
10879
  friend class ::WinDeclSpecs;
 
10880
  friend class ::WinMemberExplSpec;
 
10881
  friend class ::WinTypeKeywords;
 
10882
  friend class ::WinFriend;
9592
10883
  friend class ::ExtAC;
9593
10884
  friend class ::ExtACBuilderCoupling;
9594
10885
  friend class ::ExtACSyntaxCoupling;
9595
10886
  friend class ::ExtACTree;
9596
10887
  friend class ::ExtACKeywords;
9597
 
  friend class ::WinAsm;
9598
 
  friend class ::WinDeclSpecs;
9599
 
  friend class ::WinMemberExplSpec;
9600
 
  friend class ::WinTypeKeywords;
 
10888
  friend class ::ExtGnu;
9601
10889
  friend class ::PragmaOnceUnitState;
9602
10890
  friend class ::PragmaOnce;
9603
 
  friend class ::CCExprResolve;
9604
 
  friend class ::CExprResolve;
 
10891
  friend class ::CMatchSyntax;
 
10892
 
 
10893
#line 547 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9605
10894
 
9606
10895
    public:
9607
10896
 
9617
10906
} // namespace Puma
9618
10907
 
9619
10908
#endif /* __pre_syntax_tree_nodes__ */
 
10909
 
 
10910
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
9620
10911
// This file is part of PUMA.
9621
10912
// Copyright (C) 1999-2003  The PUMA developer team.
9622
10913
//                                                                
9641
10932
// The predicate manager manages all preprocessor predicates defined
9642
10933
// through the `#assert' directive in the source code.
9643
10934
 
 
10935
 
 
10936
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
9644
10937
using std::map;
 
10938
 
 
10939
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
9645
10940
using std::string;
9646
10941
 
9647
10942
namespace Puma {
9649
10944
 
9650
10945
class PrePredicate;
9651
10946
 
 
10947
 
 
10948
#line 10949 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
9652
10949
} // closed Puma
 
10950
class CCExprResolve;
 
10951
class CExprResolve;
9653
10952
class WinIfExists;
9654
10953
class WinImportHandler;
9655
10954
class WinMacros;
9656
 
class CMatchSyntax;
9657
 
class ExtGnu;
 
10955
class WinAsm;
 
10956
class WinDeclSpecs;
 
10957
class WinMemberExplSpec;
 
10958
class WinTypeKeywords;
 
10959
class WinFriend;
9658
10960
class ExtAC;
9659
10961
class ExtACBuilderCoupling;
9660
10962
class ExtACSyntaxCoupling;
9661
10963
class ExtACTree;
9662
10964
class ExtACKeywords;
9663
 
class WinAsm;
9664
 
class WinDeclSpecs;
9665
 
class WinMemberExplSpec;
9666
 
class WinTypeKeywords;
 
10965
class ExtGnu;
9667
10966
class PragmaOnceUnitState;
9668
10967
class PragmaOnce;
9669
 
class CCExprResolve;
9670
 
class CExprResolve;
 
10968
class CMatchSyntax;
9671
10969
namespace Puma {
9672
 
class PrePredicateManager : private map<string, PrePredicate*> {  friend class ::WinIfExists;
 
10970
 
 
10971
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
 
10972
class PrePredicateManager : private map<string, PrePredicate*> {
 
10973
#line 10974 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
10974
  friend class ::CCExprResolve;
 
10975
  friend class ::CExprResolve;
 
10976
  friend class ::WinIfExists;
9673
10977
  friend class ::WinImportHandler;
9674
10978
  friend class ::WinMacros;
9675
 
  friend class ::CMatchSyntax;
9676
 
  friend class ::ExtGnu;
 
10979
  friend class ::WinAsm;
 
10980
  friend class ::WinDeclSpecs;
 
10981
  friend class ::WinMemberExplSpec;
 
10982
  friend class ::WinTypeKeywords;
 
10983
  friend class ::WinFriend;
9677
10984
  friend class ::ExtAC;
9678
10985
  friend class ::ExtACBuilderCoupling;
9679
10986
  friend class ::ExtACSyntaxCoupling;
9680
10987
  friend class ::ExtACTree;
9681
10988
  friend class ::ExtACKeywords;
9682
 
  friend class ::WinAsm;
9683
 
  friend class ::WinDeclSpecs;
9684
 
  friend class ::WinMemberExplSpec;
9685
 
  friend class ::WinTypeKeywords;
 
10989
  friend class ::ExtGnu;
9686
10990
  friend class ::PragmaOnceUnitState;
9687
10991
  friend class ::PragmaOnce;
9688
 
  friend class ::CCExprResolve;
9689
 
  friend class ::CExprResolve;
 
10992
  friend class ::CMatchSyntax;
 
10993
 
 
10994
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
9690
10995
 
9691
10996
 
9692
10997
  typedef map<string, PrePredicate*> PMap;
9710
11015
} // namespace Puma
9711
11016
 
9712
11017
#endif /* __pre_predicate_manager__ */
 
11018
 
 
11019
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
9713
11020
#include <stdlib.h>
 
11021
 
 
11022
#line 54 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
9714
11023
using namespace std;
9715
11024
 
9716
11025
 
10281
11590
      if (state->passOnToken && ! state->errorDirective) {
10282
11591
        // Check every C++ identifier for macro calls.
10283
11592
        if (state->currToken->is_identifier ()) 
10284
 
          if ((macro = _macroManager->getMacro (state->currToken->text ()))) {
 
11593
          if ((macro = _macroManager->getMacro (state->currToken->dtext ()))) {
10285
11594
            
10286
11595
            // Check whether a special predefined macro was called
10287
11596
            // and update it if necessary.
10367
11676
 
10368
11677
} // namespace Puma
10369
11678
 
10370
 
#line 711 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
11679
#line 711 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
10371
11680
/* Next is all token values, in a form suitable for use by makeheaders.
10372
11681
** This section will be null unless lemon is run with the -m switch.
10373
11682
*/
10452
11761
** "state" table (which follows) contains information about the starting
10453
11762
** point and size of each hash table.
10454
11763
*/
 
11764
 
 
11765
#line 11766 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
11766
class CCExprResolve;
 
11767
class CExprResolve;
10455
11768
class WinIfExists;
10456
11769
class WinImportHandler;
10457
11770
class WinMacros;
10458
 
class CMatchSyntax;
10459
 
class ExtGnu;
 
11771
class WinAsm;
 
11772
class WinDeclSpecs;
 
11773
class WinMemberExplSpec;
 
11774
class WinTypeKeywords;
 
11775
class WinFriend;
10460
11776
class ExtAC;
10461
11777
class ExtACBuilderCoupling;
10462
11778
class ExtACSyntaxCoupling;
10463
11779
class ExtACTree;
10464
11780
class ExtACKeywords;
10465
 
class WinAsm;
10466
 
class WinDeclSpecs;
10467
 
class WinMemberExplSpec;
10468
 
class WinTypeKeywords;
 
11781
class ExtGnu;
10469
11782
class PragmaOnceUnitState;
10470
11783
class PragmaOnce;
10471
 
class CCExprResolve;
10472
 
class CExprResolve;
10473
 
struct yyActionEntry {  friend class ::WinIfExists;
 
11784
class CMatchSyntax;
 
11785
 
 
11786
#line 795 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
11787
struct yyActionEntry {
 
11788
#line 11789 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
11789
  friend class ::CCExprResolve;
 
11790
  friend class ::CExprResolve;
 
11791
  friend class ::WinIfExists;
10474
11792
  friend class ::WinImportHandler;
10475
11793
  friend class ::WinMacros;
10476
 
  friend class ::CMatchSyntax;
10477
 
  friend class ::ExtGnu;
 
11794
  friend class ::WinAsm;
 
11795
  friend class ::WinDeclSpecs;
 
11796
  friend class ::WinMemberExplSpec;
 
11797
  friend class ::WinTypeKeywords;
 
11798
  friend class ::WinFriend;
10478
11799
  friend class ::ExtAC;
10479
11800
  friend class ::ExtACBuilderCoupling;
10480
11801
  friend class ::ExtACSyntaxCoupling;
10481
11802
  friend class ::ExtACTree;
10482
11803
  friend class ::ExtACKeywords;
10483
 
  friend class ::WinAsm;
10484
 
  friend class ::WinDeclSpecs;
10485
 
  friend class ::WinMemberExplSpec;
10486
 
  friend class ::WinTypeKeywords;
 
11804
  friend class ::ExtGnu;
10487
11805
  friend class ::PragmaOnceUnitState;
10488
11806
  friend class ::PragmaOnce;
10489
 
  friend class ::CCExprResolve;
10490
 
  friend class ::CExprResolve;
 
11807
  friend class ::CMatchSyntax;
 
11808
 
 
11809
#line 795 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
10491
11810
 
10492
11811
  YYCODETYPE   lookahead;   /* The value of the look-ahead token */
10493
11812
  YYACTIONTYPE action;      /* Action to take for this look-ahead */
11031
12350
**  +  The default action.  This is the action to take if no entry for
11032
12351
**     the given look-ahead is found in the action hash table.
11033
12352
*/
 
12353
 
 
12354
#line 12355 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
12355
class CCExprResolve;
 
12356
class CExprResolve;
11034
12357
class WinIfExists;
11035
12358
class WinImportHandler;
11036
12359
class WinMacros;
11037
 
class CMatchSyntax;
11038
 
class ExtGnu;
 
12360
class WinAsm;
 
12361
class WinDeclSpecs;
 
12362
class WinMemberExplSpec;
 
12363
class WinTypeKeywords;
 
12364
class WinFriend;
11039
12365
class ExtAC;
11040
12366
class ExtACBuilderCoupling;
11041
12367
class ExtACSyntaxCoupling;
11042
12368
class ExtACTree;
11043
12369
class ExtACKeywords;
11044
 
class WinAsm;
11045
 
class WinDeclSpecs;
11046
 
class WinMemberExplSpec;
11047
 
class WinTypeKeywords;
 
12370
class ExtGnu;
11048
12371
class PragmaOnceUnitState;
11049
12372
class PragmaOnce;
11050
 
class CCExprResolve;
11051
 
class CExprResolve;
11052
 
struct yyStateEntry {  friend class ::WinIfExists;
 
12373
class CMatchSyntax;
 
12374
 
 
12375
#line 1338 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
12376
struct yyStateEntry {
 
12377
#line 12378 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
12378
  friend class ::CCExprResolve;
 
12379
  friend class ::CExprResolve;
 
12380
  friend class ::WinIfExists;
11053
12381
  friend class ::WinImportHandler;
11054
12382
  friend class ::WinMacros;
11055
 
  friend class ::CMatchSyntax;
11056
 
  friend class ::ExtGnu;
 
12383
  friend class ::WinAsm;
 
12384
  friend class ::WinDeclSpecs;
 
12385
  friend class ::WinMemberExplSpec;
 
12386
  friend class ::WinTypeKeywords;
 
12387
  friend class ::WinFriend;
11057
12388
  friend class ::ExtAC;
11058
12389
  friend class ::ExtACBuilderCoupling;
11059
12390
  friend class ::ExtACSyntaxCoupling;
11060
12391
  friend class ::ExtACTree;
11061
12392
  friend class ::ExtACKeywords;
11062
 
  friend class ::WinAsm;
11063
 
  friend class ::WinDeclSpecs;
11064
 
  friend class ::WinMemberExplSpec;
11065
 
  friend class ::WinTypeKeywords;
 
12393
  friend class ::ExtGnu;
11066
12394
  friend class ::PragmaOnceUnitState;
11067
12395
  friend class ::PragmaOnce;
11068
 
  friend class ::CCExprResolve;
11069
 
  friend class ::CExprResolve;
 
12396
  friend class ::CMatchSyntax;
 
12397
 
 
12398
#line 1338 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11070
12399
 
11071
12400
  struct yyActionEntry *hashtbl; /* Start of the hash table in yyActionTable */
11072
12401
  int mask;                      /* Mask used for hashing the look-ahead */
11197
12526
**      the information used by the action routines in the grammar.
11198
12527
**      It is sometimes called the "minor" token.
11199
12528
*/
 
12529
 
 
12530
#line 12531 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
12531
class CCExprResolve;
 
12532
class CExprResolve;
11200
12533
class WinIfExists;
11201
12534
class WinImportHandler;
11202
12535
class WinMacros;
11203
 
class CMatchSyntax;
11204
 
class ExtGnu;
 
12536
class WinAsm;
 
12537
class WinDeclSpecs;
 
12538
class WinMemberExplSpec;
 
12539
class WinTypeKeywords;
 
12540
class WinFriend;
11205
12541
class ExtAC;
11206
12542
class ExtACBuilderCoupling;
11207
12543
class ExtACSyntaxCoupling;
11208
12544
class ExtACTree;
11209
12545
class ExtACKeywords;
11210
 
class WinAsm;
11211
 
class WinDeclSpecs;
11212
 
class WinMemberExplSpec;
11213
 
class WinTypeKeywords;
 
12546
class ExtGnu;
11214
12547
class PragmaOnceUnitState;
11215
12548
class PragmaOnce;
11216
 
class CCExprResolve;
11217
 
class CExprResolve;
11218
 
struct yyStackEntry {  friend class ::WinIfExists;
 
12549
class CMatchSyntax;
 
12550
 
 
12551
#line 1468 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
12552
struct yyStackEntry {
 
12553
#line 12554 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
12554
  friend class ::CCExprResolve;
 
12555
  friend class ::CExprResolve;
 
12556
  friend class ::WinIfExists;
11219
12557
  friend class ::WinImportHandler;
11220
12558
  friend class ::WinMacros;
11221
 
  friend class ::CMatchSyntax;
11222
 
  friend class ::ExtGnu;
 
12559
  friend class ::WinAsm;
 
12560
  friend class ::WinDeclSpecs;
 
12561
  friend class ::WinMemberExplSpec;
 
12562
  friend class ::WinTypeKeywords;
 
12563
  friend class ::WinFriend;
11223
12564
  friend class ::ExtAC;
11224
12565
  friend class ::ExtACBuilderCoupling;
11225
12566
  friend class ::ExtACSyntaxCoupling;
11226
12567
  friend class ::ExtACTree;
11227
12568
  friend class ::ExtACKeywords;
11228
 
  friend class ::WinAsm;
11229
 
  friend class ::WinDeclSpecs;
11230
 
  friend class ::WinMemberExplSpec;
11231
 
  friend class ::WinTypeKeywords;
 
12569
  friend class ::ExtGnu;
11232
12570
  friend class ::PragmaOnceUnitState;
11233
12571
  friend class ::PragmaOnce;
11234
 
  friend class ::CCExprResolve;
11235
 
  friend class ::CExprResolve;
 
12572
  friend class ::CMatchSyntax;
 
12573
 
 
12574
#line 1468 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11236
12575
 
11237
12576
  int stateno;       /* The state-number */
11238
12577
  int major;         /* The major token value.  This is the code
11243
12582
 
11244
12583
/* The state of the parser is completely contained in an instance of
11245
12584
** the following structure */
 
12585
 
 
12586
#line 12587 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
12587
class CCExprResolve;
 
12588
class CExprResolve;
11246
12589
class WinIfExists;
11247
12590
class WinImportHandler;
11248
12591
class WinMacros;
11249
 
class CMatchSyntax;
11250
 
class ExtGnu;
 
12592
class WinAsm;
 
12593
class WinDeclSpecs;
 
12594
class WinMemberExplSpec;
 
12595
class WinTypeKeywords;
 
12596
class WinFriend;
11251
12597
class ExtAC;
11252
12598
class ExtACBuilderCoupling;
11253
12599
class ExtACSyntaxCoupling;
11254
12600
class ExtACTree;
11255
12601
class ExtACKeywords;
11256
 
class WinAsm;
11257
 
class WinDeclSpecs;
11258
 
class WinMemberExplSpec;
11259
 
class WinTypeKeywords;
 
12602
class ExtGnu;
11260
12603
class PragmaOnceUnitState;
11261
12604
class PragmaOnce;
11262
 
class CCExprResolve;
11263
 
class CExprResolve;
11264
 
struct yyParser {  friend class ::WinIfExists;
 
12605
class CMatchSyntax;
 
12606
 
 
12607
#line 1478 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
12608
struct yyParser {
 
12609
#line 12610 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
12610
  friend class ::CCExprResolve;
 
12611
  friend class ::CExprResolve;
 
12612
  friend class ::WinIfExists;
11265
12613
  friend class ::WinImportHandler;
11266
12614
  friend class ::WinMacros;
11267
 
  friend class ::CMatchSyntax;
11268
 
  friend class ::ExtGnu;
 
12615
  friend class ::WinAsm;
 
12616
  friend class ::WinDeclSpecs;
 
12617
  friend class ::WinMemberExplSpec;
 
12618
  friend class ::WinTypeKeywords;
 
12619
  friend class ::WinFriend;
11269
12620
  friend class ::ExtAC;
11270
12621
  friend class ::ExtACBuilderCoupling;
11271
12622
  friend class ::ExtACSyntaxCoupling;
11272
12623
  friend class ::ExtACTree;
11273
12624
  friend class ::ExtACKeywords;
11274
 
  friend class ::WinAsm;
11275
 
  friend class ::WinDeclSpecs;
11276
 
  friend class ::WinMemberExplSpec;
11277
 
  friend class ::WinTypeKeywords;
 
12625
  friend class ::ExtGnu;
11278
12626
  friend class ::PragmaOnceUnitState;
11279
12627
  friend class ::PragmaOnce;
11280
 
  friend class ::CCExprResolve;
11281
 
  friend class ::CExprResolve;
 
12628
  friend class ::CMatchSyntax;
 
12629
 
 
12630
#line 1478 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11282
12631
 
11283
12632
  int idx;                            /* Index of top element in stack */
11284
12633
  int errcnt;                         /* Shifts left before out of the error */
11484
12833
  *err << state->lastToken->location () << sev_fatal 
11485
12834
       << "Giving up. Preprocessor stack overflow (>1000)" << endMessage;
11486
12835
 
11487
 
#line 1683 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12836
#line 1683 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11488
12837
     return;
11489
12838
  }
11490
12839
  yypParser->top->stateno = yyNewState;
11505
12854
/* The following table contains information about every rule that
11506
12855
** is used during the reduce.
11507
12856
*/
11508
 
class WinIfExists;
11509
 
class WinImportHandler;
11510
 
class WinMacros;
11511
 
class CMatchSyntax;
11512
 
class ExtGnu;
11513
 
class ExtAC;
11514
 
class ExtACBuilderCoupling;
11515
 
class ExtACSyntaxCoupling;
11516
 
class ExtACTree;
11517
 
class ExtACKeywords;
11518
 
class WinAsm;
11519
 
class WinDeclSpecs;
11520
 
class WinMemberExplSpec;
11521
 
class WinTypeKeywords;
11522
 
class PragmaOnceUnitState;
11523
 
class PragmaOnce;
11524
 
class CCExprResolve;
11525
 
class CExprResolve;
11526
 
static struct {  friend class ::WinIfExists;
11527
 
  friend class ::WinImportHandler;
11528
 
  friend class ::WinMacros;
11529
 
  friend class ::CMatchSyntax;
11530
 
  friend class ::ExtGnu;
11531
 
  friend class ::ExtAC;
11532
 
  friend class ::ExtACBuilderCoupling;
11533
 
  friend class ::ExtACSyntaxCoupling;
11534
 
  friend class ::ExtACTree;
11535
 
  friend class ::ExtACKeywords;
11536
 
  friend class ::WinAsm;
11537
 
  friend class ::WinDeclSpecs;
11538
 
  friend class ::WinMemberExplSpec;
11539
 
  friend class ::WinTypeKeywords;
11540
 
  friend class ::PragmaOnceUnitState;
11541
 
  friend class ::PragmaOnce;
11542
 
  friend class ::CCExprResolve;
11543
 
  friend class ::CExprResolve;
11544
 
 
 
12857
static struct {
11545
12858
  YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
11546
12859
  unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
11547
12860
} yyRuleInfo[] = {
11639
12952
{
11640
12953
        state->syntaxTree = new PreProgram (yymsp[0].minor.yy0);
11641
12954
    }
11642
 
#line 1802 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12955
#line 1802 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11643
12956
        break;
11644
12957
      case 1:
11645
12958
        YYTRACE("directive_groups ::=")
11647
12960
{
11648
12961
        yygotominor.yy0 = new PreDirectiveGroups ();
11649
12962
    }
11650
 
#line 1810 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12963
#line 1810 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11651
12964
        break;
11652
12965
      case 2:
11653
12966
        YYTRACE("directive_groups ::= directive_groups directive_group")
11656
12969
        yymsp[-1].minor.yy0->add_son (yymsp[0].minor.yy0);
11657
12970
        yygotominor.yy0 = yymsp[-1].minor.yy0;
11658
12971
    }
11659
 
#line 1819 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12972
#line 1819 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11660
12973
        break;
11661
12974
      case 3:
11662
12975
        YYTRACE("directive_groups ::= directive_groups error")
11665
12978
        yymsp[-1].minor.yy0->add_son (new PreError ());
11666
12979
        yygotominor.yy0 = yymsp[-1].minor.yy0;
11667
12980
    }
11668
 
#line 1828 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12981
#line 1828 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11669
12982
        /* No destructor defined for error */
11670
12983
        break;
11671
12984
      case 4:
11674
12987
{
11675
12988
        yygotominor.yy0 = yymsp[0].minor.yy0;
11676
12989
    }
11677
 
#line 1837 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12990
#line 1837 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11678
12991
        break;
11679
12992
      case 5:
11680
12993
        YYTRACE("directive_group ::= conditional_group")
11682
12995
{
11683
12996
        yygotominor.yy0 = yymsp[0].minor.yy0;
11684
12997
    }
11685
 
#line 1845 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
12998
#line 1845 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11686
12999
        break;
11687
13000
      case 6:
11688
13001
        YYTRACE("conditional_group ::= if_part directive_groups endif_part")
11690
13003
{
11691
13004
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
11692
13005
    }
11693
 
#line 1853 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13006
#line 1853 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11694
13007
        break;
11695
13008
      case 7:
11696
13009
        YYTRACE("conditional_group ::= if_part elif_part directive_groups endif_part")
11698
13011
{
11699
13012
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
11700
13013
    }
11701
 
#line 1861 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13014
#line 1861 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11702
13015
        break;
11703
13016
      case 8:
11704
13017
        YYTRACE("conditional_group ::= if_part else_part directive_groups endif_part")
11706
13019
{
11707
13020
        yygotominor.yy0 = new PreConditionalGroup (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
11708
13021
    }
11709
 
#line 1869 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13022
#line 1869 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11710
13023
        break;
11711
13024
      case 9:
11712
13025
        YYTRACE("if_part ::= if_line TOK_PRE_DIRECTIVE_END")
11714
13027
{
11715
13028
        yygotominor.yy0 = yymsp[-1].minor.yy0;
11716
13029
    }
11717
 
#line 1877 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13030
#line 1877 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11718
13031
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11719
13032
        break;
11720
13033
      case 10:
11723
13036
{
11724
13037
        yygotominor.yy0 = yymsp[-1].minor.yy0;
11725
13038
    }
11726
 
#line 1886 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13039
#line 1886 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11727
13040
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11728
13041
        break;
11729
13042
      case 11:
11732
13045
{
11733
13046
        yygotominor.yy0 = yymsp[-1].minor.yy0;
11734
13047
    }
11735
 
#line 1895 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13048
#line 1895 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11736
13049
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11737
13050
        break;
11738
13051
      case 12:
11741
13054
{
11742
13055
        yygotominor.yy0 = new PreElsePart (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
11743
13056
    }
11744
 
#line 1904 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13057
#line 1904 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11745
13058
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11746
13059
        break;
11747
13060
      case 13:
11750
13063
{
11751
13064
        yygotominor.yy0 = new PreElsePart (yymsp[-3].minor.yy0, yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
11752
13065
    }
11753
 
#line 1913 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13066
#line 1913 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11754
13067
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11755
13068
        break;
11756
13069
      case 14:
11760
13073
        yygotominor.yy0 = new PreElifPart ();
11761
13074
        ((PreElifPart*) (yygotominor.yy0))->addSons (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
11762
13075
    }
11763
 
#line 1923 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13076
#line 1923 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11764
13077
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11765
13078
        break;
11766
13079
      case 15:
11770
13083
        ((PreElifPart*) (yymsp[-3].minor.yy0))->addSons (yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
11771
13084
        yygotominor.yy0 = yymsp[-3].minor.yy0;
11772
13085
    }
11773
 
#line 1933 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13086
#line 1933 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11774
13087
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11775
13088
        break;
11776
13089
      case 16:
11779
13092
{
11780
13093
        yygotominor.yy0 = yymsp[-1].minor.yy0;
11781
13094
    }
11782
 
#line 1942 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13095
#line 1942 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11783
13096
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
11784
13097
        break;
11785
13098
      case 17:
11838
13151
                level->setState (false);
11839
13152
            } 
11840
13153
    }
11841
 
#line 2001 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13154
#line 2001 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11842
13155
        break;
11843
13156
      case 18:
11844
13157
        YYTRACE("ifdef_line ::= TOK_PRE_IFDEF token_list")
11856
13169
          level->setState (false);
11857
13170
        }
11858
13171
    }
11859
 
#line 2019 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13172
#line 2019 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11860
13173
        break;
11861
13174
      case 19:
11862
13175
        YYTRACE("ifdef_line ::= TOK_PRE_IFDEF TOK_PRE_ID token_list")
11891
13204
                level->setState (false);
11892
13205
            } 
11893
13206
    }
11894
 
#line 2054 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13207
#line 2054 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11895
13208
        break;
11896
13209
      case 20:
11897
13210
        YYTRACE("ifndef_line ::= TOK_PRE_IFNDEF token_list")
11909
13222
          level->setState (false);
11910
13223
        }
11911
13224
    }
11912
 
#line 2072 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13225
#line 2072 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11913
13226
        break;
11914
13227
      case 21:
11915
13228
        YYTRACE("ifndef_line ::= TOK_PRE_IFNDEF TOK_PRE_ID token_list")
11944
13257
                level->setState (false);
11945
13258
            } 
11946
13259
    }
11947
 
#line 2107 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13260
#line 2107 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
11948
13261
        break;
11949
13262
      case 22:
11950
13263
        YYTRACE("elif_line ::= TOK_PRE_ELIF token_list")
11999
13312
                    } 
12000
13313
            }
12001
13314
    }
12002
 
#line 2162 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13315
#line 2162 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12003
13316
        break;
12004
13317
      case 23:
12005
13318
        YYTRACE("else_line ::= TOK_PRE_ELSE token_list")
12016
13329
                level->setState (false);
12017
13330
            } 
12018
13331
    }
12019
 
#line 2179 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13332
#line 2179 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12020
13333
        break;
12021
13334
      case 24:
12022
13335
        YYTRACE("endif_line ::= TOK_PRE_ENDIF token_list")
12034
13347
            level->higher ();
12035
13348
        }
12036
13349
    }
12037
 
#line 2197 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13350
#line 2197 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12038
13351
        break;
12039
13352
      case 25:
12040
13353
        YYTRACE("control_line ::= include_line TOK_PRE_DIRECTIVE_END")
12042
13355
{
12043
13356
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12044
13357
    }
12045
 
#line 2205 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13358
#line 2205 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12046
13359
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12047
13360
        break;
12048
13361
      case 26:
12051
13364
{
12052
13365
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12053
13366
    }
12054
 
#line 2214 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13367
#line 2214 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12055
13368
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12056
13369
        break;
12057
13370
      case 27:
12060
13373
{
12061
13374
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12062
13375
    }
12063
 
#line 2223 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13376
#line 2223 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12064
13377
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12065
13378
        break;
12066
13379
      case 28:
12069
13382
{
12070
13383
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12071
13384
    }
12072
 
#line 2232 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13385
#line 2232 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12073
13386
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12074
13387
        break;
12075
13388
      case 29:
12078
13391
{
12079
13392
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12080
13393
    }
12081
 
#line 2241 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13394
#line 2241 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12082
13395
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12083
13396
        break;
12084
13397
      case 30:
12087
13400
{
12088
13401
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12089
13402
    }
12090
 
#line 2250 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13403
#line 2250 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12091
13404
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12092
13405
        break;
12093
13406
      case 31:
12096
13409
{
12097
13410
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12098
13411
    }
12099
 
#line 2259 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13412
#line 2259 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12100
13413
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12101
13414
        break;
12102
13415
      case 32:
12105
13418
{
12106
13419
        yygotominor.yy0 = yymsp[-1].minor.yy0;
12107
13420
    }
12108
 
#line 2268 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13421
#line 2268 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12109
13422
        /* No destructor defined for TOK_PRE_DIRECTIVE_END */
12110
13423
        break;
12111
13424
      case 33:
12171
13484
            }
12172
13485
        }
12173
13486
    }
12174
 
#line 2334 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13487
#line 2334 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12175
13488
        break;
12176
13489
      case 34:
12177
13490
        YYTRACE("include_next_line ::= TOK_PRE_INCLUDE_NEXT token_list")
12209
13522
            }
12210
13523
        }
12211
13524
    }
12212
 
#line 2372 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13525
#line 2372 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12213
13526
        break;
12214
13527
      case 35:
12215
13528
        YYTRACE("assert_line ::= TOK_PRE_ASSERT token_list")
12217
13530
{
12218
13531
        yygotominor.yy0 = new PreAssertDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
12219
13532
    }
12220
 
#line 2380 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13533
#line 2380 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12221
13534
        break;
12222
13535
      case 36:
12223
13536
        YYTRACE("assert_line ::= TOK_PRE_ASSERT TOK_PRE_ID token_list")
12247
13560
            }
12248
13561
        }
12249
13562
    }
12250
 
#line 2410 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13563
#line 2410 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12251
13564
        break;
12252
13565
      case 37:
12253
13566
        YYTRACE("unassert_line ::= TOK_PRE_UNASSERT token_list")
12255
13568
{
12256
13569
        yygotominor.yy0 = new PreUnassertDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
12257
13570
    }
12258
 
#line 2418 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13571
#line 2418 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12259
13572
        break;
12260
13573
      case 38:
12261
13574
        YYTRACE("unassert_line ::= TOK_PRE_UNASSERT TOK_PRE_ID token_list")
12286
13599
            }
12287
13600
        }
12288
13601
    }
12289
 
#line 2449 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13602
#line 2449 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12290
13603
        break;
12291
13604
      case 39:
12292
13605
        YYTRACE("define_line ::= TOK_PRE_DEFINE token_list")
12294
13607
{
12295
13608
        yygotominor.yy0 = new PreDefineConstantDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
12296
13609
    }
12297
 
#line 2457 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13610
#line 2457 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12298
13611
        break;
12299
13612
      case 40:
12300
13613
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN TOK_PRE_RPAREN token_list")
12307
13620
            // Build a new function-like macro without arguments.
12308
13621
            char*     str   = buildString (yymsp[0].minor.yy0);
12309
13622
            PreMacro* macro = new PreMacro (((PreTreeToken*) yymsp[-3].minor.yy0)->
12310
 
                              token ()->text (), (PreTree*) 0, str);
 
13623
                              token ()->dtext (), (PreTree*) 0, str);
12311
13624
            delete[] str;
12312
13625
            macro->location (((PreTreeToken*) yymsp[-4].minor.yy0)->token ()->location ());
12313
13626
            
12319
13632
                delete macro;
12320
13633
        }
12321
13634
    }
12322
 
#line 2482 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13635
#line 2482 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12323
13636
        break;
12324
13637
      case 41:
12325
13638
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN TOK_PRE_REST TOK_PRE_RPAREN token_list")
12333
13646
            // of arguments.
12334
13647
            char*     str   = buildString (yymsp[0].minor.yy0);
12335
13648
            PreMacro* macro = new PreMacro (((PreTreeToken*) yymsp[-4].minor.yy0)->
12336
 
                              token ()->text (), (PreTree*) 0, str, 
 
13649
                              token ()->dtext (), (PreTree*) 0, str, 
12337
13650
                              PreMacro::VAR_ARG_MACRO);
12338
13651
            delete[] str;
12339
13652
            macro->location (((PreTreeToken*) yymsp[-5].minor.yy0)->token ()->location ());
12346
13659
                delete macro;
12347
13660
        }
12348
13661
    }
12349
 
#line 2509 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13662
#line 2509 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12350
13663
        break;
12351
13664
      case 42:
12352
13665
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_RPAREN token_list")
12359
13672
            // Build a new function-like macro with arguments.
12360
13673
            char*     str   = buildString (yymsp[0].minor.yy0);
12361
13674
            PreMacro* macro = new PreMacro (((PreTreeToken*) yymsp[-4].minor.yy0)->
12362
 
                              token ()->text (), yymsp[-2].minor.yy0, str);
 
13675
                              token ()->dtext (), yymsp[-2].minor.yy0, str);
12363
13676
            delete[] str;
12364
13677
            macro->location (((PreTreeToken*) yymsp[-5].minor.yy0)->token ()->location ());
12365
13678
        
12371
13684
                delete macro;
12372
13685
        }
12373
13686
    }
12374
 
#line 2534 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13687
#line 2534 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12375
13688
        break;
12376
13689
      case 43:
12377
13690
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_REST TOK_PRE_RPAREN token_list")
12384
13697
            // Build a new function-like macro with arguments.
12385
13698
            char*     str   = buildString (yymsp[0].minor.yy0);
12386
13699
            PreMacro* macro = new PreMacro (((PreTreeToken*) yymsp[-5].minor.yy0)->
12387
 
                              token ()->text (), yymsp[-3].minor.yy0, str, 
 
13700
                              token ()->dtext (), yymsp[-3].minor.yy0, str, 
12388
13701
                              PreMacro::VAR_ARG_MACRO);
12389
13702
            delete[] str;
12390
13703
            macro->location (((PreTreeToken*) yymsp[-6].minor.yy0)->token ()->location ());
12397
13710
                delete macro;
12398
13711
        }
12399
13712
    }
12400
 
#line 2560 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13713
#line 2560 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12401
13714
        break;
12402
13715
      case 44:
12403
13716
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID TOK_PRE_LPAREN identifier_list TOK_PRE_COMMA TOK_PRE_REST TOK_PRE_RPAREN token_list")
12410
13723
            // Build a new function-like macro with arguments.
12411
13724
            char*     str   = buildString (yymsp[0].minor.yy0);
12412
13725
            PreMacro* macro = new PreMacro (((PreTreeToken*) yymsp[-6].minor.yy0)->
12413
 
                              token ()->text (), yymsp[-4].minor.yy0, str, 
 
13726
                              token ()->dtext (), yymsp[-4].minor.yy0, str, 
12414
13727
                              PreMacro::VAR_ARG_MACRO);
12415
13728
            delete[] str;
12416
13729
            macro->addArg ("__VA_ARGS__");
12424
13737
                delete macro;
12425
13738
        }
12426
13739
    }
12427
 
#line 2587 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13740
#line 2587 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12428
13741
        break;
12429
13742
      case 45:
12430
13743
        YYTRACE("define_line ::= TOK_PRE_DEFINE TOK_PRE_ID token_list")
12437
13750
            // Build a new simple macro.
12438
13751
            char*     str   = buildString (yymsp[0].minor.yy0);
12439
13752
            PreMacro* macro = new PreMacro (((PreTreeToken*) yymsp[-1].minor.yy0)->
12440
 
                              token ()->text (), str);
 
13753
                              token ()->dtext (), str);
12441
13754
            delete[] str;
12442
13755
            macro->location (((PreTreeToken*) yymsp[-2].minor.yy0)->token ()->location ());
12443
13756
            
12449
13762
                delete macro;
12450
13763
        }
12451
13764
    }
12452
 
#line 2612 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13765
#line 2612 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12453
13766
        break;
12454
13767
      case 46:
12455
13768
        YYTRACE("undef_line ::= TOK_PRE_UNDEF token_list")
12457
13770
{
12458
13771
        yygotominor.yy0 = new PreUndefDirective (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
12459
13772
    }
12460
 
#line 2620 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13773
#line 2620 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12461
13774
        break;
12462
13775
      case 47:
12463
13776
        YYTRACE("undef_line ::= TOK_PRE_UNDEF TOK_PRE_ID token_list")
12468
13781
        // Remove the macro given by its name from macro manager.
12469
13782
        if (! state->errorDirective && state->passOnToken) 
12470
13783
            parser->macroManager ()->removeMacro (((PreTreeToken*) yymsp[-1].minor.yy0)->
12471
 
                                                  token ()->text ());
 
13784
                                                  token ()->dtext ());
12472
13785
    }
12473
 
#line 2633 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13786
#line 2633 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12474
13787
        break;
12475
13788
      case 48:
12476
13789
        YYTRACE("warning_line ::= TOK_PRE_WARNING token_list")
12488
13801
            delete[] message;
12489
13802
        }
12490
13803
    }
12491
 
#line 2651 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13804
#line 2651 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12492
13805
        break;
12493
13806
      case 49:
12494
13807
        YYTRACE("error_line ::= TOK_PRE_ERROR token_list")
12510
13823
            delete[] message;
12511
13824
        }
12512
13825
    }
12513
 
#line 2673 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13826
#line 2673 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12514
13827
        break;
12515
13828
      case 50:
12516
13829
        YYTRACE("identifier_list ::= TOK_PRE_ID")
12518
13831
12519
13832
        yygotominor.yy0 = new PreIdentifierList (yymsp[0].minor.yy0);
12520
13833
    }
12521
 
#line 2681 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13834
#line 2681 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12522
13835
        break;
12523
13836
      case 51:
12524
13837
        YYTRACE("identifier_list ::= identifier_list TOK_PRE_COMMA TOK_PRE_ID")
12527
13840
        ((PreIdentifierList*) (yymsp[-2].minor.yy0))->addSons (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
12528
13841
        yygotominor.yy0 = yymsp[-2].minor.yy0;
12529
13842
    }
12530
 
#line 2690 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13843
#line 2690 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12531
13844
        break;
12532
13845
      case 52:
12533
13846
        YYTRACE("token_list ::= TOK_PRE_NEWLINE")
12541
13854
        else
12542
13855
            yygotominor.yy0 = yymsp[0].minor.yy0;  
12543
13856
    }
12544
 
#line 2704 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13857
#line 2704 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12545
13858
        break;
12546
13859
      case 53:
12547
13860
        YYTRACE("token_list ::= token_list_part TOK_PRE_NEWLINE")
12555
13868
        else
12556
13869
            yygotominor.yy0 = new PreTokenList (yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
12557
13870
    }
12558
 
#line 2718 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13871
#line 2718 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12559
13872
        break;
12560
13873
      case 54:
12561
13874
        YYTRACE("token_list_part ::= TOK_PRE_TOKEN_LIST")
12563
13876
12564
13877
        yygotominor.yy0 = new PreTokenListPart (yymsp[0].minor.yy0); 
12565
13878
    }
12566
 
#line 2726 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13879
#line 2726 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12567
13880
        break;
12568
13881
      case 55:
12569
13882
        YYTRACE("token_list_part ::= token_list_part TOK_PRE_TOKEN_LIST")
12572
13885
        yymsp[-1].minor.yy0->add_son (yymsp[0].minor.yy0);
12573
13886
        yygotominor.yy0 = yymsp[-1].minor.yy0; 
12574
13887
    }
12575
 
#line 2735 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13888
#line 2735 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12576
13889
        break;
12577
13890
  };
12578
13891
  yygoto = yyRuleInfo[yyruleno].lhs;
12643
13956
                 << state->lastToken->text () << "'" << endMessage; 
12644
13957
    }
12645
13958
 
12646
 
#line 2806 "/tmp/AOP_LIN/AOP/Puma/gen-release/step1/src/PreParser.cc"
 
13959
#line 2806 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
12647
13960
}
12648
13961
 
12649
13962
/*
12811
14124
  return;
12812
14125
}
12813
14126
 
12814
 
struct TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0 {
12815
 
  typedef ::Puma::Token * Result;
12816
 
  typedef ::Puma::PreprocessorParser That;
12817
 
  typedef ::Puma::PreprocessorParser Target;
12818
 
  static const int JPID = 138;
12819
 
  static const AC::JPType JPTYPE = (AC::JPType)4;
12820
 
  struct Res {
12821
 
    typedef ::Puma::Token * Type;
12822
 
    typedef ::Puma::Token * ReferredType;
12823
 
  };
12824
 
  enum { ARGS = 0 };
12825
 
  template <int I, int DUMMY = 0> struct Arg {
12826
 
    typedef void Type;
12827
 
    typedef void ReferredType;
12828
 
  };
12829
 
 
12830
 
  Result *_result;
12831
 
  That *_that;
12832
 
 
12833
 
  inline Result *result() {return (Result*)_result;}
12834
 
  inline That *that() {return (That*)_that;}
12835
 
 
12836
 
};
12837
 
 
12838
 
 
12839
 
struct TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0 {
12840
 
  typedef ::Puma::Token * Result;
12841
 
  typedef ::Puma::PreprocessorParser That;
12842
 
  typedef ::Puma::PreprocessorParser Target;
12843
 
  static const int JPID = 139;
12844
 
  static const AC::JPType JPTYPE = (AC::JPType)4;
12845
 
  struct Res {
12846
 
    typedef ::Puma::Token * Type;
12847
 
    typedef ::Puma::Token * ReferredType;
12848
 
  };
12849
 
  enum { ARGS = 0 };
12850
 
  template <int I, int DUMMY = 0> struct Arg {
12851
 
    typedef void Type;
12852
 
    typedef void ReferredType;
12853
 
  };
12854
 
 
12855
 
  Result *_result;
12856
 
  That *_that;
12857
 
 
12858
 
  inline Result *result() {return (Result*)_result;}
12859
 
  inline That *that() {return (That*)_that;}
12860
 
 
12861
 
};
12862
 
 
12863
 
void Puma::PreprocessorParser ::skip_up_to (int end_token) {
12864
 
 
12865
 
struct __call__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0 {
12866
 
static inline ::Puma::Token * invoke (::Puma::PreprocessorParser *srcthis, ::Puma::PreprocessorParser *dstthis){
12867
 
  AC::ResultBuffer< ::Puma::Token *  > result;
12868
 
  TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0 tjp;
12869
 
  tjp._result = &(TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0::Result&)result;
12870
 
  tjp._that =  (TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0::That*)srcthis;
12871
 
  ::new (&result) ::Puma::Token *  (dstthis->parseToken());
12872
 
  AC::invoke_PragmaOnce_PragmaOnce_a1_after<TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0> (&tjp);
12873
 
  return (::Puma::Token * &)result;
12874
 
 }
12875
 
};
12876
 
 
12877
 
 
12878
 
struct __call__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0 {
12879
 
static inline ::Puma::Token * invoke (::Puma::PreprocessorParser *srcthis, ::Puma::PreprocessorParser *dstthis){
12880
 
  AC::ResultBuffer< ::Puma::Token *  > result;
12881
 
  TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0 tjp;
12882
 
  tjp._result = &(TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0::Result&)result;
12883
 
  tjp._that =  (TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0::That*)srcthis;
12884
 
  ::new (&result) ::Puma::Token *  (dstthis->parseToken());
12885
 
  AC::invoke_PragmaOnce_PragmaOnce_a1_after<TJP__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0> (&tjp);
12886
 
  return (::Puma::Token * &)result;
12887
 
 }
12888
 
};
12889
 
 
12890
 
    unsigned parenthesis = 0, curlies = 0;
12891
 
    Token *token;
12892
 
    int type;
12893
 
    
12894
 
    // skip up to the first non-nested `{'
12895
 
    while ((token = __call__ZN4Puma18PreprocessorParser10skip_up_toEi_0_0::invoke ((::Puma::PreprocessorParser*)this,(::Puma::PreprocessorParser*)this ))) {
12896
 
      type = token->type ();
12897
 
      if (type == TOK_OPEN_CURLY) {
12898
 
        if (parenthesis == 0 && curlies == 0)
12899
 
          break;
12900
 
        curlies++;
12901
 
      } else if (type == TOK_CLOSE_CURLY)
12902
 
        curlies--;
12903
 
      else if (type == TOK_OPEN_ROUND)
12904
 
        parenthesis++;
12905
 
      else if (type == TOK_CLOSE_ROUND)
12906
 
        parenthesis--;
12907
 
    }
12908
 
    
12909
 
    // skip up to the first non-nested `}'
12910
 
    if (end_token == TOK_CLOSE_CURLY) {
12911
 
      parenthesis = curlies = 0;
12912
 
      while ((token = __call__ZN4Puma18PreprocessorParser10skip_up_toEi_2_0::invoke ((::Puma::PreprocessorParser*)this,(::Puma::PreprocessorParser*)this ))) {
12913
 
        type = token->type ();
12914
 
        if (type == TOK_OPEN_CURLY)
12915
 
          curlies++;
12916
 
        else if (type == TOK_CLOSE_CURLY) {
12917
 
          if (parenthesis == 0 && curlies == 0)
12918
 
            break;
12919
 
          curlies--;
12920
 
        } else if (type == TOK_OPEN_ROUND)
12921
 
          parenthesis++;
12922
 
        else if (type == TOK_CLOSE_ROUND)
12923
 
          parenthesis--;
 
14127
#line 14128 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14128
 
 
14129
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
14130
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
14131
#include "WinIfExists.ah"
 
14132
#endif
 
14133
 
 
14134
#line 2972 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
14135
 
 
14136
#line 98 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
14137
 void Puma::PreprocessorParser :: skip_up_to ( int end_token ) {
 
14138
unsigned parenthesis = 0 , curlies = 0 ;
 
14139
Puma :: Token * token ;
 
14140
int type ;
 
14141
 
 
14142
 
 
14143
while ( ( token = parseToken ( ) ) ) {
 
14144
type = token -> type ( ) ;
 
14145
if ( type == Puma :: TOK_OPEN_CURLY ) {
 
14146
if ( parenthesis == 0 && curlies == 0 )
 
14147
break ;
 
14148
curlies ++ ;
 
14149
} else if ( type == Puma :: TOK_CLOSE_CURLY )
 
14150
curlies -- ;
 
14151
else if ( type == Puma :: TOK_OPEN_ROUND )
 
14152
parenthesis ++ ;
 
14153
else if ( type == Puma :: TOK_CLOSE_ROUND )
 
14154
parenthesis -- ;
 
14155
}
 
14156
 
 
14157
 
 
14158
if ( end_token == Puma :: TOK_CLOSE_CURLY ) {
 
14159
parenthesis = curlies = 0 ;
 
14160
while ( ( token = parseToken ( ) ) ) {
 
14161
type = token -> type ( ) ;
 
14162
if ( type == Puma :: TOK_OPEN_CURLY )
 
14163
curlies ++ ;
 
14164
else if ( type == Puma :: TOK_CLOSE_CURLY ) {
 
14165
if ( parenthesis == 0 && curlies == 0 )
 
14166
break ;
 
14167
curlies -- ;
 
14168
} else if ( type == Puma :: TOK_OPEN_ROUND )
 
14169
parenthesis ++ ;
 
14170
else if ( type == Puma :: TOK_CLOSE_ROUND )
 
14171
parenthesis -- ;
 
14172
}
 
14173
}
 
14174
}
 
14175
#line 14176 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14176
 
 
14177
#ifdef __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreParser_cc__
 
14178
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
14179
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
14180
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
14181
#include "CCExprResolveCC.ah"
 
14182
#endif
 
14183
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14184
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14185
#include "ExtACTree.ah"
 
14186
#endif
 
14187
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
14188
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
14189
#include "ExtGnu.ah"
 
14190
#endif
 
14191
#endif
 
14192
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14193
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14194
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14195
#include "CCExprResolveH.ah"
 
14196
#endif
 
14197
#endif
 
14198
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
14199
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
14200
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
14201
#include "CExprResolveCC.ah"
 
14202
#endif
 
14203
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14204
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14205
#include "ExtACTree.ah"
 
14206
#endif
 
14207
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
14208
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
14209
#include "ExtGnu.ah"
 
14210
#endif
 
14211
#endif
 
14212
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14213
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14214
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14215
#include "CExprResolveH.ah"
 
14216
#endif
 
14217
#endif
 
14218
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
14219
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
14220
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
14221
 
 
14222
#line 47 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
14223
#endif
 
14224
#endif
 
14225
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
14226
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
14227
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
14228
 
 
14229
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14230
// This file is part of PUMA.
 
14231
// Copyright (C) 1999-2003  The PUMA developer team.
 
14232
//                                                                
 
14233
// This program is free software;  you can redistribute it and/or 
 
14234
// modify it under the terms of the GNU General Public License as 
 
14235
// published by the Free Software Foundation; either version 2 of 
 
14236
// the License, or (at your option) any later version.            
 
14237
//                                                                
 
14238
// This program is distributed in the hope that it will be useful,
 
14239
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
14240
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
14241
// GNU General Public License for more details.                   
 
14242
//                                                                
 
14243
// You should have received a copy of the GNU General Public      
 
14244
// License along with this program; if not, write to the Free     
 
14245
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
14246
// MA  02111-1307  USA                                            
 
14247
 
 
14248
#ifndef __WinImportHandler__
 
14249
#define __WinImportHandler__
 
14250
 
 
14251
/********************************************************/
 
14252
/* Win #import directive support                        */
 
14253
/********************************************************/
 
14254
 
 
14255
 
 
14256
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14257
 
 
14258
#line 14259 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14259
class CCExprResolve;
 
14260
class CExprResolve;
 
14261
class WinIfExists;
 
14262
class WinMacros;
 
14263
class WinAsm;
 
14264
class WinDeclSpecs;
 
14265
class WinMemberExplSpec;
 
14266
class WinTypeKeywords;
 
14267
class WinFriend;
 
14268
class ExtAC;
 
14269
class ExtACBuilderCoupling;
 
14270
class ExtACSyntaxCoupling;
 
14271
class ExtACTree;
 
14272
class ExtACKeywords;
 
14273
class ExtGnu;
 
14274
class PragmaOnceUnitState;
 
14275
class PragmaOnce;
 
14276
class CMatchSyntax;
 
14277
 
 
14278
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14279
class WinImportHandler {
 
14280
#line 14281 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14281
 
 
14282
public:
 
14283
  static WinImportHandler *aspectof () {
 
14284
    static WinImportHandler __instance;
 
14285
    return &__instance;
 
14286
  }
 
14287
  static WinImportHandler *aspectOf () {
 
14288
    return aspectof ();
 
14289
  }
 
14290
private:
 
14291
 
 
14292
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14293
 
 
14294
#line 14295 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14295
  friend class ::CCExprResolve;
 
14296
  friend class ::CExprResolve;
 
14297
  friend class ::WinIfExists;
 
14298
  friend class ::WinMacros;
 
14299
  friend class ::WinAsm;
 
14300
  friend class ::WinDeclSpecs;
 
14301
  friend class ::WinMemberExplSpec;
 
14302
  friend class ::WinTypeKeywords;
 
14303
  friend class ::WinFriend;
 
14304
  friend class ::ExtAC;
 
14305
  friend class ::ExtACBuilderCoupling;
 
14306
  friend class ::ExtACSyntaxCoupling;
 
14307
  friend class ::ExtACTree;
 
14308
  friend class ::ExtACKeywords;
 
14309
  friend class ::ExtGnu;
 
14310
  friend class ::PragmaOnceUnitState;
 
14311
  friend class ::PragmaOnce;
 
14312
  friend class ::CMatchSyntax;
 
14313
 
 
14314
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14315
 
 
14316
  /********************************************************/
 
14317
  /* Win #import directive                                */
 
14318
  /********************************************************/
 
14319
 
 
14320
  // pointcuts
 
14321
  
 
14322
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14323
 
 
14324
  
 
14325
  // handle --import-handler option
 
14326
  
 
14327
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14328
 
 
14329
public: template<class JoinPoint> void __a0_before 
 
14330
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14331
 
 
14332
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14333
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
 
14334
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14335
 {
 
14336
#line 14337 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14337
 
 
14338
  JoinPoint *&thisJoinPoint = tjp;
 
14339
 
 
14340
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14341
 
 
14342
#line 14343 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14343
 
 
14344
  typedef typename JoinPoint::That __JP_That;
 
14345
  typedef typename JoinPoint::Target __JP_Target;
 
14346
  typedef typename JoinPoint::Result __JP_Result;
 
14347
 
 
14348
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14349
 
 
14350
    const Puma::ConfOption *opt;
 
14351
    char *tmp;
 
14352
    
 
14353
    if (process_includes) {
 
14354
      opt = config.Option ("--import-handler");
 
14355
      if (opt && opt->Arguments ()) {
 
14356
        // delete old import handler
 
14357
        if (thisJoinPoint->that ()->_importHandler)
 
14358
          delete[] thisJoinPoint->that ()->_importHandler;
 
14359
        
 
14360
        // get new import handler
 
14361
        tmp = new char[strlen (opt->Argument (0))+1];
 
14362
        strcpy (tmp, opt->Argument (0));
 
14363
        thisJoinPoint->that ()->_importHandler = tmp;
12924
14364
      }
12925
14365
    }
12926
14366
  }
12927
 
#ifdef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreParser_cc__
12928
 
/*** begin of aspect includes ***/
12929
 
#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__)
12930
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
12931
 
#endif
12932
 
#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__)
12933
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
12934
 
#endif
12935
 
#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__)
12936
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
 
14367
#line 14368 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14368
 
 
14369
private:
 
14370
 
 
14371
#line 58 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14372
 
 
14373
 
 
14374
protected:
 
14375
  WinImportHandler () {}
 
14376
};
 
14377
#line 14378 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14378
 
 
14379
namespace AC {
 
14380
  template <class JoinPoint>
 
14381
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
 
14382
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
 
14383
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
 
14384
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
 
14385
  }
 
14386
 
14387
 
 
14388
#line 62 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
14389
 
 
14390
 
 
14391
 
 
14392
#endif /* __WinImportHandler__ */
 
14393
 
 
14394
#line 53 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
14395
#endif
 
14396
#endif
 
14397
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
14398
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
14399
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
 
14400
 
 
14401
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
12937
14402
// This file is part of PUMA.
12938
14403
// Copyright (C) 1999-2003  The PUMA developer team.
12939
14404
//                                                                
12959
14424
/* Win predefined macros aspect                         */
12960
14425
/********************************************************/
12961
14426
 
12962
 
using namespace Puma;
12963
 
 
12964
 
 
 
14427
 
 
14428
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14429
 
 
14430
#line 14431 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14431
class CCExprResolve;
 
14432
class CExprResolve;
12965
14433
class WinIfExists;
12966
14434
class WinImportHandler;
12967
 
class CMatchSyntax;
12968
 
class ExtGnu;
 
14435
class WinAsm;
 
14436
class WinDeclSpecs;
 
14437
class WinMemberExplSpec;
 
14438
class WinTypeKeywords;
 
14439
class WinFriend;
12969
14440
class ExtAC;
12970
14441
class ExtACBuilderCoupling;
12971
14442
class ExtACSyntaxCoupling;
12972
14443
class ExtACTree;
12973
14444
class ExtACKeywords;
12974
 
class WinAsm;
12975
 
class WinDeclSpecs;
12976
 
class WinMemberExplSpec;
12977
 
class WinTypeKeywords;
 
14445
class ExtGnu;
12978
14446
class PragmaOnceUnitState;
12979
14447
class PragmaOnce;
12980
 
class CCExprResolve;
12981
 
class CExprResolve;
 
14448
class CMatchSyntax;
 
14449
 
 
14450
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
12982
14451
class WinMacros {
 
14452
#line 14453 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14453
 
12983
14454
public:
12984
14455
  static WinMacros *aspectof () {
12985
14456
    static WinMacros __instance;
12989
14460
    return aspectof ();
12990
14461
  }
12991
14462
private:
 
14463
 
 
14464
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14465
 
 
14466
#line 14467 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14467
  friend class ::CCExprResolve;
 
14468
  friend class ::CExprResolve;
12992
14469
  friend class ::WinIfExists;
12993
14470
  friend class ::WinImportHandler;
12994
 
  friend class ::CMatchSyntax;
12995
 
  friend class ::ExtGnu;
 
14471
  friend class ::WinAsm;
 
14472
  friend class ::WinDeclSpecs;
 
14473
  friend class ::WinMemberExplSpec;
 
14474
  friend class ::WinTypeKeywords;
 
14475
  friend class ::WinFriend;
12996
14476
  friend class ::ExtAC;
12997
14477
  friend class ::ExtACBuilderCoupling;
12998
14478
  friend class ::ExtACSyntaxCoupling;
12999
14479
  friend class ::ExtACTree;
13000
14480
  friend class ::ExtACKeywords;
13001
 
  friend class ::WinAsm;
13002
 
  friend class ::WinDeclSpecs;
13003
 
  friend class ::WinMemberExplSpec;
13004
 
  friend class ::WinTypeKeywords;
 
14481
  friend class ::ExtGnu;
13005
14482
  friend class ::PragmaOnceUnitState;
13006
14483
  friend class ::PragmaOnce;
13007
 
  friend class ::CCExprResolve;
13008
 
  friend class ::CExprResolve;
 
14484
  friend class ::CMatchSyntax;
 
14485
 
 
14486
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
13009
14487
 
13010
14488
  /********************************************************/
13011
14489
  /* Win specific predefined macros                       */
13013
14491
 
13014
14492
  // predefine win specific macros
13015
14493
  
13016
 
public: template<class JoinPoint> void __a0_before (JoinPoint *tjp, const Config &config) {
 
14494
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14495
 
 
14496
public: template<class JoinPoint> void __a0_before 
 
14497
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14498
 
 
14499
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14500
(JoinPoint *tjp, const Puma::Config &config)
 
14501
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14502
 {
 
14503
#line 14504 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14504
 
13017
14505
  JoinPoint *&thisJoinPoint = tjp;
13018
14506
 
 
14507
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14508
 
 
14509
#line 14510 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14510
 
13019
14511
  typedef typename JoinPoint::That __JP_That;
13020
14512
  typedef typename JoinPoint::Target __JP_Target;
13021
14513
  typedef typename JoinPoint::Result __JP_Result;
13022
14514
 
 
14515
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14516
 
13023
14517
    if (config.Option ("--vc")) {
13024
14518
      // constants
13025
14519
      thisJoinPoint->that ()->defMacro ("__w64", " ");
13031
14525
      thisJoinPoint->that ()->defMacro ("__noop", " ");
13032
14526
 
13033
14527
      // function-like macros
13034
 
      PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
 
14528
      Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
13035
14529
      args->append ("__arg0");
13036
14530
      thisJoinPoint->that ()->macroManager ()->addMacro (
13037
 
        new PreMacro ("__declspec", args, " "));
 
14531
        new Puma::PreMacro ("__declspec", args, " "));
13038
14532
    }
13039
14533
  }
 
14534
#line 14535 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14535
 
13040
14536
private:
13041
14537
 
 
14538
#line 54 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14539
 
13042
14540
 
13043
14541
protected:
13044
14542
  WinMacros () {}
13045
14543
};
 
14544
#line 14545 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14545
 
13046
14546
namespace AC {
13047
 
  template <class JoinPoint, class Binding>
13048
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
13049
 
    typedef typename Binding::template Arg<0> Arg0;
 
14547
  template <class JoinPoint>
 
14548
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
 
14549
    typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
13050
14550
    ::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
13051
14551
  }
13052
14552
13053
14553
 
 
14554
#line 58 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
 
14555
 
13054
14556
 
13055
14557
 
13056
14558
#endif /* __WinMacros__ */
13057
 
#endif
13058
 
#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__)
13059
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
13060
 
#include "CMatchSyntax.ah"
13061
 
#endif
13062
 
#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__)
13063
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__
13064
 
#include "ExtGnu.ah"
13065
 
#endif
13066
 
#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__)
13067
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__
 
14559
 
 
14560
#line 59 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
14561
#endif
 
14562
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
14563
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
14564
 
 
14565
#line 63 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
14566
#endif
 
14567
#endif
 
14568
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
 
14569
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
 
14570
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
 
14571
#include "WinAsm.ah"
 
14572
#endif
 
14573
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14574
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14575
#include "ExtACTree.ah"
 
14576
#endif
 
14577
#endif
 
14578
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
14579
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
14580
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
14581
#include "WinDeclSpecs.ah"
 
14582
#endif
 
14583
#endif
 
14584
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
14585
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
14586
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
14587
#include "WinMemberExplSpec.ah"
 
14588
#endif
 
14589
#endif
 
14590
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
14591
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
14592
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
14593
#include "WinTypeKeywords.ah"
 
14594
#endif
 
14595
#endif
 
14596
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
 
14597
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
 
14598
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
 
14599
#include "WinFriend.ah"
 
14600
#endif
 
14601
#endif
 
14602
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
 
14603
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
 
14604
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
13068
14605
#include "ExtAC.ah"
13069
14606
#endif
13070
 
#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__)
13071
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
14607
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14608
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14609
#include "ExtACTree.ah"
 
14610
#endif
 
14611
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14612
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14613
#include "ExtACKeywords.ah"
 
14614
#endif
 
14615
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
14616
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
14617
#include "ExtGnu.ah"
 
14618
#endif
 
14619
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
14620
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
14621
#include "PragmaOnceUnitState.ah"
 
14622
#endif
 
14623
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
14624
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
14625
#include "CMatchSyntax.ah"
 
14626
#endif
 
14627
#endif
 
14628
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
14629
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
14630
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
13072
14631
#include "ExtACBuilderH.ah"
13073
14632
#endif
13074
 
#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__)
13075
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
14633
#endif
 
14634
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
14635
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
14636
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
13076
14637
#include "ExtACBuilderCC.ah"
13077
14638
#endif
13078
 
#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__)
13079
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
14639
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14640
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14641
#include "ExtACTree.ah"
 
14642
#endif
 
14643
#endif
 
14644
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
14645
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
14646
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
13080
14647
#include "ExtACSyntaxH.ah"
13081
14648
#endif
13082
 
#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__)
13083
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
14649
#endif
 
14650
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
14651
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
14652
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
13084
14653
#include "ExtACSyntaxCC.ah"
13085
14654
#endif
13086
 
#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__)
13087
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14655
#endif
 
14656
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14657
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
14658
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
13088
14659
#include "ExtACTree.ah"
13089
14660
#endif
13090
 
#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__)
13091
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14661
#endif
 
14662
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14663
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14664
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14665
 
 
14666
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
13092
14667
// This file is part of PUMA.
13093
14668
// Copyright (C) 1999-2003  The PUMA developer team.
13094
14669
//                                                                
13111
14686
#define __ext_ac_keywords_ah__
13112
14687
 
13113
14688
 
 
14689
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
 
14690
 
 
14691
#line 14692 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14692
 
13114
14693
#ifndef __ac_fwd_ExtACKeywords__
13115
14694
#define __ac_fwd_ExtACKeywords__
13116
14695
class ExtACKeywords;
13117
14696
namespace AC {
13118
 
  template <class JoinPoint, class Binding>
13119
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
13120
 
  template <class JoinPoint, class Binding>
13121
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
13122
 
  template <class JoinPoint>
13123
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
14697
  template <class JoinPoint>
 
14698
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
14699
  template <class JoinPoint>
 
14700
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
14701
  template <class JoinPoint>
 
14702
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
13124
14703
}
13125
14704
#endif
13126
14705
 
13127
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
13128
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14706
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
14707
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
13129
14708
#endif
 
14709
 
 
14710
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
13130
14711
// This file is part of PUMA.
13131
14712
// Copyright (C) 1999-2003  The PUMA developer team.
13132
14713
//                                                                
13150
14731
 
13151
14732
// Special project derivation for C++ sources.
13152
14733
 
 
14734
 
 
14735
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
13153
14736
// This file is part of PUMA.
13154
14737
// Copyright (C) 1999-2003  The PUMA developer team.
13155
14738
//                                                                
13174
14757
// The basic project is a set of source directories. It provides 
13175
14758
// methods for searching and writing files. 
13176
14759
 
 
14760
 
 
14761
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
13177
14762
// This file is part of PUMA.
13178
14763
// Copyright (C) 1999-2003  The PUMA developer team.
13179
14764
//                                                                
13197
14782
 
13198
14783
// Manages directories and methods to access the files in it.
13199
14784
 
 
14785
 
 
14786
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathInfo.h"
13200
14787
// This file is part of PUMA.
13201
14788
// Copyright (C) 1999-2003  The PUMA developer team.
13202
14789
//                                                                
13224
14811
namespace Puma {
13225
14812
 
13226
14813
 
 
14814
 
 
14815
#line 14816 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13227
14816
} // closed Puma
 
14817
class CCExprResolve;
 
14818
class CExprResolve;
13228
14819
class WinIfExists;
13229
14820
class WinImportHandler;
13230
14821
class WinMacros;
13231
 
class CMatchSyntax;
13232
 
class ExtGnu;
 
14822
class WinAsm;
 
14823
class WinDeclSpecs;
 
14824
class WinMemberExplSpec;
 
14825
class WinTypeKeywords;
 
14826
class WinFriend;
13233
14827
class ExtAC;
13234
14828
class ExtACBuilderCoupling;
13235
14829
class ExtACSyntaxCoupling;
13236
14830
class ExtACTree;
13237
14831
class ExtACKeywords;
13238
 
class WinAsm;
13239
 
class WinDeclSpecs;
13240
 
class WinMemberExplSpec;
13241
 
class WinTypeKeywords;
 
14832
class ExtGnu;
13242
14833
class PragmaOnceUnitState;
13243
14834
class PragmaOnce;
13244
 
class CCExprResolve;
13245
 
class CExprResolve;
 
14835
class CMatchSyntax;
13246
14836
namespace Puma {
13247
 
class PathInfo {  friend class ::WinIfExists;
 
14837
 
 
14838
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
14839
class PathInfo {
 
14840
#line 14841 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14841
  friend class ::CCExprResolve;
 
14842
  friend class ::CExprResolve;
 
14843
  friend class ::WinIfExists;
13248
14844
  friend class ::WinImportHandler;
13249
14845
  friend class ::WinMacros;
13250
 
  friend class ::CMatchSyntax;
13251
 
  friend class ::ExtGnu;
 
14846
  friend class ::WinAsm;
 
14847
  friend class ::WinDeclSpecs;
 
14848
  friend class ::WinMemberExplSpec;
 
14849
  friend class ::WinTypeKeywords;
 
14850
  friend class ::WinFriend;
13252
14851
  friend class ::ExtAC;
13253
14852
  friend class ::ExtACBuilderCoupling;
13254
14853
  friend class ::ExtACSyntaxCoupling;
13255
14854
  friend class ::ExtACTree;
13256
14855
  friend class ::ExtACKeywords;
13257
 
  friend class ::WinAsm;
13258
 
  friend class ::WinDeclSpecs;
13259
 
  friend class ::WinMemberExplSpec;
13260
 
  friend class ::WinTypeKeywords;
 
14856
  friend class ::ExtGnu;
13261
14857
  friend class ::PragmaOnceUnitState;
13262
14858
  friend class ::PragmaOnce;
13263
 
  friend class ::CCExprResolve;
13264
 
  friend class ::CExprResolve;
 
14859
  friend class ::CMatchSyntax;
 
14860
 
 
14861
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathInfo.h"
13265
14862
 
13266
14863
  const char *_src;        // Source path.
13267
14864
  const char *_dest;        // Destination path.
13287
14884
} // namespace Puma
13288
14885
 
13289
14886
#endif /* __path_info__ */
 
14887
 
 
14888
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
13290
14889
// This file is part of PUMA.
13291
14890
// Copyright (C) 1999-2003  The PUMA developer team.
13292
14891
//                                                                
13312
14911
// a project is managing. But only files matching a given pattern 
13313
14912
// are iterated. 
13314
14913
 
 
14914
 
 
14915
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
13315
14916
// This file is part of PUMA.
13316
14917
// Copyright (C) 1999-2003  The PUMA developer team.
13317
14918
//                                                                
13333
14934
#ifndef __project_file__
13334
14935
#define __project_file__
13335
14936
 
 
14937
 
 
14938
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
13336
14939
using std::map;
 
14940
 
 
14941
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
13337
14942
using std::string;
13338
14943
 
 
14944
 
 
14945
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
13339
14946
namespace Puma {
13340
14947
 
13341
14948
// the project file abstraction is used to store all filenames relevant
13342
14949
// for a specific file that is managed by Puma.
13343
14950
 
 
14951
 
 
14952
#line 14953 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13344
14953
} // closed Puma
 
14954
class CCExprResolve;
 
14955
class CExprResolve;
13345
14956
class WinIfExists;
13346
14957
class WinImportHandler;
13347
14958
class WinMacros;
13348
 
class CMatchSyntax;
13349
 
class ExtGnu;
 
14959
class WinAsm;
 
14960
class WinDeclSpecs;
 
14961
class WinMemberExplSpec;
 
14962
class WinTypeKeywords;
 
14963
class WinFriend;
13350
14964
class ExtAC;
13351
14965
class ExtACBuilderCoupling;
13352
14966
class ExtACSyntaxCoupling;
13353
14967
class ExtACTree;
13354
14968
class ExtACKeywords;
13355
 
class WinAsm;
13356
 
class WinDeclSpecs;
13357
 
class WinMemberExplSpec;
13358
 
class WinTypeKeywords;
 
14969
class ExtGnu;
13359
14970
class PragmaOnceUnitState;
13360
14971
class PragmaOnce;
13361
 
class CCExprResolve;
13362
 
class CExprResolve;
 
14972
class CMatchSyntax;
13363
14973
namespace Puma {
13364
 
class ProjectFile {  friend class ::WinIfExists;
 
14974
 
 
14975
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
14976
class ProjectFile {
 
14977
#line 14978 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
14978
  friend class ::CCExprResolve;
 
14979
  friend class ::CExprResolve;
 
14980
  friend class ::WinIfExists;
13365
14981
  friend class ::WinImportHandler;
13366
14982
  friend class ::WinMacros;
13367
 
  friend class ::CMatchSyntax;
13368
 
  friend class ::ExtGnu;
 
14983
  friend class ::WinAsm;
 
14984
  friend class ::WinDeclSpecs;
 
14985
  friend class ::WinMemberExplSpec;
 
14986
  friend class ::WinTypeKeywords;
 
14987
  friend class ::WinFriend;
13369
14988
  friend class ::ExtAC;
13370
14989
  friend class ::ExtACBuilderCoupling;
13371
14990
  friend class ::ExtACSyntaxCoupling;
13372
14991
  friend class ::ExtACTree;
13373
14992
  friend class ::ExtACKeywords;
13374
 
  friend class ::WinAsm;
13375
 
  friend class ::WinDeclSpecs;
13376
 
  friend class ::WinMemberExplSpec;
13377
 
  friend class ::WinTypeKeywords;
 
14993
  friend class ::ExtGnu;
13378
14994
  friend class ::PragmaOnceUnitState;
13379
14995
  friend class ::PragmaOnce;
13380
 
  friend class ::CCExprResolve;
13381
 
  friend class ::CExprResolve;
 
14996
  friend class ::CMatchSyntax;
 
14997
 
 
14998
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
13382
14999
 
13383
15000
  Filename _nick_name;
13384
15001
  Filename _dest_path;
13401
15018
} // namespace Puma
13402
15019
 
13403
15020
#endif // __project_file__
 
15021
 
 
15022
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
13404
15023
namespace Puma {
13405
15024
 
13406
15025
class PathManager;
13407
15026
class RegComp;
13408
15027
 
 
15028
 
 
15029
#line 15030 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13409
15030
} // closed Puma
 
15031
class CCExprResolve;
 
15032
class CExprResolve;
13410
15033
class WinIfExists;
13411
15034
class WinImportHandler;
13412
15035
class WinMacros;
13413
 
class CMatchSyntax;
13414
 
class ExtGnu;
 
15036
class WinAsm;
 
15037
class WinDeclSpecs;
 
15038
class WinMemberExplSpec;
 
15039
class WinTypeKeywords;
 
15040
class WinFriend;
13415
15041
class ExtAC;
13416
15042
class ExtACBuilderCoupling;
13417
15043
class ExtACSyntaxCoupling;
13418
15044
class ExtACTree;
13419
15045
class ExtACKeywords;
13420
 
class WinAsm;
13421
 
class WinDeclSpecs;
13422
 
class WinMemberExplSpec;
13423
 
class WinTypeKeywords;
 
15046
class ExtGnu;
13424
15047
class PragmaOnceUnitState;
13425
15048
class PragmaOnce;
13426
 
class CCExprResolve;
13427
 
class CExprResolve;
 
15049
class CMatchSyntax;
13428
15050
namespace Puma {
13429
 
class PathIterator : public PFMConstIter {  friend class ::WinIfExists;
 
15051
 
 
15052
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
15053
class PathIterator : public PFMConstIter {
 
15054
#line 15055 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15055
  friend class ::CCExprResolve;
 
15056
  friend class ::CExprResolve;
 
15057
  friend class ::WinIfExists;
13430
15058
  friend class ::WinImportHandler;
13431
15059
  friend class ::WinMacros;
13432
 
  friend class ::CMatchSyntax;
13433
 
  friend class ::ExtGnu;
 
15060
  friend class ::WinAsm;
 
15061
  friend class ::WinDeclSpecs;
 
15062
  friend class ::WinMemberExplSpec;
 
15063
  friend class ::WinTypeKeywords;
 
15064
  friend class ::WinFriend;
13434
15065
  friend class ::ExtAC;
13435
15066
  friend class ::ExtACBuilderCoupling;
13436
15067
  friend class ::ExtACSyntaxCoupling;
13437
15068
  friend class ::ExtACTree;
13438
15069
  friend class ::ExtACKeywords;
13439
 
  friend class ::WinAsm;
13440
 
  friend class ::WinDeclSpecs;
13441
 
  friend class ::WinMemberExplSpec;
13442
 
  friend class ::WinTypeKeywords;
 
15070
  friend class ::ExtGnu;
13443
15071
  friend class ::PragmaOnceUnitState;
13444
15072
  friend class ::PragmaOnce;
13445
 
  friend class ::CCExprResolve;
13446
 
  friend class ::CExprResolve;
 
15073
  friend class ::CMatchSyntax;
 
15074
 
 
15075
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathIterator.h"
13447
15076
 
13448
15077
  friend class PathManager;
13449
15078
 
13467
15096
} // namespace Puma
13468
15097
 
13469
15098
#endif /* __path_iterator__ */
 
15099
 
 
15100
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
13470
15101
namespace Puma {
13471
15102
 
13472
15103
class RegComp;
13473
15104
class Config;
13474
15105
class Unit;
13475
15106
 
 
15107
 
 
15108
#line 15109 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13476
15109
} // closed Puma
 
15110
class CCExprResolve;
 
15111
class CExprResolve;
13477
15112
class WinIfExists;
13478
15113
class WinImportHandler;
13479
15114
class WinMacros;
13480
 
class CMatchSyntax;
13481
 
class ExtGnu;
 
15115
class WinAsm;
 
15116
class WinDeclSpecs;
 
15117
class WinMemberExplSpec;
 
15118
class WinTypeKeywords;
 
15119
class WinFriend;
13482
15120
class ExtAC;
13483
15121
class ExtACBuilderCoupling;
13484
15122
class ExtACSyntaxCoupling;
13485
15123
class ExtACTree;
13486
15124
class ExtACKeywords;
13487
 
class WinAsm;
13488
 
class WinDeclSpecs;
13489
 
class WinMemberExplSpec;
13490
 
class WinTypeKeywords;
 
15125
class ExtGnu;
13491
15126
class PragmaOnceUnitState;
13492
15127
class PragmaOnce;
13493
 
class CCExprResolve;
13494
 
class CExprResolve;
 
15128
class CMatchSyntax;
13495
15129
namespace Puma {
13496
 
class PathManager {  friend class ::WinIfExists;
 
15130
 
 
15131
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
15132
class PathManager {
 
15133
#line 15134 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15134
  friend class ::CCExprResolve;
 
15135
  friend class ::CExprResolve;
 
15136
  friend class ::WinIfExists;
13497
15137
  friend class ::WinImportHandler;
13498
15138
  friend class ::WinMacros;
13499
 
  friend class ::CMatchSyntax;
13500
 
  friend class ::ExtGnu;
 
15139
  friend class ::WinAsm;
 
15140
  friend class ::WinDeclSpecs;
 
15141
  friend class ::WinMemberExplSpec;
 
15142
  friend class ::WinTypeKeywords;
 
15143
  friend class ::WinFriend;
13501
15144
  friend class ::ExtAC;
13502
15145
  friend class ::ExtACBuilderCoupling;
13503
15146
  friend class ::ExtACSyntaxCoupling;
13504
15147
  friend class ::ExtACTree;
13505
15148
  friend class ::ExtACKeywords;
13506
 
  friend class ::WinAsm;
13507
 
  friend class ::WinDeclSpecs;
13508
 
  friend class ::WinMemberExplSpec;
13509
 
  friend class ::WinTypeKeywords;
 
15149
  friend class ::ExtGnu;
13510
15150
  friend class ::PragmaOnceUnitState;
13511
15151
  friend class ::PragmaOnce;
13512
 
  friend class ::CCExprResolve;
13513
 
  friend class ::CExprResolve;
 
15152
  friend class ::CMatchSyntax;
 
15153
 
 
15154
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PathManager.h"
13514
15155
 
13515
15156
 
13516
15157
  ErrorStream     *_err;
13611
15252
} // namespace Puma
13612
15253
 
13613
15254
#endif /* __path_manager__ */
 
15255
 
 
15256
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
15257
 
 
15258
#line 15259 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15259
 
 
15260
#ifndef __ac_fwd_PragmaOnceUnitState__
 
15261
#define __ac_fwd_PragmaOnceUnitState__
 
15262
class PragmaOnceUnitState;
 
15263
namespace AC {
 
15264
  template <class JoinPoint>
 
15265
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
15266
  template <class JoinPoint>
 
15267
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
15268
}
 
15269
#endif
 
15270
 
 
15271
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
15272
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
15273
#endif
 
15274
 
 
15275
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
15276
// This file is part of PUMA.
 
15277
// Copyright (C) 1999-2003  The PUMA developer team.
 
15278
//                                                                
 
15279
// This program is free software;  you can redistribute it and/or 
 
15280
// modify it under the terms of the GNU General Public License as 
 
15281
// published by the Free Software Foundation; either version 2 of 
 
15282
// the License, or (at your option) any later version.            
 
15283
//                                                                
 
15284
// This program is distributed in the hope that it will be useful,
 
15285
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
15286
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
15287
// GNU General Public License for more details.                   
 
15288
//                                                                
 
15289
// You should have received a copy of the GNU General Public      
 
15290
// License along with this program; if not, write to the Free     
 
15291
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
15292
// MA  02111-1307  USA                                            
 
15293
 
 
15294
#ifndef __UnitManager__
 
15295
#define __UnitManager__
 
15296
 
 
15297
// Class UnitManager helps you to have control of all units built.
 
15298
 
 
15299
#include <iostream>
 
15300
#include <list>
 
15301
#include <map>
 
15302
#include <string>
 
15303
using namespace std;
 
15304
#include "Puma/ErrorStream.h"
 
15305
 
 
15306
namespace Puma {
 
15307
 
 
15308
 
 
15309
class Unit;
 
15310
class Source;
 
15311
class Tokenizer;
 
15312
 
 
15313
 
 
15314
#line 15315 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15315
} // closed Puma
 
15316
class CCExprResolve;
 
15317
class CExprResolve;
 
15318
class WinIfExists;
 
15319
class WinImportHandler;
 
15320
class WinMacros;
 
15321
class WinAsm;
 
15322
class WinDeclSpecs;
 
15323
class WinMemberExplSpec;
 
15324
class WinTypeKeywords;
 
15325
class WinFriend;
 
15326
class ExtAC;
 
15327
class ExtACBuilderCoupling;
 
15328
class ExtACSyntaxCoupling;
 
15329
class ExtACTree;
 
15330
class ExtACKeywords;
 
15331
class ExtGnu;
 
15332
class PragmaOnceUnitState;
 
15333
class PragmaOnce;
 
15334
class CMatchSyntax;
 
15335
namespace Puma {
 
15336
 
 
15337
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
15338
class UnitManager {
 
15339
#line 15340 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15340
  friend class ::CCExprResolve;
 
15341
  friend class ::CExprResolve;
 
15342
  friend class ::WinIfExists;
 
15343
  friend class ::WinImportHandler;
 
15344
  friend class ::WinMacros;
 
15345
  friend class ::WinAsm;
 
15346
  friend class ::WinDeclSpecs;
 
15347
  friend class ::WinMemberExplSpec;
 
15348
  friend class ::WinTypeKeywords;
 
15349
  friend class ::WinFriend;
 
15350
  friend class ::ExtAC;
 
15351
  friend class ::ExtACBuilderCoupling;
 
15352
  friend class ::ExtACSyntaxCoupling;
 
15353
  friend class ::ExtACTree;
 
15354
  friend class ::ExtACKeywords;
 
15355
  friend class ::ExtGnu;
 
15356
  friend class ::PragmaOnceUnitState;
 
15357
  friend class ::PragmaOnce;
 
15358
  friend class ::CMatchSyntax;
 
15359
 
 
15360
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
15361
 
 
15362
public:
 
15363
  typedef map<string, Unit*> UMap;
 
15364
private:
 
15365
  ErrorStream *_err;        // For error messages.
 
15366
  list<Unit*> _nonames;     // Noname units list.
 
15367
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
15368
  typedef UMap::value_type UMapPair;
 
15369
  Tokenizer *_tokenizer;    // File scanner.
 
15370
 
 
15371
public:
 
15372
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
15373
        
 
15374
  // Destructor: Delete all units.
 
15375
  virtual ~UnitManager ();
 
15376
        
 
15377
  // Get the unit hash table.
 
15378
  UMap &getTable () const { return _umap; }
 
15379
  typedef UMap::iterator UMapIter;
 
15380
        
 
15381
  // Get/Set the file scanner that is used by newUnit
 
15382
  Tokenizer *tokenizer () const { return _tokenizer; }
 
15383
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
15384
 
 
15385
  // Add a unit to manager.
 
15386
  void addUnit (Unit *unit);
 
15387
        
 
15388
  // Remove (and destroy) a unit from hash table. If the name
 
15389
  // is NULL remove all (but not the nonames).
 
15390
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
15391
                   bool destroy = true) const;
 
15392
 
 
15393
  // Empty a unit. Don't remove from hash table.
 
15394
  // Preserve the last save location information.
 
15395
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
15396
 
 
15397
  // Build and add a new unit. 
 
15398
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
15399
        
 
15400
  // Get a unit by name. 
 
15401
  Unit *getUnit (const char *name, bool = false) const;
 
15402
                        
 
15403
  // Print given unit to the given outstream. If no
 
15404
  // name is given, print all units.
 
15405
  void print (const char *name = (const char*) 0, bool = false, 
 
15406
              ostream &out = cout) const;
 
15407
 
 
15408
  // Destroy all noname units.
 
15409
  void removeNonames ();
 
15410
      
 
15411
  // Initialize the unit manager and the managed 
 
15412
  // units for the next parse process.
 
15413
  
 
15414
#line 15415 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15415
public: __attribute__((always_inline)) inline void __exec_old_init();
 
15416
 
 
15417
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
15418
void init ();
 
15419
};
 
15420
 
 
15421
 
 
15422
} // namespace Puma
 
15423
 
 
15424
#endif /* __UnitManager__ */
 
15425
 
 
15426
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
13614
15427
// This file is part of PUMA.
13615
15428
// Copyright (C) 1999-2003  The PUMA developer team.
13616
15429
//                                                                
13636
15449
 
13637
15450
 
13638
15451
// Project file save mode.
 
15452
 
 
15453
#line 15454 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13639
15454
} // closed Puma
 
15455
class CCExprResolve;
 
15456
class CExprResolve;
13640
15457
class WinIfExists;
13641
15458
class WinImportHandler;
13642
15459
class WinMacros;
13643
 
class CMatchSyntax;
13644
 
class ExtGnu;
 
15460
class WinAsm;
 
15461
class WinDeclSpecs;
 
15462
class WinMemberExplSpec;
 
15463
class WinTypeKeywords;
 
15464
class WinFriend;
13645
15465
class ExtAC;
13646
15466
class ExtACBuilderCoupling;
13647
15467
class ExtACSyntaxCoupling;
13648
15468
class ExtACTree;
13649
15469
class ExtACKeywords;
13650
 
class WinAsm;
13651
 
class WinDeclSpecs;
13652
 
class WinMemberExplSpec;
13653
 
class WinTypeKeywords;
 
15470
class ExtGnu;
13654
15471
class PragmaOnceUnitState;
13655
15472
class PragmaOnce;
13656
 
class CCExprResolve;
13657
 
class CExprResolve;
 
15473
class CMatchSyntax;
13658
15474
namespace Puma {
13659
 
struct SaveMode {  friend class ::WinIfExists;
 
15475
 
 
15476
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
15477
struct SaveMode {
 
15478
#line 15479 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15479
  friend class ::CCExprResolve;
 
15480
  friend class ::CExprResolve;
 
15481
  friend class ::WinIfExists;
13660
15482
  friend class ::WinImportHandler;
13661
15483
  friend class ::WinMacros;
13662
 
  friend class ::CMatchSyntax;
13663
 
  friend class ::ExtGnu;
 
15484
  friend class ::WinAsm;
 
15485
  friend class ::WinDeclSpecs;
 
15486
  friend class ::WinMemberExplSpec;
 
15487
  friend class ::WinTypeKeywords;
 
15488
  friend class ::WinFriend;
13664
15489
  friend class ::ExtAC;
13665
15490
  friend class ::ExtACBuilderCoupling;
13666
15491
  friend class ::ExtACSyntaxCoupling;
13667
15492
  friend class ::ExtACTree;
13668
15493
  friend class ::ExtACKeywords;
13669
 
  friend class ::WinAsm;
13670
 
  friend class ::WinDeclSpecs;
13671
 
  friend class ::WinMemberExplSpec;
13672
 
  friend class ::WinTypeKeywords;
 
15494
  friend class ::ExtGnu;
13673
15495
  friend class ::PragmaOnceUnitState;
13674
15496
  friend class ::PragmaOnce;
13675
 
  friend class ::CCExprResolve;
13676
 
  friend class ::CExprResolve;
 
15497
  friend class ::CMatchSyntax;
 
15498
 
 
15499
#line 26 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
13677
15500
 
13678
15501
  enum Mode { 
13679
15502
    OVERWRITE = 1, 
13686
15509
} // namespace Puma
13687
15510
 
13688
15511
#endif /* __SaveMode__ */
 
15512
 
 
15513
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
13689
15514
#include <fstream>
 
15515
 
 
15516
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
13690
15517
using namespace std;
13691
15518
 
13692
15519
namespace Puma {
13693
15520
 
13694
15521
 
 
15522
 
 
15523
#line 15524 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13695
15524
} // closed Puma
 
15525
class CCExprResolve;
 
15526
class CExprResolve;
13696
15527
class WinIfExists;
13697
15528
class WinImportHandler;
13698
15529
class WinMacros;
13699
 
class CMatchSyntax;
13700
 
class ExtGnu;
 
15530
class WinAsm;
 
15531
class WinDeclSpecs;
 
15532
class WinMemberExplSpec;
 
15533
class WinTypeKeywords;
 
15534
class WinFriend;
13701
15535
class ExtAC;
13702
15536
class ExtACBuilderCoupling;
13703
15537
class ExtACSyntaxCoupling;
13704
15538
class ExtACTree;
13705
15539
class ExtACKeywords;
13706
 
class WinAsm;
13707
 
class WinDeclSpecs;
13708
 
class WinMemberExplSpec;
13709
 
class WinTypeKeywords;
 
15540
class ExtGnu;
13710
15541
class PragmaOnceUnitState;
13711
15542
class PragmaOnce;
13712
 
class CCExprResolve;
13713
 
class CExprResolve;
 
15543
class CMatchSyntax;
13714
15544
namespace Puma {
13715
 
class Project : public PathManager, public SaveMode {  friend class ::WinIfExists;
 
15545
 
 
15546
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
 
15547
class Project : public PathManager, public SaveMode {
 
15548
#line 15549 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15549
  friend class ::CCExprResolve;
 
15550
  friend class ::CExprResolve;
 
15551
  friend class ::WinIfExists;
13716
15552
  friend class ::WinImportHandler;
13717
15553
  friend class ::WinMacros;
13718
 
  friend class ::CMatchSyntax;
13719
 
  friend class ::ExtGnu;
 
15554
  friend class ::WinAsm;
 
15555
  friend class ::WinDeclSpecs;
 
15556
  friend class ::WinMemberExplSpec;
 
15557
  friend class ::WinTypeKeywords;
 
15558
  friend class ::WinFriend;
13720
15559
  friend class ::ExtAC;
13721
15560
  friend class ::ExtACBuilderCoupling;
13722
15561
  friend class ::ExtACSyntaxCoupling;
13723
15562
  friend class ::ExtACTree;
13724
15563
  friend class ::ExtACKeywords;
13725
 
  friend class ::WinAsm;
13726
 
  friend class ::WinDeclSpecs;
13727
 
  friend class ::WinMemberExplSpec;
13728
 
  friend class ::WinTypeKeywords;
 
15564
  friend class ::ExtGnu;
13729
15565
  friend class ::PragmaOnceUnitState;
13730
15566
  friend class ::PragmaOnce;
13731
 
  friend class ::CCExprResolve;
13732
 
  friend class ::CExprResolve;
 
15567
  friend class ::CMatchSyntax;
 
15568
 
 
15569
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Project.h"
13733
15570
 
13734
15571
  UnitManager  _unitManager; 
13735
15572
  const char  *_suffix;           // Current file name suffix.
13816
15653
 
13817
15654
#endif /* __project__ */
13818
15655
 
 
15656
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
15657
 
 
15658
#line 15659 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15659
 
13819
15660
#ifndef __ac_fwd_ExtACKeywords__
13820
15661
#define __ac_fwd_ExtACKeywords__
13821
15662
class ExtACKeywords;
13822
15663
namespace AC {
13823
 
  template <class JoinPoint, class Binding>
13824
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
13825
 
  template <class JoinPoint, class Binding>
13826
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
13827
 
  template <class JoinPoint>
13828
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
15664
  template <class JoinPoint>
 
15665
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
15666
  template <class JoinPoint>
 
15667
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
15668
  template <class JoinPoint>
 
15669
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
13829
15670
}
13830
15671
#endif
13831
15672
 
13832
 
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
13833
 
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
15673
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
15674
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
13834
15675
#endif
 
15676
 
 
15677
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
13835
15678
// This file is part of PUMA.
13836
15679
// Copyright (C) 1999-2003  The PUMA developer team.
13837
15680
//                                                                
13867
15710
 
13868
15711
class Token;
13869
15712
 
 
15713
 
 
15714
#line 15715 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13870
15715
} // closed Puma
 
15716
class CCExprResolve;
 
15717
class CExprResolve;
13871
15718
class WinIfExists;
13872
15719
class WinImportHandler;
13873
15720
class WinMacros;
13874
 
class CMatchSyntax;
13875
 
class ExtGnu;
 
15721
class WinAsm;
 
15722
class WinDeclSpecs;
 
15723
class WinMemberExplSpec;
 
15724
class WinTypeKeywords;
 
15725
class WinFriend;
13876
15726
class ExtAC;
13877
15727
class ExtACBuilderCoupling;
13878
15728
class ExtACSyntaxCoupling;
13879
15729
class ExtACTree;
13880
15730
class ExtACKeywords;
13881
 
class WinAsm;
13882
 
class WinDeclSpecs;
13883
 
class WinMemberExplSpec;
13884
 
class WinTypeKeywords;
 
15731
class ExtGnu;
13885
15732
class PragmaOnceUnitState;
13886
15733
class PragmaOnce;
13887
 
class CCExprResolve;
13888
 
class CExprResolve;
 
15734
class CMatchSyntax;
13889
15735
namespace Puma {
13890
 
class CScanner : public CRecognizer, public Tokenizer {  friend class ::WinIfExists;
 
15736
 
 
15737
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
15738
class CScanner : public CRecognizer, public Tokenizer {
 
15739
#line 15740 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15740
  friend class ::CCExprResolve;
 
15741
  friend class ::CExprResolve;
 
15742
  friend class ::WinIfExists;
13891
15743
  friend class ::WinImportHandler;
13892
15744
  friend class ::WinMacros;
13893
 
  friend class ::CMatchSyntax;
13894
 
  friend class ::ExtGnu;
 
15745
  friend class ::WinAsm;
 
15746
  friend class ::WinDeclSpecs;
 
15747
  friend class ::WinMemberExplSpec;
 
15748
  friend class ::WinTypeKeywords;
 
15749
  friend class ::WinFriend;
13895
15750
  friend class ::ExtAC;
13896
15751
  friend class ::ExtACBuilderCoupling;
13897
15752
  friend class ::ExtACSyntaxCoupling;
13898
15753
  friend class ::ExtACTree;
13899
15754
  friend class ::ExtACKeywords;
13900
 
  friend class ::WinAsm;
13901
 
  friend class ::WinDeclSpecs;
13902
 
  friend class ::WinMemberExplSpec;
13903
 
  friend class ::WinTypeKeywords;
 
15755
  friend class ::ExtGnu;
13904
15756
  friend class ::PragmaOnceUnitState;
13905
15757
  friend class ::PragmaOnce;
13906
 
  friend class ::CCExprResolve;
13907
 
  friend class ::CExprResolve;
 
15758
  friend class ::CMatchSyntax;
 
15759
 
 
15760
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
13908
15761
 
13909
15762
  Location loc;
13910
15763
  ErrorSink &err;
13918
15771
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
13919
15772
  virtual ~CScanner () {}
13920
15773
  void configure (const Config &);
13921
 
  public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
15774
  
 
15775
#line 15776 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15776
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
15777
 
 
15778
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
13922
15779
void fill_unit (Source &in, Unit &unit);
13923
 
  public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
15780
  
 
15781
#line 15782 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15782
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
15783
 
 
15784
#line 50 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
13924
15785
void fill_unit (const char *in, Unit &unit);
13925
15786
};
13926
15787
 
13928
15789
} // namespace Puma
13929
15790
 
13930
15791
#endif /* __c_scanner_h__ */
 
15792
 
 
15793
#line 29 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
13931
15794
namespace Puma {
13932
15795
 
13933
15796
 
13934
15797
class Source;
13935
15798
class CTypeInfo;
13936
15799
 
 
15800
 
 
15801
#line 15802 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
13937
15802
} // closed Puma
 
15803
class CCExprResolve;
 
15804
class CExprResolve;
13938
15805
class WinIfExists;
13939
15806
class WinImportHandler;
13940
15807
class WinMacros;
13941
 
class CMatchSyntax;
13942
 
class ExtGnu;
 
15808
class WinAsm;
 
15809
class WinDeclSpecs;
 
15810
class WinMemberExplSpec;
 
15811
class WinTypeKeywords;
 
15812
class WinFriend;
13943
15813
class ExtAC;
13944
15814
class ExtACBuilderCoupling;
13945
15815
class ExtACSyntaxCoupling;
13946
15816
class ExtACTree;
13947
15817
class ExtACKeywords;
13948
 
class WinAsm;
13949
 
class WinDeclSpecs;
13950
 
class WinMemberExplSpec;
13951
 
class WinTypeKeywords;
 
15818
class ExtGnu;
13952
15819
class PragmaOnceUnitState;
13953
15820
class PragmaOnce;
13954
 
class CCExprResolve;
13955
 
class CExprResolve;
 
15821
class CMatchSyntax;
13956
15822
namespace Puma {
13957
 
class CProject : public Project {  friend class ::WinIfExists;
 
15823
 
 
15824
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
 
15825
class CProject : public Project {
 
15826
#line 15827 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15827
  friend class ::CCExprResolve;
 
15828
  friend class ::CExprResolve;
 
15829
  friend class ::WinIfExists;
13958
15830
  friend class ::WinImportHandler;
13959
15831
  friend class ::WinMacros;
13960
 
  friend class ::CMatchSyntax;
13961
 
  friend class ::ExtGnu;
 
15832
  friend class ::WinAsm;
 
15833
  friend class ::WinDeclSpecs;
 
15834
  friend class ::WinMemberExplSpec;
 
15835
  friend class ::WinTypeKeywords;
 
15836
  friend class ::WinFriend;
13962
15837
  friend class ::ExtAC;
13963
15838
  friend class ::ExtACBuilderCoupling;
13964
15839
  friend class ::ExtACSyntaxCoupling;
13965
15840
  friend class ::ExtACTree;
13966
15841
  friend class ::ExtACKeywords;
13967
 
  friend class ::WinAsm;
13968
 
  friend class ::WinDeclSpecs;
13969
 
  friend class ::WinMemberExplSpec;
13970
 
  friend class ::WinTypeKeywords;
 
15842
  friend class ::ExtGnu;
13971
15843
  friend class ::PragmaOnceUnitState;
13972
15844
  friend class ::PragmaOnce;
13973
 
  friend class ::CCExprResolve;
13974
 
  friend class ::CExprResolve;
 
15845
  friend class ::CMatchSyntax;
 
15846
 
 
15847
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
13975
15848
 
13976
15849
  Config _config;
13977
15850
  CScanner _scanner;
14006
15879
 
14007
15880
  // Scan the file `file' or the source if given. When
14008
15881
  // scanning a source the resulting unit gets the name `file'.
14009
 
  public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
15882
  
 
15883
#line 15884 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15884
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
15885
 
 
15886
#line 69 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CProject.h"
14010
15887
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
14011
15888
                          bool isFile = true);
14012
15889
        
14035
15912
} // namespace Puma
14036
15913
 
14037
15914
#endif /* __CProject_h__ */
 
15915
 
 
15916
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
14038
15917
// This file is part of PUMA.
14039
15918
// Copyright (C) 1999-2003  The PUMA developer team.
14040
15919
//                                                                
14059
15938
// Special Unit for files. Knows its last save location and the
14060
15939
// absolute path of the corresponding file.
14061
15940
 
 
15941
 
 
15942
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
14062
15943
namespace Puma {
14063
15944
 
14064
15945
 
14065
15946
class Project;
14066
15947
 
 
15948
 
 
15949
#line 15950 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
14067
15950
} // closed Puma
 
15951
class CCExprResolve;
 
15952
class CExprResolve;
14068
15953
class WinIfExists;
14069
15954
class WinImportHandler;
14070
15955
class WinMacros;
14071
 
class CMatchSyntax;
14072
 
class ExtGnu;
 
15956
class WinAsm;
 
15957
class WinDeclSpecs;
 
15958
class WinMemberExplSpec;
 
15959
class WinTypeKeywords;
 
15960
class WinFriend;
14073
15961
class ExtAC;
14074
15962
class ExtACBuilderCoupling;
14075
15963
class ExtACSyntaxCoupling;
14076
15964
class ExtACTree;
14077
15965
class ExtACKeywords;
14078
 
class WinAsm;
14079
 
class WinDeclSpecs;
14080
 
class WinMemberExplSpec;
14081
 
class WinTypeKeywords;
 
15966
class ExtGnu;
14082
15967
class PragmaOnceUnitState;
14083
15968
class PragmaOnce;
14084
 
class CCExprResolve;
14085
 
class CExprResolve;
 
15969
class CMatchSyntax;
14086
15970
namespace Puma {
14087
 
class FileUnit : public Unit {  friend class ::WinIfExists;
 
15971
 
 
15972
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
15973
class FileUnit : public Unit {
 
15974
#line 15975 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
15975
  friend class ::CCExprResolve;
 
15976
  friend class ::CExprResolve;
 
15977
  friend class ::WinIfExists;
14088
15978
  friend class ::WinImportHandler;
14089
15979
  friend class ::WinMacros;
14090
 
  friend class ::CMatchSyntax;
14091
 
  friend class ::ExtGnu;
 
15980
  friend class ::WinAsm;
 
15981
  friend class ::WinDeclSpecs;
 
15982
  friend class ::WinMemberExplSpec;
 
15983
  friend class ::WinTypeKeywords;
 
15984
  friend class ::WinFriend;
14092
15985
  friend class ::ExtAC;
14093
15986
  friend class ::ExtACBuilderCoupling;
14094
15987
  friend class ::ExtACSyntaxCoupling;
14095
15988
  friend class ::ExtACTree;
14096
15989
  friend class ::ExtACKeywords;
14097
 
  friend class ::WinAsm;
14098
 
  friend class ::WinDeclSpecs;
14099
 
  friend class ::WinMemberExplSpec;
14100
 
  friend class ::WinTypeKeywords;
 
15990
  friend class ::ExtGnu;
14101
15991
  friend class ::PragmaOnceUnitState;
14102
15992
  friend class ::PragmaOnce;
14103
 
  friend class ::CCExprResolve;
14104
 
  friend class ::CExprResolve;
 
15993
  friend class ::CMatchSyntax;
 
15994
 
 
15995
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/FileUnit.h"
14105
15996
 
14106
15997
  char *_lastLocation; 
14107
15998
  char *_absolutePath;
14166
16057
} // namespace Puma
14167
16058
 
14168
16059
#endif /* __FileUnit__ */
14169
 
using namespace Puma;
14170
16060
 
 
16061
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
14171
16062
// *****************************************
14172
16063
// AspectC++ keyword handling in the scanner
14173
16064
// *****************************************
 
16065
 
 
16066
#line 16067 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
16067
class CCExprResolve;
 
16068
class CExprResolve;
14174
16069
class WinIfExists;
14175
16070
class WinImportHandler;
14176
16071
class WinMacros;
14177
 
class CMatchSyntax;
14178
 
class ExtGnu;
 
16072
class WinAsm;
 
16073
class WinDeclSpecs;
 
16074
class WinMemberExplSpec;
 
16075
class WinTypeKeywords;
 
16076
class WinFriend;
14179
16077
class ExtAC;
14180
16078
class ExtACBuilderCoupling;
14181
16079
class ExtACSyntaxCoupling;
14182
16080
class ExtACTree;
14183
 
class WinAsm;
14184
 
class WinDeclSpecs;
14185
 
class WinMemberExplSpec;
14186
 
class WinTypeKeywords;
 
16081
class ExtGnu;
14187
16082
class PragmaOnceUnitState;
14188
16083
class PragmaOnce;
14189
 
class CCExprResolve;
14190
 
class CExprResolve;
 
16084
class CMatchSyntax;
 
16085
 
 
16086
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
14191
16087
class ExtACKeywords {
 
16088
#line 16089 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
16089
 
14192
16090
public:
14193
16091
  static ExtACKeywords *aspectof () {
14194
16092
    static ExtACKeywords __instance;
14198
16096
    return aspectof ();
14199
16097
  }
14200
16098
private:
 
16099
 
 
16100
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16101
 
 
16102
#line 16103 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
16103
  friend class ::CCExprResolve;
 
16104
  friend class ::CExprResolve;
14201
16105
  friend class ::WinIfExists;
14202
16106
  friend class ::WinImportHandler;
14203
16107
  friend class ::WinMacros;
14204
 
  friend class ::CMatchSyntax;
14205
 
  friend class ::ExtGnu;
 
16108
  friend class ::WinAsm;
 
16109
  friend class ::WinDeclSpecs;
 
16110
  friend class ::WinMemberExplSpec;
 
16111
  friend class ::WinTypeKeywords;
 
16112
  friend class ::WinFriend;
14206
16113
  friend class ::ExtAC;
14207
16114
  friend class ::ExtACBuilderCoupling;
14208
16115
  friend class ::ExtACSyntaxCoupling;
14209
16116
  friend class ::ExtACTree;
14210
 
  friend class ::WinAsm;
14211
 
  friend class ::WinDeclSpecs;
14212
 
  friend class ::WinMemberExplSpec;
14213
 
  friend class ::WinTypeKeywords;
 
16117
  friend class ::ExtGnu;
14214
16118
  friend class ::PragmaOnceUnitState;
14215
16119
  friend class ::PragmaOnce;
14216
 
  friend class ::CCExprResolve;
14217
 
  friend class ::CExprResolve;
 
16120
  friend class ::CMatchSyntax;
 
16121
 
 
16122
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
14218
16123
 
14219
16124
 
14220
16125
  bool _prj_keywords;
14221
 
  CProject *_project; // active project
 
16126
  Puma::CProject *_project; // active project
14222
16127
  
14223
16128
protected:
14224
16129
  ExtACKeywords () : _prj_keywords (false) {}
 
16130
  
14225
16131
public:
14226
16132
  // allow/forbid AspectC++ keywords in normal project files
14227
16133
  void prj_keywords (bool kw) { _prj_keywords = kw; }
14228
16134
  
14229
16135
  
14230
 
public: void __a0_before (CProject &project) {
 
16136
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16137
 
 
16138
public: void __a0_before 
 
16139
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16140
 
 
16141
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16142
(Puma::CProject &project)
 
16143
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16144
 {
14231
16145
    _project = &project;
14232
16146
  }
14233
16147
  
14234
16148
  
14235
 
public: template<class JoinPoint> void __a1_before (JoinPoint *tjp, Unit &unit) {
 
16149
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16150
 
 
16151
public: template<class JoinPoint> void __a1_before 
 
16152
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16153
 
 
16154
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16155
(JoinPoint *tjp, Puma::Unit &unit)
 
16156
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16157
 {
 
16158
#line 16159 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
16159
 
14236
16160
  typedef typename JoinPoint::That __JP_That;
14237
16161
  typedef typename JoinPoint::Target __JP_Target;
14238
16162
  typedef typename JoinPoint::Result __JP_Result;
14239
16163
 
 
16164
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16165
 
14240
16166
    if (!unit.isFile ())
14241
16167
      return;
14242
16168
      
14243
16169
    bool ac_kw = _prj_keywords;
14244
16170
    // in external files the AspectC++ keywords are always identifiers
14245
 
    if (!((FileUnit*)&unit)->belongsTo (*_project)) {
 
16171
    if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
14246
16172
      ac_kw = false;
14247
16173
    }
14248
16174
    // in aspect headers keywords are keywords
14255
16181
  }
14256
16182
  
14257
16183
  
14258
 
public: template<class JoinPoint> void __a2_before (JoinPoint *tjp) {
 
16184
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16185
 
 
16186
public: template<class JoinPoint> void __a2_before 
 
16187
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16188
 
 
16189
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16190
(JoinPoint *tjp)
 
16191
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16192
 {
 
16193
#line 16194 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
16194
 
14259
16195
  typedef typename JoinPoint::That __JP_That;
14260
16196
  typedef typename JoinPoint::Target __JP_Target;
14261
16197
  typedef typename JoinPoint::Result __JP_Result;
14262
16198
 
 
16199
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
16200
 
14263
16201
    _project = tjp->that ();
14264
16202
  }
14265
16203
};
 
16204
#line 16205 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreParser.cc"
 
16205
 
14266
16206
namespace AC {
14267
 
  template <class JoinPoint, class Binding>
14268
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
14269
 
    typedef typename Binding::template Arg<0> Arg0;
 
16207
  template <class JoinPoint>
 
16208
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
 
16209
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
14270
16210
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
14271
16211
  }
14272
 
  template <class JoinPoint, class Binding>
14273
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
14274
 
    typedef typename Binding::template Arg<0> Arg0;
 
16212
  template <class JoinPoint>
 
16213
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
 
16214
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
14275
16215
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
14276
16216
  }
14277
16217
  template <class JoinPoint>
14278
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
 
16218
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
14279
16219
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
14280
16220
  }
14281
16221
 
16222
 
 
16223
#line 70 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
14282
16224
  
14283
16225
 
14284
16226
#endif /* __ext_ac_keywords_ah__ */
14285
 
#endif
14286
 
#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__)
14287
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
16227
 
 
16228
#line 163 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
16229
#endif
 
16230
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16231
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16232
#include "PragmaOnceUnitState.ah"
 
16233
#endif
 
16234
#endif
 
16235
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
16236
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16237
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16238
#include "ExtACTree.ah"
 
16239
#endif
 
16240
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
16241
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
16242
#include "ExtGnu.ah"
 
16243
#endif
 
16244
#endif
 
16245
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
16246
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16247
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
16248
#include "ExtACTree.ah"
 
16249
#endif
 
16250
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
16251
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
16252
#include "ExtGnuCSemDeclSpecs.ah"
 
16253
#endif
 
16254
#endif
 
16255
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16256
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16257
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16258
#include "PragmaOnceUnitState.ah"
 
16259
#endif
 
16260
#endif
 
16261
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
16262
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16263
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
16264
#include "PragmaOnceUnitState.ah"
 
16265
#endif
 
16266
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
16267
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
16268
 
 
16269
#line 203 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreParser.cc"
 
16270
#endif
 
16271
#endif
 
16272
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
16273
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
16274
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
14288
16275
#include "TraceSyntax.ah"
14289
16276
#endif
14290
 
#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__)
14291
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__
14292
 
#include "WinAsm.ah"
14293
 
#endif
14294
 
#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__)
14295
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
14296
 
#include "WinDeclSpecs.ah"
14297
 
#endif
14298
 
#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__)
14299
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
14300
 
#include "WinMemberExplSpec.ah"
14301
 
#endif
14302
 
#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__)
14303
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
14304
 
#include "WinTypeKeywords.ah"
14305
 
#endif
14306
 
#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__)
14307
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
14308
 
#endif
14309
 
#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__)
14310
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
14311
 
#endif
14312
 
#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__)
14313
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
14314
 
#include "CCExprResolveH.ah"
14315
 
#endif
14316
 
#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__)
14317
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
14318
 
#include "CCExprResolveCC.ah"
14319
 
#endif
14320
 
#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__)
14321
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__
14322
 
#include "CExprResolveH.ah"
14323
 
#endif
14324
 
#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__)
14325
 
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
14326
 
#include "CExprResolveCC.ah"
14327
 
#endif
14328
 
/*** end of aspect includes ***/
14329
 
#undef __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
14330
 
#undef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreParser_cc__
14331
 
#endif // __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreParser_cc__
 
16277
#endif
 
16278
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
16279
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
16280
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
16281
#include "CMatchSyntax.ah"
 
16282
#endif
 
16283
#endif
 
16284
#undef __ac_FIRST__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1__
 
16285
#undef __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreParser_cc__
 
16286
#endif // __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreParser_cc__