39
54
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
40
55
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
43
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
45
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
47
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
49
#ifndef __ac_fwd_WinIfExists__
50
#define __ac_fwd_WinIfExists__
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
63
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
65
#ifndef __ac_fwd_PragmaOnce__
66
#define __ac_fwd_PragmaOnce__
53
69
template <class JoinPoint>
54
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
70
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
71
template <class JoinPoint>
72
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
73
template <class JoinPoint>
74
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
75
template <class JoinPoint>
76
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
58
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
59
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
80
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
81
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
62
84
#ifndef __ac_fwd_WinImportHandler__
63
85
#define __ac_fwd_WinImportHandler__
64
86
class WinImportHandler;
66
template <class JoinPoint, class Binding>
67
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
71
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
72
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
75
#ifndef __ac_fwd_PragmaOnce__
76
#define __ac_fwd_PragmaOnce__
79
template <class JoinPoint>
80
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
81
template <class JoinPoint>
82
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
83
template <class JoinPoint, class Binding>
84
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
85
template <class JoinPoint>
86
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
90
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
91
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
88
template <class JoinPoint>
89
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
93
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
94
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
94
97
#ifndef __ac_fwd_WinMacros__
95
98
#define __ac_fwd_WinMacros__
98
template <class JoinPoint, class Binding>
99
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
103
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
104
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
107
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
101
template <class JoinPoint>
102
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
106
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
107
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
110
#ifndef __ac_fwd_WinIfExists__
111
#define __ac_fwd_WinIfExists__
114
template <class JoinPoint>
115
__attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
119
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
120
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
123
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
108
124
// This file is part of PUMA.
109
125
// Copyright (C) 1999-2003 The PUMA developer team.
1344
1366
#endif /* __filename_h__ */
1346
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1368
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
1347
1369
namespace Puma {
1351
#line 1352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
1373
#line 1374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
1352
1374
} // closed Puma
1375
class CCExprResolve;
1353
1377
class WinIfExists;
1354
1378
class WinImportHandler;
1355
1379
class WinMacros;
1382
class WinMemberExplSpec;
1383
class WinTypeKeywords;
1359
1386
class ExtACBuilderCoupling;
1360
1387
class ExtACSyntaxCoupling;
1361
1388
class ExtACTree;
1362
1389
class ExtACKeywords;
1365
class WinMemberExplSpec;
1366
class WinTypeKeywords;
1367
1391
class PragmaOnceUnitState;
1368
1392
class PragmaOnce;
1369
class CCExprResolve;
1371
1394
namespace Puma {
1373
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1374
class LocationInfo : public RefCnt {
1375
#line 1376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
1396
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
1398
#line 1399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
1399
friend class ::CCExprResolve;
1400
friend class ::CExprResolve;
1376
1401
friend class ::WinIfExists;
1377
1402
friend class ::WinImportHandler;
1378
1403
friend class ::WinMacros;
1379
friend class ::CMatchSyntax;
1380
friend class ::ExtGnu;
1404
friend class ::WinAsm;
1405
friend class ::WinDeclSpecs;
1406
friend class ::WinMemberExplSpec;
1407
friend class ::WinTypeKeywords;
1408
friend class ::WinFriend;
1381
1409
friend class ::ExtAC;
1382
1410
friend class ::ExtACBuilderCoupling;
1383
1411
friend class ::ExtACSyntaxCoupling;
1384
1412
friend class ::ExtACTree;
1385
1413
friend class ::ExtACKeywords;
1386
friend class ::WinAsm;
1387
friend class ::WinDeclSpecs;
1388
friend class ::WinMemberExplSpec;
1389
friend class ::WinTypeKeywords;
1414
friend class ::ExtGnu;
1390
1415
friend class ::PragmaOnceUnitState;
1391
1416
friend class ::PragmaOnce;
1392
friend class ::CCExprResolve;
1393
friend class ::CExprResolve;
1417
friend class ::CMatchSyntax;
1395
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1419
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
1397
1421
Filename _filename;
1401
LocationInfo () : _filename (), _line (0) {}
1402
void setup (Filename f, int l);
1426
Location () : _filename (), _line (0), _column (0) {}
1427
Location (Filename f, int l, int c = 0) { setup (f, l, c); }
1428
void setup (Filename f, int l, int c = 0) {
1403
1433
const Filename &filename () const { return _filename; }
1404
1434
int line () const { return _line; }
1405
bool operator < (const LocationInfo &l) const;
1406
bool operator == (const LocationInfo &l) const;
1412
#endif /* __location_info_h__ */
1414
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
1419
#line 1420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
1422
class WinImportHandler;
1427
class ExtACBuilderCoupling;
1428
class ExtACSyntaxCoupling;
1430
class ExtACKeywords;
1433
class WinMemberExplSpec;
1434
class WinTypeKeywords;
1435
class PragmaOnceUnitState;
1437
class CCExprResolve;
1441
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
1442
class Location : public SmartPtr, public Printable {
1443
#line 1444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
1444
friend class ::WinIfExists;
1445
friend class ::WinImportHandler;
1446
friend class ::WinMacros;
1447
friend class ::CMatchSyntax;
1448
friend class ::ExtGnu;
1449
friend class ::ExtAC;
1450
friend class ::ExtACBuilderCoupling;
1451
friend class ::ExtACSyntaxCoupling;
1452
friend class ::ExtACTree;
1453
friend class ::ExtACKeywords;
1454
friend class ::WinAsm;
1455
friend class ::WinDeclSpecs;
1456
friend class ::WinMemberExplSpec;
1457
friend class ::WinTypeKeywords;
1458
friend class ::PragmaOnceUnitState;
1459
friend class ::PragmaOnce;
1460
friend class ::CCExprResolve;
1461
friend class ::CExprResolve;
1463
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
1465
LocationInfo *info () const { return (LocationInfo*)data (); }
1469
Location (Filename f, int l) { setup (f, l); }
1470
Location (LocationInfo *lptr) : SmartPtr (lptr) {}
1471
LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
1472
void setup (Filename f, int l);
1473
const Filename &filename () const { return info ()->filename (); }
1475
bool operator == (const Location &l) const;
1435
int column () const { return _column; }
1436
bool operator == (const Location &l) const {
1437
return filename () == l.filename () && line () == l.line () &&
1438
column () == l.column ();
1476
1440
bool operator != (const Location &l) const { return ! (*this == l); }
1477
bool operator < (const Location &l) const;
1441
bool operator < (const Location &l) const {
1442
// TODO: does it make sense to compare the filenames? better assert?
1443
if (filename () != l.filename ())
1445
return line () < l.line () && column () < l.column ();
1479
virtual void print (ostream &os) const {
1449
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
1481
1450
#ifdef VISUAL_STUDIO
1482
os << filename () << "(" << line () << ")";
1451
os << loc.filename () << "(" << loc.line () << ")";
1484
os << filename () << ":" << line ();
1453
os << loc.filename () << ":" << loc.line ();
1490
1457
} // namespace Puma
1492
1459
#endif /* __location_h__ */
1494
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
1461
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
1495
1462
// This file is part of PUMA.
1496
1463
// Copyright (C) 1999-2003 The PUMA developer team.
1618
1587
namespace Puma {
1621
#line 1622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
1624
class WinImportHandler;
1629
class ExtACBuilderCoupling;
1630
class ExtACSyntaxCoupling;
1632
class ExtACKeywords;
1635
class WinMemberExplSpec;
1636
class WinTypeKeywords;
1637
class PragmaOnceUnitState;
1639
class CCExprResolve;
1643
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
1644
1589
template <class Item>
1646
#line 1647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
1647
friend class ::WinIfExists;
1648
friend class ::WinImportHandler;
1649
friend class ::WinMacros;
1650
friend class ::CMatchSyntax;
1651
friend class ::ExtGnu;
1652
friend class ::ExtAC;
1653
friend class ::ExtACBuilderCoupling;
1654
friend class ::ExtACSyntaxCoupling;
1655
friend class ::ExtACTree;
1656
friend class ::ExtACKeywords;
1657
friend class ::WinAsm;
1658
friend class ::WinDeclSpecs;
1659
friend class ::WinMemberExplSpec;
1660
friend class ::WinTypeKeywords;
1661
friend class ::PragmaOnceUnitState;
1662
friend class ::PragmaOnce;
1663
friend class ::CCExprResolve;
1664
friend class ::CExprResolve;
1666
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
1669
static const long default_init_size = 5;
1670
static const long default_increment = 5;
1673
Array (long is = default_init_size, long incr = default_increment);
1674
Array (const Array<Item>& array);
1675
Array<Item>& operator =(const Array<Item>&);
1677
void append (const Item& item);
1678
void insert (long index, const Item& item);
1679
void prepend (const Item& item);
1680
void remove (long index);
1682
Item& get (long index);
1683
Item& operator[] (long index);
1684
Item fetch (long index) const;
1685
Item& lookup (long index) const;
1686
long length () const;
1592
static const long default_init_size = 5;
1593
static const long default_increment = 5;
1596
Array (long is = default_init_size, long incr = default_increment);
1597
Array (const Array<Item>& array);
1598
Array<Item>& operator =(const Array<Item>&);
1600
void append (const Item& item);
1601
void insert (long index, const Item& item);
1602
void prepend (const Item& item);
1603
void remove (long index);
1605
Item& get (long index);
1606
Item& operator[] (long index);
1607
Item fetch (long index) const;
1608
Item& lookup (long index) const;
1609
long length () const;
1694
void check (long wanted);
1697
template <class Item>
1698
inline Array<Item>::Array (long is, long incr)
1703
data = new Item[size];
1706
template <class Item>
1707
Array<Item>::Array (const Array<Item>& array)
1711
data = new Item[size];
1712
increment = array.increment;
1714
for (int pos = 0; pos < array.length (); pos++)
1715
append (array.lookup (pos));
1718
template <class Item>
1719
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
1725
data = new Item[size];
1726
increment = array.increment;
1728
for (int pos = 0; pos < array.length (); pos++)
1729
append (array.lookup (pos));
1733
template <class Item>
1734
Array<Item>::~Array ()
1740
template <class Item>
1741
inline void Array<Item>::check (long wanted)
1747
while (wanted >= size)
1752
new_data = new Item[size];
1753
for (int pos = 0; pos < count; pos++)
1754
new_data[pos] = data[pos];
1617
void grow (long wanted);
1620
template <class Item>
1621
inline Array<Item>::Array (long is, long incr) {
1628
template <class Item>
1629
Array<Item>::Array (const Array<Item>& array) {
1632
increment = array.increment;
1634
if (size && array.data) {
1635
data = new Item[size];
1636
for (; count < array.count; count++) {
1637
data[count] = array.data[count];
1643
template <class Item>
1644
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
1650
increment = array.increment;
1652
if (size && array.data) {
1653
data = new Item[size];
1654
for (; count < array.count; count++) {
1655
data[count] = array.data[count];
1663
template <class Item>
1664
Array<Item>::~Array () {
1669
template <class Item>
1670
inline void Array<Item>::grow (long wanted) {
1674
} while (wanted >= size);
1677
Item* new_data = new Item[size];
1678
for (long i = 0; i < count; i++) {
1679
new_data[i] = data[i];
1684
data = new Item[size];
1760
1687
template <class Item>
1761
inline void Array<Item>::append (const Item& item)
1764
data[count++] = item;
1767
template <class Item>
1768
void Array<Item>::prepend (const Item& item)
1773
template <class Item>
1774
void Array<Item>::insert (long index, const Item& item)
1777
for (int pos = count; pos > index; pos--)
1778
data[pos] = data[pos - 1];
1783
template <class Item>
1784
inline Item& Array<Item>::get (long index)
1792
template <class Item>
1793
inline Item& Array<Item>::operator[] (long index)
1798
template <class Item>
1799
inline Item Array<Item>::fetch (long index) const
1801
assert(index < count);
1805
template <class Item>
1806
inline long Array<Item>::length () const
1811
template <class Item>
1812
inline void Array<Item>::remove (long index)
1814
if (index < count && count > 0)
1816
for (int pos = index; pos < count - 1; pos++)
1817
data[pos] = data[pos + 1];
1688
inline void Array<Item>::append (const Item& item) {
1689
if (count >= size || ! data) {
1692
data[count++] = item;
1695
template <class Item>
1696
void Array<Item>::prepend (const Item& item) {
1700
template <class Item>
1701
void Array<Item>::insert (long index, const Item& item) {
1702
if (count >= size || ! data) {
1705
for (long i = count; i > index; i--)
1706
data[i] = data[i - 1];
1711
template <class Item>
1712
inline Item& Array<Item>::get (long index) {
1713
if (index >= size || ! data) {
1721
template <class Item>
1722
inline Item& Array<Item>::operator[] (long index) {
1726
template <class Item>
1727
inline Item Array<Item>::fetch (long index) const {
1728
assert(index < count && data);
1732
template <class Item>
1733
inline long Array<Item>::length () const {
1737
template <class Item>
1738
inline void Array<Item>::remove (long index) {
1739
if (index < count && count > 0) {
1740
for (long i = index; i < count - 1; i++)
1741
data[i] = data[i + 1];
1824
1748
inline void Array<int>::reset () {
1829
1753
template <class Item>
1830
void Array<Item>::reset ()
1835
size = default_init_size;
1836
increment = default_increment;
1837
data = new Item[size];
1754
void Array<Item>::reset () {
1759
size = default_init_size;
1760
increment = default_increment;
1761
data = new Item[size];
1840
1764
template <class Item>
1841
inline Item& Array<Item>::lookup (long index) const
1843
assert(index >= 0 && index < count);
1844
// if (index >= count) index = count - 1;
1845
// if (index < 0) index = 0;
1765
inline Item& Array<Item>::lookup (long index) const {
1766
assert(index >= 0 && index < count);
1850
1771
} // namespace Puma
2611
2600
// pointcut definitions
2613
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2602
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2617
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2606
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2620
2609
// initialize new state flag
2622
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2611
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2624
2613
public: template<class JoinPoint> void __a0_after
2625
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2614
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2627
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2616
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2628
2617
(JoinPoint *tjp)
2629
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2618
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2631
#line 2632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
2620
#line 2621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2633
2622
JoinPoint *&thisJoinPoint = tjp;
2635
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2624
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2637
#line 2638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
2626
#line 2627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2639
2628
typedef typename JoinPoint::That __JP_That;
2640
2629
typedef typename JoinPoint::Target __JP_Target;
2641
2630
typedef typename JoinPoint::Result __JP_Result;
2643
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2632
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2645
2634
thisJoinPoint->that ()->_once = false;
2647
#line 2648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
2651
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2636
#line 2637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2640
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2643
// initialize new flag for all managed units
2645
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2647
public: template<class JoinPoint> void __a1_after
2648
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2650
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2652
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2654
#line 2655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2656
typedef typename JoinPoint::That __JP_That;
2657
typedef typename JoinPoint::Target __JP_Target;
2658
typedef typename JoinPoint::Result __JP_Result;
2660
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2662
// go through the whole unit hash table and reset the
2663
// `#pragma once' state of the units
2665
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2667
for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
2668
(*iter).second->state ().onlyOnce (false);
2670
#line 2671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2674
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2655
2678
// this aspect should never be instantiated directly
2656
2679
PragmaOnceUnitState () {}
2658
#line 2659 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
2681
#line 2682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2661
2684
template <class JoinPoint>
2662
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
2685
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
2663
2686
::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
2688
template <class JoinPoint>
2689
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
2690
::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
2667
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2694
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2671
2698
#endif /* __PragmaOnceUnitState__ */
2673
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
2674
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
2675
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
2677
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
2678
// This file is part of PUMA.
2679
// Copyright (C) 1999-2003 The PUMA developer team.
2681
// This program is free software; you can redistribute it and/or
2682
// modify it under the terms of the GNU General Public License as
2683
// published by the Free Software Foundation; either version 2 of
2684
// the License, or (at your option) any later version.
2686
// This program is distributed in the hope that it will be useful,
2687
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2688
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2689
// GNU General Public License for more details.
2691
// You should have received a copy of the GNU General Public
2692
// License along with this program; if not, write to the Free
2693
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2694
// MA 02111-1307 USA
2696
#ifndef __UnitState__
2697
#define __UnitState__
2699
// The state of a unit:
2700
// 1. modified by manipulations and not updated at the class registry
2701
// 2. modified by manipulations and updated at the class registry
2702
// 3. unmodified by manipulations and not updated at the class registry
2703
// 4. unmodified by manipulations and updated at the class registry
2709
#line 2710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
2712
class WinImportHandler;
2717
class ExtACBuilderCoupling;
2718
class ExtACSyntaxCoupling;
2720
class ExtACKeywords;
2723
class WinMemberExplSpec;
2724
class WinTypeKeywords;
2725
class PragmaOnceUnitState;
2727
class CCExprResolve;
2731
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
2700
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2704
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2732
2705
class UnitState {
2733
#line 2734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
2706
#line 2707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
2707
friend class ::CCExprResolve;
2708
friend class ::CExprResolve;
2734
2709
friend class ::WinIfExists;
2735
2710
friend class ::WinImportHandler;
2736
2711
friend class ::WinMacros;
2737
friend class ::CMatchSyntax;
2738
friend class ::ExtGnu;
2712
friend class ::WinAsm;
2713
friend class ::WinDeclSpecs;
2714
friend class ::WinMemberExplSpec;
2715
friend class ::WinTypeKeywords;
2716
friend class ::WinFriend;
2739
2717
friend class ::ExtAC;
2740
2718
friend class ::ExtACBuilderCoupling;
2741
2719
friend class ::ExtACSyntaxCoupling;
2742
2720
friend class ::ExtACTree;
2743
2721
friend class ::ExtACKeywords;
2744
friend class ::WinAsm;
2745
friend class ::WinDeclSpecs;
2746
friend class ::WinMemberExplSpec;
2747
friend class ::WinTypeKeywords;
2722
friend class ::ExtGnu;
2748
2723
friend class ::PragmaOnceUnitState;
2749
2724
friend class ::PragmaOnce;
2750
friend class ::CCExprResolve;
2751
friend class ::CExprResolve;
2725
friend class ::CMatchSyntax;
2753
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
2727
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2755
2729
bool _modified;
6020
6081
// to controll which source code will be ignored.
6023
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6084
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6024
6085
namespace Puma {
6028
#line 6029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6089
#line 6090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
6029
6090
} // closed Puma
6091
class CCExprResolve;
6030
6093
class WinIfExists;
6031
6094
class WinImportHandler;
6032
6095
class WinMacros;
6098
class WinMemberExplSpec;
6099
class WinTypeKeywords;
6036
6102
class ExtACBuilderCoupling;
6037
6103
class ExtACSyntaxCoupling;
6038
6104
class ExtACTree;
6039
6105
class ExtACKeywords;
6042
class WinMemberExplSpec;
6043
class WinTypeKeywords;
6044
6107
class PragmaOnceUnitState;
6045
6108
class PragmaOnce;
6046
class CCExprResolve;
6048
6110
namespace Puma {
6050
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6112
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6051
6113
class PreLevelState {
6052
#line 6053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6114
#line 6115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
6115
friend class ::CCExprResolve;
6116
friend class ::CExprResolve;
6053
6117
friend class ::WinIfExists;
6054
6118
friend class ::WinImportHandler;
6055
6119
friend class ::WinMacros;
6056
friend class ::CMatchSyntax;
6057
friend class ::ExtGnu;
6120
friend class ::WinAsm;
6121
friend class ::WinDeclSpecs;
6122
friend class ::WinMemberExplSpec;
6123
friend class ::WinTypeKeywords;
6124
friend class ::WinFriend;
6058
6125
friend class ::ExtAC;
6059
6126
friend class ::ExtACBuilderCoupling;
6060
6127
friend class ::ExtACSyntaxCoupling;
6061
6128
friend class ::ExtACTree;
6062
6129
friend class ::ExtACKeywords;
6063
friend class ::WinAsm;
6064
friend class ::WinDeclSpecs;
6065
friend class ::WinMemberExplSpec;
6066
friend class ::WinTypeKeywords;
6130
friend class ::ExtGnu;
6067
6131
friend class ::PragmaOnceUnitState;
6068
6132
friend class ::PragmaOnce;
6069
friend class ::CCExprResolve;
6070
friend class ::CExprResolve;
6133
friend class ::CMatchSyntax;
6072
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6135
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6076
6139
// The state structure.
6077
6140
struct _state {
6078
#line 6079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6141
#line 6142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
6142
friend class ::CCExprResolve;
6143
friend class ::CExprResolve;
6079
6144
friend class ::WinIfExists;
6080
6145
friend class ::WinImportHandler;
6081
6146
friend class ::WinMacros;
6082
friend class ::CMatchSyntax;
6083
friend class ::ExtGnu;
6147
friend class ::WinAsm;
6148
friend class ::WinDeclSpecs;
6149
friend class ::WinMemberExplSpec;
6150
friend class ::WinTypeKeywords;
6151
friend class ::WinFriend;
6084
6152
friend class ::ExtAC;
6085
6153
friend class ::ExtACBuilderCoupling;
6086
6154
friend class ::ExtACSyntaxCoupling;
6087
6155
friend class ::ExtACTree;
6088
6156
friend class ::ExtACKeywords;
6089
friend class ::WinAsm;
6090
friend class ::WinDeclSpecs;
6091
friend class ::WinMemberExplSpec;
6092
friend class ::WinTypeKeywords;
6157
friend class ::ExtGnu;
6093
6158
friend class ::PragmaOnceUnitState;
6094
6159
friend class ::PragmaOnce;
6095
friend class ::CCExprResolve;
6096
friend class ::CExprResolve;
6160
friend class ::CMatchSyntax;
6098
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6162
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreLevelState.h"
6100
6164
bool state; // The level value.
6101
6165
bool passOn; // Decide whether code will be not ignored.
6574
6591
#endif /* __stack_h__ */
6576
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6577
using namespace Puma;
6581
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6586
#line 6587 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6587
class WinImportHandler;
6592
class ExtACBuilderCoupling;
6593
class ExtACSyntaxCoupling;
6595
class ExtACKeywords;
6598
class WinMemberExplSpec;
6599
class WinTypeKeywords;
6600
class PragmaOnceUnitState;
6602
class CCExprResolve;
6605
#line 36 "/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/PreprocessorParser.cc"
6610
static WinIfExists *aspectof () {
6611
static WinIfExists __instance;
6614
static WinIfExists *aspectOf () {
6619
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6621
#line 6622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6622
friend class ::WinImportHandler;
6623
friend class ::WinMacros;
6624
friend class ::CMatchSyntax;
6625
friend class ::ExtGnu;
6626
friend class ::ExtAC;
6627
friend class ::ExtACBuilderCoupling;
6628
friend class ::ExtACSyntaxCoupling;
6629
friend class ::ExtACTree;
6630
friend class ::ExtACKeywords;
6631
friend class ::WinAsm;
6632
friend class ::WinDeclSpecs;
6633
friend class ::WinMemberExplSpec;
6634
friend class ::WinTypeKeywords;
6635
friend class ::PragmaOnceUnitState;
6636
friend class ::PragmaOnce;
6637
friend class ::CCExprResolve;
6638
friend class ::CExprResolve;
6640
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6642
/********************************************************/
6643
/* Win __if_exists and __if_not_exists */
6644
/********************************************************/
6646
// pointcut definitions
6648
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6651
// structural extensions
6653
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6656
// preprocess __if_exists and __if_not_exists statements
6658
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6660
public: template<class JoinPoint> void __a0_around
6661
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6663
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6665
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6667
#line 6668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6669
JoinPoint *&thisJoinPoint = tjp;
6671
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6673
#line 6674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6675
typedef typename JoinPoint::That __JP_That;
6676
typedef typename JoinPoint::Target __JP_Target;
6677
typedef typename JoinPoint::Result __JP_Result;
6679
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6684
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6687
preparser = tjp->that ();
6688
tjp->proceed (); // get the next token
6689
token = *tjp->result ();
6691
type = token->type ();
6692
// __if_exists (...) { ... }
6693
if (type == TOK_IF_EXISTS) {
6694
preparser->skip_up_to (TOK_CLOSE_CURLY);
6695
*(Token**)thisJoinPoint->result () = preparser->next ();
6697
// __if_not_exists (...) { ... }
6698
} else if (type == TOK_IF_NOT_EXISTS) {
6699
preparser->skip_up_to (TOK_OPEN_CURLY);
6700
preparser->_depth.push (1);
6701
*(Token**)thisJoinPoint->result () = preparser->next ();
6704
// skip closing `}' of __if_not_exists
6705
if (preparser->_depth.length ()) {
6706
if (type == TOK_OPEN_CURLY)
6707
preparser->_depth.top () = preparser->_depth.top () + 1;
6708
else if (type == TOK_CLOSE_CURLY) {
6709
preparser->_depth.top () = preparser->_depth.top () - 1;
6710
if (preparser->_depth.top () == 0) {
6711
preparser->_depth.pop ();
6712
*(Token**)thisJoinPoint->result () = preparser->next ();
6719
#line 6720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6723
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6729
#line 6730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6732
template <class JoinPoint>
6733
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
6734
::WinIfExists::aspectof()->__a0_around (tjp);
6738
#line 88 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6743
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6746
// skip __if_exists resp. __if_not_exists statement
6748
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
6752
#endif /* __WinIfExists__ */
6754
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
6755
// This file is part of PUMA.
6756
// Copyright (C) 1999-2003 The PUMA developer team.
6758
// This program is free software; you can redistribute it and/or
6759
// modify it under the terms of the GNU General Public License as
6760
// published by the Free Software Foundation; either version 2 of
6761
// the License, or (at your option) any later version.
6763
// This program is distributed in the hope that it will be useful,
6764
// but WITHOUT ANY WARRANTY; without even the implied warranty of
6765
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6766
// GNU General Public License for more details.
6768
// You should have received a copy of the GNU General Public
6769
// License along with this program; if not, write to the Free
6770
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
6771
// MA 02111-1307 USA
6773
#ifndef __WinImportHandler__
6774
#define __WinImportHandler__
6776
/********************************************************/
6777
/* Win #import directive support */
6778
/********************************************************/
6781
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
6593
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
6782
6594
// This file is part of PUMA.
6783
6595
// Copyright (C) 1999-2003 The PUMA developer team.
7104
6920
#define __SimpleParser_h__
7107
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
6923
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
7108
6924
#include <vector>
7109
6925
using namespace std;
7111
6927
namespace Puma {
6931
* Simple string parser.
6932
* \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
7115
#line 7116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6935
#line 6936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7116
6936
} // closed Puma
6937
class CCExprResolve;
7117
6939
class WinIfExists;
7118
6940
class WinImportHandler;
7119
6941
class WinMacros;
6944
class WinMemberExplSpec;
6945
class WinTypeKeywords;
7123
6948
class ExtACBuilderCoupling;
7124
6949
class ExtACSyntaxCoupling;
7125
6950
class ExtACTree;
7126
6951
class ExtACKeywords;
7129
class WinMemberExplSpec;
7130
class WinTypeKeywords;
7131
6953
class PragmaOnceUnitState;
7132
6954
class PragmaOnce;
7133
class CCExprResolve;
7135
6956
namespace Puma {
7137
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
6958
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
7138
6959
class SimpleParser {
7139
#line 7140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
6960
#line 6961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
6961
friend class ::CCExprResolve;
6962
friend class ::CExprResolve;
7140
6963
friend class ::WinIfExists;
7141
6964
friend class ::WinImportHandler;
7142
6965
friend class ::WinMacros;
7143
friend class ::CMatchSyntax;
7144
friend class ::ExtGnu;
6966
friend class ::WinAsm;
6967
friend class ::WinDeclSpecs;
6968
friend class ::WinMemberExplSpec;
6969
friend class ::WinTypeKeywords;
6970
friend class ::WinFriend;
7145
6971
friend class ::ExtAC;
7146
6972
friend class ::ExtACBuilderCoupling;
7147
6973
friend class ::ExtACSyntaxCoupling;
7148
6974
friend class ::ExtACTree;
7149
6975
friend class ::ExtACKeywords;
7150
friend class ::WinAsm;
7151
friend class ::WinDeclSpecs;
7152
friend class ::WinMemberExplSpec;
7153
friend class ::WinTypeKeywords;
6976
friend class ::ExtGnu;
7154
6977
friend class ::PragmaOnceUnitState;
7155
6978
friend class ::PragmaOnce;
7156
friend class ::CCExprResolve;
7157
friend class ::CExprResolve;
6979
friend class ::CMatchSyntax;
7159
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
6981
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
7165
static int tokenize (const string &, vector<string> &,
7166
const string &delimiters = " ");
7167
static string strip (const string &);
6985
* Remove enclosing double-quotes from a string.
6986
* \param str The string to strip.
6987
* \return String without the enclosing double-quotes.
6989
static string strip (const string& str);
6991
* Splits a given string into tokens recognized by the given delimiters.
6992
* \param str The string to split.
6993
* \param tokens A vector for the tokens.
6994
* \param delimiters A string with the delimiters. Default is a space or tab.
6995
* \return Number of recognized tokens.
6997
static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
7001
* Get the position of the next token.
7002
* \param line The string to tokenize.
7003
* \param delimiters A string with the token delimiters.
7004
* \param pos The current position in the string.
7005
* \param lastPos The last position in the string.
7006
* \return The position of the next token.
7008
static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
7010
* Get the begin of the next token.
7011
* \param line The string to tokenize.
7012
* \param delimiters A string with the token delimiters.
7013
* \param pos The current position in the string.
7014
* \return The begin of the next token.
7016
static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
7018
* Get the end of the next token.
7019
* \param line The string to tokenize.
7020
* \param delimiters A string with the token delimiters.
7021
* \param lastPos The last position in the string, i.e. the begin of the next token.
7022
* \return The end of the next token.
7024
static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
7173
7030
#endif /* __SimpleParser_h__ */
7175
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7032
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7176
7033
using namespace std;
7178
7035
namespace Puma {
7038
/** \brief The %Options %Parser searches command line parameters for options and
7039
* handles their option arguments, if applicable.
7182
#line 7183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7042
#line 7043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7183
7043
} // closed Puma
7044
class CCExprResolve;
7184
7046
class WinIfExists;
7185
7047
class WinImportHandler;
7186
7048
class WinMacros;
7051
class WinMemberExplSpec;
7052
class WinTypeKeywords;
7190
7055
class ExtACBuilderCoupling;
7191
7056
class ExtACSyntaxCoupling;
7192
7057
class ExtACTree;
7193
7058
class ExtACKeywords;
7196
class WinMemberExplSpec;
7197
class WinTypeKeywords;
7198
7060
class PragmaOnceUnitState;
7199
7061
class PragmaOnce;
7200
class CCExprResolve;
7202
7063
namespace Puma {
7204
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7065
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7205
7066
class OptsParser : public SimpleParser {
7206
#line 7207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7067
#line 7068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7068
friend class ::CCExprResolve;
7069
friend class ::CExprResolve;
7207
7070
friend class ::WinIfExists;
7208
7071
friend class ::WinImportHandler;
7209
7072
friend class ::WinMacros;
7210
friend class ::CMatchSyntax;
7211
friend class ::ExtGnu;
7073
friend class ::WinAsm;
7074
friend class ::WinDeclSpecs;
7075
friend class ::WinMemberExplSpec;
7076
friend class ::WinTypeKeywords;
7077
friend class ::WinFriend;
7212
7078
friend class ::ExtAC;
7213
7079
friend class ::ExtACBuilderCoupling;
7214
7080
friend class ::ExtACSyntaxCoupling;
7215
7081
friend class ::ExtACTree;
7216
7082
friend class ::ExtACKeywords;
7217
friend class ::WinAsm;
7218
friend class ::WinDeclSpecs;
7219
friend class ::WinMemberExplSpec;
7220
friend class ::WinTypeKeywords;
7083
friend class ::ExtGnu;
7221
7084
friend class ::PragmaOnceUnitState;
7222
7085
friend class ::PragmaOnce;
7223
friend class ::CCExprResolve;
7224
friend class ::CExprResolve;
7226
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7086
friend class ::CMatchSyntax;
7088
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7092
/** \brief Vector holding the commandline parameters.
7094
* This vector is filled in the constructor
7228
7096
vector<string> m_argv;
7098
/** \brief Position of current parameter analyzed by the
7229
7101
unsigned int m_curarg;
7103
/** \brief The increment added to m_curarg used to get to the next
7104
* entry of m_argv which shall be analysed.
7230
7106
unsigned int m_tonext;
7108
/** \brief %Option number of currently processed element of m_argv
7112
/** \brief Name of current option
7116
/** \brief Value of current option argument
7238
enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
7240
enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
7124
* Return codes for OptsParser::getOption() and OptsParser::getArgument()
7127
NOARG =-4, /**< %Option has no argument */
7128
ERR = -3, /**< Error when parsing option */
7129
NOOPTION = -2, /**< Command line parameter is not an option */
7130
UNKNOWN = -1, /**< Parameter is an unknown option */
7131
FINISH = 0 /**< All options are handled */
7135
* Type of argument associated to an option
7138
AT_NONE = 0, /**< %Option receives no argument */
7139
AT_MANDATORY = 1, /**< %Option requires an argument */
7140
AT_OPTIONAL = 2 /**< %Option has optionally an argument */
7144
* Type for specifying an array of options recognized by the %Option %Parser.
7145
* An array of this type has to be passed to the constructor OptsParser::OptsParser()
7242
7147
struct Option {
7243
#line 7244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7148
#line 7149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7149
friend class ::CCExprResolve;
7150
friend class ::CExprResolve;
7244
7151
friend class ::WinIfExists;
7245
7152
friend class ::WinImportHandler;
7246
7153
friend class ::WinMacros;
7247
friend class ::CMatchSyntax;
7248
friend class ::ExtGnu;
7154
friend class ::WinAsm;
7155
friend class ::WinDeclSpecs;
7156
friend class ::WinMemberExplSpec;
7157
friend class ::WinTypeKeywords;
7158
friend class ::WinFriend;
7249
7159
friend class ::ExtAC;
7250
7160
friend class ::ExtACBuilderCoupling;
7251
7161
friend class ::ExtACSyntaxCoupling;
7252
7162
friend class ::ExtACTree;
7253
7163
friend class ::ExtACKeywords;
7254
friend class ::WinAsm;
7255
friend class ::WinDeclSpecs;
7256
friend class ::WinMemberExplSpec;
7257
friend class ::WinTypeKeywords;
7164
friend class ::ExtGnu;
7258
7165
friend class ::PragmaOnceUnitState;
7259
7166
friend class ::PragmaOnce;
7260
friend class ::CCExprResolve;
7261
friend class ::CExprResolve;
7263
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7167
friend class ::CMatchSyntax;
7169
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
7171
int number; /**< Number associated with this option */
7172
const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
7173
const char *longName; /**< Long namen of this option */
7174
const char *desc; /**< Description of this option **/
7175
ArgType argType; /**< Type of argument for this option */
7179
/** Pointer to array of available options. This value is set to the value of the
7180
* parameter passed to the constructor OptsParser::OptsParser()
7273
7182
const Option *m_opts;
7276
OptsParser (int, char **, const Option *);
7277
OptsParser (const string &, const Option *);
7185
/** \brief Constructor of OptsParser
7187
* \param argc Number of parameters to be analyzed
7188
* \param argv Parameters to be analyzed
7189
* \param opts Pointer to array of options which shall be
7190
* recognized by the options parser
7193
OptsParser (int argc, char **argv, const Option *opts);
7195
/** \brief Constructor of OptsParser
7197
* \param line Reference to string with parameters to analyse
7198
* The paramaters are extracted from the string by splitting it up
7204
* \param opts Pointer to array of options which shall be
7205
* recognized by the options parser
7207
OptsParser (const string &line, const Option *);
7279
int getCurrentArgNum () const;
7280
int getNextArgNum () const;
7210
/** Get next parameter without modification.
7211
* No option parsing is done
7213
* \return OptsParser::NOOPTION or OptsParser::FINISH
7215
int getRawOption ();
7217
/** \brief Get next option
7219
* This function processes the next parameter passed to the constructor
7220
* OptsParser::OptsParser().
7221
* That is, search for options and eventually process
7222
* option and option arguement.
7224
* \return Number of option recognized by the options parser or
7225
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
7226
* OptsParser::UNKNOWN or OptsParser::FINISH.
7281
7229
int getOption ();
7231
/** \brief Get result of last processed parameter
7233
* The number returned by this function is identical to the number
7234
* returned by the last call of OptsParser::getOption
7236
* \return Number of option recognized by the options parser or
7237
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
7238
* OptsParser::UNKNOWN or OptsParser::FINISH.
7282
7241
int getResult () const;
7243
/** \brief Get option argument of last processed parameter
7245
* This function returns the argument of the option processed during
7246
* OptsParser::getOption. If the option does not provide any argument
7247
* the string will be empty.
7249
* If OptsParser::getOption or respectively OptsParser::getResult returns with
7250
* OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter,
7251
* which is no option, of course.
7253
* \return Argument of last processed parameter
7284
7255
const string &getArgument () const;
7257
/** \brief Get option name of last processed parameter
7259
* If the last processed parameter did not contain an option the string
7260
* returned by this function is empty.
7262
* \return Name of last processed parameter
7285
7265
const string &getOptionName () const;
7267
/** \brief Get position of current argument
7269
* \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
7272
int getCurrentArgNum () const;
7274
/** \brief Get position of next argument
7276
* \return Position of next parameter which will be processed by the %Options %Parser
7279
int getNextArgNum () const;
7287
bool revokeArgument();
7290
int getShortOption (const string &);
7291
int getLongOption (const string &);
7292
bool processOption (const string &, unsigned int,ArgType argtype);
7282
/** Search for an option in m_argv at position m_curarg
7284
* \param arg Currently processed parameter
7286
const Option* findOption(const string &arg, bool isLong);
7288
/** Process an option found by OptsParser::findOption().
7290
bool processOption (const string &arg, const Option* curOpt, bool isLong);
7459
7460
#endif /* __Config_h__ */
7461
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7462
using namespace Puma;
7466
#line 7467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7472
class ExtACBuilderCoupling;
7473
class ExtACSyntaxCoupling;
7475
class ExtACKeywords;
7478
class WinMemberExplSpec;
7479
class WinTypeKeywords;
7480
class PragmaOnceUnitState;
7482
class CCExprResolve;
7485
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7486
class WinImportHandler {
7487
#line 7488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7490
static WinImportHandler *aspectof () {
7491
static WinImportHandler __instance;
7494
static WinImportHandler *aspectOf () {
7499
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7501
#line 7502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7502
friend class ::WinIfExists;
7503
friend class ::WinMacros;
7504
friend class ::CMatchSyntax;
7505
friend class ::ExtGnu;
7506
friend class ::ExtAC;
7507
friend class ::ExtACBuilderCoupling;
7508
friend class ::ExtACSyntaxCoupling;
7509
friend class ::ExtACTree;
7510
friend class ::ExtACKeywords;
7511
friend class ::WinAsm;
7512
friend class ::WinDeclSpecs;
7513
friend class ::WinMemberExplSpec;
7514
friend class ::WinTypeKeywords;
7515
friend class ::PragmaOnceUnitState;
7516
friend class ::PragmaOnce;
7517
friend class ::CCExprResolve;
7518
friend class ::CExprResolve;
7520
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7522
/********************************************************/
7523
/* Win #import directive */
7524
/********************************************************/
7528
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7531
// add access method for _importHandler data member
7533
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7536
// handle --import-handler option
7538
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7540
public: template<class JoinPoint> void __a0_before
7541
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7543
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7544
(JoinPoint *tjp, const Config &config, bool process_includes)
7545
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7547
#line 7548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7549
JoinPoint *&thisJoinPoint = tjp;
7551
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7553
#line 7554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7555
typedef typename JoinPoint::That __JP_That;
7556
typedef typename JoinPoint::Target __JP_Target;
7557
typedef typename JoinPoint::Result __JP_Result;
7559
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7561
const ConfOption *opt;
7564
if (process_includes) {
7565
opt = config.Option ("--import-handler");
7566
if (opt && opt->Arguments ()) {
7567
// delete old import handler
7568
if (thisJoinPoint->that ()->_importHandler)
7569
delete[] thisJoinPoint->that ()->_importHandler;
7571
// get new import handler
7572
tmp = new char[strlen (opt->Argument (0))+1];
7573
strcpy (tmp, opt->Argument (0));
7574
thisJoinPoint->that ()->_importHandler = tmp;
7578
#line 7579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7582
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7586
WinImportHandler () {}
7588
#line 7589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7591
template <class JoinPoint, class Binding>
7592
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
7593
typedef typename Binding::template Arg<0> Arg0;
7594
typedef typename Binding::template Arg<1> Arg1;
7595
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
7599
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
7603
#endif /* __WinImportHandler__ */
7605
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7606
// This file is part of PUMA.
7607
// Copyright (C) 1999-2003 The PUMA developer team.
7609
// This program is free software; you can redistribute it and/or
7610
// modify it under the terms of the GNU General Public License as
7611
// published by the Free Software Foundation; either version 2 of
7612
// the License, or (at your option) any later version.
7614
// This program is distributed in the hope that it will be useful,
7615
// but WITHOUT ANY WARRANTY; without even the implied warranty of
7616
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7617
// GNU General Public License for more details.
7619
// You should have received a copy of the GNU General Public
7620
// License along with this program; if not, write to the Free
7621
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
7622
// MA 02111-1307 USA
7624
#ifndef __PragmaOnce__
7625
#define __PragmaOnce__
7627
/********************************************************/
7628
/* Win #pragma once support aspect */
7629
/********************************************************/
7632
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7637
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7638
using namespace Puma;
7642
#line 7643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7644
class WinImportHandler;
7649
class ExtACBuilderCoupling;
7650
class ExtACSyntaxCoupling;
7652
class ExtACKeywords;
7655
class WinMemberExplSpec;
7656
class WinTypeKeywords;
7657
class PragmaOnceUnitState;
7658
class CCExprResolve;
7661
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7663
#line 7664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7666
static PragmaOnce *aspectof () {
7667
static PragmaOnce __instance;
7670
static PragmaOnce *aspectOf () {
7675
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7677
#line 7678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7678
friend class ::WinIfExists;
7679
friend class ::WinImportHandler;
7680
friend class ::WinMacros;
7681
friend class ::CMatchSyntax;
7682
friend class ::ExtGnu;
7683
friend class ::ExtAC;
7684
friend class ::ExtACBuilderCoupling;
7685
friend class ::ExtACSyntaxCoupling;
7686
friend class ::ExtACTree;
7687
friend class ::ExtACKeywords;
7688
friend class ::WinAsm;
7689
friend class ::WinDeclSpecs;
7690
friend class ::WinMemberExplSpec;
7691
friend class ::WinTypeKeywords;
7692
friend class ::PragmaOnceUnitState;
7693
friend class ::CCExprResolve;
7694
friend class ::CExprResolve;
7696
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7698
/******************************************************/
7699
/* detect #pragma once in the token stream of cpp */
7700
/******************************************************/
7702
// pointcut definitions
7704
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7707
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7710
// extend the preprocessor parser by the filter state
7712
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7715
// initialize the filter state
7717
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7719
public: template<class JoinPoint> void __a0_after
7720
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7722
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7724
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7726
#line 7727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7728
typedef typename JoinPoint::That __JP_That;
7729
typedef typename JoinPoint::Target __JP_Target;
7730
typedef typename JoinPoint::Result __JP_Result;
7732
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7734
// TODO: it would be better to have construction advice -> but in lem file
7735
tjp->that ()->_pragma_token = 0;
7737
#line 7738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7741
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7744
// filter #pragma once
7746
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7748
public: template<class JoinPoint> void __a1_after
7749
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7751
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7753
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7755
#line 7756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7757
typedef typename JoinPoint::That __JP_That;
7758
typedef typename JoinPoint::Target __JP_Target;
7759
typedef typename JoinPoint::Result __JP_Result;
7761
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7763
Token *tok = *tjp->result ();
7765
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7766
&that = *tjp->that ();
7767
if (!tok || !tok->is_directive ()) {
7768
that._pragma_token = 0;
7771
if (strcmp ("#pragma", tok->text ()) == 0) {
7772
that._pragma_token = tok;
7774
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
7775
Unit *unit = (Unit*)tok->belonging_to ();
7777
unit->state ().onlyOnce (true);
7780
#line 7781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7784
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7787
/********************************************************/
7788
/* block the handling of pragma once files */
7789
/********************************************************/
7791
// don't let file includer include files twice
7792
// to be precise: the file is included again, but the inclusion produces
7795
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7797
public: template<class JoinPoint> void __a2_around
7798
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7800
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7801
(JoinPoint *tjp, Unit *unit)
7802
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7804
#line 7805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7806
typedef typename JoinPoint::That __JP_That;
7807
typedef typename JoinPoint::Target __JP_Target;
7808
typedef typename JoinPoint::Result __JP_Result;
7810
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7812
if (! unit || ! unit->state ().onlyOnce ())
7815
#line 7816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7819
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7822
// includeFile shall return 0 if the file was not included
7824
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7826
public: template<class JoinPoint> void __a3_after
7827
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7829
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7831
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7833
#line 7834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7835
typedef typename JoinPoint::That __JP_That;
7836
typedef typename JoinPoint::Target __JP_Target;
7837
typedef typename JoinPoint::Result __JP_Result;
7839
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7841
Unit *&unit = *tjp->result ();
7842
if (unit && unit->state ().onlyOnce ())
7845
#line 7846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7849
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7853
// this aspect should never be instantiated directly
7856
#line 7857 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7859
template <class JoinPoint>
7860
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
7861
::PragmaOnce::aspectof()->__a0_after (tjp);
7863
template <class JoinPoint>
7864
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
7865
::PragmaOnce::aspectof()->__a1_after (tjp);
7867
template <class JoinPoint, class Binding>
7868
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
7869
typedef typename Binding::template Arg<0> Arg0;
7870
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
7872
template <class JoinPoint>
7873
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
7874
::PragmaOnce::aspectof()->__a3_after (tjp);
7878
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
7882
#endif /* __PragmaOnce__ */
7884
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7885
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7886
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
7888
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
7889
// This file is part of PUMA.
7890
// Copyright (C) 1999-2003 The PUMA developer team.
7892
// This program is free software; you can redistribute it and/or
7893
// modify it under the terms of the GNU General Public License as
7894
// published by the Free Software Foundation; either version 2 of
7895
// the License, or (at your option) any later version.
7897
// This program is distributed in the hope that it will be useful,
7898
// but WITHOUT ANY WARRANTY; without even the implied warranty of
7899
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7900
// GNU General Public License for more details.
7902
// You should have received a copy of the GNU General Public
7903
// License along with this program; if not, write to the Free
7904
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
7905
// MA 02111-1307 USA
7907
#ifndef __preprocessor_parser__
7908
#define __preprocessor_parser__
7910
// Preprocessor parser class. !!! The preprocessor parser has to
7911
// be added last to the composite parser of a translation unit !!!
7914
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
7916
#line 7917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7462
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
7464
#line 7465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7918
7466
#ifndef __ac_fwd_ExtACKeywords__
7919
7467
#define __ac_fwd_ExtACKeywords__
7920
7468
class ExtACKeywords;
7922
template <class JoinPoint, class Binding>
7923
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
7924
template <class JoinPoint, class Binding>
7925
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
7926
template <class JoinPoint>
7927
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
7470
template <class JoinPoint>
7471
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
7472
template <class JoinPoint>
7473
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
7474
template <class JoinPoint>
7475
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
7931
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7932
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7479
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7480
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
7935
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
7483
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
7936
7484
// This file is part of PUMA.
7937
7485
// Copyright (C) 1999-2003 The PUMA developer team.
8023
7571
#ifndef __scan_buffer_h__
8024
7572
#define __scan_buffer_h__
7575
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
7576
using namespace std;
8026
7578
namespace Puma {
8030
#line 8031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7581
#line 7582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
8031
7582
} // closed Puma
7583
class CCExprResolve;
8032
7585
class WinIfExists;
8033
7586
class WinImportHandler;
8034
7587
class WinMacros;
7590
class WinMemberExplSpec;
7591
class WinTypeKeywords;
8038
7594
class ExtACBuilderCoupling;
8039
7595
class ExtACSyntaxCoupling;
8040
7596
class ExtACTree;
8041
7597
class ExtACKeywords;
8044
class WinMemberExplSpec;
8045
class WinTypeKeywords;
8046
7599
class PragmaOnceUnitState;
8047
7600
class PragmaOnce;
8048
class CCExprResolve;
8050
7602
namespace Puma {
8052
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
7604
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
8053
7605
class ScanBuffer {
8054
#line 8055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7606
#line 7607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7607
friend class ::CCExprResolve;
7608
friend class ::CExprResolve;
8055
7609
friend class ::WinIfExists;
8056
7610
friend class ::WinImportHandler;
8057
7611
friend class ::WinMacros;
8058
friend class ::CMatchSyntax;
8059
friend class ::ExtGnu;
7612
friend class ::WinAsm;
7613
friend class ::WinDeclSpecs;
7614
friend class ::WinMemberExplSpec;
7615
friend class ::WinTypeKeywords;
7616
friend class ::WinFriend;
8060
7617
friend class ::ExtAC;
8061
7618
friend class ::ExtACBuilderCoupling;
8062
7619
friend class ::ExtACSyntaxCoupling;
8063
7620
friend class ::ExtACTree;
8064
7621
friend class ::ExtACKeywords;
8065
friend class ::WinAsm;
8066
friend class ::WinDeclSpecs;
8067
friend class ::WinMemberExplSpec;
8068
friend class ::WinTypeKeywords;
7622
friend class ::ExtGnu;
8069
7623
friend class ::PragmaOnceUnitState;
8070
7624
friend class ::PragmaOnce;
8071
friend class ::CCExprResolve;
8072
friend class ::CExprResolve;
7625
friend class ::CMatchSyntax;
8074
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
7627
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
8077
typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
7630
typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
7633
int _token; // start position of current token
7634
int _pos; // current position (in token; _pos >= _token && pos < filled)
7635
char *_buffer; // token to the buffer that contains all input characters
7636
int _buff_size; // size of the input buffer
7640
ScanBuffer () : _state (STATE_NEW) {}
7642
// init buffer to directly scan from a string
7643
void init (const char *str, int l = 0);
8079
virtual ~ScanBuffer () {}
8081
virtual char next () = 0;
8082
virtual char *token () = 0;
8083
virtual int len () const = 0;
8084
virtual void reset () = 0;
8085
virtual void retry () = 0;
8086
virtual void accept (int len) = 0;
8087
virtual void more (int len) = 0;
8088
virtual State state () const = 0;
7645
char next () { return _buffer[_pos++]; }
7646
char lookahead () { return _buffer[_pos]; }
7647
char *token () const { return _buffer + _token; }
7648
int len () const { return _pos - _token; }
7649
void reset () { _token = _pos = 0; }
7650
void retry () { _pos = _token; }
7651
void accept (int len) {
7655
void more (int len) { _pos = _token + len; }
7657
if (_state == STATE_OK && _pos >= _buff_size)
8094
7666
#endif /* __scan_buffer_h__ */
8096
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
7668
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
8097
7669
namespace Puma {
8101
#line 8102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7673
#line 7674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
8102
7674
} // closed Puma
7675
class CCExprResolve;
8103
7677
class WinIfExists;
8104
7678
class WinImportHandler;
8105
7679
class WinMacros;
7682
class WinMemberExplSpec;
7683
class WinTypeKeywords;
8109
7686
class ExtACBuilderCoupling;
8110
7687
class ExtACSyntaxCoupling;
8111
7688
class ExtACTree;
8112
7689
class ExtACKeywords;
8115
class WinMemberExplSpec;
8116
class WinTypeKeywords;
8117
7691
class PragmaOnceUnitState;
8118
7692
class PragmaOnce;
8119
class CCExprResolve;
8121
7694
namespace Puma {
8123
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
8125
#line 8126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
7696
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
7697
class CScanBuffer : public ScanBuffer {
7698
#line 7699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
7699
friend class ::CCExprResolve;
7700
friend class ::CExprResolve;
8126
7701
friend class ::WinIfExists;
8127
7702
friend class ::WinImportHandler;
8128
7703
friend class ::WinMacros;
8129
friend class ::CMatchSyntax;
8130
friend class ::ExtGnu;
7704
friend class ::WinAsm;
7705
friend class ::WinDeclSpecs;
7706
friend class ::WinMemberExplSpec;
7707
friend class ::WinTypeKeywords;
7708
friend class ::WinFriend;
8131
7709
friend class ::ExtAC;
8132
7710
friend class ::ExtACBuilderCoupling;
8133
7711
friend class ::ExtACSyntaxCoupling;
8134
7712
friend class ::ExtACTree;
8135
7713
friend class ::ExtACKeywords;
8136
friend class ::WinAsm;
8137
friend class ::WinDeclSpecs;
8138
friend class ::WinMemberExplSpec;
8139
friend class ::WinTypeKeywords;
7714
friend class ::ExtGnu;
8140
7715
friend class ::PragmaOnceUnitState;
8141
7716
friend class ::PragmaOnce;
8142
friend class ::CCExprResolve;
8143
friend class ::CExprResolve;
8145
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
8147
ScanBuffer *next_buffer;
7717
friend class ::CMatchSyntax;
7719
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
8154
void decorate (ScanBuffer *nb) { next_buffer = nb; }
7726
CScanBuffer () : _new_line_pos (-1) {}
8155
7727
inline char next ();
8156
7728
inline void reset ();
7729
inline void retry ();
8157
7730
inline void accept (int len);
8158
inline void retry ();
8159
bool new_line () const { return on_new_line; }
8160
char *token () { return next_buffer->token (); }
8161
int len () const { return next_buffer->len (); }
8162
void more (int len) { next_buffer->more (len); }
8163
ScanBuffer::State state () const { return next_buffer->state (); }
7731
inline bool new_line (int len) const;
8167
7735
inline char CScanBuffer::next () {
8168
char character = next_buffer->next ();
8169
if (character == '\n' && nl_pos == -1)
8170
nl_pos = len () - 1;
7736
char character = ScanBuffer::next ();
7737
if (character == '\n' && _new_line_pos == -1)
7738
_new_line_pos = len ();
7739
if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
7740
ScanBuffer::lookahead () == '\\')
8172
7742
return character;
8175
7745
inline void CScanBuffer::reset () {
8176
next_buffer->reset ();
7746
ScanBuffer::reset ();
8183
7751
inline void CScanBuffer::retry () {
8185
next_buffer->retry ();
7752
ScanBuffer::retry ();
8189
7756
inline void CScanBuffer::accept (int len) {
8190
on_new_line = (nl_pos >= 0 && nl_pos < len);
8192
next_buffer->accept (len);
7757
ScanBuffer::accept (len);
7761
inline bool CScanBuffer::new_line (int len) const {
7762
return _new_line_pos != -1 && _new_line_pos <= len;
8195
7765
} // namespace Puma
8197
7767
#endif // __CScanBuffer_h__
8199
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
7769
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
8200
7770
// This file is part of PUMA.
8201
7771
// Copyright (C) 1999-2003 The PUMA developer team.
8707
8141
#endif /* __keyword_recognizer_h__ */
8709
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
8143
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
8710
8144
namespace Puma {
8714
#line 8715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
8148
#line 8149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
8715
8149
} // closed Puma
8150
class CCExprResolve;
8716
8152
class WinIfExists;
8717
8153
class WinImportHandler;
8718
8154
class WinMacros;
8157
class WinMemberExplSpec;
8158
class WinTypeKeywords;
8722
8161
class ExtACBuilderCoupling;
8723
8162
class ExtACSyntaxCoupling;
8724
8163
class ExtACTree;
8725
8164
class ExtACKeywords;
8728
class WinMemberExplSpec;
8729
class WinTypeKeywords;
8730
8166
class PragmaOnceUnitState;
8731
8167
class PragmaOnce;
8732
class CCExprResolve;
8734
8169
namespace Puma {
8736
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
8171
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
8737
8172
class CRecognizer {
8738
#line 8739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
8173
#line 8174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
8174
friend class ::CCExprResolve;
8175
friend class ::CExprResolve;
8739
8176
friend class ::WinIfExists;
8740
8177
friend class ::WinImportHandler;
8741
8178
friend class ::WinMacros;
8742
friend class ::CMatchSyntax;
8743
friend class ::ExtGnu;
8179
friend class ::WinAsm;
8180
friend class ::WinDeclSpecs;
8181
friend class ::WinMemberExplSpec;
8182
friend class ::WinTypeKeywords;
8183
friend class ::WinFriend;
8744
8184
friend class ::ExtAC;
8745
8185
friend class ::ExtACBuilderCoupling;
8746
8186
friend class ::ExtACSyntaxCoupling;
8747
8187
friend class ::ExtACTree;
8748
8188
friend class ::ExtACKeywords;
8749
friend class ::WinAsm;
8750
friend class ::WinDeclSpecs;
8751
friend class ::WinMemberExplSpec;
8752
friend class ::WinTypeKeywords;
8189
friend class ::ExtGnu;
8753
8190
friend class ::PragmaOnceUnitState;
8754
8191
friend class ::PragmaOnce;
8755
friend class ::CCExprResolve;
8756
friend class ::CExprResolve;
8758
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
8760
CScanBuffer scan_buffer;
8192
friend class ::CMatchSyntax;
8194
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
8761
8196
CCommentRecognizer comment_recognizer;
8762
8197
Array<KeywordRecognizer*> additional_keyword_recognizers;
8200
CScanBuffer scan_buffer; // TODO: temporarily made public!
8765
8202
typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
8766
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE,
8203
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE,
8767
8204
KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
8769
CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
8206
CRecognizer () : directives(true), wildcards (false),
8207
aspectc (false), macro_ops (false),
8770
8208
std_c (true), std_cplusplus (true) {}
8771
CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
8772
macro_ops (false) { setup (buffer); }
8209
void allow_directives (bool flag = true) { directives = flag; }
8773
8210
void allow_wildcards (bool flag = true) { wildcards = flag; }
8774
8211
void allow_aspectc (bool flag = true) { aspectc = flag; }
8775
8212
void allow_macro_ops (bool flag = true) { macro_ops = flag; }
8776
8213
void allow_std_c (bool flag = true) { std_c = flag; }
8777
8214
void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
8778
void setup (ScanBuffer &buffer);
8779
8216
int recognize (Lang &lang, int &expr, int &len);
8780
Mode mode () { return scan_mode; }
8781
bool new_line () const { return scan_buffer.new_line (); }
8217
Mode mode () const { return scan_mode; }
8218
void mode (Mode mode) { scan_mode = mode; }
8782
8219
CScanBuffer& buffer () { return scan_buffer; }
8783
8220
void addRecognizer(KeywordRecognizer &recognizer)
8784
8221
{ additional_keyword_recognizers.append(&recognizer); }
8787
static MappedOrangeRecognizer<CScanBuffer> string_recognizer;
8788
8224
static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
8789
8225
static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
8790
8226
static OrangeRecognizer<CScanBuffer> dir_recognizer;
8791
static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
8792
8227
static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
8793
8228
static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
8794
8229
static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
8796
8231
Mode scan_mode;
8797
bool check_directive;
8798
8233
bool wildcards;
8800
8235
bool macro_ops;
9787
9249
class PrePredicateManager;
9790
#line 9791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
9793
class WinImportHandler;
9798
class ExtACBuilderCoupling;
9799
class ExtACSyntaxCoupling;
9801
class ExtACKeywords;
9804
class WinMemberExplSpec;
9805
class WinTypeKeywords;
9806
class PragmaOnceUnitState;
9808
class CCExprResolve;
9812
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9252
#line 9253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9254
class CCExprResolve;
9257
class WinImportHandler;
9261
class WinMemberExplSpec;
9262
class WinTypeKeywords;
9265
class ExtACBuilderCoupling;
9266
class ExtACSyntaxCoupling;
9268
class ExtACKeywords;
9270
class PragmaOnceUnitState;
9275
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9277
#line 9278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9280
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
9281
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
9283
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9284
// This file is part of PUMA.
9285
// Copyright (C) 1999-2003 The PUMA developer team.
9287
// This program is free software; you can redistribute it and/or
9288
// modify it under the terms of the GNU General Public License as
9289
// published by the Free Software Foundation; either version 2 of
9290
// the License, or (at your option) any later version.
9292
// This program is distributed in the hope that it will be useful,
9293
// but WITHOUT ANY WARRANTY; without even the implied warranty of
9294
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9295
// GNU General Public License for more details.
9297
// You should have received a copy of the GNU General Public
9298
// License along with this program; if not, write to the Free
9299
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
9300
// MA 02111-1307 USA
9302
#ifndef __WinIfExists__
9303
#define __WinIfExists__
9305
/********************************************************/
9306
/* Win __if_exists and __if_not_exists support aspect */
9307
/********************************************************/
9310
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9313
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9318
#line 9319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9319
class CCExprResolve;
9321
class WinImportHandler;
9325
class WinMemberExplSpec;
9326
class WinTypeKeywords;
9329
class ExtACBuilderCoupling;
9330
class ExtACSyntaxCoupling;
9332
class ExtACKeywords;
9334
class PragmaOnceUnitState;
9338
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9340
#line 9341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9343
static WinIfExists *aspectof () {
9344
static WinIfExists __instance;
9347
static WinIfExists *aspectOf () {
9352
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9354
#line 9355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9355
friend class ::CCExprResolve;
9356
friend class ::CExprResolve;
9357
friend class ::WinImportHandler;
9358
friend class ::WinMacros;
9359
friend class ::WinAsm;
9360
friend class ::WinDeclSpecs;
9361
friend class ::WinMemberExplSpec;
9362
friend class ::WinTypeKeywords;
9363
friend class ::WinFriend;
9364
friend class ::ExtAC;
9365
friend class ::ExtACBuilderCoupling;
9366
friend class ::ExtACSyntaxCoupling;
9367
friend class ::ExtACTree;
9368
friend class ::ExtACKeywords;
9369
friend class ::ExtGnu;
9370
friend class ::PragmaOnceUnitState;
9371
friend class ::PragmaOnce;
9372
friend class ::CMatchSyntax;
9374
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9376
/********************************************************/
9377
/* Win __if_exists and __if_not_exists */
9378
/********************************************************/
9380
// pointcut definitions
9382
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9385
// structural extensions
9387
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9390
// preprocess __if_exists and __if_not_exists statements
9392
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9394
public: template<class JoinPoint> void __a0_around
9395
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9397
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9399
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9401
#line 9402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9403
JoinPoint *&thisJoinPoint = tjp;
9405
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9407
#line 9408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9409
typedef typename JoinPoint::That __JP_That;
9410
typedef typename JoinPoint::Target __JP_Target;
9411
typedef typename JoinPoint::Result __JP_Result;
9413
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9418
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9421
preparser = tjp->that ();
9422
tjp->proceed (); // get the next token
9423
token = *tjp->result ();
9425
type = token->type ();
9426
// __if_exists (...) { ... }
9427
if (type == Puma::TOK_IF_EXISTS) {
9428
preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
9429
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
9431
// __if_not_exists (...) { ... }
9432
} else if (type == Puma::TOK_IF_NOT_EXISTS) {
9433
preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
9434
preparser->_depth.push (1);
9435
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
9438
// skip closing `}' of __if_not_exists
9439
if (preparser->_depth.length ()) {
9440
if (type == Puma::TOK_OPEN_CURLY)
9441
preparser->_depth.top () = preparser->_depth.top () + 1;
9442
else if (type == Puma::TOK_CLOSE_CURLY) {
9443
preparser->_depth.top () = preparser->_depth.top () - 1;
9444
if (preparser->_depth.top () == 0) {
9445
preparser->_depth.pop ();
9446
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
9453
#line 9454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9457
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9463
#line 9464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9466
template <class JoinPoint>
9467
__attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
9468
::WinIfExists::aspectof()->__a0_around (tjp);
9472
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9477
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9480
// skip __if_exists resp. __if_not_exists statement
9482
#line 135 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
9486
#endif /* __WinIfExists__ */
9488
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9492
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9494
#line 9495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9497
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
9498
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
9500
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9501
// This file is part of PUMA.
9502
// Copyright (C) 1999-2003 The PUMA developer team.
9504
// This program is free software; you can redistribute it and/or
9505
// modify it under the terms of the GNU General Public License as
9506
// published by the Free Software Foundation; either version 2 of
9507
// the License, or (at your option) any later version.
9509
// This program is distributed in the hope that it will be useful,
9510
// but WITHOUT ANY WARRANTY; without even the implied warranty of
9511
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9512
// GNU General Public License for more details.
9514
// You should have received a copy of the GNU General Public
9515
// License along with this program; if not, write to the Free
9516
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
9517
// MA 02111-1307 USA
9519
#ifndef __PragmaOnce__
9520
#define __PragmaOnce__
9522
/********************************************************/
9523
/* Win #pragma once support aspect */
9524
/********************************************************/
9527
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9531
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9533
#line 9534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9534
class CCExprResolve;
9537
class WinImportHandler;
9541
class WinMemberExplSpec;
9542
class WinTypeKeywords;
9545
class ExtACBuilderCoupling;
9546
class ExtACSyntaxCoupling;
9548
class ExtACKeywords;
9550
class PragmaOnceUnitState;
9553
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9555
#line 9556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9558
static PragmaOnce *aspectof () {
9559
static PragmaOnce __instance;
9562
static PragmaOnce *aspectOf () {
9567
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9569
#line 9570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9570
friend class ::CCExprResolve;
9571
friend class ::CExprResolve;
9572
friend class ::WinIfExists;
9573
friend class ::WinImportHandler;
9574
friend class ::WinMacros;
9575
friend class ::WinAsm;
9576
friend class ::WinDeclSpecs;
9577
friend class ::WinMemberExplSpec;
9578
friend class ::WinTypeKeywords;
9579
friend class ::WinFriend;
9580
friend class ::ExtAC;
9581
friend class ::ExtACBuilderCoupling;
9582
friend class ::ExtACSyntaxCoupling;
9583
friend class ::ExtACTree;
9584
friend class ::ExtACKeywords;
9585
friend class ::ExtGnu;
9586
friend class ::PragmaOnceUnitState;
9587
friend class ::CMatchSyntax;
9589
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9591
/******************************************************/
9592
/* detect #pragma once in the token stream of cpp */
9593
/******************************************************/
9595
// pointcut definitions
9597
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9600
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9603
// extend the preprocessor parser by the filter state
9605
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9608
// initialize the filter state
9610
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9612
public: template<class JoinPoint> void __a0_after
9613
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9615
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9617
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9619
#line 9620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9621
typedef typename JoinPoint::That __JP_That;
9622
typedef typename JoinPoint::Target __JP_Target;
9623
typedef typename JoinPoint::Result __JP_Result;
9625
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9627
// TODO: it would be better to have construction advice -> but in lem file
9628
tjp->that ()->_pragma_token = 0;
9630
#line 9631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9634
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9637
// filter #pragma once
9639
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9641
public: template<class JoinPoint> void __a1_after
9642
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9644
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9646
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9648
#line 9649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9650
typedef typename JoinPoint::That __JP_That;
9651
typedef typename JoinPoint::Target __JP_Target;
9652
typedef typename JoinPoint::Result __JP_Result;
9654
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9656
Puma::Token *tok = *tjp->result ();
9658
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9659
&that = *tjp->that ();
9660
if (!tok || !tok->is_directive ()) {
9661
that._pragma_token = 0;
9664
if (strcmp ("#pragma", tok->text ()) == 0) {
9665
that._pragma_token = tok;
9667
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
9668
Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
9670
unit->state ().onlyOnce (true);
9673
#line 9674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9677
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9680
/********************************************************/
9681
/* block the handling of pragma once files */
9682
/********************************************************/
9684
// don't let file includer include files twice
9685
// to be precise: the file is included again, but the inclusion produces
9688
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9690
public: template<class JoinPoint> void __a2_around
9691
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9693
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9694
(JoinPoint *tjp, Puma::Unit *unit)
9695
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9697
#line 9698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9699
typedef typename JoinPoint::That __JP_That;
9700
typedef typename JoinPoint::Target __JP_Target;
9701
typedef typename JoinPoint::Result __JP_Result;
9703
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9705
if (! unit || ! unit->state ().onlyOnce ())
9708
#line 9709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9712
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9715
// includeFile shall return 0 if the file was not included
9717
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9719
public: template<class JoinPoint> void __a3_after
9720
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9722
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9724
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9726
#line 9727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9728
typedef typename JoinPoint::That __JP_That;
9729
typedef typename JoinPoint::Target __JP_Target;
9730
typedef typename JoinPoint::Result __JP_Result;
9732
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9734
Puma::Unit *&unit = *tjp->result ();
9735
if (unit && unit->state ().onlyOnce ())
9737
tjp->that ()->_guarded = true;
9739
#line 9740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9743
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9747
// this aspect should never be instantiated directly
9750
#line 9751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9753
template <class JoinPoint>
9754
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
9755
::PragmaOnce::aspectof()->__a0_after (tjp);
9757
template <class JoinPoint>
9758
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
9759
::PragmaOnce::aspectof()->__a1_after (tjp);
9761
template <class JoinPoint>
9762
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
9763
typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
9764
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
9766
template <class JoinPoint>
9767
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
9768
::PragmaOnce::aspectof()->__a3_after (tjp);
9772
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
9776
#endif /* __PragmaOnce__ */
9778
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9782
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9813
9783
class PreprocessorParser : public PumaTokenSource {
9814
#line 9815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
9784
#line 9785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
9785
friend class ::CCExprResolve;
9786
friend class ::CExprResolve;
9815
9787
friend class ::WinIfExists;
9816
9788
friend class ::WinImportHandler;
9817
9789
friend class ::WinMacros;
9818
friend class ::CMatchSyntax;
9819
friend class ::ExtGnu;
9790
friend class ::WinAsm;
9791
friend class ::WinDeclSpecs;
9792
friend class ::WinMemberExplSpec;
9793
friend class ::WinTypeKeywords;
9794
friend class ::WinFriend;
9820
9795
friend class ::ExtAC;
9821
9796
friend class ::ExtACBuilderCoupling;
9822
9797
friend class ::ExtACSyntaxCoupling;
9823
9798
friend class ::ExtACTree;
9824
9799
friend class ::ExtACKeywords;
9825
friend class ::WinAsm;
9826
friend class ::WinDeclSpecs;
9827
friend class ::WinMemberExplSpec;
9828
friend class ::WinTypeKeywords;
9800
friend class ::ExtGnu;
9829
9801
friend class ::PragmaOnceUnitState;
9830
9802
friend class ::PragmaOnce;
9831
friend class ::CCExprResolve;
9832
friend class ::CExprResolve;
9803
friend class ::CMatchSyntax;
9834
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9805
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
9837
9808
// The current mode for token preprocessing
10127
10092
#endif /* __pre_file_includer__ */
10129
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10131
#line 10132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10133
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10134
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
10135
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
10137
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10138
// This file is part of PUMA.
10139
// Copyright (C) 1999-2003 The PUMA developer team.
10141
// This program is free software; you can redistribute it and/or
10142
// modify it under the terms of the GNU General Public License as
10143
// published by the Free Software Foundation; either version 2 of
10144
// the License, or (at your option) any later version.
10146
// This program is distributed in the hope that it will be useful,
10147
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10148
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10149
// GNU General Public License for more details.
10151
// You should have received a copy of the GNU General Public
10152
// License along with this program; if not, write to the Free
10153
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
10154
// MA 02111-1307 USA
10156
#ifndef __preprocessor_parser__
10157
#define __preprocessor_parser__
10159
// Preprocessor parser class. !!! The preprocessor parser has to
10160
// be added last to the composite parser of a translation unit !!!
10162
#include "Puma/Stack.h"
10163
#include "Puma/Config.h"
10164
#include "Puma/CScanner.h"
10165
#include "Puma/CUnit.h"
10166
#include "Puma/TokenSource.h"
10167
#include "Puma/PreMacroExpander.h"
10168
#include <iostream>
10170
using namespace std;
10178
class PrePredicate;
10179
class PreLevelState;
10180
class PreParserState;
10181
class PreMacroManager;
10182
class PreFileIncluder;
10183
class PrePredicateManager;
10186
#line 10187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10189
class WinImportHandler;
10191
class CMatchSyntax;
10194
class ExtACBuilderCoupling;
10195
class ExtACSyntaxCoupling;
10197
class ExtACKeywords;
10199
class WinDeclSpecs;
10200
class WinMemberExplSpec;
10201
class WinTypeKeywords;
10202
class PragmaOnceUnitState;
10204
class CCExprResolve;
10205
class CExprResolve;
10208
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10209
class PreprocessorParser : public PumaTokenSource {
10210
#line 10211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10211
friend class ::WinIfExists;
10212
friend class ::WinImportHandler;
10213
friend class ::WinMacros;
10214
friend class ::CMatchSyntax;
10215
friend class ::ExtGnu;
10216
friend class ::ExtAC;
10217
friend class ::ExtACBuilderCoupling;
10218
friend class ::ExtACSyntaxCoupling;
10219
friend class ::ExtACTree;
10220
friend class ::ExtACKeywords;
10221
friend class ::WinAsm;
10222
friend class ::WinDeclSpecs;
10223
friend class ::WinMemberExplSpec;
10224
friend class ::WinTypeKeywords;
10225
friend class ::PragmaOnceUnitState;
10226
friend class ::PragmaOnce;
10227
friend class ::CCExprResolve;
10228
friend class ::CExprResolve;
10230
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10233
// The current mode for token preprocessing
10245
// Do not print the result of the parse process.
10248
// If the preprocessor parser is the last in chain,
10249
// the result of the parse process will be putted on
10250
// the given stream.
10253
// Stack for the macro expansion.
10254
Array<PreMacro*> *_macroStack;
10255
set<Token*> *_prescanned;
10257
PreLevelState *_levelState;
10258
PreParserState *_parserState;
10259
PreMacroManager *_macroManager;
10260
PreFileIncluder *_fileIncluder;
10261
PrePredicateManager *_predicateManager;
10262
UnitManager *_unitManager;
10263
UnitManager *_locals;
10265
PreMacroExpander _expander;
10266
PreMacroExpander _macroExpander;
10272
TokenStream *_stream;
10274
const char *_importHandler;
10277
// Parse a single token.
10278
Token* parseToken ();
10280
// Free the preprocessor syntax tree.
10281
void freeSyntaxTree (PreTree*);
10284
// Get several preprocessor informations.
10285
Array<PreMacro*> *macroStack () const { return _macroStack; }
10286
set<Token*> *prescanned () const { return _prescanned; }
10287
PreLevelState *levelState () const { return _levelState; }
10288
PreParserState *parserState () const { return _parserState; }
10289
PreMacroManager *macroManager () const { return _macroManager; }
10290
PreFileIncluder *fileIncluder () const { return _fileIncluder; }
10291
PrePredicateManager *predicateManager () const { return _predicateManager; }
10292
UnitManager *unitManager () const { return _unitManager; }
10293
UnitManager *locals () const { return _locals; }
10294
PreMode pre_mode () const { return _pre_mode; }
10295
bool supportGNU () const { return _support_gnu; }
10296
CScanner &cscanner () const { return (CScanner&) _scanner; }
10298
// Return the preprocessor syntax tree.
10299
PreTree *syntaxTree () const;
10302
PreprocessorParser (ErrorStream *, UnitManager *, UnitManager *,
10303
ostream &out = cout, int max_depth = 400);
10305
~PreprocessorParser ();
10307
// Reset the preprocessor parser.
10308
void reset (ErrorStream *, UnitManager *, UnitManager *,
10309
ostream &out = cout, int max_depth = 400);
10311
// Free the preprocessor syntax tree.
10312
void freeSyntaxTree ();
10314
// Configure the preprocessor.
10316
#line 10317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10317
public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
10319
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10320
void configure (const Config &, bool = true);
10322
// Get the next token to parse.
10324
#line 10325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10325
public: inline ::Puma::Token * __exec_old_next();
10327
#line 135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10330
TokenStream *scanner () const { return _stream; }
10331
void stream (TokenStream *s) { _stream = s; }
10333
// Map scanner token types to parser token types
10334
int map_token (Token *token, bool &parse);
10336
// Invoke the parse process.
10339
// Switch to silent mode.
10340
void silentMode (bool mode = true) { _silentMode = mode; }
10342
// Define a new macro.
10343
void defMacro (const char *, const char * = (const char*)0, char = 0) const;
10345
// Undefine a macro.
10346
void undefMacro (const char *) const;
10348
// Define a new predicate.
10349
void defPredicate (const char *, const char *) const;
10351
// Undefine a predicate.
10352
void undefPredicate (const char *) const;
10354
// Add a new include path.
10355
void addInclPath (const char *) const;
10357
void supportGNU (bool);
10359
typedef PreprocessorParser WinIfExistsCpp;
10361
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
10364
Stack < unsigned > _depth ;
10366
void skip_up_to ( int ) ; private:
10368
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10370
const char * importHandler ( ) const { return _importHandler ; } private:
10372
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
10373
Token * _pragma_token ;
10374
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10378
} // namespace Puma
10380
#endif /* __preprocessor_parser__ */
10382
#line 10383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10383
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
10385
#line 170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
10387
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10094
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10388
10095
// This file is part of PUMA.
10389
10096
// Copyright (C) 1999-2003 The PUMA developer team.
10727
10417
inline That *that() {return (That*)_that;}
10730
struct Binding_TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0_WinImportHandler_WinImportHandler_a0_before {
10731
typedef TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0 TJP;
10419
struct Binding_WinImportHandler_WinImportHandler_a0_before {
10732
10421
template <int I, int DUMMY = 0> struct Arg {
10733
10422
void val (TJP *tjp) {} // for VC7
10735
10424
template <int DUMMY> struct Arg<0, DUMMY> {
10736
static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
10425
static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
10738
10427
template <int DUMMY> struct Arg<1, DUMMY> {
10739
static TJP::Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
10428
static typename TJP::template Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
10742
struct Binding_TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0_WinMacros_WinMacros_a0_before {
10743
typedef TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0 TJP;
10431
struct Binding_WinMacros_WinMacros_a0_before {
10744
10433
template <int I, int DUMMY = 0> struct Arg {
10745
10434
void val (TJP *tjp) {} // for VC7
10747
10436
template <int DUMMY> struct Arg<0, DUMMY> {
10748
static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
10437
static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
10753
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
10443
#line 98 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
10754
10444
void PreprocessorParser::configure (const Config & arg0, bool arg1)
10755
#line 10756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10445
#line 10446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10757
void *args__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb[] = { (void*)&arg0, (void*)&arg1 };
10758
TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0 tjp;
10759
tjp._args = args__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb;
10760
tjp._that = (TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0::That*)this;
10761
AC::invoke_WinImportHandler_WinImportHandler_a0_before<TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0, Binding_TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0_WinImportHandler_WinImportHandler_a0_before> (&tjp);
10762
AC::invoke_WinMacros_WinMacros_a0_before<TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0, Binding_TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0_WinMacros_WinMacros_a0_before> (&tjp);
10763
this->__exec_old_configure(arg0, arg1);
10764
AC::invoke_PragmaOnce_PragmaOnce_a0_after<TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0> (&tjp);
10447
typedef TJP__ZN4Puma18PreprocessorParser9configureERKN4PumaE6Configb_0< void, ::Puma::PreprocessorParser , ::Puma::PreprocessorParser , AC::TL< const ::Puma::Config & , AC::TL< bool , AC::TLE > > > __TJP;
10449
tjp._args[0] = (void*)&arg0;
10450
tjp._args[1] = (void*)&arg1;
10451
tjp._that = (__TJP::That*)this;
10452
AC::invoke_WinImportHandler_WinImportHandler_a0_before<__TJP> (&tjp);
10453
AC::invoke_WinMacros_WinMacros_a0_before<__TJP> (&tjp);
10454
this->__exec_old_configure(arg0, arg1);
10455
AC::invoke_PragmaOnce_PragmaOnce_a0_after<__TJP> (&tjp);
10767
inline void Puma::PreprocessorParser::__exec_old_configure(const ::Puma::Config & c,bool process_includes)
10768
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
10458
__attribute__((always_inline)) inline void Puma::PreprocessorParser::__exec_old_configure(const ::Puma::Config & c,bool process_includes)
10459
#line 98 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
10973
10664
} // namespace Puma
10975
#line 10976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
10977
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_PreprocessorParser_cc__
10978
/*** begin of aspect includes ***/
10979
#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__)
10980
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
10982
#line 7 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
10984
#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__)
10985
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
10987
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
10989
#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__)
10990
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
10992
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
10666
#line 10667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10668
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreprocessorParser_cc__
10669
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
10670
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
10671
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
10672
#include "CCExprResolveCC.ah"
10674
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
10675
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
10676
#include "ExtACTree.ah"
10678
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
10679
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
10680
#include "ExtGnu.ah"
10683
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
10684
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
10685
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
10686
#include "CCExprResolveH.ah"
10689
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
10690
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
10691
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
10692
#include "CExprResolveCC.ah"
10694
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
10695
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
10696
#include "ExtACTree.ah"
10698
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
10699
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
10700
#include "ExtGnu.ah"
10703
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
10704
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
10705
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
10706
#include "CExprResolveH.ah"
10709
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
10710
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
10711
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
10713
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
10716
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
10717
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
10718
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
10720
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10721
// This file is part of PUMA.
10722
// Copyright (C) 1999-2003 The PUMA developer team.
10724
// This program is free software; you can redistribute it and/or
10725
// modify it under the terms of the GNU General Public License as
10726
// published by the Free Software Foundation; either version 2 of
10727
// the License, or (at your option) any later version.
10729
// This program is distributed in the hope that it will be useful,
10730
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10731
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10732
// GNU General Public License for more details.
10734
// You should have received a copy of the GNU General Public
10735
// License along with this program; if not, write to the Free
10736
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
10737
// MA 02111-1307 USA
10739
#ifndef __WinImportHandler__
10740
#define __WinImportHandler__
10742
/********************************************************/
10743
/* Win #import directive support */
10744
/********************************************************/
10747
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10749
#line 10750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10750
class CCExprResolve;
10751
class CExprResolve;
10755
class WinDeclSpecs;
10756
class WinMemberExplSpec;
10757
class WinTypeKeywords;
10760
class ExtACBuilderCoupling;
10761
class ExtACSyntaxCoupling;
10763
class ExtACKeywords;
10765
class PragmaOnceUnitState;
10767
class CMatchSyntax;
10769
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10770
class WinImportHandler {
10771
#line 10772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10774
static WinImportHandler *aspectof () {
10775
static WinImportHandler __instance;
10776
return &__instance;
10778
static WinImportHandler *aspectOf () {
10779
return aspectof ();
10783
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10785
#line 10786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10786
friend class ::CCExprResolve;
10787
friend class ::CExprResolve;
10788
friend class ::WinIfExists;
10789
friend class ::WinMacros;
10790
friend class ::WinAsm;
10791
friend class ::WinDeclSpecs;
10792
friend class ::WinMemberExplSpec;
10793
friend class ::WinTypeKeywords;
10794
friend class ::WinFriend;
10795
friend class ::ExtAC;
10796
friend class ::ExtACBuilderCoupling;
10797
friend class ::ExtACSyntaxCoupling;
10798
friend class ::ExtACTree;
10799
friend class ::ExtACKeywords;
10800
friend class ::ExtGnu;
10801
friend class ::PragmaOnceUnitState;
10802
friend class ::PragmaOnce;
10803
friend class ::CMatchSyntax;
10805
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10807
/********************************************************/
10808
/* Win #import directive */
10809
/********************************************************/
10813
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10816
// handle --import-handler option
10818
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10820
public: template<class JoinPoint> void __a0_before
10821
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10823
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10824
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
10825
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10827
#line 10828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10829
JoinPoint *&thisJoinPoint = tjp;
10831
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10833
#line 10834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10835
typedef typename JoinPoint::That __JP_That;
10836
typedef typename JoinPoint::Target __JP_Target;
10837
typedef typename JoinPoint::Result __JP_Result;
10839
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10841
const Puma::ConfOption *opt;
10844
if (process_includes) {
10845
opt = config.Option ("--import-handler");
10846
if (opt && opt->Arguments ()) {
10847
// delete old import handler
10848
if (thisJoinPoint->that ()->_importHandler)
10849
delete[] thisJoinPoint->that ()->_importHandler;
10851
// get new import handler
10852
tmp = new char[strlen (opt->Argument (0))+1];
10853
strcpy (tmp, opt->Argument (0));
10854
thisJoinPoint->that ()->_importHandler = tmp;
10858
#line 10859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10862
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10866
WinImportHandler () {}
10868
#line 10869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
10871
template <class JoinPoint>
10872
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
10873
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
10874
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
10875
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
10879
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
10883
#endif /* __WinImportHandler__ */
10885
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
10888
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
10889
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
10890
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
10892
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
10993
10893
// This file is part of PUMA.
10994
10894
// Copyright (C) 1999-2003 The PUMA developer team.
11117
11016
thisJoinPoint->that ()->defMacro ("__noop", " ");
11119
11018
// function-like macros
11120
PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
11019
Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
11121
11020
args->append ("__arg0");
11122
11021
thisJoinPoint->that ()->macroManager ()->addMacro (
11123
new PreMacro ("__declspec", args, " "));
11022
new Puma::PreMacro ("__declspec", args, " "));
11126
#line 11127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
11025
#line 11026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
11130
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11029
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11134
11033
WinMacros () {}
11136
#line 11137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
11035
#line 11036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
11138
11037
namespace AC {
11139
template <class JoinPoint, class Binding>
11140
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
11141
typedef typename Binding::template Arg<0> Arg0;
11038
template <class JoinPoint>
11039
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
11040
typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
11142
11041
::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
11146
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11045
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11150
11049
#endif /* __WinMacros__ */
11152
#line 15 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
11154
#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__)
11155
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11156
#include "CMatchSyntax.ah"
11158
#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__)
11159
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
11160
#include "ExtGnu.ah"
11162
#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__)
11163
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
11051
#line 59 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
11053
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11054
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11056
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
11059
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
11060
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
11061
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
11062
#include "WinAsm.ah"
11064
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11065
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11066
#include "ExtACTree.ah"
11069
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11070
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11071
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11072
#include "WinDeclSpecs.ah"
11075
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11076
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11077
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11078
#include "WinMemberExplSpec.ah"
11081
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11082
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11083
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11084
#include "WinTypeKeywords.ah"
11087
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
11088
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
11089
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
11090
#include "WinFriend.ah"
11093
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11094
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11095
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11164
11096
#include "ExtAC.ah"
11166
#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__)
11167
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11098
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11099
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11100
#include "ExtACTree.ah"
11102
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11103
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11104
#include "ExtACKeywords.ah"
11106
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11107
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11108
#include "ExtGnu.ah"
11110
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11111
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11112
#include "PragmaOnceUnitState.ah"
11114
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11115
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11116
#include "CMatchSyntax.ah"
11119
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11120
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11121
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11168
11122
#include "ExtACBuilderH.ah"
11170
#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__)
11171
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11125
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11126
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11127
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11172
11128
#include "ExtACBuilderCC.ah"
11174
#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__)
11175
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11130
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11131
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11132
#include "ExtACTree.ah"
11135
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11136
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11137
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11176
11138
#include "ExtACSyntaxH.ah"
11178
#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__)
11179
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11141
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11142
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11143
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11180
11144
#include "ExtACSyntaxCC.ah"
11182
#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__)
11183
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
11147
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11148
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11149
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11184
11150
#include "ExtACTree.ah"
11186
#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__)
11187
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11153
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11154
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11155
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11189
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11157
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11190
11158
// This file is part of PUMA.
11191
11159
// Copyright (C) 1999-2003 The PUMA developer team.
11769
11745
#endif /* __path_manager__ */
11771
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
11747
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
11749
#line 11750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
11751
#ifndef __ac_fwd_PragmaOnceUnitState__
11752
#define __ac_fwd_PragmaOnceUnitState__
11753
class PragmaOnceUnitState;
11755
template <class JoinPoint>
11756
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
11757
template <class JoinPoint>
11758
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
11762
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11763
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11766
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
11767
// This file is part of PUMA.
11768
// Copyright (C) 1999-2003 The PUMA developer team.
11770
// This program is free software; you can redistribute it and/or
11771
// modify it under the terms of the GNU General Public License as
11772
// published by the Free Software Foundation; either version 2 of
11773
// the License, or (at your option) any later version.
11775
// This program is distributed in the hope that it will be useful,
11776
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11777
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11778
// GNU General Public License for more details.
11780
// You should have received a copy of the GNU General Public
11781
// License along with this program; if not, write to the Free
11782
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
11783
// MA 02111-1307 USA
11785
#ifndef __UnitManager__
11786
#define __UnitManager__
11788
// Class UnitManager helps you to have control of all units built.
11790
#include <iostream>
11794
using namespace std;
11795
#include "Puma/ErrorStream.h"
11805
#line 11806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
11807
class CCExprResolve;
11808
class CExprResolve;
11810
class WinImportHandler;
11813
class WinDeclSpecs;
11814
class WinMemberExplSpec;
11815
class WinTypeKeywords;
11818
class ExtACBuilderCoupling;
11819
class ExtACSyntaxCoupling;
11821
class ExtACKeywords;
11823
class PragmaOnceUnitState;
11825
class CMatchSyntax;
11828
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
11829
class UnitManager {
11830
#line 11831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
11831
friend class ::CCExprResolve;
11832
friend class ::CExprResolve;
11833
friend class ::WinIfExists;
11834
friend class ::WinImportHandler;
11835
friend class ::WinMacros;
11836
friend class ::WinAsm;
11837
friend class ::WinDeclSpecs;
11838
friend class ::WinMemberExplSpec;
11839
friend class ::WinTypeKeywords;
11840
friend class ::WinFriend;
11841
friend class ::ExtAC;
11842
friend class ::ExtACBuilderCoupling;
11843
friend class ::ExtACSyntaxCoupling;
11844
friend class ::ExtACTree;
11845
friend class ::ExtACKeywords;
11846
friend class ::ExtGnu;
11847
friend class ::PragmaOnceUnitState;
11848
friend class ::PragmaOnce;
11849
friend class ::CMatchSyntax;
11851
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
11854
typedef map<string, Unit*> UMap;
11856
ErrorStream *_err; // For error messages.
11857
list<Unit*> _nonames; // Noname units list.
11858
mutable UMap _umap; // Named units, map supports fast lookup by name
11859
typedef UMap::value_type UMapPair;
11860
Tokenizer *_tokenizer; // File scanner.
11863
UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
11865
// Destructor: Delete all units.
11866
virtual ~UnitManager ();
11868
// Get the unit hash table.
11869
UMap &getTable () const { return _umap; }
11870
typedef UMap::iterator UMapIter;
11872
// Get/Set the file scanner that is used by newUnit
11873
Tokenizer *tokenizer () const { return _tokenizer; }
11874
void tokenizer (Tokenizer *t) { _tokenizer = t; }
11876
// Add a unit to manager.
11877
void addUnit (Unit *unit);
11879
// Remove (and destroy) a unit from hash table. If the name
11880
// is NULL remove all (but not the nonames).
11881
void removeUnit (const char *name = (const char*) 0, bool = false,
11882
bool destroy = true) const;
11884
// Empty a unit. Don't remove from hash table.
11885
// Preserve the last save location information.
11886
void closeUnit (const char *name = (const char*) 0, bool = false) const;
11888
// Build and add a new unit.
11889
Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
11891
// Get a unit by name.
11892
Unit *getUnit (const char *name, bool = false) const;
11894
// Print given unit to the given outstream. If no
11895
// name is given, print all units.
11896
void print (const char *name = (const char*) 0, bool = false,
11897
ostream &out = cout) const;
11899
// Destroy all noname units.
11900
void removeNonames ();
11902
// Initialize the unit manager and the managed
11903
// units for the next parse process.
11905
#line 11906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
11906
public: __attribute__((always_inline)) inline void __exec_old_init();
11908
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
11913
} // namespace Puma
11915
#endif /* __UnitManager__ */
11917
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
11772
11918
// This file is part of PUMA.
11773
11919
// Copyright (C) 1999-2003 The PUMA developer team.
12436
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12591
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12438
#line 12439 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
12593
#line 12594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
12594
friend class ::CCExprResolve;
12595
friend class ::CExprResolve;
12439
12596
friend class ::WinIfExists;
12440
12597
friend class ::WinImportHandler;
12441
12598
friend class ::WinMacros;
12442
friend class ::CMatchSyntax;
12443
friend class ::ExtGnu;
12599
friend class ::WinAsm;
12600
friend class ::WinDeclSpecs;
12601
friend class ::WinMemberExplSpec;
12602
friend class ::WinTypeKeywords;
12603
friend class ::WinFriend;
12444
12604
friend class ::ExtAC;
12445
12605
friend class ::ExtACBuilderCoupling;
12446
12606
friend class ::ExtACSyntaxCoupling;
12447
12607
friend class ::ExtACTree;
12448
friend class ::WinAsm;
12449
friend class ::WinDeclSpecs;
12450
friend class ::WinMemberExplSpec;
12451
friend class ::WinTypeKeywords;
12608
friend class ::ExtGnu;
12452
12609
friend class ::PragmaOnceUnitState;
12453
12610
friend class ::PragmaOnce;
12454
friend class ::CCExprResolve;
12455
friend class ::CExprResolve;
12611
friend class ::CMatchSyntax;
12457
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12613
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12460
12616
bool _prj_keywords;
12461
CProject *_project; // active project
12617
Puma::CProject *_project; // active project
12464
12620
ExtACKeywords () : _prj_keywords (false) {}
12466
12623
// allow/forbid AspectC++ keywords in normal project files
12467
12624
void prj_keywords (bool kw) { _prj_keywords = kw; }
12470
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12627
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12472
12629
public: void __a0_before
12473
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12630
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12475
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12476
(CProject &project)
12477
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12632
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12633
(Puma::CProject &project)
12634
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12479
12636
_project = &project;
12483
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12640
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12485
12642
public: template<class JoinPoint> void __a1_before
12486
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12643
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12488
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12489
(JoinPoint *tjp, Unit &unit)
12490
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12645
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12646
(JoinPoint *tjp, Puma::Unit &unit)
12647
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12492
#line 12493 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
12649
#line 12650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
12494
12651
typedef typename JoinPoint::That __JP_That;
12495
12652
typedef typename JoinPoint::Target __JP_Target;
12496
12653
typedef typename JoinPoint::Result __JP_Result;
12498
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12655
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12500
12657
if (!unit.isFile ())
12503
12660
bool ac_kw = _prj_keywords;
12504
12661
// in external files the AspectC++ keywords are always identifiers
12505
if (!((FileUnit*)&unit)->belongsTo (*_project)) {
12662
if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
12506
12663
ac_kw = false;
12508
12665
// in aspect headers keywords are keywords
12518
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12675
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12520
12677
public: template<class JoinPoint> void __a2_before
12521
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12678
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12523
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12680
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12524
12681
(JoinPoint *tjp)
12525
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12682
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12527
#line 12528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
12684
#line 12685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
12529
12686
typedef typename JoinPoint::That __JP_That;
12530
12687
typedef typename JoinPoint::Target __JP_Target;
12531
12688
typedef typename JoinPoint::Result __JP_Result;
12533
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12690
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12535
12692
_project = tjp->that ();
12538
#line 12539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/PreprocessorParser.cc"
12695
#line 12696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreprocessorParser.cc"
12540
12697
namespace AC {
12541
template <class JoinPoint, class Binding>
12542
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
12543
typedef typename Binding::template Arg<0> Arg0;
12698
template <class JoinPoint>
12699
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
12700
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
12544
12701
::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
12546
template <class JoinPoint, class Binding>
12547
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
12548
typedef typename Binding::template Arg<0> Arg0;
12703
template <class JoinPoint>
12704
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
12705
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
12549
12706
::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
12551
12708
template <class JoinPoint>
12552
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
12709
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
12553
12710
::ExtACKeywords::aspectof()->__a2_before (tjp);
12557
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12714
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12560
12717
#endif /* __ext_ac_keywords_ah__ */
12562
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
12564
#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__)
12565
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12719
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
12721
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12722
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12723
#include "PragmaOnceUnitState.ah"
12726
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
12727
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12728
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12729
#include "ExtACTree.ah"
12731
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
12732
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
12733
#include "ExtGnu.ah"
12736
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
12737
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12738
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12739
#include "ExtACTree.ah"
12741
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
12742
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
12743
#include "ExtGnuCSemDeclSpecs.ah"
12746
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12747
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12748
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12749
#include "PragmaOnceUnitState.ah"
12752
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12753
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12754
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12755
#include "PragmaOnceUnitState.ah"
12757
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12758
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12760
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/PreprocessorParser.cc"
12763
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12764
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12765
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12566
12766
#include "TraceSyntax.ah"
12568
#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__)
12569
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
12570
#include "WinAsm.ah"
12572
#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__)
12573
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
12574
#include "WinDeclSpecs.ah"
12576
#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__)
12577
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
12578
#include "WinMemberExplSpec.ah"
12580
#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__)
12581
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
12582
#include "WinTypeKeywords.ah"
12584
#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__)
12585
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12587
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
12589
#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__)
12590
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12592
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/PreprocessorParser.cc"
12594
#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__)
12595
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
12596
#include "CCExprResolveH.ah"
12598
#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__)
12599
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
12600
#include "CCExprResolveCC.ah"
12602
#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__)
12603
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
12604
#include "CExprResolveH.ah"
12606
#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__)
12607
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
12608
#include "CExprResolveCC.ah"
12610
/*** end of aspect includes ***/
12611
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
12612
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_PreprocessorParser_cc__
12613
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_PreprocessorParser_cc__
12769
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
12770
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
12771
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
12772
#include "CMatchSyntax.ah"
12775
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
12776
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreprocessorParser_cc__
12777
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_PreprocessorParser_cc__