1036
1298
/*****************************************************************************/
1300
/** \class CT_Expression CTree.h Puma/CTree.h
1301
* Base class for all expression tree nodes. */
1039
#line 1040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1303
#line 1304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1040
1304
} // closed Puma
1305
class CCExprResolve;
1041
1307
class WinIfExists;
1042
1308
class WinImportHandler;
1043
1309
class WinMacros;
1312
class WinMemberExplSpec;
1313
class WinTypeKeywords;
1047
1316
class ExtACBuilderCoupling;
1048
1317
class ExtACSyntaxCoupling;
1049
1318
class ExtACTree;
1050
1319
class ExtACKeywords;
1053
class WinMemberExplSpec;
1054
class WinTypeKeywords;
1055
1321
class PragmaOnceUnitState;
1056
1322
class PragmaOnce;
1057
class CCExprResolve;
1061
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1326
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1328
#line 1329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1331
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1332
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1333
#include "CCExprResolveH.ah"
1337
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1339
#line 1340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1342
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1343
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1344
#include "CExprResolveH.ah"
1348
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1062
1349
class CT_Expression : public CTree, public CSemValue {
1063
#line 1064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1350
#line 1351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1351
friend class ::CCExprResolve;
1352
friend class ::CExprResolve;
1064
1353
friend class ::WinIfExists;
1065
1354
friend class ::WinImportHandler;
1066
1355
friend class ::WinMacros;
1067
friend class ::CMatchSyntax;
1068
friend class ::ExtGnu;
1356
friend class ::WinAsm;
1357
friend class ::WinDeclSpecs;
1358
friend class ::WinMemberExplSpec;
1359
friend class ::WinTypeKeywords;
1360
friend class ::WinFriend;
1069
1361
friend class ::ExtAC;
1070
1362
friend class ::ExtACBuilderCoupling;
1071
1363
friend class ::ExtACSyntaxCoupling;
1072
1364
friend class ::ExtACTree;
1073
1365
friend class ::ExtACKeywords;
1074
friend class ::WinAsm;
1075
friend class ::WinDeclSpecs;
1076
friend class ::WinMemberExplSpec;
1077
friend class ::WinTypeKeywords;
1366
friend class ::ExtGnu;
1078
1367
friend class ::PragmaOnceUnitState;
1079
1368
friend class ::PragmaOnce;
1080
friend class ::CCExprResolve;
1081
friend class ::CExprResolve;
1369
friend class ::CMatchSyntax;
1083
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1371
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1086
1375
CT_Expression () {}
1378
/** Get the identifier for this node type. Can be compared with NodeName(). */
1089
1379
static const char *NodeId ();
1380
/** Get the name of the node. Can be compared with NodeId(). */
1090
1381
const char *NodeName () const { return NodeId (); }
1382
/** Get the type of the expression.
1383
* \return The type information object or NULL. */
1091
1384
CTypeInfo *Type () const { return type; }
1385
/** Get the value of the expression.
1386
* \return The value object or NULL. */
1092
1387
CExprValue *Value () const { return value; }
1388
/** Get the semantic value information of the expression.
1389
* \return The value object or NULL. */
1093
1390
CSemValue *SemValue () const { return (CSemValue*)this; }
1392
virtual CT_Expression *IsExpression () { return this; }
1095
1394
typedef CT_Expression CCExprResolveExpr;
1097
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1396
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1099
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
1398
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1100
1399
typedef CT_Expression CExprResolveExpr;
1102
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1104
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1105
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1109
#line 1110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1112
class WinImportHandler;
1117
class ExtACBuilderCoupling;
1118
class ExtACSyntaxCoupling;
1120
class ExtACKeywords;
1123
class WinMemberExplSpec;
1124
class WinTypeKeywords;
1125
class PragmaOnceUnitState;
1127
class CCExprResolve;
1131
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1401
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1403
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
1404
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1407
/** \class CT_Call CTree.h Puma/CTree.h
1408
* Tree node representing explicit or implicit function calls
1409
* including built-in or user-defined functions and overloaded
1412
#line 1413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1414
class CCExprResolve;
1417
class WinImportHandler;
1421
class WinMemberExplSpec;
1422
class WinTypeKeywords;
1425
class ExtACBuilderCoupling;
1426
class ExtACSyntaxCoupling;
1428
class ExtACKeywords;
1430
class PragmaOnceUnitState;
1435
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1437
#line 1438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1442
#include "CCExprResolveH.ah"
1446
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1448
#line 1449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1451
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1452
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1453
#include "CExprResolveH.ah"
1457
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1458
class CT_Call : public CT_Expression, public CSemObject {
1459
#line 1460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1460
friend class ::CCExprResolve;
1461
friend class ::CExprResolve;
1462
friend class ::WinIfExists;
1463
friend class ::WinImportHandler;
1464
friend class ::WinMacros;
1465
friend class ::WinAsm;
1466
friend class ::WinDeclSpecs;
1467
friend class ::WinMemberExplSpec;
1468
friend class ::WinTypeKeywords;
1469
friend class ::WinFriend;
1470
friend class ::ExtAC;
1471
friend class ::ExtACBuilderCoupling;
1472
friend class ::ExtACSyntaxCoupling;
1473
friend class ::ExtACTree;
1474
friend class ::ExtACKeywords;
1475
friend class ::ExtGnu;
1476
friend class ::PragmaOnceUnitState;
1477
friend class ::PragmaOnce;
1478
friend class ::CMatchSyntax;
1480
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1487
/** Get the identifier for this node type. Can be compared with NodeName(). */
1488
static const char *NodeId ();
1489
/** Get the name of the node. Can be compared with NodeId(). */
1490
const char *NodeName () const { return NodeId (); }
1491
/** Get the semantic information of the call.
1492
* \return The semantic information or NULL. */
1493
CSemObject *SemObject () const { return (CSemObject*)this; }
1495
CT_Call *IsCall () { return this; }
1497
typedef CT_Call CCExprResolveExpr;
1499
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1501
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1502
typedef CT_Call CExprResolveExpr;
1504
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1506
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
1507
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1510
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
1511
* Tree node representing implicit function calls detected by
1512
* the semantic analysis. */
1514
#line 1515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1516
class CCExprResolve;
1519
class WinImportHandler;
1523
class WinMemberExplSpec;
1524
class WinTypeKeywords;
1527
class ExtACBuilderCoupling;
1528
class ExtACSyntaxCoupling;
1530
class ExtACKeywords;
1532
class PragmaOnceUnitState;
1537
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1539
#line 1540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1542
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1543
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1544
#include "CCExprResolveH.ah"
1548
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1550
#line 1551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1553
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1554
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1555
#include "CExprResolveH.ah"
1559
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1560
class CT_ImplicitCall : public CT_Call {
1561
#line 1562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1562
friend class ::CCExprResolve;
1563
friend class ::CExprResolve;
1564
friend class ::WinIfExists;
1565
friend class ::WinImportHandler;
1566
friend class ::WinMacros;
1567
friend class ::WinAsm;
1568
friend class ::WinDeclSpecs;
1569
friend class ::WinMemberExplSpec;
1570
friend class ::WinTypeKeywords;
1571
friend class ::WinFriend;
1572
friend class ::ExtAC;
1573
friend class ::ExtACBuilderCoupling;
1574
friend class ::ExtACSyntaxCoupling;
1575
friend class ::ExtACTree;
1576
friend class ::ExtACKeywords;
1577
friend class ::ExtGnu;
1578
friend class ::PragmaOnceUnitState;
1579
friend class ::PragmaOnce;
1580
friend class ::CMatchSyntax;
1582
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1588
* \param arg The call argument. */
1589
CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
1590
/** Get the identifier for this node type. Can be compared with NodeName(). */
1591
static const char *NodeId ();
1592
/** Get the name of the node. Can be compared with NodeId(). */
1593
const char *NodeName () const { return NodeId (); }
1594
/** Get the number of sons. */
1595
int Sons () const { return 1; }
1596
/** Get the n-th son.
1597
* \param n The index of the son.
1598
* \return The n-th son or NULL. */
1599
CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
1601
* \param old_son The son to replace.
1602
* \param new_son The new son. */
1603
void ReplaceSon (CTree *old_son, CTree *new_son)
1604
{ CTree::ReplaceSon (_arg, old_son, new_son); }
1606
typedef CT_ImplicitCall CCExprResolveExpr;
1608
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1610
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1611
typedef CT_ImplicitCall CExprResolveExpr;
1613
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1615
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
1616
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1619
/** \class CT_String CTree.h Puma/CTree.h
1620
* Tree node representing a string literal. */
1622
#line 1623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1624
class CCExprResolve;
1627
class WinImportHandler;
1631
class WinMemberExplSpec;
1632
class WinTypeKeywords;
1635
class ExtACBuilderCoupling;
1636
class ExtACSyntaxCoupling;
1638
class ExtACKeywords;
1640
class PragmaOnceUnitState;
1645
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1647
#line 1648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1650
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1651
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1652
#include "CCExprResolveH.ah"
1656
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1658
#line 1659 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1661
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1662
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1663
#include "CExprResolveH.ah"
1667
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1132
1668
class CT_String : public CT_List, public CSemValue {
1133
#line 1134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1669
#line 1670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1670
friend class ::CCExprResolve;
1671
friend class ::CExprResolve;
1134
1672
friend class ::WinIfExists;
1135
1673
friend class ::WinImportHandler;
1136
1674
friend class ::WinMacros;
1137
friend class ::CMatchSyntax;
1138
friend class ::ExtGnu;
1675
friend class ::WinAsm;
1676
friend class ::WinDeclSpecs;
1677
friend class ::WinMemberExplSpec;
1678
friend class ::WinTypeKeywords;
1679
friend class ::WinFriend;
1139
1680
friend class ::ExtAC;
1140
1681
friend class ::ExtACBuilderCoupling;
1141
1682
friend class ::ExtACSyntaxCoupling;
1142
1683
friend class ::ExtACTree;
1143
1684
friend class ::ExtACKeywords;
1144
friend class ::WinAsm;
1145
friend class ::WinDeclSpecs;
1146
friend class ::WinMemberExplSpec;
1147
friend class ::WinTypeKeywords;
1685
friend class ::ExtGnu;
1148
1686
friend class ::PragmaOnceUnitState;
1149
1687
friend class ::PragmaOnce;
1150
friend class ::CCExprResolve;
1151
friend class ::CExprResolve;
1688
friend class ::CMatchSyntax;
1153
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1690
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1694
* \param size The number of sub-strings. */
1156
1695
CT_String (int size) : CT_List (size, 1) {}
1696
/** Get the identifier for this node type. Can be compared with NodeName(). */
1157
1697
static const char *NodeId ();
1698
/** Get the name of the node. Can be compared with NodeId(). */
1158
1699
const char *NodeName () const { return NodeId (); }
1701
/** Get the type of the string.
1702
* \return The type or NULL. */
1160
1703
CTypeInfo *Type () const { return type; }
1704
/** Get the string value.
1705
* \return The value or NULL. */
1161
1706
CExprValue *Value () const { return value; }
1707
/** Get the semantic value info object.
1708
* \return The semantic value object or NULL. */
1162
1709
CSemValue *SemValue () const { return (CSemValue*)this; }
1711
virtual CT_String *IsString () { return this; }
1164
1713
typedef CT_String CCExprResolveExpr;
1166
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1715
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1168
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
1717
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1169
1718
typedef CT_String CExprResolveExpr;
1171
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1720
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1173
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1174
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1722
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
1723
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1726
/** \class CT_WideString CTree.h Puma/CTree.h
1727
* Tree node representing a wide string literal. */
1178
#line 1179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1729
#line 1730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1179
1730
} // closed Puma
1731
class CCExprResolve;
1180
1733
class WinIfExists;
1181
1734
class WinImportHandler;
1182
1735
class WinMacros;
1738
class WinMemberExplSpec;
1739
class WinTypeKeywords;
1186
1742
class ExtACBuilderCoupling;
1187
1743
class ExtACSyntaxCoupling;
1188
1744
class ExtACTree;
1189
1745
class ExtACKeywords;
1192
class WinMemberExplSpec;
1193
class WinTypeKeywords;
1194
1747
class PragmaOnceUnitState;
1195
1748
class PragmaOnce;
1196
class CCExprResolve;
1200
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1752
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1754
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1757
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1758
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1759
#include "CCExprResolveH.ah"
1763
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1765
#line 1766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1768
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1769
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1770
#include "CExprResolveH.ah"
1774
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1201
1775
class CT_WideString : public CT_String {
1202
#line 1203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1776
#line 1777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1777
friend class ::CCExprResolve;
1778
friend class ::CExprResolve;
1203
1779
friend class ::WinIfExists;
1204
1780
friend class ::WinImportHandler;
1205
1781
friend class ::WinMacros;
1206
friend class ::CMatchSyntax;
1207
friend class ::ExtGnu;
1782
friend class ::WinAsm;
1783
friend class ::WinDeclSpecs;
1784
friend class ::WinMemberExplSpec;
1785
friend class ::WinTypeKeywords;
1786
friend class ::WinFriend;
1208
1787
friend class ::ExtAC;
1209
1788
friend class ::ExtACBuilderCoupling;
1210
1789
friend class ::ExtACSyntaxCoupling;
1211
1790
friend class ::ExtACTree;
1212
1791
friend class ::ExtACKeywords;
1213
friend class ::WinAsm;
1214
friend class ::WinDeclSpecs;
1215
friend class ::WinMemberExplSpec;
1216
friend class ::WinTypeKeywords;
1792
friend class ::ExtGnu;
1217
1793
friend class ::PragmaOnceUnitState;
1218
1794
friend class ::PragmaOnce;
1219
friend class ::CCExprResolve;
1220
friend class ::CExprResolve;
1795
friend class ::CMatchSyntax;
1222
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1797
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1801
* \param size The number of sub-strings. */
1225
1802
CT_WideString (int size) : CT_String (size) {}
1803
/** Get the identifier for this node type. Can be compared with NodeName(). */
1226
1804
static const char *NodeId ();
1805
/** Get the name of the node. Can be compared with NodeId(). */
1227
1806
const char *NodeName () const { return NodeId (); }
1229
1808
typedef CT_WideString CCExprResolveExpr;
1231
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1810
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1233
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
1812
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1234
1813
typedef CT_WideString CExprResolveExpr;
1236
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1815
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1238
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1239
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1817
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
1818
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1821
/** \class CT_Integer CTree.h Puma/CTree.h
1822
* Tree node representing an integer constant. */
1243
#line 1244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1824
#line 1825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1244
1825
} // closed Puma
1826
class CCExprResolve;
1245
1828
class WinIfExists;
1246
1829
class WinImportHandler;
1247
1830
class WinMacros;
1833
class WinMemberExplSpec;
1834
class WinTypeKeywords;
1251
1837
class ExtACBuilderCoupling;
1252
1838
class ExtACSyntaxCoupling;
1253
1839
class ExtACTree;
1254
1840
class ExtACKeywords;
1257
class WinMemberExplSpec;
1258
class WinTypeKeywords;
1259
1842
class PragmaOnceUnitState;
1260
1843
class PragmaOnce;
1261
class CCExprResolve;
1265
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1847
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1849
#line 1850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1852
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1853
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1854
#include "CCExprResolveH.ah"
1858
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1860
#line 1861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1863
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1864
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1865
#include "CExprResolveH.ah"
1869
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1266
1870
class CT_Integer : public CT_Expression {
1267
#line 1268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1871
#line 1872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1872
friend class ::CCExprResolve;
1873
friend class ::CExprResolve;
1268
1874
friend class ::WinIfExists;
1269
1875
friend class ::WinImportHandler;
1270
1876
friend class ::WinMacros;
1271
friend class ::CMatchSyntax;
1272
friend class ::ExtGnu;
1877
friend class ::WinAsm;
1878
friend class ::WinDeclSpecs;
1879
friend class ::WinMemberExplSpec;
1880
friend class ::WinTypeKeywords;
1881
friend class ::WinFriend;
1273
1882
friend class ::ExtAC;
1274
1883
friend class ::ExtACBuilderCoupling;
1275
1884
friend class ::ExtACSyntaxCoupling;
1276
1885
friend class ::ExtACTree;
1277
1886
friend class ::ExtACKeywords;
1278
friend class ::WinAsm;
1279
friend class ::WinDeclSpecs;
1280
friend class ::WinMemberExplSpec;
1281
friend class ::WinTypeKeywords;
1887
friend class ::ExtGnu;
1282
1888
friend class ::PragmaOnceUnitState;
1283
1889
friend class ::PragmaOnce;
1284
friend class ::CCExprResolve;
1285
friend class ::CExprResolve;
1890
friend class ::CMatchSyntax;
1287
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1892
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1289
1894
CTree *_value; // CT_Token
1292
CT_Integer (CTree *t) : _value (t) {}
1898
* \param token The token containing the integer value. */
1899
CT_Integer (CTree *token) { AddSon (_value, token); }
1900
/** Get the identifier for this node type. Can be compared with NodeName(). */
1293
1901
static const char *NodeId ();
1902
/** Get the name of the node. Can be compared with NodeId(). */
1294
1903
const char *NodeName () const { return NodeId (); }
1904
/** Get the number of sons. */
1295
1905
int Sons () const { return _value ? 1 : 0; }
1906
/** Get the n-th son.
1907
* \param n The index of the son.
1908
* \return The n-th son or NULL. */
1296
1909
CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
1911
* \param old_son The son to replace.
1912
* \param new_son The new son. */
1297
1913
void ReplaceSon (CTree *old_son, CTree *new_son)
1298
{ if (old_son == _value) _value = new_son; }
1914
{ CTree::ReplaceSon (_value, old_son, new_son); }
1300
1916
typedef CT_Integer CCExprResolveExpr;
1302
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1304
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
1920
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1305
1921
typedef CT_Integer CExprResolveExpr;
1307
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1923
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1309
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1310
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1925
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
1926
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1929
/** \class CT_Character CTree.h Puma/CTree.h
1930
* Tree node representing a single character constant. */
1314
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1932
#line 1933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1315
1933
} // closed Puma
1934
class CCExprResolve;
1316
1936
class WinIfExists;
1317
1937
class WinImportHandler;
1318
1938
class WinMacros;
1941
class WinMemberExplSpec;
1942
class WinTypeKeywords;
1322
1945
class ExtACBuilderCoupling;
1323
1946
class ExtACSyntaxCoupling;
1324
1947
class ExtACTree;
1325
1948
class ExtACKeywords;
1328
class WinMemberExplSpec;
1329
class WinTypeKeywords;
1330
1950
class PragmaOnceUnitState;
1331
1951
class PragmaOnce;
1332
class CCExprResolve;
1336
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1955
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1957
#line 1958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
1962
#include "CCExprResolveH.ah"
1966
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1968
#line 1969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1971
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1972
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
1973
#include "CExprResolveH.ah"
1977
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1337
1978
class CT_Character : public CT_Expression {
1338
#line 1339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
1979
#line 1980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1980
friend class ::CCExprResolve;
1981
friend class ::CExprResolve;
1339
1982
friend class ::WinIfExists;
1340
1983
friend class ::WinImportHandler;
1341
1984
friend class ::WinMacros;
1342
friend class ::CMatchSyntax;
1343
friend class ::ExtGnu;
1985
friend class ::WinAsm;
1986
friend class ::WinDeclSpecs;
1987
friend class ::WinMemberExplSpec;
1988
friend class ::WinTypeKeywords;
1989
friend class ::WinFriend;
1344
1990
friend class ::ExtAC;
1345
1991
friend class ::ExtACBuilderCoupling;
1346
1992
friend class ::ExtACSyntaxCoupling;
1347
1993
friend class ::ExtACTree;
1348
1994
friend class ::ExtACKeywords;
1349
friend class ::WinAsm;
1350
friend class ::WinDeclSpecs;
1351
friend class ::WinMemberExplSpec;
1352
friend class ::WinTypeKeywords;
1995
friend class ::ExtGnu;
1353
1996
friend class ::PragmaOnceUnitState;
1354
1997
friend class ::PragmaOnce;
1355
friend class ::CCExprResolve;
1356
friend class ::CExprResolve;
1998
friend class ::CMatchSyntax;
1358
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2000
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1360
2002
CTree *_value; // CT_Token
1363
CT_Character (CTree *t) : _value (t) {}
2006
* \param token The token containing the character value. */
2007
CT_Character (CTree *token) { AddSon (_value, token); }
2008
/** Get the identifier for this node type. Can be compared with NodeName(). */
1364
2009
static const char *NodeId ();
2010
/** Get the name of the node. Can be compared with NodeId(). */
1365
2011
const char *NodeName () const { return NodeId (); }
2012
/** Get the number of sons. */
1366
2013
int Sons () const { return 1; }
2014
/** Get the n-th son.
2015
* \param n The index of the son.
2016
* \return The n-th son or NULL. */
1367
2017
CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
2019
* \param old_son The son to replace.
2020
* \param new_son The new son. */
1368
2021
void ReplaceSon (CTree *old_son, CTree *new_son)
1369
{ if (old_son == _value) _value = new_son; }
2022
{ CTree::ReplaceSon (_value, old_son, new_son); }
1371
2024
typedef CT_Character CCExprResolveExpr;
1373
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2026
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1375
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2028
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1376
2029
typedef CT_Character CExprResolveExpr;
1378
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2031
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1380
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1381
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2033
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2034
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2037
/** \class CT_WideCharacter CTree.h Puma/CTree.h
2038
* Tree node representing a wide character constant. */
1385
#line 1386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2040
#line 2041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1386
2041
} // closed Puma
2042
class CCExprResolve;
1387
2044
class WinIfExists;
1388
2045
class WinImportHandler;
1389
2046
class WinMacros;
2049
class WinMemberExplSpec;
2050
class WinTypeKeywords;
1393
2053
class ExtACBuilderCoupling;
1394
2054
class ExtACSyntaxCoupling;
1395
2055
class ExtACTree;
1396
2056
class ExtACKeywords;
1399
class WinMemberExplSpec;
1400
class WinTypeKeywords;
1401
2058
class PragmaOnceUnitState;
1402
2059
class PragmaOnce;
1403
class CCExprResolve;
1407
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2063
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2065
#line 2066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2068
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2069
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2070
#include "CCExprResolveH.ah"
2074
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2076
#line 2077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2079
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2080
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2081
#include "CExprResolveH.ah"
2085
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1408
2086
class CT_WideCharacter : public CT_Character {
1409
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2087
#line 2088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2088
friend class ::CCExprResolve;
2089
friend class ::CExprResolve;
1410
2090
friend class ::WinIfExists;
1411
2091
friend class ::WinImportHandler;
1412
2092
friend class ::WinMacros;
1413
friend class ::CMatchSyntax;
1414
friend class ::ExtGnu;
2093
friend class ::WinAsm;
2094
friend class ::WinDeclSpecs;
2095
friend class ::WinMemberExplSpec;
2096
friend class ::WinTypeKeywords;
2097
friend class ::WinFriend;
1415
2098
friend class ::ExtAC;
1416
2099
friend class ::ExtACBuilderCoupling;
1417
2100
friend class ::ExtACSyntaxCoupling;
1418
2101
friend class ::ExtACTree;
1419
2102
friend class ::ExtACKeywords;
1420
friend class ::WinAsm;
1421
friend class ::WinDeclSpecs;
1422
friend class ::WinMemberExplSpec;
1423
friend class ::WinTypeKeywords;
2103
friend class ::ExtGnu;
1424
2104
friend class ::PragmaOnceUnitState;
1425
2105
friend class ::PragmaOnce;
1426
friend class ::CCExprResolve;
1427
friend class ::CExprResolve;
1429
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
1431
CTree *_value; // CT_Token
2106
friend class ::CMatchSyntax;
2108
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1434
CT_WideCharacter (CTree *t) : CT_Character (t) {}
2112
* \param token The token containing the wide character value. */
2113
CT_WideCharacter (CTree *token) : CT_Character (token) {}
2114
/** Get the identifier for this node type. Can be compared with NodeName(). */
1435
2115
static const char *NodeId ();
2116
/** Get the name of the node. Can be compared with NodeId(). */
1436
2117
const char *NodeName () const { return NodeId (); }
1437
void ReplaceSon (CTree *old_son, CTree *new_son)
1438
{ if (old_son == _value) _value = new_son; }
1440
2119
typedef CT_WideCharacter CCExprResolveExpr;
1442
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2121
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1444
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2123
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1445
2124
typedef CT_WideCharacter CExprResolveExpr;
1447
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2126
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1449
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1450
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2128
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2129
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2132
/** \class CT_Float CTree.h Puma/CTree.h
2133
* Tree node representing a floating point constant. */
1454
#line 1455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2135
#line 2136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1455
2136
} // closed Puma
2137
class CCExprResolve;
1456
2139
class WinIfExists;
1457
2140
class WinImportHandler;
1458
2141
class WinMacros;
2144
class WinMemberExplSpec;
2145
class WinTypeKeywords;
1462
2148
class ExtACBuilderCoupling;
1463
2149
class ExtACSyntaxCoupling;
1464
2150
class ExtACTree;
1465
2151
class ExtACKeywords;
1468
class WinMemberExplSpec;
1469
class WinTypeKeywords;
1470
2153
class PragmaOnceUnitState;
1471
2154
class PragmaOnce;
1472
class CCExprResolve;
1476
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2158
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2160
#line 2161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2163
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2164
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2165
#include "CCExprResolveH.ah"
2169
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2171
#line 2172 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2174
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2175
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2176
#include "CExprResolveH.ah"
2180
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1477
2181
class CT_Float : public CT_Expression {
1478
#line 1479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2182
#line 2183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2183
friend class ::CCExprResolve;
2184
friend class ::CExprResolve;
1479
2185
friend class ::WinIfExists;
1480
2186
friend class ::WinImportHandler;
1481
2187
friend class ::WinMacros;
1482
friend class ::CMatchSyntax;
1483
friend class ::ExtGnu;
2188
friend class ::WinAsm;
2189
friend class ::WinDeclSpecs;
2190
friend class ::WinMemberExplSpec;
2191
friend class ::WinTypeKeywords;
2192
friend class ::WinFriend;
1484
2193
friend class ::ExtAC;
1485
2194
friend class ::ExtACBuilderCoupling;
1486
2195
friend class ::ExtACSyntaxCoupling;
1487
2196
friend class ::ExtACTree;
1488
2197
friend class ::ExtACKeywords;
1489
friend class ::WinAsm;
1490
friend class ::WinDeclSpecs;
1491
friend class ::WinMemberExplSpec;
1492
friend class ::WinTypeKeywords;
2198
friend class ::ExtGnu;
1493
2199
friend class ::PragmaOnceUnitState;
1494
2200
friend class ::PragmaOnce;
1495
friend class ::CCExprResolve;
1496
friend class ::CExprResolve;
2201
friend class ::CMatchSyntax;
1498
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2203
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1500
2205
CTree *_value; // CT_Token
1503
CT_Float (CTree *t) : _value (t) {}
2209
* \param token The token containing the floating point value. */
2210
CT_Float (CTree *token) { AddSon (_value, token); }
2211
/** Get the identifier for this node type. Can be compared with NodeName(). */
1504
2212
static const char *NodeId ();
2213
/** Get the name of the node. Can be compared with NodeId(). */
1505
2214
const char *NodeName () const { return NodeId (); }
2215
/** Get the number of sons. */
1506
2216
int Sons () const { return 1; }
2217
/** Get the n-th son.
2218
* \param n The index of the son.
2219
* \return The n-th son or NULL. */
1507
2220
CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
2222
* \param old_son The son to replace.
2223
* \param new_son The new son. */
1508
2224
void ReplaceSon (CTree *old_son, CTree *new_son)
1509
{ if (old_son == _value) _value = new_son; }
2225
{ CTree::ReplaceSon (_value, old_son, new_son); }
1511
2227
typedef CT_Float CCExprResolveExpr;
1513
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2229
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1515
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2231
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1516
2232
typedef CT_Float CExprResolveExpr;
1518
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2234
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1520
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1521
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2236
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2237
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2240
/** \class CT_Bool CTree.h Puma/CTree.h
2241
* Tree node representing a boolean literal, i.e. 'true' or 'false'. */
1525
#line 1526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2243
#line 2244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1526
2244
} // closed Puma
2245
class CCExprResolve;
1527
2247
class WinIfExists;
1528
2248
class WinImportHandler;
1529
2249
class WinMacros;
2252
class WinMemberExplSpec;
2253
class WinTypeKeywords;
1533
2256
class ExtACBuilderCoupling;
1534
2257
class ExtACSyntaxCoupling;
1535
2258
class ExtACTree;
1536
2259
class ExtACKeywords;
1539
class WinMemberExplSpec;
1540
class WinTypeKeywords;
1541
2261
class PragmaOnceUnitState;
1542
2262
class PragmaOnce;
1543
class CCExprResolve;
1547
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2266
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2268
#line 2269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2271
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2272
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2273
#include "CCExprResolveH.ah"
2277
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2279
#line 2280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2284
#include "CExprResolveH.ah"
2288
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1548
2289
class CT_Bool : public CT_Expression {
1549
#line 1550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2290
#line 2291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2291
friend class ::CCExprResolve;
2292
friend class ::CExprResolve;
1550
2293
friend class ::WinIfExists;
1551
2294
friend class ::WinImportHandler;
1552
2295
friend class ::WinMacros;
1553
friend class ::CMatchSyntax;
1554
friend class ::ExtGnu;
2296
friend class ::WinAsm;
2297
friend class ::WinDeclSpecs;
2298
friend class ::WinMemberExplSpec;
2299
friend class ::WinTypeKeywords;
2300
friend class ::WinFriend;
1555
2301
friend class ::ExtAC;
1556
2302
friend class ::ExtACBuilderCoupling;
1557
2303
friend class ::ExtACSyntaxCoupling;
1558
2304
friend class ::ExtACTree;
1559
2305
friend class ::ExtACKeywords;
1560
friend class ::WinAsm;
1561
friend class ::WinDeclSpecs;
1562
friend class ::WinMemberExplSpec;
1563
friend class ::WinTypeKeywords;
2306
friend class ::ExtGnu;
1564
2307
friend class ::PragmaOnceUnitState;
1565
2308
friend class ::PragmaOnce;
1566
friend class ::CCExprResolve;
1567
friend class ::CExprResolve;
2309
friend class ::CMatchSyntax;
1569
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2311
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1571
2313
CTree *_value; // CT_Token
1574
CT_Bool (CTree *t) : _value (t) {}
2317
* \param token The token containing the boolean value. */
2318
CT_Bool (CTree *token) { AddSon (_value, token); }
2319
/** Get the identifier for this node type. Can be compared with NodeName(). */
1575
2320
static const char *NodeId ();
2321
/** Get the name of the node. Can be compared with NodeId(). */
1576
2322
const char *NodeName () const { return NodeId (); }
2323
/** Get the number of sons. */
1577
2324
int Sons () const { return 1; }
2325
/** Get the n-th son.
2326
* \param n The index of the son.
2327
* \return The n-th son or NULL. */
1578
2328
CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
2330
* \param old_son The son to replace.
2331
* \param new_son The new son. */
1579
2332
void ReplaceSon (CTree *old_son, CTree *new_son)
1580
{ if (old_son == _value) _value = new_son; }
2333
{ CTree::ReplaceSon (_value, old_son, new_son); }
1582
2335
typedef CT_Bool CCExprResolveExpr;
1584
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2337
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1586
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2339
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1587
2340
typedef CT_Bool CExprResolveExpr;
1589
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2342
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1591
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1592
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2344
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2345
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2348
/** \class CT_BracedExpr CTree.h Puma/CTree.h
2349
* Tree node representing a braced expression, e.g. (a+b). */
1596
#line 1597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2351
#line 2352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1597
2352
} // closed Puma
2353
class CCExprResolve;
1598
2355
class WinIfExists;
1599
2356
class WinImportHandler;
1600
2357
class WinMacros;
2360
class WinMemberExplSpec;
2361
class WinTypeKeywords;
1604
2364
class ExtACBuilderCoupling;
1605
2365
class ExtACSyntaxCoupling;
1606
2366
class ExtACTree;
1607
2367
class ExtACKeywords;
1610
class WinMemberExplSpec;
1611
class WinTypeKeywords;
1612
2369
class PragmaOnceUnitState;
1613
2370
class PragmaOnce;
1614
class CCExprResolve;
1618
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2374
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2376
#line 2377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2381
#include "CCExprResolveH.ah"
2385
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2387
#line 2388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2390
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2391
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2392
#include "CExprResolveH.ah"
2396
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1619
2397
class CT_BracedExpr : public CT_Expression {
1620
#line 1621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2398
#line 2399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2399
friend class ::CCExprResolve;
2400
friend class ::CExprResolve;
1621
2401
friend class ::WinIfExists;
1622
2402
friend class ::WinImportHandler;
1623
2403
friend class ::WinMacros;
1624
friend class ::CMatchSyntax;
1625
friend class ::ExtGnu;
2404
friend class ::WinAsm;
2405
friend class ::WinDeclSpecs;
2406
friend class ::WinMemberExplSpec;
2407
friend class ::WinTypeKeywords;
2408
friend class ::WinFriend;
1626
2409
friend class ::ExtAC;
1627
2410
friend class ::ExtACBuilderCoupling;
1628
2411
friend class ::ExtACSyntaxCoupling;
1629
2412
friend class ::ExtACTree;
1630
2413
friend class ::ExtACKeywords;
1631
friend class ::WinAsm;
1632
friend class ::WinDeclSpecs;
1633
friend class ::WinMemberExplSpec;
1634
friend class ::WinTypeKeywords;
2414
friend class ::ExtGnu;
1635
2415
friend class ::PragmaOnceUnitState;
1636
2416
friend class ::PragmaOnce;
1637
friend class ::CCExprResolve;
1638
friend class ::CExprResolve;
2417
friend class ::CMatchSyntax;
1640
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2419
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1642
2421
CTree *sons[3]; // open, expr, close
2425
* \param o The opening brace.
2426
* \param e The enclosed expression.
2427
* \param c The closing brace. */
1645
2428
CT_BracedExpr (CTree *o, CTree *e, CTree *c) {
1646
sons[0] = o; sons[1] = e; sons[2] = c;
2429
AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c);
2431
/** Get the identifier for this node type. Can be compared with NodeName(). */
1648
2432
static const char *NodeId ();
2433
/** Get the name of the node. Can be compared with NodeId(). */
1649
2434
const char *NodeName () const { return NodeId (); }
2435
/** Get the number of sons. */
1650
2436
int Sons () const { return 3; }
2437
/** Get the n-th son.
2438
* \param n The index of the son.
2439
* \return The n-th son or NULL. */
1651
2440
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
2441
/** Get the enclosed expression. */
1652
2442
CTree *Expr () const { return sons[1]; }
2443
/** Get the type of the enclosed expression. */
1653
2444
CTypeInfo *Type () const { return Expr ()->Type (); }
2445
/** Get the value of the enclosed expression. */
1654
2446
CExprValue *Value () const { return Expr ()->Value (); }
2447
/** Get the semantic value object. */
1655
2448
CSemValue *SemValue () const { return (CSemValue*)this; }
2450
* \param old_son The son to replace.
2451
* \param new_son The new son. */
1656
2452
void ReplaceSon (CTree *old_son, CTree *new_son) {
1657
2453
CTree::ReplaceSon (sons, 3, old_son, new_son);
1660
2456
typedef CT_BracedExpr CCExprResolveExpr;
1662
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2458
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1664
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2460
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1665
2461
typedef CT_BracedExpr CExprResolveExpr;
1667
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2463
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1669
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1670
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2465
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2466
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2469
/** \class CT_SimpleName CTree.h Puma/CTree.h
2470
* Base class for all tree nodes representing a name. */
1674
#line 1675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2472
#line 2473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1675
2473
} // closed Puma
2474
class CCExprResolve;
1676
2476
class WinIfExists;
1677
2477
class WinImportHandler;
1678
2478
class WinMacros;
2481
class WinMemberExplSpec;
2482
class WinTypeKeywords;
1682
2485
class ExtACBuilderCoupling;
1683
2486
class ExtACSyntaxCoupling;
1684
2487
class ExtACTree;
1685
2488
class ExtACKeywords;
1688
class WinMemberExplSpec;
1689
class WinTypeKeywords;
1690
2490
class PragmaOnceUnitState;
1691
2491
class PragmaOnce;
1692
class CCExprResolve;
1696
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2495
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2497
#line 2498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2500
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2501
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2502
#include "CCExprResolveH.ah"
2506
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2508
#line 2509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2511
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2512
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2513
#include "CExprResolveH.ah"
2517
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1697
2518
class CT_SimpleName : public CT_List, public Printable,
1698
2519
public CSemValue, public CSemObject {
1699
#line 1700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2520
#line 2521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2521
friend class ::CCExprResolve;
2522
friend class ::CExprResolve;
1700
2523
friend class ::WinIfExists;
1701
2524
friend class ::WinImportHandler;
1702
2525
friend class ::WinMacros;
1703
friend class ::CMatchSyntax;
1704
friend class ::ExtGnu;
2526
friend class ::WinAsm;
2527
friend class ::WinDeclSpecs;
2528
friend class ::WinMemberExplSpec;
2529
friend class ::WinTypeKeywords;
2530
friend class ::WinFriend;
1705
2531
friend class ::ExtAC;
1706
2532
friend class ::ExtACBuilderCoupling;
1707
2533
friend class ::ExtACSyntaxCoupling;
1708
2534
friend class ::ExtACTree;
1709
2535
friend class ::ExtACKeywords;
1710
friend class ::WinAsm;
1711
friend class ::WinDeclSpecs;
1712
friend class ::WinMemberExplSpec;
1713
friend class ::WinTypeKeywords;
2536
friend class ::ExtGnu;
1714
2537
friend class ::PragmaOnceUnitState;
1715
2538
friend class ::PragmaOnce;
1716
friend class ::CCExprResolve;
1717
friend class ::CExprResolve;
2539
friend class ::CMatchSyntax;
1719
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2541
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2545
* \param size The number of sub-names (for qualified names). */
1722
2546
CT_SimpleName (int size) : CT_List (size, 1) {}
2548
* \param size The number of sub-names (for qualified names).
2549
* \param properties Additional name list properties (for root qualified names). */
1723
2550
CT_SimpleName (int size, int properties) :
1724
2551
CT_List (size, 2, properties) {}
2555
* \param n The sub-tree containing the name. */
1727
2556
CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
2557
/** Get the identifier for this node type. Can be compared with NodeName(). */
1728
2558
static const char *NodeId ();
2559
/** Get the name of the node. Can be compared with NodeId(). */
1729
2560
const char *NodeName () const { return NodeId (); }
2561
/** Get the string containing the name. */
1730
2562
virtual const char *Text () const
1731
2563
{ return Son (Sons ()-1)->token ()->text (); }
2564
/** Print the name on the given stream.
2565
* \param os The output stream. */
1732
2566
virtual void print (ostream &os) const { os << Text (); }
1733
2568
virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
2569
/** Get the type of the entity represented by the name. */
1734
2570
CTypeInfo *Type () const { return type; }
2571
/** Get the value of the entity represented by the name. */
1735
2572
CExprValue *Value () const { return value; }
2573
/** Get the sematic value information object. */
1736
2574
CSemValue *SemValue () const { return (CSemValue*)this; }
2575
/** Get the sematic information object. */
1737
2576
CSemObject *SemObject () const { return (CSemObject*)this; }
1738
// special new / delete with reusing memory
1739
void *operator new (size_t);
1740
void operator delete (void *);
1741
// classification function
1742
2578
virtual CT_SimpleName *IsSimpleName () { return this; }
2581
/** Own new operator reusing memory. */
2582
void *operator new (size_t);
2583
/** Own delete operator. */
2584
void operator delete (void *);
1744
2586
typedef CT_SimpleName CCExprResolveExpr;
1746
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2588
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1748
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2590
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1749
2591
typedef CT_SimpleName CExprResolveExpr;
1751
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2593
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1753
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1754
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2595
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2596
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2599
/** \class CT_SpecialName CTree.h Puma/CTree.h
2600
* Base class for tree nodes representing a special name, like destructor names. */
1758
#line 1759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2602
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1759
2603
} // closed Puma
2604
class CCExprResolve;
1760
2606
class WinIfExists;
1761
2607
class WinImportHandler;
1762
2608
class WinMacros;
2611
class WinMemberExplSpec;
2612
class WinTypeKeywords;
1766
2615
class ExtACBuilderCoupling;
1767
2616
class ExtACSyntaxCoupling;
1768
2617
class ExtACTree;
1769
2618
class ExtACKeywords;
1772
class WinMemberExplSpec;
1773
class WinTypeKeywords;
1774
2620
class PragmaOnceUnitState;
1775
2621
class PragmaOnce;
1776
class CCExprResolve;
1780
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2625
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2627
#line 2628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2630
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2631
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2632
#include "CCExprResolveH.ah"
2636
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2638
#line 2639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2641
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2642
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2643
#include "CExprResolveH.ah"
2647
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1781
2648
class CT_SpecialName : public CT_SimpleName {
1782
#line 1783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2649
#line 2650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2650
friend class ::CCExprResolve;
2651
friend class ::CExprResolve;
1783
2652
friend class ::WinIfExists;
1784
2653
friend class ::WinImportHandler;
1785
2654
friend class ::WinMacros;
1786
friend class ::CMatchSyntax;
1787
friend class ::ExtGnu;
2655
friend class ::WinAsm;
2656
friend class ::WinDeclSpecs;
2657
friend class ::WinMemberExplSpec;
2658
friend class ::WinTypeKeywords;
2659
friend class ::WinFriend;
1788
2660
friend class ::ExtAC;
1789
2661
friend class ::ExtACBuilderCoupling;
1790
2662
friend class ::ExtACSyntaxCoupling;
1791
2663
friend class ::ExtACTree;
1792
2664
friend class ::ExtACKeywords;
1793
friend class ::WinAsm;
1794
friend class ::WinDeclSpecs;
1795
friend class ::WinMemberExplSpec;
1796
friend class ::WinTypeKeywords;
2665
friend class ::ExtGnu;
1797
2666
friend class ::PragmaOnceUnitState;
1798
2667
friend class ::PragmaOnce;
1799
friend class ::CCExprResolve;
1800
friend class ::CExprResolve;
2668
friend class ::CMatchSyntax;
1802
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2670
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2676
* \param size The number of sub-names (for qualified names). */
1807
2677
CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
2680
/** Destructor. Deletes the name string. */
1810
2681
~CT_SpecialName () { if (_name) delete[] _name; }
2682
/** Get the string containing the name. */
1811
2683
const char *Text () const { return _name; }
2684
/** Set the name. The name is copied.
2685
* \param n The name. */
1812
2686
void Name (const char *n) {
1814
2688
_name = new char[strlen(n) + 1];
1815
2689
strcpy (_name,n);
1818
// special new / delete with reusing memory
2694
/** Own new operator reusing memory. */
1819
2695
void *operator new (size_t);
1820
void operator delete (void *);
2696
/** Own delete operator. */
2697
void operator delete (void *);
1822
2699
typedef CT_SpecialName CCExprResolveExpr;
1824
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2701
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1826
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2703
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1827
2704
typedef CT_SpecialName CExprResolveExpr;
1829
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2706
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1831
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1832
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2708
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2709
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2712
/** \class CT_PrivateName CTree.h Puma/CTree.h
2713
* Tree node representing a private name. Private names
2714
* are generated names for abstract declarators etc. */
1836
#line 1837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2716
#line 2717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1837
2717
} // closed Puma
2718
class CCExprResolve;
1838
2720
class WinIfExists;
1839
2721
class WinImportHandler;
1840
2722
class WinMacros;
2725
class WinMemberExplSpec;
2726
class WinTypeKeywords;
1844
2729
class ExtACBuilderCoupling;
1845
2730
class ExtACSyntaxCoupling;
1846
2731
class ExtACTree;
1847
2732
class ExtACKeywords;
1850
class WinMemberExplSpec;
1851
class WinTypeKeywords;
1852
2734
class PragmaOnceUnitState;
1853
2735
class PragmaOnce;
1854
class CCExprResolve;
1858
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2739
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2741
#line 2742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2744
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2745
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2746
#include "CCExprResolveH.ah"
2750
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2752
#line 2753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2755
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2756
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2757
#include "CExprResolveH.ah"
2761
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1859
2762
class CT_PrivateName : public CT_SpecialName {
1860
#line 1861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2763
#line 2764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2764
friend class ::CCExprResolve;
2765
friend class ::CExprResolve;
1861
2766
friend class ::WinIfExists;
1862
2767
friend class ::WinImportHandler;
1863
2768
friend class ::WinMacros;
1864
friend class ::CMatchSyntax;
1865
friend class ::ExtGnu;
2769
friend class ::WinAsm;
2770
friend class ::WinDeclSpecs;
2771
friend class ::WinMemberExplSpec;
2772
friend class ::WinTypeKeywords;
2773
friend class ::WinFriend;
1866
2774
friend class ::ExtAC;
1867
2775
friend class ::ExtACBuilderCoupling;
1868
2776
friend class ::ExtACSyntaxCoupling;
1869
2777
friend class ::ExtACTree;
1870
2778
friend class ::ExtACKeywords;
1871
friend class ::WinAsm;
1872
friend class ::WinDeclSpecs;
1873
friend class ::WinMemberExplSpec;
1874
friend class ::WinTypeKeywords;
2779
friend class ::ExtGnu;
1875
2780
friend class ::PragmaOnceUnitState;
1876
2781
friend class ::PragmaOnce;
1877
friend class ::CCExprResolve;
1878
friend class ::CExprResolve;
2782
friend class ::CMatchSyntax;
1880
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2784
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2788
* \param n The private (generated) name. */
1883
2789
CT_PrivateName (const char *n) { Name (n); }
2790
/** Get the identifier for this node type. Can be compared with NodeName(). */
1884
2791
static const char *NodeId ();
2792
/** Get the name of the node. Can be compared with NodeId(). */
1885
2793
const char *NodeName () const { return NodeId (); }
2794
/** Get the number of sons. */
1886
2795
int Sons () const { return 0; }
2796
/** Get the n-th son.
2797
* \param n The index of the son.
2798
* \return The n-th son or NULL. */
1887
2799
CTree *Son (int n) const { return (CTree*)0; }
1888
// special new / delete with reusing memory
2802
/** Own new operator reusing memory. */
1889
2803
void *operator new (size_t);
1890
void operator delete (void *);
2804
/** Own delete operator. */
2805
void operator delete (void *);
1892
2807
typedef CT_PrivateName CCExprResolveExpr;
1894
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2809
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1896
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2811
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1897
2812
typedef CT_PrivateName CExprResolveExpr;
1899
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2814
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1901
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1902
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2816
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2817
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2820
/** \class CT_DestructorName CTree.h Puma/CTree.h
2821
* Tree node representing a destructor name. */
1906
#line 1907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2823
#line 2824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1907
2824
} // closed Puma
2825
class CCExprResolve;
1908
2827
class WinIfExists;
1909
2828
class WinImportHandler;
1910
2829
class WinMacros;
2832
class WinMemberExplSpec;
2833
class WinTypeKeywords;
1914
2836
class ExtACBuilderCoupling;
1915
2837
class ExtACSyntaxCoupling;
1916
2838
class ExtACTree;
1917
2839
class ExtACKeywords;
1920
class WinMemberExplSpec;
1921
class WinTypeKeywords;
1922
2841
class PragmaOnceUnitState;
1923
2842
class PragmaOnce;
1924
class CCExprResolve;
1928
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2846
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2848
#line 2849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2851
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2852
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2853
#include "CCExprResolveH.ah"
2857
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2859
#line 2860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2862
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2863
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2864
#include "CExprResolveH.ah"
2868
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1929
2869
class CT_DestructorName : public CT_SpecialName {
1930
#line 1931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2870
#line 2871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2871
friend class ::CCExprResolve;
2872
friend class ::CExprResolve;
1931
2873
friend class ::WinIfExists;
1932
2874
friend class ::WinImportHandler;
1933
2875
friend class ::WinMacros;
1934
friend class ::CMatchSyntax;
1935
friend class ::ExtGnu;
2876
friend class ::WinAsm;
2877
friend class ::WinDeclSpecs;
2878
friend class ::WinMemberExplSpec;
2879
friend class ::WinTypeKeywords;
2880
friend class ::WinFriend;
1936
2881
friend class ::ExtAC;
1937
2882
friend class ::ExtACBuilderCoupling;
1938
2883
friend class ::ExtACSyntaxCoupling;
1939
2884
friend class ::ExtACTree;
1940
2885
friend class ::ExtACKeywords;
1941
friend class ::WinAsm;
1942
friend class ::WinDeclSpecs;
1943
friend class ::WinMemberExplSpec;
1944
friend class ::WinTypeKeywords;
2886
friend class ::ExtGnu;
1945
2887
friend class ::PragmaOnceUnitState;
1946
2888
friend class ::PragmaOnce;
1947
friend class ::CCExprResolve;
1948
friend class ::CExprResolve;
2889
friend class ::CMatchSyntax;
1950
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2891
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1953
CT_DestructorName (CTree *, CTree *);
2895
* \param t The tilde operator.
2896
* \param n The class name. */
2897
CT_DestructorName (CTree *t, CTree *n);
2898
/** Get the identifier for this node type. Can be compared with NodeName(). */
1954
2899
static const char *NodeId ();
2900
/** Get the name of the node. Can be compared with NodeId(). */
1955
2901
const char *NodeName () const { return NodeId (); }
1956
// special new / delete with reusing memory
2904
/** Own new operator reusing memory. */
1957
2905
void *operator new (size_t);
1958
void operator delete (void *);
2906
/** Own delete operator. */
2907
void operator delete (void *);
1960
2909
typedef CT_DestructorName CCExprResolveExpr;
1962
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
1964
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
2913
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
1965
2914
typedef CT_DestructorName CExprResolveExpr;
1967
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2916
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
1969
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
1970
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2918
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
2919
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2922
/** \class CT_TemplateName CTree.h Puma/CTree.h
2923
* Tree node representing a template name. */
1974
#line 1975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2925
#line 2926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
1975
2926
} // closed Puma
2927
class CCExprResolve;
1976
2929
class WinIfExists;
1977
2930
class WinImportHandler;
1978
2931
class WinMacros;
2934
class WinMemberExplSpec;
2935
class WinTypeKeywords;
1982
2938
class ExtACBuilderCoupling;
1983
2939
class ExtACSyntaxCoupling;
1984
2940
class ExtACTree;
1985
2941
class ExtACKeywords;
1988
class WinMemberExplSpec;
1989
class WinTypeKeywords;
1990
2943
class PragmaOnceUnitState;
1991
2944
class PragmaOnce;
1992
class CCExprResolve;
1996
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2948
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2950
#line 2951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2953
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2954
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
2955
#include "CCExprResolveH.ah"
2959
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2961
#line 2962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
2966
#include "CExprResolveH.ah"
2970
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
1997
2971
class CT_TemplateName : public CT_SpecialName {
1998
#line 1999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
2972
#line 2973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2973
friend class ::CCExprResolve;
2974
friend class ::CExprResolve;
1999
2975
friend class ::WinIfExists;
2000
2976
friend class ::WinImportHandler;
2001
2977
friend class ::WinMacros;
2002
friend class ::CMatchSyntax;
2003
friend class ::ExtGnu;
2978
friend class ::WinAsm;
2979
friend class ::WinDeclSpecs;
2980
friend class ::WinMemberExplSpec;
2981
friend class ::WinTypeKeywords;
2982
friend class ::WinFriend;
2004
2983
friend class ::ExtAC;
2005
2984
friend class ::ExtACBuilderCoupling;
2006
2985
friend class ::ExtACSyntaxCoupling;
2007
2986
friend class ::ExtACTree;
2008
2987
friend class ::ExtACKeywords;
2009
friend class ::WinAsm;
2010
friend class ::WinDeclSpecs;
2011
friend class ::WinMemberExplSpec;
2012
friend class ::WinTypeKeywords;
2988
friend class ::ExtGnu;
2013
2989
friend class ::PragmaOnceUnitState;
2014
2990
friend class ::PragmaOnce;
2015
friend class ::CCExprResolve;
2016
friend class ::CExprResolve;
2991
friend class ::CMatchSyntax;
2018
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2993
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2997
* \param n The template class or function name.
2998
* \param a The template argument list. */
2021
2999
CT_TemplateName (CTree *n, CTree *a)
2022
3000
{ AddSon (n); AddSon (a); }
3001
/** Get the identifier for this node type. Can be compared with NodeName(). */
2023
3002
static const char *NodeId ();
3003
/** Get the name of the node. Can be compared with NodeId(). */
2024
3004
const char *NodeName () const { return NodeId (); }
3005
/** Get the template argument list. */
2025
3006
CT_TemplateArgList *Arguments () const
2026
3007
{ return (CT_TemplateArgList*)Son (Sons ()-1); }
3008
/** Get the template class or function name. */
2027
3009
CT_SimpleName *TemplateName () const
2028
3010
{ return (CT_SimpleName*)Son (Sons ()-2); }
2029
3011
// may change in the future
2030
3012
const char *Text () const { return TemplateName ()->Text (); }
2031
// special new / delete with reusing memory
3015
/** Own new operator reusing memory. */
2032
3016
void *operator new (size_t);
2033
void operator delete (void *);
3017
/** Own delete operator. */
3018
void operator delete (void *);
2035
3020
typedef CT_TemplateName CCExprResolveExpr;
2037
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3022
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2039
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3024
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2040
3025
typedef CT_TemplateName CExprResolveExpr;
2042
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3027
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2044
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2045
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3029
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3030
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3033
/** \class CT_OperatorName CTree.h Puma/CTree.h
3034
* Tree node representing the name of an overloaded operator. */
2049
#line 2050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3036
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2050
3037
} // closed Puma
3038
class CCExprResolve;
2051
3040
class WinIfExists;
2052
3041
class WinImportHandler;
2053
3042
class WinMacros;
3045
class WinMemberExplSpec;
3046
class WinTypeKeywords;
2057
3049
class ExtACBuilderCoupling;
2058
3050
class ExtACSyntaxCoupling;
2059
3051
class ExtACTree;
2060
3052
class ExtACKeywords;
2063
class WinMemberExplSpec;
2064
class WinTypeKeywords;
2065
3054
class PragmaOnceUnitState;
2066
3055
class PragmaOnce;
2067
class CCExprResolve;
2071
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3059
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3061
#line 3062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3064
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3065
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3066
#include "CCExprResolveH.ah"
3070
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3072
#line 3073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3075
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3076
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3077
#include "CExprResolveH.ah"
3081
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2072
3082
class CT_OperatorName : public CT_SpecialName {
2073
#line 2074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3083
#line 3084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3084
friend class ::CCExprResolve;
3085
friend class ::CExprResolve;
2074
3086
friend class ::WinIfExists;
2075
3087
friend class ::WinImportHandler;
2076
3088
friend class ::WinMacros;
2077
friend class ::CMatchSyntax;
2078
friend class ::ExtGnu;
3089
friend class ::WinAsm;
3090
friend class ::WinDeclSpecs;
3091
friend class ::WinMemberExplSpec;
3092
friend class ::WinTypeKeywords;
3093
friend class ::WinFriend;
2079
3094
friend class ::ExtAC;
2080
3095
friend class ::ExtACBuilderCoupling;
2081
3096
friend class ::ExtACSyntaxCoupling;
2082
3097
friend class ::ExtACTree;
2083
3098
friend class ::ExtACKeywords;
2084
friend class ::WinAsm;
2085
friend class ::WinDeclSpecs;
2086
friend class ::WinMemberExplSpec;
2087
friend class ::WinTypeKeywords;
3099
friend class ::ExtGnu;
2088
3100
friend class ::PragmaOnceUnitState;
2089
3101
friend class ::PragmaOnce;
2090
friend class ::CCExprResolve;
2091
friend class ::CExprResolve;
3102
friend class ::CMatchSyntax;
2093
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3104
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2098
enum { // complex operators
3109
/** Complex operator types. */
3111
FCT_CALL = -100, /** Function call operator, i.e. (). */
3112
SUBSCRIPT, /** Array subscript operator, i.e. []. */
3113
NEW_ARRAY, /** New array operator, i.e. new[]. */
3114
DEL_ARRAY /** Delete array operator, i.e. delete[]. */
2106
CT_OperatorName (CTree *);
2107
CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
3119
* \param op The token containing the operator. */
3120
CT_OperatorName (CTree *op);
3122
* \param f The operator function keyword 'operator'.
3123
* \param op The token containing the operator.
3124
* \param o The token of '[' or '('.
3125
* \param c The token of ']' or ')'. */
3126
CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
3127
/** Get the identifier for this node type. Can be compared with NodeName(). */
2108
3128
static const char *NodeId ();
3129
/** Get the name of the node. Can be compared with NodeId(). */
2109
3130
const char *NodeName () const { return NodeId (); }
3131
/** Get the operator type (either the token type or one of
3132
* the complex operator types). */
2110
3133
int Operator () const { return _oper; }
2111
// special new / delete with reusing memory
3136
/** Own new operator reusing memory. */
2112
3137
void *operator new (size_t);
2113
void operator delete (void *);
3138
/** Own delete operator. */
3139
void operator delete (void *);
2115
3141
typedef CT_OperatorName CCExprResolveExpr;
2117
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3143
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2119
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3145
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2120
3146
typedef CT_OperatorName CExprResolveExpr;
2122
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3148
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2124
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2125
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3150
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3151
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3154
/** \class CT_ConversionName CTree.h Puma/CTree.h
3155
* Tree node representing the name of a conversion function. */
2129
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3157
#line 3158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2130
3158
} // closed Puma
3159
class CCExprResolve;
2131
3161
class WinIfExists;
2132
3162
class WinImportHandler;
2133
3163
class WinMacros;
3166
class WinMemberExplSpec;
3167
class WinTypeKeywords;
2137
3170
class ExtACBuilderCoupling;
2138
3171
class ExtACSyntaxCoupling;
2139
3172
class ExtACTree;
2140
3173
class ExtACKeywords;
2143
class WinMemberExplSpec;
2144
class WinTypeKeywords;
2145
3175
class PragmaOnceUnitState;
2146
3176
class PragmaOnce;
2147
class CCExprResolve;
2151
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3180
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3182
#line 3183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3185
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3186
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3187
#include "CCExprResolveH.ah"
3191
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3193
#line 3194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3196
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3197
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3198
#include "CExprResolveH.ah"
3202
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2152
3203
class CT_ConversionName : public CT_SpecialName {
2153
#line 2154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3204
#line 3205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3205
friend class ::CCExprResolve;
3206
friend class ::CExprResolve;
2154
3207
friend class ::WinIfExists;
2155
3208
friend class ::WinImportHandler;
2156
3209
friend class ::WinMacros;
2157
friend class ::CMatchSyntax;
2158
friend class ::ExtGnu;
3210
friend class ::WinAsm;
3211
friend class ::WinDeclSpecs;
3212
friend class ::WinMemberExplSpec;
3213
friend class ::WinTypeKeywords;
3214
friend class ::WinFriend;
2159
3215
friend class ::ExtAC;
2160
3216
friend class ::ExtACBuilderCoupling;
2161
3217
friend class ::ExtACSyntaxCoupling;
2162
3218
friend class ::ExtACTree;
2163
3219
friend class ::ExtACKeywords;
2164
friend class ::WinAsm;
2165
friend class ::WinDeclSpecs;
2166
friend class ::WinMemberExplSpec;
2167
friend class ::WinTypeKeywords;
3220
friend class ::ExtGnu;
2168
3221
friend class ::PragmaOnceUnitState;
2169
3222
friend class ::PragmaOnce;
2170
friend class ::CCExprResolve;
2171
friend class ::CExprResolve;
3223
friend class ::CMatchSyntax;
2173
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3225
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2176
CT_ConversionName (CTree *, CTree *);
3229
* \param f The operator function keyword 'operator'.
3230
* \param t The sub-tree containing the conversion type. */
3231
CT_ConversionName (CTree *f, CTree *t);
3232
/** Get the identifier for this node type. Can be compared with NodeName(). */
2177
3233
static const char *NodeId ();
3234
/** Get the name of the node. Can be compared with NodeId(). */
2178
3235
const char *NodeName () const { return NodeId (); }
3236
/** Get the conversion type. */
2179
3237
CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
2180
// special new / delete with reusing memory
3240
/** Own new operator reusing memory. */
2181
3241
void *operator new (size_t);
2182
void operator delete (void *);
3242
/** Own delete operator. */
3243
void operator delete (void *);
2184
3245
typedef CT_ConversionName CCExprResolveExpr;
2186
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2188
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3249
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2189
3250
typedef CT_ConversionName CExprResolveExpr;
2191
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3252
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2193
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2194
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3254
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3255
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3258
/** \class CT_QualName CTree.h Puma/CTree.h
3259
* Tree node representing a qualified name, e.g. X::Y::Z. */
2198
#line 2199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3261
#line 3262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2199
3262
} // closed Puma
3263
class CCExprResolve;
2200
3265
class WinIfExists;
2201
3266
class WinImportHandler;
2202
3267
class WinMacros;
3270
class WinMemberExplSpec;
3271
class WinTypeKeywords;
2206
3274
class ExtACBuilderCoupling;
2207
3275
class ExtACSyntaxCoupling;
2208
3276
class ExtACTree;
2209
3277
class ExtACKeywords;
2212
class WinMemberExplSpec;
2213
class WinTypeKeywords;
2214
3279
class PragmaOnceUnitState;
2215
3280
class PragmaOnce;
2216
class CCExprResolve;
2220
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3284
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3286
#line 3287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3289
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3290
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3291
#include "CCExprResolveH.ah"
3295
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3297
#line 3298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3300
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3301
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3302
#include "CExprResolveH.ah"
3306
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2221
3307
class CT_QualName : public CT_SimpleName {
2222
#line 2223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3308
#line 3309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3309
friend class ::CCExprResolve;
3310
friend class ::CExprResolve;
2223
3311
friend class ::WinIfExists;
2224
3312
friend class ::WinImportHandler;
2225
3313
friend class ::WinMacros;
2226
friend class ::CMatchSyntax;
2227
friend class ::ExtGnu;
3314
friend class ::WinAsm;
3315
friend class ::WinDeclSpecs;
3316
friend class ::WinMemberExplSpec;
3317
friend class ::WinTypeKeywords;
3318
friend class ::WinFriend;
2228
3319
friend class ::ExtAC;
2229
3320
friend class ::ExtACBuilderCoupling;
2230
3321
friend class ::ExtACSyntaxCoupling;
2231
3322
friend class ::ExtACTree;
2232
3323
friend class ::ExtACKeywords;
2233
friend class ::WinAsm;
2234
friend class ::WinDeclSpecs;
2235
friend class ::WinMemberExplSpec;
2236
friend class ::WinTypeKeywords;
3324
friend class ::ExtGnu;
2237
3325
friend class ::PragmaOnceUnitState;
2238
3326
friend class ::PragmaOnce;
2239
friend class ::CCExprResolve;
2240
friend class ::CExprResolve;
3327
friend class ::CMatchSyntax;
2242
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3329
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3333
* \param size The initial number sub-names plus separators. */
2245
3334
CT_QualName (int size = 3) :
2246
3335
CT_SimpleName (size, CT_List::SEPARATORS) {}
3336
/** Get the identifier for this node type. Can be compared with NodeName(). */
2247
3337
static const char *NodeId ();
3338
/** Get the name of the node. Can be compared with NodeId(). */
2248
3339
const char *NodeName () const { return NodeId (); }
2249
void print (ostream &) const;
3340
/** Print the qualified name on the given stream.
3341
* \param os The output stream. */
3342
void print (ostream &os) const;
3343
/** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
2250
3344
CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
3345
/** Get the string containing the last name of the qualified name. */
2251
3346
const char *Text () const { return Name ()->Text (); }
3347
/** Get the type of the last name. */
2252
3348
CTypeInfo *Type () const { return Name ()->Type (); }
3349
/** Get the value of the last name. */
2253
3350
CExprValue *Value () const { return Name ()->Value (); }
3351
/** Get the semantic value object of the last name. */
2254
3352
CSemValue *SemValue () const { return Name ()->SemValue (); }
3353
/** Get the semantic information object of the last name. */
2255
3354
CSemObject *SemObject () const { return Name ()->SemObject (); }
2256
// special new / delete with reusing memory
3357
/** Own new operator reusing memory. */
2257
3358
void *operator new (size_t);
2258
void operator delete (void *);
3359
/** Own delete operator. */
3360
void operator delete (void *);
2260
3362
typedef CT_QualName CCExprResolveExpr;
2262
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3364
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2264
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3366
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2265
3367
typedef CT_QualName CExprResolveExpr;
2267
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3369
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2269
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2270
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3371
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3372
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3375
/** \class CT_RootQualName CTree.h Puma/CTree.h
3376
* Tree node representing a qualified name with introducing name separator,
3377
* e.g. ::X::Y::Z. */
2274
#line 2275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3379
#line 3380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2275
3380
} // closed Puma
3381
class CCExprResolve;
2276
3383
class WinIfExists;
2277
3384
class WinImportHandler;
2278
3385
class WinMacros;
3388
class WinMemberExplSpec;
3389
class WinTypeKeywords;
2282
3392
class ExtACBuilderCoupling;
2283
3393
class ExtACSyntaxCoupling;
2284
3394
class ExtACTree;
2285
3395
class ExtACKeywords;
2288
class WinMemberExplSpec;
2289
class WinTypeKeywords;
2290
3397
class PragmaOnceUnitState;
2291
3398
class PragmaOnce;
2292
class CCExprResolve;
2296
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3402
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3404
#line 3405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3407
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3408
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3409
#include "CCExprResolveH.ah"
3413
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3415
#line 3416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3418
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3419
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3420
#include "CExprResolveH.ah"
3424
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2297
3425
class CT_RootQualName : public CT_QualName {
2298
#line 2299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3426
#line 3427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3427
friend class ::CCExprResolve;
3428
friend class ::CExprResolve;
2299
3429
friend class ::WinIfExists;
2300
3430
friend class ::WinImportHandler;
2301
3431
friend class ::WinMacros;
2302
friend class ::CMatchSyntax;
2303
friend class ::ExtGnu;
3432
friend class ::WinAsm;
3433
friend class ::WinDeclSpecs;
3434
friend class ::WinMemberExplSpec;
3435
friend class ::WinTypeKeywords;
3436
friend class ::WinFriend;
2304
3437
friend class ::ExtAC;
2305
3438
friend class ::ExtACBuilderCoupling;
2306
3439
friend class ::ExtACSyntaxCoupling;
2307
3440
friend class ::ExtACTree;
2308
3441
friend class ::ExtACKeywords;
2309
friend class ::WinAsm;
2310
friend class ::WinDeclSpecs;
2311
friend class ::WinMemberExplSpec;
2312
friend class ::WinTypeKeywords;
3442
friend class ::ExtGnu;
2313
3443
friend class ::PragmaOnceUnitState;
2314
3444
friend class ::PragmaOnce;
2315
friend class ::CCExprResolve;
2316
friend class ::CExprResolve;
3445
friend class ::CMatchSyntax;
2318
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3447
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3451
* \param size Initial number of sub-name plus separator. */
2321
3452
CT_RootQualName (int size = 2) :
2322
3453
CT_QualName (size) { AddProperties (INTRO); }
3454
/** Get the identifier for this node type. Can be compared with NodeName(). */
2323
3455
static const char *NodeId ();
3456
/** Get the name of the node. Can be compared with NodeId(). */
2324
3457
const char *NodeName () const { return NodeId (); }
2325
// special new / delete with reusing memory
3460
/** Own new operator reusing memory. */
2326
3461
void *operator new (size_t);
2327
void operator delete (void *);
3462
/** Own delete operator. */
3463
void operator delete (void *);
2329
3465
typedef CT_RootQualName CCExprResolveExpr;
2331
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3467
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2333
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3469
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2334
3470
typedef CT_RootQualName CExprResolveExpr;
2336
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3472
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2338
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2339
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3474
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3475
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3478
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
3479
* Tree node representing a binary expression, e.g. a+b. */
2343
#line 2344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3481
#line 3482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2344
3482
} // closed Puma
3483
class CCExprResolve;
2345
3485
class WinIfExists;
2346
3486
class WinImportHandler;
2347
3487
class WinMacros;
3490
class WinMemberExplSpec;
3491
class WinTypeKeywords;
2351
3494
class ExtACBuilderCoupling;
2352
3495
class ExtACSyntaxCoupling;
2353
3496
class ExtACTree;
2354
3497
class ExtACKeywords;
2357
class WinMemberExplSpec;
2358
class WinTypeKeywords;
2359
3499
class PragmaOnceUnitState;
2360
3500
class PragmaOnce;
2361
class CCExprResolve;
2365
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2366
class CT_BinaryExpr : public CT_Expression {
2367
#line 2368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3504
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3506
#line 3507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3511
#include "CCExprResolveH.ah"
3515
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3517
#line 3518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3522
#include "CExprResolveH.ah"
3526
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3527
class CT_BinaryExpr : public CT_Call {
3528
#line 3529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3529
friend class ::CCExprResolve;
3530
friend class ::CExprResolve;
2368
3531
friend class ::WinIfExists;
2369
3532
friend class ::WinImportHandler;
2370
3533
friend class ::WinMacros;
2371
friend class ::CMatchSyntax;
2372
friend class ::ExtGnu;
3534
friend class ::WinAsm;
3535
friend class ::WinDeclSpecs;
3536
friend class ::WinMemberExplSpec;
3537
friend class ::WinTypeKeywords;
3538
friend class ::WinFriend;
2373
3539
friend class ::ExtAC;
2374
3540
friend class ::ExtACBuilderCoupling;
2375
3541
friend class ::ExtACSyntaxCoupling;
2376
3542
friend class ::ExtACTree;
2377
3543
friend class ::ExtACKeywords;
2378
friend class ::WinAsm;
2379
friend class ::WinDeclSpecs;
2380
friend class ::WinMemberExplSpec;
2381
friend class ::WinTypeKeywords;
3544
friend class ::ExtGnu;
2382
3545
friend class ::PragmaOnceUnitState;
2383
3546
friend class ::PragmaOnce;
2384
friend class ::CCExprResolve;
2385
friend class ::CExprResolve;
3547
friend class ::CMatchSyntax;
2387
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3549
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2389
3551
CTree *sons[3]; // expr, oper, expr
3555
* \param l Left hand side of the expression.
3556
* \param o The operator token.
3557
* \param r Right hand side of the expression. */
2392
3558
CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
2393
sons[0] = l; sons[1] = o; sons[2] = r;
3559
AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
3561
/** Get the identifier for this node type. Can be compared with NodeName(). */
2395
3562
static const char *NodeId ();
3563
/** Get the name of the node. Can be compared with NodeId(). */
2396
3564
const char *NodeName () const { return NodeId (); }
3565
/** Get the number of sons. */
2397
3566
int Sons () const { return 3; }
3567
/** Get the n-th son.
3568
* \param n The index of the son.
3569
* \return The n-th son or NULL. */
2398
3570
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
3572
* \param old_son The son to replace.
3573
* \param new_son The new son. */
2399
3574
void ReplaceSon (CTree *old_son, CTree *new_son) {
2400
3575
CTree::ReplaceSon (sons, 3, old_son, new_son);
2403
3578
typedef CT_BinaryExpr CCExprResolveExpr;
2405
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3580
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2407
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3582
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2408
3583
typedef CT_BinaryExpr CExprResolveExpr;
2410
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3585
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2412
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2413
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3587
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3588
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3591
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
3592
* Tree node representing a member pointer expression, e.g. a->b. */
2417
#line 2418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3594
#line 3595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2418
3595
} // closed Puma
3596
class CCExprResolve;
2419
3598
class WinIfExists;
2420
3599
class WinImportHandler;
2421
3600
class WinMacros;
3603
class WinMemberExplSpec;
3604
class WinTypeKeywords;
2425
3607
class ExtACBuilderCoupling;
2426
3608
class ExtACSyntaxCoupling;
2427
3609
class ExtACTree;
2428
3610
class ExtACKeywords;
2431
class WinMemberExplSpec;
2432
class WinTypeKeywords;
2433
3612
class PragmaOnceUnitState;
2434
3613
class PragmaOnce;
2435
class CCExprResolve;
2439
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2440
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
2441
#line 2442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3617
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3619
#line 3620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3622
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3623
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3624
#include "CCExprResolveH.ah"
3628
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3630
#line 3631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3635
#include "CExprResolveH.ah"
3639
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3640
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
3641
#line 3642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3642
friend class ::CCExprResolve;
3643
friend class ::CExprResolve;
2442
3644
friend class ::WinIfExists;
2443
3645
friend class ::WinImportHandler;
2444
3646
friend class ::WinMacros;
2445
friend class ::CMatchSyntax;
2446
friend class ::ExtGnu;
3647
friend class ::WinAsm;
3648
friend class ::WinDeclSpecs;
3649
friend class ::WinMemberExplSpec;
3650
friend class ::WinTypeKeywords;
3651
friend class ::WinFriend;
2447
3652
friend class ::ExtAC;
2448
3653
friend class ::ExtACBuilderCoupling;
2449
3654
friend class ::ExtACSyntaxCoupling;
2450
3655
friend class ::ExtACTree;
2451
3656
friend class ::ExtACKeywords;
2452
friend class ::WinAsm;
2453
friend class ::WinDeclSpecs;
2454
friend class ::WinMemberExplSpec;
2455
friend class ::WinTypeKeywords;
3657
friend class ::ExtGnu;
2456
3658
friend class ::PragmaOnceUnitState;
2457
3659
friend class ::PragmaOnce;
2458
friend class ::CCExprResolve;
2459
friend class ::CExprResolve;
2461
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3660
friend class ::CMatchSyntax;
3662
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3664
CTree *sons[3]; // expr, oper, expr
2464
CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
2465
CT_BinaryExpr (e, o, i) {}
3668
* \param e Expression on which to call the member.
3669
* \param o The arrow operator token.
3670
* \param i The member name. */
3671
CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
3672
AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
3674
/** Get the identifier for this node type. Can be compared with NodeName(). */
2466
3675
static const char *NodeId ();
3676
/** Get the name of the node. Can be compared with NodeId(). */
2467
3677
const char *NodeName () const { return NodeId (); }
2468
CSemObject *SemObject () const { return (CSemObject*)this; }
3678
/** Get the number of sons. */
3679
int Sons () const { return 3; }
3680
/** Get the n-th son.
3681
* \param n The index of the son.
3682
* \return The n-th son or NULL. */
3683
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
3685
* \param old_son The son to replace.
3686
* \param new_son The new son. */
3687
void ReplaceSon (CTree *old_son, CTree *new_son) {
3688
CTree::ReplaceSon (sons, 3, old_son, new_son);
2470
3691
typedef CT_MembPtrExpr CCExprResolveExpr;
2472
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3693
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2474
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3695
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2475
3696
typedef CT_MembPtrExpr CExprResolveExpr;
2477
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3698
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2479
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2480
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3700
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3701
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3704
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
3705
* Tree node representing a member reference expression, e.g. a.b. */
2484
#line 2485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3707
#line 3708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2485
3708
} // closed Puma
3709
class CCExprResolve;
2486
3711
class WinIfExists;
2487
3712
class WinImportHandler;
2488
3713
class WinMacros;
3716
class WinMemberExplSpec;
3717
class WinTypeKeywords;
2492
3720
class ExtACBuilderCoupling;
2493
3721
class ExtACSyntaxCoupling;
2494
3722
class ExtACTree;
2495
3723
class ExtACKeywords;
2498
class WinMemberExplSpec;
2499
class WinTypeKeywords;
2500
3725
class PragmaOnceUnitState;
2501
3726
class PragmaOnce;
2502
class CCExprResolve;
2506
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3730
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3732
#line 3733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3735
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3736
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3737
#include "CCExprResolveH.ah"
3741
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3743
#line 3744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3746
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3747
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3748
#include "CExprResolveH.ah"
3752
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2507
3753
class CT_MembRefExpr : public CT_MembPtrExpr {
2508
#line 2509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3754
#line 3755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3755
friend class ::CCExprResolve;
3756
friend class ::CExprResolve;
2509
3757
friend class ::WinIfExists;
2510
3758
friend class ::WinImportHandler;
2511
3759
friend class ::WinMacros;
2512
friend class ::CMatchSyntax;
2513
friend class ::ExtGnu;
3760
friend class ::WinAsm;
3761
friend class ::WinDeclSpecs;
3762
friend class ::WinMemberExplSpec;
3763
friend class ::WinTypeKeywords;
3764
friend class ::WinFriend;
2514
3765
friend class ::ExtAC;
2515
3766
friend class ::ExtACBuilderCoupling;
2516
3767
friend class ::ExtACSyntaxCoupling;
2517
3768
friend class ::ExtACTree;
2518
3769
friend class ::ExtACKeywords;
2519
friend class ::WinAsm;
2520
friend class ::WinDeclSpecs;
2521
friend class ::WinMemberExplSpec;
2522
friend class ::WinTypeKeywords;
3770
friend class ::ExtGnu;
2523
3771
friend class ::PragmaOnceUnitState;
2524
3772
friend class ::PragmaOnce;
2525
friend class ::CCExprResolve;
2526
friend class ::CExprResolve;
3773
friend class ::CMatchSyntax;
2528
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3775
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3779
* \param e Expression on which to call the member.
3780
* \param o The dot operator.
3781
* \param i The member name. */
2531
3782
CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
2532
3783
CT_MembPtrExpr (e, o, i) {}
3784
/** Get the identifier for this node type. Can be compared with NodeName(). */
2533
3785
static const char *NodeId ();
3786
/** Get the name of the node. Can be compared with NodeId(). */
2534
3787
const char *NodeName () const { return NodeId (); }
2536
3789
typedef CT_MembRefExpr CCExprResolveExpr;
2538
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3791
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2540
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3793
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2541
3794
typedef CT_MembRefExpr CExprResolveExpr;
2543
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3796
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2545
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2546
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3798
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3799
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3802
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
3803
* Base class for tree nodes representing unary expressions. */
2550
#line 2551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3805
#line 3806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2551
3806
} // closed Puma
3807
class CCExprResolve;
2552
3809
class WinIfExists;
2553
3810
class WinImportHandler;
2554
3811
class WinMacros;
3814
class WinMemberExplSpec;
3815
class WinTypeKeywords;
2558
3818
class ExtACBuilderCoupling;
2559
3819
class ExtACSyntaxCoupling;
2560
3820
class ExtACTree;
2561
3821
class ExtACKeywords;
2564
class WinMemberExplSpec;
2565
class WinTypeKeywords;
2566
3823
class PragmaOnceUnitState;
2567
3824
class PragmaOnce;
2568
class CCExprResolve;
2572
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
2573
class CT_UnaryExpr : public CT_Expression {
2574
#line 2575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3828
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3830
#line 3831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3835
#include "CCExprResolveH.ah"
3839
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3841
#line 3842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3844
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3845
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3846
#include "CExprResolveH.ah"
3850
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3851
class CT_UnaryExpr : public CT_Call {
3852
#line 3853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3853
friend class ::CCExprResolve;
3854
friend class ::CExprResolve;
2575
3855
friend class ::WinIfExists;
2576
3856
friend class ::WinImportHandler;
2577
3857
friend class ::WinMacros;
2578
friend class ::CMatchSyntax;
2579
friend class ::ExtGnu;
3858
friend class ::WinAsm;
3859
friend class ::WinDeclSpecs;
3860
friend class ::WinMemberExplSpec;
3861
friend class ::WinTypeKeywords;
3862
friend class ::WinFriend;
2580
3863
friend class ::ExtAC;
2581
3864
friend class ::ExtACBuilderCoupling;
2582
3865
friend class ::ExtACSyntaxCoupling;
2583
3866
friend class ::ExtACTree;
2584
3867
friend class ::ExtACKeywords;
2585
friend class ::WinAsm;
2586
friend class ::WinDeclSpecs;
2587
friend class ::WinMemberExplSpec;
2588
friend class ::WinTypeKeywords;
3868
friend class ::ExtGnu;
2589
3869
friend class ::PragmaOnceUnitState;
2590
3870
friend class ::PragmaOnce;
2591
friend class ::CCExprResolve;
2592
friend class ::CExprResolve;
3871
friend class ::CMatchSyntax;
2594
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3873
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2596
3875
CTree *sons[2]; // oper, expr
2599
CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
3879
* \param o The unary operator.
3880
* \param e The expression on which the operator is invoked. */
3881
CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
3882
/** Get the identifier for this node type. Can be compared with NodeName(). */
2600
3883
static const char *NodeId ();
3884
/** Get the name of the node. Can be compared with NodeId(). */
2601
3885
const char *NodeName () const { return NodeId (); }
3886
/** Get the number of sons. */
2602
3887
int Sons () const { return 2; }
3888
/** Get the n-th son.
3889
* \param n The index of the son.
3890
* \return The n-th son or NULL. */
2603
3891
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
3893
* \param old_son The son to replace.
3894
* \param new_son The new son. */
2604
3895
void ReplaceSon (CTree *old_son, CTree *new_son) {
2605
3896
CTree::ReplaceSon (sons, 2, old_son, new_son);
3898
/** Get the expression node. */
2607
3899
CTree *Expr () const { return sons[1]; }
2609
3901
typedef CT_UnaryExpr CCExprResolveExpr;
2611
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3903
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2613
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
3905
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2614
3906
typedef CT_UnaryExpr CExprResolveExpr;
2616
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3908
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2618
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2619
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3910
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
3911
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3914
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
3915
* Tree node representing a postfix expression, e.g. a++. */
2623
#line 2624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3917
#line 3918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2624
3918
} // closed Puma
3919
class CCExprResolve;
2625
3921
class WinIfExists;
2626
3922
class WinImportHandler;
2627
3923
class WinMacros;
3926
class WinMemberExplSpec;
3927
class WinTypeKeywords;
2631
3930
class ExtACBuilderCoupling;
2632
3931
class ExtACSyntaxCoupling;
2633
3932
class ExtACTree;
2634
3933
class ExtACKeywords;
2637
class WinMemberExplSpec;
2638
class WinTypeKeywords;
2639
3935
class PragmaOnceUnitState;
2640
3936
class PragmaOnce;
2641
class CCExprResolve;
2645
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3940
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3942
#line 3943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3945
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3946
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
3947
#include "CCExprResolveH.ah"
3951
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3953
#line 3954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3956
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3957
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
3958
#include "CExprResolveH.ah"
3962
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2646
3963
class CT_PostfixExpr : public CT_UnaryExpr {
2647
#line 2648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
3964
#line 3965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3965
friend class ::CCExprResolve;
3966
friend class ::CExprResolve;
2648
3967
friend class ::WinIfExists;
2649
3968
friend class ::WinImportHandler;
2650
3969
friend class ::WinMacros;
2651
friend class ::CMatchSyntax;
2652
friend class ::ExtGnu;
3970
friend class ::WinAsm;
3971
friend class ::WinDeclSpecs;
3972
friend class ::WinMemberExplSpec;
3973
friend class ::WinTypeKeywords;
3974
friend class ::WinFriend;
2653
3975
friend class ::ExtAC;
2654
3976
friend class ::ExtACBuilderCoupling;
2655
3977
friend class ::ExtACSyntaxCoupling;
2656
3978
friend class ::ExtACTree;
2657
3979
friend class ::ExtACKeywords;
2658
friend class ::WinAsm;
2659
friend class ::WinDeclSpecs;
2660
friend class ::WinMemberExplSpec;
2661
friend class ::WinTypeKeywords;
3980
friend class ::ExtGnu;
2662
3981
friend class ::PragmaOnceUnitState;
2663
3982
friend class ::PragmaOnce;
2664
friend class ::CCExprResolve;
2665
friend class ::CExprResolve;
3983
friend class ::CMatchSyntax;
2667
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3985
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3989
* \param e The expression on which to invoke the operator.
3990
* \param o The postfix operator. */
2670
3991
CT_PostfixExpr (CTree *e, CTree *o) :
2671
3992
CT_UnaryExpr (e, o) {}
3993
/** Get the identifier for this node type. Can be compared with NodeName(). */
2672
3994
static const char *NodeId ();
3995
/** Get the name of the node. Can be compared with NodeId(). */
2673
3996
const char *NodeName () const { return NodeId (); }
2675
3998
typedef CT_PostfixExpr CCExprResolveExpr;
2677
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4000
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2679
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4002
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2680
4003
typedef CT_PostfixExpr CExprResolveExpr;
2682
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2684
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2685
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4007
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4008
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4011
/** \class CT_AddrExpr CTree.h Puma/CTree.h
4012
* Tree node representing an address expression, e.g. &a. */
2689
#line 2690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4014
#line 4015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2690
4015
} // closed Puma
4016
class CCExprResolve;
2691
4018
class WinIfExists;
2692
4019
class WinImportHandler;
2693
4020
class WinMacros;
4023
class WinMemberExplSpec;
4024
class WinTypeKeywords;
2697
4027
class ExtACBuilderCoupling;
2698
4028
class ExtACSyntaxCoupling;
2699
4029
class ExtACTree;
2700
4030
class ExtACKeywords;
2703
class WinMemberExplSpec;
2704
class WinTypeKeywords;
2705
4032
class PragmaOnceUnitState;
2706
4033
class PragmaOnce;
2707
class CCExprResolve;
2711
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4037
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4039
#line 4040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4044
#include "CCExprResolveH.ah"
4048
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4050
#line 4051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4053
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4054
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4055
#include "CExprResolveH.ah"
4059
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2712
4060
class CT_AddrExpr : public CT_UnaryExpr {
2713
#line 2714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4061
#line 4062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4062
friend class ::CCExprResolve;
4063
friend class ::CExprResolve;
2714
4064
friend class ::WinIfExists;
2715
4065
friend class ::WinImportHandler;
2716
4066
friend class ::WinMacros;
2717
friend class ::CMatchSyntax;
2718
friend class ::ExtGnu;
4067
friend class ::WinAsm;
4068
friend class ::WinDeclSpecs;
4069
friend class ::WinMemberExplSpec;
4070
friend class ::WinTypeKeywords;
4071
friend class ::WinFriend;
2719
4072
friend class ::ExtAC;
2720
4073
friend class ::ExtACBuilderCoupling;
2721
4074
friend class ::ExtACSyntaxCoupling;
2722
4075
friend class ::ExtACTree;
2723
4076
friend class ::ExtACKeywords;
2724
friend class ::WinAsm;
2725
friend class ::WinDeclSpecs;
2726
friend class ::WinMemberExplSpec;
2727
friend class ::WinTypeKeywords;
4077
friend class ::ExtGnu;
2728
4078
friend class ::PragmaOnceUnitState;
2729
4079
friend class ::PragmaOnce;
2730
friend class ::CCExprResolve;
2731
friend class ::CExprResolve;
4080
friend class ::CMatchSyntax;
2733
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4082
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4086
* \param o The address operator, i.e. '&'.
4087
* \param e The expression from which to take the address. */
2736
4088
CT_AddrExpr (CTree *o, CTree *e) :
2737
4089
CT_UnaryExpr (o, e) {}
4090
/** Get the identifier for this node type. Can be compared with NodeName(). */
2738
4091
static const char *NodeId ();
4092
/** Get the name of the node. Can be compared with NodeId(). */
2739
4093
const char *NodeName () const { return NodeId (); }
2741
4095
typedef CT_AddrExpr CCExprResolveExpr;
2743
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4097
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2745
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4099
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2746
4100
typedef CT_AddrExpr CExprResolveExpr;
2748
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4102
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2750
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2751
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4104
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4105
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4108
/** \class CT_DerefExpr CTree.h Puma/CTree.h
4109
* Tree node representing a pointer dereferencing expression, e.g. *a. */
2755
#line 2756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4111
#line 4112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2756
4112
} // closed Puma
4113
class CCExprResolve;
2757
4115
class WinIfExists;
2758
4116
class WinImportHandler;
2759
4117
class WinMacros;
4120
class WinMemberExplSpec;
4121
class WinTypeKeywords;
2763
4124
class ExtACBuilderCoupling;
2764
4125
class ExtACSyntaxCoupling;
2765
4126
class ExtACTree;
2766
4127
class ExtACKeywords;
2769
class WinMemberExplSpec;
2770
class WinTypeKeywords;
2771
4129
class PragmaOnceUnitState;
2772
4130
class PragmaOnce;
2773
class CCExprResolve;
2777
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4134
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4136
#line 4137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4139
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4140
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4141
#include "CCExprResolveH.ah"
4145
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4147
#line 4148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4150
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4151
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4152
#include "CExprResolveH.ah"
4156
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2778
4157
class CT_DerefExpr : public CT_UnaryExpr {
2779
#line 2780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4158
#line 4159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4159
friend class ::CCExprResolve;
4160
friend class ::CExprResolve;
2780
4161
friend class ::WinIfExists;
2781
4162
friend class ::WinImportHandler;
2782
4163
friend class ::WinMacros;
2783
friend class ::CMatchSyntax;
2784
friend class ::ExtGnu;
4164
friend class ::WinAsm;
4165
friend class ::WinDeclSpecs;
4166
friend class ::WinMemberExplSpec;
4167
friend class ::WinTypeKeywords;
4168
friend class ::WinFriend;
2785
4169
friend class ::ExtAC;
2786
4170
friend class ::ExtACBuilderCoupling;
2787
4171
friend class ::ExtACSyntaxCoupling;
2788
4172
friend class ::ExtACTree;
2789
4173
friend class ::ExtACKeywords;
2790
friend class ::WinAsm;
2791
friend class ::WinDeclSpecs;
2792
friend class ::WinMemberExplSpec;
2793
friend class ::WinTypeKeywords;
4174
friend class ::ExtGnu;
2794
4175
friend class ::PragmaOnceUnitState;
2795
4176
friend class ::PragmaOnce;
2796
friend class ::CCExprResolve;
2797
friend class ::CExprResolve;
4177
friend class ::CMatchSyntax;
2799
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4179
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4183
* \param o The dereferencing operator, i.e. '*'.
4184
* \param e The expression to dereference. */
2802
4185
CT_DerefExpr (CTree *o, CTree *e) :
2803
4186
CT_UnaryExpr (o, e) {}
4187
/** Get the identifier for this node type. Can be compared with NodeName(). */
2804
4188
static const char *NodeId ();
4189
/** Get the name of the node. Can be compared with NodeId(). */
2805
4190
const char *NodeName () const { return NodeId (); }
2807
4192
typedef CT_DerefExpr CCExprResolveExpr;
2809
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4194
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2811
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4196
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2812
4197
typedef CT_DerefExpr CExprResolveExpr;
2814
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4199
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2816
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2817
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4201
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4202
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4205
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
4206
* Tree node representing a delete expression, e.g. delete a. */
2821
#line 2822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4208
#line 4209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2822
4209
} // closed Puma
4210
class CCExprResolve;
2823
4212
class WinIfExists;
2824
4213
class WinImportHandler;
2825
4214
class WinMacros;
4217
class WinMemberExplSpec;
4218
class WinTypeKeywords;
2829
4221
class ExtACBuilderCoupling;
2830
4222
class ExtACSyntaxCoupling;
2831
4223
class ExtACTree;
2832
4224
class ExtACKeywords;
2835
class WinMemberExplSpec;
2836
class WinTypeKeywords;
2837
4226
class PragmaOnceUnitState;
2838
4227
class PragmaOnce;
2839
class CCExprResolve;
2843
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4231
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4233
#line 4234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4236
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4237
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4238
#include "CCExprResolveH.ah"
4242
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4244
#line 4245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4247
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4248
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4249
#include "CExprResolveH.ah"
4253
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2844
4254
class CT_DeleteExpr : public CT_Expression, public CSemObject {
2845
#line 2846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4255
#line 4256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4256
friend class ::CCExprResolve;
4257
friend class ::CExprResolve;
2846
4258
friend class ::WinIfExists;
2847
4259
friend class ::WinImportHandler;
2848
4260
friend class ::WinMacros;
2849
friend class ::CMatchSyntax;
2850
friend class ::ExtGnu;
4261
friend class ::WinAsm;
4262
friend class ::WinDeclSpecs;
4263
friend class ::WinMemberExplSpec;
4264
friend class ::WinTypeKeywords;
4265
friend class ::WinFriend;
2851
4266
friend class ::ExtAC;
2852
4267
friend class ::ExtACBuilderCoupling;
2853
4268
friend class ::ExtACSyntaxCoupling;
2854
4269
friend class ::ExtACTree;
2855
4270
friend class ::ExtACKeywords;
2856
friend class ::WinAsm;
2857
friend class ::WinDeclSpecs;
2858
friend class ::WinMemberExplSpec;
2859
friend class ::WinTypeKeywords;
4271
friend class ::ExtGnu;
2860
4272
friend class ::PragmaOnceUnitState;
2861
4273
friend class ::PragmaOnce;
2862
friend class ::CCExprResolve;
2863
friend class ::CExprResolve;
4274
friend class ::CMatchSyntax;
2865
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4276
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2867
4278
CTree *sons[2]; // oper, expr
2870
CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
4282
* \param op The delete operator.
4283
* \param e The expression representing the object to delete. */
4284
CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
4285
/** Get the identifier for this node type. Can be compared with NodeName(). */
2871
4286
static const char *NodeId ();
4287
/** Get the name of the node. Can be compared with NodeId(). */
2872
4288
const char *NodeName () const { return NodeId (); }
4289
/** Get the number of sons. */
2873
4290
int Sons () const { return 2; }
4291
/** Get the n-th son.
4292
* \param n The index of the son.
4293
* \return The n-th son or NULL. */
2874
4294
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
4296
* \param old_son The son to replace.
4297
* \param new_son The new son. */
2875
4298
void ReplaceSon (CTree *old_son, CTree *new_son) {
2876
4299
CTree::ReplaceSon (sons, 2, old_son, new_son);
4301
/** Get the expression. */
2878
4302
CTree *Expr () const { return sons[1]; }
4303
/** Get the operator name, i.e. 'delete' or 'delete[]'. */
2879
4304
CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
4305
/** Get the semantic information object. */
2880
4306
CSemObject *SemObject () const { return (CSemObject*)this; }
2882
4308
typedef CT_DeleteExpr CCExprResolveExpr;
2884
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4310
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2886
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4312
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2887
4313
typedef CT_DeleteExpr CExprResolveExpr;
2889
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4315
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2891
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2892
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4317
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4318
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4321
/** \class CT_NewExpr CTree.h Puma/CTree.h
4322
* Tree node representing a new expression, e.g. new A(). */
2896
#line 2897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4324
#line 4325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2897
4325
} // closed Puma
4326
class CCExprResolve;
2898
4328
class WinIfExists;
2899
4329
class WinImportHandler;
2900
4330
class WinMacros;
4333
class WinMemberExplSpec;
4334
class WinTypeKeywords;
2904
4337
class ExtACBuilderCoupling;
2905
4338
class ExtACSyntaxCoupling;
2906
4339
class ExtACTree;
2907
4340
class ExtACKeywords;
2910
class WinMemberExplSpec;
2911
class WinTypeKeywords;
2912
4342
class PragmaOnceUnitState;
2913
4343
class PragmaOnce;
2914
class CCExprResolve;
2918
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4347
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4349
#line 4350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4352
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4353
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4354
#include "CCExprResolveH.ah"
4358
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4360
#line 4361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4363
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4364
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4365
#include "CExprResolveH.ah"
4369
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2919
4370
class CT_NewExpr : public CT_Expression, public CSemObject {
2920
#line 2921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4371
#line 4372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4372
friend class ::CCExprResolve;
4373
friend class ::CExprResolve;
2921
4374
friend class ::WinIfExists;
2922
4375
friend class ::WinImportHandler;
2923
4376
friend class ::WinMacros;
2924
friend class ::CMatchSyntax;
2925
friend class ::ExtGnu;
4377
friend class ::WinAsm;
4378
friend class ::WinDeclSpecs;
4379
friend class ::WinMemberExplSpec;
4380
friend class ::WinTypeKeywords;
4381
friend class ::WinFriend;
2926
4382
friend class ::ExtAC;
2927
4383
friend class ::ExtACBuilderCoupling;
2928
4384
friend class ::ExtACSyntaxCoupling;
2929
4385
friend class ::ExtACTree;
2930
4386
friend class ::ExtACKeywords;
2931
friend class ::WinAsm;
2932
friend class ::WinDeclSpecs;
2933
friend class ::WinMemberExplSpec;
2934
friend class ::WinTypeKeywords;
4387
friend class ::ExtGnu;
2935
4388
friend class ::PragmaOnceUnitState;
2936
4389
friend class ::PragmaOnce;
2937
friend class ::CCExprResolve;
2938
friend class ::CExprResolve;
4390
friend class ::CMatchSyntax;
2940
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4392
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2942
4394
CTree *sons[6]; // oper, placement, open, type, close, init
4398
* \param op The new operator.
4399
* \param p The optional placement expression.
4400
* \param o The optional left parenthesis around the type identifier.
4401
* \param t The type identifier specifying the type of the object to create.
4402
* \param c The optional right parenthesis around the type identifier.
4403
* \param i The optional initializer. */
2945
4404
CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
2946
sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i;
4405
AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o);
4406
AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i);
4408
/** Get the identifier for this node type. Can be compared with NodeName(). */
2948
4409
static const char *NodeId ();
4410
/** Get the name of the node. Can be compared with NodeId(). */
2949
4411
const char *NodeName () const { return NodeId (); }
4412
/** Get the number of sons. */
2950
4413
int Sons () const { return CTree::Sons (sons, 6); }
4414
/** Get the n-th son.
4415
* \param n The index of the son.
4416
* \return The n-th son or NULL. */
2951
4417
CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
4419
* \param old_son The son to replace.
4420
* \param new_son The new son. */
2952
4421
void ReplaceSon (CTree *old_son, CTree *new_son) {
2953
4422
CTree::ReplaceSon (sons, 6, old_son, new_son);
4424
/** Get the operator name. */
2955
4425
CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
4426
/** Get the placement expression. */
2956
4427
CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
4428
/** Get the initializer. */
2957
4429
CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
4430
/** Get the type of the object to create. */
2958
4431
CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
4432
/** Get the semantic information object. */
2959
4433
CSemObject *SemObject () const { return (CSemObject*)this; }
2961
4435
typedef CT_NewExpr CCExprResolveExpr;
2963
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4437
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
2965
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4439
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
2966
4440
typedef CT_NewExpr CExprResolveExpr;
2968
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4442
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
2970
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
2971
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4444
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4445
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4448
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
4449
* Tree node representing an if-then expression,
4450
* e.g. a>0?a:b or a?:b. */
2975
#line 2976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4452
#line 4453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
2976
4453
} // closed Puma
4454
class CCExprResolve;
2977
4456
class WinIfExists;
2978
4457
class WinImportHandler;
2979
4458
class WinMacros;
4461
class WinMemberExplSpec;
4462
class WinTypeKeywords;
2983
4465
class ExtACBuilderCoupling;
2984
4466
class ExtACSyntaxCoupling;
2985
4467
class ExtACTree;
2986
4468
class ExtACKeywords;
2989
class WinMemberExplSpec;
2990
class WinTypeKeywords;
2991
4470
class PragmaOnceUnitState;
2992
4471
class PragmaOnce;
2993
class CCExprResolve;
2997
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4475
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4477
#line 4478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4480
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4481
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4482
#include "CCExprResolveH.ah"
4486
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4488
#line 4489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4491
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4492
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4493
#include "CExprResolveH.ah"
4497
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
2998
4498
class CT_IfThenExpr : public CT_Expression {
2999
#line 3000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4499
#line 4500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4500
friend class ::CCExprResolve;
4501
friend class ::CExprResolve;
3000
4502
friend class ::WinIfExists;
3001
4503
friend class ::WinImportHandler;
3002
4504
friend class ::WinMacros;
3003
friend class ::CMatchSyntax;
3004
friend class ::ExtGnu;
4505
friend class ::WinAsm;
4506
friend class ::WinDeclSpecs;
4507
friend class ::WinMemberExplSpec;
4508
friend class ::WinTypeKeywords;
4509
friend class ::WinFriend;
3005
4510
friend class ::ExtAC;
3006
4511
friend class ::ExtACBuilderCoupling;
3007
4512
friend class ::ExtACSyntaxCoupling;
3008
4513
friend class ::ExtACTree;
3009
4514
friend class ::ExtACKeywords;
3010
friend class ::WinAsm;
3011
friend class ::WinDeclSpecs;
3012
friend class ::WinMemberExplSpec;
3013
friend class ::WinTypeKeywords;
4515
friend class ::ExtGnu;
3014
4516
friend class ::PragmaOnceUnitState;
3015
4517
friend class ::PragmaOnce;
3016
friend class ::CCExprResolve;
3017
friend class ::CExprResolve;
4518
friend class ::CMatchSyntax;
3019
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4520
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3021
4522
CTree *sons[5]; // cond, oper, left, colon, right
4526
* \param c1 The condition expression.
4527
* \param o The question mark operator.
4528
* \param l The expression to the left of the colon.
4529
* \param c2 The colon operator.
4530
* \param r The expression to the right of the colon. */
3024
4531
CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
3025
sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
4532
AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l);
4533
AddSon (sons[3], c2); AddSon (sons[4], r);
4536
* \param c1 The condition expression.
4537
* \param o The question mark operator.
4538
* \param c2 The colon operator.
4539
* \param r The expression to the right of the colon. */
3027
4540
CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
3028
sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
4541
AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0);
4542
AddSon (sons[3], c2); AddSon (sons[4], r);
4544
/** Get the identifier for this node type. Can be compared with NodeName(). */
3030
4545
static const char *NodeId ();
4546
/** Get the name of the node. Can be compared with NodeId(). */
3031
4547
const char *NodeName () const { return NodeId (); }
4548
/** Get the number of sons. */
3032
4549
int Sons () const { return CTree::Sons (sons, 5); }
4550
/** Get the n-th son.
4551
* \param n The index of the son.
4552
* \return The n-th son or NULL. */
3033
4553
CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
4554
/** Get the condition expression. */
3034
4555
CTree *Condition () const { return sons[0]; }
4556
/** Get the left expression (condition=true). */
3035
4557
CTree *LeftOperand () const { return sons[2]; }
4558
/** Get the right expression (condition=false). */
3036
4559
CTree *RightOperand () const { return sons[4]; }
4561
* \param old_son The son to replace.
4562
* \param new_son The new son. */
3037
4563
void ReplaceSon (CTree *old_son, CTree *new_son) {
3038
4564
CTree::ReplaceSon (sons, 5, old_son, new_son);
3041
4567
typedef CT_IfThenExpr CCExprResolveExpr;
3043
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4569
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3045
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4571
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3046
4572
typedef CT_IfThenExpr CExprResolveExpr;
3048
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4574
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3050
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3051
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4576
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4577
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4580
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
4581
* Tree node representing a compound literal, e.g. (int[]){1,2,3). */
3055
#line 3056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4583
#line 4584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3056
4584
} // closed Puma
4585
class CCExprResolve;
3057
4587
class WinIfExists;
3058
4588
class WinImportHandler;
3059
4589
class WinMacros;
4592
class WinMemberExplSpec;
4593
class WinTypeKeywords;
3063
4596
class ExtACBuilderCoupling;
3064
4597
class ExtACSyntaxCoupling;
3065
4598
class ExtACTree;
3066
4599
class ExtACKeywords;
3069
class WinMemberExplSpec;
3070
class WinTypeKeywords;
3071
4601
class PragmaOnceUnitState;
3072
4602
class PragmaOnce;
3073
class CCExprResolve;
3077
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4606
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4608
#line 4609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4611
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4612
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4613
#include "CCExprResolveH.ah"
4617
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4619
#line 4620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4622
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4623
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4624
#include "CExprResolveH.ah"
4628
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3078
4629
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
3079
#line 3080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4630
#line 4631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4631
friend class ::CCExprResolve;
4632
friend class ::CExprResolve;
3080
4633
friend class ::WinIfExists;
3081
4634
friend class ::WinImportHandler;
3082
4635
friend class ::WinMacros;
3083
friend class ::CMatchSyntax;
3084
friend class ::ExtGnu;
4636
friend class ::WinAsm;
4637
friend class ::WinDeclSpecs;
4638
friend class ::WinMemberExplSpec;
4639
friend class ::WinTypeKeywords;
4640
friend class ::WinFriend;
3085
4641
friend class ::ExtAC;
3086
4642
friend class ::ExtACBuilderCoupling;
3087
4643
friend class ::ExtACSyntaxCoupling;
3088
4644
friend class ::ExtACTree;
3089
4645
friend class ::ExtACKeywords;
3090
friend class ::WinAsm;
3091
friend class ::WinDeclSpecs;
3092
friend class ::WinMemberExplSpec;
3093
friend class ::WinTypeKeywords;
4646
friend class ::ExtGnu;
3094
4647
friend class ::PragmaOnceUnitState;
3095
4648
friend class ::PragmaOnce;
3096
friend class ::CCExprResolve;
3097
friend class ::CExprResolve;
4649
friend class ::CMatchSyntax;
3099
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4651
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3101
4653
CTree *sons[4]; // open, type, close, init
4657
* \param r Left parenthesis of the type name.
4658
* \param t The type name.
4659
* \param cr Right parenthesis of the type name.
4660
* \param i The initializer list. */
3104
4661
CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
3105
sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
4662
AddSon (sons[0], r); AddSon (sons[1], t);
4663
AddSon (sons[2], cr); AddSon (sons[3], i);
4665
/** Get the identifier for this node type. Can be compared with NodeName(). */
3107
4666
static const char *NodeId ();
4667
/** Get the name of the node. Can be compared with NodeId(). */
3108
4668
const char *NodeName () const { return NodeId (); }
4669
/** Get the number of sons. */
3109
4670
int Sons () const { return 4; }
4671
/** Get the n-th son.
4672
* \param n The index of the son.
4673
* \return The n-th son or NULL. */
3110
4674
CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
4676
* \param old_son The son to replace.
4677
* \param new_son The new son. */
3111
4678
void ReplaceSon (CTree *old_son, CTree *new_son) {
3112
4679
CTree::ReplaceSon (sons, 4, old_son, new_son);
4681
/** Get the type name. */
3114
4682
CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
4683
/** Get the initializer list. */
3115
4684
CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
4685
/** Get the semantic information object. */
3116
4686
CSemObject *SemObject () const { return (CSemObject*)this; }
3118
4688
typedef CT_CmpdLiteral CCExprResolveExpr;
3120
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4690
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3122
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4692
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3123
4693
typedef CT_CmpdLiteral CExprResolveExpr;
3125
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4695
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3127
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3128
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4697
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4698
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4701
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
4702
* Tree node representing a construct expression, e.g. std::string("abc"). */
3132
#line 3133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4704
#line 4705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3133
4705
} // closed Puma
4706
class CCExprResolve;
3134
4708
class WinIfExists;
3135
4709
class WinImportHandler;
3136
4710
class WinMacros;
4713
class WinMemberExplSpec;
4714
class WinTypeKeywords;
3140
4717
class ExtACBuilderCoupling;
3141
4718
class ExtACSyntaxCoupling;
3142
4719
class ExtACTree;
3143
4720
class ExtACKeywords;
3146
class WinMemberExplSpec;
3147
class WinTypeKeywords;
3148
4722
class PragmaOnceUnitState;
3149
4723
class PragmaOnce;
3150
class CCExprResolve;
3154
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4727
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4729
#line 4730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4732
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4733
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4734
#include "CCExprResolveH.ah"
4738
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4740
#line 4741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4743
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4744
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4745
#include "CExprResolveH.ah"
4749
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3155
4750
class CT_ConstructExpr : public CT_Expression, public CSemObject {
3156
#line 3157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4751
#line 4752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4752
friend class ::CCExprResolve;
4753
friend class ::CExprResolve;
3157
4754
friend class ::WinIfExists;
3158
4755
friend class ::WinImportHandler;
3159
4756
friend class ::WinMacros;
3160
friend class ::CMatchSyntax;
3161
friend class ::ExtGnu;
4757
friend class ::WinAsm;
4758
friend class ::WinDeclSpecs;
4759
friend class ::WinMemberExplSpec;
4760
friend class ::WinTypeKeywords;
4761
friend class ::WinFriend;
3162
4762
friend class ::ExtAC;
3163
4763
friend class ::ExtACBuilderCoupling;
3164
4764
friend class ::ExtACSyntaxCoupling;
3165
4765
friend class ::ExtACTree;
3166
4766
friend class ::ExtACKeywords;
3167
friend class ::WinAsm;
3168
friend class ::WinDeclSpecs;
3169
friend class ::WinMemberExplSpec;
3170
friend class ::WinTypeKeywords;
4767
friend class ::ExtGnu;
3171
4768
friend class ::PragmaOnceUnitState;
3172
4769
friend class ::PragmaOnce;
3173
friend class ::CCExprResolve;
3174
friend class ::CExprResolve;
4770
friend class ::CMatchSyntax;
3176
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4772
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3178
4774
CTree *sons[2]; // type, init
3181
CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
4778
* \param t The type name.
4779
* \param i The initializer list. */
4780
CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
4781
/** Get the identifier for this node type. Can be compared with NodeName(). */
3182
4782
static const char *NodeId ();
4783
/** Get the name of the node. Can be compared with NodeId(). */
3183
4784
const char *NodeName () const { return NodeId (); }
4785
/** Get the number of sons. */
3184
4786
int Sons () const { return 2; }
4787
/** Get the n-th son.
4788
* \param n The index of the son.
4789
* \return The n-th son or NULL. */
3185
4790
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
4792
* \param old_son The son to replace.
4793
* \param new_son The new son. */
3186
4794
void ReplaceSon (CTree *old_son, CTree *new_son) {
3187
4795
CTree::ReplaceSon (sons, 2, old_son, new_son);
4797
/** Get the type name. */
3189
4798
CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
4799
/** Get the initializer. */
3190
4800
CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
4801
/** Get the semantic information object. */
3191
4802
CSemObject *SemObject () const { return (CSemObject*)this; }
3193
4804
typedef CT_ConstructExpr CCExprResolveExpr;
3195
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4806
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3197
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4808
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3198
4809
typedef CT_ConstructExpr CExprResolveExpr;
3200
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4811
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3202
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3203
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4813
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4814
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4817
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
4818
* Tree node representing a throw expression, e.g. throw std::exception(). */
3207
#line 3208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4820
#line 4821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3208
4821
} // closed Puma
4822
class CCExprResolve;
3209
4824
class WinIfExists;
3210
4825
class WinImportHandler;
3211
4826
class WinMacros;
4829
class WinMemberExplSpec;
4830
class WinTypeKeywords;
3215
4833
class ExtACBuilderCoupling;
3216
4834
class ExtACSyntaxCoupling;
3217
4835
class ExtACTree;
3218
4836
class ExtACKeywords;
3221
class WinMemberExplSpec;
3222
class WinTypeKeywords;
3223
4838
class PragmaOnceUnitState;
3224
4839
class PragmaOnce;
3225
class CCExprResolve;
3229
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4843
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4845
#line 4846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4848
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4849
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4850
#include "CCExprResolveH.ah"
4854
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4856
#line 4857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4859
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4860
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4861
#include "CExprResolveH.ah"
4865
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3230
4866
class CT_ThrowExpr : public CT_Expression {
3231
#line 3232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4867
#line 4868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4868
friend class ::CCExprResolve;
4869
friend class ::CExprResolve;
3232
4870
friend class ::WinIfExists;
3233
4871
friend class ::WinImportHandler;
3234
4872
friend class ::WinMacros;
3235
friend class ::CMatchSyntax;
3236
friend class ::ExtGnu;
4873
friend class ::WinAsm;
4874
friend class ::WinDeclSpecs;
4875
friend class ::WinMemberExplSpec;
4876
friend class ::WinTypeKeywords;
4877
friend class ::WinFriend;
3237
4878
friend class ::ExtAC;
3238
4879
friend class ::ExtACBuilderCoupling;
3239
4880
friend class ::ExtACSyntaxCoupling;
3240
4881
friend class ::ExtACTree;
3241
4882
friend class ::ExtACKeywords;
3242
friend class ::WinAsm;
3243
friend class ::WinDeclSpecs;
3244
friend class ::WinMemberExplSpec;
3245
friend class ::WinTypeKeywords;
4883
friend class ::ExtGnu;
3246
4884
friend class ::PragmaOnceUnitState;
3247
4885
friend class ::PragmaOnce;
3248
friend class ::CCExprResolve;
3249
friend class ::CExprResolve;
4886
friend class ::CMatchSyntax;
3251
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4888
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3253
4890
CTree *sons[2]; // throw, expr
3256
CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
4894
* \param t The 'throw' keyword.
4895
* \param e The expression. */
4896
CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
4897
/** Get the identifier for this node type. Can be compared with NodeName(). */
3257
4898
static const char *NodeId ();
4899
/** Get the name of the node. Can be compared with NodeId(). */
3258
4900
const char *NodeName () const { return NodeId (); }
4901
/** Get the number of sons. */
3259
4902
int Sons () const { return CTree::Sons (sons, 2); }
4903
/** Get the n-th son.
4904
* \param n The index of the son.
4905
* \return The n-th son or NULL. */
3260
4906
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
4908
* \param old_son The son to replace.
4909
* \param new_son The new son. */
3261
4910
void ReplaceSon (CTree *old_son, CTree *new_son) {
3262
4911
CTree::ReplaceSon (sons, 2, old_son, new_son);
4913
/** Get the expression. */
3264
4914
CTree *Expr () const { return sons[1]; }
3266
4916
typedef CT_ThrowExpr CCExprResolveExpr;
3268
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3270
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
4920
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3271
4921
typedef CT_ThrowExpr CExprResolveExpr;
3273
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4923
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3275
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3276
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4925
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
4926
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4929
/** \class CT_IndexExpr CTree.h Puma/CTree.h
4930
* Tree node representing an index expression. */
3280
#line 3281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4932
#line 4933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3281
4933
} // closed Puma
4934
class CCExprResolve;
3282
4936
class WinIfExists;
3283
4937
class WinImportHandler;
3284
4938
class WinMacros;
4941
class WinMemberExplSpec;
4942
class WinTypeKeywords;
3288
4945
class ExtACBuilderCoupling;
3289
4946
class ExtACSyntaxCoupling;
3290
4947
class ExtACTree;
3291
4948
class ExtACKeywords;
3294
class WinMemberExplSpec;
3295
class WinTypeKeywords;
3296
4950
class PragmaOnceUnitState;
3297
4951
class PragmaOnce;
3298
class CCExprResolve;
3302
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3303
class CT_IndexExpr : public CT_Expression {
3304
#line 3305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
4955
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4957
#line 4958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
4962
#include "CCExprResolveH.ah"
4966
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4968
#line 4969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4971
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4972
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
4973
#include "CExprResolveH.ah"
4977
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4978
class CT_IndexExpr : public CT_Call {
4979
#line 4980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4980
friend class ::CCExprResolve;
4981
friend class ::CExprResolve;
3305
4982
friend class ::WinIfExists;
3306
4983
friend class ::WinImportHandler;
3307
4984
friend class ::WinMacros;
3308
friend class ::CMatchSyntax;
3309
friend class ::ExtGnu;
4985
friend class ::WinAsm;
4986
friend class ::WinDeclSpecs;
4987
friend class ::WinMemberExplSpec;
4988
friend class ::WinTypeKeywords;
4989
friend class ::WinFriend;
3310
4990
friend class ::ExtAC;
3311
4991
friend class ::ExtACBuilderCoupling;
3312
4992
friend class ::ExtACSyntaxCoupling;
3313
4993
friend class ::ExtACTree;
3314
4994
friend class ::ExtACKeywords;
3315
friend class ::WinAsm;
3316
friend class ::WinDeclSpecs;
3317
friend class ::WinMemberExplSpec;
3318
friend class ::WinTypeKeywords;
4995
friend class ::ExtGnu;
3319
4996
friend class ::PragmaOnceUnitState;
3320
4997
friend class ::PragmaOnce;
3321
friend class ::CCExprResolve;
3322
friend class ::CExprResolve;
4998
friend class ::CMatchSyntax;
3324
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5000
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3326
5002
CTree *sons[4]; // expr, open, index, close
5006
* \param e The expression on which to invoke the index operator.
5007
* \param o Left parenthesis of the index expression.
5008
* \param i The index expression.
5009
* \param c Right parenthesis of the index expression. */
3329
5010
CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
3330
sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
5011
AddSon (sons[0], e); AddSon (sons[1], o);
5012
AddSon (sons[2], i); AddSon (sons[3], c);
5014
/** Get the identifier for this node type. Can be compared with NodeName(). */
3332
5015
static const char *NodeId ();
5016
/** Get the name of the node. Can be compared with NodeId(). */
3333
5017
const char *NodeName () const { return NodeId (); }
5018
/** Get the number of sons. */
3334
5019
int Sons () const { return 4; }
5020
/** Get the n-th son.
5021
* \param n The index of the son.
5022
* \return The n-th son or NULL. */
3335
5023
CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
5025
* \param old_son The son to replace.
5026
* \param new_son The new son. */
3336
5027
void ReplaceSon (CTree *old_son, CTree *new_son) {
3337
5028
CTree::ReplaceSon (sons, 4, old_son, new_son);
3340
5031
typedef CT_IndexExpr CCExprResolveExpr;
3342
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5033
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3344
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5035
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3345
5036
typedef CT_IndexExpr CExprResolveExpr;
3347
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5038
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3349
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3350
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5040
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5041
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5044
/** \class CT_CallExpr CTree.h Puma/CTree.h
5045
* Tree node representing a function call expression, e.g. f(i). */
3354
#line 3355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5047
#line 5048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3355
5048
} // closed Puma
5049
class CCExprResolve;
3356
5051
class WinIfExists;
3357
5052
class WinImportHandler;
3358
5053
class WinMacros;
5056
class WinMemberExplSpec;
5057
class WinTypeKeywords;
3362
5060
class ExtACBuilderCoupling;
3363
5061
class ExtACSyntaxCoupling;
3364
5062
class ExtACTree;
3365
5063
class ExtACKeywords;
3368
class WinMemberExplSpec;
3369
class WinTypeKeywords;
3370
5065
class PragmaOnceUnitState;
3371
5066
class PragmaOnce;
3372
class CCExprResolve;
3376
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3377
class CT_CallExpr : public CT_Expression, public CSemObject {
3378
#line 3379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5070
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5072
#line 5073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5075
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5076
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5077
#include "CCExprResolveH.ah"
5081
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5083
#line 5084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5086
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5087
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5088
#include "CExprResolveH.ah"
5092
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5093
class CT_CallExpr : public CT_Call {
5094
#line 5095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5095
friend class ::CCExprResolve;
5096
friend class ::CExprResolve;
3379
5097
friend class ::WinIfExists;
3380
5098
friend class ::WinImportHandler;
3381
5099
friend class ::WinMacros;
3382
friend class ::CMatchSyntax;
3383
friend class ::ExtGnu;
5100
friend class ::WinAsm;
5101
friend class ::WinDeclSpecs;
5102
friend class ::WinMemberExplSpec;
5103
friend class ::WinTypeKeywords;
5104
friend class ::WinFriend;
3384
5105
friend class ::ExtAC;
3385
5106
friend class ::ExtACBuilderCoupling;
3386
5107
friend class ::ExtACSyntaxCoupling;
3387
5108
friend class ::ExtACTree;
3388
5109
friend class ::ExtACKeywords;
3389
friend class ::WinAsm;
3390
friend class ::WinDeclSpecs;
3391
friend class ::WinMemberExplSpec;
3392
friend class ::WinTypeKeywords;
5110
friend class ::ExtGnu;
3393
5111
friend class ::PragmaOnceUnitState;
3394
5112
friend class ::PragmaOnce;
3395
friend class ::CCExprResolve;
3396
friend class ::CExprResolve;
5113
friend class ::CMatchSyntax;
3398
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5115
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3400
5117
CTree *sons[2]; // expr, args
3403
CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
3404
CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
5121
* \param e The expression on which the call is invoked. */
5122
CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
5124
* \param e The expression on which the call is invoked.
5125
* \param l The argument list of the call. */
5126
CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
5127
/** Get the identifier for this node type. Can be compared with NodeName(). */
3405
5128
static const char *NodeId ();
5129
/** Get the name of the node. Can be compared with NodeId(). */
3406
5130
const char *NodeName () const { return NodeId (); }
5131
/** Get the number of sons. */
3407
5132
int Sons () const { return CTree::Sons (sons, 2); }
5133
/** Get the n-th son.
5134
* \param n The index of the son.
5135
* \return The n-th son or NULL. */
3408
5136
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
5138
* \param old_son The son to replace.
5139
* \param new_son The new son. */
3409
5140
void ReplaceSon (CTree *old_son, CTree *new_son) {
3410
5141
CTree::ReplaceSon (sons, 2, old_son, new_son);
3412
5143
CTree *Expr () const { return sons[0]; }
3413
5144
CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
3414
CSemObject *SemObject () const { return (CSemObject*)this; }
3416
5146
typedef CT_CallExpr CCExprResolveExpr;
3418
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5148
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3420
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5150
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3421
5151
typedef CT_CallExpr CExprResolveExpr;
3423
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5153
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3425
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3426
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5155
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5156
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5159
/** \class CT_CastExpr CTree.h Puma/CTree.h
5160
* Tree node representing a cast expression, e.g. (int)a. */
3430
#line 3431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5162
#line 5163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3431
5163
} // closed Puma
5164
class CCExprResolve;
3432
5166
class WinIfExists;
3433
5167
class WinImportHandler;
3434
5168
class WinMacros;
5171
class WinMemberExplSpec;
5172
class WinTypeKeywords;
3438
5175
class ExtACBuilderCoupling;
3439
5176
class ExtACSyntaxCoupling;
3440
5177
class ExtACTree;
3441
5178
class ExtACKeywords;
3444
class WinMemberExplSpec;
3445
class WinTypeKeywords;
3446
5180
class PragmaOnceUnitState;
3447
5181
class PragmaOnce;
3448
class CCExprResolve;
3452
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5185
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5187
#line 5188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5190
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5191
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5192
#include "CCExprResolveH.ah"
5196
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5198
#line 5199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5201
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5202
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5203
#include "CExprResolveH.ah"
5207
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3453
5208
class CT_CastExpr : public CT_Expression {
3454
#line 3455 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5209
#line 5210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5210
friend class ::CCExprResolve;
5211
friend class ::CExprResolve;
3455
5212
friend class ::WinIfExists;
3456
5213
friend class ::WinImportHandler;
3457
5214
friend class ::WinMacros;
3458
friend class ::CMatchSyntax;
3459
friend class ::ExtGnu;
5215
friend class ::WinAsm;
5216
friend class ::WinDeclSpecs;
5217
friend class ::WinMemberExplSpec;
5218
friend class ::WinTypeKeywords;
5219
friend class ::WinFriend;
3460
5220
friend class ::ExtAC;
3461
5221
friend class ::ExtACBuilderCoupling;
3462
5222
friend class ::ExtACSyntaxCoupling;
3463
5223
friend class ::ExtACTree;
3464
5224
friend class ::ExtACKeywords;
3465
friend class ::WinAsm;
3466
friend class ::WinDeclSpecs;
3467
friend class ::WinMemberExplSpec;
3468
friend class ::WinTypeKeywords;
5225
friend class ::ExtGnu;
3469
5226
friend class ::PragmaOnceUnitState;
3470
5227
friend class ::PragmaOnce;
3471
friend class ::CCExprResolve;
3472
friend class ::CExprResolve;
5228
friend class ::CMatchSyntax;
3474
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5230
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3476
5232
CTree *sons[4]; // open, type, close, expr
5236
* \param o Left parenthesis of the type name.
5237
* \param t The type to cast to.
5238
* \param c Right parenthesis of the type name.
5239
* \param e The expression to cast. */
3479
5240
CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
3480
sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
5241
AddSon (sons[0], o); AddSon (sons[1], t);
5242
AddSon (sons[2], c); AddSon (sons[3], e);
5244
/** Get the identifier for this node type. Can be compared with NodeName(). */
3482
5245
static const char *NodeId ();
5246
/** Get the name of the node. Can be compared with NodeId(). */
3483
5247
const char *NodeName () const { return NodeId (); }
5248
/** Get the number of sons. */
3484
5249
int Sons () const { return 4; }
5250
/** Get the n-th son.
5251
* \param n The index of the son.
5252
* \return The n-th son or NULL. */
3485
5253
CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
5255
* \param old_son The son to replace.
5256
* \param new_son The new son. */
3486
5257
void ReplaceSon (CTree *old_son, CTree *new_son) {
3487
5258
CTree::ReplaceSon (sons, 4, old_son, new_son);
5260
/** Get the casted expression. */
3489
5261
CTree *Expr () const { return sons[3]; }
5262
/** Get the type to cast to. */
3490
5263
CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
3492
5265
typedef CT_CastExpr CCExprResolveExpr;
3494
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5267
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3496
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5269
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3497
5270
typedef CT_CastExpr CExprResolveExpr;
3499
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5272
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3501
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3502
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5274
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5275
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5278
/** \class CT_StaticCast CTree.h Puma/CTree.h
5279
* Tree node representing a static cast, e.g. static_cast<int>(a). */
3506
#line 3507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5281
#line 5282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3507
5282
} // closed Puma
5283
class CCExprResolve;
3508
5285
class WinIfExists;
3509
5286
class WinImportHandler;
3510
5287
class WinMacros;
5290
class WinMemberExplSpec;
5291
class WinTypeKeywords;
3514
5294
class ExtACBuilderCoupling;
3515
5295
class ExtACSyntaxCoupling;
3516
5296
class ExtACTree;
3517
5297
class ExtACKeywords;
3520
class WinMemberExplSpec;
3521
class WinTypeKeywords;
3522
5299
class PragmaOnceUnitState;
3523
5300
class PragmaOnce;
3524
class CCExprResolve;
3528
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5304
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5306
#line 5307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5309
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5310
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5311
#include "CCExprResolveH.ah"
5315
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5317
#line 5318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5320
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5321
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5322
#include "CExprResolveH.ah"
5326
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3529
5327
class CT_StaticCast : public CT_Expression {
3530
#line 3531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5328
#line 5329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5329
friend class ::CCExprResolve;
5330
friend class ::CExprResolve;
3531
5331
friend class ::WinIfExists;
3532
5332
friend class ::WinImportHandler;
3533
5333
friend class ::WinMacros;
3534
friend class ::CMatchSyntax;
3535
friend class ::ExtGnu;
5334
friend class ::WinAsm;
5335
friend class ::WinDeclSpecs;
5336
friend class ::WinMemberExplSpec;
5337
friend class ::WinTypeKeywords;
5338
friend class ::WinFriend;
3536
5339
friend class ::ExtAC;
3537
5340
friend class ::ExtACBuilderCoupling;
3538
5341
friend class ::ExtACSyntaxCoupling;
3539
5342
friend class ::ExtACTree;
3540
5343
friend class ::ExtACKeywords;
3541
friend class ::WinAsm;
3542
friend class ::WinDeclSpecs;
3543
friend class ::WinMemberExplSpec;
3544
friend class ::WinTypeKeywords;
5344
friend class ::ExtGnu;
3545
5345
friend class ::PragmaOnceUnitState;
3546
5346
friend class ::PragmaOnce;
3547
friend class ::CCExprResolve;
3548
friend class ::CExprResolve;
5347
friend class ::CMatchSyntax;
3550
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5349
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3552
5351
CTree *sons[5]; // cast, open, type, close, expr
5355
* \param cst The cast operator, i.e. 'static_cast'.
5356
* \param o Left arrow bracket of the type name.
5357
* \param t The type to cast to.
5358
* \param c Right array bracket of the type name.
5359
* \param e The expression to cast. */
3555
5360
CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
3556
sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
5361
AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t);
5362
AddSon (sons[3], c); AddSon (sons[4], e);
5364
/** Get the identifier for this node type. Can be compared with NodeName(). */
3558
5365
static const char *NodeId ();
5366
/** Get the name of the node. Can be compared with NodeId(). */
3559
5367
const char *NodeName () const { return NodeId (); }
5368
/** Get the number of sons. */
3560
5369
int Sons () const { return 5; }
5370
/** Get the n-th son.
5371
* \param n The index of the son.
5372
* \return The n-th son or NULL. */
3561
5373
CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
5375
* \param old_son The son to replace.
5376
* \param new_son The new son. */
3562
5377
void ReplaceSon (CTree *old_son, CTree *new_son) {
3563
5378
CTree::ReplaceSon (sons, 5, old_son, new_son);
5380
/** Get the casted expression. */
3565
5381
CTree *Expr () const { return sons[4]; }
5382
/** Get the type to cast to. */
3566
5383
CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
3568
5385
typedef CT_StaticCast CCExprResolveExpr;
3570
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5387
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3572
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5389
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3573
5390
typedef CT_StaticCast CExprResolveExpr;
3575
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5392
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3577
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3578
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5394
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5395
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5398
/** \class CT_ConstCast CTree.h Puma/CTree.h
5399
* Tree node representing a const cast, e.g. const_cast<int>(a). */
3582
#line 3583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5401
#line 5402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3583
5402
} // closed Puma
5403
class CCExprResolve;
3584
5405
class WinIfExists;
3585
5406
class WinImportHandler;
3586
5407
class WinMacros;
5410
class WinMemberExplSpec;
5411
class WinTypeKeywords;
3590
5414
class ExtACBuilderCoupling;
3591
5415
class ExtACSyntaxCoupling;
3592
5416
class ExtACTree;
3593
5417
class ExtACKeywords;
3596
class WinMemberExplSpec;
3597
class WinTypeKeywords;
3598
5419
class PragmaOnceUnitState;
3599
5420
class PragmaOnce;
3600
class CCExprResolve;
3604
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5424
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5426
#line 5427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5429
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5430
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5431
#include "CCExprResolveH.ah"
5435
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5437
#line 5438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5442
#include "CExprResolveH.ah"
5446
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3605
5447
class CT_ConstCast : public CT_StaticCast {
3606
#line 3607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5448
#line 5449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5449
friend class ::CCExprResolve;
5450
friend class ::CExprResolve;
3607
5451
friend class ::WinIfExists;
3608
5452
friend class ::WinImportHandler;
3609
5453
friend class ::WinMacros;
3610
friend class ::CMatchSyntax;
3611
friend class ::ExtGnu;
5454
friend class ::WinAsm;
5455
friend class ::WinDeclSpecs;
5456
friend class ::WinMemberExplSpec;
5457
friend class ::WinTypeKeywords;
5458
friend class ::WinFriend;
3612
5459
friend class ::ExtAC;
3613
5460
friend class ::ExtACBuilderCoupling;
3614
5461
friend class ::ExtACSyntaxCoupling;
3615
5462
friend class ::ExtACTree;
3616
5463
friend class ::ExtACKeywords;
3617
friend class ::WinAsm;
3618
friend class ::WinDeclSpecs;
3619
friend class ::WinMemberExplSpec;
3620
friend class ::WinTypeKeywords;
5464
friend class ::ExtGnu;
3621
5465
friend class ::PragmaOnceUnitState;
3622
5466
friend class ::PragmaOnce;
3623
friend class ::CCExprResolve;
3624
friend class ::CExprResolve;
5467
friend class ::CMatchSyntax;
3626
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5469
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5473
* \param cst The cast operator, i.e. 'const_cast'.
5474
* \param o Left arrow bracket of the type name.
5475
* \param t The type to cast to.
5476
* \param c Right array bracket of the type name.
5477
* \param e The expression to cast. */
3629
5478
CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
3630
5479
CT_StaticCast (cst, o, t, c, e) {}
5480
/** Get the identifier for this node type. Can be compared with NodeName(). */
3631
5481
static const char *NodeId ();
5482
/** Get the name of the node. Can be compared with NodeId(). */
3632
5483
const char *NodeName () const { return NodeId (); }
3634
5485
typedef CT_ConstCast CCExprResolveExpr;
3636
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5487
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3638
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5489
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3639
5490
typedef CT_ConstCast CExprResolveExpr;
3641
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5492
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3643
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3644
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5494
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5495
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5498
/** \class CT_ReintCast CTree.h Puma/CTree.h
5499
* Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
3648
#line 3649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5501
#line 5502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3649
5502
} // closed Puma
5503
class CCExprResolve;
3650
5505
class WinIfExists;
3651
5506
class WinImportHandler;
3652
5507
class WinMacros;
5510
class WinMemberExplSpec;
5511
class WinTypeKeywords;
3656
5514
class ExtACBuilderCoupling;
3657
5515
class ExtACSyntaxCoupling;
3658
5516
class ExtACTree;
3659
5517
class ExtACKeywords;
3662
class WinMemberExplSpec;
3663
class WinTypeKeywords;
3664
5519
class PragmaOnceUnitState;
3665
5520
class PragmaOnce;
3666
class CCExprResolve;
3670
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5524
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5526
#line 5527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5531
#include "CCExprResolveH.ah"
5535
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5537
#line 5538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5540
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5541
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5542
#include "CExprResolveH.ah"
5546
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3671
5547
class CT_ReintCast : public CT_StaticCast {
3672
#line 3673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5548
#line 5549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5549
friend class ::CCExprResolve;
5550
friend class ::CExprResolve;
3673
5551
friend class ::WinIfExists;
3674
5552
friend class ::WinImportHandler;
3675
5553
friend class ::WinMacros;
3676
friend class ::CMatchSyntax;
3677
friend class ::ExtGnu;
5554
friend class ::WinAsm;
5555
friend class ::WinDeclSpecs;
5556
friend class ::WinMemberExplSpec;
5557
friend class ::WinTypeKeywords;
5558
friend class ::WinFriend;
3678
5559
friend class ::ExtAC;
3679
5560
friend class ::ExtACBuilderCoupling;
3680
5561
friend class ::ExtACSyntaxCoupling;
3681
5562
friend class ::ExtACTree;
3682
5563
friend class ::ExtACKeywords;
3683
friend class ::WinAsm;
3684
friend class ::WinDeclSpecs;
3685
friend class ::WinMemberExplSpec;
3686
friend class ::WinTypeKeywords;
5564
friend class ::ExtGnu;
3687
5565
friend class ::PragmaOnceUnitState;
3688
5566
friend class ::PragmaOnce;
3689
friend class ::CCExprResolve;
3690
friend class ::CExprResolve;
5567
friend class ::CMatchSyntax;
3692
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5569
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5573
* \param cst The cast operator, i.e. 'reinterpret_cast'.
5574
* \param o Left arrow bracket of the type name.
5575
* \param t The type to cast to.
5576
* \param c Right array bracket of the type name.
5577
* \param e The expression to cast. */
3695
5578
CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
3696
5579
CT_StaticCast (cst, o, t, c, e) {}
5580
/** Get the identifier for this node type. Can be compared with NodeName(). */
3697
5581
static const char *NodeId ();
5582
/** Get the name of the node. Can be compared with NodeId(). */
3698
5583
const char *NodeName () const { return NodeId (); }
3700
5585
typedef CT_ReintCast CCExprResolveExpr;
3702
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5587
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3704
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5589
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3705
5590
typedef CT_ReintCast CExprResolveExpr;
3707
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5592
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3709
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3710
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5594
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5595
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5598
/** \class CT_DynamicCast CTree.h Puma/CTree.h
5599
* Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
3714
#line 3715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5601
#line 5602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3715
5602
} // closed Puma
5603
class CCExprResolve;
3716
5605
class WinIfExists;
3717
5606
class WinImportHandler;
3718
5607
class WinMacros;
5610
class WinMemberExplSpec;
5611
class WinTypeKeywords;
3722
5614
class ExtACBuilderCoupling;
3723
5615
class ExtACSyntaxCoupling;
3724
5616
class ExtACTree;
3725
5617
class ExtACKeywords;
3728
class WinMemberExplSpec;
3729
class WinTypeKeywords;
3730
5619
class PragmaOnceUnitState;
3731
5620
class PragmaOnce;
3732
class CCExprResolve;
3736
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5624
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5626
#line 5627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5629
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5630
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5631
#include "CCExprResolveH.ah"
5635
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5637
#line 5638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5640
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5641
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5642
#include "CExprResolveH.ah"
5646
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3737
5647
class CT_DynamicCast : public CT_StaticCast {
3738
#line 3739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5648
#line 5649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5649
friend class ::CCExprResolve;
5650
friend class ::CExprResolve;
3739
5651
friend class ::WinIfExists;
3740
5652
friend class ::WinImportHandler;
3741
5653
friend class ::WinMacros;
3742
friend class ::CMatchSyntax;
3743
friend class ::ExtGnu;
5654
friend class ::WinAsm;
5655
friend class ::WinDeclSpecs;
5656
friend class ::WinMemberExplSpec;
5657
friend class ::WinTypeKeywords;
5658
friend class ::WinFriend;
3744
5659
friend class ::ExtAC;
3745
5660
friend class ::ExtACBuilderCoupling;
3746
5661
friend class ::ExtACSyntaxCoupling;
3747
5662
friend class ::ExtACTree;
3748
5663
friend class ::ExtACKeywords;
3749
friend class ::WinAsm;
3750
friend class ::WinDeclSpecs;
3751
friend class ::WinMemberExplSpec;
3752
friend class ::WinTypeKeywords;
5664
friend class ::ExtGnu;
3753
5665
friend class ::PragmaOnceUnitState;
3754
5666
friend class ::PragmaOnce;
3755
friend class ::CCExprResolve;
3756
friend class ::CExprResolve;
5667
friend class ::CMatchSyntax;
3758
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5669
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5673
* \param cst The cast operator, i.e. 'dynamic_cast'.
5674
* \param o Left arrow bracket of the type name.
5675
* \param t The type to cast to.
5676
* \param c Right array bracket of the type name.
5677
* \param e The expression to cast. */
3761
5678
CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
3762
5679
CT_StaticCast (cst, o, t, c, e) {}
5680
/** Get the identifier for this node type. Can be compared with NodeName(). */
3763
5681
static const char *NodeId ();
5682
/** Get the name of the node. Can be compared with NodeId(). */
3764
5683
const char *NodeName () const { return NodeId (); }
3766
5685
typedef CT_DynamicCast CCExprResolveExpr;
3768
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5687
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3770
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5689
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3771
5690
typedef CT_DynamicCast CExprResolveExpr;
3773
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5692
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3775
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3776
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5694
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5695
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5698
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
5699
* Tree node representing an implicit cast, e.g. int i = 1.2
5700
* where 1.2 is implicitely casted from float to int. */
3780
#line 3781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5702
#line 5703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3781
5703
} // closed Puma
5704
class CCExprResolve;
3782
5706
class WinIfExists;
3783
5707
class WinImportHandler;
3784
5708
class WinMacros;
5711
class WinMemberExplSpec;
5712
class WinTypeKeywords;
3788
5715
class ExtACBuilderCoupling;
3789
5716
class ExtACSyntaxCoupling;
3790
5717
class ExtACTree;
3791
5718
class ExtACKeywords;
3794
class WinMemberExplSpec;
3795
class WinTypeKeywords;
3796
5720
class PragmaOnceUnitState;
3797
5721
class PragmaOnce;
3798
class CCExprResolve;
3802
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5725
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5727
#line 5728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5730
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5731
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5732
#include "CCExprResolveH.ah"
5736
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5738
#line 5739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5741
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5742
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5743
#include "CExprResolveH.ah"
5747
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3803
5748
class CT_ImplicitCast : public CT_Expression {
3804
#line 3805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5749
#line 5750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5750
friend class ::CCExprResolve;
5751
friend class ::CExprResolve;
3805
5752
friend class ::WinIfExists;
3806
5753
friend class ::WinImportHandler;
3807
5754
friend class ::WinMacros;
3808
friend class ::CMatchSyntax;
3809
friend class ::ExtGnu;
5755
friend class ::WinAsm;
5756
friend class ::WinDeclSpecs;
5757
friend class ::WinMemberExplSpec;
5758
friend class ::WinTypeKeywords;
5759
friend class ::WinFriend;
3810
5760
friend class ::ExtAC;
3811
5761
friend class ::ExtACBuilderCoupling;
3812
5762
friend class ::ExtACSyntaxCoupling;
3813
5763
friend class ::ExtACTree;
3814
5764
friend class ::ExtACKeywords;
3815
friend class ::WinAsm;
3816
friend class ::WinDeclSpecs;
3817
friend class ::WinMemberExplSpec;
3818
friend class ::WinTypeKeywords;
5765
friend class ::ExtGnu;
3819
5766
friend class ::PragmaOnceUnitState;
3820
5767
friend class ::PragmaOnce;
3821
friend class ::CCExprResolve;
3822
friend class ::CExprResolve;
5768
friend class ::CMatchSyntax;
3824
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5770
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3826
5772
CTree *_expr; // casted expression
3829
CT_ImplicitCast (CTree *e) : _expr (e) {}
5776
* \param e The expression that is implicitely casted. */
5777
CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
5778
/** Get the identifier for this node type. Can be compared with NodeName(). */
3830
5779
static const char *NodeId ();
5780
/** Get the name of the node. Can be compared with NodeId(). */
3831
5781
const char *NodeName () const { return NodeId (); }
5782
/** Get the number of sons. */
3832
5783
int Sons () const { return 1; }
5784
/** Get the n-th son.
5785
* \param n The index of the son.
5786
* \return The n-th son or NULL. */
3833
5787
CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
5788
/** Get the casted expression. */
3834
5789
CTree *Expr () const { return _expr; }
5791
* \param old_son The son to replace.
5792
* \param new_son The new son. */
3835
5793
void ReplaceSon (CTree *old_son, CTree *new_son)
3836
{ if (old_son == _expr) _expr = new_son; }
5794
{ CTree::ReplaceSon (_expr, old_son, new_son); }
3838
5796
typedef CT_ImplicitCast CCExprResolveExpr;
3840
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5798
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3842
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5800
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3843
5801
typedef CT_ImplicitCast CExprResolveExpr;
3845
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5803
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3847
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3848
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5805
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5806
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5809
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
5810
* Tree node representing a typeid expression, e.g. typeid(X). */
3852
#line 3853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5812
#line 5813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3853
5813
} // closed Puma
5814
class CCExprResolve;
3854
5816
class WinIfExists;
3855
5817
class WinImportHandler;
3856
5818
class WinMacros;
5821
class WinMemberExplSpec;
5822
class WinTypeKeywords;
3860
5825
class ExtACBuilderCoupling;
3861
5826
class ExtACSyntaxCoupling;
3862
5827
class ExtACTree;
3863
5828
class ExtACKeywords;
3866
class WinMemberExplSpec;
3867
class WinTypeKeywords;
3868
5830
class PragmaOnceUnitState;
3869
5831
class PragmaOnce;
3870
class CCExprResolve;
3874
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5835
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5837
#line 5838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5840
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5841
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5842
#include "CCExprResolveH.ah"
5846
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5848
#line 5849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5851
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5852
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5853
#include "CExprResolveH.ah"
5857
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3875
5858
class CT_TypeidExpr : public CT_Expression {
3876
#line 3877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5859
#line 5860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5860
friend class ::CCExprResolve;
5861
friend class ::CExprResolve;
3877
5862
friend class ::WinIfExists;
3878
5863
friend class ::WinImportHandler;
3879
5864
friend class ::WinMacros;
3880
friend class ::CMatchSyntax;
3881
friend class ::ExtGnu;
5865
friend class ::WinAsm;
5866
friend class ::WinDeclSpecs;
5867
friend class ::WinMemberExplSpec;
5868
friend class ::WinTypeKeywords;
5869
friend class ::WinFriend;
3882
5870
friend class ::ExtAC;
3883
5871
friend class ::ExtACBuilderCoupling;
3884
5872
friend class ::ExtACSyntaxCoupling;
3885
5873
friend class ::ExtACTree;
3886
5874
friend class ::ExtACKeywords;
3887
friend class ::WinAsm;
3888
friend class ::WinDeclSpecs;
3889
friend class ::WinMemberExplSpec;
3890
friend class ::WinTypeKeywords;
5875
friend class ::ExtGnu;
3891
5876
friend class ::PragmaOnceUnitState;
3892
5877
friend class ::PragmaOnce;
3893
friend class ::CCExprResolve;
3894
friend class ::CExprResolve;
5878
friend class ::CMatchSyntax;
3896
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5880
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3898
5882
CTree *sons[4]; // typeid, open, type_id/expr, close
5886
* \param tid The 'typeid' operator.
5887
* \param o The left parenthesis of the type name or expression.
5888
* \param e The expression or type name for which to get the type identifier.
5889
* \param c The right parenthesis of the type name or expression. */
3901
5890
CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
3902
sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
5891
AddSon (sons[0], tid); AddSon (sons[1], o);
5892
AddSon (sons[2], e); AddSon (sons[3], c);
5894
/** Get the identifier for this node type. Can be compared with NodeName(). */
3904
5895
static const char *NodeId ();
5896
/** Get the name of the node. Can be compared with NodeId(). */
3905
5897
const char *NodeName () const { return NodeId (); }
5898
/** Get the number of sons. */
3906
5899
int Sons () const { return 4; }
5900
/** Get the n-th son.
5901
* \param n The index of the son.
5902
* \return The n-th son or NULL. */
3907
5903
CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
5905
* \param old_son The son to replace.
5906
* \param new_son The new son. */
3908
5907
void ReplaceSon (CTree *old_son, CTree *new_son) {
3909
5908
CTree::ReplaceSon (sons, 4, old_son, new_son);
5910
/** Get the typeid argument, i.e. the expression or type name for
5911
* which to get the type identifier. */
3911
5912
CTree *Arg () const { return sons[2]; }
3913
5914
typedef CT_TypeidExpr CCExprResolveExpr;
3915
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5916
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3917
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
5918
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3918
5919
typedef CT_TypeidExpr CExprResolveExpr;
3920
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5921
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
3922
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
3923
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5923
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
5924
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5927
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
5928
* Tree node representing a sizeof expression, e.g. sizeof(int*). */
3927
#line 3928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5930
#line 5931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
3928
5931
} // closed Puma
5932
class CCExprResolve;
3929
5934
class WinIfExists;
3930
5935
class WinImportHandler;
3931
5936
class WinMacros;
5939
class WinMemberExplSpec;
5940
class WinTypeKeywords;
3935
5943
class ExtACBuilderCoupling;
3936
5944
class ExtACSyntaxCoupling;
3937
5945
class ExtACTree;
3938
5946
class ExtACKeywords;
3941
class WinMemberExplSpec;
3942
class WinTypeKeywords;
3943
5948
class PragmaOnceUnitState;
3944
5949
class PragmaOnce;
3945
class CCExprResolve;
3949
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5953
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5955
#line 5956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5958
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5959
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5960
#include "CCExprResolveH.ah"
5964
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5966
#line 5967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5969
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5970
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5971
#include "CExprResolveH.ah"
5975
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3950
5976
class CT_SizeofExpr : public CT_Expression {
3951
#line 3952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
5977
#line 5978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
5978
friend class ::CCExprResolve;
5979
friend class ::CExprResolve;
3952
5980
friend class ::WinIfExists;
3953
5981
friend class ::WinImportHandler;
3954
5982
friend class ::WinMacros;
3955
friend class ::CMatchSyntax;
3956
friend class ::ExtGnu;
5983
friend class ::WinAsm;
5984
friend class ::WinDeclSpecs;
5985
friend class ::WinMemberExplSpec;
5986
friend class ::WinTypeKeywords;
5987
friend class ::WinFriend;
3957
5988
friend class ::ExtAC;
3958
5989
friend class ::ExtACBuilderCoupling;
3959
5990
friend class ::ExtACSyntaxCoupling;
3960
5991
friend class ::ExtACTree;
3961
5992
friend class ::ExtACKeywords;
3962
friend class ::WinAsm;
3963
friend class ::WinDeclSpecs;
3964
friend class ::WinMemberExplSpec;
3965
friend class ::WinTypeKeywords;
5993
friend class ::ExtGnu;
3966
5994
friend class ::PragmaOnceUnitState;
3967
5995
friend class ::PragmaOnce;
3968
friend class ::CCExprResolve;
3969
friend class ::CExprResolve;
5996
friend class ::CMatchSyntax;
3971
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
5998
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3973
6000
CTree *sons[5]; // key, open, type, close, expr
6004
* \param k The 'sizeof' keyword.
6005
* \param o Left parenthesis around the type name.
6006
* \param t The type from which to get the size.
6007
* \param c Right parenthesis around the type name. */
3976
6008
CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
3977
sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
6009
AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t);
6010
AddSon (sons[3], c); AddSon (sons[4], 0);
6013
* \param k The 'sizeof' keyword.
6014
* \param e The expression from which to get the size. */
3979
6015
CT_SizeofExpr (CTree *k, CTree *e) {
3980
sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
6016
AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0);
6017
AddSon (sons[3], 0); AddSon (sons[4], e);
6019
/** Get the identifier for this node type. Can be compared with NodeName(). */
3982
6020
static const char *NodeId ();
6021
/** Get the name of the node. Can be compared with NodeId(). */
3983
6022
const char *NodeName () const { return NodeId (); }
6023
/** Get the number of sons. */
3984
6024
int Sons () const { return CTree::Sons (sons, 5); }
6025
/** Get the n-th son.
6026
* \param n The index of the son.
6027
* \return The n-th son or NULL. */
3985
6028
CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
6030
* \param old_son The son to replace.
6031
* \param new_son The new son. */
3986
6032
void ReplaceSon (CTree *old_son, CTree *new_son) {
3987
6033
CTree::ReplaceSon (sons, 5, old_son, new_son);
6035
/** Get the expression. */
3989
6036
CTree *Expr () const { return sons[4]; }
6037
/** Get the type name. */
3990
6038
CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
3992
6040
typedef CT_SizeofExpr CCExprResolveExpr;
3994
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6042
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
3996
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
6044
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
3997
6045
typedef CT_SizeofExpr CExprResolveExpr;
3999
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6047
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4001
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
4002
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6049
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
6050
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6053
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
6054
* Tree node representing an index designator, i.e. [1]. */
4006
#line 4007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
6056
#line 6057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4007
6057
} // closed Puma
6058
class CCExprResolve;
4008
6060
class WinIfExists;
4009
6061
class WinImportHandler;
4010
6062
class WinMacros;
6065
class WinMemberExplSpec;
6066
class WinTypeKeywords;
4014
6069
class ExtACBuilderCoupling;
4015
6070
class ExtACSyntaxCoupling;
4016
6071
class ExtACTree;
4017
6072
class ExtACKeywords;
4020
class WinMemberExplSpec;
4021
class WinTypeKeywords;
4022
6074
class PragmaOnceUnitState;
4023
6075
class PragmaOnce;
4024
class CCExprResolve;
4028
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6079
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6081
#line 6082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6084
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
6085
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
6086
#include "CCExprResolveH.ah"
6090
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6092
#line 6093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6095
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
6096
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
6097
#include "CExprResolveH.ah"
6101
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4029
6102
class CT_IndexDesignator : public CT_Expression {
4030
#line 4031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
6103
#line 6104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6104
friend class ::CCExprResolve;
6105
friend class ::CExprResolve;
4031
6106
friend class ::WinIfExists;
4032
6107
friend class ::WinImportHandler;
4033
6108
friend class ::WinMacros;
4034
friend class ::CMatchSyntax;
4035
friend class ::ExtGnu;
6109
friend class ::WinAsm;
6110
friend class ::WinDeclSpecs;
6111
friend class ::WinMemberExplSpec;
6112
friend class ::WinTypeKeywords;
6113
friend class ::WinFriend;
4036
6114
friend class ::ExtAC;
4037
6115
friend class ::ExtACBuilderCoupling;
4038
6116
friend class ::ExtACSyntaxCoupling;
4039
6117
friend class ::ExtACTree;
4040
6118
friend class ::ExtACKeywords;
4041
friend class ::WinAsm;
4042
friend class ::WinDeclSpecs;
4043
friend class ::WinMemberExplSpec;
4044
friend class ::WinTypeKeywords;
6119
friend class ::ExtGnu;
4045
6120
friend class ::PragmaOnceUnitState;
4046
6121
friend class ::PragmaOnce;
4047
friend class ::CCExprResolve;
4048
friend class ::CExprResolve;
6122
friend class ::CMatchSyntax;
4050
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6124
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4052
6126
CTree *sons[3]; // open, index, close
6130
* \param o Left bracket of the index designator.
6131
* \param i The index expression.
6132
* \param c Right bracket of the index designator. */
4055
6133
CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
4056
sons[0] = o; sons[1] = i; sons[2] = c;
6134
AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
6136
/** Get the identifier for this node type. Can be compared with NodeName(). */
4058
6137
static const char *NodeId ();
6138
/** Get the name of the node. Can be compared with NodeId(). */
4059
6139
const char *NodeName () const { return NodeId (); }
6140
/** Get the number of sons. */
4060
6141
int Sons () const { return 3; }
6142
/** Get the n-th son.
6143
* \param n The index of the son.
6144
* \return The n-th son or NULL. */
4061
6145
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6147
* \param old_son The son to replace.
6148
* \param new_son The new son. */
4062
6149
void ReplaceSon (CTree *old_son, CTree *new_son) {
4063
6150
CTree::ReplaceSon (sons, 3, old_son, new_son);
4066
6153
typedef CT_IndexDesignator CCExprResolveExpr;
4068
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6155
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4070
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
6157
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
4071
6158
typedef CT_IndexDesignator CExprResolveExpr;
4073
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6160
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4075
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
4076
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6162
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
6163
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6166
/** \class CT_MembDesignator CTree.h Puma/CTree.h
6167
* Tree node representing a member designator, e.g. .a. */
4080
#line 4081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
6169
#line 6170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4081
6170
} // closed Puma
6171
class CCExprResolve;
4082
6173
class WinIfExists;
4083
6174
class WinImportHandler;
4084
6175
class WinMacros;
6178
class WinMemberExplSpec;
6179
class WinTypeKeywords;
4088
6182
class ExtACBuilderCoupling;
4089
6183
class ExtACSyntaxCoupling;
4090
6184
class ExtACTree;
4091
6185
class ExtACKeywords;
4094
class WinMemberExplSpec;
4095
class WinTypeKeywords;
4096
6187
class PragmaOnceUnitState;
4097
6188
class PragmaOnce;
4098
class CCExprResolve;
4102
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6192
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6194
#line 6195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6197
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
6198
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
6199
#include "CCExprResolveH.ah"
6203
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6205
#line 6206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6208
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
6209
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
6210
#include "CExprResolveH.ah"
6214
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4103
6215
class CT_MembDesignator : public CT_Expression {
4104
#line 4105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
6216
#line 6217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6217
friend class ::CCExprResolve;
6218
friend class ::CExprResolve;
4105
6219
friend class ::WinIfExists;
4106
6220
friend class ::WinImportHandler;
4107
6221
friend class ::WinMacros;
4108
friend class ::CMatchSyntax;
4109
friend class ::ExtGnu;
6222
friend class ::WinAsm;
6223
friend class ::WinDeclSpecs;
6224
friend class ::WinMemberExplSpec;
6225
friend class ::WinTypeKeywords;
6226
friend class ::WinFriend;
4110
6227
friend class ::ExtAC;
4111
6228
friend class ::ExtACBuilderCoupling;
4112
6229
friend class ::ExtACSyntaxCoupling;
4113
6230
friend class ::ExtACTree;
4114
6231
friend class ::ExtACKeywords;
4115
friend class ::WinAsm;
4116
friend class ::WinDeclSpecs;
4117
friend class ::WinMemberExplSpec;
4118
friend class ::WinTypeKeywords;
6232
friend class ::ExtGnu;
4119
6233
friend class ::PragmaOnceUnitState;
4120
6234
friend class ::PragmaOnce;
4121
friend class ::CCExprResolve;
4122
friend class ::CExprResolve;
6235
friend class ::CMatchSyntax;
4124
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6237
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4126
6239
CTree *sons[2]; // dot, member
4129
CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
6243
* \param d The dot before the member name.
6244
* \param m The member name. */
6245
CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
6246
/** Get the identifier for this node type. Can be compared with NodeName(). */
4130
6247
static const char *NodeId ();
6248
/** Get the name of the node. Can be compared with NodeId(). */
4131
6249
const char *NodeName () const { return NodeId (); }
6250
/** Get the number of sons. */
4132
6251
int Sons () const { return 2; }
6252
/** Get the n-th son.
6253
* \param n The index of the son.
6254
* \return The n-th son or NULL. */
4133
6255
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
6257
* \param old_son The son to replace.
6258
* \param new_son The new son. */
4134
6259
void ReplaceSon (CTree *old_son, CTree *new_son) {
4135
6260
CTree::ReplaceSon (sons, 2, old_son, new_son);
4138
6263
typedef CT_MembDesignator CCExprResolveExpr;
4140
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6265
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4142
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ; private:
6267
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ; private:
4143
6268
typedef CT_MembDesignator CExprResolveExpr;
4145
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6270
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4147
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
4148
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6272
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
6273
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6276
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
6277
* Tree node representing a designator sequence, e.g. .a.b.c. */
4152
#line 4153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
6279
#line 6280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
4153
6280
} // closed Puma
6281
class CCExprResolve;
4154
6283
class WinIfExists;
4155
6284
class WinImportHandler;
4156
6285
class WinMacros;
6288
class WinMemberExplSpec;
6289
class WinTypeKeywords;
4160
6292
class ExtACBuilderCoupling;
4161
6293
class ExtACSyntaxCoupling;
4162
6294
class ExtACTree;
4163
6295
class ExtACKeywords;
4166
class WinMemberExplSpec;
4167
class WinTypeKeywords;
4168
6297
class PragmaOnceUnitState;
4169
6298
class PragmaOnce;
4170
class CCExprResolve;
4172
6300
namespace Puma {
4174
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6302
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4175
6303
class CT_DesignatorSeq : public CT_List, public CSemValue {
4176
#line 4177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
6304
#line 6305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6305
friend class ::CCExprResolve;
6306
friend class ::CExprResolve;
4177
6307
friend class ::WinIfExists;
4178
6308
friend class ::WinImportHandler;
4179
6309
friend class ::WinMacros;
4180
friend class ::CMatchSyntax;
4181
friend class ::ExtGnu;
6310
friend class ::WinAsm;
6311
friend class ::WinDeclSpecs;
6312
friend class ::WinMemberExplSpec;
6313
friend class ::WinTypeKeywords;
6314
friend class ::WinFriend;
4182
6315
friend class ::ExtAC;
4183
6316
friend class ::ExtACBuilderCoupling;
4184
6317
friend class ::ExtACSyntaxCoupling;
4185
6318
friend class ::ExtACTree;
4186
6319
friend class ::ExtACKeywords;
4187
friend class ::WinAsm;
4188
friend class ::WinDeclSpecs;
4189
friend class ::WinMemberExplSpec;
4190
friend class ::WinTypeKeywords;
6320
friend class ::ExtGnu;
4191
6321
friend class ::PragmaOnceUnitState;
4192
6322
friend class ::PragmaOnce;
4193
friend class ::CCExprResolve;
4194
friend class ::CExprResolve;
6323
friend class ::CMatchSyntax;
4196
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6325
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6329
* \param size Initial number of designators. */
4199
6330
CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
6331
/** Get the identifier for this node type. Can be compared with NodeName(). */
4200
6332
static const char *NodeId ();
6333
/** Get the name of the node. Can be compared with NodeId(). */
4201
6334
const char *NodeName () const { return NodeId (); }
6336
/** Get the type of the entity to initialize. */
4203
6337
CTypeInfo *Type () const { return type; }
6338
/** Get the value of the entity to initialize. */
4204
6339
CExprValue *Value () const { return value; }
6340
/** Get the semantic value object. */
4205
6341
CSemValue *SemValue () const { return (CSemValue*)this; }
6564
9165
/*****************************************************************************/
6567
#line 6568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9168
#line 9169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6568
9169
} // closed Puma
9170
class CCExprResolve;
6569
9172
class WinIfExists;
6570
9173
class WinImportHandler;
6571
9174
class WinMacros;
9177
class WinMemberExplSpec;
9178
class WinTypeKeywords;
6575
9181
class ExtACBuilderCoupling;
6576
9182
class ExtACSyntaxCoupling;
6577
9183
class ExtACTree;
6578
9184
class ExtACKeywords;
6581
class WinMemberExplSpec;
6582
class WinTypeKeywords;
6583
9186
class PragmaOnceUnitState;
6584
9187
class PragmaOnce;
6585
class CCExprResolve;
6587
9189
namespace Puma {
6589
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9191
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6590
9192
class CT_Statement : public CTree {
6591
#line 6592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9193
#line 9194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9194
friend class ::CCExprResolve;
9195
friend class ::CExprResolve;
6592
9196
friend class ::WinIfExists;
6593
9197
friend class ::WinImportHandler;
6594
9198
friend class ::WinMacros;
6595
friend class ::CMatchSyntax;
6596
friend class ::ExtGnu;
9199
friend class ::WinAsm;
9200
friend class ::WinDeclSpecs;
9201
friend class ::WinMemberExplSpec;
9202
friend class ::WinTypeKeywords;
9203
friend class ::WinFriend;
6597
9204
friend class ::ExtAC;
6598
9205
friend class ::ExtACBuilderCoupling;
6599
9206
friend class ::ExtACSyntaxCoupling;
6600
9207
friend class ::ExtACTree;
6601
9208
friend class ::ExtACKeywords;
6602
friend class ::WinAsm;
6603
friend class ::WinDeclSpecs;
6604
friend class ::WinMemberExplSpec;
6605
friend class ::WinTypeKeywords;
9209
friend class ::ExtGnu;
6606
9210
friend class ::PragmaOnceUnitState;
6607
9211
friend class ::PragmaOnce;
6608
friend class ::CCExprResolve;
6609
friend class ::CExprResolve;
9212
friend class ::CMatchSyntax;
6611
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9214
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6614
9217
CT_Statement () {}
9218
virtual CT_Statement *IsStatement () { return this; }
6618
#line 6619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9222
#line 9223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6619
9223
} // closed Puma
9224
class CCExprResolve;
6620
9226
class WinIfExists;
6621
9227
class WinImportHandler;
6622
9228
class WinMacros;
9231
class WinMemberExplSpec;
9232
class WinTypeKeywords;
6626
9235
class ExtACBuilderCoupling;
6627
9236
class ExtACSyntaxCoupling;
6628
9237
class ExtACTree;
6629
9238
class ExtACKeywords;
6632
class WinMemberExplSpec;
6633
class WinTypeKeywords;
6634
9240
class PragmaOnceUnitState;
6635
9241
class PragmaOnce;
6636
class CCExprResolve;
6638
9243
namespace Puma {
6640
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9245
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6641
9246
class CT_LabelStmt : public CT_Statement {
6642
#line 6643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9247
#line 9248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9248
friend class ::CCExprResolve;
9249
friend class ::CExprResolve;
6643
9250
friend class ::WinIfExists;
6644
9251
friend class ::WinImportHandler;
6645
9252
friend class ::WinMacros;
6646
friend class ::CMatchSyntax;
6647
friend class ::ExtGnu;
9253
friend class ::WinAsm;
9254
friend class ::WinDeclSpecs;
9255
friend class ::WinMemberExplSpec;
9256
friend class ::WinTypeKeywords;
9257
friend class ::WinFriend;
6648
9258
friend class ::ExtAC;
6649
9259
friend class ::ExtACBuilderCoupling;
6650
9260
friend class ::ExtACSyntaxCoupling;
6651
9261
friend class ::ExtACTree;
6652
9262
friend class ::ExtACKeywords;
6653
friend class ::WinAsm;
6654
friend class ::WinDeclSpecs;
6655
friend class ::WinMemberExplSpec;
6656
friend class ::WinTypeKeywords;
9263
friend class ::ExtGnu;
6657
9264
friend class ::PragmaOnceUnitState;
6658
9265
friend class ::PragmaOnce;
6659
friend class ::CCExprResolve;
6660
friend class ::CExprResolve;
9266
friend class ::CMatchSyntax;
6662
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9268
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6664
9270
CTree *sons[3]; // id, colon, stmt
6667
9273
CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
6668
sons[0] = id; sons[1] = c; sons[2] = stmt;
9274
AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt);
9276
/** Get the identifier for this node type. Can be compared with NodeName(). */
6670
9277
static const char *NodeId ();
9278
/** Get the name of the node. Can be compared with NodeId(). */
6671
9279
const char *NodeName () const { return NodeId (); }
9280
/** Get the number of sons. */
6672
9281
int Sons () const { return 3; }
9282
/** Get the n-th son.
9283
* \param n The index of the son.
9284
* \return The n-th son or NULL. */
6673
9285
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6674
9286
CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
6675
9287
CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
9289
* \param old_son The son to replace.
9290
* \param new_son The new son. */
6676
9291
void ReplaceSon (CTree *old_son, CTree *new_son) {
6677
9292
CTree::ReplaceSon (sons, 3, old_son, new_son);
6682
#line 6683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9297
#line 9298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6683
9298
} // closed Puma
9299
class CCExprResolve;
6684
9301
class WinIfExists;
6685
9302
class WinImportHandler;
6686
9303
class WinMacros;
9306
class WinMemberExplSpec;
9307
class WinTypeKeywords;
6690
9310
class ExtACBuilderCoupling;
6691
9311
class ExtACSyntaxCoupling;
6692
9312
class ExtACTree;
6693
9313
class ExtACKeywords;
6696
class WinMemberExplSpec;
6697
class WinTypeKeywords;
6698
9315
class PragmaOnceUnitState;
6699
9316
class PragmaOnce;
6700
class CCExprResolve;
6702
9318
namespace Puma {
6704
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9320
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6705
9321
class CT_DefaultStmt : public CT_Statement {
6706
#line 6707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9322
#line 9323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9323
friend class ::CCExprResolve;
9324
friend class ::CExprResolve;
6707
9325
friend class ::WinIfExists;
6708
9326
friend class ::WinImportHandler;
6709
9327
friend class ::WinMacros;
6710
friend class ::CMatchSyntax;
6711
friend class ::ExtGnu;
9328
friend class ::WinAsm;
9329
friend class ::WinDeclSpecs;
9330
friend class ::WinMemberExplSpec;
9331
friend class ::WinTypeKeywords;
9332
friend class ::WinFriend;
6712
9333
friend class ::ExtAC;
6713
9334
friend class ::ExtACBuilderCoupling;
6714
9335
friend class ::ExtACSyntaxCoupling;
6715
9336
friend class ::ExtACTree;
6716
9337
friend class ::ExtACKeywords;
6717
friend class ::WinAsm;
6718
friend class ::WinDeclSpecs;
6719
friend class ::WinMemberExplSpec;
6720
friend class ::WinTypeKeywords;
9338
friend class ::ExtGnu;
6721
9339
friend class ::PragmaOnceUnitState;
6722
9340
friend class ::PragmaOnce;
6723
friend class ::CCExprResolve;
6724
friend class ::CExprResolve;
9341
friend class ::CMatchSyntax;
6726
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9343
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6728
9345
CTree *sons[3]; // keyword, colon, stmt
6731
9348
CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
6732
sons[0] = kw; sons[1] = c; sons[2] = stmt;
9349
AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt);
9351
/** Get the identifier for this node type. Can be compared with NodeName(). */
6734
9352
static const char *NodeId ();
9353
/** Get the name of the node. Can be compared with NodeId(). */
6735
9354
const char *NodeName () const { return NodeId (); }
9355
/** Get the number of sons. */
6736
9356
int Sons () const { return 3; }
9357
/** Get the n-th son.
9358
* \param n The index of the son.
9359
* \return The n-th son or NULL. */
6737
9360
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6738
9361
CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
9363
* \param old_son The son to replace.
9364
* \param new_son The new son. */
6739
9365
void ReplaceSon (CTree *old_son, CTree *new_son) {
6740
9366
CTree::ReplaceSon (sons, 3, old_son, new_son);
6745
#line 6746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9371
#line 9372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6746
9372
} // closed Puma
9373
class CCExprResolve;
6747
9375
class WinIfExists;
6748
9376
class WinImportHandler;
6749
9377
class WinMacros;
9380
class WinMemberExplSpec;
9381
class WinTypeKeywords;
6753
9384
class ExtACBuilderCoupling;
6754
9385
class ExtACSyntaxCoupling;
6755
9386
class ExtACTree;
6756
9387
class ExtACKeywords;
6759
class WinMemberExplSpec;
6760
class WinTypeKeywords;
6761
9389
class PragmaOnceUnitState;
6762
9390
class PragmaOnce;
6763
class CCExprResolve;
6765
9392
namespace Puma {
6767
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9394
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6768
9395
class CT_TryStmt : public CT_Statement {
6769
#line 6770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9396
#line 9397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9397
friend class ::CCExprResolve;
9398
friend class ::CExprResolve;
6770
9399
friend class ::WinIfExists;
6771
9400
friend class ::WinImportHandler;
6772
9401
friend class ::WinMacros;
6773
friend class ::CMatchSyntax;
6774
friend class ::ExtGnu;
9402
friend class ::WinAsm;
9403
friend class ::WinDeclSpecs;
9404
friend class ::WinMemberExplSpec;
9405
friend class ::WinTypeKeywords;
9406
friend class ::WinFriend;
6775
9407
friend class ::ExtAC;
6776
9408
friend class ::ExtACBuilderCoupling;
6777
9409
friend class ::ExtACSyntaxCoupling;
6778
9410
friend class ::ExtACTree;
6779
9411
friend class ::ExtACKeywords;
6780
friend class ::WinAsm;
6781
friend class ::WinDeclSpecs;
6782
friend class ::WinMemberExplSpec;
6783
friend class ::WinTypeKeywords;
9412
friend class ::ExtGnu;
6784
9413
friend class ::PragmaOnceUnitState;
6785
9414
friend class ::PragmaOnce;
6786
friend class ::CCExprResolve;
6787
friend class ::CExprResolve;
9415
friend class ::CMatchSyntax;
6789
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9417
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6791
9419
CTree *sons[3]; // try, stmt, handlers
6794
9422
CT_TryStmt (CTree *t, CTree *s, CTree *h) {
6795
sons[0] = t; sons[1] = s; sons[2] = h;
9423
AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h);
9425
/** Get the identifier for this node type. Can be compared with NodeName(). */
6797
9426
static const char *NodeId ();
9427
/** Get the name of the node. Can be compared with NodeId(). */
6798
9428
const char *NodeName () const { return NodeId (); }
9429
/** Get the number of sons. */
6799
9430
int Sons () const { return 3; }
9431
/** Get the n-th son.
9432
* \param n The index of the son.
9433
* \return The n-th son or NULL. */
6800
9434
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
6801
9435
CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
6802
9436
CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
9438
* \param old_son The son to replace.
9439
* \param new_son The new son. */
6803
9440
void ReplaceSon (CTree *old_son, CTree *new_son) {
6804
9441
CTree::ReplaceSon (sons, 3, old_son, new_son);
6809
#line 6810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9446
#line 9447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6810
9447
} // closed Puma
9448
class CCExprResolve;
6811
9450
class WinIfExists;
6812
9451
class WinImportHandler;
6813
9452
class WinMacros;
9455
class WinMemberExplSpec;
9456
class WinTypeKeywords;
6817
9459
class ExtACBuilderCoupling;
6818
9460
class ExtACSyntaxCoupling;
6819
9461
class ExtACTree;
6820
9462
class ExtACKeywords;
6823
class WinMemberExplSpec;
6824
class WinTypeKeywords;
6825
9464
class PragmaOnceUnitState;
6826
9465
class PragmaOnce;
6827
class CCExprResolve;
6829
9467
namespace Puma {
6831
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9469
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6832
9470
class CT_CaseStmt : public CT_Statement {
6833
#line 6834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9471
#line 9472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9472
friend class ::CCExprResolve;
9473
friend class ::CExprResolve;
6834
9474
friend class ::WinIfExists;
6835
9475
friend class ::WinImportHandler;
6836
9476
friend class ::WinMacros;
6837
friend class ::CMatchSyntax;
6838
friend class ::ExtGnu;
9477
friend class ::WinAsm;
9478
friend class ::WinDeclSpecs;
9479
friend class ::WinMemberExplSpec;
9480
friend class ::WinTypeKeywords;
9481
friend class ::WinFriend;
6839
9482
friend class ::ExtAC;
6840
9483
friend class ::ExtACBuilderCoupling;
6841
9484
friend class ::ExtACSyntaxCoupling;
6842
9485
friend class ::ExtACTree;
6843
9486
friend class ::ExtACKeywords;
6844
friend class ::WinAsm;
6845
friend class ::WinDeclSpecs;
6846
friend class ::WinMemberExplSpec;
6847
friend class ::WinTypeKeywords;
9487
friend class ::ExtGnu;
6848
9488
friend class ::PragmaOnceUnitState;
6849
9489
friend class ::PragmaOnce;
6850
friend class ::CCExprResolve;
6851
friend class ::CExprResolve;
9490
friend class ::CMatchSyntax;
6853
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9492
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6855
9494
CTree *sons[4]; // keyword, expr, colon, stmt
6858
9497
CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
6859
sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt;
9498
AddSon (sons[0], kw); AddSon (sons[1], expr);
9499
AddSon (sons[2], c); AddSon (sons[3], stmt);
9501
/** Get the identifier for this node type. Can be compared with NodeName(). */
6861
9502
static const char *NodeId ();
9503
/** Get the name of the node. Can be compared with NodeId(). */
6862
9504
const char *NodeName () const { return NodeId (); }
9505
/** Get the number of sons. */
6863
9506
int Sons () const { return 4; }
9507
/** Get the n-th son.
9508
* \param n The index of the son.
9509
* \return The n-th son or NULL. */
6864
9510
CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
6865
9511
CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
6866
9512
CTree *Expr () const { return sons[1]; }
9514
* \param old_son The son to replace.
9515
* \param new_son The new son. */
6867
9516
void ReplaceSon (CTree *old_son, CTree *new_son) {
6868
9517
CTree::ReplaceSon (sons, 4, old_son, new_son);
6873
#line 6874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9522
#line 9523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6874
9523
} // closed Puma
9524
class CCExprResolve;
6875
9526
class WinIfExists;
6876
9527
class WinImportHandler;
6877
9528
class WinMacros;
9531
class WinMemberExplSpec;
9532
class WinTypeKeywords;
6881
9535
class ExtACBuilderCoupling;
6882
9536
class ExtACSyntaxCoupling;
6883
9537
class ExtACTree;
6884
9538
class ExtACKeywords;
6887
class WinMemberExplSpec;
6888
class WinTypeKeywords;
6889
9540
class PragmaOnceUnitState;
6890
9541
class PragmaOnce;
6891
class CCExprResolve;
6893
9543
namespace Puma {
6895
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9545
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6896
9546
class CT_ExprStmt : public CT_Statement {
6897
#line 6898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9547
#line 9548 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9548
friend class ::CCExprResolve;
9549
friend class ::CExprResolve;
6898
9550
friend class ::WinIfExists;
6899
9551
friend class ::WinImportHandler;
6900
9552
friend class ::WinMacros;
6901
friend class ::CMatchSyntax;
6902
friend class ::ExtGnu;
9553
friend class ::WinAsm;
9554
friend class ::WinDeclSpecs;
9555
friend class ::WinMemberExplSpec;
9556
friend class ::WinTypeKeywords;
9557
friend class ::WinFriend;
6903
9558
friend class ::ExtAC;
6904
9559
friend class ::ExtACBuilderCoupling;
6905
9560
friend class ::ExtACSyntaxCoupling;
6906
9561
friend class ::ExtACTree;
6907
9562
friend class ::ExtACKeywords;
6908
friend class ::WinAsm;
6909
friend class ::WinDeclSpecs;
6910
friend class ::WinMemberExplSpec;
6911
friend class ::WinTypeKeywords;
9563
friend class ::ExtGnu;
6912
9564
friend class ::PragmaOnceUnitState;
6913
9565
friend class ::PragmaOnce;
6914
friend class ::CCExprResolve;
6915
friend class ::CExprResolve;
9566
friend class ::CMatchSyntax;
6917
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9568
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6919
9570
CTree *sons[2]; // expr, semi_colon
6922
CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
9573
CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
9574
/** Get the identifier for this node type. Can be compared with NodeName(). */
6923
9575
static const char *NodeId ();
9576
/** Get the name of the node. Can be compared with NodeId(). */
6924
9577
const char *NodeName () const { return NodeId (); }
9578
/** Get the number of sons. */
6925
9579
int Sons () const { return CTree::Sons (sons, 2); }
9580
/** Get the n-th son.
9581
* \param n The index of the son.
9582
* \return The n-th son or NULL. */
6926
9583
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
6927
9584
CTree *Expr () const { return sons[0]; }
9586
* \param old_son The son to replace.
9587
* \param new_son The new son. */
6928
9588
void ReplaceSon (CTree *old_son, CTree *new_son) {
6929
9589
CTree::ReplaceSon (sons, 2, old_son, new_son);
6934
#line 6935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9594
#line 9595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6935
9595
} // closed Puma
9596
class CCExprResolve;
6936
9598
class WinIfExists;
6937
9599
class WinImportHandler;
6938
9600
class WinMacros;
9603
class WinMemberExplSpec;
9604
class WinTypeKeywords;
6942
9607
class ExtACBuilderCoupling;
6943
9608
class ExtACSyntaxCoupling;
6944
9609
class ExtACTree;
6945
9610
class ExtACKeywords;
6948
class WinMemberExplSpec;
6949
class WinTypeKeywords;
6950
9612
class PragmaOnceUnitState;
6951
9613
class PragmaOnce;
6952
class CCExprResolve;
6954
9615
namespace Puma {
6956
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9617
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6957
9618
class CT_DeclStmt : public CT_Statement {
6958
#line 6959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9619
#line 9620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9620
friend class ::CCExprResolve;
9621
friend class ::CExprResolve;
6959
9622
friend class ::WinIfExists;
6960
9623
friend class ::WinImportHandler;
6961
9624
friend class ::WinMacros;
6962
friend class ::CMatchSyntax;
6963
friend class ::ExtGnu;
9625
friend class ::WinAsm;
9626
friend class ::WinDeclSpecs;
9627
friend class ::WinMemberExplSpec;
9628
friend class ::WinTypeKeywords;
9629
friend class ::WinFriend;
6964
9630
friend class ::ExtAC;
6965
9631
friend class ::ExtACBuilderCoupling;
6966
9632
friend class ::ExtACSyntaxCoupling;
6967
9633
friend class ::ExtACTree;
6968
9634
friend class ::ExtACKeywords;
6969
friend class ::WinAsm;
6970
friend class ::WinDeclSpecs;
6971
friend class ::WinMemberExplSpec;
6972
friend class ::WinTypeKeywords;
9635
friend class ::ExtGnu;
6973
9636
friend class ::PragmaOnceUnitState;
6974
9637
friend class ::PragmaOnce;
6975
friend class ::CCExprResolve;
6976
friend class ::CExprResolve;
9638
friend class ::CMatchSyntax;
6978
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9640
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6983
CT_DeclStmt (CTree *decl) : _decl (decl) {}
9645
CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
9646
/** Get the identifier for this node type. Can be compared with NodeName(). */
6984
9647
static const char *NodeId ();
9648
/** Get the name of the node. Can be compared with NodeId(). */
6985
9649
const char *NodeName () const { return NodeId (); }
9650
/** Get the number of sons. */
6986
9651
int Sons () const { return 1; }
9652
/** Get the n-th son.
9653
* \param n The index of the son.
9654
* \return The n-th son or NULL. */
6987
9655
CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
9657
* \param old_son The son to replace.
9658
* \param new_son The new son. */
6988
9659
void ReplaceSon (CTree *old_son, CTree *new_son)
6989
{ if (old_son == _decl) _decl = new_son; }
9660
{ CTree::ReplaceSon (_decl, old_son, new_son); }
6993
#line 6994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9664
#line 9665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
6994
9665
} // closed Puma
9666
class CCExprResolve;
6995
9668
class WinIfExists;
6996
9669
class WinImportHandler;
6997
9670
class WinMacros;
9673
class WinMemberExplSpec;
9674
class WinTypeKeywords;
7001
9677
class ExtACBuilderCoupling;
7002
9678
class ExtACSyntaxCoupling;
7003
9679
class ExtACTree;
7004
9680
class ExtACKeywords;
7007
class WinMemberExplSpec;
7008
class WinTypeKeywords;
7009
9682
class PragmaOnceUnitState;
7010
9683
class PragmaOnce;
7011
class CCExprResolve;
7013
9685
namespace Puma {
7015
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9687
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7016
9688
class CT_SwitchStmt : public CT_Statement, public CSemScope {
7017
#line 7018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9689
#line 9690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9690
friend class ::CCExprResolve;
9691
friend class ::CExprResolve;
7018
9692
friend class ::WinIfExists;
7019
9693
friend class ::WinImportHandler;
7020
9694
friend class ::WinMacros;
7021
friend class ::CMatchSyntax;
7022
friend class ::ExtGnu;
9695
friend class ::WinAsm;
9696
friend class ::WinDeclSpecs;
9697
friend class ::WinMemberExplSpec;
9698
friend class ::WinTypeKeywords;
9699
friend class ::WinFriend;
7023
9700
friend class ::ExtAC;
7024
9701
friend class ::ExtACBuilderCoupling;
7025
9702
friend class ::ExtACSyntaxCoupling;
7026
9703
friend class ::ExtACTree;
7027
9704
friend class ::ExtACKeywords;
7028
friend class ::WinAsm;
7029
friend class ::WinDeclSpecs;
7030
friend class ::WinMemberExplSpec;
7031
friend class ::WinTypeKeywords;
9705
friend class ::ExtGnu;
7032
9706
friend class ::PragmaOnceUnitState;
7033
9707
friend class ::PragmaOnce;
7034
friend class ::CCExprResolve;
7035
friend class ::CExprResolve;
9708
friend class ::CMatchSyntax;
7037
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9710
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7039
9712
CTree *sons[5]; // keyword, open, cond, close, stmt
7042
9715
CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
7043
sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt;
9716
AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond);
9717
AddSon (sons[3], c); AddSon (sons[4], stmt);
9719
/** Get the identifier for this node type. Can be compared with NodeName(). */
7045
9720
static const char *NodeId ();
9721
/** Get the name of the node. Can be compared with NodeId(). */
7046
9722
const char *NodeName () const { return NodeId (); }
9723
/** Get the number of sons. */
7047
9724
int Sons () const { return 5; }
9725
/** Get the n-th son.
9726
* \param n The index of the son.
9727
* \return The n-th son or NULL. */
7048
9728
CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
7049
9729
CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
7050
9730
CTree *Condition () const { return sons[2]; }
9732
* \param old_son The son to replace.
9733
* \param new_son The new son. */
7051
9734
void ReplaceSon (CTree *old_son, CTree *new_son) {
7052
9735
CTree::ReplaceSon (sons, 5, old_son, new_son);
9737
CSemScope *SemScope () const { return (CSemScope*)this; }
7057
#line 7058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9741
#line 9742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7058
9742
} // closed Puma
9743
class CCExprResolve;
7059
9745
class WinIfExists;
7060
9746
class WinImportHandler;
7061
9747
class WinMacros;
9750
class WinMemberExplSpec;
9751
class WinTypeKeywords;
7065
9754
class ExtACBuilderCoupling;
7066
9755
class ExtACSyntaxCoupling;
7067
9756
class ExtACTree;
7068
9757
class ExtACKeywords;
7071
class WinMemberExplSpec;
7072
class WinTypeKeywords;
7073
9759
class PragmaOnceUnitState;
7074
9760
class PragmaOnce;
7075
class CCExprResolve;
7077
9762
namespace Puma {
7079
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9764
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7080
9765
class CT_IfStmt : public CT_Statement, public CSemScope {
7081
#line 7082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9766
#line 9767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9767
friend class ::CCExprResolve;
9768
friend class ::CExprResolve;
7082
9769
friend class ::WinIfExists;
7083
9770
friend class ::WinImportHandler;
7084
9771
friend class ::WinMacros;
7085
friend class ::CMatchSyntax;
7086
friend class ::ExtGnu;
9772
friend class ::WinAsm;
9773
friend class ::WinDeclSpecs;
9774
friend class ::WinMemberExplSpec;
9775
friend class ::WinTypeKeywords;
9776
friend class ::WinFriend;
7087
9777
friend class ::ExtAC;
7088
9778
friend class ::ExtACBuilderCoupling;
7089
9779
friend class ::ExtACSyntaxCoupling;
7090
9780
friend class ::ExtACTree;
7091
9781
friend class ::ExtACKeywords;
7092
friend class ::WinAsm;
7093
friend class ::WinDeclSpecs;
7094
friend class ::WinMemberExplSpec;
7095
friend class ::WinTypeKeywords;
9782
friend class ::ExtGnu;
7096
9783
friend class ::PragmaOnceUnitState;
7097
9784
friend class ::PragmaOnce;
7098
friend class ::CCExprResolve;
7099
friend class ::CExprResolve;
9785
friend class ::CMatchSyntax;
7101
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9787
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7103
9789
CTree *sons[5]; // keyword, open, cond, close, stmt
7106
9792
CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
7107
sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt;
9793
AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond);
9794
AddSon (sons[3], c); AddSon (sons[4], stmt);
9796
/** Get the identifier for this node type. Can be compared with NodeName(). */
7109
9797
static const char *NodeId ();
9798
/** Get the name of the node. Can be compared with NodeId(). */
7110
9799
const char *NodeName () const { return NodeId (); }
9800
/** Get the number of sons. */
7111
9801
int Sons () const { return 5; }
9802
/** Get the n-th son.
9803
* \param n The index of the son.
9804
* \return The n-th son or NULL. */
7112
9805
CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
7113
9806
CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
7114
9807
CTree *Condition () const { return sons[2]; }
9809
* \param old_son The son to replace.
9810
* \param new_son The new son. */
7115
9811
void ReplaceSon (CTree *old_son, CTree *new_son) {
7116
9812
CTree::ReplaceSon (sons, 5, old_son, new_son);
9814
CSemScope *SemScope () const { return (CSemScope*)this; }
7121
#line 7122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9818
#line 9819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7122
9819
} // closed Puma
9820
class CCExprResolve;
7123
9822
class WinIfExists;
7124
9823
class WinImportHandler;
7125
9824
class WinMacros;
9827
class WinMemberExplSpec;
9828
class WinTypeKeywords;
7129
9831
class ExtACBuilderCoupling;
7130
9832
class ExtACSyntaxCoupling;
7131
9833
class ExtACTree;
7132
9834
class ExtACKeywords;
7135
class WinMemberExplSpec;
7136
class WinTypeKeywords;
7137
9836
class PragmaOnceUnitState;
7138
9837
class PragmaOnce;
7139
class CCExprResolve;
7141
9839
namespace Puma {
7143
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9841
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7144
9842
class CT_IfElseStmt : public CT_Statement, public CSemScope {
7145
#line 7146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9843
#line 9844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9844
friend class ::CCExprResolve;
9845
friend class ::CExprResolve;
7146
9846
friend class ::WinIfExists;
7147
9847
friend class ::WinImportHandler;
7148
9848
friend class ::WinMacros;
7149
friend class ::CMatchSyntax;
7150
friend class ::ExtGnu;
9849
friend class ::WinAsm;
9850
friend class ::WinDeclSpecs;
9851
friend class ::WinMemberExplSpec;
9852
friend class ::WinTypeKeywords;
9853
friend class ::WinFriend;
7151
9854
friend class ::ExtAC;
7152
9855
friend class ::ExtACBuilderCoupling;
7153
9856
friend class ::ExtACSyntaxCoupling;
7154
9857
friend class ::ExtACTree;
7155
9858
friend class ::ExtACKeywords;
7156
friend class ::WinAsm;
7157
friend class ::WinDeclSpecs;
7158
friend class ::WinMemberExplSpec;
7159
friend class ::WinTypeKeywords;
9859
friend class ::ExtGnu;
7160
9860
friend class ::PragmaOnceUnitState;
7161
9861
friend class ::PragmaOnce;
7162
friend class ::CCExprResolve;
7163
friend class ::CExprResolve;
9862
friend class ::CMatchSyntax;
7165
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9864
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7167
9866
CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
7170
9869
CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c,
7171
9870
CTree *is, CTree *e, CTree *es) {
7172
sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is;
7173
sons[5] = e; sons[6] = es;
9871
AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond);
9872
AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e);
9873
AddSon (sons[6], es);
9875
/** Get the identifier for this node type. Can be compared with NodeName(). */
7175
9876
static const char *NodeId ();
9877
/** Get the name of the node. Can be compared with NodeId(). */
7176
9878
const char *NodeName () const { return NodeId (); }
9879
/** Get the number of sons. */
7177
9880
int Sons () const { return 7; }
9881
/** Get the n-th son.
9882
* \param n The index of the son.
9883
* \return The n-th son or NULL. */
7178
9884
CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
7179
9885
CTree *Condition () const { return sons[2]; }
7180
9886
CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
7181
9887
CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
9889
* \param old_son The son to replace.
9890
* \param new_son The new son. */
7182
9891
void ReplaceSon (CTree *old_son, CTree *new_son) {
7183
9892
CTree::ReplaceSon (sons, 7, old_son, new_son);
9894
CSemScope *SemScope () const { return (CSemScope*)this; }
7188
#line 7189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9898
#line 9899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7189
9899
} // closed Puma
9900
class CCExprResolve;
7190
9902
class WinIfExists;
7191
9903
class WinImportHandler;
7192
9904
class WinMacros;
9907
class WinMemberExplSpec;
9908
class WinTypeKeywords;
7196
9911
class ExtACBuilderCoupling;
7197
9912
class ExtACSyntaxCoupling;
7198
9913
class ExtACTree;
7199
9914
class ExtACKeywords;
7202
class WinMemberExplSpec;
7203
class WinTypeKeywords;
7204
9916
class PragmaOnceUnitState;
7205
9917
class PragmaOnce;
7206
class CCExprResolve;
7208
9919
namespace Puma {
7210
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9921
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7211
9922
class CT_BreakStmt : public CT_Statement {
7212
#line 7213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9923
#line 9924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9924
friend class ::CCExprResolve;
9925
friend class ::CExprResolve;
7213
9926
friend class ::WinIfExists;
7214
9927
friend class ::WinImportHandler;
7215
9928
friend class ::WinMacros;
7216
friend class ::CMatchSyntax;
7217
friend class ::ExtGnu;
9929
friend class ::WinAsm;
9930
friend class ::WinDeclSpecs;
9931
friend class ::WinMemberExplSpec;
9932
friend class ::WinTypeKeywords;
9933
friend class ::WinFriend;
7218
9934
friend class ::ExtAC;
7219
9935
friend class ::ExtACBuilderCoupling;
7220
9936
friend class ::ExtACSyntaxCoupling;
7221
9937
friend class ::ExtACTree;
7222
9938
friend class ::ExtACKeywords;
7223
friend class ::WinAsm;
7224
friend class ::WinDeclSpecs;
7225
friend class ::WinMemberExplSpec;
7226
friend class ::WinTypeKeywords;
9939
friend class ::ExtGnu;
7227
9940
friend class ::PragmaOnceUnitState;
7228
9941
friend class ::PragmaOnce;
7229
friend class ::CCExprResolve;
7230
friend class ::CExprResolve;
9942
friend class ::CMatchSyntax;
7232
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9944
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7234
9946
CTree *sons[2]; // key, semi_colon
7237
CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
9949
CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
9950
/** Get the identifier for this node type. Can be compared with NodeName(). */
7238
9951
static const char *NodeId ();
9952
/** Get the name of the node. Can be compared with NodeId(). */
7239
9953
const char *NodeName () const { return NodeId (); }
9954
/** Get the number of sons. */
7240
9955
int Sons () const { return 2; }
9956
/** Get the n-th son.
9957
* \param n The index of the son.
9958
* \return The n-th son or NULL. */
7241
9959
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
9961
* \param old_son The son to replace.
9962
* \param new_son The new son. */
7242
9963
void ReplaceSon (CTree *old_son, CTree *new_son) {
7243
9964
CTree::ReplaceSon (sons, 2, old_son, new_son);
7248
#line 7249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9969
#line 9970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7249
9970
} // closed Puma
9971
class CCExprResolve;
7250
9973
class WinIfExists;
7251
9974
class WinImportHandler;
7252
9975
class WinMacros;
9978
class WinMemberExplSpec;
9979
class WinTypeKeywords;
7256
9982
class ExtACBuilderCoupling;
7257
9983
class ExtACSyntaxCoupling;
7258
9984
class ExtACTree;
7259
9985
class ExtACKeywords;
7262
class WinMemberExplSpec;
7263
class WinTypeKeywords;
7264
9987
class PragmaOnceUnitState;
7265
9988
class PragmaOnce;
7266
class CCExprResolve;
7268
9990
namespace Puma {
7270
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9992
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7271
9993
class CT_ContinueStmt : public CT_Statement {
7272
#line 7273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
9994
#line 9995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
9995
friend class ::CCExprResolve;
9996
friend class ::CExprResolve;
7273
9997
friend class ::WinIfExists;
7274
9998
friend class ::WinImportHandler;
7275
9999
friend class ::WinMacros;
7276
friend class ::CMatchSyntax;
7277
friend class ::ExtGnu;
10000
friend class ::WinAsm;
10001
friend class ::WinDeclSpecs;
10002
friend class ::WinMemberExplSpec;
10003
friend class ::WinTypeKeywords;
10004
friend class ::WinFriend;
7278
10005
friend class ::ExtAC;
7279
10006
friend class ::ExtACBuilderCoupling;
7280
10007
friend class ::ExtACSyntaxCoupling;
7281
10008
friend class ::ExtACTree;
7282
10009
friend class ::ExtACKeywords;
7283
friend class ::WinAsm;
7284
friend class ::WinDeclSpecs;
7285
friend class ::WinMemberExplSpec;
7286
friend class ::WinTypeKeywords;
10010
friend class ::ExtGnu;
7287
10011
friend class ::PragmaOnceUnitState;
7288
10012
friend class ::PragmaOnce;
7289
friend class ::CCExprResolve;
7290
friend class ::CExprResolve;
10013
friend class ::CMatchSyntax;
7292
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10015
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7294
10017
CTree *sons[2]; // key, semi_colon
7297
CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
10020
CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
10021
/** Get the identifier for this node type. Can be compared with NodeName(). */
7298
10022
static const char *NodeId ();
10023
/** Get the name of the node. Can be compared with NodeId(). */
7299
10024
const char *NodeName () const { return NodeId (); }
10025
/** Get the number of sons. */
7300
10026
int Sons () const { return 2; }
10027
/** Get the n-th son.
10028
* \param n The index of the son.
10029
* \return The n-th son or NULL. */
7301
10030
CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
10032
* \param old_son The son to replace.
10033
* \param new_son The new son. */
7302
10034
void ReplaceSon (CTree *old_son, CTree *new_son) {
7303
10035
CTree::ReplaceSon (sons, 2, old_son, new_son);
7308
#line 7309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10040
#line 10041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7309
10041
} // closed Puma
10042
class CCExprResolve;
10043
class CExprResolve;
7310
10044
class WinIfExists;
7311
10045
class WinImportHandler;
7312
10046
class WinMacros;
10048
class WinDeclSpecs;
10049
class WinMemberExplSpec;
10050
class WinTypeKeywords;
7316
10053
class ExtACBuilderCoupling;
7317
10054
class ExtACSyntaxCoupling;
7318
10055
class ExtACTree;
7319
10056
class ExtACKeywords;
7322
class WinMemberExplSpec;
7323
class WinTypeKeywords;
7324
10058
class PragmaOnceUnitState;
7325
10059
class PragmaOnce;
7326
class CCExprResolve;
10060
class CMatchSyntax;
7328
10061
namespace Puma {
7330
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10063
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7331
10064
class CT_GotoStmt : public CT_Statement {
7332
#line 7333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10065
#line 10066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
10066
friend class ::CCExprResolve;
10067
friend class ::CExprResolve;
7333
10068
friend class ::WinIfExists;
7334
10069
friend class ::WinImportHandler;
7335
10070
friend class ::WinMacros;
7336
friend class ::CMatchSyntax;
7337
friend class ::ExtGnu;
10071
friend class ::WinAsm;
10072
friend class ::WinDeclSpecs;
10073
friend class ::WinMemberExplSpec;
10074
friend class ::WinTypeKeywords;
10075
friend class ::WinFriend;
7338
10076
friend class ::ExtAC;
7339
10077
friend class ::ExtACBuilderCoupling;
7340
10078
friend class ::ExtACSyntaxCoupling;
7341
10079
friend class ::ExtACTree;
7342
10080
friend class ::ExtACKeywords;
7343
friend class ::WinAsm;
7344
friend class ::WinDeclSpecs;
7345
friend class ::WinMemberExplSpec;
7346
friend class ::WinTypeKeywords;
10081
friend class ::ExtGnu;
7347
10082
friend class ::PragmaOnceUnitState;
7348
10083
friend class ::PragmaOnce;
7349
friend class ::CCExprResolve;
7350
friend class ::CExprResolve;
10084
friend class ::CMatchSyntax;
7352
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10086
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7354
10088
CTree *sons[3]; // key, label, semi_colon
7357
10091
CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
7358
sons[0] = key; sons[1] = l; sons[2] = sc;
10092
AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc);
10094
/** Get the identifier for this node type. Can be compared with NodeName(). */
7360
10095
static const char *NodeId ();
10096
/** Get the name of the node. Can be compared with NodeId(). */
7361
10097
const char *NodeName () const { return NodeId (); }
10098
/** Get the number of sons. */
7362
10099
int Sons () const { return 3; }
10100
/** Get the n-th son.
10101
* \param n The index of the son.
10102
* \return The n-th son or NULL. */
7363
10103
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7364
10104
CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
10106
* \param old_son The son to replace.
10107
* \param new_son The new son. */
7365
10108
void ReplaceSon (CTree *old_son, CTree *new_son) {
7366
10109
CTree::ReplaceSon (sons, 3, old_son, new_son);
7371
#line 7372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10114
#line 10115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7372
10115
} // closed Puma
10116
class CCExprResolve;
10117
class CExprResolve;
7373
10118
class WinIfExists;
7374
10119
class WinImportHandler;
7375
10120
class WinMacros;
10122
class WinDeclSpecs;
10123
class WinMemberExplSpec;
10124
class WinTypeKeywords;
7379
10127
class ExtACBuilderCoupling;
7380
10128
class ExtACSyntaxCoupling;
7381
10129
class ExtACTree;
7382
10130
class ExtACKeywords;
7385
class WinMemberExplSpec;
7386
class WinTypeKeywords;
7387
10132
class PragmaOnceUnitState;
7388
10133
class PragmaOnce;
7389
class CCExprResolve;
10134
class CMatchSyntax;
7391
10135
namespace Puma {
7393
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10137
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7394
10138
class CT_ReturnStmt : public CT_Statement {
7395
#line 7396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10139
#line 10140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
10140
friend class ::CCExprResolve;
10141
friend class ::CExprResolve;
7396
10142
friend class ::WinIfExists;
7397
10143
friend class ::WinImportHandler;
7398
10144
friend class ::WinMacros;
7399
friend class ::CMatchSyntax;
7400
friend class ::ExtGnu;
10145
friend class ::WinAsm;
10146
friend class ::WinDeclSpecs;
10147
friend class ::WinMemberExplSpec;
10148
friend class ::WinTypeKeywords;
10149
friend class ::WinFriend;
7401
10150
friend class ::ExtAC;
7402
10151
friend class ::ExtACBuilderCoupling;
7403
10152
friend class ::ExtACSyntaxCoupling;
7404
10153
friend class ::ExtACTree;
7405
10154
friend class ::ExtACKeywords;
7406
friend class ::WinAsm;
7407
friend class ::WinDeclSpecs;
7408
friend class ::WinMemberExplSpec;
7409
friend class ::WinTypeKeywords;
10155
friend class ::ExtGnu;
7410
10156
friend class ::PragmaOnceUnitState;
7411
10157
friend class ::PragmaOnce;
7412
friend class ::CCExprResolve;
7413
friend class ::CExprResolve;
10158
friend class ::CMatchSyntax;
7415
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10160
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7417
10162
CTree *sons[3]; // key, expr, semi_colon
7420
10165
CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
7421
sons[0] = key; sons[1] = e; sons[2] = sc;
10166
AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc);
10168
/** Get the identifier for this node type. Can be compared with NodeName(). */
7423
10169
static const char *NodeId ();
10170
/** Get the name of the node. Can be compared with NodeId(). */
7424
10171
const char *NodeName () const { return NodeId (); }
10172
/** Get the number of sons. */
7425
10173
int Sons () const { return CTree::Sons (sons, 3); }
10174
/** Get the n-th son.
10175
* \param n The index of the son.
10176
* \return The n-th son or NULL. */
7426
10177
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7427
10178
CTree *Expr () const { return sons[1]; }
10180
* \param old_son The son to replace.
10181
* \param new_son The new son. */
7428
10182
void ReplaceSon (CTree *old_son, CTree *new_son) {
7429
10183
CTree::ReplaceSon (sons, 3, old_son, new_son);
7434
#line 7435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10188
#line 10189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7435
10189
} // closed Puma
10190
class CCExprResolve;
10191
class CExprResolve;
7436
10192
class WinIfExists;
7437
10193
class WinImportHandler;
7438
10194
class WinMacros;
10196
class WinDeclSpecs;
10197
class WinMemberExplSpec;
10198
class WinTypeKeywords;
7442
10201
class ExtACBuilderCoupling;
7443
10202
class ExtACSyntaxCoupling;
7444
10203
class ExtACTree;
7445
10204
class ExtACKeywords;
7448
class WinMemberExplSpec;
7449
class WinTypeKeywords;
7450
10206
class PragmaOnceUnitState;
7451
10207
class PragmaOnce;
7452
class CCExprResolve;
10208
class CMatchSyntax;
7454
10209
namespace Puma {
7456
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10211
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7457
10212
class CT_WhileStmt : public CT_Statement, public CSemScope {
7458
#line 7459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10213
#line 10214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
10214
friend class ::CCExprResolve;
10215
friend class ::CExprResolve;
7459
10216
friend class ::WinIfExists;
7460
10217
friend class ::WinImportHandler;
7461
10218
friend class ::WinMacros;
7462
friend class ::CMatchSyntax;
7463
friend class ::ExtGnu;
10219
friend class ::WinAsm;
10220
friend class ::WinDeclSpecs;
10221
friend class ::WinMemberExplSpec;
10222
friend class ::WinTypeKeywords;
10223
friend class ::WinFriend;
7464
10224
friend class ::ExtAC;
7465
10225
friend class ::ExtACBuilderCoupling;
7466
10226
friend class ::ExtACSyntaxCoupling;
7467
10227
friend class ::ExtACTree;
7468
10228
friend class ::ExtACKeywords;
7469
friend class ::WinAsm;
7470
friend class ::WinDeclSpecs;
7471
friend class ::WinMemberExplSpec;
7472
friend class ::WinTypeKeywords;
10229
friend class ::ExtGnu;
7473
10230
friend class ::PragmaOnceUnitState;
7474
10231
friend class ::PragmaOnce;
7475
friend class ::CCExprResolve;
7476
friend class ::CExprResolve;
10232
friend class ::CMatchSyntax;
7478
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10234
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7480
10236
CTree *sons[5]; // key, open, cond, close, stmt
7483
10239
CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
7484
sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt;
10240
AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond);
10241
AddSon (sons[3], c); AddSon (sons[4], stmt);
10243
/** Get the identifier for this node type. Can be compared with NodeName(). */
7486
10244
static const char *NodeId ();
10245
/** Get the name of the node. Can be compared with NodeId(). */
7487
10246
const char *NodeName () const { return NodeId (); }
10247
/** Get the number of sons. */
7488
10248
int Sons () const { return 5; }
10249
/** Get the n-th son.
10250
* \param n The index of the son.
10251
* \return The n-th son or NULL. */
7489
10252
CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
7490
10253
CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
7491
10254
CTree *Condition () const { return sons[2]; }
10256
* \param old_son The son to replace.
10257
* \param new_son The new son. */
7492
10258
void ReplaceSon (CTree *old_son, CTree *new_son) {
7493
10259
CTree::ReplaceSon (sons, 5, old_son, new_son);
10261
CSemScope *SemScope () const { return (CSemScope*)this; }
7498
#line 7499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10265
#line 10266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7499
10266
} // closed Puma
10267
class CCExprResolve;
10268
class CExprResolve;
7500
10269
class WinIfExists;
7501
10270
class WinImportHandler;
7502
10271
class WinMacros;
10273
class WinDeclSpecs;
10274
class WinMemberExplSpec;
10275
class WinTypeKeywords;
7506
10278
class ExtACBuilderCoupling;
7507
10279
class ExtACSyntaxCoupling;
7508
10280
class ExtACTree;
7509
10281
class ExtACKeywords;
7512
class WinMemberExplSpec;
7513
class WinTypeKeywords;
7514
10283
class PragmaOnceUnitState;
7515
10284
class PragmaOnce;
7516
class CCExprResolve;
10285
class CMatchSyntax;
7518
10286
namespace Puma {
7520
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10288
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7521
10289
class CT_DoStmt : public CT_Statement {
7522
#line 7523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10290
#line 10291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
10291
friend class ::CCExprResolve;
10292
friend class ::CExprResolve;
7523
10293
friend class ::WinIfExists;
7524
10294
friend class ::WinImportHandler;
7525
10295
friend class ::WinMacros;
7526
friend class ::CMatchSyntax;
7527
friend class ::ExtGnu;
10296
friend class ::WinAsm;
10297
friend class ::WinDeclSpecs;
10298
friend class ::WinMemberExplSpec;
10299
friend class ::WinTypeKeywords;
10300
friend class ::WinFriend;
7528
10301
friend class ::ExtAC;
7529
10302
friend class ::ExtACBuilderCoupling;
7530
10303
friend class ::ExtACSyntaxCoupling;
7531
10304
friend class ::ExtACTree;
7532
10305
friend class ::ExtACKeywords;
7533
friend class ::WinAsm;
7534
friend class ::WinDeclSpecs;
7535
friend class ::WinMemberExplSpec;
7536
friend class ::WinTypeKeywords;
10306
friend class ::ExtGnu;
7537
10307
friend class ::PragmaOnceUnitState;
7538
10308
friend class ::PragmaOnce;
7539
friend class ::CCExprResolve;
7540
friend class ::CExprResolve;
10309
friend class ::CMatchSyntax;
7542
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10311
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7544
10313
CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
7547
10316
CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e,
7548
10317
CTree *c, CTree *sc) {
7549
sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e;
7550
sons[5] = c; sons[6] = sc;
10318
AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w);
10319
AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c);
10320
AddSon (sons[6], sc);
10322
/** Get the identifier for this node type. Can be compared with NodeName(). */
7552
10323
static const char *NodeId ();
10324
/** Get the name of the node. Can be compared with NodeId(). */
7553
10325
const char *NodeName () const { return NodeId (); }
10326
/** Get the number of sons. */
7554
10327
int Sons () const { return 7; }
10328
/** Get the n-th son.
10329
* \param n The index of the son.
10330
* \return The n-th son or NULL. */
7555
10331
CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
7556
10332
CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
7557
10333
CTree *Expr () const { return sons[4]; }
10335
* \param old_son The son to replace.
10336
* \param new_son The new son. */
7558
10337
void ReplaceSon (CTree *old_son, CTree *new_son) {
7559
10338
CTree::ReplaceSon (sons, 7, old_son, new_son);
7564
#line 7565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10343
#line 10344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7565
10344
} // closed Puma
10345
class CCExprResolve;
10346
class CExprResolve;
7566
10347
class WinIfExists;
7567
10348
class WinImportHandler;
7568
10349
class WinMacros;
10351
class WinDeclSpecs;
10352
class WinMemberExplSpec;
10353
class WinTypeKeywords;
7572
10356
class ExtACBuilderCoupling;
7573
10357
class ExtACSyntaxCoupling;
7574
10358
class ExtACTree;
7575
10359
class ExtACKeywords;
7578
class WinMemberExplSpec;
7579
class WinTypeKeywords;
7580
10361
class PragmaOnceUnitState;
7581
10362
class PragmaOnce;
7582
class CCExprResolve;
10363
class CMatchSyntax;
7584
10364
namespace Puma {
7586
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10366
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7587
10367
class CT_ForStmt : public CT_Statement, public CSemScope {
7588
#line 7589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10368
#line 10369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
10369
friend class ::CCExprResolve;
10370
friend class ::CExprResolve;
7589
10371
friend class ::WinIfExists;
7590
10372
friend class ::WinImportHandler;
7591
10373
friend class ::WinMacros;
7592
friend class ::CMatchSyntax;
7593
friend class ::ExtGnu;
10374
friend class ::WinAsm;
10375
friend class ::WinDeclSpecs;
10376
friend class ::WinMemberExplSpec;
10377
friend class ::WinTypeKeywords;
10378
friend class ::WinFriend;
7594
10379
friend class ::ExtAC;
7595
10380
friend class ::ExtACBuilderCoupling;
7596
10381
friend class ::ExtACSyntaxCoupling;
7597
10382
friend class ::ExtACTree;
7598
10383
friend class ::ExtACKeywords;
7599
friend class ::WinAsm;
7600
friend class ::WinDeclSpecs;
7601
friend class ::WinMemberExplSpec;
7602
friend class ::WinTypeKeywords;
10384
friend class ::ExtGnu;
7603
10385
friend class ::PragmaOnceUnitState;
7604
10386
friend class ::PragmaOnce;
7605
friend class ::CCExprResolve;
7606
friend class ::CExprResolve;
10387
friend class ::CMatchSyntax;
7608
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10389
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7610
10391
CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
7613
10394
CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
7614
10395
CTree *e, CTree *c, CTree *stmt) {
7615
sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co;
7616
sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt;
10396
AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i);
10397
AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e);
10398
AddSon (sons[6], c); AddSon (sons[7], stmt);
10400
/** Get the identifier for this node type. Can be compared with NodeName(). */
7618
10401
static const char *NodeId ();
10402
/** Get the name of the node. Can be compared with NodeId(). */
7619
10403
const char *NodeName () const { return NodeId (); }
10404
/** Get the number of sons. */
7620
10405
int Sons () const { return CTree::Sons (sons, 8); }
10406
/** Get the n-th son.
10407
* \param n The index of the son.
10408
* \return The n-th son or NULL. */
7621
10409
CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
7622
10410
CTree *InitStmt () const { return sons[2]; }
7623
10411
CTree *Condition () const { return sons[3]; }
7624
10412
CTree *Expr () const { return sons[5]; }
7625
10413
CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
10415
* \param old_son The son to replace.
10416
* \param new_son The new son. */
7626
10417
void ReplaceSon (CTree *old_son, CTree *new_son) {
7627
10418
CTree::ReplaceSon (sons, 8, old_son, new_son);
10420
CSemScope *SemScope () const { return (CSemScope*)this; }
7632
#line 7633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10424
#line 10425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
7633
10425
} // closed Puma
10426
class CCExprResolve;
10427
class CExprResolve;
7634
10428
class WinIfExists;
7635
10429
class WinImportHandler;
7636
10430
class WinMacros;
10432
class WinDeclSpecs;
10433
class WinMemberExplSpec;
10434
class WinTypeKeywords;
7640
10437
class ExtACBuilderCoupling;
7641
10438
class ExtACSyntaxCoupling;
7642
10439
class ExtACTree;
7643
10440
class ExtACKeywords;
7646
class WinMemberExplSpec;
7647
class WinTypeKeywords;
7648
10442
class PragmaOnceUnitState;
7649
10443
class PragmaOnce;
7650
class CCExprResolve;
10444
class CMatchSyntax;
7652
10445
namespace Puma {
7654
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10447
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7655
10448
class CT_Condition : public CT_Decl, public CSemObject {
7656
#line 7657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/inc/Puma/CTree.h"
10449
#line 10450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/inc/Puma/CTree.h"
10450
friend class ::CCExprResolve;
10451
friend class ::CExprResolve;
7657
10452
friend class ::WinIfExists;
7658
10453
friend class ::WinImportHandler;
7659
10454
friend class ::WinMacros;
7660
friend class ::CMatchSyntax;
7661
friend class ::ExtGnu;
10455
friend class ::WinAsm;
10456
friend class ::WinDeclSpecs;
10457
friend class ::WinMemberExplSpec;
10458
friend class ::WinTypeKeywords;
10459
friend class ::WinFriend;
7662
10460
friend class ::ExtAC;
7663
10461
friend class ::ExtACBuilderCoupling;
7664
10462
friend class ::ExtACSyntaxCoupling;
7665
10463
friend class ::ExtACTree;
7666
10464
friend class ::ExtACKeywords;
7667
friend class ::WinAsm;
7668
friend class ::WinDeclSpecs;
7669
friend class ::WinMemberExplSpec;
7670
friend class ::WinTypeKeywords;
10465
friend class ::ExtGnu;
7671
10466
friend class ::PragmaOnceUnitState;
7672
10467
friend class ::PragmaOnce;
7673
friend class ::CCExprResolve;
7674
friend class ::CExprResolve;
10468
friend class ::CMatchSyntax;
7676
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10470
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7678
10472
CTree *sons[3]; // declspecs, declarator, init
7681
10475
CT_Condition (CTree *dsl, CTree *d) {
7682
sons[0] = dsl; sons[1] = d; sons[2] = 0;
10476
AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
10478
/** Get the identifier for this node type. Can be compared with NodeName(). */
7684
10479
static const char *NodeId ();
10480
/** Get the name of the node. Can be compared with NodeId(). */
7685
10481
const char *NodeName () const { return NodeId (); }
10482
/** Get the number of sons. */
7686
10483
int Sons () const { return CTree::Sons (sons, 3); }
10484
/** Get the n-th son.
10485
* \param n The index of the son.
10486
* \return The n-th son or NULL. */
7687
10487
CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
7688
10488
CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
7689
10489
CTree *Declarator () const { return sons[1]; }
7690
10490
CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
7691
10491
CSemObject *SemObject () const { return (CSemObject*)this; }
7692
void Initializer (CTree *i) { sons[2] = i; }
10492
void Initializer (CTree *i) { AddSon (sons[2], i); }
10494
* \param old_son The son to replace.
10495
* \param new_son The new son. */
7693
10496
void ReplaceSon (CTree *old_son, CTree *new_son) {
7694
10497
CTree::ReplaceSon (sons, 3, old_son, new_son);