9421
10582
friend class ::PragmaOnce;
9422
10583
friend class ::CMatchSyntax;
9424
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10585
#line 110 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9427
PreElsePart (PreTree* a, PreTree* b) :
9428
PreTreeComposite (2, 0) // 2 sons, no daughters.
9429
{ add_son (a); add_son (b); };
9431
PreElsePart (PreTree* a, PreTree* b, PreTree* c) :
9432
PreTreeComposite (3, 0) // 3 sons, no daughters.
9433
{ add_son (a); add_son (b); add_son (c); };
10589
* \param dg The directive group.
10590
* \param el The \#else directive. */
10591
PreElsePart (PreTree* dg, PreTree* el) : PreTreeComposite (2, 0) {
10592
add_son (dg); add_son (el);
10595
* \param ei The preceding \#elif part.
10596
* \param dg The directive group.
10597
* \param el The \#else directive. */
10598
PreElsePart (PreTree* ei, PreTree* dg, PreTree* el) : PreTreeComposite (3, 0) {
10599
add_son (ei); add_son (dg); add_son (el);
10602
/** Part of the tree visitor pattern. Calls the node
10603
* visiting functions suitable for this node type.
10604
* \param v The visitor object on which to call the
10605
* visiting functions. */
9435
10606
void accept (PreVisitor& v) {
9436
10607
v.visitPreElsePart_Pre (this);
9437
10608
v.iterateNodes (this);
9438
10609
v.visitPreElsePart_Post (this);
9443
// Assemble conditional directives in the elif part of a conditional
9444
// group to a logical group.
9445
// Like: ... #elif ... #elif ... #elif.
9447
#line 9448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9449
class CCExprResolve;
9452
class WinImportHandler;
9456
class WinMemberExplSpec;
9457
class WinTypeKeywords;
9460
class ExtACBuilderCoupling;
9461
class ExtACSyntaxCoupling;
9463
class ExtACKeywords;
9465
class PragmaOnceUnitState;
9470
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9471
class PreElifPart : public PreTreeComposite
9473
#line 9474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9474
friend class ::CCExprResolve;
9475
friend class ::CExprResolve;
9476
friend class ::WinIfExists;
9477
friend class ::WinImportHandler;
9478
friend class ::WinMacros;
9479
friend class ::WinAsm;
9480
friend class ::WinDeclSpecs;
9481
friend class ::WinMemberExplSpec;
9482
friend class ::WinTypeKeywords;
9483
friend class ::WinFriend;
9484
friend class ::ExtAC;
9485
friend class ::ExtACBuilderCoupling;
9486
friend class ::ExtACSyntaxCoupling;
9487
friend class ::ExtACTree;
9488
friend class ::ExtACKeywords;
9489
friend class ::ExtGnu;
9490
friend class ::PragmaOnceUnitState;
9491
friend class ::PragmaOnce;
9492
friend class ::CMatchSyntax;
9494
#line 104 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9497
// Dynamic sons, no daughters.
9498
PreElifPart () : PreTreeComposite (-1, 0) {};
9501
void addSons (PreTree* a, PreTree* b)
9502
{ add_son (a); add_son (b); };
9504
void accept (PreVisitor& v)
9506
v.visitPreElifPart_Pre (this);
9507
v.iterateNodes (this);
9508
v.visitPreElifPart_Post (this);
9513
// The #if directive.
9515
#line 9516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9517
class CCExprResolve;
9520
class WinImportHandler;
9524
class WinMemberExplSpec;
9525
class WinTypeKeywords;
9528
class ExtACBuilderCoupling;
9529
class ExtACSyntaxCoupling;
9531
class ExtACKeywords;
9533
class PragmaOnceUnitState;
9538
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9539
class PreIfDirective : public PreTreeComposite
9541
#line 9542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9542
friend class ::CCExprResolve;
9543
friend class ::CExprResolve;
9544
friend class ::WinIfExists;
9545
friend class ::WinImportHandler;
9546
friend class ::WinMacros;
9547
friend class ::WinAsm;
9548
friend class ::WinDeclSpecs;
9549
friend class ::WinMemberExplSpec;
9550
friend class ::WinTypeKeywords;
9551
friend class ::WinFriend;
9552
friend class ::ExtAC;
9553
friend class ::ExtACBuilderCoupling;
9554
friend class ::ExtACSyntaxCoupling;
9555
friend class ::ExtACTree;
9556
friend class ::ExtACKeywords;
9557
friend class ::ExtGnu;
9558
friend class ::PragmaOnceUnitState;
9559
friend class ::PragmaOnce;
9560
friend class ::CMatchSyntax;
9562
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9566
PreIfDirective (PreTree* a, PreTree* b)
9567
: PreTreeComposite (2, 1) // 2 sons, 1 daughter.
9568
{ add_son (a); add_son (b); };
9570
void accept (PreVisitor& v)
9572
v.visitPreIfDirective_Pre (this);
9573
v.iterateNodes (this);
9574
v.visitPreIfDirective_Post (this);
9579
// The #ifdef directive.
9581
#line 9582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9583
class CCExprResolve;
9586
class WinImportHandler;
9590
class WinMemberExplSpec;
9591
class WinTypeKeywords;
9594
class ExtACBuilderCoupling;
9595
class ExtACSyntaxCoupling;
9597
class ExtACKeywords;
9599
class PragmaOnceUnitState;
9604
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9605
class PreIfdefDirective : public PreTreeComposite
9607
#line 9608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9608
friend class ::CCExprResolve;
9609
friend class ::CExprResolve;
9610
friend class ::WinIfExists;
9611
friend class ::WinImportHandler;
9612
friend class ::WinMacros;
9613
friend class ::WinAsm;
9614
friend class ::WinDeclSpecs;
9615
friend class ::WinMemberExplSpec;
9616
friend class ::WinTypeKeywords;
9617
friend class ::WinFriend;
9618
friend class ::ExtAC;
9619
friend class ::ExtACBuilderCoupling;
9620
friend class ::ExtACSyntaxCoupling;
9621
friend class ::ExtACTree;
9622
friend class ::ExtACKeywords;
9623
friend class ::ExtGnu;
9624
friend class ::PragmaOnceUnitState;
9625
friend class ::PragmaOnce;
9626
friend class ::CMatchSyntax;
9628
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9632
PreIfdefDirective (PreTree* a, PreTree* b, PreTree* c)
9633
: PreTreeComposite (3, 1) // 3 sons, 1 daughter.
9634
{ add_son (a); add_son (b); add_son (c); };
9635
PreIfdefDirective (PreTree* a, PreTree* b)
9636
: PreTreeComposite (2, 0) // 2 sons, no daughter.
9637
{ add_son (a); add_son (b); };
9639
void accept (PreVisitor& v)
9641
v.visitPreIfdefDirective_Pre (this);
9642
v.iterateNodes (this);
9643
v.visitPreIfdefDirective_Post (this);
9648
// The #ifndef directive.
9650
#line 9651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9652
class CCExprResolve;
9655
class WinImportHandler;
9659
class WinMemberExplSpec;
9660
class WinTypeKeywords;
9663
class ExtACBuilderCoupling;
9664
class ExtACSyntaxCoupling;
9666
class ExtACKeywords;
9668
class PragmaOnceUnitState;
9673
#line 162 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9674
class PreIfndefDirective : public PreTreeComposite
9676
#line 9677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9677
friend class ::CCExprResolve;
9678
friend class ::CExprResolve;
9679
friend class ::WinIfExists;
9680
friend class ::WinImportHandler;
9681
friend class ::WinMacros;
9682
friend class ::WinAsm;
9683
friend class ::WinDeclSpecs;
9684
friend class ::WinMemberExplSpec;
9685
friend class ::WinTypeKeywords;
9686
friend class ::WinFriend;
9687
friend class ::ExtAC;
9688
friend class ::ExtACBuilderCoupling;
9689
friend class ::ExtACSyntaxCoupling;
9690
friend class ::ExtACTree;
9691
friend class ::ExtACKeywords;
9692
friend class ::ExtGnu;
9693
friend class ::PragmaOnceUnitState;
9694
friend class ::PragmaOnce;
9695
friend class ::CMatchSyntax;
9697
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9701
PreIfndefDirective (PreTree* a, PreTree* b, PreTree* c)
9702
: PreTreeComposite (3, 1) // 3 sons, 1 daughter.
9703
{ add_son (a); add_son (b); add_son (c); };
9704
PreIfndefDirective (PreTree* a, PreTree* b)
9705
: PreTreeComposite (2, 0) // 2 sons, no daughter.
9706
{ add_son (a); add_son (b); };
9708
void accept (PreVisitor& v)
9710
v.visitPreIfndefDirective_Pre (this);
9711
v.iterateNodes (this);
9712
v.visitPreIfndefDirective_Post (this);
9717
// The #elif directive.
9719
#line 9720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9721
class CCExprResolve;
9724
class WinImportHandler;
9728
class WinMemberExplSpec;
9729
class WinTypeKeywords;
9732
class ExtACBuilderCoupling;
9733
class ExtACSyntaxCoupling;
9735
class ExtACKeywords;
9737
class PragmaOnceUnitState;
9742
#line 183 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9743
class PreElifDirective : public PreTreeComposite
9745
#line 9746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9746
friend class ::CCExprResolve;
9747
friend class ::CExprResolve;
9748
friend class ::WinIfExists;
9749
friend class ::WinImportHandler;
9750
friend class ::WinMacros;
9751
friend class ::WinAsm;
9752
friend class ::WinDeclSpecs;
9753
friend class ::WinMemberExplSpec;
9754
friend class ::WinTypeKeywords;
9755
friend class ::WinFriend;
9756
friend class ::ExtAC;
9757
friend class ::ExtACBuilderCoupling;
9758
friend class ::ExtACSyntaxCoupling;
9759
friend class ::ExtACTree;
9760
friend class ::ExtACKeywords;
9761
friend class ::ExtGnu;
9762
friend class ::PragmaOnceUnitState;
9763
friend class ::PragmaOnce;
9764
friend class ::CMatchSyntax;
9766
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9770
PreElifDirective (PreTree* a, PreTree* b)
9771
: PreTreeComposite (2, 1) // 2 sons, 1 daughter.
9772
{ add_son (a); add_son (b); };
9774
void accept (PreVisitor& v)
9776
v.visitPreElifDirective_Pre (this);
9777
v.iterateNodes (this);
9778
v.visitPreElifDirective_Post (this);
9783
// The #else directive.
9785
#line 9786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9787
class CCExprResolve;
9790
class WinImportHandler;
9794
class WinMemberExplSpec;
9795
class WinTypeKeywords;
9798
class ExtACBuilderCoupling;
9799
class ExtACSyntaxCoupling;
9801
class ExtACKeywords;
9803
class PragmaOnceUnitState;
9808
#line 201 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9809
class PreElseDirective : public PreTreeComposite
9811
#line 9812 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9812
friend class ::CCExprResolve;
9813
friend class ::CExprResolve;
9814
friend class ::WinIfExists;
9815
friend class ::WinImportHandler;
9816
friend class ::WinMacros;
9817
friend class ::WinAsm;
9818
friend class ::WinDeclSpecs;
9819
friend class ::WinMemberExplSpec;
9820
friend class ::WinTypeKeywords;
9821
friend class ::WinFriend;
9822
friend class ::ExtAC;
9823
friend class ::ExtACBuilderCoupling;
9824
friend class ::ExtACSyntaxCoupling;
9825
friend class ::ExtACTree;
9826
friend class ::ExtACKeywords;
9827
friend class ::ExtGnu;
9828
friend class ::PragmaOnceUnitState;
9829
friend class ::PragmaOnce;
9830
friend class ::CMatchSyntax;
9832
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9836
PreElseDirective (PreTree* a, PreTree* b)
9837
: PreTreeComposite (2, 0) // 2 sons, no daughters.
9838
{ add_son (a); add_son (b); };
9840
void accept (PreVisitor& v)
9842
v.visitPreElseDirective_Pre (this);
9843
v.iterateNodes (this);
9844
v.visitPreElseDirective_Post (this);
9849
// The #endif directive.
9851
#line 9852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9853
class CCExprResolve;
9856
class WinImportHandler;
9860
class WinMemberExplSpec;
9861
class WinTypeKeywords;
9864
class ExtACBuilderCoupling;
9865
class ExtACSyntaxCoupling;
9867
class ExtACKeywords;
9869
class PragmaOnceUnitState;
9874
#line 219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9875
class PreEndifDirective : public PreTreeComposite
9877
#line 9878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9878
friend class ::CCExprResolve;
9879
friend class ::CExprResolve;
9880
friend class ::WinIfExists;
9881
friend class ::WinImportHandler;
9882
friend class ::WinMacros;
9883
friend class ::WinAsm;
9884
friend class ::WinDeclSpecs;
9885
friend class ::WinMemberExplSpec;
9886
friend class ::WinTypeKeywords;
9887
friend class ::WinFriend;
9888
friend class ::ExtAC;
9889
friend class ::ExtACBuilderCoupling;
9890
friend class ::ExtACSyntaxCoupling;
9891
friend class ::ExtACTree;
9892
friend class ::ExtACKeywords;
9893
friend class ::ExtGnu;
9894
friend class ::PragmaOnceUnitState;
9895
friend class ::PragmaOnce;
9896
friend class ::CMatchSyntax;
9898
#line 220 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9902
PreEndifDirective (PreTree* a, PreTree* b)
9903
: PreTreeComposite (2, 0) // 2 sons, no daughters.
9904
{ add_son (a); add_son (b); };
9906
void accept (PreVisitor& v)
9908
v.visitPreEndifDirective_Pre (this);
9909
v.iterateNodes (this);
9910
v.visitPreEndifDirective_Post (this);
9915
// The #include and #include_next directive.
9917
#line 9918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9919
class CCExprResolve;
9922
class WinImportHandler;
9926
class WinMemberExplSpec;
9927
class WinTypeKeywords;
9930
class ExtACBuilderCoupling;
9931
class ExtACSyntaxCoupling;
9933
class ExtACKeywords;
9935
class PragmaOnceUnitState;
9940
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9941
class PreIncludeDirective : public PreTreeComposite
9943
#line 9944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
9944
friend class ::CCExprResolve;
9945
friend class ::CExprResolve;
9946
friend class ::WinIfExists;
9947
friend class ::WinImportHandler;
9948
friend class ::WinMacros;
9949
friend class ::WinAsm;
9950
friend class ::WinDeclSpecs;
9951
friend class ::WinMemberExplSpec;
9952
friend class ::WinTypeKeywords;
9953
friend class ::WinFriend;
9954
friend class ::ExtAC;
9955
friend class ::ExtACBuilderCoupling;
9956
friend class ::ExtACSyntaxCoupling;
9957
friend class ::ExtACTree;
9958
friend class ::ExtACKeywords;
9959
friend class ::ExtGnu;
9960
friend class ::PragmaOnceUnitState;
9961
friend class ::PragmaOnce;
9962
friend class ::CMatchSyntax;
9964
#line 238 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
9970
PreIncludeDirective (PreTree* a, PreTree* b)
9971
: PreTreeComposite (2, 1) // 2 sons, 1 daughter.
9972
{ add_son (a); add_son (b); _depth = -1; };
9974
void accept (PreVisitor& v)
9976
v.visitPreIncludeDirective_Pre (this);
9977
v.iterateNodes (this);
9978
v.visitPreIncludeDirective_Post (this);
9991
bool is_forced () const {
9992
return !((Unit*)startToken ()->belonging_to ())->isFile ();
9997
// The #assert directive.
9999
#line 10000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10001
class CCExprResolve;
10002
class CExprResolve;
10004
class WinImportHandler;
10007
class WinDeclSpecs;
10008
class WinMemberExplSpec;
10009
class WinTypeKeywords;
10012
class ExtACBuilderCoupling;
10013
class ExtACSyntaxCoupling;
10015
class ExtACKeywords;
10017
class PragmaOnceUnitState;
10019
class CMatchSyntax;
10022
#line 271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10023
class PreAssertDirective : public PreTreeComposite
10025
#line 10026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10026
friend class ::CCExprResolve;
10027
friend class ::CExprResolve;
10028
friend class ::WinIfExists;
10029
friend class ::WinImportHandler;
10030
friend class ::WinMacros;
10031
friend class ::WinAsm;
10032
friend class ::WinDeclSpecs;
10033
friend class ::WinMemberExplSpec;
10034
friend class ::WinTypeKeywords;
10035
friend class ::WinFriend;
10036
friend class ::ExtAC;
10037
friend class ::ExtACBuilderCoupling;
10038
friend class ::ExtACSyntaxCoupling;
10039
friend class ::ExtACTree;
10040
friend class ::ExtACKeywords;
10041
friend class ::ExtGnu;
10042
friend class ::PragmaOnceUnitState;
10043
friend class ::PragmaOnce;
10044
friend class ::CMatchSyntax;
10046
#line 272 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10050
PreAssertDirective (PreTree* a, PreTree* b, PreTree* c)
10051
: PreTreeComposite (3, 0) // 3 sons, no daughters.
10052
{ add_son (a); add_son (b); add_son (c); };
10053
PreAssertDirective (PreTree* a, PreTree* b)
10054
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10055
{ add_son (a); add_son (b); };
10057
void accept (PreVisitor& v)
10059
v.visitPreAssertDirective_Pre (this);
10060
v.iterateNodes (this);
10061
v.visitPreAssertDirective_Post (this);
10066
// The #unassert directive.
10068
#line 10069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10070
class CCExprResolve;
10071
class CExprResolve;
10073
class WinImportHandler;
10076
class WinDeclSpecs;
10077
class WinMemberExplSpec;
10078
class WinTypeKeywords;
10081
class ExtACBuilderCoupling;
10082
class ExtACSyntaxCoupling;
10084
class ExtACKeywords;
10086
class PragmaOnceUnitState;
10088
class CMatchSyntax;
10091
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10092
class PreUnassertDirective : public PreTreeComposite
10094
#line 10095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10095
friend class ::CCExprResolve;
10096
friend class ::CExprResolve;
10097
friend class ::WinIfExists;
10098
friend class ::WinImportHandler;
10099
friend class ::WinMacros;
10100
friend class ::WinAsm;
10101
friend class ::WinDeclSpecs;
10102
friend class ::WinMemberExplSpec;
10103
friend class ::WinTypeKeywords;
10104
friend class ::WinFriend;
10105
friend class ::ExtAC;
10106
friend class ::ExtACBuilderCoupling;
10107
friend class ::ExtACSyntaxCoupling;
10108
friend class ::ExtACTree;
10109
friend class ::ExtACKeywords;
10110
friend class ::ExtGnu;
10111
friend class ::PragmaOnceUnitState;
10112
friend class ::PragmaOnce;
10113
friend class ::CMatchSyntax;
10115
#line 293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10119
PreUnassertDirective (PreTree* a, PreTree* b, PreTree* c)
10120
: PreTreeComposite (3, 0) // 3 sons, no daughters.
10121
{ add_son (a); add_son (b); add_son (c); };
10122
PreUnassertDirective (PreTree* a, PreTree* b)
10123
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10124
{ add_son (a); add_son (b); };
10126
void accept (PreVisitor& v)
10128
v.visitPreUnassertDirective_Pre (this);
10129
v.iterateNodes (this);
10130
v.visitPreUnassertDirective_Post (this);
10135
// The #define directive that defines function-like macros.
10136
// Like: #define FUNCTION (id,...,id) ... ... ...
10138
#line 10139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10140
class CCExprResolve;
10141
class CExprResolve;
10143
class WinImportHandler;
10146
class WinDeclSpecs;
10147
class WinMemberExplSpec;
10148
class WinTypeKeywords;
10151
class ExtACBuilderCoupling;
10152
class ExtACSyntaxCoupling;
10154
class ExtACKeywords;
10156
class PragmaOnceUnitState;
10158
class CMatchSyntax;
10161
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10162
class PreDefineFunctionDirective : public PreTreeComposite
10164
#line 10165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10165
friend class ::CCExprResolve;
10166
friend class ::CExprResolve;
10167
friend class ::WinIfExists;
10168
friend class ::WinImportHandler;
10169
friend class ::WinMacros;
10170
friend class ::WinAsm;
10171
friend class ::WinDeclSpecs;
10172
friend class ::WinMemberExplSpec;
10173
friend class ::WinTypeKeywords;
10174
friend class ::WinFriend;
10175
friend class ::ExtAC;
10176
friend class ::ExtACBuilderCoupling;
10177
friend class ::ExtACSyntaxCoupling;
10178
friend class ::ExtACTree;
10179
friend class ::ExtACKeywords;
10180
friend class ::ExtGnu;
10181
friend class ::PragmaOnceUnitState;
10182
friend class ::PragmaOnce;
10183
friend class ::CMatchSyntax;
10185
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10189
PreDefineFunctionDirective (PreTree* a, PreTree* b,
10190
PreTree* c, PreTree* d,
10191
PreTree* e, PreTree* f,
10192
PreTree* g, PreTree* h)
10193
: PreTreeComposite (8, 0) // 8 sons, no daughters.
10194
{ add_son (a); add_son (b); add_son (c); add_son (d);
10195
add_son (e); add_son (f); add_son (g); add_son (h); }
10197
PreDefineFunctionDirective (PreTree* a, PreTree* b,
10198
PreTree* c, PreTree* d,
10199
PreTree* e, PreTree* f,
10201
: PreTreeComposite (7, 0) // 7 sons, no daughters.
10202
{ add_son (a); add_son (b); add_son (c); add_son (d);
10203
add_son (e); add_son (f); add_son (g); }
10205
PreDefineFunctionDirective (PreTree* a, PreTree* b,
10206
PreTree* c, PreTree* d,
10207
PreTree* e, PreTree* f)
10208
: PreTreeComposite (6, 0) // 6 sons, no daughters.
10209
{ add_son (a); add_son (b); add_son (c); add_son (d);
10210
add_son (e); add_son (f); }
10212
PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c,
10213
PreTree* d, PreTree* e)
10214
: PreTreeComposite (5, 0) // 5 sons, no daughters.
10215
{ add_son (a); add_son (b); add_son (c); add_son (d); add_son (e); }
10217
void accept (PreVisitor& v)
10219
v.visitPreDefineFunctionDirective_Pre (this);
10220
v.iterateNodes (this);
10221
v.visitPreDefineFunctionDirective_Post (this);
10226
// The #define directive that defines symbolic constants macros.
10227
// Like: #define CONSTANT ... ... ...
10229
#line 10230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10231
class CCExprResolve;
10232
class CExprResolve;
10234
class WinImportHandler;
10237
class WinDeclSpecs;
10238
class WinMemberExplSpec;
10239
class WinTypeKeywords;
10242
class ExtACBuilderCoupling;
10243
class ExtACSyntaxCoupling;
10245
class ExtACKeywords;
10247
class PragmaOnceUnitState;
10249
class CMatchSyntax;
10252
#line 357 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10253
class PreDefineConstantDirective : public PreTreeComposite
10255
#line 10256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10256
friend class ::CCExprResolve;
10257
friend class ::CExprResolve;
10258
friend class ::WinIfExists;
10259
friend class ::WinImportHandler;
10260
friend class ::WinMacros;
10261
friend class ::WinAsm;
10262
friend class ::WinDeclSpecs;
10263
friend class ::WinMemberExplSpec;
10264
friend class ::WinTypeKeywords;
10265
friend class ::WinFriend;
10266
friend class ::ExtAC;
10267
friend class ::ExtACBuilderCoupling;
10268
friend class ::ExtACSyntaxCoupling;
10269
friend class ::ExtACTree;
10270
friend class ::ExtACKeywords;
10271
friend class ::ExtGnu;
10272
friend class ::PragmaOnceUnitState;
10273
friend class ::PragmaOnce;
10274
friend class ::CMatchSyntax;
10276
#line 358 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10280
PreDefineConstantDirective (PreTree* a, PreTree* b, PreTree* c)
10281
: PreTreeComposite (3, 0) // 3 sons, no daughters.
10282
{ add_son (a); add_son (b); add_son (c); };
10283
PreDefineConstantDirective (PreTree* a, PreTree* b)
10284
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10285
{ add_son (a); add_son (b); };
10287
void accept (PreVisitor& v)
10289
v.visitPreDefineConstantDirective_Pre (this);
10290
v.iterateNodes (this);
10291
v.visitPreDefineConstantDirective_Post (this);
10296
// The #undef directive.
10298
#line 10299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10300
class CCExprResolve;
10301
class CExprResolve;
10303
class WinImportHandler;
10306
class WinDeclSpecs;
10307
class WinMemberExplSpec;
10308
class WinTypeKeywords;
10311
class ExtACBuilderCoupling;
10312
class ExtACSyntaxCoupling;
10314
class ExtACKeywords;
10316
class PragmaOnceUnitState;
10318
class CMatchSyntax;
10321
#line 378 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10322
class PreUndefDirective : public PreTreeComposite
10324
#line 10325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10325
friend class ::CCExprResolve;
10326
friend class ::CExprResolve;
10327
friend class ::WinIfExists;
10328
friend class ::WinImportHandler;
10329
friend class ::WinMacros;
10330
friend class ::WinAsm;
10331
friend class ::WinDeclSpecs;
10332
friend class ::WinMemberExplSpec;
10333
friend class ::WinTypeKeywords;
10334
friend class ::WinFriend;
10335
friend class ::ExtAC;
10336
friend class ::ExtACBuilderCoupling;
10337
friend class ::ExtACSyntaxCoupling;
10338
friend class ::ExtACTree;
10339
friend class ::ExtACKeywords;
10340
friend class ::ExtGnu;
10341
friend class ::PragmaOnceUnitState;
10342
friend class ::PragmaOnce;
10343
friend class ::CMatchSyntax;
10345
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10349
PreUndefDirective (PreTree* a, PreTree* b, PreTree* c)
10350
: PreTreeComposite (3, 0) // 3 sons, no daughters.
10351
{ add_son (a); add_son (b); add_son (c); };
10352
PreUndefDirective (PreTree* a, PreTree* b)
10353
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10354
{ add_son (a); add_son (b); };
10356
void accept (PreVisitor& v)
10358
v.visitPreUndefDirective_Pre (this);
10359
v.iterateNodes (this);
10360
v.visitPreUndefDirective_Post (this);
10365
// The #warning directive.
10367
#line 10368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10369
class CCExprResolve;
10370
class CExprResolve;
10372
class WinImportHandler;
10375
class WinDeclSpecs;
10376
class WinMemberExplSpec;
10377
class WinTypeKeywords;
10380
class ExtACBuilderCoupling;
10381
class ExtACSyntaxCoupling;
10383
class ExtACKeywords;
10385
class PragmaOnceUnitState;
10387
class CMatchSyntax;
10390
#line 399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10391
class PreWarningDirective : public PreTreeComposite
10393
#line 10394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10394
friend class ::CCExprResolve;
10395
friend class ::CExprResolve;
10396
friend class ::WinIfExists;
10397
friend class ::WinImportHandler;
10398
friend class ::WinMacros;
10399
friend class ::WinAsm;
10400
friend class ::WinDeclSpecs;
10401
friend class ::WinMemberExplSpec;
10402
friend class ::WinTypeKeywords;
10403
friend class ::WinFriend;
10404
friend class ::ExtAC;
10405
friend class ::ExtACBuilderCoupling;
10406
friend class ::ExtACSyntaxCoupling;
10407
friend class ::ExtACTree;
10408
friend class ::ExtACKeywords;
10409
friend class ::ExtGnu;
10410
friend class ::PragmaOnceUnitState;
10411
friend class ::PragmaOnce;
10412
friend class ::CMatchSyntax;
10414
#line 400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10418
PreWarningDirective (PreTree* a, PreTree* b)
10419
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10420
{ add_son (a); add_son (b); };
10422
void accept (PreVisitor& v)
10424
v.visitPreWarningDirective_Pre (this);
10425
v.iterateNodes (this);
10426
v.visitPreWarningDirective_Post (this);
10431
// The #error directive.
10433
#line 10434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10435
class CCExprResolve;
10436
class CExprResolve;
10438
class WinImportHandler;
10441
class WinDeclSpecs;
10442
class WinMemberExplSpec;
10443
class WinTypeKeywords;
10446
class ExtACBuilderCoupling;
10447
class ExtACSyntaxCoupling;
10449
class ExtACKeywords;
10451
class PragmaOnceUnitState;
10453
class CMatchSyntax;
10456
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10457
class PreErrorDirective : public PreTreeComposite
10459
#line 10460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10460
friend class ::CCExprResolve;
10461
friend class ::CExprResolve;
10462
friend class ::WinIfExists;
10463
friend class ::WinImportHandler;
10464
friend class ::WinMacros;
10465
friend class ::WinAsm;
10466
friend class ::WinDeclSpecs;
10467
friend class ::WinMemberExplSpec;
10468
friend class ::WinTypeKeywords;
10469
friend class ::WinFriend;
10470
friend class ::ExtAC;
10471
friend class ::ExtACBuilderCoupling;
10472
friend class ::ExtACSyntaxCoupling;
10473
friend class ::ExtACTree;
10474
friend class ::ExtACKeywords;
10475
friend class ::ExtGnu;
10476
friend class ::PragmaOnceUnitState;
10477
friend class ::PragmaOnce;
10478
friend class ::CMatchSyntax;
10480
#line 418 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10484
PreErrorDirective (PreTree* a, PreTree* b)
10485
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10486
{ add_son (a); add_son (b); };
10488
void accept (PreVisitor& v)
10490
v.visitPreErrorDirective_Pre (this);
10491
v.iterateNodes (this);
10492
v.visitPreErrorDirective_Post (this);
10497
// Collects comma separated argument identifiers for a function-like macro.
10498
// Like: id, id, ..., id.
10500
#line 10501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10502
class CCExprResolve;
10503
class CExprResolve;
10505
class WinImportHandler;
10508
class WinDeclSpecs;
10509
class WinMemberExplSpec;
10510
class WinTypeKeywords;
10513
class ExtACBuilderCoupling;
10514
class ExtACSyntaxCoupling;
10516
class ExtACKeywords;
10518
class PragmaOnceUnitState;
10520
class CMatchSyntax;
10523
#line 436 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10524
class PreIdentifierList : public PreTreeComposite
10526
#line 10527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10527
friend class ::CCExprResolve;
10528
friend class ::CExprResolve;
10529
friend class ::WinIfExists;
10530
friend class ::WinImportHandler;
10531
friend class ::WinMacros;
10532
friend class ::WinAsm;
10533
friend class ::WinDeclSpecs;
10534
friend class ::WinMemberExplSpec;
10535
friend class ::WinTypeKeywords;
10536
friend class ::WinFriend;
10537
friend class ::ExtAC;
10538
friend class ::ExtACBuilderCoupling;
10539
friend class ::ExtACSyntaxCoupling;
10540
friend class ::ExtACTree;
10541
friend class ::ExtACKeywords;
10542
friend class ::ExtGnu;
10543
friend class ::PragmaOnceUnitState;
10544
friend class ::PragmaOnce;
10545
friend class ::CMatchSyntax;
10547
#line 437 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10550
// Dynamic sons, no daughters.
10551
PreIdentifierList (PreTree* a) : PreTreeComposite (-1, 0)
10555
void addSons (PreTree* a, PreTree* b)
10556
{ add_son (a); add_son (b); };
10558
void accept (PreVisitor& v)
10560
v.visitPreIdentifierList_Pre (this);
10561
v.iterateNodes (this);
10562
v.visitPreIdentifierList_Post (this);
10567
// Collects every kind of token (except comments) for the macro body.
10569
#line 10570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10571
class CCExprResolve;
10572
class CExprResolve;
10574
class WinImportHandler;
10577
class WinDeclSpecs;
10578
class WinMemberExplSpec;
10579
class WinTypeKeywords;
10582
class ExtACBuilderCoupling;
10583
class ExtACSyntaxCoupling;
10585
class ExtACKeywords;
10587
class PragmaOnceUnitState;
10589
class CMatchSyntax;
10592
#line 457 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10593
class PreTokenList : public PreTreeComposite
10595
#line 10596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10596
friend class ::CCExprResolve;
10597
friend class ::CExprResolve;
10598
friend class ::WinIfExists;
10599
friend class ::WinImportHandler;
10600
friend class ::WinMacros;
10601
friend class ::WinAsm;
10602
friend class ::WinDeclSpecs;
10603
friend class ::WinMemberExplSpec;
10604
friend class ::WinTypeKeywords;
10605
friend class ::WinFriend;
10606
friend class ::ExtAC;
10607
friend class ::ExtACBuilderCoupling;
10608
friend class ::ExtACSyntaxCoupling;
10609
friend class ::ExtACTree;
10610
friend class ::ExtACKeywords;
10611
friend class ::ExtGnu;
10612
friend class ::PragmaOnceUnitState;
10613
friend class ::PragmaOnce;
10614
friend class ::CMatchSyntax;
10616
#line 458 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10620
PreTokenList (PreTree* a, PreTree* b)
10621
: PreTreeComposite (2, 0) // 2 sons, no daughters.
10622
{ add_son (a); add_son (b); };
10623
PreTokenList (PreTree* a)
10624
: PreTreeComposite (1, 0) // 1 son, no daughters.
10626
PreTokenList () : PreTreeComposite (0, 0) // no sons, no daughters.
10629
void accept (PreVisitor& v)
10631
v.visitPreTokenList_Pre (this);
10632
v.iterateNodes (this);
10633
v.visitPreTokenList_Post (this);
10638
// Contains every kind of token (except comments) for the macro body.
10640
#line 10641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10642
class CCExprResolve;
10643
class CExprResolve;
10645
class WinImportHandler;
10648
class WinDeclSpecs;
10649
class WinMemberExplSpec;
10650
class WinTypeKeywords;
10653
class ExtACBuilderCoupling;
10654
class ExtACSyntaxCoupling;
10656
class ExtACKeywords;
10658
class PragmaOnceUnitState;
10660
class CMatchSyntax;
10663
#line 480 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10664
class PreTokenListPart : public PreTreeComposite
10666
#line 10667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10667
friend class ::CCExprResolve;
10668
friend class ::CExprResolve;
10669
friend class ::WinIfExists;
10670
friend class ::WinImportHandler;
10671
friend class ::WinMacros;
10672
friend class ::WinAsm;
10673
friend class ::WinDeclSpecs;
10674
friend class ::WinMemberExplSpec;
10675
friend class ::WinTypeKeywords;
10676
friend class ::WinFriend;
10677
friend class ::ExtAC;
10678
friend class ::ExtACBuilderCoupling;
10679
friend class ::ExtACSyntaxCoupling;
10680
friend class ::ExtACTree;
10681
friend class ::ExtACKeywords;
10682
friend class ::ExtGnu;
10683
friend class ::PragmaOnceUnitState;
10684
friend class ::PragmaOnce;
10685
friend class ::CMatchSyntax;
10687
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10690
// Dynamic sons, no daughters.
10691
PreTokenListPart (PreTree* a) : PreTreeComposite (-1, 0)
10694
void accept (PreVisitor& v)
10696
v.visitPreTokenListPart_Pre (this);
10697
v.iterateNodes (this);
10698
v.visitPreTokenListPart_Post (this);
10703
// Semantic node for conditionals.
10705
#line 10706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10707
class CCExprResolve;
10708
class CExprResolve;
10710
class WinImportHandler;
10713
class WinDeclSpecs;
10714
class WinMemberExplSpec;
10715
class WinTypeKeywords;
10718
class ExtACBuilderCoupling;
10719
class ExtACSyntaxCoupling;
10721
class ExtACKeywords;
10723
class PragmaOnceUnitState;
10725
class CMatchSyntax;
10728
#line 497 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10729
class PreCondSemNode : public PreTree
10731
#line 10732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10732
friend class ::CCExprResolve;
10733
friend class ::CExprResolve;
10734
friend class ::WinIfExists;
10735
friend class ::WinImportHandler;
10736
friend class ::WinMacros;
10737
friend class ::WinAsm;
10738
friend class ::WinDeclSpecs;
10739
friend class ::WinMemberExplSpec;
10740
friend class ::WinTypeKeywords;
10741
friend class ::WinFriend;
10742
friend class ::ExtAC;
10743
friend class ::ExtACBuilderCoupling;
10744
friend class ::ExtACSyntaxCoupling;
10745
friend class ::ExtACTree;
10746
friend class ::ExtACKeywords;
10747
friend class ::ExtGnu;
10748
friend class ::PragmaOnceUnitState;
10749
friend class ::PragmaOnce;
10750
friend class ::CMatchSyntax;
10752
#line 498 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10754
// Boolean value of the condition of a conditional.
10759
PreCondSemNode (bool value) : _value (value) {};
10761
void accept (PreVisitor& v)
10763
v.visitPreCondSemNode (this);
10766
// Get the value of the conditional.
10767
bool value () const { return _value; }
10771
// Semantic node for the #include directive.
10773
#line 10774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10775
class CCExprResolve;
10776
class CExprResolve;
10778
class WinImportHandler;
10781
class WinDeclSpecs;
10782
class WinMemberExplSpec;
10783
class WinTypeKeywords;
10786
class ExtACBuilderCoupling;
10787
class ExtACSyntaxCoupling;
10789
class ExtACKeywords;
10791
class PragmaOnceUnitState;
10793
class CMatchSyntax;
10796
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10797
class PreInclSemNode : public PreTree
10799
#line 10800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10800
friend class ::CCExprResolve;
10801
friend class ::CExprResolve;
10802
friend class ::WinIfExists;
10803
friend class ::WinImportHandler;
10804
friend class ::WinMacros;
10805
friend class ::WinAsm;
10806
friend class ::WinDeclSpecs;
10807
friend class ::WinMemberExplSpec;
10808
friend class ::WinTypeKeywords;
10809
friend class ::WinFriend;
10810
friend class ::ExtAC;
10811
friend class ::ExtACBuilderCoupling;
10812
friend class ::ExtACSyntaxCoupling;
10813
friend class ::ExtACTree;
10814
friend class ::ExtACKeywords;
10815
friend class ::ExtGnu;
10816
friend class ::PragmaOnceUnitState;
10817
friend class ::PragmaOnce;
10818
friend class ::CMatchSyntax;
10820
#line 518 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10822
// Pointer of the included file unit.
10825
// true if the inclusion was not done, because of an active include
10831
PreInclSemNode (Unit* unit, bool guarded) :
10832
_unit (unit), _guarded (guarded) {};
10834
void accept (PreVisitor& v)
10836
v.visitPreInclSemNode (this);
10839
// Get the included file unit.
10840
Unit* unit () const { return _unit; }
10842
// Check if the inclusion was not done, because of an include guard
10843
bool guarded () const { return _guarded; }
10847
// Special parse error node to show the location of an error in the
10848
// preprocessor syntax tree.
10850
#line 10851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10852
class CCExprResolve;
10853
class CExprResolve;
10855
class WinImportHandler;
10858
class WinDeclSpecs;
10859
class WinMemberExplSpec;
10860
class WinTypeKeywords;
10863
class ExtACBuilderCoupling;
10864
class ExtACSyntaxCoupling;
10866
class ExtACKeywords;
10868
class PragmaOnceUnitState;
10870
class CMatchSyntax;
10873
#line 546 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10874
class PreError : public PreTree
10876
#line 10877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/PreParser.cc"
10877
friend class ::CCExprResolve;
10878
friend class ::CExprResolve;
10879
friend class ::WinIfExists;
10880
friend class ::WinImportHandler;
10881
friend class ::WinMacros;
10882
friend class ::WinAsm;
10883
friend class ::WinDeclSpecs;
10884
friend class ::WinMemberExplSpec;
10885
friend class ::WinTypeKeywords;
10886
friend class ::WinFriend;
10887
friend class ::ExtAC;
10888
friend class ::ExtACBuilderCoupling;
10889
friend class ::ExtACSyntaxCoupling;
10890
friend class ::ExtACTree;
10891
friend class ::ExtACKeywords;
10892
friend class ::ExtGnu;
10893
friend class ::PragmaOnceUnitState;
10894
friend class ::PragmaOnce;
10895
friend class ::CMatchSyntax;
10897
#line 547 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10903
void accept (PreVisitor& v)
10905
v.visitPreError (this);
10612
typedef AC::TLE __AttrTypes;
10613
const char *__attr_name (unsigned i) const { return 0; }
10614
const void *__attr (unsigned __i) const { return 0; }
10615
#line 135 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10619
/** \class PreElifPart PreTreeNodes.h Puma/PreTreeNodes.h
10620
* Preprocessor tree node representing a group of directives
10621
* in the \#elif part of an \#if conditional. */
10623
#line 10624 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10625
class CCExprResolve;
10626
class CExprResolve;
10628
class WinImportHandler;
10631
class WinDeclSpecs;
10632
class WinMemberExplSpec;
10633
class WinTypeKeywords;
10636
class ExtACBuilderCoupling;
10637
class ExtACSyntaxCoupling;
10639
class ExtACKeywords;
10641
class PragmaOnceUnitState;
10643
class CMatchSyntax;
10646
#line 141 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10647
class PreElifPart : public PreTreeComposite {
10648
#line 10649 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10649
friend class ::CCExprResolve;
10650
friend class ::CExprResolve;
10651
friend class ::WinIfExists;
10652
friend class ::WinImportHandler;
10653
friend class ::WinMacros;
10654
friend class ::WinAsm;
10655
friend class ::WinDeclSpecs;
10656
friend class ::WinMemberExplSpec;
10657
friend class ::WinTypeKeywords;
10658
friend class ::WinFriend;
10659
friend class ::ExtAC;
10660
friend class ::ExtACBuilderCoupling;
10661
friend class ::ExtACSyntaxCoupling;
10662
friend class ::ExtACTree;
10663
friend class ::ExtACKeywords;
10664
friend class ::ExtGnu;
10665
friend class ::PragmaOnceUnitState;
10666
friend class ::PragmaOnce;
10667
friend class ::CMatchSyntax;
10669
#line 141 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10672
/** Constructor. */
10673
PreElifPart () : PreTreeComposite (-1, 0) {}
10675
/** Add two sons, a directive group and a \#elif directive.
10676
* \param dg The directive group.
10677
* \param el The \#elif directive. */
10678
void addSons (PreTree* dg, PreTree* el) {
10679
add_son (dg); add_son (el);
10682
/** Part of the tree visitor pattern. Calls the node
10683
* visiting functions suitable for this node type.
10684
* \param v The visitor object on which to call the
10685
* visiting functions. */
10686
void accept (PreVisitor& v) {
10687
v.visitPreElifPart_Pre (this);
10688
v.iterateNodes (this);
10689
v.visitPreElifPart_Post (this);
10692
typedef AC::TLE __AttrTypes;
10693
const char *__attr_name (unsigned i) const { return 0; }
10694
const void *__attr (unsigned __i) const { return 0; }
10695
#line 162 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10699
/** \class PreIfDirective PreTreeNodes.h Puma/PreTreeNodes.h
10700
* Preprocessor tree node representing an \#if directive.
10701
* Example: \code #if OSTYPE==Linux \endcode */
10703
#line 10704 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10705
class CCExprResolve;
10706
class CExprResolve;
10708
class WinImportHandler;
10711
class WinDeclSpecs;
10712
class WinMemberExplSpec;
10713
class WinTypeKeywords;
10716
class ExtACBuilderCoupling;
10717
class ExtACSyntaxCoupling;
10719
class ExtACKeywords;
10721
class PragmaOnceUnitState;
10723
class CMatchSyntax;
10726
#line 168 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10727
class PreIfDirective : public PreTreeComposite {
10728
#line 10729 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10729
friend class ::CCExprResolve;
10730
friend class ::CExprResolve;
10731
friend class ::WinIfExists;
10732
friend class ::WinImportHandler;
10733
friend class ::WinMacros;
10734
friend class ::WinAsm;
10735
friend class ::WinDeclSpecs;
10736
friend class ::WinMemberExplSpec;
10737
friend class ::WinTypeKeywords;
10738
friend class ::WinFriend;
10739
friend class ::ExtAC;
10740
friend class ::ExtACBuilderCoupling;
10741
friend class ::ExtACSyntaxCoupling;
10742
friend class ::ExtACTree;
10743
friend class ::ExtACKeywords;
10744
friend class ::ExtGnu;
10745
friend class ::PragmaOnceUnitState;
10746
friend class ::PragmaOnce;
10747
friend class ::CMatchSyntax;
10749
#line 168 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10753
* \param i The \#if token.
10754
* \param c The condition. */
10755
PreIfDirective (PreTree* i, PreTree* c) : PreTreeComposite (2, 1) {
10756
add_son (i); add_son (c);
10759
/** Part of the tree visitor pattern. Calls the node
10760
* visiting functions suitable for this node type.
10761
* \param v The visitor object on which to call the
10762
* visiting functions. */
10763
void accept (PreVisitor& v) {
10764
v.visitPreIfDirective_Pre (this);
10765
v.iterateNodes (this);
10766
v.visitPreIfDirective_Post (this);
10769
typedef AC::TLE __AttrTypes;
10770
const char *__attr_name (unsigned i) const { return 0; }
10771
const void *__attr (unsigned __i) const { return 0; }
10772
#line 186 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10776
/** \class PreIfdefDirective PreTreeNodes.h Puma/PreTreeNodes.h
10777
* Preprocessor tree node representing an \#ifdef directive.
10778
* Example: \code #ifdef Linux \endcode */
10780
#line 10781 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10782
class CCExprResolve;
10783
class CExprResolve;
10785
class WinImportHandler;
10788
class WinDeclSpecs;
10789
class WinMemberExplSpec;
10790
class WinTypeKeywords;
10793
class ExtACBuilderCoupling;
10794
class ExtACSyntaxCoupling;
10796
class ExtACKeywords;
10798
class PragmaOnceUnitState;
10800
class CMatchSyntax;
10803
#line 192 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10804
class PreIfdefDirective : public PreTreeComposite {
10805
#line 10806 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10806
friend class ::CCExprResolve;
10807
friend class ::CExprResolve;
10808
friend class ::WinIfExists;
10809
friend class ::WinImportHandler;
10810
friend class ::WinMacros;
10811
friend class ::WinAsm;
10812
friend class ::WinDeclSpecs;
10813
friend class ::WinMemberExplSpec;
10814
friend class ::WinTypeKeywords;
10815
friend class ::WinFriend;
10816
friend class ::ExtAC;
10817
friend class ::ExtACBuilderCoupling;
10818
friend class ::ExtACSyntaxCoupling;
10819
friend class ::ExtACTree;
10820
friend class ::ExtACKeywords;
10821
friend class ::ExtGnu;
10822
friend class ::PragmaOnceUnitState;
10823
friend class ::PragmaOnce;
10824
friend class ::CMatchSyntax;
10826
#line 192 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10830
* \param i The \#ifdef token.
10831
* \param n The name of the macro.
10832
* \param tl The remaining tokens of the line. */
10833
PreIfdefDirective (PreTree* i, PreTree* n, PreTree* tl) : PreTreeComposite (3, 1) {
10834
add_son (i); add_son (n); add_son (tl);
10837
* \param i The \#ifdef token.
10838
* \param tl The remaining tokens of the line. */
10839
PreIfdefDirective (PreTree* i, PreTree* tl) : PreTreeComposite (2, 0) {
10840
add_son (i); add_son (tl);
10843
/** Part of the tree visitor pattern. Calls the node
10844
* visiting functions suitable for this node type.
10845
* \param v The visitor object on which to call the
10846
* visiting functions. */
10847
void accept (PreVisitor& v) {
10848
v.visitPreIfdefDirective_Pre (this);
10849
v.iterateNodes (this);
10850
v.visitPreIfdefDirective_Post (this);
10853
typedef AC::TLE __AttrTypes;
10854
const char *__attr_name (unsigned i) const { return 0; }
10855
const void *__attr (unsigned __i) const { return 0; }
10856
#line 217 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10860
/** \class PreIfndefDirective PreTreeNodes.h Puma/PreTreeNodes.h
10861
* Preprocessor tree node representing an \#ifndef directive.
10862
* Example: \code #ifndef Linux \endcode */
10864
#line 10865 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10866
class CCExprResolve;
10867
class CExprResolve;
10869
class WinImportHandler;
10872
class WinDeclSpecs;
10873
class WinMemberExplSpec;
10874
class WinTypeKeywords;
10877
class ExtACBuilderCoupling;
10878
class ExtACSyntaxCoupling;
10880
class ExtACKeywords;
10882
class PragmaOnceUnitState;
10884
class CMatchSyntax;
10887
#line 223 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10888
class PreIfndefDirective : public PreTreeComposite {
10889
#line 10890 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10890
friend class ::CCExprResolve;
10891
friend class ::CExprResolve;
10892
friend class ::WinIfExists;
10893
friend class ::WinImportHandler;
10894
friend class ::WinMacros;
10895
friend class ::WinAsm;
10896
friend class ::WinDeclSpecs;
10897
friend class ::WinMemberExplSpec;
10898
friend class ::WinTypeKeywords;
10899
friend class ::WinFriend;
10900
friend class ::ExtAC;
10901
friend class ::ExtACBuilderCoupling;
10902
friend class ::ExtACSyntaxCoupling;
10903
friend class ::ExtACTree;
10904
friend class ::ExtACKeywords;
10905
friend class ::ExtGnu;
10906
friend class ::PragmaOnceUnitState;
10907
friend class ::PragmaOnce;
10908
friend class ::CMatchSyntax;
10910
#line 223 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10914
* \param i The \#ifndef token.
10915
* \param n The name of the macro.
10916
* \param tl The remaining tokens of the line. */
10917
PreIfndefDirective (PreTree* i, PreTree* n, PreTree* tl) : PreTreeComposite (3, 1) {
10918
add_son (i); add_son (n); add_son (tl);
10921
* \param i The \#ifndef token.
10922
* \param tl The remaining tokens of the line. */
10923
PreIfndefDirective (PreTree* i, PreTree* tl) : PreTreeComposite (2, 0) {
10924
add_son (i); add_son (tl);
10927
/** Part of the tree visitor pattern. Calls the node
10928
* visiting functions suitable for this node type.
10929
* \param v The visitor object on which to call the
10930
* visiting functions. */
10931
void accept (PreVisitor& v) {
10932
v.visitPreIfndefDirective_Pre (this);
10933
v.iterateNodes (this);
10934
v.visitPreIfndefDirective_Post (this);
10937
typedef AC::TLE __AttrTypes;
10938
const char *__attr_name (unsigned i) const { return 0; }
10939
const void *__attr (unsigned __i) const { return 0; }
10940
#line 248 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10944
/** \class PreElifDirective PreTreeNodes.h Puma/PreTreeNodes.h
10945
* Preprocessor tree node representing an \#elif directive.
10946
* Example: \code #elif OSTYPE==linux \endcode */
10948
#line 10949 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10950
class CCExprResolve;
10951
class CExprResolve;
10953
class WinImportHandler;
10956
class WinDeclSpecs;
10957
class WinMemberExplSpec;
10958
class WinTypeKeywords;
10961
class ExtACBuilderCoupling;
10962
class ExtACSyntaxCoupling;
10964
class ExtACKeywords;
10966
class PragmaOnceUnitState;
10968
class CMatchSyntax;
10971
#line 254 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10972
class PreElifDirective : public PreTreeComposite {
10973
#line 10974 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
10974
friend class ::CCExprResolve;
10975
friend class ::CExprResolve;
10976
friend class ::WinIfExists;
10977
friend class ::WinImportHandler;
10978
friend class ::WinMacros;
10979
friend class ::WinAsm;
10980
friend class ::WinDeclSpecs;
10981
friend class ::WinMemberExplSpec;
10982
friend class ::WinTypeKeywords;
10983
friend class ::WinFriend;
10984
friend class ::ExtAC;
10985
friend class ::ExtACBuilderCoupling;
10986
friend class ::ExtACSyntaxCoupling;
10987
friend class ::ExtACTree;
10988
friend class ::ExtACKeywords;
10989
friend class ::ExtGnu;
10990
friend class ::PragmaOnceUnitState;
10991
friend class ::PragmaOnce;
10992
friend class ::CMatchSyntax;
10994
#line 254 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10998
* \param e The \#elif token.
10999
* \param c The condition. */
11000
PreElifDirective (PreTree* e, PreTree* c) : PreTreeComposite (2, 1) {
11001
add_son (e); add_son (c);
11004
/** Part of the tree visitor pattern. Calls the node
11005
* visiting functions suitable for this node type.
11006
* \param v The visitor object on which to call the
11007
* visiting functions. */
11008
void accept (PreVisitor& v) {
11009
v.visitPreElifDirective_Pre (this);
11010
v.iterateNodes (this);
11011
v.visitPreElifDirective_Post (this);
11014
typedef AC::TLE __AttrTypes;
11015
const char *__attr_name (unsigned i) const { return 0; }
11016
const void *__attr (unsigned __i) const { return 0; }
11017
#line 272 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11021
/** \class PreElseDirective PreTreeNodes.h Puma/PreTreeNodes.h
11022
* Preprocessor tree node representing an \#else directive.
11023
* Example: \code #else \endcode */
11025
#line 11026 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11027
class CCExprResolve;
11028
class CExprResolve;
11030
class WinImportHandler;
11033
class WinDeclSpecs;
11034
class WinMemberExplSpec;
11035
class WinTypeKeywords;
11038
class ExtACBuilderCoupling;
11039
class ExtACSyntaxCoupling;
11041
class ExtACKeywords;
11043
class PragmaOnceUnitState;
11045
class CMatchSyntax;
11048
#line 278 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11049
class PreElseDirective : public PreTreeComposite {
11050
#line 11051 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11051
friend class ::CCExprResolve;
11052
friend class ::CExprResolve;
11053
friend class ::WinIfExists;
11054
friend class ::WinImportHandler;
11055
friend class ::WinMacros;
11056
friend class ::WinAsm;
11057
friend class ::WinDeclSpecs;
11058
friend class ::WinMemberExplSpec;
11059
friend class ::WinTypeKeywords;
11060
friend class ::WinFriend;
11061
friend class ::ExtAC;
11062
friend class ::ExtACBuilderCoupling;
11063
friend class ::ExtACSyntaxCoupling;
11064
friend class ::ExtACTree;
11065
friend class ::ExtACKeywords;
11066
friend class ::ExtGnu;
11067
friend class ::PragmaOnceUnitState;
11068
friend class ::PragmaOnce;
11069
friend class ::CMatchSyntax;
11071
#line 278 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11075
* \param e The \#else token.
11076
* \param tl The remaining tokens of the line. */
11077
PreElseDirective (PreTree* e, PreTree* tl) : PreTreeComposite (2, 0) {
11078
add_son (e); add_son (tl);
11081
/** Part of the tree visitor pattern. Calls the node
11082
* visiting functions suitable for this node type.
11083
* \param v The visitor object on which to call the
11084
* visiting functions. */
11085
void accept (PreVisitor& v) {
11086
v.visitPreElseDirective_Pre (this);
11087
v.iterateNodes (this);
11088
v.visitPreElseDirective_Post (this);
11091
typedef AC::TLE __AttrTypes;
11092
const char *__attr_name (unsigned i) const { return 0; }
11093
const void *__attr (unsigned __i) const { return 0; }
11094
#line 296 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11098
/** \class PreEndifDirective PreTreeNodes.h Puma/PreTreeNodes.h
11099
* Preprocessor tree node representing an \#endif directive.
11100
* Example: \code #endif \endcode */
11102
#line 11103 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11104
class CCExprResolve;
11105
class CExprResolve;
11107
class WinImportHandler;
11110
class WinDeclSpecs;
11111
class WinMemberExplSpec;
11112
class WinTypeKeywords;
11115
class ExtACBuilderCoupling;
11116
class ExtACSyntaxCoupling;
11118
class ExtACKeywords;
11120
class PragmaOnceUnitState;
11122
class CMatchSyntax;
11125
#line 302 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11126
class PreEndifDirective : public PreTreeComposite {
11127
#line 11128 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11128
friend class ::CCExprResolve;
11129
friend class ::CExprResolve;
11130
friend class ::WinIfExists;
11131
friend class ::WinImportHandler;
11132
friend class ::WinMacros;
11133
friend class ::WinAsm;
11134
friend class ::WinDeclSpecs;
11135
friend class ::WinMemberExplSpec;
11136
friend class ::WinTypeKeywords;
11137
friend class ::WinFriend;
11138
friend class ::ExtAC;
11139
friend class ::ExtACBuilderCoupling;
11140
friend class ::ExtACSyntaxCoupling;
11141
friend class ::ExtACTree;
11142
friend class ::ExtACKeywords;
11143
friend class ::ExtGnu;
11144
friend class ::PragmaOnceUnitState;
11145
friend class ::PragmaOnce;
11146
friend class ::CMatchSyntax;
11148
#line 302 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11152
* \param e The \#endif token.
11153
* \param tl The remaining tokens of the line. */
11154
PreEndifDirective (PreTree* e, PreTree* tl) : PreTreeComposite (2, 0) {
11155
add_son (e); add_son (tl);
11158
/** Part of the tree visitor pattern. Calls the node
11159
* visiting functions suitable for this node type.
11160
* \param v The visitor object on which to call the
11161
* visiting functions. */
11162
void accept (PreVisitor& v) {
11163
v.visitPreEndifDirective_Pre (this);
11164
v.iterateNodes (this);
11165
v.visitPreEndifDirective_Post (this);
11168
typedef AC::TLE __AttrTypes;
11169
const char *__attr_name (unsigned i) const { return 0; }
11170
const void *__attr (unsigned __i) const { return 0; }
11171
#line 320 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11175
/** \class PreIncludeDirective PreTreeNodes.h Puma/PreTreeNodes.h
11176
* Preprocessor tree node representing an \#include or \#include_next directive.
11177
* Example: \code #include <stdio.h> \endcode */
11179
#line 11180 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11181
class CCExprResolve;
11182
class CExprResolve;
11184
class WinImportHandler;
11187
class WinDeclSpecs;
11188
class WinMemberExplSpec;
11189
class WinTypeKeywords;
11192
class ExtACBuilderCoupling;
11193
class ExtACSyntaxCoupling;
11195
class ExtACKeywords;
11197
class PragmaOnceUnitState;
11199
class CMatchSyntax;
11202
#line 326 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11203
class PreIncludeDirective : public PreTreeComposite {
11204
#line 11205 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11205
friend class ::CCExprResolve;
11206
friend class ::CExprResolve;
11207
friend class ::WinIfExists;
11208
friend class ::WinImportHandler;
11209
friend class ::WinMacros;
11210
friend class ::WinAsm;
11211
friend class ::WinDeclSpecs;
11212
friend class ::WinMemberExplSpec;
11213
friend class ::WinTypeKeywords;
11214
friend class ::WinFriend;
11215
friend class ::ExtAC;
11216
friend class ::ExtACBuilderCoupling;
11217
friend class ::ExtACSyntaxCoupling;
11218
friend class ::ExtACTree;
11219
friend class ::ExtACKeywords;
11220
friend class ::ExtGnu;
11221
friend class ::PragmaOnceUnitState;
11222
friend class ::PragmaOnce;
11223
friend class ::CMatchSyntax;
11225
#line 326 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11227
int _depth; // depth of nested includes
11231
* \param i The \#include or \#include_next token.
11232
* \param tl The remaining tokens of the line containing the file to include. */
11233
PreIncludeDirective (PreTree* i, PreTree* tl) : PreTreeComposite (2, 1) {
11234
add_son (i); add_son (tl);
11238
/** Part of the tree visitor pattern. Calls the node
11239
* visiting functions suitable for this node type.
11240
* \param v The visitor object on which to call the
11241
* visiting functions. */
11242
void accept (PreVisitor& v) {
11243
v.visitPreIncludeDirective_Pre (this);
11244
v.iterateNodes (this);
11245
v.visitPreIncludeDirective_Post (this);
11248
/** Get the depth of nested inclusion.
11249
* \return The depth or -1 for a top-level include. */
11250
int depth () const {
11253
/** Set the depth of nested inclusion.
11254
* \param d The depth of inclusion. */
11255
void depth (int d) {
11259
/** Check if this is a forced include (given by command line). */
11260
bool is_forced () const {
11261
return !((Unit*)startToken ()->belonging_to ())->isFile ();
11264
typedef AC::TL<int,AC::TLE > __AttrTypes;
11265
const char *__attr_name (unsigned i) const {
11266
static const char *names[] = { "_depth" }; return names[i];
11268
const void *__attr (unsigned __i) const {
11269
switch (__i) { case 0: return &_depth; default: return 0; }
11271
#line 363 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11275
/** \class PreAssertDirective PreTreeNodes.h Puma/PreTreeNodes.h
11276
* Preprocessor tree node representing an \#assert directive.
11277
* Example: \code #assert OSTYPE (linux) \endcode */
11279
#line 11280 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11281
class CCExprResolve;
11282
class CExprResolve;
11284
class WinImportHandler;
11287
class WinDeclSpecs;
11288
class WinMemberExplSpec;
11289
class WinTypeKeywords;
11292
class ExtACBuilderCoupling;
11293
class ExtACSyntaxCoupling;
11295
class ExtACKeywords;
11297
class PragmaOnceUnitState;
11299
class CMatchSyntax;
11302
#line 369 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11303
class PreAssertDirective : public PreTreeComposite {
11304
#line 11305 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11305
friend class ::CCExprResolve;
11306
friend class ::CExprResolve;
11307
friend class ::WinIfExists;
11308
friend class ::WinImportHandler;
11309
friend class ::WinMacros;
11310
friend class ::WinAsm;
11311
friend class ::WinDeclSpecs;
11312
friend class ::WinMemberExplSpec;
11313
friend class ::WinTypeKeywords;
11314
friend class ::WinFriend;
11315
friend class ::ExtAC;
11316
friend class ::ExtACBuilderCoupling;
11317
friend class ::ExtACSyntaxCoupling;
11318
friend class ::ExtACTree;
11319
friend class ::ExtACKeywords;
11320
friend class ::ExtGnu;
11321
friend class ::PragmaOnceUnitState;
11322
friend class ::PragmaOnce;
11323
friend class ::CMatchSyntax;
11325
#line 369 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11329
* \param a The \#assert token.
11330
* \param p The predicate name.
11331
* \param an The answer to the predicate. */
11332
PreAssertDirective (PreTree* a, PreTree* p, PreTree* an) : PreTreeComposite (3, 0) {
11333
add_son (a); add_son (p); add_son (an);
11336
* \param a The \#assert token.
11337
* \param tl The remaining tokens of the line. */
11338
PreAssertDirective (PreTree* a, PreTree* tl) : PreTreeComposite (2, 0) {
11339
add_son (a); add_son (tl);
11342
/** Part of the tree visitor pattern. Calls the node
11343
* visiting functions suitable for this node type.
11344
* \param v The visitor object on which to call the
11345
* visiting functions. */
11346
void accept (PreVisitor& v) {
11347
v.visitPreAssertDirective_Pre (this);
11348
v.iterateNodes (this);
11349
v.visitPreAssertDirective_Post (this);
11352
typedef AC::TLE __AttrTypes;
11353
const char *__attr_name (unsigned i) const { return 0; }
11354
const void *__attr (unsigned __i) const { return 0; }
11355
#line 394 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11359
/** \class PreUnassertDirective PreTreeNodes.h Puma/PreTreeNodes.h
11360
* Preprocessor tree node representing an \#unassert directive.
11361
* Example: \code #unassert OSTYPE \endcode */
11363
#line 11364 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11365
class CCExprResolve;
11366
class CExprResolve;
11368
class WinImportHandler;
11371
class WinDeclSpecs;
11372
class WinMemberExplSpec;
11373
class WinTypeKeywords;
11376
class ExtACBuilderCoupling;
11377
class ExtACSyntaxCoupling;
11379
class ExtACKeywords;
11381
class PragmaOnceUnitState;
11383
class CMatchSyntax;
11386
#line 400 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11387
class PreUnassertDirective : public PreTreeComposite {
11388
#line 11389 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11389
friend class ::CCExprResolve;
11390
friend class ::CExprResolve;
11391
friend class ::WinIfExists;
11392
friend class ::WinImportHandler;
11393
friend class ::WinMacros;
11394
friend class ::WinAsm;
11395
friend class ::WinDeclSpecs;
11396
friend class ::WinMemberExplSpec;
11397
friend class ::WinTypeKeywords;
11398
friend class ::WinFriend;
11399
friend class ::ExtAC;
11400
friend class ::ExtACBuilderCoupling;
11401
friend class ::ExtACSyntaxCoupling;
11402
friend class ::ExtACTree;
11403
friend class ::ExtACKeywords;
11404
friend class ::ExtGnu;
11405
friend class ::PragmaOnceUnitState;
11406
friend class ::PragmaOnce;
11407
friend class ::CMatchSyntax;
11409
#line 400 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11413
* \param ua The \#unassert token.
11414
* \param n The name of the predicate.
11415
* \param tl The remaining tokens of the line. */
11416
PreUnassertDirective (PreTree* ua, PreTree* n, PreTree* tl) : PreTreeComposite (3, 0) {
11417
add_son (ua); add_son (n); add_son (tl);
11420
* \param ua The \#unassert token.
11421
* \param tl The remaining tokens of the line. */
11422
PreUnassertDirective (PreTree* ua, PreTree* tl) : PreTreeComposite (2, 0) {
11423
add_son (ua); add_son (tl);
11426
/** Part of the tree visitor pattern. Calls the node
11427
* visiting functions suitable for this node type.
11428
* \param v The visitor object on which to call the
11429
* visiting functions. */
11430
void accept (PreVisitor& v) {
11431
v.visitPreUnassertDirective_Pre (this);
11432
v.iterateNodes (this);
11433
v.visitPreUnassertDirective_Post (this);
11436
typedef AC::TLE __AttrTypes;
11437
const char *__attr_name (unsigned i) const { return 0; }
11438
const void *__attr (unsigned __i) const { return 0; }
11439
#line 425 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11443
/** \class PreDefineFunctionDirective PreTreeNodes.h Puma/PreTreeNodes.h
11444
* Preprocessor tree node representing a \#define directive for function-like macros.
11445
* Example: \code #define MUL(a,b) (a * b) \endcode */
11447
#line 11448 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11449
class CCExprResolve;
11450
class CExprResolve;
11452
class WinImportHandler;
11455
class WinDeclSpecs;
11456
class WinMemberExplSpec;
11457
class WinTypeKeywords;
11460
class ExtACBuilderCoupling;
11461
class ExtACSyntaxCoupling;
11463
class ExtACKeywords;
11465
class PragmaOnceUnitState;
11467
class CMatchSyntax;
11470
#line 431 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11471
class PreDefineFunctionDirective : public PreTreeComposite {
11472
#line 11473 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11473
friend class ::CCExprResolve;
11474
friend class ::CExprResolve;
11475
friend class ::WinIfExists;
11476
friend class ::WinImportHandler;
11477
friend class ::WinMacros;
11478
friend class ::WinAsm;
11479
friend class ::WinDeclSpecs;
11480
friend class ::WinMemberExplSpec;
11481
friend class ::WinTypeKeywords;
11482
friend class ::WinFriend;
11483
friend class ::ExtAC;
11484
friend class ::ExtACBuilderCoupling;
11485
friend class ::ExtACSyntaxCoupling;
11486
friend class ::ExtACTree;
11487
friend class ::ExtACKeywords;
11488
friend class ::ExtGnu;
11489
friend class ::PragmaOnceUnitState;
11490
friend class ::PragmaOnce;
11491
friend class ::CMatchSyntax;
11493
#line 431 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11497
* \param a The \#define token.
11498
* \param b The macro name.
11499
* \param c Left parenthesis before the parameter list.
11500
* \param d The macro parameter list.
11501
* \param e Comma before the last parameter.
11502
* \param f The token '...'.
11503
* \param g Right parenthesis behind the parameter list.
11504
* \param h The macro body. */
11505
PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, PreTree* d,
11506
PreTree* e, PreTree* f, PreTree* g, PreTree* h) : PreTreeComposite (8, 0) {
11507
add_son (a); add_son (b); add_son (c); add_son (d);
11508
add_son (e); add_son (f); add_son (g); add_son (h);
11512
* \param a The \#define token.
11513
* \param b The macro name.
11514
* \param c Left parenthesis before the parameter list.
11515
* \param d The macro parameter list.
11516
* \param e The token '...'.
11517
* \param f Right parenthesis behind the parameter list.
11518
* \param g The macro body. */
11519
PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, PreTree* d,
11520
PreTree* e, PreTree* f, PreTree* g) : PreTreeComposite (7, 0) {
11521
add_son (a); add_son (b); add_son (c); add_son (d);
11522
add_son (e); add_son (f); add_son (g);
11526
* \param a The \#define token.
11527
* \param b The macro name.
11528
* \param c Left parenthesis before the parameter list.
11529
* \param d The macro parameter list.
11530
* \param e Right parenthesis behind the parameter list.
11531
* \param f The macro body. */
11532
PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c, PreTree* d,
11533
PreTree* e, PreTree* f) : PreTreeComposite (6, 0) {
11534
add_son (a); add_son (b); add_son (c);
11535
add_son (d); add_son (e); add_son (f);
11539
* \param a The \#define token.
11540
* \param b The macro name.
11541
* \param c Left parenthesis before the parameter list.
11542
* \param d Right parenthesis behind the parameter list.
11543
* \param e The macro body. */
11544
PreDefineFunctionDirective (PreTree* a, PreTree* b, PreTree* c,
11545
PreTree* d, PreTree* e) : PreTreeComposite (5, 0) {
11546
add_son (a); add_son (b); add_son (c); add_son (d); add_son (e);
11549
/** Part of the tree visitor pattern. Calls the node
11550
* visiting functions suitable for this node type.
11551
* \param v The visitor object on which to call the
11552
* visiting functions. */
11553
void accept (PreVisitor& v) {
11554
v.visitPreDefineFunctionDirective_Pre (this);
11555
v.iterateNodes (this);
11556
v.visitPreDefineFunctionDirective_Post (this);
11559
typedef AC::TLE __AttrTypes;
11560
const char *__attr_name (unsigned i) const { return 0; }
11561
const void *__attr (unsigned __i) const { return 0; }
11562
#line 495 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11566
/** \class PreDefineConstantDirective PreTreeNodes.h Puma/PreTreeNodes.h
11567
* Preprocessor tree node representing a \#define directive for constants.
11568
* Example: \code #define CONSTANT 1 \endcode */
11570
#line 11571 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11572
class CCExprResolve;
11573
class CExprResolve;
11575
class WinImportHandler;
11578
class WinDeclSpecs;
11579
class WinMemberExplSpec;
11580
class WinTypeKeywords;
11583
class ExtACBuilderCoupling;
11584
class ExtACSyntaxCoupling;
11586
class ExtACKeywords;
11588
class PragmaOnceUnitState;
11590
class CMatchSyntax;
11593
#line 501 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11594
class PreDefineConstantDirective : public PreTreeComposite {
11595
#line 11596 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11596
friend class ::CCExprResolve;
11597
friend class ::CExprResolve;
11598
friend class ::WinIfExists;
11599
friend class ::WinImportHandler;
11600
friend class ::WinMacros;
11601
friend class ::WinAsm;
11602
friend class ::WinDeclSpecs;
11603
friend class ::WinMemberExplSpec;
11604
friend class ::WinTypeKeywords;
11605
friend class ::WinFriend;
11606
friend class ::ExtAC;
11607
friend class ::ExtACBuilderCoupling;
11608
friend class ::ExtACSyntaxCoupling;
11609
friend class ::ExtACTree;
11610
friend class ::ExtACKeywords;
11611
friend class ::ExtGnu;
11612
friend class ::PragmaOnceUnitState;
11613
friend class ::PragmaOnce;
11614
friend class ::CMatchSyntax;
11616
#line 501 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11620
* \param d The \#define token.
11621
* \param n The name of the constant.
11622
* \param v The constant value. */
11623
PreDefineConstantDirective (PreTree* d, PreTree* n, PreTree* v) : PreTreeComposite (3, 0) {
11624
add_son (d); add_son (n); add_son (v);
11627
* \param d The \#define token.
11628
* \param tl The remaining tokens of the line. */
11629
PreDefineConstantDirective (PreTree* d, PreTree* tl) : PreTreeComposite (2, 0) {
11630
add_son (d); add_son (tl);
11633
/** Part of the tree visitor pattern. Calls the node
11634
* visiting functions suitable for this node type.
11635
* \param v The visitor object on which to call the
11636
* visiting functions. */
11637
void accept (PreVisitor& v) {
11638
v.visitPreDefineConstantDirective_Pre (this);
11639
v.iterateNodes (this);
11640
v.visitPreDefineConstantDirective_Post (this);
11643
typedef AC::TLE __AttrTypes;
11644
const char *__attr_name (unsigned i) const { return 0; }
11645
const void *__attr (unsigned __i) const { return 0; }
11646
#line 526 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11650
/** \class PreUndefDirective PreTreeNodes.h Puma/PreTreeNodes.h
11651
* Preprocessor tree node representing an \#undef directive.
11652
* Example: \code #undef MACRO \endcode */
11654
#line 11655 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11656
class CCExprResolve;
11657
class CExprResolve;
11659
class WinImportHandler;
11662
class WinDeclSpecs;
11663
class WinMemberExplSpec;
11664
class WinTypeKeywords;
11667
class ExtACBuilderCoupling;
11668
class ExtACSyntaxCoupling;
11670
class ExtACKeywords;
11672
class PragmaOnceUnitState;
11674
class CMatchSyntax;
11677
#line 532 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11678
class PreUndefDirective : public PreTreeComposite {
11679
#line 11680 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11680
friend class ::CCExprResolve;
11681
friend class ::CExprResolve;
11682
friend class ::WinIfExists;
11683
friend class ::WinImportHandler;
11684
friend class ::WinMacros;
11685
friend class ::WinAsm;
11686
friend class ::WinDeclSpecs;
11687
friend class ::WinMemberExplSpec;
11688
friend class ::WinTypeKeywords;
11689
friend class ::WinFriend;
11690
friend class ::ExtAC;
11691
friend class ::ExtACBuilderCoupling;
11692
friend class ::ExtACSyntaxCoupling;
11693
friend class ::ExtACTree;
11694
friend class ::ExtACKeywords;
11695
friend class ::ExtGnu;
11696
friend class ::PragmaOnceUnitState;
11697
friend class ::PragmaOnce;
11698
friend class ::CMatchSyntax;
11700
#line 532 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11704
* \param u The \#undef token.
11705
* \param m The name of the macro to undefine.
11706
* \param tl The remaining tokens of the line. */
11707
PreUndefDirective (PreTree* u, PreTree* m, PreTree* tl) : PreTreeComposite (3, 0) {
11708
add_son (u); add_son (m); add_son (tl);
11711
* \param u The \#undef token.
11712
* \param tl The remaining tokens of the line. */
11713
PreUndefDirective (PreTree* u, PreTree* tl) : PreTreeComposite (2, 0) {
11714
add_son (u); add_son (tl);
11717
/** Part of the tree visitor pattern. Calls the node
11718
* visiting functions suitable for this node type.
11719
* \param v The visitor object on which to call the
11720
* visiting functions. */
11721
void accept (PreVisitor& v) {
11722
v.visitPreUndefDirective_Pre (this);
11723
v.iterateNodes (this);
11724
v.visitPreUndefDirective_Post (this);
11727
typedef AC::TLE __AttrTypes;
11728
const char *__attr_name (unsigned i) const { return 0; }
11729
const void *__attr (unsigned __i) const { return 0; }
11730
#line 557 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11734
/** \class PreWarningDirective PreTreeNodes.h Puma/PreTreeNodes.h
11735
* Preprocessor tree node representing a \#warning directive.
11736
* Example: \code #warning This is a warning. \endcode */
11738
#line 11739 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11740
class CCExprResolve;
11741
class CExprResolve;
11743
class WinImportHandler;
11746
class WinDeclSpecs;
11747
class WinMemberExplSpec;
11748
class WinTypeKeywords;
11751
class ExtACBuilderCoupling;
11752
class ExtACSyntaxCoupling;
11754
class ExtACKeywords;
11756
class PragmaOnceUnitState;
11758
class CMatchSyntax;
11761
#line 563 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11762
class PreWarningDirective : public PreTreeComposite {
11763
#line 11764 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11764
friend class ::CCExprResolve;
11765
friend class ::CExprResolve;
11766
friend class ::WinIfExists;
11767
friend class ::WinImportHandler;
11768
friend class ::WinMacros;
11769
friend class ::WinAsm;
11770
friend class ::WinDeclSpecs;
11771
friend class ::WinMemberExplSpec;
11772
friend class ::WinTypeKeywords;
11773
friend class ::WinFriend;
11774
friend class ::ExtAC;
11775
friend class ::ExtACBuilderCoupling;
11776
friend class ::ExtACSyntaxCoupling;
11777
friend class ::ExtACTree;
11778
friend class ::ExtACKeywords;
11779
friend class ::ExtGnu;
11780
friend class ::PragmaOnceUnitState;
11781
friend class ::PragmaOnce;
11782
friend class ::CMatchSyntax;
11784
#line 563 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11788
* \param w The \#warning token.
11789
* \param m The warning message. */
11790
PreWarningDirective (PreTree* w, PreTree* m) : PreTreeComposite (2, 0) {
11791
add_son (w); add_son (m);
11794
/** Part of the tree visitor pattern. Calls the node
11795
* visiting functions suitable for this node type.
11796
* \param v The visitor object on which to call the
11797
* visiting functions. */
11798
void accept (PreVisitor& v) {
11799
v.visitPreWarningDirective_Pre (this);
11800
v.iterateNodes (this);
11801
v.visitPreWarningDirective_Post (this);
11804
typedef AC::TLE __AttrTypes;
11805
const char *__attr_name (unsigned i) const { return 0; }
11806
const void *__attr (unsigned __i) const { return 0; }
11807
#line 581 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11811
/** \class PreErrorDirective PreTreeNodes.h Puma/PreTreeNodes.h
11812
* Preprocessor tree node representing an \#error directive.
11813
* Example: \code #error This is an error. \endcode */
11815
#line 11816 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11817
class CCExprResolve;
11818
class CExprResolve;
11820
class WinImportHandler;
11823
class WinDeclSpecs;
11824
class WinMemberExplSpec;
11825
class WinTypeKeywords;
11828
class ExtACBuilderCoupling;
11829
class ExtACSyntaxCoupling;
11831
class ExtACKeywords;
11833
class PragmaOnceUnitState;
11835
class CMatchSyntax;
11838
#line 587 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11839
class PreErrorDirective : public PreTreeComposite {
11840
#line 11841 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11841
friend class ::CCExprResolve;
11842
friend class ::CExprResolve;
11843
friend class ::WinIfExists;
11844
friend class ::WinImportHandler;
11845
friend class ::WinMacros;
11846
friend class ::WinAsm;
11847
friend class ::WinDeclSpecs;
11848
friend class ::WinMemberExplSpec;
11849
friend class ::WinTypeKeywords;
11850
friend class ::WinFriend;
11851
friend class ::ExtAC;
11852
friend class ::ExtACBuilderCoupling;
11853
friend class ::ExtACSyntaxCoupling;
11854
friend class ::ExtACTree;
11855
friend class ::ExtACKeywords;
11856
friend class ::ExtGnu;
11857
friend class ::PragmaOnceUnitState;
11858
friend class ::PragmaOnce;
11859
friend class ::CMatchSyntax;
11861
#line 587 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11865
* \param e The \#error token.
11866
* \param m The error message. */
11867
PreErrorDirective (PreTree* e, PreTree* m) : PreTreeComposite (2, 0) {
11868
add_son (e); add_son (m);
11871
/** Part of the tree visitor pattern. Calls the node
11872
* visiting functions suitable for this node type.
11873
* \param v The visitor object on which to call the
11874
* visiting functions. */
11875
void accept (PreVisitor& v) {
11876
v.visitPreErrorDirective_Pre (this);
11877
v.iterateNodes (this);
11878
v.visitPreErrorDirective_Post (this);
11881
typedef AC::TLE __AttrTypes;
11882
const char *__attr_name (unsigned i) const { return 0; }
11883
const void *__attr (unsigned __i) const { return 0; }
11884
#line 605 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11888
/** \class PreIdentifierList PreTreeNodes.h Puma/PreTreeNodes.h
11889
* Preprocessor tree node representing the identifier list of a
11890
* function-like macro definition.
11891
* Example: \code a,b,c \endcode */
11893
#line 11894 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11895
class CCExprResolve;
11896
class CExprResolve;
11898
class WinImportHandler;
11901
class WinDeclSpecs;
11902
class WinMemberExplSpec;
11903
class WinTypeKeywords;
11906
class ExtACBuilderCoupling;
11907
class ExtACSyntaxCoupling;
11909
class ExtACKeywords;
11911
class PragmaOnceUnitState;
11913
class CMatchSyntax;
11916
#line 612 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11917
class PreIdentifierList : public PreTreeComposite {
11918
#line 11919 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11919
friend class ::CCExprResolve;
11920
friend class ::CExprResolve;
11921
friend class ::WinIfExists;
11922
friend class ::WinImportHandler;
11923
friend class ::WinMacros;
11924
friend class ::WinAsm;
11925
friend class ::WinDeclSpecs;
11926
friend class ::WinMemberExplSpec;
11927
friend class ::WinTypeKeywords;
11928
friend class ::WinFriend;
11929
friend class ::ExtAC;
11930
friend class ::ExtACBuilderCoupling;
11931
friend class ::ExtACSyntaxCoupling;
11932
friend class ::ExtACTree;
11933
friend class ::ExtACKeywords;
11934
friend class ::ExtGnu;
11935
friend class ::PragmaOnceUnitState;
11936
friend class ::PragmaOnce;
11937
friend class ::CMatchSyntax;
11939
#line 612 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11943
* \param id An identifier. */
11944
PreIdentifierList (PreTree* id) : PreTreeComposite (-1, 0) {
11948
/** Add two sons, a comma and an identifier.
11949
* \param c A comma.
11950
* \param id An identifier. */
11951
void addSons (PreTree* c, PreTree* id) {
11952
add_son (c); add_son (id);
11955
/** Part of the tree visitor pattern. Calls the node
11956
* visiting functions suitable for this node type.
11957
* \param v The visitor object on which to call the
11958
* visiting functions. */
11959
void accept (PreVisitor& v) {
11960
v.visitPreIdentifierList_Pre (this);
11961
v.iterateNodes (this);
11962
v.visitPreIdentifierList_Post (this);
11965
typedef AC::TLE __AttrTypes;
11966
const char *__attr_name (unsigned i) const { return 0; }
11967
const void *__attr (unsigned __i) const { return 0; }
11968
#line 636 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11972
/** \class PreTokenList PreTreeNodes.h Puma/PreTreeNodes.h
11973
* Preprocessor tree node representing the token list of a macro body. */
11975
#line 11976 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
11977
class CCExprResolve;
11978
class CExprResolve;
11980
class WinImportHandler;
11983
class WinDeclSpecs;
11984
class WinMemberExplSpec;
11985
class WinTypeKeywords;
11988
class ExtACBuilderCoupling;
11989
class ExtACSyntaxCoupling;
11991
class ExtACKeywords;
11993
class PragmaOnceUnitState;
11995
class CMatchSyntax;
11998
#line 641 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
11999
class PreTokenList : public PreTreeComposite {
12000
#line 12001 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12001
friend class ::CCExprResolve;
12002
friend class ::CExprResolve;
12003
friend class ::WinIfExists;
12004
friend class ::WinImportHandler;
12005
friend class ::WinMacros;
12006
friend class ::WinAsm;
12007
friend class ::WinDeclSpecs;
12008
friend class ::WinMemberExplSpec;
12009
friend class ::WinTypeKeywords;
12010
friend class ::WinFriend;
12011
friend class ::ExtAC;
12012
friend class ::ExtACBuilderCoupling;
12013
friend class ::ExtACSyntaxCoupling;
12014
friend class ::ExtACTree;
12015
friend class ::ExtACKeywords;
12016
friend class ::ExtGnu;
12017
friend class ::PragmaOnceUnitState;
12018
friend class ::PragmaOnce;
12019
friend class ::CMatchSyntax;
12021
#line 641 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12024
/** Constructor. */
12025
PreTokenList () : PreTreeComposite (0, 0) {}
12027
* \param tl The token list.
12028
* \param nl The newline token. */
12029
PreTokenList (PreTree* tl, PreTree* nl) : PreTreeComposite (2, 0) {
12030
add_son (tl); add_son (nl);
12033
* \param tl The token list. */
12034
PreTokenList (PreTree* tl) : PreTreeComposite (1, 0) {
12038
/** Part of the tree visitor pattern. Calls the node
12039
* visiting functions suitable for this node type.
12040
* \param v The visitor object on which to call the
12041
* visiting functions. */
12042
void accept (PreVisitor& v) {
12043
v.visitPreTokenList_Pre (this);
12044
v.iterateNodes (this);
12045
v.visitPreTokenList_Post (this);
12048
typedef AC::TLE __AttrTypes;
12049
const char *__attr_name (unsigned i) const { return 0; }
12050
const void *__attr (unsigned __i) const { return 0; }
12051
#line 666 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12055
/** \class PreTokenListPart PreTreeNodes.h Puma/PreTreeNodes.h
12056
* Preprocessor tree node representing a part of the token list of a macro body. */
12058
#line 12059 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12060
class CCExprResolve;
12061
class CExprResolve;
12063
class WinImportHandler;
12066
class WinDeclSpecs;
12067
class WinMemberExplSpec;
12068
class WinTypeKeywords;
12071
class ExtACBuilderCoupling;
12072
class ExtACSyntaxCoupling;
12074
class ExtACKeywords;
12076
class PragmaOnceUnitState;
12078
class CMatchSyntax;
12081
#line 671 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12082
class PreTokenListPart : public PreTreeComposite {
12083
#line 12084 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12084
friend class ::CCExprResolve;
12085
friend class ::CExprResolve;
12086
friend class ::WinIfExists;
12087
friend class ::WinImportHandler;
12088
friend class ::WinMacros;
12089
friend class ::WinAsm;
12090
friend class ::WinDeclSpecs;
12091
friend class ::WinMemberExplSpec;
12092
friend class ::WinTypeKeywords;
12093
friend class ::WinFriend;
12094
friend class ::ExtAC;
12095
friend class ::ExtACBuilderCoupling;
12096
friend class ::ExtACSyntaxCoupling;
12097
friend class ::ExtACTree;
12098
friend class ::ExtACKeywords;
12099
friend class ::ExtGnu;
12100
friend class ::PragmaOnceUnitState;
12101
friend class ::PragmaOnce;
12102
friend class ::CMatchSyntax;
12104
#line 671 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12108
* \param tl The token list. */
12109
PreTokenListPart (PreTree* tl) : PreTreeComposite (-1, 0) {
12113
/** Part of the tree visitor pattern. Calls the node
12114
* visiting functions suitable for this node type.
12115
* \param v The visitor object on which to call the
12116
* visiting functions. */
12117
void accept (PreVisitor& v) {
12118
v.visitPreTokenListPart_Pre (this);
12119
v.iterateNodes (this);
12120
v.visitPreTokenListPart_Post (this);
12123
typedef AC::TLE __AttrTypes;
12124
const char *__attr_name (unsigned i) const { return 0; }
12125
const void *__attr (unsigned __i) const { return 0; }
12126
#line 688 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12130
/** \class PreCondSemNode PreTreeNodes.h Puma/PreTreeNodes.h
12131
* Preprocessor semantic tree node for conditions. */
12133
#line 12134 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12135
class CCExprResolve;
12136
class CExprResolve;
12138
class WinImportHandler;
12141
class WinDeclSpecs;
12142
class WinMemberExplSpec;
12143
class WinTypeKeywords;
12146
class ExtACBuilderCoupling;
12147
class ExtACSyntaxCoupling;
12149
class ExtACKeywords;
12151
class PragmaOnceUnitState;
12153
class CMatchSyntax;
12156
#line 693 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12157
class PreCondSemNode : public PreTree {
12158
#line 12159 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12159
friend class ::CCExprResolve;
12160
friend class ::CExprResolve;
12161
friend class ::WinIfExists;
12162
friend class ::WinImportHandler;
12163
friend class ::WinMacros;
12164
friend class ::WinAsm;
12165
friend class ::WinDeclSpecs;
12166
friend class ::WinMemberExplSpec;
12167
friend class ::WinTypeKeywords;
12168
friend class ::WinFriend;
12169
friend class ::ExtAC;
12170
friend class ::ExtACBuilderCoupling;
12171
friend class ::ExtACSyntaxCoupling;
12172
friend class ::ExtACTree;
12173
friend class ::ExtACKeywords;
12174
friend class ::ExtGnu;
12175
friend class ::PragmaOnceUnitState;
12176
friend class ::PragmaOnce;
12177
friend class ::CMatchSyntax;
12179
#line 693 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12181
// The calculated value of the condition.
12186
* \param value The calculated value of the condition. */
12187
PreCondSemNode (bool value) : _value (value) {}
12189
/** Part of the tree visitor pattern. Calls the node
12190
* visiting functions suitable for this node type.
12191
* \param v The visitor object on which to call the
12192
* visiting functions. */
12193
void accept (PreVisitor& v) {
12194
v.visitPreCondSemNode (this);
12197
/** Get the calculated value of the condition. */
12198
bool value () const { return _value; }
12200
typedef AC::TL<bool,AC::TLE > __AttrTypes;
12201
const char *__attr_name (unsigned i) const {
12202
static const char *names[] = { "_value" }; return names[i];
12204
const void *__attr (unsigned __i) const {
12205
switch (__i) { case 0: return &_value; default: return 0; }
12207
#line 712 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12211
/** \class PreInclSemNode PreTreeNodes.h Puma/PreTreeNodes.h
12212
* Preprocessor semantic tree node for the \#include directive
12213
* containing the unit to include. */
12215
#line 12216 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12217
class CCExprResolve;
12218
class CExprResolve;
12220
class WinImportHandler;
12223
class WinDeclSpecs;
12224
class WinMemberExplSpec;
12225
class WinTypeKeywords;
12228
class ExtACBuilderCoupling;
12229
class ExtACSyntaxCoupling;
12231
class ExtACKeywords;
12233
class PragmaOnceUnitState;
12235
class CMatchSyntax;
12238
#line 718 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12239
class PreInclSemNode : public PreTree {
12240
#line 12241 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12241
friend class ::CCExprResolve;
12242
friend class ::CExprResolve;
12243
friend class ::WinIfExists;
12244
friend class ::WinImportHandler;
12245
friend class ::WinMacros;
12246
friend class ::WinAsm;
12247
friend class ::WinDeclSpecs;
12248
friend class ::WinMemberExplSpec;
12249
friend class ::WinTypeKeywords;
12250
friend class ::WinFriend;
12251
friend class ::ExtAC;
12252
friend class ::ExtACBuilderCoupling;
12253
friend class ::ExtACSyntaxCoupling;
12254
friend class ::ExtACTree;
12255
friend class ::ExtACKeywords;
12256
friend class ::ExtGnu;
12257
friend class ::PragmaOnceUnitState;
12258
friend class ::PragmaOnce;
12259
friend class ::CMatchSyntax;
12261
#line 718 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12263
// Pointer to the included file unit.
12266
// True if the inclusion was not done, because of an active include guard.
12271
* \param unit The unit containing the tokens of the include file.
12272
* \param guarded True if the inclusion was not done due to an include guard. */
12273
PreInclSemNode (Unit* unit, bool guarded) :
12274
_unit (unit), _guarded (guarded) {}
12276
/** Part of the tree visitor pattern. Calls the node
12277
* visiting functions suitable for this node type.
12278
* \param v The visitor object on which to call the
12279
* visiting functions. */
12280
void accept (PreVisitor& v) {
12281
v.visitPreInclSemNode (this);
12284
/** Get the token unit of the included file. */
12285
Unit* unit () const { return _unit; }
12287
/** Check if the inclusion was not done due to an include guard. */
12288
bool guarded () const { return _guarded; }
12290
typedef AC::TL<Puma::Unit *,AC::TL<bool,AC::TLE > > __AttrTypes;
12291
const char *__attr_name (unsigned i) const {
12292
static const char *names[] = { "_unit", "_guarded" }; return names[i];
12294
const void *__attr (unsigned __i) const {
12295
switch (__i) { case 0: return &_unit; case 1: return &_guarded; default: return 0; }
12297
#line 745 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12301
/** \class PreError PreTreeNodes.h Puma/PreTreeNodes.h
12302
* Preprocessor tree node representing a parse error. */
12304
#line 12305 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12306
class CCExprResolve;
12307
class CExprResolve;
12309
class WinImportHandler;
12312
class WinDeclSpecs;
12313
class WinMemberExplSpec;
12314
class WinTypeKeywords;
12317
class ExtACBuilderCoupling;
12318
class ExtACSyntaxCoupling;
12320
class ExtACKeywords;
12322
class PragmaOnceUnitState;
12324
class CMatchSyntax;
12327
#line 750 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12328
class PreError : public PreTree {
12329
#line 12330 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step2/src/PreParser.cc"
12330
friend class ::CCExprResolve;
12331
friend class ::CExprResolve;
12332
friend class ::WinIfExists;
12333
friend class ::WinImportHandler;
12334
friend class ::WinMacros;
12335
friend class ::WinAsm;
12336
friend class ::WinDeclSpecs;
12337
friend class ::WinMemberExplSpec;
12338
friend class ::WinTypeKeywords;
12339
friend class ::WinFriend;
12340
friend class ::ExtAC;
12341
friend class ::ExtACBuilderCoupling;
12342
friend class ::ExtACSyntaxCoupling;
12343
friend class ::ExtACTree;
12344
friend class ::ExtACKeywords;
12345
friend class ::ExtGnu;
12346
friend class ::PragmaOnceUnitState;
12347
friend class ::PragmaOnce;
12348
friend class ::CMatchSyntax;
12350
#line 750 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
12353
/** Constructor. */
12356
/** Part of the tree visitor pattern. Calls the node
12357
* visiting functions suitable for this node type.
12358
* \param v The visitor object on which to call the
12359
* visiting functions. */
12360
void accept (PreVisitor& v) {
12361
v.visitPreError (this);
12364
typedef AC::TLE __AttrTypes;
12365
const char *__attr_name (unsigned i) const { return 0; }
12366
const void *__attr (unsigned __i) const { return 0; }
12367
#line 762 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PreTreeNodes.h"
10910
12371
} // namespace Puma
10912
12373
#endif /* __pre_syntax_tree_nodes__ */
10914
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
12375
#line 1 "/home/inf4/tartler/src/aspectc++/upstream/Puma/gen-release/step1/inc/Puma/PrePredicateManager.h"
10915
12376
// This file is part of PUMA.
10916
12377
// Copyright (C) 1999-2003 The PUMA developer team.