142
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
145
class WinImportHandler;
150
class ExtACBuilderCoupling;
151
class ExtACSyntaxCoupling;
156
class WinMemberExplSpec;
157
class WinTypeKeywords;
158
class PragmaOnceUnitState;
164
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
165
157
template <class Item>
167
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
168
friend class ::WinIfExists;
169
friend class ::WinImportHandler;
170
friend class ::WinMacros;
171
friend class ::CMatchSyntax;
172
friend class ::ExtGnu;
173
friend class ::ExtAC;
174
friend class ::ExtACBuilderCoupling;
175
friend class ::ExtACSyntaxCoupling;
176
friend class ::ExtACTree;
177
friend class ::ExtACKeywords;
178
friend class ::WinAsm;
179
friend class ::WinDeclSpecs;
180
friend class ::WinMemberExplSpec;
181
friend class ::WinTypeKeywords;
182
friend class ::PragmaOnceUnitState;
183
friend class ::PragmaOnce;
184
friend class ::CCExprResolve;
185
friend class ::CExprResolve;
187
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
190
static const long default_init_size = 5;
191
static const long default_increment = 5;
194
Array (long is = default_init_size, long incr = default_increment);
195
Array (const Array<Item>& array);
196
Array<Item>& operator =(const Array<Item>&);
198
void append (const Item& item);
199
void insert (long index, const Item& item);
200
void prepend (const Item& item);
201
void remove (long index);
203
Item& get (long index);
204
Item& operator[] (long index);
205
Item fetch (long index) const;
206
Item& lookup (long index) const;
207
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;
215
void check (long wanted);
218
template <class Item>
219
inline Array<Item>::Array (long is, long incr)
224
data = new Item[size];
227
template <class Item>
228
Array<Item>::Array (const Array<Item>& array)
232
data = new Item[size];
233
increment = array.increment;
235
for (int pos = 0; pos < array.length (); pos++)
236
append (array.lookup (pos));
239
template <class Item>
240
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
246
data = new Item[size];
247
increment = array.increment;
249
for (int pos = 0; pos < array.length (); pos++)
250
append (array.lookup (pos));
254
template <class Item>
255
Array<Item>::~Array ()
261
template <class Item>
262
inline void Array<Item>::check (long wanted)
268
while (wanted >= size)
273
new_data = new Item[size];
274
for (int pos = 0; pos < count; pos++)
275
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];
281
255
template <class Item>
282
inline void Array<Item>::append (const Item& item)
285
data[count++] = item;
288
template <class Item>
289
void Array<Item>::prepend (const Item& item)
294
template <class Item>
295
void Array<Item>::insert (long index, const Item& item)
298
for (int pos = count; pos > index; pos--)
299
data[pos] = data[pos - 1];
304
template <class Item>
305
inline Item& Array<Item>::get (long index)
313
template <class Item>
314
inline Item& Array<Item>::operator[] (long index)
319
template <class Item>
320
inline Item Array<Item>::fetch (long index) const
322
assert(index < count);
326
template <class Item>
327
inline long Array<Item>::length () const
332
template <class Item>
333
inline void Array<Item>::remove (long index)
335
if (index < count && count > 0)
337
for (int pos = index; pos < count - 1; pos++)
338
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];
345
316
inline void Array<int>::reset () {
350
321
template <class Item>
351
void Array<Item>::reset ()
356
size = default_init_size;
357
increment = default_increment;
358
data = new Item[size];
322
void Array<Item>::reset () {
327
size = default_init_size;
328
increment = default_increment;
329
data = new Item[size];
361
332
template <class Item>
362
inline Item& Array<Item>::lookup (long index) const
364
assert(index >= 0 && index < count);
365
// if (index >= count) index = count - 1;
366
// if (index < 0) index = 0;
333
inline Item& Array<Item>::lookup (long index) const {
334
assert(index >= 0 && index < count);
371
339
} // namespace Puma
854
889
// pointcut definitions
856
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
891
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
860
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
895
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
863
898
// initialize new state flag
865
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
900
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
867
902
public: template<class JoinPoint> void __a0_after
868
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
903
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
870
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
905
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
872
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
907
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
874
#line 875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
909
#line 910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
876
911
JoinPoint *&thisJoinPoint = tjp;
878
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
913
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
880
#line 881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
915
#line 916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
882
917
typedef typename JoinPoint::That __JP_That;
883
918
typedef typename JoinPoint::Target __JP_Target;
884
919
typedef typename JoinPoint::Result __JP_Result;
886
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
921
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
888
923
thisJoinPoint->that ()->_once = false;
890
#line 891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
894
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
925
#line 926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
929
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
932
// initialize new flag for all managed units
934
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
936
public: template<class JoinPoint> void __a1_after
937
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
939
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
941
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
943
#line 944 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
963
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
898
967
// this aspect should never be instantiated directly
899
968
PragmaOnceUnitState () {}
901
#line 902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
970
#line 971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
904
973
template <class JoinPoint>
905
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
974
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
906
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);
910
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
983
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
914
987
#endif /* __PragmaOnceUnitState__ */
916
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
917
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
918
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
920
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
921
// This file is part of PUMA.
922
// Copyright (C) 1999-2003 The PUMA developer team.
924
// This program is free software; you can redistribute it and/or
925
// modify it under the terms of the GNU General Public License as
926
// published by the Free Software Foundation; either version 2 of
927
// the License, or (at your option) any later version.
929
// This program is distributed in the hope that it will be useful,
930
// but WITHOUT ANY WARRANTY; without even the implied warranty of
931
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
932
// GNU General Public License for more details.
934
// You should have received a copy of the GNU General Public
935
// License along with this program; if not, write to the Free
936
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
939
#ifndef __UnitState__
940
#define __UnitState__
942
// The state of a unit:
943
// 1. modified by manipulations and not updated at the class registry
944
// 2. modified by manipulations and updated at the class registry
945
// 3. unmodified by manipulations and not updated at the class registry
946
// 4. unmodified by manipulations and updated at the class registry
952
#line 953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
955
class WinImportHandler;
960
class ExtACBuilderCoupling;
961
class ExtACSyntaxCoupling;
966
class WinMemberExplSpec;
967
class WinTypeKeywords;
968
class PragmaOnceUnitState;
974
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
989
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
993
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
975
994
class UnitState {
976
#line 977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
995
#line 996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
996
friend class ::CCExprResolve;
997
friend class ::CExprResolve;
977
998
friend class ::WinIfExists;
978
999
friend class ::WinImportHandler;
979
1000
friend class ::WinMacros;
980
friend class ::CMatchSyntax;
981
friend class ::ExtGnu;
1001
friend class ::WinAsm;
1002
friend class ::WinDeclSpecs;
1003
friend class ::WinMemberExplSpec;
1004
friend class ::WinTypeKeywords;
1005
friend class ::WinFriend;
982
1006
friend class ::ExtAC;
983
1007
friend class ::ExtACBuilderCoupling;
984
1008
friend class ::ExtACSyntaxCoupling;
985
1009
friend class ::ExtACTree;
986
1010
friend class ::ExtACKeywords;
987
friend class ::WinAsm;
988
friend class ::WinDeclSpecs;
989
friend class ::WinMemberExplSpec;
990
friend class ::WinTypeKeywords;
1011
friend class ::ExtGnu;
991
1012
friend class ::PragmaOnceUnitState;
992
1013
friend class ::PragmaOnce;
993
friend class ::CCExprResolve;
994
friend class ::CExprResolve;
1014
friend class ::CMatchSyntax;
996
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
1016
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2448
2465
#endif /* __filename_h__ */
2450
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2467
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2451
2468
namespace Puma {
2455
#line 2456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
2472
#line 2473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
2456
2473
} // closed Puma
2474
class CCExprResolve;
2457
2476
class WinIfExists;
2458
2477
class WinImportHandler;
2459
2478
class WinMacros;
2481
class WinMemberExplSpec;
2482
class WinTypeKeywords;
2463
2485
class ExtACBuilderCoupling;
2464
2486
class ExtACSyntaxCoupling;
2465
2487
class ExtACTree;
2466
2488
class ExtACKeywords;
2469
class WinMemberExplSpec;
2470
class WinTypeKeywords;
2471
2490
class PragmaOnceUnitState;
2472
2491
class PragmaOnce;
2473
class CCExprResolve;
2475
2493
namespace Puma {
2477
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2478
class LocationInfo : public RefCnt {
2479
#line 2480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
2495
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2497
#line 2498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
2498
friend class ::CCExprResolve;
2499
friend class ::CExprResolve;
2480
2500
friend class ::WinIfExists;
2481
2501
friend class ::WinImportHandler;
2482
2502
friend class ::WinMacros;
2483
friend class ::CMatchSyntax;
2484
friend class ::ExtGnu;
2503
friend class ::WinAsm;
2504
friend class ::WinDeclSpecs;
2505
friend class ::WinMemberExplSpec;
2506
friend class ::WinTypeKeywords;
2507
friend class ::WinFriend;
2485
2508
friend class ::ExtAC;
2486
2509
friend class ::ExtACBuilderCoupling;
2487
2510
friend class ::ExtACSyntaxCoupling;
2488
2511
friend class ::ExtACTree;
2489
2512
friend class ::ExtACKeywords;
2490
friend class ::WinAsm;
2491
friend class ::WinDeclSpecs;
2492
friend class ::WinMemberExplSpec;
2493
friend class ::WinTypeKeywords;
2513
friend class ::ExtGnu;
2494
2514
friend class ::PragmaOnceUnitState;
2495
2515
friend class ::PragmaOnce;
2496
friend class ::CCExprResolve;
2497
friend class ::CExprResolve;
2516
friend class ::CMatchSyntax;
2499
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2518
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2501
2520
Filename _filename;
2505
LocationInfo () : _filename (), _line (0) {}
2506
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) {
2507
2532
const Filename &filename () const { return _filename; }
2508
2533
int line () const { return _line; }
2509
bool operator < (const LocationInfo &l) const;
2510
bool operator == (const LocationInfo &l) const;
2516
#endif /* __location_info_h__ */
2518
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2523
#line 2524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
2526
class WinImportHandler;
2531
class ExtACBuilderCoupling;
2532
class ExtACSyntaxCoupling;
2534
class ExtACKeywords;
2537
class WinMemberExplSpec;
2538
class WinTypeKeywords;
2539
class PragmaOnceUnitState;
2541
class CCExprResolve;
2545
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2546
class Location : public SmartPtr, public Printable {
2547
#line 2548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
2548
friend class ::WinIfExists;
2549
friend class ::WinImportHandler;
2550
friend class ::WinMacros;
2551
friend class ::CMatchSyntax;
2552
friend class ::ExtGnu;
2553
friend class ::ExtAC;
2554
friend class ::ExtACBuilderCoupling;
2555
friend class ::ExtACSyntaxCoupling;
2556
friend class ::ExtACTree;
2557
friend class ::ExtACKeywords;
2558
friend class ::WinAsm;
2559
friend class ::WinDeclSpecs;
2560
friend class ::WinMemberExplSpec;
2561
friend class ::WinTypeKeywords;
2562
friend class ::PragmaOnceUnitState;
2563
friend class ::PragmaOnce;
2564
friend class ::CCExprResolve;
2565
friend class ::CExprResolve;
2567
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2569
LocationInfo *info () const { return (LocationInfo*)data (); }
2573
Location (Filename f, int l) { setup (f, l); }
2574
Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2575
LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2576
void setup (Filename f, int l);
2577
const Filename &filename () const { return info ()->filename (); }
2579
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 ();
2580
2539
bool operator != (const Location &l) const { return ! (*this == l); }
2581
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 ();
2583
virtual void print (ostream &os) const {
2548
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2585
2549
#ifdef VISUAL_STUDIO
2586
os << filename () << "(" << line () << ")";
2550
os << loc.filename () << "(" << loc.line () << ")";
2588
os << filename () << ":" << line ();
2552
os << loc.filename () << ":" << loc.line ();
2594
2556
} // namespace Puma
2596
2558
#endif /* __location_h__ */
2598
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2560
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2599
2561
#include <assert.h>
2601
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2563
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2602
2564
namespace Puma {
2606
#line 2607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
2568
#line 2569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
2607
2569
} // closed Puma
2570
class CCExprResolve;
2608
2572
class WinIfExists;
2609
2573
class WinImportHandler;
2610
2574
class WinMacros;
2577
class WinMemberExplSpec;
2578
class WinTypeKeywords;
2614
2581
class ExtACBuilderCoupling;
2615
2582
class ExtACSyntaxCoupling;
2616
2583
class ExtACTree;
2617
2584
class ExtACKeywords;
2620
class WinMemberExplSpec;
2621
class WinTypeKeywords;
2622
2586
class PragmaOnceUnitState;
2623
2587
class PragmaOnce;
2624
class CCExprResolve;
2626
2589
namespace Puma {
2628
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2591
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2629
2592
class Token : public ListElement {
2630
#line 2631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
2593
#line 2594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
2594
friend class ::CCExprResolve;
2595
friend class ::CExprResolve;
2631
2596
friend class ::WinIfExists;
2632
2597
friend class ::WinImportHandler;
2633
2598
friend class ::WinMacros;
2634
friend class ::CMatchSyntax;
2635
friend class ::ExtGnu;
2599
friend class ::WinAsm;
2600
friend class ::WinDeclSpecs;
2601
friend class ::WinMemberExplSpec;
2602
friend class ::WinTypeKeywords;
2603
friend class ::WinFriend;
2636
2604
friend class ::ExtAC;
2637
2605
friend class ::ExtACBuilderCoupling;
2638
2606
friend class ::ExtACSyntaxCoupling;
2639
2607
friend class ::ExtACTree;
2640
2608
friend class ::ExtACKeywords;
2641
friend class ::WinAsm;
2642
friend class ::WinDeclSpecs;
2643
friend class ::WinMemberExplSpec;
2644
friend class ::WinTypeKeywords;
2609
friend class ::ExtGnu;
2645
2610
friend class ::PragmaOnceUnitState;
2646
2611
friend class ::PragmaOnce;
2647
friend class ::CCExprResolve;
2648
friend class ::CExprResolve;
2612
friend class ::CMatchSyntax;
2650
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2614
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2652
2616
int _type, _real_type;
2654
2618
Location _location;
2655
2619
LanguageID _language;
2621
mutable DString _dtext;
2658
2623
Array<int> *_cont_lines;
3949
3818
#endif /* __keyword_recognizer_h__ */
3951
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3820
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3952
3821
namespace Puma {
3956
#line 3957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
3825
#line 3826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
3957
3826
} // closed Puma
3827
class CCExprResolve;
3958
3829
class WinIfExists;
3959
3830
class WinImportHandler;
3960
3831
class WinMacros;
3834
class WinMemberExplSpec;
3835
class WinTypeKeywords;
3964
3838
class ExtACBuilderCoupling;
3965
3839
class ExtACSyntaxCoupling;
3966
3840
class ExtACTree;
3967
3841
class ExtACKeywords;
3970
class WinMemberExplSpec;
3971
class WinTypeKeywords;
3972
3843
class PragmaOnceUnitState;
3973
3844
class PragmaOnce;
3974
class CCExprResolve;
3976
3846
namespace Puma {
3978
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3848
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
3979
3849
class CRecognizer {
3980
#line 3981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
3850
#line 3851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
3851
friend class ::CCExprResolve;
3852
friend class ::CExprResolve;
3981
3853
friend class ::WinIfExists;
3982
3854
friend class ::WinImportHandler;
3983
3855
friend class ::WinMacros;
3984
friend class ::CMatchSyntax;
3985
friend class ::ExtGnu;
3856
friend class ::WinAsm;
3857
friend class ::WinDeclSpecs;
3858
friend class ::WinMemberExplSpec;
3859
friend class ::WinTypeKeywords;
3860
friend class ::WinFriend;
3986
3861
friend class ::ExtAC;
3987
3862
friend class ::ExtACBuilderCoupling;
3988
3863
friend class ::ExtACSyntaxCoupling;
3989
3864
friend class ::ExtACTree;
3990
3865
friend class ::ExtACKeywords;
3991
friend class ::WinAsm;
3992
friend class ::WinDeclSpecs;
3993
friend class ::WinMemberExplSpec;
3994
friend class ::WinTypeKeywords;
3866
friend class ::ExtGnu;
3995
3867
friend class ::PragmaOnceUnitState;
3996
3868
friend class ::PragmaOnce;
3997
friend class ::CCExprResolve;
3998
friend class ::CExprResolve;
4000
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
4002
CScanBuffer scan_buffer;
3869
friend class ::CMatchSyntax;
3871
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
4003
3873
CCommentRecognizer comment_recognizer;
4004
3874
Array<KeywordRecognizer*> additional_keyword_recognizers;
3877
CScanBuffer scan_buffer; // TODO: temporarily made public!
4007
3879
typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
4008
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE,
3880
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE,
4009
3881
KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
4011
CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
3883
CRecognizer () : directives(true), wildcards (false),
3884
aspectc (false), macro_ops (false),
4012
3885
std_c (true), std_cplusplus (true) {}
4013
CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
4014
macro_ops (false) { setup (buffer); }
3886
void allow_directives (bool flag = true) { directives = flag; }
4015
3887
void allow_wildcards (bool flag = true) { wildcards = flag; }
4016
3888
void allow_aspectc (bool flag = true) { aspectc = flag; }
4017
3889
void allow_macro_ops (bool flag = true) { macro_ops = flag; }
4018
3890
void allow_std_c (bool flag = true) { std_c = flag; }
4019
3891
void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
4020
void setup (ScanBuffer &buffer);
4021
3893
int recognize (Lang &lang, int &expr, int &len);
4022
Mode mode () { return scan_mode; }
4023
bool new_line () const { return scan_buffer.new_line (); }
3894
Mode mode () const { return scan_mode; }
3895
void mode (Mode mode) { scan_mode = mode; }
4024
3896
CScanBuffer& buffer () { return scan_buffer; }
4025
3897
void addRecognizer(KeywordRecognizer &recognizer)
4026
3898
{ additional_keyword_recognizers.append(&recognizer); }
4029
static MappedOrangeRecognizer<CScanBuffer> string_recognizer;
4030
3901
static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
4031
3902
static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
4032
3903
static OrangeRecognizer<CScanBuffer> dir_recognizer;
4033
static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
4034
3904
static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
4035
3905
static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
4036
3906
static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
4038
3908
Mode scan_mode;
4039
bool check_directive;
4040
3910
bool wildcards;
4042
3912
bool macro_ops;
4889
4773
#define __SimpleParser_h__
4892
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4776
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4893
4777
#include <vector>
4894
4778
using namespace std;
4896
4780
namespace Puma {
4784
* Simple string parser.
4785
* \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
4900
#line 4901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
4788
#line 4789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
4901
4789
} // closed Puma
4790
class CCExprResolve;
4902
4792
class WinIfExists;
4903
4793
class WinImportHandler;
4904
4794
class WinMacros;
4797
class WinMemberExplSpec;
4798
class WinTypeKeywords;
4908
4801
class ExtACBuilderCoupling;
4909
4802
class ExtACSyntaxCoupling;
4910
4803
class ExtACTree;
4911
4804
class ExtACKeywords;
4914
class WinMemberExplSpec;
4915
class WinTypeKeywords;
4916
4806
class PragmaOnceUnitState;
4917
4807
class PragmaOnce;
4918
class CCExprResolve;
4920
4809
namespace Puma {
4922
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4811
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4923
4812
class SimpleParser {
4924
#line 4925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
4813
#line 4814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
4814
friend class ::CCExprResolve;
4815
friend class ::CExprResolve;
4925
4816
friend class ::WinIfExists;
4926
4817
friend class ::WinImportHandler;
4927
4818
friend class ::WinMacros;
4928
friend class ::CMatchSyntax;
4929
friend class ::ExtGnu;
4819
friend class ::WinAsm;
4820
friend class ::WinDeclSpecs;
4821
friend class ::WinMemberExplSpec;
4822
friend class ::WinTypeKeywords;
4823
friend class ::WinFriend;
4930
4824
friend class ::ExtAC;
4931
4825
friend class ::ExtACBuilderCoupling;
4932
4826
friend class ::ExtACSyntaxCoupling;
4933
4827
friend class ::ExtACTree;
4934
4828
friend class ::ExtACKeywords;
4935
friend class ::WinAsm;
4936
friend class ::WinDeclSpecs;
4937
friend class ::WinMemberExplSpec;
4938
friend class ::WinTypeKeywords;
4829
friend class ::ExtGnu;
4939
4830
friend class ::PragmaOnceUnitState;
4940
4831
friend class ::PragmaOnce;
4941
friend class ::CCExprResolve;
4942
friend class ::CExprResolve;
4832
friend class ::CMatchSyntax;
4944
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4834
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4950
static int tokenize (const string &, vector<string> &,
4951
const string &delimiters = " ");
4952
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);
4958
4883
#endif /* __SimpleParser_h__ */
4960
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4885
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4961
4886
using namespace std;
4963
4888
namespace Puma {
4891
/** \brief The %Options %Parser searches command line parameters for options and
4892
* handles their option arguments, if applicable.
4967
#line 4968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
4895
#line 4896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
4968
4896
} // closed Puma
4897
class CCExprResolve;
4969
4899
class WinIfExists;
4970
4900
class WinImportHandler;
4971
4901
class WinMacros;
4904
class WinMemberExplSpec;
4905
class WinTypeKeywords;
4975
4908
class ExtACBuilderCoupling;
4976
4909
class ExtACSyntaxCoupling;
4977
4910
class ExtACTree;
4978
4911
class ExtACKeywords;
4981
class WinMemberExplSpec;
4982
class WinTypeKeywords;
4983
4913
class PragmaOnceUnitState;
4984
4914
class PragmaOnce;
4985
class CCExprResolve;
4987
4916
namespace Puma {
4989
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4918
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4990
4919
class OptsParser : public SimpleParser {
4991
#line 4992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
4920
#line 4921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
4921
friend class ::CCExprResolve;
4922
friend class ::CExprResolve;
4992
4923
friend class ::WinIfExists;
4993
4924
friend class ::WinImportHandler;
4994
4925
friend class ::WinMacros;
4995
friend class ::CMatchSyntax;
4996
friend class ::ExtGnu;
4926
friend class ::WinAsm;
4927
friend class ::WinDeclSpecs;
4928
friend class ::WinMemberExplSpec;
4929
friend class ::WinTypeKeywords;
4930
friend class ::WinFriend;
4997
4931
friend class ::ExtAC;
4998
4932
friend class ::ExtACBuilderCoupling;
4999
4933
friend class ::ExtACSyntaxCoupling;
5000
4934
friend class ::ExtACTree;
5001
4935
friend class ::ExtACKeywords;
5002
friend class ::WinAsm;
5003
friend class ::WinDeclSpecs;
5004
friend class ::WinMemberExplSpec;
5005
friend class ::WinTypeKeywords;
4936
friend class ::ExtGnu;
5006
4937
friend class ::PragmaOnceUnitState;
5007
4938
friend class ::PragmaOnce;
5008
friend class ::CCExprResolve;
5009
friend class ::CExprResolve;
5011
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4939
friend class ::CMatchSyntax;
4941
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4945
/** \brief Vector holding the commandline parameters.
4947
* This vector is filled in the constructor
5013
4949
vector<string> m_argv;
4951
/** \brief Position of current parameter analyzed by the
5014
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.
5015
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
5023
enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
5025
enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
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()
5027
5000
struct Option {
5028
#line 5029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
5001
#line 5002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
5002
friend class ::CCExprResolve;
5003
friend class ::CExprResolve;
5029
5004
friend class ::WinIfExists;
5030
5005
friend class ::WinImportHandler;
5031
5006
friend class ::WinMacros;
5032
friend class ::CMatchSyntax;
5033
friend class ::ExtGnu;
5007
friend class ::WinAsm;
5008
friend class ::WinDeclSpecs;
5009
friend class ::WinMemberExplSpec;
5010
friend class ::WinTypeKeywords;
5011
friend class ::WinFriend;
5034
5012
friend class ::ExtAC;
5035
5013
friend class ::ExtACBuilderCoupling;
5036
5014
friend class ::ExtACSyntaxCoupling;
5037
5015
friend class ::ExtACTree;
5038
5016
friend class ::ExtACKeywords;
5039
friend class ::WinAsm;
5040
friend class ::WinDeclSpecs;
5041
friend class ::WinMemberExplSpec;
5042
friend class ::WinTypeKeywords;
5017
friend class ::ExtGnu;
5043
5018
friend class ::PragmaOnceUnitState;
5044
5019
friend class ::PragmaOnce;
5045
friend class ::CCExprResolve;
5046
friend class ::CExprResolve;
5048
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
5020
friend class ::CMatchSyntax;
5022
#line 91 "/var/tmp/aspectc++/debian/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()
5058
5035
const Option *m_opts;
5061
OptsParser (int, char **, const Option *);
5062
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 *);
5064
int getCurrentArgNum () const;
5065
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.
5066
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.
5067
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
5069
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
5070
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;
5072
bool revokeArgument();
5075
int getShortOption (const string &);
5076
int getLongOption (const string &);
5077
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);
6452
6506
#endif /* __stack_h__ */
6454
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6455
using namespace Puma;
6459
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6464
#line 6465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6465
class WinImportHandler;
6470
class ExtACBuilderCoupling;
6471
class ExtACSyntaxCoupling;
6473
class ExtACKeywords;
6476
class WinMemberExplSpec;
6477
class WinTypeKeywords;
6478
class PragmaOnceUnitState;
6480
class CCExprResolve;
6483
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6485
#line 6486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6488
static WinIfExists *aspectof () {
6489
static WinIfExists __instance;
6492
static WinIfExists *aspectOf () {
6497
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6499
#line 6500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6500
friend class ::WinImportHandler;
6501
friend class ::WinMacros;
6502
friend class ::CMatchSyntax;
6503
friend class ::ExtGnu;
6504
friend class ::ExtAC;
6505
friend class ::ExtACBuilderCoupling;
6506
friend class ::ExtACSyntaxCoupling;
6507
friend class ::ExtACTree;
6508
friend class ::ExtACKeywords;
6509
friend class ::WinAsm;
6510
friend class ::WinDeclSpecs;
6511
friend class ::WinMemberExplSpec;
6512
friend class ::WinTypeKeywords;
6513
friend class ::PragmaOnceUnitState;
6514
friend class ::PragmaOnce;
6515
friend class ::CCExprResolve;
6516
friend class ::CExprResolve;
6518
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6520
/********************************************************/
6521
/* Win __if_exists and __if_not_exists */
6522
/********************************************************/
6524
// pointcut definitions
6526
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6529
// structural extensions
6531
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6534
// preprocess __if_exists and __if_not_exists statements
6536
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6538
public: template<class JoinPoint> void __a0_around
6539
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6541
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6543
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6545
#line 6546 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6547
JoinPoint *&thisJoinPoint = tjp;
6549
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6551
#line 6552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6553
typedef typename JoinPoint::That __JP_That;
6554
typedef typename JoinPoint::Target __JP_Target;
6555
typedef typename JoinPoint::Result __JP_Result;
6557
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6562
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6565
preparser = tjp->that ();
6566
tjp->proceed (); // get the next token
6567
token = *tjp->result ();
6569
type = token->type ();
6570
// __if_exists (...) { ... }
6571
if (type == TOK_IF_EXISTS) {
6572
preparser->skip_up_to (TOK_CLOSE_CURLY);
6573
*(Token**)thisJoinPoint->result () = preparser->next ();
6575
// __if_not_exists (...) { ... }
6576
} else if (type == TOK_IF_NOT_EXISTS) {
6577
preparser->skip_up_to (TOK_OPEN_CURLY);
6578
preparser->_depth.push (1);
6579
*(Token**)thisJoinPoint->result () = preparser->next ();
6582
// skip closing `}' of __if_not_exists
6583
if (preparser->_depth.length ()) {
6584
if (type == TOK_OPEN_CURLY)
6585
preparser->_depth.top () = preparser->_depth.top () + 1;
6586
else if (type == TOK_CLOSE_CURLY) {
6587
preparser->_depth.top () = preparser->_depth.top () - 1;
6588
if (preparser->_depth.top () == 0) {
6589
preparser->_depth.pop ();
6590
*(Token**)thisJoinPoint->result () = preparser->next ();
6597
#line 6598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6601
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6607
#line 6608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6610
template <class JoinPoint>
6611
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
6612
::WinIfExists::aspectof()->__a0_around (tjp);
6616
#line 88 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6621
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6624
// skip __if_exists resp. __if_not_exists statement
6626
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6630
#endif /* __WinIfExists__ */
6632
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6633
// This file is part of PUMA.
6634
// Copyright (C) 1999-2003 The PUMA developer team.
6636
// This program is free software; you can redistribute it and/or
6637
// modify it under the terms of the GNU General Public License as
6638
// published by the Free Software Foundation; either version 2 of
6639
// the License, or (at your option) any later version.
6641
// This program is distributed in the hope that it will be useful,
6642
// but WITHOUT ANY WARRANTY; without even the implied warranty of
6643
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6644
// GNU General Public License for more details.
6646
// You should have received a copy of the GNU General Public
6647
// License along with this program; if not, write to the Free
6648
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
6649
// MA 02111-1307 USA
6651
#ifndef __WinImportHandler__
6652
#define __WinImportHandler__
6654
/********************************************************/
6655
/* Win #import directive support */
6656
/********************************************************/
6659
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6660
using namespace Puma;
6664
#line 6665 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6670
class ExtACBuilderCoupling;
6671
class ExtACSyntaxCoupling;
6673
class ExtACKeywords;
6676
class WinMemberExplSpec;
6677
class WinTypeKeywords;
6678
class PragmaOnceUnitState;
6680
class CCExprResolve;
6683
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6684
class WinImportHandler {
6685
#line 6686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6688
static WinImportHandler *aspectof () {
6689
static WinImportHandler __instance;
6692
static WinImportHandler *aspectOf () {
6697
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6699
#line 6700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6700
friend class ::WinIfExists;
6701
friend class ::WinMacros;
6702
friend class ::CMatchSyntax;
6703
friend class ::ExtGnu;
6704
friend class ::ExtAC;
6705
friend class ::ExtACBuilderCoupling;
6706
friend class ::ExtACSyntaxCoupling;
6707
friend class ::ExtACTree;
6708
friend class ::ExtACKeywords;
6709
friend class ::WinAsm;
6710
friend class ::WinDeclSpecs;
6711
friend class ::WinMemberExplSpec;
6712
friend class ::WinTypeKeywords;
6713
friend class ::PragmaOnceUnitState;
6714
friend class ::PragmaOnce;
6715
friend class ::CCExprResolve;
6716
friend class ::CExprResolve;
6718
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6720
/********************************************************/
6721
/* Win #import directive */
6722
/********************************************************/
6726
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6729
// add access method for _importHandler data member
6731
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6734
// handle --import-handler option
6736
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6738
public: template<class JoinPoint> void __a0_before
6739
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6741
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6742
(JoinPoint *tjp, const Config &config, bool process_includes)
6743
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6745
#line 6746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6747
JoinPoint *&thisJoinPoint = tjp;
6749
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6751
#line 6752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6753
typedef typename JoinPoint::That __JP_That;
6754
typedef typename JoinPoint::Target __JP_Target;
6755
typedef typename JoinPoint::Result __JP_Result;
6757
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6759
const ConfOption *opt;
6762
if (process_includes) {
6763
opt = config.Option ("--import-handler");
6764
if (opt && opt->Arguments ()) {
6765
// delete old import handler
6766
if (thisJoinPoint->that ()->_importHandler)
6767
delete[] thisJoinPoint->that ()->_importHandler;
6769
// get new import handler
6770
tmp = new char[strlen (opt->Argument (0))+1];
6771
strcpy (tmp, opt->Argument (0));
6772
thisJoinPoint->that ()->_importHandler = tmp;
6776
#line 6777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6780
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6784
WinImportHandler () {}
6786
#line 6787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6789
template <class JoinPoint, class Binding>
6790
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
6791
typedef typename Binding::template Arg<0> Arg0;
6792
typedef typename Binding::template Arg<1> Arg1;
6793
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
6797
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6801
#endif /* __WinImportHandler__ */
6803
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6804
// This file is part of PUMA.
6805
// Copyright (C) 1999-2003 The PUMA developer team.
6807
// This program is free software; you can redistribute it and/or
6808
// modify it under the terms of the GNU General Public License as
6809
// published by the Free Software Foundation; either version 2 of
6810
// the License, or (at your option) any later version.
6812
// This program is distributed in the hope that it will be useful,
6813
// but WITHOUT ANY WARRANTY; without even the implied warranty of
6814
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6815
// GNU General Public License for more details.
6817
// You should have received a copy of the GNU General Public
6818
// License along with this program; if not, write to the Free
6819
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
6820
// MA 02111-1307 USA
6822
#ifndef __PragmaOnce__
6823
#define __PragmaOnce__
6825
/********************************************************/
6826
/* Win #pragma once support aspect */
6827
/********************************************************/
6830
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6835
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6836
using namespace Puma;
6840
#line 6841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6842
class WinImportHandler;
6847
class ExtACBuilderCoupling;
6848
class ExtACSyntaxCoupling;
6850
class ExtACKeywords;
6853
class WinMemberExplSpec;
6854
class WinTypeKeywords;
6855
class PragmaOnceUnitState;
6856
class CCExprResolve;
6859
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6861
#line 6862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6864
static PragmaOnce *aspectof () {
6865
static PragmaOnce __instance;
6868
static PragmaOnce *aspectOf () {
6873
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6875
#line 6876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6876
friend class ::WinIfExists;
6877
friend class ::WinImportHandler;
6878
friend class ::WinMacros;
6879
friend class ::CMatchSyntax;
6880
friend class ::ExtGnu;
6881
friend class ::ExtAC;
6882
friend class ::ExtACBuilderCoupling;
6883
friend class ::ExtACSyntaxCoupling;
6884
friend class ::ExtACTree;
6885
friend class ::ExtACKeywords;
6886
friend class ::WinAsm;
6887
friend class ::WinDeclSpecs;
6888
friend class ::WinMemberExplSpec;
6889
friend class ::WinTypeKeywords;
6890
friend class ::PragmaOnceUnitState;
6891
friend class ::CCExprResolve;
6892
friend class ::CExprResolve;
6894
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6896
/******************************************************/
6897
/* detect #pragma once in the token stream of cpp */
6898
/******************************************************/
6900
// pointcut definitions
6902
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6905
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6908
// extend the preprocessor parser by the filter state
6910
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6913
// initialize the filter state
6915
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6917
public: template<class JoinPoint> void __a0_after
6918
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6920
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6922
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6924
#line 6925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6926
typedef typename JoinPoint::That __JP_That;
6927
typedef typename JoinPoint::Target __JP_Target;
6928
typedef typename JoinPoint::Result __JP_Result;
6930
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6932
// TODO: it would be better to have construction advice -> but in lem file
6933
tjp->that ()->_pragma_token = 0;
6935
#line 6936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6939
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6942
// filter #pragma once
6944
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6946
public: template<class JoinPoint> void __a1_after
6947
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6949
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6951
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6953
#line 6954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6955
typedef typename JoinPoint::That __JP_That;
6956
typedef typename JoinPoint::Target __JP_Target;
6957
typedef typename JoinPoint::Result __JP_Result;
6959
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6961
Token *tok = *tjp->result ();
6963
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6964
&that = *tjp->that ();
6965
if (!tok || !tok->is_directive ()) {
6966
that._pragma_token = 0;
6969
if (strcmp ("#pragma", tok->text ()) == 0) {
6970
that._pragma_token = tok;
6972
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
6973
Unit *unit = (Unit*)tok->belonging_to ();
6975
unit->state ().onlyOnce (true);
6978
#line 6979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6982
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6985
/********************************************************/
6986
/* block the handling of pragma once files */
6987
/********************************************************/
6989
// don't let file includer include files twice
6990
// to be precise: the file is included again, but the inclusion produces
6993
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6995
public: template<class JoinPoint> void __a2_around
6996
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6998
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6999
(JoinPoint *tjp, Unit *unit)
7000
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7002
#line 7003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7004
typedef typename JoinPoint::That __JP_That;
7005
typedef typename JoinPoint::Target __JP_Target;
7006
typedef typename JoinPoint::Result __JP_Result;
7008
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7010
if (! unit || ! unit->state ().onlyOnce ())
7013
#line 7014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7017
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7020
// includeFile shall return 0 if the file was not included
7022
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7024
public: template<class JoinPoint> void __a3_after
7025
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7027
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7029
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7031
#line 7032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7033
typedef typename JoinPoint::That __JP_That;
7034
typedef typename JoinPoint::Target __JP_Target;
7035
typedef typename JoinPoint::Result __JP_Result;
7037
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7039
Unit *&unit = *tjp->result ();
7040
if (unit && unit->state ().onlyOnce ())
7043
#line 7044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7047
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7051
// this aspect should never be instantiated directly
7054
#line 7055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7057
template <class JoinPoint>
7058
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
7059
::PragmaOnce::aspectof()->__a0_after (tjp);
7061
template <class JoinPoint>
7062
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
7063
::PragmaOnce::aspectof()->__a1_after (tjp);
7065
template <class JoinPoint, class Binding>
7066
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
7067
typedef typename Binding::template Arg<0> Arg0;
7068
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
7070
template <class JoinPoint>
7071
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
7072
::PragmaOnce::aspectof()->__a3_after (tjp);
7076
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7080
#endif /* __PragmaOnce__ */
7082
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7083
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7084
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7086
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7087
// This file is part of PUMA.
7088
// Copyright (C) 1999-2003 The PUMA developer team.
7090
// This program is free software; you can redistribute it and/or
7091
// modify it under the terms of the GNU General Public License as
7092
// published by the Free Software Foundation; either version 2 of
7093
// the License, or (at your option) any later version.
7095
// This program is distributed in the hope that it will be useful,
7096
// but WITHOUT ANY WARRANTY; without even the implied warranty of
7097
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7098
// GNU General Public License for more details.
7100
// You should have received a copy of the GNU General Public
7101
// License along with this program; if not, write to the Free
7102
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
7103
// MA 02111-1307 USA
7105
#ifndef __preprocessor_parser__
7106
#define __preprocessor_parser__
7108
// Preprocessor parser class. !!! The preprocessor parser has to
7109
// be added last to the composite parser of a translation unit !!!
7112
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
7114
#line 7115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
6508
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
6510
#line 6511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7116
6512
#ifndef __ac_fwd_ExtACKeywords__
7117
6513
#define __ac_fwd_ExtACKeywords__
7118
6514
class ExtACKeywords;
7120
template <class JoinPoint, class Binding>
7121
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
7122
template <class JoinPoint, class Binding>
7123
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
7124
template <class JoinPoint>
7125
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);
7129
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7130
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6525
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
6526
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7133
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
6529
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
7134
6530
// This file is part of PUMA.
7135
6531
// Copyright (C) 1999-2003 The PUMA developer team.
7882
7299
class PrePredicateManager;
7885
#line 7886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7888
class WinImportHandler;
7893
class ExtACBuilderCoupling;
7894
class ExtACSyntaxCoupling;
7896
class ExtACKeywords;
7899
class WinMemberExplSpec;
7900
class WinTypeKeywords;
7901
class PragmaOnceUnitState;
7903
class CCExprResolve;
7907
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7302
#line 7303 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7327
#line 7328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7330
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
7331
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
7333
#line 1 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7363
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7368
#line 7369 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7390
#line 7391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7393
static WinIfExists *aspectof () {
7394
static WinIfExists __instance;
7397
static WinIfExists *aspectOf () {
7402
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7404
#line 7405 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7426
/********************************************************/
7427
/* Win __if_exists and __if_not_exists */
7428
/********************************************************/
7430
// pointcut definitions
7432
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7435
// structural extensions
7437
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7440
// preprocess __if_exists and __if_not_exists statements
7442
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7444
public: template<class JoinPoint> void __a0_around
7445
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7447
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7449
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7451
#line 7452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7453
JoinPoint *&thisJoinPoint = tjp;
7455
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7457
#line 7458 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7468
#line 49 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7507
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7513
#line 7514 "/var/tmp/aspectc++/debian/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 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7527
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7530
// skip __if_exists resp. __if_not_exists statement
7532
#line 135 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
7536
#endif /* __WinIfExists__ */
7538
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7542
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7544
#line 7545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7547
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7548
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7550
#line 1 "/var/tmp/aspectc++/debian/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 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7581
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7583
#line 7584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7584
class CCExprResolve;
7587
class WinImportHandler;
7591
class WinMemberExplSpec;
7592
class WinTypeKeywords;
7595
class ExtACBuilderCoupling;
7596
class ExtACSyntaxCoupling;
7598
class ExtACKeywords;
7600
class PragmaOnceUnitState;
7603
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7605
#line 7606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7608
static PragmaOnce *aspectof () {
7609
static PragmaOnce __instance;
7612
static PragmaOnce *aspectOf () {
7617
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7619
#line 7620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7620
friend class ::CCExprResolve;
7621
friend class ::CExprResolve;
7622
friend class ::WinIfExists;
7623
friend class ::WinImportHandler;
7624
friend class ::WinMacros;
7625
friend class ::WinAsm;
7626
friend class ::WinDeclSpecs;
7627
friend class ::WinMemberExplSpec;
7628
friend class ::WinTypeKeywords;
7629
friend class ::WinFriend;
7630
friend class ::ExtAC;
7631
friend class ::ExtACBuilderCoupling;
7632
friend class ::ExtACSyntaxCoupling;
7633
friend class ::ExtACTree;
7634
friend class ::ExtACKeywords;
7635
friend class ::ExtGnu;
7636
friend class ::PragmaOnceUnitState;
7637
friend class ::CMatchSyntax;
7639
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7641
/******************************************************/
7642
/* detect #pragma once in the token stream of cpp */
7643
/******************************************************/
7645
// pointcut definitions
7647
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7650
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7653
// extend the preprocessor parser by the filter state
7655
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7658
// initialize the filter state
7660
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7662
public: template<class JoinPoint> void __a0_after
7663
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7665
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7667
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7669
#line 7670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7671
typedef typename JoinPoint::That __JP_That;
7672
typedef typename JoinPoint::Target __JP_Target;
7673
typedef typename JoinPoint::Result __JP_Result;
7675
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7677
// TODO: it would be better to have construction advice -> but in lem file
7678
tjp->that ()->_pragma_token = 0;
7680
#line 7681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7684
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7687
// filter #pragma once
7689
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7691
public: template<class JoinPoint> void __a1_after
7692
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7694
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7696
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7698
#line 7699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7700
typedef typename JoinPoint::That __JP_That;
7701
typedef typename JoinPoint::Target __JP_Target;
7702
typedef typename JoinPoint::Result __JP_Result;
7704
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7706
Puma::Token *tok = *tjp->result ();
7708
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7709
&that = *tjp->that ();
7710
if (!tok || !tok->is_directive ()) {
7711
that._pragma_token = 0;
7714
if (strcmp ("#pragma", tok->text ()) == 0) {
7715
that._pragma_token = tok;
7717
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
7718
Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
7720
unit->state ().onlyOnce (true);
7723
#line 7724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7727
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7730
/********************************************************/
7731
/* block the handling of pragma once files */
7732
/********************************************************/
7734
// don't let file includer include files twice
7735
// to be precise: the file is included again, but the inclusion produces
7738
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7740
public: template<class JoinPoint> void __a2_around
7741
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7743
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7744
(JoinPoint *tjp, Puma::Unit *unit)
7745
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7747
#line 7748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7749
typedef typename JoinPoint::That __JP_That;
7750
typedef typename JoinPoint::Target __JP_Target;
7751
typedef typename JoinPoint::Result __JP_Result;
7753
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7755
if (! unit || ! unit->state ().onlyOnce ())
7758
#line 7759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7762
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7765
// includeFile shall return 0 if the file was not included
7767
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7769
public: template<class JoinPoint> void __a3_after
7770
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7772
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7774
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7776
#line 7777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7778
typedef typename JoinPoint::That __JP_That;
7779
typedef typename JoinPoint::Target __JP_Target;
7780
typedef typename JoinPoint::Result __JP_Result;
7782
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7784
Puma::Unit *&unit = *tjp->result ();
7785
if (unit && unit->state ().onlyOnce ())
7787
tjp->that ()->_guarded = true;
7789
#line 7790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7793
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7797
// this aspect should never be instantiated directly
7800
#line 7801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7803
template <class JoinPoint>
7804
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
7805
::PragmaOnce::aspectof()->__a0_after (tjp);
7807
template <class JoinPoint>
7808
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
7809
::PragmaOnce::aspectof()->__a1_after (tjp);
7811
template <class JoinPoint>
7812
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
7813
typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
7814
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
7816
template <class JoinPoint>
7817
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
7818
::PragmaOnce::aspectof()->__a3_after (tjp);
7822
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7826
#endif /* __PragmaOnce__ */
7828
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7832
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7908
7833
class PreprocessorParser : public PumaTokenSource {
7909
#line 7910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
7834
#line 7835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
7835
friend class ::CCExprResolve;
7836
friend class ::CExprResolve;
7910
7837
friend class ::WinIfExists;
7911
7838
friend class ::WinImportHandler;
7912
7839
friend class ::WinMacros;
7913
friend class ::CMatchSyntax;
7914
friend class ::ExtGnu;
7840
friend class ::WinAsm;
7841
friend class ::WinDeclSpecs;
7842
friend class ::WinMemberExplSpec;
7843
friend class ::WinTypeKeywords;
7844
friend class ::WinFriend;
7915
7845
friend class ::ExtAC;
7916
7846
friend class ::ExtACBuilderCoupling;
7917
7847
friend class ::ExtACSyntaxCoupling;
7918
7848
friend class ::ExtACTree;
7919
7849
friend class ::ExtACKeywords;
7920
friend class ::WinAsm;
7921
friend class ::WinDeclSpecs;
7922
friend class ::WinMemberExplSpec;
7923
friend class ::WinTypeKeywords;
7850
friend class ::ExtGnu;
7924
7851
friend class ::PragmaOnceUnitState;
7925
7852
friend class ::PragmaOnce;
7926
friend class ::CCExprResolve;
7927
friend class ::CExprResolve;
7853
friend class ::CMatchSyntax;
7929
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7855
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7932
7858
// The current mode for token preprocessing
9154
9064
} // namespace Puma
9156
#line 9157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
9158
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_PreFileIncluder_cc__
9159
/*** begin of aspect includes ***/
9160
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__)
9161
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
9163
#line 7 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreFileIncluder.cc"
9165
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
9166
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9168
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreFileIncluder.cc"
9170
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__)
9171
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
9173
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
9066
#line 9067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9068
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreFileIncluder_cc__
9069
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9070
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9071
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
9072
#include "CCExprResolveCC.ah"
9074
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9075
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9076
#include "ExtACTree.ah"
9078
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
9079
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
9080
#include "ExtGnu.ah"
9083
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9084
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9085
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
9086
#include "CCExprResolveH.ah"
9089
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9090
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9091
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
9092
#include "CExprResolveCC.ah"
9094
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9095
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9096
#include "ExtACTree.ah"
9098
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
9099
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
9100
#include "ExtGnu.ah"
9103
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9104
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9105
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
9106
#include "CExprResolveH.ah"
9109
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
9110
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
9111
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
9113
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreFileIncluder.cc"
9116
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9117
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9118
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
9120
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9121
// This file is part of PUMA.
9122
// Copyright (C) 1999-2003 The PUMA developer team.
9124
// This program is free software; you can redistribute it and/or
9125
// modify it under the terms of the GNU General Public License as
9126
// published by the Free Software Foundation; either version 2 of
9127
// the License, or (at your option) any later version.
9129
// This program is distributed in the hope that it will be useful,
9130
// but WITHOUT ANY WARRANTY; without even the implied warranty of
9131
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9132
// GNU General Public License for more details.
9134
// You should have received a copy of the GNU General Public
9135
// License along with this program; if not, write to the Free
9136
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
9137
// MA 02111-1307 USA
9139
#ifndef __WinImportHandler__
9140
#define __WinImportHandler__
9142
/********************************************************/
9143
/* Win #import directive support */
9144
/********************************************************/
9147
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9149
#line 9150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9150
class CCExprResolve;
9156
class WinMemberExplSpec;
9157
class WinTypeKeywords;
9160
class ExtACBuilderCoupling;
9161
class ExtACSyntaxCoupling;
9163
class ExtACKeywords;
9165
class PragmaOnceUnitState;
9169
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9170
class WinImportHandler {
9171
#line 9172 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9174
static WinImportHandler *aspectof () {
9175
static WinImportHandler __instance;
9178
static WinImportHandler *aspectOf () {
9183
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9185
#line 9186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9186
friend class ::CCExprResolve;
9187
friend class ::CExprResolve;
9188
friend class ::WinIfExists;
9189
friend class ::WinMacros;
9190
friend class ::WinAsm;
9191
friend class ::WinDeclSpecs;
9192
friend class ::WinMemberExplSpec;
9193
friend class ::WinTypeKeywords;
9194
friend class ::WinFriend;
9195
friend class ::ExtAC;
9196
friend class ::ExtACBuilderCoupling;
9197
friend class ::ExtACSyntaxCoupling;
9198
friend class ::ExtACTree;
9199
friend class ::ExtACKeywords;
9200
friend class ::ExtGnu;
9201
friend class ::PragmaOnceUnitState;
9202
friend class ::PragmaOnce;
9203
friend class ::CMatchSyntax;
9205
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9207
/********************************************************/
9208
/* Win #import directive */
9209
/********************************************************/
9213
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9216
// handle --import-handler option
9218
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9220
public: template<class JoinPoint> void __a0_before
9221
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9223
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9224
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
9225
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9227
#line 9228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9229
JoinPoint *&thisJoinPoint = tjp;
9231
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9233
#line 9234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9235
typedef typename JoinPoint::That __JP_That;
9236
typedef typename JoinPoint::Target __JP_Target;
9237
typedef typename JoinPoint::Result __JP_Result;
9239
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9241
const Puma::ConfOption *opt;
9244
if (process_includes) {
9245
opt = config.Option ("--import-handler");
9246
if (opt && opt->Arguments ()) {
9247
// delete old import handler
9248
if (thisJoinPoint->that ()->_importHandler)
9249
delete[] thisJoinPoint->that ()->_importHandler;
9251
// get new import handler
9252
tmp = new char[strlen (opt->Argument (0))+1];
9253
strcpy (tmp, opt->Argument (0));
9254
thisJoinPoint->that ()->_importHandler = tmp;
9258
#line 9259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9262
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9266
WinImportHandler () {}
9268
#line 9269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9271
template <class JoinPoint>
9272
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
9273
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
9274
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
9275
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
9279
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
9283
#endif /* __WinImportHandler__ */
9285
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreFileIncluder.cc"
9288
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
9289
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
9290
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
9292
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
9174
9293
// This file is part of PUMA.
9175
9294
// Copyright (C) 1999-2003 The PUMA developer team.
9298
9416
thisJoinPoint->that ()->defMacro ("__noop", " ");
9300
9418
// function-like macros
9301
PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
9419
Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
9302
9420
args->append ("__arg0");
9303
9421
thisJoinPoint->that ()->macroManager ()->addMacro (
9304
new PreMacro ("__declspec", args, " "));
9422
new Puma::PreMacro ("__declspec", args, " "));
9307
#line 9308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
9425
#line 9426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9311
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
9429
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
9315
9433
WinMacros () {}
9317
#line 9318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
9435
#line 9436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
9320
template <class JoinPoint, class Binding>
9321
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
9322
typedef typename Binding::template Arg<0> Arg0;
9438
template <class JoinPoint>
9439
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
9440
typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
9323
9441
::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
9327
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
9445
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
9331
9449
#endif /* __WinMacros__ */
9333
#line 15 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreFileIncluder.cc"
9335
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
9336
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
9337
#include "CMatchSyntax.ah"
9339
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__)
9340
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
9341
#include "ExtGnu.ah"
9343
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__)
9344
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
9451
#line 59 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreFileIncluder.cc"
9453
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9454
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9456
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreFileIncluder.cc"
9459
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
9460
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
9461
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
9462
#include "WinAsm.ah"
9464
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9465
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9466
#include "ExtACTree.ah"
9469
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9470
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9471
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
9472
#include "WinDeclSpecs.ah"
9475
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9476
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9477
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
9478
#include "WinMemberExplSpec.ah"
9481
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9482
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9483
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
9484
#include "WinTypeKeywords.ah"
9487
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
9488
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
9489
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
9490
#include "WinFriend.ah"
9493
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
9494
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
9495
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
9345
9496
#include "ExtAC.ah"
9347
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
9348
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9498
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9499
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9500
#include "ExtACTree.ah"
9502
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9503
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9504
#include "ExtACKeywords.ah"
9506
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
9507
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
9508
#include "ExtGnu.ah"
9510
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9511
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
9512
#include "PragmaOnceUnitState.ah"
9514
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
9515
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
9516
#include "CMatchSyntax.ah"
9519
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9520
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9521
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
9349
9522
#include "ExtACBuilderH.ah"
9351
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
9352
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9525
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9526
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9527
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
9353
9528
#include "ExtACBuilderCC.ah"
9355
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
9356
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9530
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9531
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9532
#include "ExtACTree.ah"
9535
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9536
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9537
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
9357
9538
#include "ExtACSyntaxH.ah"
9359
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
9360
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9541
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9542
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9543
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
9361
9544
#include "ExtACSyntaxCC.ah"
9363
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__)
9364
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
9547
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9548
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9549
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
9365
9550
#include "ExtACTree.ah"
9367
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
9368
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9553
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9554
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9555
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
9370
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9557
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
9371
9558
// This file is part of PUMA.
9372
9559
// Copyright (C) 1999-2003 The PUMA developer team.
9950
10145
#endif /* __path_manager__ */
9952
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
10147
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10149
#line 10150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
10151
#ifndef __ac_fwd_PragmaOnceUnitState__
10152
#define __ac_fwd_PragmaOnceUnitState__
10153
class PragmaOnceUnitState;
10155
template <class JoinPoint>
10156
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
10157
template <class JoinPoint>
10158
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
10162
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
10163
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
10166
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10167
// This file is part of PUMA.
10168
// Copyright (C) 1999-2003 The PUMA developer team.
10170
// This program is free software; you can redistribute it and/or
10171
// modify it under the terms of the GNU General Public License as
10172
// published by the Free Software Foundation; either version 2 of
10173
// the License, or (at your option) any later version.
10175
// This program is distributed in the hope that it will be useful,
10176
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10177
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10178
// GNU General Public License for more details.
10180
// You should have received a copy of the GNU General Public
10181
// License along with this program; if not, write to the Free
10182
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
10183
// MA 02111-1307 USA
10185
#ifndef __UnitManager__
10186
#define __UnitManager__
10188
// Class UnitManager helps you to have control of all units built.
10190
#include <iostream>
10194
using namespace std;
10195
#include "Puma/ErrorStream.h"
10205
#line 10206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
10207
class CCExprResolve;
10208
class CExprResolve;
10210
class WinImportHandler;
10213
class WinDeclSpecs;
10214
class WinMemberExplSpec;
10215
class WinTypeKeywords;
10218
class ExtACBuilderCoupling;
10219
class ExtACSyntaxCoupling;
10221
class ExtACKeywords;
10223
class PragmaOnceUnitState;
10225
class CMatchSyntax;
10228
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10229
class UnitManager {
10230
#line 10231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
10231
friend class ::CCExprResolve;
10232
friend class ::CExprResolve;
10233
friend class ::WinIfExists;
10234
friend class ::WinImportHandler;
10235
friend class ::WinMacros;
10236
friend class ::WinAsm;
10237
friend class ::WinDeclSpecs;
10238
friend class ::WinMemberExplSpec;
10239
friend class ::WinTypeKeywords;
10240
friend class ::WinFriend;
10241
friend class ::ExtAC;
10242
friend class ::ExtACBuilderCoupling;
10243
friend class ::ExtACSyntaxCoupling;
10244
friend class ::ExtACTree;
10245
friend class ::ExtACKeywords;
10246
friend class ::ExtGnu;
10247
friend class ::PragmaOnceUnitState;
10248
friend class ::PragmaOnce;
10249
friend class ::CMatchSyntax;
10251
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10254
typedef map<string, Unit*> UMap;
10256
ErrorStream *_err; // For error messages.
10257
list<Unit*> _nonames; // Noname units list.
10258
mutable UMap _umap; // Named units, map supports fast lookup by name
10259
typedef UMap::value_type UMapPair;
10260
Tokenizer *_tokenizer; // File scanner.
10263
UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
10265
// Destructor: Delete all units.
10266
virtual ~UnitManager ();
10268
// Get the unit hash table.
10269
UMap &getTable () const { return _umap; }
10270
typedef UMap::iterator UMapIter;
10272
// Get/Set the file scanner that is used by newUnit
10273
Tokenizer *tokenizer () const { return _tokenizer; }
10274
void tokenizer (Tokenizer *t) { _tokenizer = t; }
10276
// Add a unit to manager.
10277
void addUnit (Unit *unit);
10279
// Remove (and destroy) a unit from hash table. If the name
10280
// is NULL remove all (but not the nonames).
10281
void removeUnit (const char *name = (const char*) 0, bool = false,
10282
bool destroy = true) const;
10284
// Empty a unit. Don't remove from hash table.
10285
// Preserve the last save location information.
10286
void closeUnit (const char *name = (const char*) 0, bool = false) const;
10288
// Build and add a new unit.
10289
Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
10291
// Get a unit by name.
10292
Unit *getUnit (const char *name, bool = false) const;
10294
// Print given unit to the given outstream. If no
10295
// name is given, print all units.
10296
void print (const char *name = (const char*) 0, bool = false,
10297
ostream &out = cout) const;
10299
// Destroy all noname units.
10300
void removeNonames ();
10302
// Initialize the unit manager and the managed
10303
// units for the next parse process.
10305
#line 10306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
10306
public: __attribute__((always_inline)) inline void __exec_old_init();
10308
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
10313
} // namespace Puma
10315
#endif /* __UnitManager__ */
10317
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
9953
10318
// This file is part of PUMA.
9954
10319
// Copyright (C) 1999-2003 The PUMA developer team.
10699
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11075
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
10701
11077
public: template<class JoinPoint> void __a2_before
10702
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11078
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
10704
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11080
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
10705
11081
(JoinPoint *tjp)
10706
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11082
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
10708
#line 10709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
11084
#line 11085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
10710
11086
typedef typename JoinPoint::That __JP_That;
10711
11087
typedef typename JoinPoint::Target __JP_Target;
10712
11088
typedef typename JoinPoint::Result __JP_Result;
10714
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11090
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
10716
11092
_project = tjp->that ();
10719
#line 10720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreFileIncluder.cc"
11095
#line 11096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreFileIncluder.cc"
10721
11097
namespace AC {
10722
template <class JoinPoint, class Binding>
10723
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
10724
typedef typename Binding::template Arg<0> Arg0;
11098
template <class JoinPoint>
11099
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
11100
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
10725
11101
::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
10727
template <class JoinPoint, class Binding>
10728
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
10729
typedef typename Binding::template Arg<0> Arg0;
11103
template <class JoinPoint>
11104
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
11105
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
10730
11106
::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
10732
11108
template <class JoinPoint>
10733
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
11109
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
10734
11110
::ExtACKeywords::aspectof()->__a2_before (tjp);
10738
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11114
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
10741
11117
#endif /* __ext_ac_keywords_ah__ */
10743
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreFileIncluder.cc"
10745
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
10746
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11119
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreFileIncluder.cc"
11121
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11122
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11123
#include "PragmaOnceUnitState.ah"
11126
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11127
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11128
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11129
#include "ExtACTree.ah"
11131
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11132
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11133
#include "ExtGnu.ah"
11136
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
11137
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11138
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11139
#include "ExtACTree.ah"
11141
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
11142
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
11143
#include "ExtGnuCSemDeclSpecs.ah"
11146
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11147
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11148
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11149
#include "PragmaOnceUnitState.ah"
11152
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11153
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11154
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11155
#include "PragmaOnceUnitState.ah"
11157
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11158
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11160
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreFileIncluder.cc"
11163
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11164
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11165
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
10747
11166
#include "TraceSyntax.ah"
10749
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__)
10750
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
10751
#include "WinAsm.ah"
10753
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
10754
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
10755
#include "WinDeclSpecs.ah"
10757
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
10758
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
10759
#include "WinMemberExplSpec.ah"
10761
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
10762
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
10763
#include "WinTypeKeywords.ah"
10765
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
10766
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
10768
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreFileIncluder.cc"
10770
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
10771
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
10773
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreFileIncluder.cc"
10775
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
10776
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
10777
#include "CCExprResolveH.ah"
10779
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
10780
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
10781
#include "CCExprResolveCC.ah"
10783
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
10784
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
10785
#include "CExprResolveH.ah"
10787
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
10788
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
10789
#include "CExprResolveCC.ah"
10791
/*** end of aspect includes ***/
10792
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
10793
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_PreFileIncluder_cc__
10794
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_PreFileIncluder_cc__
11169
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11170
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11171
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11172
#include "CMatchSyntax.ah"
11175
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
11176
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreFileIncluder_cc__
11177
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreFileIncluder_cc__