~ubuntu-branches/ubuntu/wily/aspectc++/wily

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/inc/Puma/CTypeList.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2005-12-23 10:49:40 UTC
  • Revision ID: james.westby@ubuntu.com-20051223104940-ig4klhoi991zs7km
Tags: upstream-0.99+1.0pre2
ImportĀ upstreamĀ versionĀ 0.99+1.0pre2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
 
2
#define __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
 
3
#define __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CTypeList_h__
 
4
 
 
5
#ifndef __ac_h_
 
6
#define __ac_h_
 
7
namespace AC {
 
8
  typedef const char* Type;
 
9
  enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
 
10
  struct Action {
 
11
    void **_args; void *_result; void *_target; void *_that; void *_fptr;
 
12
    void (*_wrapper)(Action &);
 
13
    inline void trigger () { _wrapper (*this); }
 
14
  };
 
15
  struct AnyResultBuffer {};
 
16
  template <typename T> struct ResultBuffer : public AnyResultBuffer {
 
17
    char _data[sizeof (T)];
 
18
    ~ResultBuffer () { ((T*)_data)->T::~T(); }
 
19
    operator T& () const { return *(T*)_data; }
 
20
  };
 
21
  template <class Aspect, int Index>
 
22
  struct CFlow {
 
23
    static int &instance () {
 
24
      static int counter = 0;
 
25
      return counter;
 
26
    }
 
27
    CFlow () { instance ()++; }
 
28
    ~CFlow () { instance ()--; }
 
29
    static bool active () { return instance () > 0; }
 
30
  };
 
31
}
 
32
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
 
33
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
 
34
#endif // __ac_h_
 
35
#endif // __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
 
36
 
 
37
#line 1 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
38
// This file is part of PUMA.
 
39
// Copyright (C) 1999-2003  The PUMA developer team.
 
40
//                                                                
 
41
// This program is free software;  you can redistribute it and/or 
 
42
// modify it under the terms of the GNU General Public License as 
 
43
// published by the Free Software Foundation; either version 2 of 
 
44
// the License, or (at your option) any later version.            
 
45
//                                                                
 
46
// This program is distributed in the hope that it will be useful,
 
47
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
48
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
49
// GNU General Public License for more details.                   
 
50
//                                                                
 
51
// You should have received a copy of the GNU General Public      
 
52
// License along with this program; if not, write to the Free     
 
53
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
54
// MA  02111-1307  USA                                            
 
55
 
 
56
#ifndef __CTypeList_h__
 
57
#define __CTypeList_h__
 
58
 
 
59
#include "Puma/Array.h"
 
60
 
 
61
namespace Puma {
 
62
 
 
63
 
 
64
class CTypeInfo;
 
65
class CT_ArgDeclList;
 
66
 
 
67
 
 
68
#line 69 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CTypeList.h"
 
69
} // closed Puma
 
70
class WinIfExists;
 
71
class WinImportHandler;
 
72
class WinMacros;
 
73
class CMatchSyntax;
 
74
class ExtGnu;
 
75
class ExtAC;
 
76
class ExtACTree;
 
77
class WinAsm;
 
78
class WinDeclSpecs;
 
79
class WinMemberExplSpec;
 
80
class WinTypeKeywords;
 
81
class PragmaOnceUnitState;
 
82
class PragmaOnce;
 
83
class CCExprResolve;
 
84
class CExprResolve;
 
85
namespace Puma {
 
86
 
 
87
#line 30 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
88
class CTypeList {
 
89
#line 90 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CTypeList.h"
 
90
  friend class ::WinIfExists;
 
91
  friend class ::WinImportHandler;
 
92
  friend class ::WinMacros;
 
93
  friend class ::CMatchSyntax;
 
94
  friend class ::ExtGnu;
 
95
  friend class ::ExtAC;
 
96
  friend class ::ExtACTree;
 
97
  friend class ::WinAsm;
 
98
  friend class ::WinDeclSpecs;
 
99
  friend class ::WinMemberExplSpec;
 
100
  friend class ::WinTypeKeywords;
 
101
  friend class ::PragmaOnceUnitState;
 
102
  friend class ::PragmaOnce;
 
103
  friend class ::CCExprResolve;
 
104
  friend class ::CExprResolve;
 
105
 
 
106
#line 30 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
107
 
 
108
  Array<CTypeInfo*> _List;
 
109
  CT_ArgDeclList *_ArgumentList;
 
110
 
 
111
public:
 
112
  CTypeList (int len = 3);
 
113
  ~CTypeList ();
 
114
 
 
115
  unsigned Entries () const;
 
116
  CTypeInfo *Entry (unsigned) const;
 
117
  void ReplaceEntry (unsigned, CTypeInfo *);
 
118
  
 
119
  CT_ArgDeclList *ArgumentList () const;
 
120
  void ArgumentList (CT_ArgDeclList *);
 
121
  
 
122
  void AddEntry (CTypeInfo *);
 
123
  
 
124
  bool isDependent () const;
 
125
};
 
126
 
 
127
inline CTypeList::CTypeList (int len) :
 
128
  _List (len),
 
129
  _ArgumentList ((CT_ArgDeclList*)0)
 
130
 {}
 
131
inline CTypeList::~CTypeList ()
 
132
 {}
 
133
 
 
134
inline CT_ArgDeclList *CTypeList::ArgumentList () const
 
135
 { return _ArgumentList; }
 
136
inline void CTypeList::ArgumentList (CT_ArgDeclList *al)
 
137
 { _ArgumentList = al; }
 
138
 
 
139
inline unsigned CTypeList::Entries () const
 
140
 { return _List.length (); }
 
141
inline CTypeInfo *CTypeList::Entry (unsigned i) const
 
142
 { return _List.lookup (i); }
 
143
 
 
144
inline void CTypeList::AddEntry (CTypeInfo *info) 
 
145
 { if (info) _List.append (info); }
 
146
inline void CTypeList::ReplaceEntry (unsigned i, CTypeInfo *info)
 
147
 { if (info && (i < Entries ())) _List[i] = info; }
 
148
 
 
149
 
 
150
} // namespace Puma
 
151
 
 
152
#endif /* __CTypeList_h__ */
 
153
 
 
154
#line 155 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CTypeList.h"
 
155
 
 
156
#ifdef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CTypeList_h__
 
157
/*** begin of aspect includes ***/
 
158
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__)
 
159
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
160
#include "WinIfExists.ah"
 
161
#endif
 
162
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
 
163
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
164
#include "WinImportHandler.ah"
 
165
#endif
 
166
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__)
 
167
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__
 
168
#include "WinMacros.ah"
 
169
#endif
 
170
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
 
171
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
172
#include "CMatchSyntax.ah"
 
173
#endif
 
174
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__)
 
175
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
176
#include "ExtGnu.ah"
 
177
#endif
 
178
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__)
 
179
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__
 
180
#include "ExtAC.ah"
 
181
#endif
 
182
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__)
 
183
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
184
#include "ExtACTree.ah"
 
185
#endif
 
186
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
 
187
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
188
#include "TraceSyntax.ah"
 
189
#endif
 
190
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__)
 
191
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__
 
192
#include "WinAsm.ah"
 
193
#endif
 
194
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
 
195
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
196
#include "WinDeclSpecs.ah"
 
197
#endif
 
198
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
 
199
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
200
#include "WinMemberExplSpec.ah"
 
201
#endif
 
202
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
 
203
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
204
#include "WinTypeKeywords.ah"
 
205
#endif
 
206
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
 
207
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
208
#include "PragmaOnceUnitState.ah"
 
209
#endif
 
210
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
 
211
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
212
#include "PragmaOnce.ah"
 
213
#endif
 
214
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__)
 
215
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__
 
216
#include "CCExprResolve.ah"
 
217
#endif
 
218
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__)
 
219
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
 
220
#include "CExprResolve.ah"
 
221
#endif
 
222
/*** end of aspect includes ***/
 
223
#undef __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
 
224
#undef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CTypeList_h__
 
225
#endif // __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CTypeList_h__