567
484
#endif /* __stack_h__ */
569
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
570
// This file is part of PUMA.
571
// Copyright (C) 1999-2003 The PUMA developer team.
573
// This program is free software; you can redistribute it and/or
574
// modify it under the terms of the GNU General Public License as
575
// published by the Free Software Foundation; either version 2 of
576
// the License, or (at your option) any later version.
578
// This program is distributed in the hope that it will be useful,
579
// but WITHOUT ANY WARRANTY; without even the implied warranty of
580
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
581
// GNU General Public License for more details.
583
// You should have received a copy of the GNU General Public
584
// License along with this program; if not, write to the Free
585
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
595
// core tokens, i.e. numbers, operator symbols, brackets, etc.
649
TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
689
// C compatibility keywords
709
// C win specific keywords
721
TOK_LAST_C = TOK_IF_NOT_EXISTS,
723
// a boolean constant:
755
// C++ alternative representation of operators (ISO 646):
769
TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
771
// AspectC++ keywords:
779
TOK_LAST_AC = TOK_UNKNOWN_T,
781
// further [A](C|C++) token
786
// These two always have to be the ** last ** token listed here!!!
794
#endif /* __C_TOKENS__ */
796
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
797
// This file is part of PUMA.
798
// Copyright (C) 1999-2003 The PUMA developer team.
800
// This program is free software; you can redistribute it and/or
801
// modify it under the terms of the GNU General Public License as
802
// published by the Free Software Foundation; either version 2 of
803
// the License, or (at your option) any later version.
805
// This program is distributed in the hope that it will be useful,
806
// but WITHOUT ANY WARRANTY; without even the implied warranty of
807
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
808
// GNU General Public License for more details.
810
// You should have received a copy of the GNU General Public
811
// License along with this program; if not, write to the Free
812
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
818
// Abstract interface of a language token. A token is created by an
819
// invocation of a scanner's 'scan' method. The token encapsulates a
820
// lexical unit of the scanned text.
486
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
487
// This file is part of PUMA.
488
// Copyright (C) 1999-2003 The PUMA developer team.
490
// This program is free software; you can redistribute it and/or
491
// modify it under the terms of the GNU General Public License as
492
// published by the Free Software Foundation; either version 2 of
493
// the License, or (at your option) any later version.
495
// This program is distributed in the hope that it will be useful,
496
// but WITHOUT ANY WARRANTY; without even the implied warranty of
497
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
498
// GNU General Public License for more details.
500
// You should have received a copy of the GNU General Public
501
// License along with this program; if not, write to the Free
502
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
508
// Class Config provides evaluation of configuration
509
// information from file or command line.
512
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
513
// This file is part of PUMA.
514
// Copyright (C) 1999-2003 The PUMA developer team.
516
// This program is free software; you can redistribute it and/or
517
// modify it under the terms of the GNU General Public License as
518
// published by the Free Software Foundation; either version 2 of
519
// the License, or (at your option) any later version.
521
// This program is distributed in the hope that it will be useful,
522
// but WITHOUT ANY WARRANTY; without even the implied warranty of
523
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
524
// GNU General Public License for more details.
526
// You should have received a copy of the GNU General Public
527
// License along with this program; if not, write to the Free
528
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
538
#line 539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
543
class WinImportHandler;
547
class WinMemberExplSpec;
548
class WinTypeKeywords;
551
class ExtACBuilderCoupling;
552
class ExtACSyntaxCoupling;
556
class PragmaOnceUnitState;
561
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
563
#line 564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
564
friend class ::CCExprResolve;
565
friend class ::CExprResolve;
566
friend class ::WinIfExists;
567
friend class ::WinImportHandler;
568
friend class ::WinMacros;
569
friend class ::WinAsm;
570
friend class ::WinDeclSpecs;
571
friend class ::WinMemberExplSpec;
572
friend class ::WinTypeKeywords;
573
friend class ::WinFriend;
574
friend class ::ExtAC;
575
friend class ::ExtACBuilderCoupling;
576
friend class ::ExtACSyntaxCoupling;
577
friend class ::ExtACTree;
578
friend class ::ExtACKeywords;
579
friend class ::ExtGnu;
580
friend class ::PragmaOnceUnitState;
581
friend class ::PragmaOnce;
582
friend class ::CMatchSyntax;
584
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
594
GNU_NESTED_FCT = 0x4,
595
GNU_CONDITION_SCOPE = 0x8,
596
GNU_PARAM_DECL = 0x10,
598
GNU_PARAM_SCOPE = 0x40,
599
GNU_DEFAULT_ARGS = 0x80,
600
GNU_EXTENDED_ASM = 0x100,
601
GNU_EXTENDED_EXPR = 0x200,
602
GNU_LONG_LONG = 0x400,
603
GNU_NAME_SCOPE = 0x800,
604
GNU_IMPLICIT_INT = 0x1000,
605
GNU_FCT_ATTRIBUTE = 0x2000,
606
GNU_IF_THEN_EXPR = 0x4000
614
Flags (const Flags &);
615
Flags &operator =(const Flags &);
618
Flags &operator +=(Flag);
619
Flags &operator -=(Flag);
622
bool operator ==(Flag) const;
623
bool operator !=(Flag) const;
626
inline Flags::Flags () : _Flags (NONE)
628
inline Flags::Flags (const Flags &f)
629
{ _Flags = f._Flags; }
630
inline Flags &Flags::operator =(const Flags &f)
631
{ _Flags = f._Flags; return *(Flags*)this; }
633
inline Flags &Flags::operator +=(Flags::Flag f)
634
{ _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
635
inline Flags &Flags::operator -=(Flags::Flag f)
636
{ _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
638
inline bool Flags::operator ==(Flags::Flag f) const
639
{ return _Flags & f; }
640
inline bool Flags::operator !=(Flags::Flag f) const
641
{ return ! (_Flags & f); }
646
#endif /* __Flags_h__ */
648
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
649
// This file is part of PUMA.
650
// Copyright (C) 1999-2003 The PUMA developer team.
652
// This program is free software; you can redistribute it and/or
653
// modify it under the terms of the GNU General Public License as
654
// published by the Free Software Foundation; either version 2 of
655
// the License, or (at your option) any later version.
657
// This program is distributed in the hope that it will be useful,
658
// but WITHOUT ANY WARRANTY; without even the implied warranty of
659
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
660
// GNU General Public License for more details.
662
// You should have received a copy of the GNU General Public
663
// License along with this program; if not, write to the Free
664
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
667
#ifndef __ConfOption_h__
668
#define __ConfOption_h__
671
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
672
// This file is part of PUMA.
673
// Copyright (C) 1999-2003 The PUMA developer team.
675
// This program is free software; you can redistribute it and/or
676
// modify it under the terms of the GNU General Public License as
677
// published by the Free Software Foundation; either version 2 of
678
// the License, or (at your option) any later version.
680
// This program is distributed in the hope that it will be useful,
681
// but WITHOUT ANY WARRANTY; without even the implied warranty of
682
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
683
// GNU General Public License for more details.
685
// You should have received a copy of the GNU General Public
686
// License along with this program; if not, write to the Free
687
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
693
// Collection of functions handling strings.
701
#line 702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
706
class WinImportHandler;
710
class WinMemberExplSpec;
711
class WinTypeKeywords;
714
class ExtACBuilderCoupling;
715
class ExtACSyntaxCoupling;
719
class PragmaOnceUnitState;
724
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
726
#line 727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
727
friend class ::CCExprResolve;
728
friend class ::CExprResolve;
729
friend class ::WinIfExists;
730
friend class ::WinImportHandler;
731
friend class ::WinMacros;
732
friend class ::WinAsm;
733
friend class ::WinDeclSpecs;
734
friend class ::WinMemberExplSpec;
735
friend class ::WinTypeKeywords;
736
friend class ::WinFriend;
737
friend class ::ExtAC;
738
friend class ::ExtACBuilderCoupling;
739
friend class ::ExtACSyntaxCoupling;
740
friend class ::ExtACTree;
741
friend class ::ExtACKeywords;
742
friend class ::ExtGnu;
743
friend class ::PragmaOnceUnitState;
744
friend class ::PragmaOnce;
745
friend class ::CMatchSyntax;
747
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
753
// Return true if c is a white space character.
754
static bool isSpace (const char c);
756
// Return true if the string consists only of spaces.
757
static bool onlySpaces (const char *);
759
// Return true if the two strings differ not only in spaces.
760
static bool effectivelyDifferent (const char *, const char *);
762
// Build a string from a unit.
763
static char *buildString (Unit *);
765
// Duplicate a string
766
static char *dup (const char *);
767
static char *dup (const char *, int);
773
#endif /* __str_col__ */
775
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
822
776
#include <stdlib.h>
824
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
825
// This file is part of PUMA.
826
// Copyright (C) 1999-2003 The PUMA developer team.
828
// This program is free software; you can redistribute it and/or
829
// modify it under the terms of the GNU General Public License as
830
// published by the Free Software Foundation; either version 2 of
831
// the License, or (at your option) any later version.
833
// This program is distributed in the hope that it will be useful,
834
// but WITHOUT ANY WARRANTY; without even the implied warranty of
835
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
836
// GNU General Public License for more details.
838
// You should have received a copy of the GNU General Public
839
// License along with this program; if not, write to the Free
840
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
843
#ifndef __language_id_h__
844
#define __language_id_h__
846
// A language ID is a unique identifier for a language
852
#line 853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
855
class WinImportHandler;
860
class ExtACBuilderCoupling;
861
class ExtACSyntaxCoupling;
866
class WinMemberExplSpec;
867
class WinTypeKeywords;
868
class PragmaOnceUnitState;
874
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
876
#line 877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
877
friend class ::WinIfExists;
878
friend class ::WinImportHandler;
879
friend class ::WinMacros;
880
friend class ::CMatchSyntax;
881
friend class ::ExtGnu;
882
friend class ::ExtAC;
883
friend class ::ExtACBuilderCoupling;
884
friend class ::ExtACSyntaxCoupling;
885
friend class ::ExtACTree;
886
friend class ::ExtACKeywords;
887
friend class ::WinAsm;
888
friend class ::WinDeclSpecs;
889
friend class ::WinMemberExplSpec;
890
friend class ::WinTypeKeywords;
891
friend class ::PragmaOnceUnitState;
892
friend class ::PragmaOnce;
893
friend class ::CCExprResolve;
894
friend class ::CExprResolve;
896
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
901
LanguageID () : _id ((const char*)0) {}
902
LanguageID (const char *id) : _id (id) {}
903
operator const char *() const { return _id; }
904
bool operator == (const LanguageID &id) const
905
{ return _id == (const char*)id; }
911
#endif /* __language_id_h__ */
913
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
782
#line 783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
787
class WinImportHandler;
791
class WinMemberExplSpec;
792
class WinTypeKeywords;
795
class ExtACBuilderCoupling;
796
class ExtACSyntaxCoupling;
800
class PragmaOnceUnitState;
805
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
807
#line 808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
808
friend class ::CCExprResolve;
809
friend class ::CExprResolve;
810
friend class ::WinIfExists;
811
friend class ::WinImportHandler;
812
friend class ::WinMacros;
813
friend class ::WinAsm;
814
friend class ::WinDeclSpecs;
815
friend class ::WinMemberExplSpec;
816
friend class ::WinTypeKeywords;
817
friend class ::WinFriend;
818
friend class ::ExtAC;
819
friend class ::ExtACBuilderCoupling;
820
friend class ::ExtACSyntaxCoupling;
821
friend class ::ExtACTree;
822
friend class ::ExtACKeywords;
823
friend class ::ExtGnu;
824
friend class ::PragmaOnceUnitState;
825
friend class ::PragmaOnce;
826
friend class ::CMatchSyntax;
828
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
831
Array<const char *> _args;
834
ConfOption (const char *);
835
ConfOption (const char *, const char *);
836
ConfOption (const char *, const char *, const char *);
839
const char *Name () const;
840
unsigned Arguments () const;
841
const char *Argument (unsigned) const;
843
void addArgument (const char *);
846
inline ConfOption::ConfOption (const char *n) : _args (1, 1)
847
{ _name = StrCol::dup (n); }
848
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1)
849
{ _name = StrCol::dup (n); addArgument (a1); }
850
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1)
851
{ _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
853
inline ConfOption::~ConfOption ()
855
for (unsigned i = 0; i < Arguments (); i++)
856
delete[] Argument (i);
859
inline const char *ConfOption::Name () const
861
inline unsigned ConfOption::Arguments () const
862
{ return _args.length (); }
863
inline const char *ConfOption::Argument (unsigned i) const
864
{ return _args.lookup (i); }
866
inline void ConfOption::addArgument (const char *a)
867
{ if (a) _args.append (StrCol::dup (a)); }
872
#endif /* __ConfOption_h__ */
874
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
875
// This file is part of PUMA.
876
// Copyright (C) 1999-2003 The PUMA developer team.
878
// This program is free software; you can redistribute it and/or
879
// modify it under the terms of the GNU General Public License as
880
// published by the Free Software Foundation; either version 2 of
881
// the License, or (at your option) any later version.
883
// This program is distributed in the hope that it will be useful,
884
// but WITHOUT ANY WARRANTY; without even the implied warranty of
885
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
886
// GNU General Public License for more details.
888
// You should have received a copy of the GNU General Public
889
// License along with this program; if not, write to the Free
890
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
893
#ifndef __error_stream_h__
894
#define __error_stream_h__
896
// An ErrorStream is a special ErrorSink that prints out an error message
897
// as soon as it complete. It also stores the maximum error severity.
898
// The ErrorStream can be reset to it's initial state.
902
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
903
// This file is part of PUMA.
904
// Copyright (C) 1999-2003 The PUMA developer team.
906
// This program is free software; you can redistribute it and/or
907
// modify it under the terms of the GNU General Public License as
908
// published by the Free Software Foundation; either version 2 of
909
// the License, or (at your option) any later version.
911
// This program is distributed in the hope that it will be useful,
912
// but WITHOUT ANY WARRANTY; without even the implied warranty of
913
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
914
// GNU General Public License for more details.
916
// You should have received a copy of the GNU General Public
917
// License along with this program; if not, write to the Free
918
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
921
#ifndef __error_sink_h__
922
#define __error_sink_h__
924
// This is an interface for classes that may be used to consume error
925
// messages during a process where many errors can occur like parsing
927
// The error information is handed over to the ErrorSink in stream-like
928
// style. Different severities of errors are predefined and can be used
929
// to classify error information that follows. Also a location can be
930
// handed over to the ErrorSink to specify where the error was found
931
// (filename, line, etc.). The error information itself can be of any
932
// standard data type or anything that is "Printable".
933
// Specializations of this class could either build and print error
934
// messages or collect them for a later processing.
937
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
938
// This file is part of PUMA.
939
// Copyright (C) 1999-2003 The PUMA developer team.
941
// This program is free software; you can redistribute it and/or
942
// modify it under the terms of the GNU General Public License as
943
// published by the Free Software Foundation; either version 2 of
944
// the License, or (at your option) any later version.
946
// This program is distributed in the hope that it will be useful,
947
// but WITHOUT ANY WARRANTY; without even the implied warranty of
948
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
949
// GNU General Public License for more details.
951
// You should have received a copy of the GNU General Public
952
// License along with this program; if not, write to the Free
953
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
956
#ifndef __error_severity_h__
957
#define __error_severity_h__
959
// Severity of errors: represented by a short integer and a text
965
#line 966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
970
class WinImportHandler;
974
class WinMemberExplSpec;
975
class WinTypeKeywords;
978
class ExtACBuilderCoupling;
979
class ExtACSyntaxCoupling;
983
class PragmaOnceUnitState;
988
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
989
class ErrorSeverity {
990
#line 991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
991
friend class ::CCExprResolve;
992
friend class ::CExprResolve;
993
friend class ::WinIfExists;
994
friend class ::WinImportHandler;
995
friend class ::WinMacros;
996
friend class ::WinAsm;
997
friend class ::WinDeclSpecs;
998
friend class ::WinMemberExplSpec;
999
friend class ::WinTypeKeywords;
1000
friend class ::WinFriend;
1001
friend class ::ExtAC;
1002
friend class ::ExtACBuilderCoupling;
1003
friend class ::ExtACSyntaxCoupling;
1004
friend class ::ExtACTree;
1005
friend class ::ExtACKeywords;
1006
friend class ::ExtGnu;
1007
friend class ::PragmaOnceUnitState;
1008
friend class ::PragmaOnce;
1009
friend class ::CMatchSyntax;
1011
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
1013
unsigned short _severity;
1017
ErrorSeverity (unsigned short s = 0, const char* t = (const char*)0) :
1018
_severity (s), _text (t) {}
1019
ErrorSeverity (const ErrorSeverity &s) :
1020
_severity (s._severity), _text (s._text) {}
1021
ErrorSeverity &operator =(const ErrorSeverity &s)
1022
{ _severity = s._severity; _text = s._text; return *this; }
1024
int operator < (const ErrorSeverity &s) const
1025
{ return _severity < s._severity; }
1026
int operator > (const ErrorSeverity &s) const
1027
{ return _severity > s._severity; }
1028
int operator <= (const ErrorSeverity &s) const
1029
{ return _severity < s._severity || _severity == s._severity; }
1030
int operator >= (const ErrorSeverity &s) const
1031
{ return _severity > s._severity || _severity == s._severity; }
1032
int operator == (const ErrorSeverity &s) const
1033
{ return _severity == s._severity; }
1034
int operator != (const ErrorSeverity &s) const
1035
{ return _severity != s._severity; }
1036
const char *text () const
1040
extern const ErrorSeverity sev_none;
1041
extern const ErrorSeverity sev_message;
1042
extern const ErrorSeverity sev_warning;
1043
extern const ErrorSeverity sev_error;
1044
extern const ErrorSeverity sev_fatal;
1049
#endif /* __error_severity_h__ */
1051
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1052
// This file is part of PUMA.
1053
// Copyright (C) 1999-2003 The PUMA developer team.
1055
// This program is free software; you can redistribute it and/or
1056
// modify it under the terms of the GNU General Public License as
1057
// published by the Free Software Foundation; either version 2 of
1058
// the License, or (at your option) any later version.
1060
// This program is distributed in the hope that it will be useful,
1061
// but WITHOUT ANY WARRANTY; without even the implied warranty of
1062
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1063
// GNU General Public License for more details.
1065
// You should have received a copy of the GNU General Public
1066
// License along with this program; if not, write to the Free
1067
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1068
// MA 02111-1307 USA
1070
#ifndef __printable_h__
1071
#define __printable_h__
1074
using namespace std;
1080
#line 1081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1082
class CCExprResolve;
1085
class WinImportHandler;
1089
class WinMemberExplSpec;
1090
class WinTypeKeywords;
1093
class ExtACBuilderCoupling;
1094
class ExtACSyntaxCoupling;
1096
class ExtACKeywords;
1098
class PragmaOnceUnitState;
1103
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1105
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
1106
friend class ::CCExprResolve;
1107
friend class ::CExprResolve;
1108
friend class ::WinIfExists;
1109
friend class ::WinImportHandler;
1110
friend class ::WinMacros;
1111
friend class ::WinAsm;
1112
friend class ::WinDeclSpecs;
1113
friend class ::WinMemberExplSpec;
1114
friend class ::WinTypeKeywords;
1115
friend class ::WinFriend;
1116
friend class ::ExtAC;
1117
friend class ::ExtACBuilderCoupling;
1118
friend class ::ExtACSyntaxCoupling;
1119
friend class ::ExtACTree;
1120
friend class ::ExtACKeywords;
1121
friend class ::ExtGnu;
1122
friend class ::PragmaOnceUnitState;
1123
friend class ::PragmaOnce;
1124
friend class ::CMatchSyntax;
1126
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
1129
virtual ~Printable () {}
1130
virtual void print (ostream &os) const = 0;
1134
inline ostream &operator << (ostream &os, const Printable &object) {
1142
#endif /* __printable_h__ */
1144
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
914
1145
// This file is part of PUMA.
915
1146
// Copyright (C) 1999-2003 The PUMA developer team.
2013
2051
#endif /* __filename_h__ */
2015
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2053
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2016
2054
namespace Puma {
2020
#line 2021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2058
#line 2059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2021
2059
} // closed Puma
2060
class CCExprResolve;
2022
2062
class WinIfExists;
2023
2063
class WinImportHandler;
2024
2064
class WinMacros;
2067
class WinMemberExplSpec;
2068
class WinTypeKeywords;
2028
2071
class ExtACBuilderCoupling;
2029
2072
class ExtACSyntaxCoupling;
2030
2073
class ExtACTree;
2031
2074
class ExtACKeywords;
2034
class WinMemberExplSpec;
2035
class WinTypeKeywords;
2036
2076
class PragmaOnceUnitState;
2037
2077
class PragmaOnce;
2038
class CCExprResolve;
2040
2079
namespace Puma {
2042
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2043
class LocationInfo : public RefCnt {
2044
#line 2045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2081
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2083
#line 2084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2084
friend class ::CCExprResolve;
2085
friend class ::CExprResolve;
2045
2086
friend class ::WinIfExists;
2046
2087
friend class ::WinImportHandler;
2047
2088
friend class ::WinMacros;
2048
friend class ::CMatchSyntax;
2049
friend class ::ExtGnu;
2089
friend class ::WinAsm;
2090
friend class ::WinDeclSpecs;
2091
friend class ::WinMemberExplSpec;
2092
friend class ::WinTypeKeywords;
2093
friend class ::WinFriend;
2050
2094
friend class ::ExtAC;
2051
2095
friend class ::ExtACBuilderCoupling;
2052
2096
friend class ::ExtACSyntaxCoupling;
2053
2097
friend class ::ExtACTree;
2054
2098
friend class ::ExtACKeywords;
2055
friend class ::WinAsm;
2056
friend class ::WinDeclSpecs;
2057
friend class ::WinMemberExplSpec;
2058
friend class ::WinTypeKeywords;
2099
friend class ::ExtGnu;
2059
2100
friend class ::PragmaOnceUnitState;
2060
2101
friend class ::PragmaOnce;
2061
friend class ::CCExprResolve;
2062
friend class ::CExprResolve;
2102
friend class ::CMatchSyntax;
2064
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2104
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2066
2106
Filename _filename;
2070
LocationInfo () : _filename (), _line (0) {}
2071
void setup (Filename f, int l);
2111
Location () : _filename (), _line (0), _column (0) {}
2112
Location (Filename f, int l, int c = 0) { setup (f, l, c); }
2113
void setup (Filename f, int l, int c = 0) {
2072
2118
const Filename &filename () const { return _filename; }
2073
2119
int line () const { return _line; }
2074
bool operator < (const LocationInfo &l) const;
2075
bool operator == (const LocationInfo &l) const;
2081
#endif /* __location_info_h__ */
2083
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2088
#line 2089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2091
class WinImportHandler;
2096
class ExtACBuilderCoupling;
2097
class ExtACSyntaxCoupling;
2099
class ExtACKeywords;
2102
class WinMemberExplSpec;
2103
class WinTypeKeywords;
2104
class PragmaOnceUnitState;
2106
class CCExprResolve;
2110
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2111
class Location : public SmartPtr, public Printable {
2112
#line 2113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2113
friend class ::WinIfExists;
2114
friend class ::WinImportHandler;
2115
friend class ::WinMacros;
2116
friend class ::CMatchSyntax;
2117
friend class ::ExtGnu;
2118
friend class ::ExtAC;
2119
friend class ::ExtACBuilderCoupling;
2120
friend class ::ExtACSyntaxCoupling;
2121
friend class ::ExtACTree;
2122
friend class ::ExtACKeywords;
2123
friend class ::WinAsm;
2124
friend class ::WinDeclSpecs;
2125
friend class ::WinMemberExplSpec;
2126
friend class ::WinTypeKeywords;
2127
friend class ::PragmaOnceUnitState;
2128
friend class ::PragmaOnce;
2129
friend class ::CCExprResolve;
2130
friend class ::CExprResolve;
2132
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2134
LocationInfo *info () const { return (LocationInfo*)data (); }
2138
Location (Filename f, int l) { setup (f, l); }
2139
Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2140
LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2141
void setup (Filename f, int l);
2142
const Filename &filename () const { return info ()->filename (); }
2144
bool operator == (const Location &l) const;
2120
int column () const { return _column; }
2121
bool operator == (const Location &l) const {
2122
return filename () == l.filename () && line () == l.line () &&
2123
column () == l.column ();
2145
2125
bool operator != (const Location &l) const { return ! (*this == l); }
2146
bool operator < (const Location &l) const;
2126
bool operator < (const Location &l) const {
2127
// TODO: does it make sense to compare the filenames? better assert?
2128
if (filename () != l.filename ())
2130
return line () < l.line () && column () < l.column ();
2148
virtual void print (ostream &os) const {
2134
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2150
2135
#ifdef VISUAL_STUDIO
2151
os << filename () << "(" << line () << ")";
2136
os << loc.filename () << "(" << loc.line () << ")";
2153
os << filename () << ":" << line ();
2138
os << loc.filename () << ":" << loc.line ();
2159
2142
} // namespace Puma
2161
2144
#endif /* __location_h__ */
2163
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
2164
// This file is part of PUMA.
2165
// Copyright (C) 1999-2003 The PUMA developer team.
2167
// This program is free software; you can redistribute it and/or
2168
// modify it under the terms of the GNU General Public License as
2169
// published by the Free Software Foundation; either version 2 of
2170
// the License, or (at your option) any later version.
2172
// This program is distributed in the hope that it will be useful,
2173
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2174
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2175
// GNU General Public License for more details.
2177
// You should have received a copy of the GNU General Public
2178
// License along with this program; if not, write to the Free
2179
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2180
// MA 02111-1307 USA
2182
#ifndef __list_element_h__
2183
#define __list_element_h__
2185
// Base class for objects that may be inserted into a List. Lists
2186
// autonomously delete or copy list element. So it's necessary to
2187
// define a destructor and a duplicate method in the derived
2198
#line 2199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2201
class WinImportHandler;
2206
class ExtACBuilderCoupling;
2207
class ExtACSyntaxCoupling;
2209
class ExtACKeywords;
2212
class WinMemberExplSpec;
2213
class WinTypeKeywords;
2214
class PragmaOnceUnitState;
2216
class CCExprResolve;
2220
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
2222
#line 2223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2223
friend class ::WinIfExists;
2224
friend class ::WinImportHandler;
2225
friend class ::WinMacros;
2226
friend class ::CMatchSyntax;
2227
friend class ::ExtGnu;
2228
friend class ::ExtAC;
2229
friend class ::ExtACBuilderCoupling;
2230
friend class ::ExtACSyntaxCoupling;
2231
friend class ::ExtACTree;
2232
friend class ::ExtACKeywords;
2233
friend class ::WinAsm;
2234
friend class ::WinDeclSpecs;
2235
friend class ::WinMemberExplSpec;
2236
friend class ::WinTypeKeywords;
2237
friend class ::PragmaOnceUnitState;
2238
friend class ::PragmaOnce;
2239
friend class ::CCExprResolve;
2240
friend class ::CExprResolve;
2242
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
2246
List *_belonging_to;
2251
ListElement () : _belonging_to ((List*)0) {}
2252
virtual ~ListElement () { assert (! _belonging_to); };
2254
virtual ListElement *duplicate () = 0;
2255
List *belonging_to () const { return _belonging_to; }
2261
#endif /* __list_element_h__ */
2263
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2266
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2271
#line 2272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2274
class WinImportHandler;
2279
class ExtACBuilderCoupling;
2280
class ExtACSyntaxCoupling;
2282
class ExtACKeywords;
2285
class WinMemberExplSpec;
2286
class WinTypeKeywords;
2287
class PragmaOnceUnitState;
2289
class CCExprResolve;
2293
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2294
class Token : public ListElement {
2295
#line 2296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2296
friend class ::WinIfExists;
2297
friend class ::WinImportHandler;
2298
friend class ::WinMacros;
2299
friend class ::CMatchSyntax;
2300
friend class ::ExtGnu;
2301
friend class ::ExtAC;
2302
friend class ::ExtACBuilderCoupling;
2303
friend class ::ExtACSyntaxCoupling;
2304
friend class ::ExtACTree;
2305
friend class ::ExtACKeywords;
2306
friend class ::WinAsm;
2307
friend class ::WinDeclSpecs;
2308
friend class ::WinMemberExplSpec;
2309
friend class ::WinTypeKeywords;
2310
friend class ::PragmaOnceUnitState;
2311
friend class ::PragmaOnce;
2312
friend class ::CCExprResolve;
2313
friend class ::CExprResolve;
2315
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
2317
int _type, _real_type;
2320
LanguageID _language;
2323
Array<int> *_cont_lines;
2326
TK_COMMENT = (0x01 << 0),
2327
TK_CORE = (0x01 << 1),
2328
TK_MACRO_CALL = (0x01 << 2),
2329
TK_MACRO_GENERATED = (0x01 << 3)
2331
unsigned short _flags;
2335
ID_END_OF_FILE = -1,
2341
static LanguageID comment_id, pre_id, dir_id, cpp_id, white_id,
2342
wildcard_id, keyword_id, open_id, macro_op_id,
2343
identifier_id, comma_id, close_id;
2346
Token (int = 0, LanguageID lang = LanguageID(0), const char * = "");
2347
Token (const Token &);
2350
// virtual void print (ostream &) const;
2351
void print (ostream &) const;
2352
virtual ListElement *duplicate () { return new Token (*this); }
2354
void reset (int = 0, const char * = 0, LanguageID = LanguageID(0));
2356
void location (const Location &loc) { _location = loc; }
2357
void cont_lines (Array<int> *cl) { _cont_lines = cl; }
2358
int line_breaks () const;
2359
void macro_generated () { _flags |= TK_MACRO_GENERATED; }
2360
void macro_call () { _flags |= TK_MACRO_CALL; }
2362
const DString &text () const { return _text; }
2363
char *get_static_text () const;
2364
int type () const { return _type; }
2365
const Location &location () const { return _location; }
2367
// functions to query token flags
2368
bool is_macro_generated () const { return (_flags & TK_MACRO_GENERATED) != 0; }
2369
bool is_macro_call () const { return (_flags & TK_MACRO_CALL) != 0; }
2370
bool is_core () const;
2371
bool is_identifier () const; // subset of core
2372
bool is_keyword () const; // subset of identifier
2373
bool is_wildcard () const; // subset of core
2374
bool is_preprocessor () const; // a preprocessor directive (include, etc.)
2375
bool is_directive () const; // a compiler directive (pragma, line, etc.)
2376
bool is_whitespace () const;
2377
bool is_comment () const;
2378
bool is_macro_op () const;
2379
bool is_open () const; // subset of core
2380
bool is_comma () const; // subset of core
2381
bool is_close () const; // subset of core
2383
void *operator new (size_t);
2384
void operator delete (void *);
2387
int get_general_type () const;
2388
LanguageID language () const { return _language; }
2389
void is_comment_internal ();
2390
void is_core_internal ();
2394
inline void Token::is_core_internal () {
2395
if (_language == cpp_id || _language == wildcard_id ||
2396
_language == open_id || _language == comma_id ||
2397
_language == close_id || is_identifier ())
2400
inline void Token::is_comment_internal () {
2401
if (_language == comment_id)
2402
_flags |= TK_COMMENT;
2405
inline bool Token::is_core () const
2406
{ return (_flags & TK_CORE) != 0; }
2407
inline bool Token::is_identifier () const
2408
{ return _language == identifier_id || is_keyword ();}
2409
inline bool Token::is_keyword () const
2410
{ return _language == keyword_id; }
2411
inline bool Token::is_wildcard () const
2412
{ return _language == wildcard_id; }
2413
inline bool Token::is_preprocessor () const
2414
{ return _language == pre_id; }
2415
inline bool Token::is_directive () const
2416
{ return _language == dir_id; }
2417
inline bool Token::is_whitespace () const
2418
{ return _language == white_id; }
2419
inline bool Token::is_comment () const
2420
{ return (_flags & TK_COMMENT) != 0; }
2421
inline bool Token::is_macro_op () const
2422
{ return _language == macro_op_id; }
2423
inline bool Token::is_open () const
2424
{ return _language == open_id; }
2425
inline bool Token::is_comma () const
2426
{ return _language == comma_id; }
2427
inline bool Token::is_close () const
2428
{ return _language == close_id; }
2430
inline ostream &operator << (ostream &os, const Token &object) {
2437
#endif /* __Token_h__ */
2439
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2440
using namespace Puma;
2444
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2449
#line 2450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2450
class WinImportHandler;
2455
class ExtACBuilderCoupling;
2456
class ExtACSyntaxCoupling;
2458
class ExtACKeywords;
2461
class WinMemberExplSpec;
2462
class WinTypeKeywords;
2463
class PragmaOnceUnitState;
2465
class CCExprResolve;
2468
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2470
#line 2471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2473
static WinIfExists *aspectof () {
2474
static WinIfExists __instance;
2477
static WinIfExists *aspectOf () {
2482
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2484
#line 2485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2485
friend class ::WinImportHandler;
2486
friend class ::WinMacros;
2487
friend class ::CMatchSyntax;
2488
friend class ::ExtGnu;
2489
friend class ::ExtAC;
2490
friend class ::ExtACBuilderCoupling;
2491
friend class ::ExtACSyntaxCoupling;
2492
friend class ::ExtACTree;
2493
friend class ::ExtACKeywords;
2494
friend class ::WinAsm;
2495
friend class ::WinDeclSpecs;
2496
friend class ::WinMemberExplSpec;
2497
friend class ::WinTypeKeywords;
2498
friend class ::PragmaOnceUnitState;
2499
friend class ::PragmaOnce;
2500
friend class ::CCExprResolve;
2501
friend class ::CExprResolve;
2503
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2505
/********************************************************/
2506
/* Win __if_exists and __if_not_exists */
2507
/********************************************************/
2509
// pointcut definitions
2511
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2514
// structural extensions
2516
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2519
// preprocess __if_exists and __if_not_exists statements
2521
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2523
public: template<class JoinPoint> void __a0_around
2524
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2526
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2528
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2530
#line 2531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2532
JoinPoint *&thisJoinPoint = tjp;
2534
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2536
#line 2537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2538
typedef typename JoinPoint::That __JP_That;
2539
typedef typename JoinPoint::Target __JP_Target;
2540
typedef typename JoinPoint::Result __JP_Result;
2542
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2547
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2550
preparser = tjp->that ();
2551
tjp->proceed (); // get the next token
2552
token = *tjp->result ();
2554
type = token->type ();
2555
// __if_exists (...) { ... }
2556
if (type == TOK_IF_EXISTS) {
2557
preparser->skip_up_to (TOK_CLOSE_CURLY);
2558
*(Token**)thisJoinPoint->result () = preparser->next ();
2560
// __if_not_exists (...) { ... }
2561
} else if (type == TOK_IF_NOT_EXISTS) {
2562
preparser->skip_up_to (TOK_OPEN_CURLY);
2563
preparser->_depth.push (1);
2564
*(Token**)thisJoinPoint->result () = preparser->next ();
2567
// skip closing `}' of __if_not_exists
2568
if (preparser->_depth.length ()) {
2569
if (type == TOK_OPEN_CURLY)
2570
preparser->_depth.top () = preparser->_depth.top () + 1;
2571
else if (type == TOK_CLOSE_CURLY) {
2572
preparser->_depth.top () = preparser->_depth.top () - 1;
2573
if (preparser->_depth.top () == 0) {
2574
preparser->_depth.pop ();
2575
*(Token**)thisJoinPoint->result () = preparser->next ();
2582
#line 2583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2586
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2592
#line 2593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2595
template <class JoinPoint>
2596
inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
2597
::WinIfExists::aspectof()->__a0_around (tjp);
2601
#line 88 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2606
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2609
// skip __if_exists resp. __if_not_exists statement
2611
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
2615
#endif /* __WinIfExists__ */
2617
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
2618
// This file is part of PUMA.
2619
// Copyright (C) 1999-2003 The PUMA developer team.
2621
// This program is free software; you can redistribute it and/or
2622
// modify it under the terms of the GNU General Public License as
2623
// published by the Free Software Foundation; either version 2 of
2624
// the License, or (at your option) any later version.
2626
// This program is distributed in the hope that it will be useful,
2627
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2628
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2629
// GNU General Public License for more details.
2631
// You should have received a copy of the GNU General Public
2632
// License along with this program; if not, write to the Free
2633
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2634
// MA 02111-1307 USA
2636
#ifndef __WinImportHandler__
2637
#define __WinImportHandler__
2639
/********************************************************/
2640
/* Win #import directive support */
2641
/********************************************************/
2644
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
2645
// This file is part of PUMA.
2646
// Copyright (C) 1999-2003 The PUMA developer team.
2648
// This program is free software; you can redistribute it and/or
2649
// modify it under the terms of the GNU General Public License as
2650
// published by the Free Software Foundation; either version 2 of
2651
// the License, or (at your option) any later version.
2653
// This program is distributed in the hope that it will be useful,
2654
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2655
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2656
// GNU General Public License for more details.
2658
// You should have received a copy of the GNU General Public
2659
// License along with this program; if not, write to the Free
2660
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2661
// MA 02111-1307 USA
2663
#ifndef __Config_h__
2664
#define __Config_h__
2666
// Class Config provides evaluation of configuration
2667
// information from file or command line.
2670
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
2671
// This file is part of PUMA.
2672
// Copyright (C) 1999-2003 The PUMA developer team.
2674
// This program is free software; you can redistribute it and/or
2675
// modify it under the terms of the GNU General Public License as
2676
// published by the Free Software Foundation; either version 2 of
2677
// the License, or (at your option) any later version.
2679
// This program is distributed in the hope that it will be useful,
2680
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2681
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2682
// GNU General Public License for more details.
2684
// You should have received a copy of the GNU General Public
2685
// License along with this program; if not, write to the Free
2686
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2687
// MA 02111-1307 USA
2696
#line 2697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2699
class WinImportHandler;
2704
class ExtACBuilderCoupling;
2705
class ExtACSyntaxCoupling;
2707
class ExtACKeywords;
2710
class WinMemberExplSpec;
2711
class WinTypeKeywords;
2712
class PragmaOnceUnitState;
2714
class CCExprResolve;
2718
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
2720
#line 2721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2721
friend class ::WinIfExists;
2722
friend class ::WinImportHandler;
2723
friend class ::WinMacros;
2724
friend class ::CMatchSyntax;
2725
friend class ::ExtGnu;
2726
friend class ::ExtAC;
2727
friend class ::ExtACBuilderCoupling;
2728
friend class ::ExtACSyntaxCoupling;
2729
friend class ::ExtACTree;
2730
friend class ::ExtACKeywords;
2731
friend class ::WinAsm;
2732
friend class ::WinDeclSpecs;
2733
friend class ::WinMemberExplSpec;
2734
friend class ::WinTypeKeywords;
2735
friend class ::PragmaOnceUnitState;
2736
friend class ::PragmaOnce;
2737
friend class ::CCExprResolve;
2738
friend class ::CExprResolve;
2740
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
2746
SKIP_FCT_BODY = 0x1,
2750
GNU_NESTED_FCT = 0x4,
2751
GNU_CONDITION_SCOPE = 0x8,
2752
GNU_PARAM_DECL = 0x10,
2753
GNU_FCT_DECL = 0x20,
2754
GNU_PARAM_SCOPE = 0x40,
2755
GNU_DEFAULT_ARGS = 0x80,
2756
GNU_EXTENDED_ASM = 0x100,
2757
GNU_EXTENDED_EXPR = 0x200,
2758
GNU_LONG_LONG = 0x400,
2759
GNU_NAME_SCOPE = 0x800,
2760
GNU_IMPLICIT_INT = 0x1000,
2761
GNU_FCT_ATTRIBUTE = 0x2000,
2762
GNU_IF_THEN_EXPR = 0x4000
2770
Flags (const Flags &);
2771
Flags &operator =(const Flags &);
2774
Flags &operator +=(Flag);
2775
Flags &operator -=(Flag);
2778
bool operator ==(Flag) const;
2779
bool operator !=(Flag) const;
2782
inline Flags::Flags () : _Flags (NONE)
2784
inline Flags::Flags (const Flags &f)
2785
{ _Flags = f._Flags; }
2786
inline Flags &Flags::operator =(const Flags &f)
2787
{ _Flags = f._Flags; return *(Flags*)this; }
2789
inline Flags &Flags::operator +=(Flags::Flag f)
2790
{ _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
2791
inline Flags &Flags::operator -=(Flags::Flag f)
2792
{ _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
2794
inline bool Flags::operator ==(Flags::Flag f) const
2795
{ return _Flags & f; }
2796
inline bool Flags::operator !=(Flags::Flag f) const
2797
{ return ! (_Flags & f); }
2802
#endif /* __Flags_h__ */
2804
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2805
// This file is part of PUMA.
2806
// Copyright (C) 1999-2003 The PUMA developer team.
2808
// This program is free software; you can redistribute it and/or
2809
// modify it under the terms of the GNU General Public License as
2810
// published by the Free Software Foundation; either version 2 of
2811
// the License, or (at your option) any later version.
2813
// This program is distributed in the hope that it will be useful,
2814
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2815
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2816
// GNU General Public License for more details.
2818
// You should have received a copy of the GNU General Public
2819
// License along with this program; if not, write to the Free
2820
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2821
// MA 02111-1307 USA
2823
#ifndef __ConfOption_h__
2824
#define __ConfOption_h__
2827
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2834
#line 2835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2837
class WinImportHandler;
2842
class ExtACBuilderCoupling;
2843
class ExtACSyntaxCoupling;
2845
class ExtACKeywords;
2848
class WinMemberExplSpec;
2849
class WinTypeKeywords;
2850
class PragmaOnceUnitState;
2852
class CCExprResolve;
2856
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2858
#line 2859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2859
friend class ::WinIfExists;
2860
friend class ::WinImportHandler;
2861
friend class ::WinMacros;
2862
friend class ::CMatchSyntax;
2863
friend class ::ExtGnu;
2864
friend class ::ExtAC;
2865
friend class ::ExtACBuilderCoupling;
2866
friend class ::ExtACSyntaxCoupling;
2867
friend class ::ExtACTree;
2868
friend class ::ExtACKeywords;
2869
friend class ::WinAsm;
2870
friend class ::WinDeclSpecs;
2871
friend class ::WinMemberExplSpec;
2872
friend class ::WinTypeKeywords;
2873
friend class ::PragmaOnceUnitState;
2874
friend class ::PragmaOnce;
2875
friend class ::CCExprResolve;
2876
friend class ::CExprResolve;
2878
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
2881
Array<const char *> _args;
2884
ConfOption (const char *);
2885
ConfOption (const char *, const char *);
2886
ConfOption (const char *, const char *, const char *);
2889
const char *Name () const;
2890
unsigned Arguments () const;
2891
const char *Argument (unsigned) const;
2893
void addArgument (const char *);
2896
inline ConfOption::ConfOption (const char *n) : _args (1, 1)
2897
{ _name = StrCol::dup (n); }
2898
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1)
2899
{ _name = StrCol::dup (n); addArgument (a1); }
2900
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1)
2901
{ _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
2903
inline ConfOption::~ConfOption ()
2905
for (unsigned i = 0; i < Arguments (); i++)
2906
delete[] Argument (i);
2909
inline const char *ConfOption::Name () const
2911
inline unsigned ConfOption::Arguments () const
2912
{ return _args.length (); }
2913
inline const char *ConfOption::Argument (unsigned i) const
2914
{ return _args.lookup (i); }
2916
inline void ConfOption::addArgument (const char *a)
2917
{ if (a) _args.append (StrCol::dup (a)); }
2922
#endif /* __ConfOption_h__ */
2924
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
2925
// This file is part of PUMA.
2926
// Copyright (C) 1999-2003 The PUMA developer team.
2928
// This program is free software; you can redistribute it and/or
2929
// modify it under the terms of the GNU General Public License as
2930
// published by the Free Software Foundation; either version 2 of
2931
// the License, or (at your option) any later version.
2933
// This program is distributed in the hope that it will be useful,
2934
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2935
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2936
// GNU General Public License for more details.
2938
// You should have received a copy of the GNU General Public
2939
// License along with this program; if not, write to the Free
2940
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2941
// MA 02111-1307 USA
2943
#ifndef __error_stream_h__
2944
#define __error_stream_h__
2946
// An ErrorStream is a special ErrorSink that prints out an error message
2947
// as soon as it complete. It also stores the maximum error severity.
2948
// The ErrorStream can be reset to it's initial state.
2952
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2953
// This file is part of PUMA.
2954
// Copyright (C) 1999-2003 The PUMA developer team.
2956
// This program is free software; you can redistribute it and/or
2957
// modify it under the terms of the GNU General Public License as
2958
// published by the Free Software Foundation; either version 2 of
2959
// the License, or (at your option) any later version.
2961
// This program is distributed in the hope that it will be useful,
2962
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2963
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2964
// GNU General Public License for more details.
2966
// You should have received a copy of the GNU General Public
2967
// License along with this program; if not, write to the Free
2968
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2969
// MA 02111-1307 USA
2971
#ifndef __error_sink_h__
2972
#define __error_sink_h__
2974
// This is an interface for classes that may be used to consume error
2975
// messages during a process where many errors can occur like parsing
2977
// The error information is handed over to the ErrorSink in stream-like
2978
// style. Different severities of errors are predefined and can be used
2979
// to classify error information that follows. Also a location can be
2980
// handed over to the ErrorSink to specify where the error was found
2981
// (filename, line, etc.). The error information itself can be of any
2982
// standard data type or anything that is "Printable".
2983
// Specializations of this class could either build and print error
2984
// messages or collect them for a later processing.
2987
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2988
// This file is part of PUMA.
2989
// Copyright (C) 1999-2003 The PUMA developer team.
2991
// This program is free software; you can redistribute it and/or
2992
// modify it under the terms of the GNU General Public License as
2993
// published by the Free Software Foundation; either version 2 of
2994
// the License, or (at your option) any later version.
2996
// This program is distributed in the hope that it will be useful,
2997
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2998
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2999
// GNU General Public License for more details.
3001
// You should have received a copy of the GNU General Public
3002
// License along with this program; if not, write to the Free
3003
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3004
// MA 02111-1307 USA
3006
#ifndef __error_severity_h__
3007
#define __error_severity_h__
3009
// Severity of errors: represented by a short integer and a text
3015
#line 3016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3018
class WinImportHandler;
3023
class ExtACBuilderCoupling;
3024
class ExtACSyntaxCoupling;
3026
class ExtACKeywords;
3029
class WinMemberExplSpec;
3030
class WinTypeKeywords;
3031
class PragmaOnceUnitState;
3033
class CCExprResolve;
3037
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3038
class ErrorSeverity {
3039
#line 3040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3040
friend class ::WinIfExists;
3041
friend class ::WinImportHandler;
3042
friend class ::WinMacros;
3043
friend class ::CMatchSyntax;
3044
friend class ::ExtGnu;
3045
friend class ::ExtAC;
3046
friend class ::ExtACBuilderCoupling;
3047
friend class ::ExtACSyntaxCoupling;
3048
friend class ::ExtACTree;
3049
friend class ::ExtACKeywords;
3050
friend class ::WinAsm;
3051
friend class ::WinDeclSpecs;
3052
friend class ::WinMemberExplSpec;
3053
friend class ::WinTypeKeywords;
3054
friend class ::PragmaOnceUnitState;
3055
friend class ::PragmaOnce;
3056
friend class ::CCExprResolve;
3057
friend class ::CExprResolve;
3059
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
3061
unsigned short _severity;
3065
ErrorSeverity (unsigned short s = 0, const char* t = (const char*)0) :
3066
_severity (s), _text (t) {}
3067
ErrorSeverity (const ErrorSeverity &s) :
3068
_severity (s._severity), _text (s._text) {}
3069
ErrorSeverity &operator =(const ErrorSeverity &s)
3070
{ _severity = s._severity; _text = s._text; return *this; }
3072
int operator < (const ErrorSeverity &s) const
3073
{ return _severity < s._severity; }
3074
int operator > (const ErrorSeverity &s) const
3075
{ return _severity > s._severity; }
3076
int operator <= (const ErrorSeverity &s) const
3077
{ return _severity < s._severity || _severity == s._severity; }
3078
int operator >= (const ErrorSeverity &s) const
3079
{ return _severity > s._severity || _severity == s._severity; }
3080
int operator == (const ErrorSeverity &s) const
3081
{ return _severity == s._severity; }
3082
int operator != (const ErrorSeverity &s) const
3083
{ return _severity != s._severity; }
3084
const char *text () const
3088
extern const ErrorSeverity sev_none;
3089
extern const ErrorSeverity sev_message;
3090
extern const ErrorSeverity sev_warning;
3091
extern const ErrorSeverity sev_error;
3092
extern const ErrorSeverity sev_fatal;
3097
#endif /* __error_severity_h__ */
3099
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3104
#line 3105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3107
class WinImportHandler;
3112
class ExtACBuilderCoupling;
3113
class ExtACSyntaxCoupling;
3115
class ExtACKeywords;
3118
class WinMemberExplSpec;
3119
class WinTypeKeywords;
3120
class PragmaOnceUnitState;
3122
class CCExprResolve;
3126
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2146
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2151
#line 2152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2153
class CCExprResolve;
2156
class WinImportHandler;
2160
class WinMemberExplSpec;
2161
class WinTypeKeywords;
2164
class ExtACBuilderCoupling;
2165
class ExtACSyntaxCoupling;
2167
class ExtACKeywords;
2169
class PragmaOnceUnitState;
2174
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3127
2175
class ErrorSink {
3128
#line 3129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2176
#line 2177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2177
friend class ::CCExprResolve;
2178
friend class ::CExprResolve;
3129
2179
friend class ::WinIfExists;
3130
2180
friend class ::WinImportHandler;
3131
2181
friend class ::WinMacros;
3132
friend class ::CMatchSyntax;
3133
friend class ::ExtGnu;
2182
friend class ::WinAsm;
2183
friend class ::WinDeclSpecs;
2184
friend class ::WinMemberExplSpec;
2185
friend class ::WinTypeKeywords;
2186
friend class ::WinFriend;
3134
2187
friend class ::ExtAC;
3135
2188
friend class ::ExtACBuilderCoupling;
3136
2189
friend class ::ExtACSyntaxCoupling;
3137
2190
friend class ::ExtACTree;
3138
2191
friend class ::ExtACKeywords;
3139
friend class ::WinAsm;
3140
friend class ::WinDeclSpecs;
3141
friend class ::WinMemberExplSpec;
3142
friend class ::WinTypeKeywords;
2192
friend class ::ExtGnu;
3143
2193
friend class ::PragmaOnceUnitState;
3144
2194
friend class ::PragmaOnce;
3145
friend class ::CCExprResolve;
3146
friend class ::CExprResolve;
2195
friend class ::CMatchSyntax;
3148
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2197
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3151
2200
virtual ~ErrorSink () {}
3379
2471
#endif /* __SimpleParser_h__ */
3381
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
2473
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3382
2474
using namespace std;
3384
2476
namespace Puma {
2479
/** \brief The %Options %Parser searches command line parameters for options and
2480
* handles their option arguments, if applicable.
3388
#line 3389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2483
#line 2484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3389
2484
} // closed Puma
2485
class CCExprResolve;
3390
2487
class WinIfExists;
3391
2488
class WinImportHandler;
3392
2489
class WinMacros;
2492
class WinMemberExplSpec;
2493
class WinTypeKeywords;
3396
2496
class ExtACBuilderCoupling;
3397
2497
class ExtACSyntaxCoupling;
3398
2498
class ExtACTree;
3399
2499
class ExtACKeywords;
3402
class WinMemberExplSpec;
3403
class WinTypeKeywords;
3404
2501
class PragmaOnceUnitState;
3405
2502
class PragmaOnce;
3406
class CCExprResolve;
3408
2504
namespace Puma {
3410
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
2506
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
3411
2507
class OptsParser : public SimpleParser {
3412
#line 3413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2508
#line 2509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2509
friend class ::CCExprResolve;
2510
friend class ::CExprResolve;
3413
2511
friend class ::WinIfExists;
3414
2512
friend class ::WinImportHandler;
3415
2513
friend class ::WinMacros;
3416
friend class ::CMatchSyntax;
3417
friend class ::ExtGnu;
2514
friend class ::WinAsm;
2515
friend class ::WinDeclSpecs;
2516
friend class ::WinMemberExplSpec;
2517
friend class ::WinTypeKeywords;
2518
friend class ::WinFriend;
3418
2519
friend class ::ExtAC;
3419
2520
friend class ::ExtACBuilderCoupling;
3420
2521
friend class ::ExtACSyntaxCoupling;
3421
2522
friend class ::ExtACTree;
3422
2523
friend class ::ExtACKeywords;
3423
friend class ::WinAsm;
3424
friend class ::WinDeclSpecs;
3425
friend class ::WinMemberExplSpec;
3426
friend class ::WinTypeKeywords;
2524
friend class ::ExtGnu;
3427
2525
friend class ::PragmaOnceUnitState;
3428
2526
friend class ::PragmaOnce;
3429
friend class ::CCExprResolve;
3430
friend class ::CExprResolve;
3432
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
2527
friend class ::CMatchSyntax;
2529
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
2533
/** \brief Vector holding the commandline parameters.
2535
* This vector is filled in the constructor
3434
2537
vector<string> m_argv;
2539
/** \brief Position of current parameter analyzed by the
3435
2542
unsigned int m_curarg;
2544
/** \brief The increment added to m_curarg used to get to the next
2545
* entry of m_argv which shall be analysed.
3436
2547
unsigned int m_tonext;
2549
/** \brief %Option number of currently processed element of m_argv
2553
/** \brief Name of current option
2557
/** \brief Value of current option argument
3444
enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
3446
enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
2565
* Return codes for OptsParser::getOption() and OptsParser::getArgument()
2568
NOARG =-4, /**< %Option has no argument */
2569
ERR = -3, /**< Error when parsing option */
2570
NOOPTION = -2, /**< Command line parameter is not an option */
2571
UNKNOWN = -1, /**< Parameter is an unknown option */
2572
FINISH = 0 /**< All options are handled */
2576
* Type of argument associated to an option
2579
AT_NONE = 0, /**< %Option receives no argument */
2580
AT_MANDATORY = 1, /**< %Option requires an argument */
2581
AT_OPTIONAL = 2 /**< %Option has optionally an argument */
2585
* Type for specifying an array of options recognized by the %Option %Parser.
2586
* An array of this type has to be passed to the constructor OptsParser::OptsParser()
3448
2588
struct Option {
3449
#line 3450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2589
#line 2590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
2590
friend class ::CCExprResolve;
2591
friend class ::CExprResolve;
3450
2592
friend class ::WinIfExists;
3451
2593
friend class ::WinImportHandler;
3452
2594
friend class ::WinMacros;
3453
friend class ::CMatchSyntax;
3454
friend class ::ExtGnu;
2595
friend class ::WinAsm;
2596
friend class ::WinDeclSpecs;
2597
friend class ::WinMemberExplSpec;
2598
friend class ::WinTypeKeywords;
2599
friend class ::WinFriend;
3455
2600
friend class ::ExtAC;
3456
2601
friend class ::ExtACBuilderCoupling;
3457
2602
friend class ::ExtACSyntaxCoupling;
3458
2603
friend class ::ExtACTree;
3459
2604
friend class ::ExtACKeywords;
3460
friend class ::WinAsm;
3461
friend class ::WinDeclSpecs;
3462
friend class ::WinMemberExplSpec;
3463
friend class ::WinTypeKeywords;
2605
friend class ::ExtGnu;
3464
2606
friend class ::PragmaOnceUnitState;
3465
2607
friend class ::PragmaOnce;
3466
friend class ::CCExprResolve;
3467
friend class ::CExprResolve;
3469
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
2608
friend class ::CMatchSyntax;
2610
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
2612
int number; /**< Number associated with this option */
2613
const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
2614
const char *longName; /**< Long namen of this option */
2615
const char *desc; /**< Description of this option **/
2616
ArgType argType; /**< Type of argument for this option */
2620
/** Pointer to array of available options. This value is set to the value of the
2621
* parameter passed to the constructor OptsParser::OptsParser()
3479
2623
const Option *m_opts;
3482
OptsParser (int, char **, const Option *);
3483
OptsParser (const string &, const Option *);
2626
/** \brief Constructor of OptsParser
2628
* \param argc Number of parameters to be analyzed
2629
* \param argv Parameters to be analyzed
2630
* \param opts Pointer to array of options which shall be
2631
* recognized by the options parser
2634
OptsParser (int argc, char **argv, const Option *opts);
2636
/** \brief Constructor of OptsParser
2638
* \param line Reference to string with parameters to analyse
2639
* The paramaters are extracted from the string by splitting it up
2645
* \param opts Pointer to array of options which shall be
2646
* recognized by the options parser
2648
OptsParser (const string &line, const Option *);
3485
int getCurrentArgNum () const;
3486
int getNextArgNum () const;
2651
/** Get next parameter without modification.
2652
* No option parsing is done
2654
* \return OptsParser::NOOPTION or OptsParser::FINISH
2656
int getRawOption ();
2658
/** \brief Get next option
2660
* This function processes the next parameter passed to the constructor
2661
* OptsParser::OptsParser().
2662
* That is, search for options and eventually process
2663
* option and option arguement.
2665
* \return Number of option recognized by the options parser or
2666
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
2667
* OptsParser::UNKNOWN or OptsParser::FINISH.
3487
2670
int getOption ();
2672
/** \brief Get result of last processed parameter
2674
* The number returned by this function is identical to the number
2675
* returned by the last call of OptsParser::getOption
2677
* \return Number of option recognized by the options parser or
2678
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
2679
* OptsParser::UNKNOWN or OptsParser::FINISH.
3488
2682
int getResult () const;
2684
/** \brief Get option argument of last processed parameter
2686
* This function returns the argument of the option processed during
2687
* OptsParser::getOption. If the option does not provide any argument
2688
* the string will be empty.
2690
* If OptsParser::getOption or respectively OptsParser::getResult returns with
2691
* OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter,
2692
* which is no option, of course.
2694
* \return Argument of last processed parameter
3490
2696
const string &getArgument () const;
2698
/** \brief Get option name of last processed parameter
2700
* If the last processed parameter did not contain an option the string
2701
* returned by this function is empty.
2703
* \return Name of last processed parameter
3491
2706
const string &getOptionName () const;
2708
/** \brief Get position of current argument
2710
* \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
2713
int getCurrentArgNum () const;
2715
/** \brief Get position of next argument
2717
* \return Position of next parameter which will be processed by the %Options %Parser
2720
int getNextArgNum () const;
3493
bool revokeArgument();
3496
int getShortOption (const string &);
3497
int getLongOption (const string &);
3498
bool processOption (const string &, unsigned int,ArgType argtype);
2723
/** Search for an option in m_argv at position m_curarg
2725
* \param arg Currently processed parameter
2727
const Option* findOption(const string &arg, bool isLong);
2729
/** Process an option found by OptsParser::findOption().
2731
bool processOption (const string &arg, const Option* curOpt, bool isLong);
3665
2901
#endif /* __Config_h__ */
3667
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3668
using namespace Puma;
3672
#line 3673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3678
class ExtACBuilderCoupling;
3679
class ExtACSyntaxCoupling;
3681
class ExtACKeywords;
3684
class WinMemberExplSpec;
3685
class WinTypeKeywords;
3686
class PragmaOnceUnitState;
3688
class CCExprResolve;
3691
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3692
class WinImportHandler {
3693
#line 3694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3696
static WinImportHandler *aspectof () {
3697
static WinImportHandler __instance;
3700
static WinImportHandler *aspectOf () {
3705
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3707
#line 3708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3708
friend class ::WinIfExists;
3709
friend class ::WinMacros;
3710
friend class ::CMatchSyntax;
3711
friend class ::ExtGnu;
3712
friend class ::ExtAC;
3713
friend class ::ExtACBuilderCoupling;
3714
friend class ::ExtACSyntaxCoupling;
3715
friend class ::ExtACTree;
3716
friend class ::ExtACKeywords;
3717
friend class ::WinAsm;
3718
friend class ::WinDeclSpecs;
3719
friend class ::WinMemberExplSpec;
3720
friend class ::WinTypeKeywords;
3721
friend class ::PragmaOnceUnitState;
3722
friend class ::PragmaOnce;
3723
friend class ::CCExprResolve;
3724
friend class ::CExprResolve;
3726
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3728
/********************************************************/
3729
/* Win #import directive */
3730
/********************************************************/
3734
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3737
// add access method for _importHandler data member
3739
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3742
// handle --import-handler option
3744
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3746
public: template<class JoinPoint> void __a0_before
3747
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3749
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3750
(JoinPoint *tjp, const Config &config, bool process_includes)
3751
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3753
#line 3754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3755
JoinPoint *&thisJoinPoint = tjp;
3757
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3759
#line 3760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3761
typedef typename JoinPoint::That __JP_That;
3762
typedef typename JoinPoint::Target __JP_Target;
3763
typedef typename JoinPoint::Result __JP_Result;
3765
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3767
const ConfOption *opt;
3770
if (process_includes) {
3771
opt = config.Option ("--import-handler");
3772
if (opt && opt->Arguments ()) {
3773
// delete old import handler
3774
if (thisJoinPoint->that ()->_importHandler)
3775
delete[] thisJoinPoint->that ()->_importHandler;
3777
// get new import handler
3778
tmp = new char[strlen (opt->Argument (0))+1];
3779
strcpy (tmp, opt->Argument (0));
3780
thisJoinPoint->that ()->_importHandler = tmp;
3784
#line 3785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3788
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3792
WinImportHandler () {}
3794
#line 3795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3797
template <class JoinPoint, class Binding>
3798
inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
3799
typedef typename Binding::template Arg<0> Arg0;
3800
typedef typename Binding::template Arg<1> Arg1;
3801
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
3805
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
3809
#endif /* __WinImportHandler__ */
3811
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
3812
// This file is part of PUMA.
3813
// Copyright (C) 1999-2003 The PUMA developer team.
3815
// This program is free software; you can redistribute it and/or
3816
// modify it under the terms of the GNU General Public License as
3817
// published by the Free Software Foundation; either version 2 of
3818
// the License, or (at your option) any later version.
3820
// This program is distributed in the hope that it will be useful,
3821
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3822
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3823
// GNU General Public License for more details.
3825
// You should have received a copy of the GNU General Public
3826
// License along with this program; if not, write to the Free
3827
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3828
// MA 02111-1307 USA
3830
#ifndef __PragmaOnce__
3831
#define __PragmaOnce__
3833
/********************************************************/
3834
/* Win #pragma once support aspect */
3835
/********************************************************/
3838
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
3843
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
3844
// This file is part of PUMA.
3845
// Copyright (C) 1999-2003 The PUMA developer team.
3847
// This program is free software; you can redistribute it and/or
3848
// modify it under the terms of the GNU General Public License as
3849
// published by the Free Software Foundation; either version 2 of
3850
// the License, or (at your option) any later version.
3852
// This program is distributed in the hope that it will be useful,
3853
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3854
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3855
// GNU General Public License for more details.
3857
// You should have received a copy of the GNU General Public
3858
// License along with this program; if not, write to the Free
3859
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3860
// MA 02111-1307 USA
3866
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3867
// This file is part of PUMA.
3868
// Copyright (C) 1999-2003 The PUMA developer team.
3870
// This program is free software; you can redistribute it and/or
3871
// modify it under the terms of the GNU General Public License as
3872
// published by the Free Software Foundation; either version 2 of
3873
// the License, or (at your option) any later version.
3875
// This program is distributed in the hope that it will be useful,
3876
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3877
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3878
// GNU General Public License for more details.
3880
// You should have received a copy of the GNU General Public
3881
// License along with this program; if not, write to the Free
3882
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3883
// MA 02111-1307 USA
3889
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3894
#line 3895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3897
class WinImportHandler;
3902
class ExtACBuilderCoupling;
3903
class ExtACSyntaxCoupling;
3905
class ExtACKeywords;
3908
class WinMemberExplSpec;
3909
class WinTypeKeywords;
3910
class PragmaOnceUnitState;
3912
class CCExprResolve;
3916
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3918
#line 3919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3919
friend class ::WinIfExists;
3920
friend class ::WinImportHandler;
3921
friend class ::WinMacros;
3922
friend class ::CMatchSyntax;
3923
friend class ::ExtGnu;
3924
friend class ::ExtAC;
3925
friend class ::ExtACBuilderCoupling;
3926
friend class ::ExtACSyntaxCoupling;
3927
friend class ::ExtACTree;
3928
friend class ::ExtACKeywords;
3929
friend class ::WinAsm;
3930
friend class ::WinDeclSpecs;
3931
friend class ::WinMemberExplSpec;
3932
friend class ::WinTypeKeywords;
3933
friend class ::PragmaOnceUnitState;
3934
friend class ::PragmaOnce;
3935
friend class ::CCExprResolve;
3936
friend class ::CExprResolve;
3938
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
3940
ListElement *_first;
3944
List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
3945
List (const List &);
3948
List &operator = (const List &);
3949
List &operator += (const List &);
3950
List operator + (const List &);
3954
void append (ListElement &);
3955
void prepend (ListElement &);
3956
void insert (ListElement *at, ListElement &element);
3957
void remove (ListElement *element);
3958
void kill (ListElement *from, ListElement *to = (ListElement*)0)
3959
{ List discard; cut (discard, from, to); }
3961
void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
3962
//List *cut (ListElement *from, ListElement *to = (ListElement*)0);
3963
List *copy (ListElement *from = (ListElement*)0,
3964
ListElement *to = (ListElement*)0);
3965
void paste (ListElement *at, const List &l);
3966
void paste_before (ListElement *at, const List &l);
3967
void move (ListElement *at, List &l);
3968
void move_before (ListElement *at, List &l);
3970
bool empty () const { return _first == (ListElement*)0; }
3971
const ListElement *first () const { return _first; }
3972
const ListElement *last () const { return _last; }
3973
const ListElement *next (const ListElement *element) const
3974
{ return element->_next; }
3975
const ListElement *prev (const ListElement *element) const
3976
{ return element->_prev; }
3982
#endif /* __list_h__ */
3984
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3986
#line 3987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
3988
#ifndef __ac_fwd_PragmaOnceUnitState__
3989
#define __ac_fwd_PragmaOnceUnitState__
3990
class PragmaOnceUnitState;
3992
template <class JoinPoint>
3993
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
3997
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
3998
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
4001
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4003
#line 4004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4005
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4006
// This file is part of PUMA.
4007
// Copyright (C) 1999-2003 The PUMA developer team.
4009
// This program is free software; you can redistribute it and/or
4010
// modify it under the terms of the GNU General Public License as
4011
// published by the Free Software Foundation; either version 2 of
4012
// the License, or (at your option) any later version.
4014
// This program is distributed in the hope that it will be useful,
4015
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4016
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4017
// GNU General Public License for more details.
4019
// You should have received a copy of the GNU General Public
4020
// License along with this program; if not, write to the Free
4021
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4022
// MA 02111-1307 USA
4024
#ifndef __PragmaOnceUnitState__
4025
#define __PragmaOnceUnitState__
4027
using namespace Puma;
4030
#line 4031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4032
class WinImportHandler;
4037
class ExtACBuilderCoupling;
4038
class ExtACSyntaxCoupling;
4040
class ExtACKeywords;
4043
class WinMemberExplSpec;
4044
class WinTypeKeywords;
4046
class CCExprResolve;
4049
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4050
class PragmaOnceUnitState {
4051
#line 4052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4054
static PragmaOnceUnitState *aspectof () {
4055
static PragmaOnceUnitState __instance;
4058
static PragmaOnceUnitState *aspectOf () {
4063
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4065
#line 4066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4066
friend class ::WinIfExists;
4067
friend class ::WinImportHandler;
4068
friend class ::WinMacros;
4069
friend class ::CMatchSyntax;
4070
friend class ::ExtGnu;
4071
friend class ::ExtAC;
4072
friend class ::ExtACBuilderCoupling;
4073
friend class ::ExtACSyntaxCoupling;
4074
friend class ::ExtACTree;
4075
friend class ::ExtACKeywords;
4076
friend class ::WinAsm;
4077
friend class ::WinDeclSpecs;
4078
friend class ::WinMemberExplSpec;
4079
friend class ::WinTypeKeywords;
4080
friend class ::PragmaOnce;
4081
friend class ::CCExprResolve;
4082
friend class ::CExprResolve;
4084
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4086
/******************************************************/
4087
/* specific #pragma once unit state */
4088
/******************************************************/
4090
// pointcut definitions
4092
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4096
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4099
// initialize new state flag
4101
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4103
public: template<class JoinPoint> void __a0_after
4104
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4106
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4108
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4110
#line 4111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4112
JoinPoint *&thisJoinPoint = tjp;
4114
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4116
#line 4117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4118
typedef typename JoinPoint::That __JP_That;
4119
typedef typename JoinPoint::Target __JP_Target;
4120
typedef typename JoinPoint::Result __JP_Result;
4122
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4124
thisJoinPoint->that ()->_once = false;
4126
#line 4127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4130
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4134
// this aspect should never be instantiated directly
4135
PragmaOnceUnitState () {}
4137
#line 4138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4140
template <class JoinPoint>
4141
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
4142
::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
4146
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4150
#endif /* __PragmaOnceUnitState__ */
4152
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4153
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
4154
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
4156
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4157
// This file is part of PUMA.
4158
// Copyright (C) 1999-2003 The PUMA developer team.
4160
// This program is free software; you can redistribute it and/or
4161
// modify it under the terms of the GNU General Public License as
4162
// published by the Free Software Foundation; either version 2 of
4163
// the License, or (at your option) any later version.
4165
// This program is distributed in the hope that it will be useful,
4166
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4167
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4168
// GNU General Public License for more details.
4170
// You should have received a copy of the GNU General Public
4171
// License along with this program; if not, write to the Free
4172
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4173
// MA 02111-1307 USA
4175
#ifndef __UnitState__
4176
#define __UnitState__
4178
// The state of a unit:
4179
// 1. modified by manipulations and not updated at the class registry
4180
// 2. modified by manipulations and updated at the class registry
4181
// 3. unmodified by manipulations and not updated at the class registry
4182
// 4. unmodified by manipulations and updated at the class registry
4188
#line 4189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4191
class WinImportHandler;
4196
class ExtACBuilderCoupling;
4197
class ExtACSyntaxCoupling;
4199
class ExtACKeywords;
4202
class WinMemberExplSpec;
4203
class WinTypeKeywords;
4204
class PragmaOnceUnitState;
4206
class CCExprResolve;
4210
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4212
#line 4213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4213
friend class ::WinIfExists;
4214
friend class ::WinImportHandler;
4215
friend class ::WinMacros;
4216
friend class ::CMatchSyntax;
4217
friend class ::ExtGnu;
4218
friend class ::ExtAC;
4219
friend class ::ExtACBuilderCoupling;
4220
friend class ::ExtACSyntaxCoupling;
4221
friend class ::ExtACTree;
4222
friend class ::ExtACKeywords;
4223
friend class ::WinAsm;
4224
friend class ::WinDeclSpecs;
4225
friend class ::WinMemberExplSpec;
4226
friend class ::WinTypeKeywords;
4227
friend class ::PragmaOnceUnitState;
4228
friend class ::PragmaOnce;
4229
friend class ::CCExprResolve;
4230
friend class ::CExprResolve;
4232
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4240
#line 4241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4241
public: inline void __exec_old_C1();
4243
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4246
bool isModified () const;
4247
bool isUpdated () const;
4248
long lastModified () const;
4250
// Is modified and has to be updated.
4252
void lastModified (long);
4257
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4261
bool onlyOnce ( ) const { return _once ; }
4262
void onlyOnce ( bool v ) { _once = v ; }
4263
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4265
#line 4266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4267
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
4268
typedef void Result;
4269
typedef ::Puma::UnitState That;
4270
typedef ::Puma::UnitState Target;
4271
static const int JPID = 5;
4272
static const AC::JPType JPTYPE = (AC::JPType)16;
4275
typedef void ReferredType;
4278
template <int I, int DUMMY = 0> struct Arg {
4280
typedef void ReferredType;
4282
template <int DUMMY> struct Arg<0, DUMMY> {
4283
typedef const ::Puma::UnitState & Type;
4284
typedef const ::Puma::UnitState ReferredType;
4289
inline That *that() {return (That*)_that;}
4294
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4296
#line 4297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4299
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
4300
TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
4301
tjp._that = (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
4302
AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
4306
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4310
#line 4311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4313
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
4314
typedef void Result;
4315
typedef ::Puma::UnitState That;
4316
typedef ::Puma::UnitState Target;
4317
static const int JPID = 5;
4318
static const AC::JPType JPTYPE = (AC::JPType)16;
4321
typedef void ReferredType;
4324
template <int I, int DUMMY = 0> struct Arg {
4326
typedef void ReferredType;
4331
inline That *that() {return (That*)_that;}
4336
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4337
inline UnitState::UnitState ()
4339
#line 4340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4341
TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
4342
tjp._that = (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
4343
this->__exec_old_C1();
4344
AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
4347
inline void Puma::UnitState::__exec_old_C1()
4348
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4349
{ _modified = false; _updated = false; _lastModified = 0; }
4351
inline bool UnitState::isModified () const
4352
{ return _modified; }
4353
inline bool UnitState::isUpdated () const
4354
{ return _updated; }
4355
inline long UnitState::lastModified () const
4356
{ return _lastModified; }
4358
inline void UnitState::modified ()
4359
{ _modified = true; _updated = false; _lastModified = 0; }
4360
inline void UnitState::unmodified ()
4361
{ _modified = false; }
4362
inline void UnitState::updated ()
4363
{ _updated = true; }
4364
inline void UnitState::lastModified (long when)
4365
{ _lastModified = when; }
4370
#endif /* __UnitState__ */
4372
#line 4373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4373
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
4375
#line 72 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
4377
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
4382
#line 4383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4385
class WinImportHandler;
4390
class ExtACBuilderCoupling;
4391
class ExtACSyntaxCoupling;
4393
class ExtACKeywords;
4396
class WinMemberExplSpec;
4397
class WinTypeKeywords;
4398
class PragmaOnceUnitState;
4400
class CCExprResolve;
4404
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
4405
class Unit : public List, public Printable {
4406
#line 4407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4407
friend class ::WinIfExists;
4408
friend class ::WinImportHandler;
4409
friend class ::WinMacros;
4410
friend class ::CMatchSyntax;
4411
friend class ::ExtGnu;
4412
friend class ::ExtAC;
4413
friend class ::ExtACBuilderCoupling;
4414
friend class ::ExtACSyntaxCoupling;
4415
friend class ::ExtACTree;
4416
friend class ::ExtACKeywords;
4417
friend class ::WinAsm;
4418
friend class ::WinDeclSpecs;
4419
friend class ::WinMemberExplSpec;
4420
friend class ::WinTypeKeywords;
4421
friend class ::PragmaOnceUnitState;
4422
friend class ::PragmaOnce;
4423
friend class ::CCExprResolve;
4424
friend class ::CExprResolve;
4426
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
4432
Unit () : List (), _name ((char*)0) {}
4433
Unit (const List &list) : List (list), _name ((char*)0) {}
4435
virtual void name (const char *);
4436
char *name () const { return _name; }
4437
virtual void print (ostream &os) const;
4438
virtual bool isFile () const { return false; }
4439
virtual bool isMacroExp () const { return false; }
4440
UnitState &state () { return _state; }
4446
#endif /* __unit_h__ */
4448
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4449
using namespace Puma;
4453
#line 4454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4455
class WinImportHandler;
4460
class ExtACBuilderCoupling;
4461
class ExtACSyntaxCoupling;
4463
class ExtACKeywords;
4466
class WinMemberExplSpec;
4467
class WinTypeKeywords;
4468
class PragmaOnceUnitState;
4469
class CCExprResolve;
4472
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4474
#line 4475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4477
static PragmaOnce *aspectof () {
4478
static PragmaOnce __instance;
4481
static PragmaOnce *aspectOf () {
4486
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4488
#line 4489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4489
friend class ::WinIfExists;
4490
friend class ::WinImportHandler;
4491
friend class ::WinMacros;
4492
friend class ::CMatchSyntax;
4493
friend class ::ExtGnu;
4494
friend class ::ExtAC;
4495
friend class ::ExtACBuilderCoupling;
4496
friend class ::ExtACSyntaxCoupling;
4497
friend class ::ExtACTree;
4498
friend class ::ExtACKeywords;
4499
friend class ::WinAsm;
4500
friend class ::WinDeclSpecs;
4501
friend class ::WinMemberExplSpec;
4502
friend class ::WinTypeKeywords;
4503
friend class ::PragmaOnceUnitState;
4504
friend class ::CCExprResolve;
4505
friend class ::CExprResolve;
4507
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4509
/******************************************************/
4510
/* detect #pragma once in the token stream of cpp */
4511
/******************************************************/
4513
// pointcut definitions
4515
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4518
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4521
// extend the preprocessor parser by the filter state
4523
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4526
// initialize the filter state
4528
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4530
public: template<class JoinPoint> void __a0_after
4531
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4533
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4535
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4537
#line 4538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4539
typedef typename JoinPoint::That __JP_That;
4540
typedef typename JoinPoint::Target __JP_Target;
4541
typedef typename JoinPoint::Result __JP_Result;
4543
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4545
// TODO: it would be better to have construction advice -> but in lem file
4546
tjp->that ()->_pragma_token = 0;
4548
#line 4549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4552
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4555
// filter #pragma once
4557
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4559
public: template<class JoinPoint> void __a1_after
4560
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4562
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4564
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4566
#line 4567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4568
typedef typename JoinPoint::That __JP_That;
4569
typedef typename JoinPoint::Target __JP_Target;
4570
typedef typename JoinPoint::Result __JP_Result;
4572
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4574
Token *tok = *tjp->result ();
4576
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4577
&that = *tjp->that ();
4578
if (!tok || !tok->is_directive ()) {
4579
that._pragma_token = 0;
4582
if (strcmp ("#pragma", tok->text ()) == 0) {
4583
that._pragma_token = tok;
4585
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
4586
Unit *unit = (Unit*)tok->belonging_to ();
4588
unit->state ().onlyOnce (true);
4591
#line 4592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4595
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4598
/********************************************************/
4599
/* block the handling of pragma once files */
4600
/********************************************************/
4602
// don't let file includer include files twice
4603
// to be precise: the file is included again, but the inclusion produces
4606
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4608
public: template<class JoinPoint> void __a2_around
4609
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4611
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4612
(JoinPoint *tjp, Unit *unit)
4613
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4615
#line 4616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4617
typedef typename JoinPoint::That __JP_That;
4618
typedef typename JoinPoint::Target __JP_Target;
4619
typedef typename JoinPoint::Result __JP_Result;
4621
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4623
if (! unit || ! unit->state ().onlyOnce ())
4626
#line 4627 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4630
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4633
// includeFile shall return 0 if the file was not included
4635
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4637
public: template<class JoinPoint> void __a3_after
4638
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4640
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4642
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4644
#line 4645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4646
typedef typename JoinPoint::That __JP_That;
4647
typedef typename JoinPoint::Target __JP_Target;
4648
typedef typename JoinPoint::Result __JP_Result;
4650
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4652
Unit *&unit = *tjp->result ();
4653
if (unit && unit->state ().onlyOnce ())
4656
#line 4657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4660
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4664
// this aspect should never be instantiated directly
4667
#line 4668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4670
template <class JoinPoint>
4671
inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
4672
::PragmaOnce::aspectof()->__a0_after (tjp);
4674
template <class JoinPoint>
4675
inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
4676
::PragmaOnce::aspectof()->__a1_after (tjp);
4678
template <class JoinPoint, class Binding>
4679
inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
4680
typedef typename Binding::template Arg<0> Arg0;
4681
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
4683
template <class JoinPoint>
4684
inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
4685
::PragmaOnce::aspectof()->__a3_after (tjp);
4689
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
4693
#endif /* __PragmaOnce__ */
4695
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
4696
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
4697
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
4699
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
4700
// This file is part of PUMA.
4701
// Copyright (C) 1999-2003 The PUMA developer team.
4703
// This program is free software; you can redistribute it and/or
4704
// modify it under the terms of the GNU General Public License as
4705
// published by the Free Software Foundation; either version 2 of
4706
// the License, or (at your option) any later version.
4708
// This program is distributed in the hope that it will be useful,
4709
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4710
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4711
// GNU General Public License for more details.
4713
// You should have received a copy of the GNU General Public
4714
// License along with this program; if not, write to the Free
4715
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4716
// MA 02111-1307 USA
4718
#ifndef __preprocessor_parser__
4719
#define __preprocessor_parser__
4721
// Preprocessor parser class. !!! The preprocessor parser has to
4722
// be added last to the composite parser of a translation unit !!!
4725
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
4727
#line 4728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
2903
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
2905
#line 2906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4729
2907
#ifndef __ac_fwd_ExtACKeywords__
4730
2908
#define __ac_fwd_ExtACKeywords__
4731
2909
class ExtACKeywords;
4733
template <class JoinPoint, class Binding>
4734
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
4735
template <class JoinPoint, class Binding>
4736
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
4737
template <class JoinPoint>
4738
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
2911
template <class JoinPoint>
2912
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
2913
template <class JoinPoint>
2914
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
2915
template <class JoinPoint>
2916
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
4742
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
4743
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
2920
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
2921
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
4746
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
2924
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
4747
2925
// This file is part of PUMA.
4748
2926
// Copyright (C) 1999-2003 The PUMA developer team.
5729
3887
#endif /* __source_h__ */
5731
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5736
#line 5737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5739
class WinImportHandler;
5744
class ExtACBuilderCoupling;
5745
class ExtACSyntaxCoupling;
5747
class ExtACKeywords;
5750
class WinMemberExplSpec;
5751
class WinTypeKeywords;
5752
class PragmaOnceUnitState;
5754
class CCExprResolve;
5758
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
3889
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
3890
// This file is part of PUMA.
3891
// Copyright (C) 1999-2003 The PUMA developer team.
3893
// This program is free software; you can redistribute it and/or
3894
// modify it under the terms of the GNU General Public License as
3895
// published by the Free Software Foundation; either version 2 of
3896
// the License, or (at your option) any later version.
3898
// This program is distributed in the hope that it will be useful,
3899
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3900
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3901
// GNU General Public License for more details.
3903
// You should have received a copy of the GNU General Public
3904
// License along with this program; if not, write to the Free
3905
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3906
// MA 02111-1307 USA
3912
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
3913
// This file is part of PUMA.
3914
// Copyright (C) 1999-2003 The PUMA developer team.
3916
// This program is free software; you can redistribute it and/or
3917
// modify it under the terms of the GNU General Public License as
3918
// published by the Free Software Foundation; either version 2 of
3919
// the License, or (at your option) any later version.
3921
// This program is distributed in the hope that it will be useful,
3922
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3923
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3924
// GNU General Public License for more details.
3926
// You should have received a copy of the GNU General Public
3927
// License along with this program; if not, write to the Free
3928
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3929
// MA 02111-1307 USA
3935
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
3936
// This file is part of PUMA.
3937
// Copyright (C) 1999-2003 The PUMA developer team.
3939
// This program is free software; you can redistribute it and/or
3940
// modify it under the terms of the GNU General Public License as
3941
// published by the Free Software Foundation; either version 2 of
3942
// the License, or (at your option) any later version.
3944
// This program is distributed in the hope that it will be useful,
3945
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3946
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3947
// GNU General Public License for more details.
3949
// You should have received a copy of the GNU General Public
3950
// License along with this program; if not, write to the Free
3951
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3952
// MA 02111-1307 USA
3954
#ifndef __list_element_h__
3955
#define __list_element_h__
3957
// Base class for objects that may be inserted into a List. Lists
3958
// autonomously delete or copy list element. So it's necessary to
3959
// define a destructor and a duplicate method in the derived
3970
#line 3971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3972
class CCExprResolve;
3975
class WinImportHandler;
3979
class WinMemberExplSpec;
3980
class WinTypeKeywords;
3983
class ExtACBuilderCoupling;
3984
class ExtACSyntaxCoupling;
3986
class ExtACKeywords;
3988
class PragmaOnceUnitState;
3993
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
3995
#line 3996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
3996
friend class ::CCExprResolve;
3997
friend class ::CExprResolve;
3998
friend class ::WinIfExists;
3999
friend class ::WinImportHandler;
4000
friend class ::WinMacros;
4001
friend class ::WinAsm;
4002
friend class ::WinDeclSpecs;
4003
friend class ::WinMemberExplSpec;
4004
friend class ::WinTypeKeywords;
4005
friend class ::WinFriend;
4006
friend class ::ExtAC;
4007
friend class ::ExtACBuilderCoupling;
4008
friend class ::ExtACSyntaxCoupling;
4009
friend class ::ExtACTree;
4010
friend class ::ExtACKeywords;
4011
friend class ::ExtGnu;
4012
friend class ::PragmaOnceUnitState;
4013
friend class ::PragmaOnce;
4014
friend class ::CMatchSyntax;
4016
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
4020
List *_belonging_to;
4025
ListElement () : _belonging_to ((List*)0) {}
4026
virtual ~ListElement () { assert (! _belonging_to); };
4028
virtual ListElement *duplicate () = 0;
4029
List *belonging_to () const { return _belonging_to; }
4035
#endif /* __list_element_h__ */
4037
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
4042
#line 4043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4044
class CCExprResolve;
4047
class WinImportHandler;
4051
class WinMemberExplSpec;
4052
class WinTypeKeywords;
4055
class ExtACBuilderCoupling;
4056
class ExtACSyntaxCoupling;
4058
class ExtACKeywords;
4060
class PragmaOnceUnitState;
4065
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
4067
#line 4068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4068
friend class ::CCExprResolve;
4069
friend class ::CExprResolve;
4070
friend class ::WinIfExists;
4071
friend class ::WinImportHandler;
4072
friend class ::WinMacros;
4073
friend class ::WinAsm;
4074
friend class ::WinDeclSpecs;
4075
friend class ::WinMemberExplSpec;
4076
friend class ::WinTypeKeywords;
4077
friend class ::WinFriend;
4078
friend class ::ExtAC;
4079
friend class ::ExtACBuilderCoupling;
4080
friend class ::ExtACSyntaxCoupling;
4081
friend class ::ExtACTree;
4082
friend class ::ExtACKeywords;
4083
friend class ::ExtGnu;
4084
friend class ::PragmaOnceUnitState;
4085
friend class ::PragmaOnce;
4086
friend class ::CMatchSyntax;
4088
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
4090
ListElement *_first;
4094
List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
4095
List (const List &);
4098
List &operator = (const List &);
4099
List &operator += (const List &);
4100
List operator + (const List &);
4104
void append (ListElement &);
4105
void prepend (ListElement &);
4106
void insert (ListElement *at, ListElement &element);
4107
void remove (ListElement *element);
4108
void kill (ListElement *from, ListElement *to = (ListElement*)0)
4109
{ List discard; cut (discard, from, to); }
4111
void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
4112
//List *cut (ListElement *from, ListElement *to = (ListElement*)0);
4113
List *copy (ListElement *from = (ListElement*)0,
4114
ListElement *to = (ListElement*)0);
4115
void paste (ListElement *at, const List &l);
4116
void paste_before (ListElement *at, const List &l);
4117
void move (ListElement *at, List &l);
4118
void move_before (ListElement *at, List &l);
4120
bool empty () const { return _first == (ListElement*)0; }
4121
const ListElement *first () const { return _first; }
4122
const ListElement *last () const { return _last; }
4123
const ListElement *next (const ListElement *element) const
4124
{ return element ? element->_next : 0; }
4125
const ListElement *prev (const ListElement *element) const
4126
{ return element ? element->_prev : 0; }
4132
#endif /* __list_h__ */
4134
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4136
#line 4137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4138
#ifndef __ac_fwd_PragmaOnceUnitState__
4139
#define __ac_fwd_PragmaOnceUnitState__
4140
class PragmaOnceUnitState;
4142
template <class JoinPoint>
4143
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
4144
template <class JoinPoint>
4145
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
4149
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
4150
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
4153
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4154
// This file is part of PUMA.
4155
// Copyright (C) 1999-2003 The PUMA developer team.
4157
// This program is free software; you can redistribute it and/or
4158
// modify it under the terms of the GNU General Public License as
4159
// published by the Free Software Foundation; either version 2 of
4160
// the License, or (at your option) any later version.
4162
// This program is distributed in the hope that it will be useful,
4163
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4164
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4165
// GNU General Public License for more details.
4167
// You should have received a copy of the GNU General Public
4168
// License along with this program; if not, write to the Free
4169
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4170
// MA 02111-1307 USA
4172
#ifndef __UnitState__
4173
#define __UnitState__
4175
// The state of a unit:
4176
// 1. modified by manipulations and not updated at the class registry
4177
// 2. modified by manipulations and updated at the class registry
4178
// 3. unmodified by manipulations and not updated at the class registry
4179
// 4. unmodified by manipulations and updated at the class registry
4185
#line 4186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4187
class CCExprResolve;
4190
class WinImportHandler;
4194
class WinMemberExplSpec;
4195
class WinTypeKeywords;
4198
class ExtACBuilderCoupling;
4199
class ExtACSyntaxCoupling;
4201
class ExtACKeywords;
4203
class PragmaOnceUnitState;
4208
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4210
#line 4211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4213
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
4214
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
4216
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4217
// This file is part of PUMA.
4218
// Copyright (C) 1999-2003 The PUMA developer team.
4220
// This program is free software; you can redistribute it and/or
4221
// modify it under the terms of the GNU General Public License as
4222
// published by the Free Software Foundation; either version 2 of
4223
// the License, or (at your option) any later version.
4225
// This program is distributed in the hope that it will be useful,
4226
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4227
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4228
// GNU General Public License for more details.
4230
// You should have received a copy of the GNU General Public
4231
// License along with this program; if not, write to the Free
4232
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4233
// MA 02111-1307 USA
4235
#ifndef __PragmaOnceUnitState__
4236
#define __PragmaOnceUnitState__
4239
#line 4240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4240
class CCExprResolve;
4243
class WinImportHandler;
4247
class WinMemberExplSpec;
4248
class WinTypeKeywords;
4251
class ExtACBuilderCoupling;
4252
class ExtACSyntaxCoupling;
4254
class ExtACKeywords;
4259
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4260
class PragmaOnceUnitState {
4261
#line 4262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4264
static PragmaOnceUnitState *aspectof () {
4265
static PragmaOnceUnitState __instance;
4268
static PragmaOnceUnitState *aspectOf () {
4273
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4275
#line 4276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4276
friend class ::CCExprResolve;
4277
friend class ::CExprResolve;
4278
friend class ::WinIfExists;
4279
friend class ::WinImportHandler;
4280
friend class ::WinMacros;
4281
friend class ::WinAsm;
4282
friend class ::WinDeclSpecs;
4283
friend class ::WinMemberExplSpec;
4284
friend class ::WinTypeKeywords;
4285
friend class ::WinFriend;
4286
friend class ::ExtAC;
4287
friend class ::ExtACBuilderCoupling;
4288
friend class ::ExtACSyntaxCoupling;
4289
friend class ::ExtACTree;
4290
friend class ::ExtACKeywords;
4291
friend class ::ExtGnu;
4292
friend class ::PragmaOnce;
4293
friend class ::CMatchSyntax;
4295
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4297
/******************************************************/
4298
/* specific #pragma once unit state */
4299
/******************************************************/
4301
// pointcut definitions
4303
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4307
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4310
// initialize new state flag
4312
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4314
public: template<class JoinPoint> void __a0_after
4315
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4317
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4319
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4321
#line 4322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4323
JoinPoint *&thisJoinPoint = tjp;
4325
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4327
#line 4328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4329
typedef typename JoinPoint::That __JP_That;
4330
typedef typename JoinPoint::Target __JP_Target;
4331
typedef typename JoinPoint::Result __JP_Result;
4333
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4335
thisJoinPoint->that ()->_once = false;
4337
#line 4338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4341
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4344
// initialize new flag for all managed units
4346
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4348
public: template<class JoinPoint> void __a1_after
4349
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4351
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4353
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4355
#line 4356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4357
typedef typename JoinPoint::That __JP_That;
4358
typedef typename JoinPoint::Target __JP_Target;
4359
typedef typename JoinPoint::Result __JP_Result;
4361
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4363
// go through the whole unit hash table and reset the
4364
// `#pragma once' state of the units
4366
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4368
for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
4369
(*iter).second->state ().onlyOnce (false);
4371
#line 4372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4375
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4379
// this aspect should never be instantiated directly
4380
PragmaOnceUnitState () {}
4382
#line 4383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4385
template <class JoinPoint>
4386
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
4387
::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
4389
template <class JoinPoint>
4390
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
4391
::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
4395
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4399
#endif /* __PragmaOnceUnitState__ */
4401
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4405
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4407
#line 4408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4408
friend class ::CCExprResolve;
4409
friend class ::CExprResolve;
4410
friend class ::WinIfExists;
4411
friend class ::WinImportHandler;
4412
friend class ::WinMacros;
4413
friend class ::WinAsm;
4414
friend class ::WinDeclSpecs;
4415
friend class ::WinMemberExplSpec;
4416
friend class ::WinTypeKeywords;
4417
friend class ::WinFriend;
4418
friend class ::ExtAC;
4419
friend class ::ExtACBuilderCoupling;
4420
friend class ::ExtACSyntaxCoupling;
4421
friend class ::ExtACTree;
4422
friend class ::ExtACKeywords;
4423
friend class ::ExtGnu;
4424
friend class ::PragmaOnceUnitState;
4425
friend class ::PragmaOnce;
4426
friend class ::CMatchSyntax;
4428
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4436
#line 4437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4437
public: __attribute__((always_inline)) inline void __exec_old_C1();
4439
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4442
bool isModified () const;
4443
bool isUpdated () const;
4444
long lastModified () const;
4446
// Is modified and has to be updated.
4448
void lastModified (long);
4453
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
4457
bool onlyOnce ( ) const { return _once ; }
4458
void onlyOnce ( bool v ) { _once = v ; }
4459
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4461
#line 4462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4463
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
4464
typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
4465
typedef TResult Result;
4467
typedef TTarget Target;
4468
enum { ARGS = TArgs::ARGS };
4469
template <int I> struct Arg : AC::Arg<TArgs, I> {};
4470
static const int JPID = 3863;
4471
static const AC::JPType JPTYPE = (AC::JPType)16;
4474
typedef void ReferredType;
4479
inline That *that() {return (That*)_that;}
4484
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4486
#line 4487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4489
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
4490
typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState , AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
4492
tjp._that = (__TJP::That*)this;
4493
AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
4497
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4501
#line 4502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4504
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
4505
typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
4506
typedef TResult Result;
4508
typedef TTarget Target;
4509
enum { ARGS = TArgs::ARGS };
4510
template <int I> struct Arg : AC::Arg<TArgs, I> {};
4511
static const int JPID = 3839;
4512
static const AC::JPType JPTYPE = (AC::JPType)16;
4515
typedef void ReferredType;
4520
inline That *that() {return (That*)_that;}
4525
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4526
inline UnitState::UnitState ()
4528
#line 4529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4530
typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState , AC::TLE > __TJP;
4532
tjp._that = (__TJP::That*)this;
4533
this->__exec_old_C1();
4534
AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
4537
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
4538
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
4539
{ _modified = false; _updated = false; _lastModified = 0; }
4541
inline bool UnitState::isModified () const
4542
{ return _modified; }
4543
inline bool UnitState::isUpdated () const
4544
{ return _updated; }
4545
inline long UnitState::lastModified () const
4546
{ return _lastModified; }
4548
inline void UnitState::modified ()
4549
{ _modified = true; _updated = false; _lastModified = 0; }
4550
inline void UnitState::unmodified ()
4551
{ _modified = false; }
4552
inline void UnitState::updated ()
4553
{ _updated = true; }
4554
inline void UnitState::lastModified (long when)
4555
{ _lastModified = when; }
4560
#endif /* __UnitState__ */
4562
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
4567
#line 4568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4569
class CCExprResolve;
4572
class WinImportHandler;
4576
class WinMemberExplSpec;
4577
class WinTypeKeywords;
4580
class ExtACBuilderCoupling;
4581
class ExtACSyntaxCoupling;
4583
class ExtACKeywords;
4585
class PragmaOnceUnitState;
4590
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
4591
class Unit : public List, public Printable {
4592
#line 4593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4593
friend class ::CCExprResolve;
4594
friend class ::CExprResolve;
4595
friend class ::WinIfExists;
4596
friend class ::WinImportHandler;
4597
friend class ::WinMacros;
4598
friend class ::WinAsm;
4599
friend class ::WinDeclSpecs;
4600
friend class ::WinMemberExplSpec;
4601
friend class ::WinTypeKeywords;
4602
friend class ::WinFriend;
4603
friend class ::ExtAC;
4604
friend class ::ExtACBuilderCoupling;
4605
friend class ::ExtACSyntaxCoupling;
4606
friend class ::ExtACTree;
4607
friend class ::ExtACKeywords;
4608
friend class ::ExtGnu;
4609
friend class ::PragmaOnceUnitState;
4610
friend class ::PragmaOnce;
4611
friend class ::CMatchSyntax;
4613
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
4619
Unit () : List (), _name ((char*)0) {}
4620
Unit (const List &list) : List (list), _name ((char*)0) {}
4622
virtual void name (const char *);
4623
char *name () const { return _name; }
4624
virtual void print (ostream &os) const;
4625
virtual bool isFile () const { return false; }
4626
virtual bool isMacroExp () const { return false; }
4627
UnitState &state () { return _state; }
4633
#endif /* __unit_h__ */
4635
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
4640
#line 4641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4642
class CCExprResolve;
4645
class WinImportHandler;
4649
class WinMemberExplSpec;
4650
class WinTypeKeywords;
4653
class ExtACBuilderCoupling;
4654
class ExtACSyntaxCoupling;
4656
class ExtACKeywords;
4658
class PragmaOnceUnitState;
4663
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5759
4664
class Tokenizer {
5760
#line 5761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
4665
#line 4666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
4666
friend class ::CCExprResolve;
4667
friend class ::CExprResolve;
5761
4668
friend class ::WinIfExists;
5762
4669
friend class ::WinImportHandler;
5763
4670
friend class ::WinMacros;
5764
friend class ::CMatchSyntax;
5765
friend class ::ExtGnu;
4671
friend class ::WinAsm;
4672
friend class ::WinDeclSpecs;
4673
friend class ::WinMemberExplSpec;
4674
friend class ::WinTypeKeywords;
4675
friend class ::WinFriend;
5766
4676
friend class ::ExtAC;
5767
4677
friend class ::ExtACBuilderCoupling;
5768
4678
friend class ::ExtACSyntaxCoupling;
5769
4679
friend class ::ExtACTree;
5770
4680
friend class ::ExtACKeywords;
5771
friend class ::WinAsm;
5772
friend class ::WinDeclSpecs;
5773
friend class ::WinMemberExplSpec;
5774
friend class ::WinTypeKeywords;
4681
friend class ::ExtGnu;
5775
4682
friend class ::PragmaOnceUnitState;
5776
4683
friend class ::PragmaOnce;
5777
friend class ::CCExprResolve;
5778
friend class ::CExprResolve;
4684
friend class ::CMatchSyntax;
5780
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
4686
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
5783
4689
virtual ~Tokenizer () {}
6268
5182
// Special unit for macro expansions
6271
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6276
#line 6277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6279
class WinImportHandler;
6284
class ExtACBuilderCoupling;
6285
class ExtACSyntaxCoupling;
6287
class ExtACKeywords;
6290
class WinMemberExplSpec;
6291
class WinTypeKeywords;
6292
class PragmaOnceUnitState;
6294
class CCExprResolve;
6298
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
5185
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5186
// This file is part of PUMA.
5187
// Copyright (C) 1999-2003 The PUMA developer team.
5189
// This program is free software; you can redistribute it and/or
5190
// modify it under the terms of the GNU General Public License as
5191
// published by the Free Software Foundation; either version 2 of
5192
// the License, or (at your option) any later version.
5194
// This program is distributed in the hope that it will be useful,
5195
// but WITHOUT ANY WARRANTY; without even the implied warranty of
5196
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5197
// GNU General Public License for more details.
5199
// You should have received a copy of the GNU General Public
5200
// License along with this program; if not, write to the Free
5201
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
5202
// MA 02111-1307 USA
5207
// Abstract interface of a language token. A token is created by an
5208
// invocation of a scanner's 'scan' method. The token encapsulates a
5209
// lexical unit of the scanned text.
5213
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5216
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5221
#line 5222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5223
class CCExprResolve;
5226
class WinImportHandler;
5230
class WinMemberExplSpec;
5231
class WinTypeKeywords;
5234
class ExtACBuilderCoupling;
5235
class ExtACSyntaxCoupling;
5237
class ExtACKeywords;
5239
class PragmaOnceUnitState;
5244
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5245
class Token : public ListElement {
5246
#line 5247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5247
friend class ::CCExprResolve;
5248
friend class ::CExprResolve;
5249
friend class ::WinIfExists;
5250
friend class ::WinImportHandler;
5251
friend class ::WinMacros;
5252
friend class ::WinAsm;
5253
friend class ::WinDeclSpecs;
5254
friend class ::WinMemberExplSpec;
5255
friend class ::WinTypeKeywords;
5256
friend class ::WinFriend;
5257
friend class ::ExtAC;
5258
friend class ::ExtACBuilderCoupling;
5259
friend class ::ExtACSyntaxCoupling;
5260
friend class ::ExtACTree;
5261
friend class ::ExtACKeywords;
5262
friend class ::ExtGnu;
5263
friend class ::PragmaOnceUnitState;
5264
friend class ::PragmaOnce;
5265
friend class ::CMatchSyntax;
5267
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5269
int _type, _real_type;
5272
LanguageID _language;
5274
mutable DString _dtext;
5276
Array<int> *_cont_lines;
5279
TK_COMMENT = (0x01 << 0),
5280
TK_CORE = (0x01 << 1),
5281
TK_MACRO_CALL = (0x01 << 2),
5282
TK_MACRO_GENERATED = (0x01 << 3)
5284
unsigned short _flags;
5288
ID_END_OF_FILE = -1,
5294
static LanguageID comment_id, pre_id, dir_id, cpp_id, white_id,
5295
wildcard_id, keyword_id, open_id, macro_op_id,
5296
identifier_id, comma_id, close_id;
5299
Token (int = 0, LanguageID lang = LanguageID(0), const char * = "");
5300
Token (const Token &);
5303
// virtual void print (ostream &) const;
5304
void print (ostream &) const;
5305
virtual ListElement *duplicate () { return new Token (*this); }
5307
void reset (int = 0, const char * = 0, LanguageID = LanguageID(0));
5309
void location (const Location &loc) { _location = loc; }
5310
void cont_lines (Array<int> *cl) { _cont_lines = cl; }
5311
int line_breaks () const;
5312
void macro_generated () { _flags |= TK_MACRO_GENERATED; }
5313
void macro_call () { _flags |= TK_MACRO_CALL; }
5315
const char *text () const;
5316
DString &dtext () const;
5317
char *get_static_text () const;
5318
int type () const { return _type; }
5319
const Location &location () const { return _location; }
5321
// functions to query token flags
5322
bool is_macro_generated () const { return (_flags & TK_MACRO_GENERATED) != 0; }
5323
bool is_macro_call () const { return (_flags & TK_MACRO_CALL) != 0; }
5324
bool is_core () const;
5325
bool is_identifier () const; // subset of core
5326
bool is_keyword () const; // subset of identifier
5327
bool is_wildcard () const; // subset of core
5328
bool is_preprocessor () const; // a preprocessor directive (include, etc.)
5329
bool is_directive () const; // a compiler directive (pragma, line, etc.)
5330
bool is_whitespace () const;
5331
bool is_comment () const;
5332
bool is_macro_op () const;
5333
bool is_open () const; // subset of core
5334
bool is_comma () const; // subset of core
5335
bool is_close () const; // subset of core
5337
void *operator new (size_t);
5338
void operator delete (void *);
5341
int get_general_type () const;
5342
LanguageID language () const { return _language; }
5343
void is_comment_internal ();
5344
void is_core_internal ();
5348
inline void Token::is_core_internal () {
5349
if (_language == cpp_id || _language == wildcard_id ||
5350
_language == open_id || _language == comma_id ||
5351
_language == close_id || is_identifier ())
5354
inline void Token::is_comment_internal () {
5355
if (_language == comment_id)
5356
_flags |= TK_COMMENT;
5359
inline bool Token::is_core () const
5360
{ return (_flags & TK_CORE) != 0; }
5361
inline bool Token::is_identifier () const
5362
{ return _language == identifier_id || is_keyword ();}
5363
inline bool Token::is_keyword () const
5364
{ return _language == keyword_id; }
5365
inline bool Token::is_wildcard () const
5366
{ return _language == wildcard_id; }
5367
inline bool Token::is_preprocessor () const
5368
{ return _language == pre_id; }
5369
inline bool Token::is_directive () const
5370
{ return _language == dir_id; }
5371
inline bool Token::is_whitespace () const
5372
{ return _language == white_id; }
5373
inline bool Token::is_comment () const
5374
{ return (_flags & TK_COMMENT) != 0; }
5375
inline bool Token::is_macro_op () const
5376
{ return _language == macro_op_id; }
5377
inline bool Token::is_open () const
5378
{ return _language == open_id; }
5379
inline bool Token::is_comma () const
5380
{ return _language == comma_id; }
5381
inline bool Token::is_close () const
5382
{ return _language == close_id; }
5384
inline ostream &operator << (ostream &os, const Token &object) {
5391
#endif /* __Token_h__ */
5393
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
5398
#line 5399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5400
class CCExprResolve;
5403
class WinImportHandler;
5407
class WinMemberExplSpec;
5408
class WinTypeKeywords;
5411
class ExtACBuilderCoupling;
5412
class ExtACSyntaxCoupling;
5414
class ExtACKeywords;
5416
class PragmaOnceUnitState;
5421
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6299
5422
class MacroUnit : public Unit {
6300
#line 6301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
5423
#line 5424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5424
friend class ::CCExprResolve;
5425
friend class ::CExprResolve;
6301
5426
friend class ::WinIfExists;
6302
5427
friend class ::WinImportHandler;
6303
5428
friend class ::WinMacros;
6304
friend class ::CMatchSyntax;
6305
friend class ::ExtGnu;
5429
friend class ::WinAsm;
5430
friend class ::WinDeclSpecs;
5431
friend class ::WinMemberExplSpec;
5432
friend class ::WinTypeKeywords;
5433
friend class ::WinFriend;
6306
5434
friend class ::ExtAC;
6307
5435
friend class ::ExtACBuilderCoupling;
6308
5436
friend class ::ExtACSyntaxCoupling;
6309
5437
friend class ::ExtACTree;
6310
5438
friend class ::ExtACKeywords;
6311
friend class ::WinAsm;
6312
friend class ::WinDeclSpecs;
6313
friend class ::WinMemberExplSpec;
6314
friend class ::WinTypeKeywords;
5439
friend class ::ExtGnu;
6315
5440
friend class ::PragmaOnceUnitState;
6316
5441
friend class ::PragmaOnce;
6317
friend class ::CCExprResolve;
6318
friend class ::CExprResolve;
5442
friend class ::CMatchSyntax;
6320
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
5444
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
6322
5446
Unit *_CallingUnit;
6323
5447
Token *_StartToken;
6597
5734
class PrePredicateManager;
6600
#line 6601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6603
class WinImportHandler;
6608
class ExtACBuilderCoupling;
6609
class ExtACSyntaxCoupling;
6611
class ExtACKeywords;
6614
class WinMemberExplSpec;
6615
class WinTypeKeywords;
6616
class PragmaOnceUnitState;
6618
class CCExprResolve;
6622
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
5737
#line 5738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5739
class CCExprResolve;
5742
class WinImportHandler;
5746
class WinMemberExplSpec;
5747
class WinTypeKeywords;
5750
class ExtACBuilderCoupling;
5751
class ExtACSyntaxCoupling;
5753
class ExtACKeywords;
5755
class PragmaOnceUnitState;
5760
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
5762
#line 5763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
5765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
5766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
5768
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
5769
// This file is part of PUMA.
5770
// Copyright (C) 1999-2003 The PUMA developer team.
5772
// This program is free software; you can redistribute it and/or
5773
// modify it under the terms of the GNU General Public License as
5774
// published by the Free Software Foundation; either version 2 of
5775
// the License, or (at your option) any later version.
5777
// This program is distributed in the hope that it will be useful,
5778
// but WITHOUT ANY WARRANTY; without even the implied warranty of
5779
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5780
// GNU General Public License for more details.
5782
// You should have received a copy of the GNU General Public
5783
// License along with this program; if not, write to the Free
5784
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
5785
// MA 02111-1307 USA
5787
#ifndef __WinIfExists__
5788
#define __WinIfExists__
5790
/********************************************************/
5791
/* Win __if_exists and __if_not_exists support aspect */
5792
/********************************************************/
5795
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
5796
// This file is part of PUMA.
5797
// Copyright (C) 1999-2003 The PUMA developer team.
5799
// This program is free software; you can redistribute it and/or
5800
// modify it under the terms of the GNU General Public License as
5801
// published by the Free Software Foundation; either version 2 of
5802
// the License, or (at your option) any later version.
5804
// This program is distributed in the hope that it will be useful,
5805
// but WITHOUT ANY WARRANTY; without even the implied warranty of
5806
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5807
// GNU General Public License for more details.
5809
// You should have received a copy of the GNU General Public
5810
// License along with this program; if not, write to the Free
5811
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
5812
// MA 02111-1307 USA
5814
#ifndef __C_TOKENS__
5815
#define __C_TOKENS__
5821
// core tokens, i.e. numbers, operator symbols, brackets, etc.
5877
TOK_LAST_CORE = TOK_ELLIPSIS, // this is a group separator for the scanner!
5917
// C compatibility keywords
5937
// C win specific keywords
5949
TOK_LAST_C = TOK_IF_NOT_EXISTS,
5951
// a boolean constant:
5983
// C++ alternative representation of operators (ISO 646):
5985
TOK_AND_AND_ISO_646,
5997
TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
5999
// AspectC++ keywords:
6007
TOK_LAST_AC = TOK_UNKNOWN_T,
6009
// further [A](C|C++) token
6012
// These two always have to be the ** last ** token listed here!!!
6020
#endif /* __C_TOKENS__ */
6022
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6025
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6030
#line 6031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6031
class CCExprResolve;
6033
class WinImportHandler;
6037
class WinMemberExplSpec;
6038
class WinTypeKeywords;
6041
class ExtACBuilderCoupling;
6042
class ExtACSyntaxCoupling;
6044
class ExtACKeywords;
6046
class PragmaOnceUnitState;
6050
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6052
#line 6053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6055
static WinIfExists *aspectof () {
6056
static WinIfExists __instance;
6059
static WinIfExists *aspectOf () {
6064
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6066
#line 6067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6067
friend class ::CCExprResolve;
6068
friend class ::CExprResolve;
6069
friend class ::WinImportHandler;
6070
friend class ::WinMacros;
6071
friend class ::WinAsm;
6072
friend class ::WinDeclSpecs;
6073
friend class ::WinMemberExplSpec;
6074
friend class ::WinTypeKeywords;
6075
friend class ::WinFriend;
6076
friend class ::ExtAC;
6077
friend class ::ExtACBuilderCoupling;
6078
friend class ::ExtACSyntaxCoupling;
6079
friend class ::ExtACTree;
6080
friend class ::ExtACKeywords;
6081
friend class ::ExtGnu;
6082
friend class ::PragmaOnceUnitState;
6083
friend class ::PragmaOnce;
6084
friend class ::CMatchSyntax;
6086
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6088
/********************************************************/
6089
/* Win __if_exists and __if_not_exists */
6090
/********************************************************/
6092
// pointcut definitions
6094
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6097
// structural extensions
6099
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6102
// preprocess __if_exists and __if_not_exists statements
6104
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6106
public: template<class JoinPoint> void __a0_around
6107
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6109
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6111
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6113
#line 6114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6115
JoinPoint *&thisJoinPoint = tjp;
6117
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6119
#line 6120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6121
typedef typename JoinPoint::That __JP_That;
6122
typedef typename JoinPoint::Target __JP_Target;
6123
typedef typename JoinPoint::Result __JP_Result;
6125
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6130
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6133
preparser = tjp->that ();
6134
tjp->proceed (); // get the next token
6135
token = *tjp->result ();
6137
type = token->type ();
6138
// __if_exists (...) { ... }
6139
if (type == Puma::TOK_IF_EXISTS) {
6140
preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
6141
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
6143
// __if_not_exists (...) { ... }
6144
} else if (type == Puma::TOK_IF_NOT_EXISTS) {
6145
preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
6146
preparser->_depth.push (1);
6147
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
6150
// skip closing `}' of __if_not_exists
6151
if (preparser->_depth.length ()) {
6152
if (type == Puma::TOK_OPEN_CURLY)
6153
preparser->_depth.top () = preparser->_depth.top () + 1;
6154
else if (type == Puma::TOK_CLOSE_CURLY) {
6155
preparser->_depth.top () = preparser->_depth.top () - 1;
6156
if (preparser->_depth.top () == 0) {
6157
preparser->_depth.pop ();
6158
*(Puma::Token**)thisJoinPoint->result () = preparser->next ();
6165
#line 6166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6169
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6175
#line 6176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6178
template <class JoinPoint>
6179
__attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
6180
::WinIfExists::aspectof()->__a0_around (tjp);
6184
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6189
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6192
// skip __if_exists resp. __if_not_exists statement
6194
#line 135 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
6198
#endif /* __WinIfExists__ */
6200
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6204
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6206
#line 6207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
6212
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6213
// This file is part of PUMA.
6214
// Copyright (C) 1999-2003 The PUMA developer team.
6216
// This program is free software; you can redistribute it and/or
6217
// modify it under the terms of the GNU General Public License as
6218
// published by the Free Software Foundation; either version 2 of
6219
// the License, or (at your option) any later version.
6221
// This program is distributed in the hope that it will be useful,
6222
// but WITHOUT ANY WARRANTY; without even the implied warranty of
6223
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6224
// GNU General Public License for more details.
6226
// You should have received a copy of the GNU General Public
6227
// License along with this program; if not, write to the Free
6228
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
6229
// MA 02111-1307 USA
6231
#ifndef __PragmaOnce__
6232
#define __PragmaOnce__
6234
/********************************************************/
6235
/* Win #pragma once support aspect */
6236
/********************************************************/
6239
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6243
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6245
#line 6246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6246
class CCExprResolve;
6249
class WinImportHandler;
6253
class WinMemberExplSpec;
6254
class WinTypeKeywords;
6257
class ExtACBuilderCoupling;
6258
class ExtACSyntaxCoupling;
6260
class ExtACKeywords;
6262
class PragmaOnceUnitState;
6265
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6267
#line 6268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6270
static PragmaOnce *aspectof () {
6271
static PragmaOnce __instance;
6274
static PragmaOnce *aspectOf () {
6279
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6281
#line 6282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6282
friend class ::CCExprResolve;
6283
friend class ::CExprResolve;
6284
friend class ::WinIfExists;
6285
friend class ::WinImportHandler;
6286
friend class ::WinMacros;
6287
friend class ::WinAsm;
6288
friend class ::WinDeclSpecs;
6289
friend class ::WinMemberExplSpec;
6290
friend class ::WinTypeKeywords;
6291
friend class ::WinFriend;
6292
friend class ::ExtAC;
6293
friend class ::ExtACBuilderCoupling;
6294
friend class ::ExtACSyntaxCoupling;
6295
friend class ::ExtACTree;
6296
friend class ::ExtACKeywords;
6297
friend class ::ExtGnu;
6298
friend class ::PragmaOnceUnitState;
6299
friend class ::CMatchSyntax;
6301
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6303
/******************************************************/
6304
/* detect #pragma once in the token stream of cpp */
6305
/******************************************************/
6307
// pointcut definitions
6309
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6312
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6315
// extend the preprocessor parser by the filter state
6317
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6320
// initialize the filter state
6322
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6324
public: template<class JoinPoint> void __a0_after
6325
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6327
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6329
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6331
#line 6332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6333
typedef typename JoinPoint::That __JP_That;
6334
typedef typename JoinPoint::Target __JP_Target;
6335
typedef typename JoinPoint::Result __JP_Result;
6337
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6339
// TODO: it would be better to have construction advice -> but in lem file
6340
tjp->that ()->_pragma_token = 0;
6342
#line 6343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6346
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6349
// filter #pragma once
6351
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6353
public: template<class JoinPoint> void __a1_after
6354
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6356
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6358
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6360
#line 6361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6362
typedef typename JoinPoint::That __JP_That;
6363
typedef typename JoinPoint::Target __JP_Target;
6364
typedef typename JoinPoint::Result __JP_Result;
6366
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6368
Puma::Token *tok = *tjp->result ();
6370
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6371
&that = *tjp->that ();
6372
if (!tok || !tok->is_directive ()) {
6373
that._pragma_token = 0;
6376
if (strcmp ("#pragma", tok->text ()) == 0) {
6377
that._pragma_token = tok;
6379
else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
6380
Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
6382
unit->state ().onlyOnce (true);
6385
#line 6386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6389
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6392
/********************************************************/
6393
/* block the handling of pragma once files */
6394
/********************************************************/
6396
// don't let file includer include files twice
6397
// to be precise: the file is included again, but the inclusion produces
6400
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6402
public: template<class JoinPoint> void __a2_around
6403
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6405
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6406
(JoinPoint *tjp, Puma::Unit *unit)
6407
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6409
#line 6410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6411
typedef typename JoinPoint::That __JP_That;
6412
typedef typename JoinPoint::Target __JP_Target;
6413
typedef typename JoinPoint::Result __JP_Result;
6415
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6417
if (! unit || ! unit->state ().onlyOnce ())
6420
#line 6421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6424
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6427
// includeFile shall return 0 if the file was not included
6429
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6431
public: template<class JoinPoint> void __a3_after
6432
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6434
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6436
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6438
#line 6439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6440
typedef typename JoinPoint::That __JP_That;
6441
typedef typename JoinPoint::Target __JP_Target;
6442
typedef typename JoinPoint::Result __JP_Result;
6444
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6446
Puma::Unit *&unit = *tjp->result ();
6447
if (unit && unit->state ().onlyOnce ())
6449
tjp->that ()->_guarded = true;
6451
#line 6452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6455
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6459
// this aspect should never be instantiated directly
6462
#line 6463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6465
template <class JoinPoint>
6466
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
6467
::PragmaOnce::aspectof()->__a0_after (tjp);
6469
template <class JoinPoint>
6470
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
6471
::PragmaOnce::aspectof()->__a1_after (tjp);
6473
template <class JoinPoint>
6474
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
6475
typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
6476
::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
6478
template <class JoinPoint>
6479
__attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
6480
::PragmaOnce::aspectof()->__a3_after (tjp);
6484
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
6488
#endif /* __PragmaOnce__ */
6490
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6494
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6623
6495
class PreprocessorParser : public PumaTokenSource {
6624
#line 6625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
6496
#line 6497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
6497
friend class ::CCExprResolve;
6498
friend class ::CExprResolve;
6625
6499
friend class ::WinIfExists;
6626
6500
friend class ::WinImportHandler;
6627
6501
friend class ::WinMacros;
6628
friend class ::CMatchSyntax;
6629
friend class ::ExtGnu;
6502
friend class ::WinAsm;
6503
friend class ::WinDeclSpecs;
6504
friend class ::WinMemberExplSpec;
6505
friend class ::WinTypeKeywords;
6506
friend class ::WinFriend;
6630
6507
friend class ::ExtAC;
6631
6508
friend class ::ExtACBuilderCoupling;
6632
6509
friend class ::ExtACSyntaxCoupling;
6633
6510
friend class ::ExtACTree;
6634
6511
friend class ::ExtACKeywords;
6635
friend class ::WinAsm;
6636
friend class ::WinDeclSpecs;
6637
friend class ::WinMemberExplSpec;
6638
friend class ::WinTypeKeywords;
6512
friend class ::ExtGnu;
6639
6513
friend class ::PragmaOnceUnitState;
6640
6514
friend class ::PragmaOnce;
6641
friend class ::CCExprResolve;
6642
friend class ::CExprResolve;
6515
friend class ::CMatchSyntax;
6644
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6517
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
6647
6520
// The current mode for token preprocessing
11057
11027
} // namespace Puma
11059
#line 11060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
11061
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
11062
/*** begin of aspect includes ***/
11063
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__)
11064
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
11066
#line 7 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11068
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
11069
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
11071
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11073
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__)
11074
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
11076
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11029
#line 11030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11031
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CProject_cc__
11032
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
11033
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
11034
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
11035
#include "CCExprResolveCC.ah"
11037
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11038
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11039
#include "ExtACTree.ah"
11041
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11042
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11043
#include "ExtGnu.ah"
11046
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
11047
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
11048
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
11049
#include "CCExprResolveH.ah"
11052
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
11053
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
11054
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
11055
#include "CExprResolveCC.ah"
11057
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11058
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11059
#include "ExtACTree.ah"
11061
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11062
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11063
#include "ExtGnu.ah"
11066
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
11067
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
11068
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
11069
#include "CExprResolveH.ah"
11072
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
11073
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
11074
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
11076
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
11079
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
11080
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
11081
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
11083
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11084
// This file is part of PUMA.
11085
// Copyright (C) 1999-2003 The PUMA developer team.
11087
// This program is free software; you can redistribute it and/or
11088
// modify it under the terms of the GNU General Public License as
11089
// published by the Free Software Foundation; either version 2 of
11090
// the License, or (at your option) any later version.
11092
// This program is distributed in the hope that it will be useful,
11093
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11094
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11095
// GNU General Public License for more details.
11097
// You should have received a copy of the GNU General Public
11098
// License along with this program; if not, write to the Free
11099
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
11100
// MA 02111-1307 USA
11102
#ifndef __WinImportHandler__
11103
#define __WinImportHandler__
11105
/********************************************************/
11106
/* Win #import directive support */
11107
/********************************************************/
11110
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11112
#line 11113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11113
class CCExprResolve;
11114
class CExprResolve;
11118
class WinDeclSpecs;
11119
class WinMemberExplSpec;
11120
class WinTypeKeywords;
11123
class ExtACBuilderCoupling;
11124
class ExtACSyntaxCoupling;
11126
class ExtACKeywords;
11128
class PragmaOnceUnitState;
11130
class CMatchSyntax;
11132
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11133
class WinImportHandler {
11134
#line 11135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11137
static WinImportHandler *aspectof () {
11138
static WinImportHandler __instance;
11139
return &__instance;
11141
static WinImportHandler *aspectOf () {
11142
return aspectof ();
11146
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11148
#line 11149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11149
friend class ::CCExprResolve;
11150
friend class ::CExprResolve;
11151
friend class ::WinIfExists;
11152
friend class ::WinMacros;
11153
friend class ::WinAsm;
11154
friend class ::WinDeclSpecs;
11155
friend class ::WinMemberExplSpec;
11156
friend class ::WinTypeKeywords;
11157
friend class ::WinFriend;
11158
friend class ::ExtAC;
11159
friend class ::ExtACBuilderCoupling;
11160
friend class ::ExtACSyntaxCoupling;
11161
friend class ::ExtACTree;
11162
friend class ::ExtACKeywords;
11163
friend class ::ExtGnu;
11164
friend class ::PragmaOnceUnitState;
11165
friend class ::PragmaOnce;
11166
friend class ::CMatchSyntax;
11168
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11170
/********************************************************/
11171
/* Win #import directive */
11172
/********************************************************/
11176
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11179
// handle --import-handler option
11181
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11183
public: template<class JoinPoint> void __a0_before
11184
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11186
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11187
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
11188
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11190
#line 11191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11192
JoinPoint *&thisJoinPoint = tjp;
11194
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11196
#line 11197 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11198
typedef typename JoinPoint::That __JP_That;
11199
typedef typename JoinPoint::Target __JP_Target;
11200
typedef typename JoinPoint::Result __JP_Result;
11202
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11204
const Puma::ConfOption *opt;
11207
if (process_includes) {
11208
opt = config.Option ("--import-handler");
11209
if (opt && opt->Arguments ()) {
11210
// delete old import handler
11211
if (thisJoinPoint->that ()->_importHandler)
11212
delete[] thisJoinPoint->that ()->_importHandler;
11214
// get new import handler
11215
tmp = new char[strlen (opt->Argument (0))+1];
11216
strcpy (tmp, opt->Argument (0));
11217
thisJoinPoint->that ()->_importHandler = tmp;
11221
#line 11222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11225
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11229
WinImportHandler () {}
11231
#line 11232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11234
template <class JoinPoint>
11235
__attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
11236
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
11237
typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
11238
::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
11242
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
11246
#endif /* __WinImportHandler__ */
11248
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
11251
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
11252
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
11253
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
11255
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11077
11256
// This file is part of PUMA.
11078
11257
// Copyright (C) 1999-2003 The PUMA developer team.
11350
11530
thisJoinPoint->that ()->defMacro ("__noop", " ");
11352
11532
// function-like macros
11353
PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
11533
Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
11354
11534
args->append ("__arg0");
11355
11535
thisJoinPoint->that ()->macroManager ()->addMacro (
11356
new PreMacro ("__declspec", args, " "));
11536
new Puma::PreMacro ("__declspec", args, " "));
11359
#line 11360 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
11539
#line 11540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11363
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11543
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11367
11547
WinMacros () {}
11369
#line 11370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
11549
#line 11550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11371
11551
namespace AC {
11372
template <class JoinPoint, class Binding>
11373
inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
11374
typedef typename Binding::template Arg<0> Arg0;
11552
template <class JoinPoint>
11553
__attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
11554
typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
11375
11555
::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
11379
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
11559
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
11383
11563
#endif /* __WinMacros__ */
11385
#line 15 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11387
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
11388
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11389
#include "CMatchSyntax.ah"
11391
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__)
11392
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
11393
#include "ExtGnu.ah"
11395
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__)
11396
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
11565
#line 59 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
11567
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11568
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11570
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
11573
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
11574
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
11575
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
11576
#include "WinAsm.ah"
11578
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11579
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11580
#include "ExtACTree.ah"
11583
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11584
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11585
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11586
#include "WinDeclSpecs.ah"
11589
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11590
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11591
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11592
#include "WinMemberExplSpec.ah"
11595
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11596
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11597
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11598
#include "WinTypeKeywords.ah"
11601
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
11602
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
11603
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
11604
#include "WinFriend.ah"
11607
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11608
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11609
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
11397
11610
#include "ExtAC.ah"
11399
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
11400
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11612
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11613
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11614
#include "ExtACTree.ah"
11616
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11617
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11618
#include "ExtACKeywords.ah"
11620
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11621
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
11622
#include "ExtGnu.ah"
11624
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11625
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11626
#include "PragmaOnceUnitState.ah"
11628
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11629
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
11630
#include "CMatchSyntax.ah"
11633
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11634
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11635
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
11401
11636
#include "ExtACBuilderH.ah"
11403
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
11404
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11639
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11640
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11641
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
11405
11642
#include "ExtACBuilderCC.ah"
11407
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
11408
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11644
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11645
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11646
#include "ExtACTree.ah"
11649
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11650
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11651
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
11409
11652
#include "ExtACSyntaxH.ah"
11411
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
11412
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11655
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11656
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11657
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
11413
11658
#include "ExtACSyntaxCC.ah"
11415
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__)
11416
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
11661
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11662
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11663
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
11417
11664
#include "ExtACTree.ah"
11419
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
11420
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11667
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11668
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11669
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
11422
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11671
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11423
11672
// This file is part of PUMA.
11424
11673
// Copyright (C) 1999-2003 The PUMA developer team.
11710
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11962
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11712
11964
public: template<class JoinPoint> void __a2_before
11713
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11965
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11715
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11967
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11716
11968
(JoinPoint *tjp)
11717
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11969
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11719
#line 11720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
11971
#line 11972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11721
11973
typedef typename JoinPoint::That __JP_That;
11722
11974
typedef typename JoinPoint::Target __JP_Target;
11723
11975
typedef typename JoinPoint::Result __JP_Result;
11725
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11977
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11727
11979
_project = tjp->that ();
11730
#line 11731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CProject.cc"
11982
#line 11983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CProject.cc"
11732
11984
namespace AC {
11733
template <class JoinPoint, class Binding>
11734
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
11735
typedef typename Binding::template Arg<0> Arg0;
11985
template <class JoinPoint>
11986
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
11987
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
11736
11988
::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
11738
template <class JoinPoint, class Binding>
11739
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
11740
typedef typename Binding::template Arg<0> Arg0;
11990
template <class JoinPoint>
11991
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
11992
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
11741
11993
::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
11743
11995
template <class JoinPoint>
11744
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
11996
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
11745
11997
::ExtACKeywords::aspectof()->__a2_before (tjp);
11749
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
12001
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
11752
12004
#endif /* __ext_ac_keywords_ah__ */
11754
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11756
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
11757
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12006
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
12008
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12009
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12010
#include "PragmaOnceUnitState.ah"
12013
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
12014
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12015
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12016
#include "ExtACTree.ah"
12018
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
12019
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
12020
#include "ExtGnu.ah"
12023
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
12024
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12025
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
12026
#include "ExtACTree.ah"
12028
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
12029
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
12030
#include "ExtGnuCSemDeclSpecs.ah"
12033
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12034
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12035
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12036
#include "PragmaOnceUnitState.ah"
12039
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12040
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12041
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
12042
#include "PragmaOnceUnitState.ah"
12044
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12045
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
12047
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CProject.cc"
12050
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12051
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
12052
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
11758
12053
#include "TraceSyntax.ah"
11760
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__)
11761
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
11762
#include "WinAsm.ah"
11764
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
11765
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
11766
#include "WinDeclSpecs.ah"
11768
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
11769
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
11770
#include "WinMemberExplSpec.ah"
11772
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
11773
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
11774
#include "WinTypeKeywords.ah"
11776
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
11777
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
11779
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11781
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
11782
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
11784
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CProject.cc"
11786
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
11787
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
11788
#include "CCExprResolveH.ah"
11790
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
11791
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
11792
#include "CCExprResolveCC.ah"
11794
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
11795
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
11796
#include "CExprResolveH.ah"
11798
#if !defined(__ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
11799
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
11800
#include "CExprResolveCC.ah"
11802
/*** end of aspect includes ***/
11803
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
11804
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
11805
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CProject_cc__
12056
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
12057
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
12058
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
12059
#include "CMatchSyntax.ah"
12062
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
12063
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CProject_cc__
12064
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CProject_cc__