125
class WinImportHandler;
130
class ExtACBuilderCoupling;
131
class ExtACSyntaxCoupling;
136
class WinMemberExplSpec;
137
class WinTypeKeywords;
138
class PragmaOnceUnitState;
143
157
template <class Item>
144
class Array { friend class ::WinIfExists;
145
friend class ::WinImportHandler;
146
friend class ::WinMacros;
147
friend class ::CMatchSyntax;
148
friend class ::ExtGnu;
149
friend class ::ExtAC;
150
friend class ::ExtACBuilderCoupling;
151
friend class ::ExtACSyntaxCoupling;
152
friend class ::ExtACTree;
153
friend class ::ExtACKeywords;
154
friend class ::WinAsm;
155
friend class ::WinDeclSpecs;
156
friend class ::WinMemberExplSpec;
157
friend class ::WinTypeKeywords;
158
friend class ::PragmaOnceUnitState;
159
friend class ::PragmaOnce;
160
friend class ::CCExprResolve;
161
friend class ::CExprResolve;
164
static const long default_init_size = 5;
165
static const long default_increment = 5;
168
Array (long is = default_init_size, long incr = default_increment);
169
Array (const Array<Item>& array);
170
Array<Item>& operator =(const Array<Item>&);
172
void append (const Item& item);
173
void insert (long index, const Item& item);
174
void prepend (const Item& item);
175
void remove (long index);
177
Item& get (long index);
178
Item& operator[] (long index);
179
Item fetch (long index) const;
180
Item& lookup (long index) const;
181
long length () const;
160
static const long default_init_size = 5;
161
static const long default_increment = 5;
164
Array (long is = default_init_size, long incr = default_increment);
165
Array (const Array<Item>& array);
166
Array<Item>& operator =(const Array<Item>&);
168
void append (const Item& item);
169
void insert (long index, const Item& item);
170
void prepend (const Item& item);
171
void remove (long index);
173
Item& get (long index);
174
Item& operator[] (long index);
175
Item fetch (long index) const;
176
Item& lookup (long index) const;
177
long length () const;
189
void check (long wanted);
192
template <class Item>
193
inline Array<Item>::Array (long is, long incr)
198
data = new Item[size];
201
template <class Item>
202
Array<Item>::Array (const Array<Item>& array)
206
data = new Item[size];
207
increment = array.increment;
209
for (int pos = 0; pos < array.length (); pos++)
210
append (array.lookup (pos));
213
template <class Item>
214
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
220
data = new Item[size];
221
increment = array.increment;
223
for (int pos = 0; pos < array.length (); pos++)
224
append (array.lookup (pos));
228
template <class Item>
229
Array<Item>::~Array ()
235
template <class Item>
236
inline void Array<Item>::check (long wanted)
242
while (wanted >= size)
247
new_data = new Item[size];
248
for (int pos = 0; pos < count; pos++)
249
new_data[pos] = data[pos];
185
void grow (long wanted);
188
template <class Item>
189
inline Array<Item>::Array (long is, long incr) {
196
template <class Item>
197
Array<Item>::Array (const Array<Item>& array) {
200
increment = array.increment;
202
if (size && array.data) {
203
data = new Item[size];
204
for (; count < array.count; count++) {
205
data[count] = array.data[count];
211
template <class Item>
212
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
218
increment = array.increment;
220
if (size && array.data) {
221
data = new Item[size];
222
for (; count < array.count; count++) {
223
data[count] = array.data[count];
231
template <class Item>
232
Array<Item>::~Array () {
237
template <class Item>
238
inline void Array<Item>::grow (long wanted) {
242
} while (wanted >= size);
245
Item* new_data = new Item[size];
246
for (long i = 0; i < count; i++) {
247
new_data[i] = data[i];
252
data = new Item[size];
255
255
template <class Item>
256
inline void Array<Item>::append (const Item& item)
259
data[count++] = item;
262
template <class Item>
263
void Array<Item>::prepend (const Item& item)
268
template <class Item>
269
void Array<Item>::insert (long index, const Item& item)
272
for (int pos = count; pos > index; pos--)
273
data[pos] = data[pos - 1];
278
template <class Item>
279
inline Item& Array<Item>::get (long index)
287
template <class Item>
288
inline Item& Array<Item>::operator[] (long index)
293
template <class Item>
294
inline Item Array<Item>::fetch (long index) const
296
assert(index < count);
300
template <class Item>
301
inline long Array<Item>::length () const
306
template <class Item>
307
inline void Array<Item>::remove (long index)
309
if (index < count && count > 0)
311
for (int pos = index; pos < count - 1; pos++)
312
data[pos] = data[pos + 1];
256
inline void Array<Item>::append (const Item& item) {
257
if (count >= size || ! data) {
260
data[count++] = item;
263
template <class Item>
264
void Array<Item>::prepend (const Item& item) {
268
template <class Item>
269
void Array<Item>::insert (long index, const Item& item) {
270
if (count >= size || ! data) {
273
for (long i = count; i > index; i--)
274
data[i] = data[i - 1];
279
template <class Item>
280
inline Item& Array<Item>::get (long index) {
281
if (index >= size || ! data) {
289
template <class Item>
290
inline Item& Array<Item>::operator[] (long index) {
294
template <class Item>
295
inline Item Array<Item>::fetch (long index) const {
296
assert(index < count && data);
300
template <class Item>
301
inline long Array<Item>::length () const {
305
template <class Item>
306
inline void Array<Item>::remove (long index) {
307
if (index < count && count > 0) {
308
for (long i = index; i < count - 1; i++)
309
data[i] = data[i + 1];
319
316
inline void Array<int>::reset () {
324
321
template <class Item>
325
void Array<Item>::reset ()
330
size = default_init_size;
331
increment = default_increment;
332
data = new Item[size];
322
void Array<Item>::reset () {
327
size = default_init_size;
328
increment = default_increment;
329
data = new Item[size];
335
332
template <class Item>
336
inline Item& Array<Item>::lookup (long index) const
338
assert(index >= 0 && index < count);
339
// if (index >= count) index = count - 1;
340
// if (index < 0) index = 0;
333
inline Item& Array<Item>::lookup (long index) const {
334
assert(index >= 0 && index < count);
345
339
} // namespace Puma
772
889
// pointcut definitions
891
#line 28 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
895
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
777
898
// initialize new state flag
779
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
900
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
902
public: template<class JoinPoint> void __a0_after
903
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
905
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
907
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
909
#line 910 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
780
911
JoinPoint *&thisJoinPoint = tjp;
913
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
915
#line 916 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
782
917
typedef typename JoinPoint::That __JP_That;
783
918
typedef typename JoinPoint::Target __JP_Target;
784
919
typedef typename JoinPoint::Result __JP_Result;
921
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
786
923
thisJoinPoint->that ()->_once = false;
925
#line 926 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
929
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
932
// initialize new flag for all managed units
934
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
936
public: template<class JoinPoint> void __a1_after
937
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
939
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
941
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
943
#line 944 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
945
typedef typename JoinPoint::That __JP_That;
946
typedef typename JoinPoint::Target __JP_Target;
947
typedef typename JoinPoint::Result __JP_Result;
949
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
951
// go through the whole unit hash table and reset the
952
// `#pragma once' state of the units
954
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
956
for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
957
(*iter).second->state ().onlyOnce (false);
959
#line 960 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
963
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
792
967
// this aspect should never be instantiated directly
793
968
PragmaOnceUnitState () {}
970
#line 971 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
796
973
template <class JoinPoint>
797
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
974
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
798
975
::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
977
template <class JoinPoint>
978
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
979
::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
983
#line 56 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
804
987
#endif /* __PragmaOnceUnitState__ */
805
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
806
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_UnitState_h__
807
// This file is part of PUMA.
808
// Copyright (C) 1999-2003 The PUMA developer team.
810
// This program is free software; you can redistribute it and/or
811
// modify it under the terms of the GNU General Public License as
812
// published by the Free Software Foundation; either version 2 of
813
// the License, or (at your option) any later version.
815
// This program is distributed in the hope that it will be useful,
816
// but WITHOUT ANY WARRANTY; without even the implied warranty of
817
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
818
// GNU General Public License for more details.
820
// You should have received a copy of the GNU General Public
821
// License along with this program; if not, write to the Free
822
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
825
#ifndef __UnitState__
826
#define __UnitState__
828
// The state of a unit:
829
// 1. modified by manipulations and not updated at the class registry
830
// 2. modified by manipulations and updated at the class registry
831
// 3. unmodified by manipulations and not updated at the class registry
832
// 4. unmodified by manipulations and updated at the class registry
839
class WinImportHandler;
844
class ExtACBuilderCoupling;
845
class ExtACSyntaxCoupling;
850
class WinMemberExplSpec;
851
class WinTypeKeywords;
852
class PragmaOnceUnitState;
857
class UnitState { friend class ::WinIfExists;
989
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
993
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
995
#line 996 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
996
friend class ::CCExprResolve;
997
friend class ::CExprResolve;
998
friend class ::WinIfExists;
858
999
friend class ::WinImportHandler;
859
1000
friend class ::WinMacros;
860
friend class ::CMatchSyntax;
861
friend class ::ExtGnu;
1001
friend class ::WinAsm;
1002
friend class ::WinDeclSpecs;
1003
friend class ::WinMemberExplSpec;
1004
friend class ::WinTypeKeywords;
1005
friend class ::WinFriend;
862
1006
friend class ::ExtAC;
863
1007
friend class ::ExtACBuilderCoupling;
864
1008
friend class ::ExtACSyntaxCoupling;
865
1009
friend class ::ExtACTree;
866
1010
friend class ::ExtACKeywords;
867
friend class ::WinAsm;
868
friend class ::WinDeclSpecs;
869
friend class ::WinMemberExplSpec;
870
friend class ::WinTypeKeywords;
1011
friend class ::ExtGnu;
871
1012
friend class ::PragmaOnceUnitState;
872
1013
friend class ::PragmaOnce;
873
friend class ::CCExprResolve;
874
friend class ::CExprResolve;
1014
friend class ::CMatchSyntax;
1016
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
878
1020
long _lastModified;
881
public: inline void __exec_old_C1();
1024
#line 1025 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
1025
public: __attribute__((always_inline)) inline void __exec_old_C1();
1027
#line 37 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitState.h"
884
1030
bool isModified () const;
2156
2463
} // namespace Puma
2158
2465
#endif /* __filename_h__ */
2467
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
2159
2468
namespace Puma {
2472
#line 2473 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2162
2473
} // closed Puma
2474
class CCExprResolve;
2163
2476
class WinIfExists;
2164
2477
class WinImportHandler;
2165
2478
class WinMacros;
2481
class WinMemberExplSpec;
2482
class WinTypeKeywords;
2169
2485
class ExtACBuilderCoupling;
2170
2486
class ExtACSyntaxCoupling;
2171
2487
class ExtACTree;
2172
2488
class ExtACKeywords;
2175
class WinMemberExplSpec;
2176
class WinTypeKeywords;
2177
2490
class PragmaOnceUnitState;
2178
2491
class PragmaOnce;
2179
class CCExprResolve;
2181
2493
namespace Puma {
2182
class LocationInfo : public RefCnt { friend class ::WinIfExists;
2495
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
2497
#line 2498 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2498
friend class ::CCExprResolve;
2499
friend class ::CExprResolve;
2500
friend class ::WinIfExists;
2183
2501
friend class ::WinImportHandler;
2184
2502
friend class ::WinMacros;
2185
friend class ::CMatchSyntax;
2186
friend class ::ExtGnu;
2503
friend class ::WinAsm;
2504
friend class ::WinDeclSpecs;
2505
friend class ::WinMemberExplSpec;
2506
friend class ::WinTypeKeywords;
2507
friend class ::WinFriend;
2187
2508
friend class ::ExtAC;
2188
2509
friend class ::ExtACBuilderCoupling;
2189
2510
friend class ::ExtACSyntaxCoupling;
2190
2511
friend class ::ExtACTree;
2191
2512
friend class ::ExtACKeywords;
2192
friend class ::WinAsm;
2193
friend class ::WinDeclSpecs;
2194
friend class ::WinMemberExplSpec;
2195
friend class ::WinTypeKeywords;
2513
friend class ::ExtGnu;
2196
2514
friend class ::PragmaOnceUnitState;
2197
2515
friend class ::PragmaOnce;
2198
friend class ::CCExprResolve;
2199
friend class ::CExprResolve;
2516
friend class ::CMatchSyntax;
2518
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Location.h"
2201
2520
Filename _filename;
2205
LocationInfo () : _filename (), _line (0) {}
2206
void setup (Filename f, int l);
2525
Location () : _filename (), _line (0), _column (0) {}
2526
Location (Filename f, int l, int c = 0) { setup (f, l, c); }
2527
void setup (Filename f, int l, int c = 0) {
2207
2532
const Filename &filename () const { return _filename; }
2208
2533
int line () const { return _line; }
2209
bool operator < (const LocationInfo &l) const;
2210
bool operator == (const LocationInfo &l) const;
2216
#endif /* __location_info_h__ */
2222
class WinImportHandler;
2227
class ExtACBuilderCoupling;
2228
class ExtACSyntaxCoupling;
2230
class ExtACKeywords;
2233
class WinMemberExplSpec;
2234
class WinTypeKeywords;
2235
class PragmaOnceUnitState;
2237
class CCExprResolve;
2240
class Location : public SmartPtr, public Printable { friend class ::WinIfExists;
2241
friend class ::WinImportHandler;
2242
friend class ::WinMacros;
2243
friend class ::CMatchSyntax;
2244
friend class ::ExtGnu;
2245
friend class ::ExtAC;
2246
friend class ::ExtACBuilderCoupling;
2247
friend class ::ExtACSyntaxCoupling;
2248
friend class ::ExtACTree;
2249
friend class ::ExtACKeywords;
2250
friend class ::WinAsm;
2251
friend class ::WinDeclSpecs;
2252
friend class ::WinMemberExplSpec;
2253
friend class ::WinTypeKeywords;
2254
friend class ::PragmaOnceUnitState;
2255
friend class ::PragmaOnce;
2256
friend class ::CCExprResolve;
2257
friend class ::CExprResolve;
2259
LocationInfo *info () const { return (LocationInfo*)data (); }
2263
Location (Filename f, int l) { setup (f, l); }
2264
Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2265
LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2266
void setup (Filename f, int l);
2267
const Filename &filename () const { return info ()->filename (); }
2269
bool operator == (const Location &l) const;
2534
int column () const { return _column; }
2535
bool operator == (const Location &l) const {
2536
return filename () == l.filename () && line () == l.line () &&
2537
column () == l.column ();
2270
2539
bool operator != (const Location &l) const { return ! (*this == l); }
2271
bool operator < (const Location &l) const;
2540
bool operator < (const Location &l) const {
2541
// TODO: does it make sense to compare the filenames? better assert?
2542
if (filename () != l.filename ())
2544
return line () < l.line () && column () < l.column ();
2273
virtual void print (ostream &os) const {
2548
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2275
2549
#ifdef VISUAL_STUDIO
2276
os << filename () << "(" << line () << ")";
2550
os << loc.filename () << "(" << loc.line () << ")";
2278
os << filename () << ":" << line ();
2552
os << loc.filename () << ":" << loc.line ();
2284
2556
} // namespace Puma
2286
2558
#endif /* __location_h__ */
2560
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2287
2561
#include <assert.h>
2563
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2288
2564
namespace Puma {
2568
#line 2569 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2291
2569
} // closed Puma
2570
class CCExprResolve;
2292
2572
class WinIfExists;
2293
2573
class WinImportHandler;
2294
2574
class WinMacros;
2577
class WinMemberExplSpec;
2578
class WinTypeKeywords;
2298
2581
class ExtACBuilderCoupling;
2299
2582
class ExtACSyntaxCoupling;
2300
2583
class ExtACTree;
2301
2584
class ExtACKeywords;
2304
class WinMemberExplSpec;
2305
class WinTypeKeywords;
2306
2586
class PragmaOnceUnitState;
2307
2587
class PragmaOnce;
2308
class CCExprResolve;
2310
2589
namespace Puma {
2311
class Token : public ListElement { friend class ::WinIfExists;
2591
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2592
class Token : public ListElement {
2593
#line 2594 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2594
friend class ::CCExprResolve;
2595
friend class ::CExprResolve;
2596
friend class ::WinIfExists;
2312
2597
friend class ::WinImportHandler;
2313
2598
friend class ::WinMacros;
2314
friend class ::CMatchSyntax;
2315
friend class ::ExtGnu;
2599
friend class ::WinAsm;
2600
friend class ::WinDeclSpecs;
2601
friend class ::WinMemberExplSpec;
2602
friend class ::WinTypeKeywords;
2603
friend class ::WinFriend;
2316
2604
friend class ::ExtAC;
2317
2605
friend class ::ExtACBuilderCoupling;
2318
2606
friend class ::ExtACSyntaxCoupling;
2319
2607
friend class ::ExtACTree;
2320
2608
friend class ::ExtACKeywords;
2321
friend class ::WinAsm;
2322
friend class ::WinDeclSpecs;
2323
friend class ::WinMemberExplSpec;
2324
friend class ::WinTypeKeywords;
2609
friend class ::ExtGnu;
2325
2610
friend class ::PragmaOnceUnitState;
2326
2611
friend class ::PragmaOnce;
2327
friend class ::CCExprResolve;
2328
friend class ::CExprResolve;
2612
friend class ::CMatchSyntax;
2614
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Token.h"
2330
2616
int _type, _real_type;
2332
2618
Location _location;
2333
2619
LanguageID _language;
2621
mutable DString _dtext;
2336
2623
Array<int> *_cont_lines;
2889
3248
#ifndef __scan_buffer_h__
2890
3249
#define __scan_buffer_h__
3252
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
3253
using namespace std;
2892
3255
namespace Puma {
3258
#line 3259 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2895
3259
} // closed Puma
3260
class CCExprResolve;
2896
3262
class WinIfExists;
2897
3263
class WinImportHandler;
2898
3264
class WinMacros;
3267
class WinMemberExplSpec;
3268
class WinTypeKeywords;
2902
3271
class ExtACBuilderCoupling;
2903
3272
class ExtACSyntaxCoupling;
2904
3273
class ExtACTree;
2905
3274
class ExtACKeywords;
2908
class WinMemberExplSpec;
2909
class WinTypeKeywords;
2910
3276
class PragmaOnceUnitState;
2911
3277
class PragmaOnce;
2912
class CCExprResolve;
2914
3279
namespace Puma {
2915
class ScanBuffer { friend class ::WinIfExists;
3281
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
3283
#line 3284 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3284
friend class ::CCExprResolve;
3285
friend class ::CExprResolve;
3286
friend class ::WinIfExists;
2916
3287
friend class ::WinImportHandler;
2917
3288
friend class ::WinMacros;
2918
friend class ::CMatchSyntax;
2919
friend class ::ExtGnu;
3289
friend class ::WinAsm;
3290
friend class ::WinDeclSpecs;
3291
friend class ::WinMemberExplSpec;
3292
friend class ::WinTypeKeywords;
3293
friend class ::WinFriend;
2920
3294
friend class ::ExtAC;
2921
3295
friend class ::ExtACBuilderCoupling;
2922
3296
friend class ::ExtACSyntaxCoupling;
2923
3297
friend class ::ExtACTree;
2924
3298
friend class ::ExtACKeywords;
2925
friend class ::WinAsm;
2926
friend class ::WinDeclSpecs;
2927
friend class ::WinMemberExplSpec;
2928
friend class ::WinTypeKeywords;
3299
friend class ::ExtGnu;
2929
3300
friend class ::PragmaOnceUnitState;
2930
3301
friend class ::PragmaOnce;
2931
friend class ::CCExprResolve;
2932
friend class ::CExprResolve;
3302
friend class ::CMatchSyntax;
3304
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
2935
typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
3307
typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
3310
int _token; // start position of current token
3311
int _pos; // current position (in token; _pos >= _token && pos < filled)
3312
char *_buffer; // token to the buffer that contains all input characters
3313
int _buff_size; // size of the input buffer
3317
ScanBuffer () : _state (STATE_NEW) {}
3319
// init buffer to directly scan from a string
3320
void init (const char *str, int l = 0);
2937
virtual ~ScanBuffer () {}
2939
virtual char next () = 0;
2940
virtual char *token () = 0;
2941
virtual int len () const = 0;
2942
virtual void reset () = 0;
2943
virtual void retry () = 0;
2944
virtual void accept (int len) = 0;
2945
virtual void more (int len) = 0;
2946
virtual State state () const = 0;
3322
char next () { return _buffer[_pos++]; }
3323
char lookahead () { return _buffer[_pos]; }
3324
char *token () const { return _buffer + _token; }
3325
int len () const { return _pos - _token; }
3326
void reset () { _token = _pos = 0; }
3327
void retry () { _pos = _token; }
3328
void accept (int len) {
3332
void more (int len) { _pos = _token + len; }
3334
if (_state == STATE_OK && _pos >= _buff_size)
2950
3341
} // namespace Puma
2952
3343
#endif /* __scan_buffer_h__ */
3345
#line 24 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
2953
3346
namespace Puma {
3350
#line 3351 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
2956
3351
} // closed Puma
3352
class CCExprResolve;
2957
3354
class WinIfExists;
2958
3355
class WinImportHandler;
2959
3356
class WinMacros;
3359
class WinMemberExplSpec;
3360
class WinTypeKeywords;
2963
3363
class ExtACBuilderCoupling;
2964
3364
class ExtACSyntaxCoupling;
2965
3365
class ExtACTree;
2966
3366
class ExtACKeywords;
2969
class WinMemberExplSpec;
2970
class WinTypeKeywords;
2971
3368
class PragmaOnceUnitState;
2972
3369
class PragmaOnce;
2973
class CCExprResolve;
2975
3371
namespace Puma {
2976
class CScanBuffer { friend class ::WinIfExists;
3373
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3374
class CScanBuffer : public ScanBuffer {
3375
#line 3376 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3376
friend class ::CCExprResolve;
3377
friend class ::CExprResolve;
3378
friend class ::WinIfExists;
2977
3379
friend class ::WinImportHandler;
2978
3380
friend class ::WinMacros;
2979
friend class ::CMatchSyntax;
2980
friend class ::ExtGnu;
3381
friend class ::WinAsm;
3382
friend class ::WinDeclSpecs;
3383
friend class ::WinMemberExplSpec;
3384
friend class ::WinTypeKeywords;
3385
friend class ::WinFriend;
2981
3386
friend class ::ExtAC;
2982
3387
friend class ::ExtACBuilderCoupling;
2983
3388
friend class ::ExtACSyntaxCoupling;
2984
3389
friend class ::ExtACTree;
2985
3390
friend class ::ExtACKeywords;
2986
friend class ::WinAsm;
2987
friend class ::WinDeclSpecs;
2988
friend class ::WinMemberExplSpec;
2989
friend class ::WinTypeKeywords;
3391
friend class ::ExtGnu;
2990
3392
friend class ::PragmaOnceUnitState;
2991
3393
friend class ::PragmaOnce;
2992
friend class ::CCExprResolve;
2993
friend class ::CExprResolve;
2995
ScanBuffer *next_buffer;
3394
friend class ::CMatchSyntax;
3396
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
3002
void decorate (ScanBuffer *nb) { next_buffer = nb; }
3403
CScanBuffer () : _new_line_pos (-1) {}
3003
3404
inline char next ();
3004
3405
inline void reset ();
3406
inline void retry ();
3005
3407
inline void accept (int len);
3006
inline void retry ();
3007
bool new_line () const { return on_new_line; }
3008
char *token () { return next_buffer->token (); }
3009
int len () const { return next_buffer->len (); }
3010
void more (int len) { next_buffer->more (len); }
3011
ScanBuffer::State state () const { return next_buffer->state (); }
3408
inline bool new_line (int len) const;
3015
3412
inline char CScanBuffer::next () {
3016
char character = next_buffer->next ();
3017
if (character == '\n' && nl_pos == -1)
3018
nl_pos = len () - 1;
3413
char character = ScanBuffer::next ();
3414
if (character == '\n' && _new_line_pos == -1)
3415
_new_line_pos = len ();
3416
if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
3417
ScanBuffer::lookahead () == '\\')
3020
3419
return character;
3023
3422
inline void CScanBuffer::reset () {
3024
next_buffer->reset ();
3423
ScanBuffer::reset ();
3031
3428
inline void CScanBuffer::retry () {
3033
next_buffer->retry ();
3429
ScanBuffer::retry ();
3037
3433
inline void CScanBuffer::accept (int len) {
3038
on_new_line = (nl_pos >= 0 && nl_pos < len);
3040
next_buffer->accept (len);
3434
ScanBuffer::accept (len);
3438
inline bool CScanBuffer::new_line (int len) const {
3439
return _new_line_pos != -1 && _new_line_pos <= len;
3043
3442
} // namespace Puma
3045
3444
#endif // __CScanBuffer_h__
3446
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
3046
3447
// This file is part of PUMA.
3047
3448
// Copyright (C) 1999-2003 The PUMA developer team.
3497
3816
} // namespace Puma
3499
3818
#endif /* __keyword_recognizer_h__ */
3820
#line 27 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3500
3821
namespace Puma {
3825
#line 3826 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3503
3826
} // closed Puma
3827
class CCExprResolve;
3504
3829
class WinIfExists;
3505
3830
class WinImportHandler;
3506
3831
class WinMacros;
3834
class WinMemberExplSpec;
3835
class WinTypeKeywords;
3510
3838
class ExtACBuilderCoupling;
3511
3839
class ExtACSyntaxCoupling;
3512
3840
class ExtACTree;
3513
3841
class ExtACKeywords;
3516
class WinMemberExplSpec;
3517
class WinTypeKeywords;
3518
3843
class PragmaOnceUnitState;
3519
3844
class PragmaOnce;
3520
class CCExprResolve;
3522
3846
namespace Puma {
3523
class CRecognizer { friend class ::WinIfExists;
3848
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3850
#line 3851 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
3851
friend class ::CCExprResolve;
3852
friend class ::CExprResolve;
3853
friend class ::WinIfExists;
3524
3854
friend class ::WinImportHandler;
3525
3855
friend class ::WinMacros;
3526
friend class ::CMatchSyntax;
3527
friend class ::ExtGnu;
3856
friend class ::WinAsm;
3857
friend class ::WinDeclSpecs;
3858
friend class ::WinMemberExplSpec;
3859
friend class ::WinTypeKeywords;
3860
friend class ::WinFriend;
3528
3861
friend class ::ExtAC;
3529
3862
friend class ::ExtACBuilderCoupling;
3530
3863
friend class ::ExtACSyntaxCoupling;
3531
3864
friend class ::ExtACTree;
3532
3865
friend class ::ExtACKeywords;
3533
friend class ::WinAsm;
3534
friend class ::WinDeclSpecs;
3535
friend class ::WinMemberExplSpec;
3536
friend class ::WinTypeKeywords;
3866
friend class ::ExtGnu;
3537
3867
friend class ::PragmaOnceUnitState;
3538
3868
friend class ::PragmaOnce;
3539
friend class ::CCExprResolve;
3540
friend class ::CExprResolve;
3542
CScanBuffer scan_buffer;
3869
friend class ::CMatchSyntax;
3871
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3543
3873
CCommentRecognizer comment_recognizer;
3544
3874
Array<KeywordRecognizer*> additional_keyword_recognizers;
3877
CScanBuffer scan_buffer; // TODO: temporarily made public!
3547
3879
typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
3548
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE,
3880
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE,
3549
3881
KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
3551
CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
3883
CRecognizer () : directives(true), wildcards (false),
3884
aspectc (false), macro_ops (false),
3552
3885
std_c (true), std_cplusplus (true) {}
3553
CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
3554
macro_ops (false) { setup (buffer); }
3886
void allow_directives (bool flag = true) { directives = flag; }
3555
3887
void allow_wildcards (bool flag = true) { wildcards = flag; }
3556
3888
void allow_aspectc (bool flag = true) { aspectc = flag; }
3557
3889
void allow_macro_ops (bool flag = true) { macro_ops = flag; }
3558
3890
void allow_std_c (bool flag = true) { std_c = flag; }
3559
3891
void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
3560
void setup (ScanBuffer &buffer);
3561
3893
int recognize (Lang &lang, int &expr, int &len);
3562
Mode mode () { return scan_mode; }
3563
bool new_line () const { return scan_buffer.new_line (); }
3894
Mode mode () const { return scan_mode; }
3895
void mode (Mode mode) { scan_mode = mode; }
3564
3896
CScanBuffer& buffer () { return scan_buffer; }
3565
3897
void addRecognizer(KeywordRecognizer &recognizer)
3566
3898
{ additional_keyword_recognizers.append(&recognizer); }
3569
static MappedOrangeRecognizer<CScanBuffer> string_recognizer;
3570
3901
static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
3571
3902
static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
3572
3903
static OrangeRecognizer<CScanBuffer> dir_recognizer;
3573
static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
3574
3904
static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
3575
3905
static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
3576
3906
static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
3578
3908
Mode scan_mode;
3579
bool check_directive;
3580
3910
bool wildcards;
3582
3912
bool macro_ops;
4344
4772
#ifndef __SimpleParser_h__
4345
4773
#define __SimpleParser_h__
4776
#line 23 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4347
4777
#include <vector>
4348
4778
using namespace std;
4350
4780
namespace Puma {
4784
* Simple string parser.
4785
* \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
4788
#line 4789 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4353
4789
} // closed Puma
4790
class CCExprResolve;
4354
4792
class WinIfExists;
4355
4793
class WinImportHandler;
4356
4794
class WinMacros;
4797
class WinMemberExplSpec;
4798
class WinTypeKeywords;
4360
4801
class ExtACBuilderCoupling;
4361
4802
class ExtACSyntaxCoupling;
4362
4803
class ExtACTree;
4363
4804
class ExtACKeywords;
4366
class WinMemberExplSpec;
4367
class WinTypeKeywords;
4368
4806
class PragmaOnceUnitState;
4369
4807
class PragmaOnce;
4370
class CCExprResolve;
4372
4809
namespace Puma {
4373
class SimpleParser { friend class ::WinIfExists;
4811
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4812
class SimpleParser {
4813
#line 4814 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4814
friend class ::CCExprResolve;
4815
friend class ::CExprResolve;
4816
friend class ::WinIfExists;
4374
4817
friend class ::WinImportHandler;
4375
4818
friend class ::WinMacros;
4376
friend class ::CMatchSyntax;
4377
friend class ::ExtGnu;
4819
friend class ::WinAsm;
4820
friend class ::WinDeclSpecs;
4821
friend class ::WinMemberExplSpec;
4822
friend class ::WinTypeKeywords;
4823
friend class ::WinFriend;
4378
4824
friend class ::ExtAC;
4379
4825
friend class ::ExtACBuilderCoupling;
4380
4826
friend class ::ExtACSyntaxCoupling;
4381
4827
friend class ::ExtACTree;
4382
4828
friend class ::ExtACKeywords;
4383
friend class ::WinAsm;
4384
friend class ::WinDeclSpecs;
4385
friend class ::WinMemberExplSpec;
4386
friend class ::WinTypeKeywords;
4829
friend class ::ExtGnu;
4387
4830
friend class ::PragmaOnceUnitState;
4388
4831
friend class ::PragmaOnce;
4389
friend class ::CCExprResolve;
4390
friend class ::CExprResolve;
4832
friend class ::CMatchSyntax;
4834
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4396
static int tokenize (const string &, vector<string> &,
4397
const string &delimiters = " ");
4398
static string strip (const string &);
4838
* Remove enclosing double-quotes from a string.
4839
* \param str The string to strip.
4840
* \return String without the enclosing double-quotes.
4842
static string strip (const string& str);
4844
* Splits a given string into tokens recognized by the given delimiters.
4845
* \param str The string to split.
4846
* \param tokens A vector for the tokens.
4847
* \param delimiters A string with the delimiters. Default is a space or tab.
4848
* \return Number of recognized tokens.
4850
static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
4854
* Get the position of the next token.
4855
* \param line The string to tokenize.
4856
* \param delimiters A string with the token delimiters.
4857
* \param pos The current position in the string.
4858
* \param lastPos The last position in the string.
4859
* \return The position of the next token.
4861
static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
4863
* Get the begin of the next token.
4864
* \param line The string to tokenize.
4865
* \param delimiters A string with the token delimiters.
4866
* \param pos The current position in the string.
4867
* \return The begin of the next token.
4869
static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
4871
* Get the end of the next token.
4872
* \param line The string to tokenize.
4873
* \param delimiters A string with the token delimiters.
4874
* \param lastPos The last position in the string, i.e. the begin of the next token.
4875
* \return The end of the next token.
4877
static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
4402
4881
} // namespace Puma
4404
4883
#endif /* __SimpleParser_h__ */
4885
#line 25 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4405
4886
using namespace std;
4407
4888
namespace Puma {
4891
/** \brief The %Options %Parser searches command line parameters for options and
4892
* handles their option arguments, if applicable.
4895
#line 4896 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4410
4896
} // closed Puma
4897
class CCExprResolve;
4411
4899
class WinIfExists;
4412
4900
class WinImportHandler;
4413
4901
class WinMacros;
4904
class WinMemberExplSpec;
4905
class WinTypeKeywords;
4417
4908
class ExtACBuilderCoupling;
4418
4909
class ExtACSyntaxCoupling;
4419
4910
class ExtACTree;
4420
4911
class ExtACKeywords;
4423
class WinMemberExplSpec;
4424
class WinTypeKeywords;
4425
4913
class PragmaOnceUnitState;
4426
4914
class PragmaOnce;
4427
class CCExprResolve;
4429
4916
namespace Puma {
4430
class OptsParser : public SimpleParser { friend class ::WinIfExists;
4918
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4919
class OptsParser : public SimpleParser {
4920
#line 4921 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4921
friend class ::CCExprResolve;
4922
friend class ::CExprResolve;
4923
friend class ::WinIfExists;
4431
4924
friend class ::WinImportHandler;
4432
4925
friend class ::WinMacros;
4433
friend class ::CMatchSyntax;
4434
friend class ::ExtGnu;
4926
friend class ::WinAsm;
4927
friend class ::WinDeclSpecs;
4928
friend class ::WinMemberExplSpec;
4929
friend class ::WinTypeKeywords;
4930
friend class ::WinFriend;
4435
4931
friend class ::ExtAC;
4436
4932
friend class ::ExtACBuilderCoupling;
4437
4933
friend class ::ExtACSyntaxCoupling;
4438
4934
friend class ::ExtACTree;
4439
4935
friend class ::ExtACKeywords;
4440
friend class ::WinAsm;
4441
friend class ::WinDeclSpecs;
4442
friend class ::WinMemberExplSpec;
4443
friend class ::WinTypeKeywords;
4936
friend class ::ExtGnu;
4444
4937
friend class ::PragmaOnceUnitState;
4445
4938
friend class ::PragmaOnce;
4446
friend class ::CCExprResolve;
4447
friend class ::CExprResolve;
4939
friend class ::CMatchSyntax;
4941
#line 33 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4945
/** \brief Vector holding the commandline parameters.
4947
* This vector is filled in the constructor
4449
4949
vector<string> m_argv;
4951
/** \brief Position of current parameter analyzed by the
4450
4954
unsigned int m_curarg;
4956
/** \brief The increment added to m_curarg used to get to the next
4957
* entry of m_argv which shall be analysed.
4451
4959
unsigned int m_tonext;
4961
/** \brief %Option number of currently processed element of m_argv
4965
/** \brief Name of current option
4969
/** \brief Value of current option argument
4459
enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
4461
enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
4463
struct Option { friend class ::WinIfExists;
4977
* Return codes for OptsParser::getOption() and OptsParser::getArgument()
4980
NOARG =-4, /**< %Option has no argument */
4981
ERR = -3, /**< Error when parsing option */
4982
NOOPTION = -2, /**< Command line parameter is not an option */
4983
UNKNOWN = -1, /**< Parameter is an unknown option */
4984
FINISH = 0 /**< All options are handled */
4988
* Type of argument associated to an option
4991
AT_NONE = 0, /**< %Option receives no argument */
4992
AT_MANDATORY = 1, /**< %Option requires an argument */
4993
AT_OPTIONAL = 2 /**< %Option has optionally an argument */
4997
* Type for specifying an array of options recognized by the %Option %Parser.
4998
* An array of this type has to be passed to the constructor OptsParser::OptsParser()
5001
#line 5002 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5002
friend class ::CCExprResolve;
5003
friend class ::CExprResolve;
5004
friend class ::WinIfExists;
4464
5005
friend class ::WinImportHandler;
4465
5006
friend class ::WinMacros;
4466
friend class ::CMatchSyntax;
4467
friend class ::ExtGnu;
5007
friend class ::WinAsm;
5008
friend class ::WinDeclSpecs;
5009
friend class ::WinMemberExplSpec;
5010
friend class ::WinTypeKeywords;
5011
friend class ::WinFriend;
4468
5012
friend class ::ExtAC;
4469
5013
friend class ::ExtACBuilderCoupling;
4470
5014
friend class ::ExtACSyntaxCoupling;
4471
5015
friend class ::ExtACTree;
4472
5016
friend class ::ExtACKeywords;
4473
friend class ::WinAsm;
4474
friend class ::WinDeclSpecs;
4475
friend class ::WinMemberExplSpec;
4476
friend class ::WinTypeKeywords;
5017
friend class ::ExtGnu;
4477
5018
friend class ::PragmaOnceUnitState;
4478
5019
friend class ::PragmaOnce;
4479
friend class ::CCExprResolve;
4480
friend class ::CExprResolve;
5020
friend class ::CMatchSyntax;
5022
#line 91 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/OptsParser.h"
5024
int number; /**< Number associated with this option */
5025
const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
5026
const char *longName; /**< Long namen of this option */
5027
const char *desc; /**< Description of this option **/
5028
ArgType argType; /**< Type of argument for this option */
5032
/** Pointer to array of available options. This value is set to the value of the
5033
* parameter passed to the constructor OptsParser::OptsParser()
4490
5035
const Option *m_opts;
4493
OptsParser (int, char **, const Option *);
4494
OptsParser (const string &, const Option *);
5038
/** \brief Constructor of OptsParser
5040
* \param argc Number of parameters to be analyzed
5041
* \param argv Parameters to be analyzed
5042
* \param opts Pointer to array of options which shall be
5043
* recognized by the options parser
5046
OptsParser (int argc, char **argv, const Option *opts);
5048
/** \brief Constructor of OptsParser
5050
* \param line Reference to string with parameters to analyse
5051
* The paramaters are extracted from the string by splitting it up
5057
* \param opts Pointer to array of options which shall be
5058
* recognized by the options parser
5060
OptsParser (const string &line, const Option *);
4496
int getCurrentArgNum () const;
4497
int getNextArgNum () const;
5063
/** Get next parameter without modification.
5064
* No option parsing is done
5066
* \return OptsParser::NOOPTION or OptsParser::FINISH
5068
int getRawOption ();
5070
/** \brief Get next option
5072
* This function processes the next parameter passed to the constructor
5073
* OptsParser::OptsParser().
5074
* That is, search for options and eventually process
5075
* option and option arguement.
5077
* \return Number of option recognized by the options parser or
5078
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
5079
* OptsParser::UNKNOWN or OptsParser::FINISH.
4498
5082
int getOption ();
5084
/** \brief Get result of last processed parameter
5086
* The number returned by this function is identical to the number
5087
* returned by the last call of OptsParser::getOption
5089
* \return Number of option recognized by the options parser or
5090
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
5091
* OptsParser::UNKNOWN or OptsParser::FINISH.
4499
5094
int getResult () const;
5096
/** \brief Get option argument of last processed parameter
5098
* This function returns the argument of the option processed during
5099
* OptsParser::getOption. If the option does not provide any argument
5100
* the string will be empty.
5102
* If OptsParser::getOption or respectively OptsParser::getResult returns with
5103
* OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter,
5104
* which is no option, of course.
5106
* \return Argument of last processed parameter
4501
5108
const string &getArgument () const;
5110
/** \brief Get option name of last processed parameter
5112
* If the last processed parameter did not contain an option the string
5113
* returned by this function is empty.
5115
* \return Name of last processed parameter
4502
5118
const string &getOptionName () const;
5120
/** \brief Get position of current argument
5122
* \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
5125
int getCurrentArgNum () const;
5127
/** \brief Get position of next argument
5129
* \return Position of next parameter which will be processed by the %Options %Parser
5132
int getNextArgNum () const;
4504
bool revokeArgument();
4507
int getShortOption (const string &);
4508
int getLongOption (const string &);
4509
bool processOption (const string &, unsigned int,ArgType argtype);
5135
/** Search for an option in m_argv at position m_curarg
5137
* \param arg Currently processed parameter
5139
const Option* findOption(const string &arg, bool isLong);
5141
/** Process an option found by OptsParser::findOption().
5143
bool processOption (const string &arg, const Option* curOpt, bool isLong);
4513
5147
} // namespace Puma
4515
5149
#endif /* __OptsParser_h__ */
5151
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4516
5152
using namespace std;
4518
5154
namespace Puma {
5158
#line 5159 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
4521
5159
} // closed Puma
5160
class CCExprResolve;
4522
5162
class WinIfExists;
4523
5163
class WinImportHandler;
4524
5164
class WinMacros;
5167
class WinMemberExplSpec;
5168
class WinTypeKeywords;
4528
5171
class ExtACBuilderCoupling;
4529
5172
class ExtACSyntaxCoupling;
4530
5173
class ExtACTree;
4531
5174
class ExtACKeywords;
4534
class WinMemberExplSpec;
4535
class WinTypeKeywords;
4536
5176
class PragmaOnceUnitState;
4537
5177
class PragmaOnce;
4538
class CCExprResolve;
4540
5179
namespace Puma {
4541
class Config { friend class ::WinIfExists;
5181
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
5183
#line 5184 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
5184
friend class ::CCExprResolve;
5185
friend class ::CExprResolve;
5186
friend class ::WinIfExists;
4542
5187
friend class ::WinImportHandler;
4543
5188
friend class ::WinMacros;
4544
friend class ::CMatchSyntax;
4545
friend class ::ExtGnu;
5189
friend class ::WinAsm;
5190
friend class ::WinDeclSpecs;
5191
friend class ::WinMemberExplSpec;
5192
friend class ::WinTypeKeywords;
5193
friend class ::WinFriend;
4546
5194
friend class ::ExtAC;
4547
5195
friend class ::ExtACBuilderCoupling;
4548
5196
friend class ::ExtACSyntaxCoupling;
4549
5197
friend class ::ExtACTree;
4550
5198
friend class ::ExtACKeywords;
4551
friend class ::WinAsm;
4552
friend class ::WinDeclSpecs;
4553
friend class ::WinMemberExplSpec;
4554
friend class ::WinTypeKeywords;
5199
friend class ::ExtGnu;
4555
5200
friend class ::PragmaOnceUnitState;
4556
5201
friend class ::PragmaOnce;
4557
friend class ::CCExprResolve;
4558
friend class ::CExprResolve;
5202
friend class ::CMatchSyntax;
5204
#line 35 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/Config.h"
4561
5207
ErrorStream &_err;
5603
6374
// Preprocessor class to handle includes.
6377
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6379
#line 6380 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6381
#ifndef __ac_fwd_PragmaOnce__
6382
#define __ac_fwd_PragmaOnce__
6385
template <class JoinPoint>
6386
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
6387
template <class JoinPoint>
6388
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
6389
template <class JoinPoint>
6390
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
6391
template <class JoinPoint>
6392
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
6396
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6397
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6400
#ifndef __ac_fwd_WinMacros__
6401
#define __ac_fwd_WinMacros__
6404
template <class JoinPoint>
6405
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
6409
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
6410
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
5606
6413
#ifndef __ac_fwd_WinIfExists__
5607
6414
#define __ac_fwd_WinIfExists__
5608
6415
class WinIfExists;
5610
6417
template <class JoinPoint>
5611
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
6418
__attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
5615
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
5616
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
6422
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
6423
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
5619
6426
#ifndef __ac_fwd_WinImportHandler__
5620
6427
#define __ac_fwd_WinImportHandler__
5621
6428
class WinImportHandler;
5623
template <class JoinPoint, class Binding>
5624
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
5628
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5629
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5632
#ifndef __ac_fwd_PragmaOnce__
5633
#define __ac_fwd_PragmaOnce__
5636
template <class JoinPoint>
5637
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
5638
template <class JoinPoint>
5639
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
5640
template <class JoinPoint, class Binding>
5641
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
5642
template <class JoinPoint>
5643
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
5647
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
5648
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
5651
#ifndef __ac_fwd_WinMacros__
5652
#define __ac_fwd_WinMacros__
5655
template <class JoinPoint, class Binding>
5656
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
5660
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
5661
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
6430
template <class JoinPoint>
6431
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
6435
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
6436
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
6439
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
5663
6440
// This file is part of PUMA.
5664
6441
// Copyright (C) 1999-2003 The PUMA developer team.
5762
6504
} // namespace Puma
5764
6506
#endif /* __stack_h__ */
5765
using namespace Puma;
5771
class WinImportHandler;
5776
class ExtACBuilderCoupling;
5777
class ExtACSyntaxCoupling;
5779
class ExtACKeywords;
5782
class WinMemberExplSpec;
5783
class WinTypeKeywords;
5784
class PragmaOnceUnitState;
5786
class CCExprResolve;
5790
static WinIfExists *aspectof () {
5791
static WinIfExists __instance;
5794
static WinIfExists *aspectOf () {
5798
friend class ::WinImportHandler;
5799
friend class ::WinMacros;
5800
friend class ::CMatchSyntax;
5801
friend class ::ExtGnu;
5802
friend class ::ExtAC;
5803
friend class ::ExtACBuilderCoupling;
5804
friend class ::ExtACSyntaxCoupling;
5805
friend class ::ExtACTree;
5806
friend class ::ExtACKeywords;
5807
friend class ::WinAsm;
5808
friend class ::WinDeclSpecs;
5809
friend class ::WinMemberExplSpec;
5810
friend class ::WinTypeKeywords;
5811
friend class ::PragmaOnceUnitState;
5812
friend class ::PragmaOnce;
5813
friend class ::CCExprResolve;
5814
friend class ::CExprResolve;
5816
/********************************************************/
5817
/* Win __if_exists and __if_not_exists */
5818
/********************************************************/
5820
// pointcut definitions
5823
// structural extensions
5826
// preprocess __if_exists and __if_not_exists statements
5828
public: template<class JoinPoint> void __a0_around (JoinPoint *tjp) {
5829
JoinPoint *&thisJoinPoint = tjp;
5831
typedef typename JoinPoint::That __JP_That;
5832
typedef typename JoinPoint::Target __JP_Target;
5833
typedef typename JoinPoint::Result __JP_Result;
5837
__JP_That *preparser;
5839
preparser = tjp->that ();
5840
tjp->proceed (); // get the next token
5841
token = *tjp->result ();
5843
type = token->type ();
5844
// __if_exists (...) { ... }
5845
if (type == TOK_IF_EXISTS) {
5846
preparser->skip_up_to (TOK_CLOSE_CURLY);
5847
*(Token**)thisJoinPoint->result () = preparser->next ();
5849
// __if_not_exists (...) { ... }
5850
} else if (type == TOK_IF_NOT_EXISTS) {
5851
preparser->skip_up_to (TOK_OPEN_CURLY);
5852
preparser->_depth.push (1);
5853
*(Token**)thisJoinPoint->result () = preparser->next ();
5856
// skip closing `}' of __if_not_exists
5857
if (preparser->_depth.length ()) {
5858
if (type == TOK_OPEN_CURLY)
5859
preparser->_depth.top () = preparser->_depth.top () + 1;
5860
else if (type == TOK_CLOSE_CURLY) {
5861
preparser->_depth.top () = preparser->_depth.top () - 1;
5862
if (preparser->_depth.top () == 0) {
5863
preparser->_depth.pop ();
5864
*(Token**)thisJoinPoint->result () = preparser->next ();
5878
template <class JoinPoint>
5879
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
5880
::WinIfExists::aspectof()->__a0_around (tjp);
5888
// skip __if_exists resp. __if_not_exists statement
5892
#endif /* __WinIfExists__ */
5893
// This file is part of PUMA.
5894
// Copyright (C) 1999-2003 The PUMA developer team.
5896
// This program is free software; you can redistribute it and/or
5897
// modify it under the terms of the GNU General Public License as
5898
// published by the Free Software Foundation; either version 2 of
5899
// the License, or (at your option) any later version.
5901
// This program is distributed in the hope that it will be useful,
5902
// but WITHOUT ANY WARRANTY; without even the implied warranty of
5903
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5904
// GNU General Public License for more details.
5906
// You should have received a copy of the GNU General Public
5907
// License along with this program; if not, write to the Free
5908
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
5909
// MA 02111-1307 USA
5911
#ifndef __WinImportHandler__
5912
#define __WinImportHandler__
5914
/********************************************************/
5915
/* Win #import directive support */
5916
/********************************************************/
5918
using namespace Puma;
5926
class ExtACBuilderCoupling;
5927
class ExtACSyntaxCoupling;
5929
class ExtACKeywords;
5932
class WinMemberExplSpec;
5933
class WinTypeKeywords;
5934
class PragmaOnceUnitState;
5936
class CCExprResolve;
5938
class WinImportHandler {
5940
static WinImportHandler *aspectof () {
5941
static WinImportHandler __instance;
5944
static WinImportHandler *aspectOf () {
5948
friend class ::WinIfExists;
5949
friend class ::WinMacros;
5950
friend class ::CMatchSyntax;
5951
friend class ::ExtGnu;
5952
friend class ::ExtAC;
5953
friend class ::ExtACBuilderCoupling;
5954
friend class ::ExtACSyntaxCoupling;
5955
friend class ::ExtACTree;
5956
friend class ::ExtACKeywords;
5957
friend class ::WinAsm;
5958
friend class ::WinDeclSpecs;
5959
friend class ::WinMemberExplSpec;
5960
friend class ::WinTypeKeywords;
5961
friend class ::PragmaOnceUnitState;
5962
friend class ::PragmaOnce;
5963
friend class ::CCExprResolve;
5964
friend class ::CExprResolve;
5966
/********************************************************/
5967
/* Win #import directive */
5968
/********************************************************/
5973
// add access method for _importHandler data member
5976
// handle --import-handler option
5978
public: template<class JoinPoint> void __a0_before (JoinPoint *tjp, const Config &config, bool process_includes) {
5979
JoinPoint *&thisJoinPoint = tjp;
5981
typedef typename JoinPoint::That __JP_That;
5982
typedef typename JoinPoint::Target __JP_Target;
5983
typedef typename JoinPoint::Result __JP_Result;
5985
const ConfOption *opt;
5988
if (process_includes) {
5989
opt = config.Option ("--import-handler");
5990
if (opt && opt->Arguments ()) {
5991
// delete old import handler
5992
if (thisJoinPoint->that ()->_importHandler)
5993
delete[] thisJoinPoint->that ()->_importHandler;
5995
// get new import handler
5996
tmp = new char[strlen (opt->Argument (0))+1];
5997
strcpy (tmp, opt->Argument (0));
5998
thisJoinPoint->that ()->_importHandler = tmp;
6006
WinImportHandler () {}
6009
template <class JoinPoint, class Binding>
6010
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
6011
typedef typename Binding::template Arg<0> Arg0;
6012
typedef typename Binding::template Arg<1> Arg1;
6013
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
6019
#endif /* __WinImportHandler__ */
6020
// This file is part of PUMA.
6021
// Copyright (C) 1999-2003 The PUMA developer team.
6023
// This program is free software; you can redistribute it and/or
6024
// modify it under the terms of the GNU General Public License as
6025
// published by the Free Software Foundation; either version 2 of
6026
// the License, or (at your option) any later version.
6028
// This program is distributed in the hope that it will be useful,
6029
// but WITHOUT ANY WARRANTY; without even the implied warranty of
6030
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6031
// GNU General Public License for more details.
6033
// You should have received a copy of the GNU General Public
6034
// License along with this program; if not, write to the Free
6035
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
6036
// MA 02111-1307 USA
6038
#ifndef __PragmaOnce__
6039
#define __PragmaOnce__
6041
/********************************************************/
6042
/* Win #pragma once support aspect */
6043
/********************************************************/
6048
using namespace Puma;
6052
class WinImportHandler;
6057
class ExtACBuilderCoupling;
6058
class ExtACSyntaxCoupling;
6060
class ExtACKeywords;
6063
class WinMemberExplSpec;
6064
class WinTypeKeywords;
6065
class PragmaOnceUnitState;
6066
class CCExprResolve;
6070
static PragmaOnce *aspectof () {
6071
static PragmaOnce __instance;
6074
static PragmaOnce *aspectOf () {
6078
friend class ::WinIfExists;
6079
friend class ::WinImportHandler;
6080
friend class ::WinMacros;
6081
friend class ::CMatchSyntax;
6082
friend class ::ExtGnu;
6083
friend class ::ExtAC;
6084
friend class ::ExtACBuilderCoupling;
6085
friend class ::ExtACSyntaxCoupling;
6086
friend class ::ExtACTree;
6087
friend class ::ExtACKeywords;
6088
friend class ::WinAsm;
6089
friend class ::WinDeclSpecs;
6090
friend class ::WinMemberExplSpec;
6091
friend class ::WinTypeKeywords;
6092
friend class ::PragmaOnceUnitState;
6093
friend class ::CCExprResolve;
6094
friend class ::CExprResolve;
6096
/******************************************************/
6097
/* detect #pragma once in the token stream of cpp */
6098
/******************************************************/
6100
// pointcut definitions
6104
// extend the preprocessor parser by the filter state
6107
// initialize the filter state
6109
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
6110
typedef typename JoinPoint::That __JP_That;
6111
typedef typename JoinPoint::Target __JP_Target;
6112
typedef typename JoinPoint::Result __JP_Result;
6114
// TODO: it would be better to have construction advice -> but in lem file
6115
tjp->that ()->_pragma_token = 0;
6120
// filter #pragma once
6122
public: template<class JoinPoint> void __a1_after (JoinPoint *tjp) {
6123
typedef typename JoinPoint::That __JP_That;
6124
typedef typename JoinPoint::Target __JP_Target;
6125
typedef typename JoinPoint::Result __JP_Result;
6127
Token *tok = *tjp->result ();
6128
__JP_That &that = *tjp->that ();
6129
if (!tok || !tok->is_directive ()) {
6130
that._pragma_token = 0;
6133
if (strcmp ("#pragma", tok->text ()) == 0) {
6134
that._pragma_token = tok;
6136
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
6137
Unit *unit = (Unit*)tok->belonging_to ();
6139
unit->state ().onlyOnce (true);
6145
/********************************************************/
6146
/* block the handling of pragma once files */
6147
/********************************************************/
6149
// don't let file includer include files twice
6150
// to be precise: the file is included again, but the inclusion produces
6153
public: template<class JoinPoint> void __a2_around (JoinPoint *tjp, Unit *unit) {
6154
typedef typename JoinPoint::That __JP_That;
6155
typedef typename JoinPoint::Target __JP_Target;
6156
typedef typename JoinPoint::Result __JP_Result;
6158
if (! unit || ! unit->state ().onlyOnce ())
6164
// includeFile shall return 0 if the file was not included
6166
public: template<class JoinPoint> void __a3_after (JoinPoint *tjp) {
6167
typedef typename JoinPoint::That __JP_That;
6168
typedef typename JoinPoint::Target __JP_Target;
6169
typedef typename JoinPoint::Result __JP_Result;
6171
Unit *&unit = *tjp->result ();
6172
if (unit && unit->state ().onlyOnce ())
6179
// this aspect should never be instantiated directly
6183
template <class JoinPoint>
6184
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
6185
::PragmaOnce::aspectof()->__a0_after (tjp);
6187
template <class JoinPoint>
6188
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
6189
::PragmaOnce::aspectof()->__a1_after (tjp);
6191
template <class JoinPoint, class Binding>
6192
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
6193
typedef typename Binding::template Arg<0> Arg0;
6194
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
6196
template <class JoinPoint>
6197
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
6198
::PragmaOnce::aspectof()->__a3_after (tjp);
6204
#endif /* __PragmaOnce__ */
6205
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
6206
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
6207
// This file is part of PUMA.
6208
// Copyright (C) 1999-2003 The PUMA developer team.
6210
// This program is free software; you can redistribute it and/or
6211
// modify it under the terms of the GNU General Public License as
6212
// published by the Free Software Foundation; either version 2 of
6213
// the License, or (at your option) any later version.
6215
// This program is distributed in the hope that it will be useful,
6216
// but WITHOUT ANY WARRANTY; without even the implied warranty of
6217
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6218
// GNU General Public License for more details.
6220
// You should have received a copy of the GNU General Public
6221
// License along with this program; if not, write to the Free
6222
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
6223
// MA 02111-1307 USA
6225
#ifndef __preprocessor_parser__
6226
#define __preprocessor_parser__
6228
// Preprocessor parser class. !!! The preprocessor parser has to
6229
// be added last to the composite parser of a translation unit !!!
6508
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6510
#line 6511 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
6232
6512
#ifndef __ac_fwd_ExtACKeywords__
6233
6513
#define __ac_fwd_ExtACKeywords__
6234
6514
class ExtACKeywords;
6236
template <class JoinPoint, class Binding>
6237
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
6238
template <class JoinPoint, class Binding>
6239
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
6240
template <class JoinPoint>
6241
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
6516
template <class JoinPoint>
6517
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
6518
template <class JoinPoint>
6519
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
6520
template <class JoinPoint>
6521
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
6245
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6246
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6525
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6526
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6529
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/CScanner.h"
6248
6530
// This file is part of PUMA.
6249
6531
// Copyright (C) 1999-2003 The PUMA developer team.
6905
7298
class PreFileIncluder;
6906
7299
class PrePredicateManager;
6910
class WinImportHandler;
6915
class ExtACBuilderCoupling;
6916
class ExtACSyntaxCoupling;
6918
class ExtACKeywords;
6921
class WinMemberExplSpec;
6922
class WinTypeKeywords;
6923
class PragmaOnceUnitState;
6925
class CCExprResolve;
6928
class PreprocessorParser : public PumaTokenSource { friend class ::WinIfExists;
6929
friend class ::WinImportHandler;
6930
friend class ::WinMacros;
6931
friend class ::CMatchSyntax;
6932
friend class ::ExtGnu;
6933
friend class ::ExtAC;
6934
friend class ::ExtACBuilderCoupling;
6935
friend class ::ExtACSyntaxCoupling;
6936
friend class ::ExtACTree;
6937
friend class ::ExtACKeywords;
6938
friend class ::WinAsm;
6939
friend class ::WinDeclSpecs;
6940
friend class ::WinMemberExplSpec;
6941
friend class ::WinTypeKeywords;
6942
friend class ::PragmaOnceUnitState;
6943
friend class ::PragmaOnce;
6944
friend class ::CCExprResolve;
6945
friend class ::CExprResolve;
7302
#line 7303 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7304
class CCExprResolve;
7307
class WinImportHandler;
7311
class WinMemberExplSpec;
7312
class WinTypeKeywords;
7315
class ExtACBuilderCoupling;
7316
class ExtACSyntaxCoupling;
7318
class ExtACKeywords;
7320
class PragmaOnceUnitState;
7325
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7327
#line 7328 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7330
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
7331
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
7333
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7334
// This file is part of PUMA.
7335
// Copyright (C) 1999-2003 The PUMA developer team.
7337
// This program is free software; you can redistribute it and/or
7338
// modify it under the terms of the GNU General Public License as
7339
// published by the Free Software Foundation; either version 2 of
7340
// the License, or (at your option) any later version.
7342
// This program is distributed in the hope that it will be useful,
7343
// but WITHOUT ANY WARRANTY; without even the implied warranty of
7344
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7345
// GNU General Public License for more details.
7347
// You should have received a copy of the GNU General Public
7348
// License along with this program; if not, write to the Free
7349
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
7350
// MA 02111-1307 USA
7352
#ifndef __WinIfExists__
7353
#define __WinIfExists__
7355
/********************************************************/
7356
/* Win __if_exists and __if_not_exists support aspect */
7357
/********************************************************/
7360
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7363
#line 31 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7368
#line 7369 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7369
class CCExprResolve;
7371
class WinImportHandler;
7375
class WinMemberExplSpec;
7376
class WinTypeKeywords;
7379
class ExtACBuilderCoupling;
7380
class ExtACSyntaxCoupling;
7382
class ExtACKeywords;
7384
class PragmaOnceUnitState;
7388
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7390
#line 7391 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7393
static WinIfExists *aspectof () {
7394
static WinIfExists __instance;
7397
static WinIfExists *aspectOf () {
7402
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7404
#line 7405 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7405
friend class ::CCExprResolve;
7406
friend class ::CExprResolve;
7407
friend class ::WinImportHandler;
7408
friend class ::WinMacros;
7409
friend class ::WinAsm;
7410
friend class ::WinDeclSpecs;
7411
friend class ::WinMemberExplSpec;
7412
friend class ::WinTypeKeywords;
7413
friend class ::WinFriend;
7414
friend class ::ExtAC;
7415
friend class ::ExtACBuilderCoupling;
7416
friend class ::ExtACSyntaxCoupling;
7417
friend class ::ExtACTree;
7418
friend class ::ExtACKeywords;
7419
friend class ::ExtGnu;
7420
friend class ::PragmaOnceUnitState;
7421
friend class ::PragmaOnce;
7422
friend class ::CMatchSyntax;
7424
#line 34 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7426
/********************************************************/
7427
/* Win __if_exists and __if_not_exists */
7428
/********************************************************/
7430
// pointcut definitions
7432
#line 40 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7435
// structural extensions
7437
#line 43 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7440
// preprocess __if_exists and __if_not_exists statements
7442
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7444
public: template<class JoinPoint> void __a0_around
7445
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7447
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7449
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7451
#line 7452 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7453
JoinPoint *&thisJoinPoint = tjp;
7455
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7457
#line 7458 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7459
typedef typename JoinPoint::That __JP_That;
7460
typedef typename JoinPoint::Target __JP_Target;
7461
typedef typename JoinPoint::Result __JP_Result;
7463
#line 46 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7468
#line 49 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7471
preparser = tjp->that ();
7472
tjp->proceed (); // get the next token
7473
token = *tjp->result ();
7475
type = token->type ();
7476
// __if_exists (...) { ... }
7477
if (type == Puma::TOK_IF_EXISTS) {
7478
preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
7479
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
7481
// __if_not_exists (...) { ... }
7482
} else if (type == Puma::TOK_IF_NOT_EXISTS) {
7483
preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
7484
preparser->_depth.push (1);
7485
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
7488
// skip closing `}' of __if_not_exists
7489
if (preparser->_depth.length ()) {
7490
if (type == Puma::TOK_OPEN_CURLY)
7491
preparser->_depth.top () = preparser->_depth.top () + 1;
7492
else if (type == Puma::TOK_CLOSE_CURLY) {
7493
preparser->_depth.top () = preparser->_depth.top () - 1;
7494
if (preparser->_depth.top () == 0) {
7495
preparser->_depth.pop ();
7496
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
7503
#line 7504 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7507
#line 82 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7513
#line 7514 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7516
template <class JoinPoint>
7517
__attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
7518
::WinIfExists::aspectof()->__a0_around (tjp);
7522
#line 86 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7527
#line 95 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7530
// skip __if_exists resp. __if_not_exists statement
7532
#line 135 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinIfExists.ah"
7536
#endif /* __WinIfExists__ */
7538
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7542
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7544
#line 7545 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7547
#ifndef __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7548
#define __ac_guard__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7550
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7551
// This file is part of PUMA.
7552
// Copyright (C) 1999-2003 The PUMA developer team.
7554
// This program is free software; you can redistribute it and/or
7555
// modify it under the terms of the GNU General Public License as
7556
// published by the Free Software Foundation; either version 2 of
7557
// the License, or (at your option) any later version.
7559
// This program is distributed in the hope that it will be useful,
7560
// but WITHOUT ANY WARRANTY; without even the implied warranty of
7561
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7562
// GNU General Public License for more details.
7564
// You should have received a copy of the GNU General Public
7565
// License along with this program; if not, write to the Free
7566
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
7567
// MA 02111-1307 USA
7569
#ifndef __PragmaOnce__
7570
#define __PragmaOnce__
7572
/********************************************************/
7573
/* Win #pragma once support aspect */
7574
/********************************************************/
7577
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7579
#line 7580 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7580
class CCExprResolve;
7583
class WinImportHandler;
7587
class WinMemberExplSpec;
7588
class WinTypeKeywords;
7591
class ExtACBuilderCoupling;
7592
class ExtACSyntaxCoupling;
7594
class ExtACKeywords;
7596
class PragmaOnceUnitState;
7599
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7601
#line 7602 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7604
static PragmaOnce *aspectof () {
7605
static PragmaOnce __instance;
7608
static PragmaOnce *aspectOf () {
7613
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7615
#line 7616 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7616
friend class ::CCExprResolve;
7617
friend class ::CExprResolve;
7618
friend class ::WinIfExists;
7619
friend class ::WinImportHandler;
7620
friend class ::WinMacros;
7621
friend class ::WinAsm;
7622
friend class ::WinDeclSpecs;
7623
friend class ::WinMemberExplSpec;
7624
friend class ::WinTypeKeywords;
7625
friend class ::WinFriend;
7626
friend class ::ExtAC;
7627
friend class ::ExtACBuilderCoupling;
7628
friend class ::ExtACSyntaxCoupling;
7629
friend class ::ExtACTree;
7630
friend class ::ExtACKeywords;
7631
friend class ::ExtGnu;
7632
friend class ::PragmaOnceUnitState;
7633
friend class ::CMatchSyntax;
7635
#line 32 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7637
/******************************************************/
7638
/* detect #pragma once in the token stream of cpp */
7639
/******************************************************/
7641
// pointcut definitions
7643
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7646
#line 39 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7649
// extend the preprocessor parser by the filter state
7651
#line 42 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7654
// initialize the filter state
7656
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7658
public: template<class JoinPoint> void __a0_after
7659
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7661
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7663
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7665
#line 7666 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7667
typedef typename JoinPoint::That __JP_That;
7668
typedef typename JoinPoint::Target __JP_Target;
7669
typedef typename JoinPoint::Result __JP_Result;
7671
#line 45 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7673
// TODO: it would be better to have construction advice -> but in lem file
7674
tjp->that ()->_pragma_token = 0;
7676
#line 7677 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7680
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7683
// filter #pragma once
7685
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7687
public: template<class JoinPoint> void __a1_after
7688
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7690
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7692
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7694
#line 7695 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7696
typedef typename JoinPoint::That __JP_That;
7697
typedef typename JoinPoint::Target __JP_Target;
7698
typedef typename JoinPoint::Result __JP_Result;
7700
#line 51 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7702
Puma::Token *tok = *tjp->result ();
7704
#line 53 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7705
&that = *tjp->that ();
7706
if (!tok || !tok->is_directive ()) {
7707
that._pragma_token = 0;
7710
if (strcmp ("#pragma", tok->text ()) == 0) {
7711
that._pragma_token = tok;
7713
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
7714
Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
7716
unit->state ().onlyOnce (true);
7719
#line 7720 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7723
#line 66 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7726
/********************************************************/
7727
/* block the handling of pragma once files */
7728
/********************************************************/
7730
// don't let file includer include files twice
7731
// to be precise: the file is included again, but the inclusion produces
7734
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7736
public: template<class JoinPoint> void __a2_around
7737
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7739
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7740
(JoinPoint *tjp, Puma::Unit *unit)
7741
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7743
#line 7744 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7745
typedef typename JoinPoint::That __JP_That;
7746
typedef typename JoinPoint::Target __JP_Target;
7747
typedef typename JoinPoint::Result __JP_Result;
7749
#line 77 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7751
if (! unit || ! unit->state ().onlyOnce ())
7754
#line 7755 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7758
#line 80 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7761
// includeFile shall return 0 if the file was not included
7763
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7765
public: template<class JoinPoint> void __a3_after
7766
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7768
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7770
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7772
#line 7773 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7774
typedef typename JoinPoint::That __JP_That;
7775
typedef typename JoinPoint::Target __JP_Target;
7776
typedef typename JoinPoint::Result __JP_Result;
7778
#line 84 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7780
Puma::Unit *&unit = *tjp->result ();
7781
if (unit && unit->state ().onlyOnce ())
7783
tjp->that ()->_guarded = true;
7785
#line 7786 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7789
#line 89 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7793
// this aspect should never be instantiated directly
7796
#line 7797 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7799
template <class JoinPoint>
7800
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
7801
::PragmaOnce::aspectof()->__a0_after (tjp);
7803
template <class JoinPoint>
7804
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
7805
::PragmaOnce::aspectof()->__a1_after (tjp);
7807
template <class JoinPoint>
7808
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
7809
typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
7810
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
7812
template <class JoinPoint>
7813
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
7814
::PragmaOnce::aspectof()->__a3_after (tjp);
7818
#line 94 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7822
#endif /* __PragmaOnce__ */
7824
#line 8 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7828
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7829
class PreprocessorParser : public PumaTokenSource {
7830
#line 7831 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
7831
friend class ::CCExprResolve;
7832
friend class ::CExprResolve;
7833
friend class ::WinIfExists;
7834
friend class ::WinImportHandler;
7835
friend class ::WinMacros;
7836
friend class ::WinAsm;
7837
friend class ::WinDeclSpecs;
7838
friend class ::WinMemberExplSpec;
7839
friend class ::WinTypeKeywords;
7840
friend class ::WinFriend;
7841
friend class ::ExtAC;
7842
friend class ::ExtACBuilderCoupling;
7843
friend class ::ExtACSyntaxCoupling;
7844
friend class ::ExtACTree;
7845
friend class ::ExtACKeywords;
7846
friend class ::ExtGnu;
7847
friend class ::PragmaOnceUnitState;
7848
friend class ::PragmaOnce;
7849
friend class ::CMatchSyntax;
7851
#line 48 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6948
7854
// The current mode for token preprocessing
7200
8138
#endif /* __pre_file_includer__ */
8140
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
8142
#line 8143 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8144
#ifndef __ac_fwd_PragmaOnce__
8145
#define __ac_fwd_PragmaOnce__
8148
template <class JoinPoint>
8149
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
8150
template <class JoinPoint>
8151
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
8152
template <class JoinPoint>
8153
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
8154
template <class JoinPoint>
8155
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
8159
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8160
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
8163
#ifndef __ac_fwd_WinMacros__
8164
#define __ac_fwd_WinMacros__
8167
template <class JoinPoint>
8168
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
8172
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
8173
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
7202
8176
#ifndef __ac_fwd_WinIfExists__
7203
8177
#define __ac_fwd_WinIfExists__
7204
8178
class WinIfExists;
7206
8180
template <class JoinPoint>
7207
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
8181
__attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
7211
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
7212
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
8185
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
8186
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
7215
8189
#ifndef __ac_fwd_WinImportHandler__
7216
8190
#define __ac_fwd_WinImportHandler__
7217
8191
class WinImportHandler;
7219
template <class JoinPoint, class Binding>
7220
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
7224
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
7225
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
7228
#ifndef __ac_fwd_PragmaOnce__
7229
#define __ac_fwd_PragmaOnce__
7232
template <class JoinPoint>
7233
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
7234
template <class JoinPoint>
7235
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
7236
template <class JoinPoint, class Binding>
7237
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
7238
template <class JoinPoint>
7239
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
7243
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7244
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7247
#ifndef __ac_fwd_WinMacros__
7248
#define __ac_fwd_WinMacros__
7251
template <class JoinPoint, class Binding>
7252
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
7256
#ifndef __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
7257
#define __ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
7259
#ifndef __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7260
#define __ac_guard__tmp_AOP_LIN_AOP_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
8193
template <class JoinPoint>
8194
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
8198
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8199
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8202
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7261
8203
// This file is part of PUMA.
7262
8204
// Copyright (C) 1999-2003 The PUMA developer team.
8074
9060
} // namespace Puma
8076
#ifdef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
8077
/*** begin of aspect includes ***/
8078
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__)
8079
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
8081
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
8082
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
8084
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__)
8085
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
9062
#line 9063 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9064
#ifdef __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__
9065
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9066
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9067
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9068
#include "CCExprResolveCC.ah"
9070
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9071
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9072
#include "ExtACTree.ah"
9074
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
9075
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
9076
#include "ExtGnu.ah"
9079
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9080
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9081
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9082
#include "CCExprResolveH.ah"
9085
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9086
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9087
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9088
#include "CExprResolveCC.ah"
9090
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9091
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9092
#include "ExtACTree.ah"
9094
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
9095
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
9096
#include "ExtGnu.ah"
9099
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9100
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9101
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9102
#include "CExprResolveH.ah"
9105
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
9106
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
9107
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinIfExists_ah__
9109
#line 47 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
9112
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9113
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9114
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9116
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9117
// This file is part of PUMA.
9118
// Copyright (C) 1999-2003 The PUMA developer team.
9120
// This program is free software; you can redistribute it and/or
9121
// modify it under the terms of the GNU General Public License as
9122
// published by the Free Software Foundation; either version 2 of
9123
// the License, or (at your option) any later version.
9125
// This program is distributed in the hope that it will be useful,
9126
// but WITHOUT ANY WARRANTY; without even the implied warranty of
9127
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9128
// GNU General Public License for more details.
9130
// You should have received a copy of the GNU General Public
9131
// License along with this program; if not, write to the Free
9132
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
9133
// MA 02111-1307 USA
9135
#ifndef __WinImportHandler__
9136
#define __WinImportHandler__
9138
/********************************************************/
9139
/* Win #import directive support */
9140
/********************************************************/
9143
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9145
#line 9146 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9146
class CCExprResolve;
9152
class WinMemberExplSpec;
9153
class WinTypeKeywords;
9156
class ExtACBuilderCoupling;
9157
class ExtACSyntaxCoupling;
9159
class ExtACKeywords;
9161
class PragmaOnceUnitState;
9165
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9166
class WinImportHandler {
9167
#line 9168 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9170
static WinImportHandler *aspectof () {
9171
static WinImportHandler __instance;
9174
static WinImportHandler *aspectOf () {
9179
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9181
#line 9182 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9182
friend class ::CCExprResolve;
9183
friend class ::CExprResolve;
9184
friend class ::WinIfExists;
9185
friend class ::WinMacros;
9186
friend class ::WinAsm;
9187
friend class ::WinDeclSpecs;
9188
friend class ::WinMemberExplSpec;
9189
friend class ::WinTypeKeywords;
9190
friend class ::WinFriend;
9191
friend class ::ExtAC;
9192
friend class ::ExtACBuilderCoupling;
9193
friend class ::ExtACSyntaxCoupling;
9194
friend class ::ExtACTree;
9195
friend class ::ExtACKeywords;
9196
friend class ::ExtGnu;
9197
friend class ::PragmaOnceUnitState;
9198
friend class ::PragmaOnce;
9199
friend class ::CMatchSyntax;
9201
#line 30 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9203
/********************************************************/
9204
/* Win #import directive */
9205
/********************************************************/
9209
#line 36 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9212
// handle --import-handler option
9214
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9216
public: template<class JoinPoint> void __a0_before
9217
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9219
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9220
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
9221
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9223
#line 9224 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9225
JoinPoint *&thisJoinPoint = tjp;
9227
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9229
#line 9230 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9231
typedef typename JoinPoint::That __JP_That;
9232
typedef typename JoinPoint::Target __JP_Target;
9233
typedef typename JoinPoint::Result __JP_Result;
9235
#line 41 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9237
const Puma::ConfOption *opt;
9240
if (process_includes) {
9241
opt = config.Option ("--import-handler");
9242
if (opt && opt->Arguments ()) {
9243
// delete old import handler
9244
if (thisJoinPoint->that ()->_importHandler)
9245
delete[] thisJoinPoint->that ()->_importHandler;
9247
// get new import handler
9248
tmp = new char[strlen (opt->Argument (0))+1];
9249
strcpy (tmp, opt->Argument (0));
9250
thisJoinPoint->that ()->_importHandler = tmp;
9254
#line 9255 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9258
#line 58 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9262
WinImportHandler () {}
9264
#line 9265 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9267
template <class JoinPoint>
9268
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
9269
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
9270
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
9271
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
9275
#line 62 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9279
#endif /* __WinImportHandler__ */
9281
#line 53 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
9284
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
9285
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
9286
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMacros_ah__
9288
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
8086
9289
// This file is part of PUMA.
8087
9290
// Copyright (C) 1999-2003 The PUMA developer team.
8180
9412
thisJoinPoint->that ()->defMacro ("__noop", " ");
8182
9414
// function-like macros
8183
PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
9415
Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
8184
9416
args->append ("__arg0");
8185
9417
thisJoinPoint->that ()->macroManager ()->addMacro (
8186
new PreMacro ("__declspec", args, " "));
9418
new Puma::PreMacro ("__declspec", args, " "));
9421
#line 9422 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9425
#line 54 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
8193
9429
WinMacros () {}
9431
#line 9432 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
8196
template <class JoinPoint, class Binding>
8197
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
8198
typedef typename Binding::template Arg<0> Arg0;
9434
template <class JoinPoint>
9435
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
9436
typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
8199
9437
::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
9441
#line 58 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/WinMacros.ah"
8205
9445
#endif /* __WinMacros__ */
8207
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
8208
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
8209
#include "CMatchSyntax.ah"
8211
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__)
8212
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__
8213
#include "ExtGnu.ah"
8215
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__)
8216
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__
9447
#line 59 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
9449
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9450
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9452
#line 63 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
9455
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
9456
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
9457
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinAsm_ah__
9458
#include "WinAsm.ah"
9460
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9461
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9462
#include "ExtACTree.ah"
9465
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9466
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9467
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9468
#include "WinDeclSpecs.ah"
9471
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9472
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9473
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9474
#include "WinMemberExplSpec.ah"
9477
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9478
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9479
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9480
#include "WinTypeKeywords.ah"
9483
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
9484
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
9485
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_WinFriend_ah__
9486
#include "WinFriend.ah"
9489
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
9490
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
9491
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtAC_ah__
8217
9492
#include "ExtAC.ah"
8219
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
8220
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9494
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9495
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9496
#include "ExtACTree.ah"
9498
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9499
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9500
#include "ExtACKeywords.ah"
9502
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
9503
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
9504
#include "ExtGnu.ah"
9506
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9507
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9508
#include "PragmaOnceUnitState.ah"
9510
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
9511
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
9512
#include "CMatchSyntax.ah"
9515
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9516
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9517
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
8221
9518
#include "ExtACBuilderH.ah"
8223
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
8224
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9521
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9522
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9523
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
8225
9524
#include "ExtACBuilderCC.ah"
8227
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
8228
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9526
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9527
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9528
#include "ExtACTree.ah"
9531
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9532
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9533
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
8229
9534
#include "ExtACSyntaxH.ah"
8231
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
8232
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9537
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9538
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9539
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
8233
9540
#include "ExtACSyntaxCC.ah"
8235
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__)
8236
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__
9543
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9544
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
9545
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
8237
9546
#include "ExtACTree.ah"
8239
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
8240
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9549
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9550
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9551
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9553
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
8241
9554
// This file is part of PUMA.
8242
9555
// Copyright (C) 1999-2003 The PUMA developer team.
8760
10139
} // namespace Puma
8762
10141
#endif /* __path_manager__ */
10143
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10145
#line 10146 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
10147
#ifndef __ac_fwd_PragmaOnceUnitState__
10148
#define __ac_fwd_PragmaOnceUnitState__
10149
class PragmaOnceUnitState;
10151
template <class JoinPoint>
10152
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
10153
template <class JoinPoint>
10154
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
10158
#ifndef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
10159
#define __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
10162
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10163
// This file is part of PUMA.
10164
// Copyright (C) 1999-2003 The PUMA developer team.
10166
// This program is free software; you can redistribute it and/or
10167
// modify it under the terms of the GNU General Public License as
10168
// published by the Free Software Foundation; either version 2 of
10169
// the License, or (at your option) any later version.
10171
// This program is distributed in the hope that it will be useful,
10172
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10173
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10174
// GNU General Public License for more details.
10176
// You should have received a copy of the GNU General Public
10177
// License along with this program; if not, write to the Free
10178
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
10179
// MA 02111-1307 USA
10181
#ifndef __UnitManager__
10182
#define __UnitManager__
10184
// Class UnitManager helps you to have control of all units built.
10186
#include <iostream>
10190
using namespace std;
10191
#include "Puma/ErrorStream.h"
10201
#line 10202 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
10203
class CCExprResolve;
10204
class CExprResolve;
10206
class WinImportHandler;
10209
class WinDeclSpecs;
10210
class WinMemberExplSpec;
10211
class WinTypeKeywords;
10214
class ExtACBuilderCoupling;
10215
class ExtACSyntaxCoupling;
10217
class ExtACKeywords;
10219
class PragmaOnceUnitState;
10221
class CMatchSyntax;
10224
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10225
class UnitManager {
10226
#line 10227 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
10227
friend class ::CCExprResolve;
10228
friend class ::CExprResolve;
10229
friend class ::WinIfExists;
10230
friend class ::WinImportHandler;
10231
friend class ::WinMacros;
10232
friend class ::WinAsm;
10233
friend class ::WinDeclSpecs;
10234
friend class ::WinMemberExplSpec;
10235
friend class ::WinTypeKeywords;
10236
friend class ::WinFriend;
10237
friend class ::ExtAC;
10238
friend class ::ExtACBuilderCoupling;
10239
friend class ::ExtACSyntaxCoupling;
10240
friend class ::ExtACTree;
10241
friend class ::ExtACKeywords;
10242
friend class ::ExtGnu;
10243
friend class ::PragmaOnceUnitState;
10244
friend class ::PragmaOnce;
10245
friend class ::CMatchSyntax;
10247
#line 38 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10250
typedef map<string, Unit*> UMap;
10252
ErrorStream *_err; // For error messages.
10253
list<Unit*> _nonames; // Noname units list.
10254
mutable UMap _umap; // Named units, map supports fast lookup by name
10255
typedef UMap::value_type UMapPair;
10256
Tokenizer *_tokenizer; // File scanner.
10259
UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
10261
// Destructor: Delete all units.
10262
virtual ~UnitManager ();
10264
// Get the unit hash table.
10265
UMap &getTable () const { return _umap; }
10266
typedef UMap::iterator UMapIter;
10268
// Get/Set the file scanner that is used by newUnit
10269
Tokenizer *tokenizer () const { return _tokenizer; }
10270
void tokenizer (Tokenizer *t) { _tokenizer = t; }
10272
// Add a unit to manager.
10273
void addUnit (Unit *unit);
10275
// Remove (and destroy) a unit from hash table. If the name
10276
// is NULL remove all (but not the nonames).
10277
void removeUnit (const char *name = (const char*) 0, bool = false,
10278
bool destroy = true) const;
10280
// Empty a unit. Don't remove from hash table.
10281
// Preserve the last save location information.
10282
void closeUnit (const char *name = (const char*) 0, bool = false) const;
10284
// Build and add a new unit.
10285
Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
10287
// Get a unit by name.
10288
Unit *getUnit (const char *name, bool = false) const;
10290
// Print given unit to the given outstream. If no
10291
// name is given, print all units.
10292
void print (const char *name = (const char*) 0, bool = false,
10293
ostream &out = cout) const;
10295
// Destroy all noname units.
10296
void removeNonames ();
10298
// Initialize the unit manager and the managed
10299
// units for the next parse process.
10301
#line 10302 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
10302
public: __attribute__((always_inline)) inline void __exec_old_init();
10304
#line 90 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10309
} // namespace Puma
10311
#endif /* __UnitManager__ */
10313
#line 1 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/inc/Puma/SaveMode.h"
8763
10314
// This file is part of PUMA.
8764
10315
// Copyright (C) 1999-2003 The PUMA developer team.
9407
public: template<class JoinPoint> void __a2_before (JoinPoint *tjp) {
11071
#line 3 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11073
public: template<class JoinPoint> void __a2_before
11074
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11076
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11078
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11080
#line 11081 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9408
11082
typedef typename JoinPoint::That __JP_That;
9409
11083
typedef typename JoinPoint::Target __JP_Target;
9410
11084
typedef typename JoinPoint::Result __JP_Result;
11086
#line 67 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9412
11088
_project = tjp->that ();
11091
#line 11092 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step2/src/PreFileIncluder.cc"
9415
11093
namespace AC {
9416
template <class JoinPoint, class Binding>
9417
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
9418
typedef typename Binding::template Arg<0> Arg0;
11094
template <class JoinPoint>
11095
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
11096
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
9419
11097
::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
9421
template <class JoinPoint, class Binding>
9422
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
9423
typedef typename Binding::template Arg<0> Arg0;
11099
template <class JoinPoint>
11100
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
11101
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
9424
11102
::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
9426
11104
template <class JoinPoint>
9427
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
11105
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
9428
11106
::ExtACKeywords::aspectof()->__a2_before (tjp);
11110
#line 70 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9433
11113
#endif /* __ext_ac_keywords_ah__ */
9435
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
9436
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11115
#line 163 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
11117
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11118
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11119
#include "PragmaOnceUnitState.ah"
11122
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
11123
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
11124
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
11125
#include "ExtACTree.ah"
11127
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
11128
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnu_ah__
11129
#include "ExtGnu.ah"
11132
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
11133
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
11134
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtACTree_ah__
11135
#include "ExtACTree.ah"
11137
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
11138
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
11139
#include "ExtGnuCSemDeclSpecs.ah"
11142
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11143
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11144
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11145
#include "PragmaOnceUnitState.ah"
11148
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11149
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11150
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11151
#include "PragmaOnceUnitState.ah"
11153
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11154
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11156
#line 203 "/tmp/tmp.KxXqa14641/aspectc++.svn20080409/Puma/gen-release/step1/src/PreFileIncluder.cc"
11159
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11160
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11161
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_TraceSyntax_ah__
9437
11162
#include "TraceSyntax.ah"
9439
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__)
9440
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__
9441
#include "WinAsm.ah"
9443
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
9444
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9445
#include "WinDeclSpecs.ah"
9447
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
9448
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9449
#include "WinMemberExplSpec.ah"
9451
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
9452
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9453
#include "WinTypeKeywords.ah"
9455
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
9456
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9458
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
9459
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
9461
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
9462
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9463
#include "CCExprResolveH.ah"
9465
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
9466
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9467
#include "CCExprResolveCC.ah"
9469
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
9470
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9471
#include "CExprResolveH.ah"
9473
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
9474
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9475
#include "CExprResolveCC.ah"
9477
/*** end of aspect includes ***/
9478
#undef __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
9479
#undef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
9480
#endif // __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_src_PreFileIncluder_cc__
11165
#ifdef __ac_need__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11166
#ifndef __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11167
#define __ac_have__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11168
#include "CMatchSyntax.ah"
11171
#undef __ac_FIRST__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1__
11172
#undef __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__
11173
#endif // __ac_FIRST_FILE__tmp_tmp_KxXqa14641_aspectc4343_svn20080409_Puma_gen45release_step1_src_PreFileIncluder_cc__