~ubuntu-branches/ubuntu/natty/aspectc++/natty

« back to all changes in this revision

Viewing changes to Puma/include/Puma/CSemantic.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_CSemantic_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/CSemantic.h"
 
38
 
 
39
#line 40 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
40
 
 
41
#ifndef __ac_fwd_ExtGnu__
 
42
#define __ac_fwd_ExtGnu__
 
43
class ExtGnu;
 
44
namespace AC {
 
45
  template <class JoinPoint, class Binding>
 
46
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
 
47
  template <class JoinPoint, class Binding>
 
48
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
 
49
  template <class JoinPoint>
 
50
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
51
  template <class JoinPoint>
 
52
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
53
  template <class JoinPoint>
 
54
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
55
  template <class JoinPoint>
 
56
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
57
  template <class JoinPoint>
 
58
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
59
  template <class JoinPoint>
 
60
  inline void invoke_ExtGnu_ExtGnu_a7_after (JoinPoint *tjp);
 
61
  template <class JoinPoint, class Binding>
 
62
  inline void invoke_ExtGnu_ExtGnu_a8_before (JoinPoint *tjp);
 
63
  template <class JoinPoint, class Binding>
 
64
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
65
  template <class JoinPoint, class Binding>
 
66
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
67
  template <class JoinPoint, class Binding>
 
68
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
69
  template <class JoinPoint, class Binding>
 
70
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
71
  template <class JoinPoint, class Binding>
 
72
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
73
  template <class JoinPoint>
 
74
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
75
  template <class JoinPoint, class Binding>
 
76
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
77
}
 
78
#endif
 
79
 
 
80
#ifndef __ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
81
#define __ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
82
#endif
 
83
 
 
84
#ifndef __ac_fwd_ExtAC__
 
85
#define __ac_fwd_ExtAC__
 
86
class ExtAC;
 
87
namespace AC {
 
88
  template <class JoinPoint>
 
89
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
 
90
  template <class JoinPoint>
 
91
  inline void invoke_ExtAC_ExtAC_a1_around (JoinPoint *tjp);
 
92
  template <class JoinPoint>
 
93
  inline void invoke_ExtAC_ExtAC_a2_after (JoinPoint *tjp);
 
94
  template <class JoinPoint>
 
95
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
 
96
  template <class JoinPoint>
 
97
  inline void invoke_ExtAC_ExtAC_a4_around (JoinPoint *tjp);
 
98
  template <class JoinPoint>
 
99
  inline void invoke_ExtAC_ExtAC_a5_after (JoinPoint *tjp);
 
100
  template <class JoinPoint>
 
101
  inline void invoke_ExtAC_ExtAC_a6_around (JoinPoint *tjp);
 
102
  template <class JoinPoint>
 
103
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
 
104
  template <class JoinPoint>
 
105
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
 
106
  template <class JoinPoint, class Binding>
 
107
  inline void invoke_ExtAC_ExtAC_a9_around (JoinPoint *tjp);
 
108
  template <class JoinPoint>
 
109
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
110
  template <class JoinPoint, class Binding>
 
111
  inline void invoke_ExtAC_ExtAC_a11_around (JoinPoint *tjp);
 
112
  template <class JoinPoint>
 
113
  inline void invoke_ExtAC_ExtAC_a12_after (JoinPoint *tjp);
 
114
  template <class JoinPoint>
 
115
  inline void invoke_ExtAC_ExtAC_a13_before (JoinPoint *tjp);
 
116
  template <class JoinPoint>
 
117
  inline void invoke_ExtAC_ExtAC_a14_after (JoinPoint *tjp);
 
118
}
 
119
#endif
 
120
 
 
121
#ifndef __ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__
 
122
#define __ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__
 
123
#endif
 
124
 
 
125
#line 1 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
126
 
 
127
#line 128 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
128
#include "CMatchSyntax.ah"
 
129
#include "ExtGnu.ah"
 
130
#include "ExtAC.ah"
 
131
#ifndef __ac_guard__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CSemantic_h__
 
132
#define __ac_guard__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CSemantic_h__
 
133
 
 
134
#line 1 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
135
// This file is part of PUMA.
 
136
// Copyright (C) 1999-2003  The PUMA developer team.
 
137
//                                                                
 
138
// This program is free software;  you can redistribute it and/or 
 
139
// modify it under the terms of the GNU General Public License as 
 
140
// published by the Free Software Foundation; either version 2 of 
 
141
// the License, or (at your option) any later version.            
 
142
//                                                                
 
143
// This program is distributed in the hope that it will be useful,
 
144
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
145
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
146
// GNU General Public License for more details.                   
 
147
//                                                                
 
148
// You should have received a copy of the GNU General Public      
 
149
// License along with this program; if not, write to the Free     
 
150
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
151
// MA  02111-1307  USA                                            
 
152
 
 
153
#ifndef __CSemantic_h__
 
154
#define __CSemantic_h__
 
155
 
 
156
#include "Puma/Semantic.h"
 
157
#include "Puma/CBuilder.h"
 
158
#include "Puma/CLinkage.h"
 
159
#include "Puma/CProtection.h"
 
160
#include "Puma/CTree.h"
 
161
 
 
162
namespace Puma {
 
163
  class CSyntax;
 
164
}
 
165
 
 
166
namespace Puma {
 
167
 
 
168
 
 
169
#line 170 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
170
} // closed Puma
 
171
class WinIfExists;
 
172
class WinImportHandler;
 
173
class WinMacros;
 
174
class CMatchSyntax;
 
175
class ExtGnu;
 
176
class ExtAC;
 
177
class ExtACTree;
 
178
class WinAsm;
 
179
class WinDeclSpecs;
 
180
class WinMemberExplSpec;
 
181
class WinTypeKeywords;
 
182
class PragmaOnceUnitState;
 
183
class PragmaOnce;
 
184
class CCExprResolve;
 
185
class CExprResolve;
 
186
namespace Puma {
 
187
 
 
188
#line 34 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
189
class CSemantic : public Semantic {
 
190
#line 191 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
191
  friend class ::WinIfExists;
 
192
  friend class ::WinImportHandler;
 
193
  friend class ::WinMacros;
 
194
  friend class ::CMatchSyntax;
 
195
  friend class ::ExtGnu;
 
196
  friend class ::ExtAC;
 
197
  friend class ::ExtACTree;
 
198
  friend class ::WinAsm;
 
199
  friend class ::WinDeclSpecs;
 
200
  friend class ::WinMemberExplSpec;
 
201
  friend class ::WinTypeKeywords;
 
202
  friend class ::PragmaOnceUnitState;
 
203
  friend class ::PragmaOnce;
 
204
  friend class ::CCExprResolve;
 
205
  friend class ::CExprResolve;
 
206
 
 
207
#line 34 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
208
 
 
209
  CSyntax &_syntax;
 
210
  CBuilder &_builder;
 
211
 
 
212
protected:
 
213
  enum SemObjType { 
 
214
    CLASS, UNION, ENUM,  TYPEDEF, FCT,  ATTRIB, ARG,  TAG, NON_TAG,  ANY 
 
215
  };
 
216
 
 
217
  bool in_arg_decl;
 
218
  bool _in_arg_decl_seq;
 
219
  bool is_type_name;
 
220
  
 
221
  
 
222
#line 223 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
223
 
 
224
 
 
225
struct TJP__ZN4Puma9CSemantic19declareImplicitFctsEv_0 {
 
226
  typedef void Result;
 
227
  typedef ::Puma::CSemantic That;
 
228
  typedef ::Puma::CSemantic Target;
 
229
  static const int JPID = 62;
 
230
  static const AC::JPType JPTYPE = (AC::JPType)8;
 
231
  struct Res {
 
232
    typedef void Type;
 
233
    typedef void ReferredType;
 
234
  };
 
235
  enum { ARGS = 0 };
 
236
  template <int I, int DUMMY = 0> struct Arg {
 
237
    typedef void Type;
 
238
    typedef void ReferredType;
 
239
  };
 
240
 
 
241
  That *_that;
 
242
 
 
243
  inline That *that() {return (That*)_that;}
 
244
 
 
245
};
 
246
 
 
247
 
 
248
#line 47 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
249
void declareImplicitFcts () 
 
250
#line 251 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
251
{
 
252
  TJP__ZN4Puma9CSemantic19declareImplicitFctsEv_0 tjp;
 
253
  tjp._that =  (TJP__ZN4Puma9CSemantic19declareImplicitFctsEv_0::That*)this;
 
254
this->__exec_old_declareImplicitFcts();
 
255
  AC::invoke_ExtGnu_ExtGnu_a7_after<TJP__ZN4Puma9CSemantic19declareImplicitFctsEv_0> (&tjp);
 
256
 
 
257
}
 
258
inline void __exec_old_declareImplicitFcts()
 
259
#line 47 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
260
{} // builtin functions
 
261
 
 
262
public:
 
263
  
 
264
#line 265 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
265
public: inline void __exec_old_C1(Puma::CSyntax &,Puma::CBuilder &);
 
266
 
 
267
#line 50 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
268
CSemantic (CSyntax &, CBuilder &);
 
269
 
 
270
  virtual void init (CClassDatabase &, Unit &);
 
271
  void configure (Config &);
 
272
 
 
273
protected:
 
274
  virtual CBuilder &builder () const;
 
275
  virtual CSyntax &syntax () const;
 
276
  virtual void Delete ();
 
277
 
 
278
public:
 
279
  // control parse process
 
280
  virtual CTree *id_expr ();
 
281
  virtual CTree *typedef_name ();
 
282
  virtual CTree *init_declarator (CTree *);
 
283
  virtual CTree *abst_declarator ();
 
284
  virtual CTree *direct_abst_declarator ();
 
285
  virtual CTree *param_decl_clause ();
 
286
  virtual CTree *finish_fct_def ();
 
287
  virtual CTree *arg_decl_seq ();
 
288
  virtual CTree *decl_spec_seq1 ();
 
289
  virtual CTree *decl_spec_seq_err ();
 
290
  virtual CTree *class_spec_err (CTree *);
 
291
  virtual CTree *declare_parameter ();
 
292
  virtual CTree *identifier_list ();
 
293
  virtual CTree *finish_param_check ();
 
294
  virtual CTree *begin_decl ();
 
295
 
 
296
  // add scope information to tree nodes
 
297
  virtual CTree *trans_unit ();
 
298
  
 
299
#line 300 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
300
public: inline Puma::CTree * __exec_old_class_spec();
 
301
 
 
302
#line 80 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
303
virtual CTree *class_spec ();
 
304
  virtual CTree *cmpd_stmt ();
 
305
  virtual CTree *select_stmt ();
 
306
  virtual CTree *iter_stmt ();
 
307
 
 
308
  // introduce names... add new entries to the class database
 
309
  virtual CTree *introduce_label ();
 
310
  
 
311
#line 312 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
312
public: inline Puma::CTree * __exec_old_introduce_object();
 
313
 
 
314
#line 87 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
315
virtual CTree *introduce_object ();
 
316
  virtual CTree *introduce_named_type ();
 
317
  virtual CTree *introduce_enum ();
 
318
  virtual CTree *introduce_enumerator ();
 
319
  
 
320
#line 321 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
321
public: inline Puma::CTree * __exec_old_introduce_function();
 
322
 
 
323
#line 91 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
324
virtual CTree *introduce_function ();
 
325
  virtual CTree *introduce_parameter ();
 
326
  
 
327
#line 328 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
328
public: inline Puma::CTree * __exec_old_introduce_class();
 
329
 
 
330
#line 93 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
331
virtual CTree *introduce_class ();
 
332
  
 
333
#line 334 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
334
public: inline Puma::CTree * __exec_old_introduce_member();
 
335
 
 
336
#line 94 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
337
virtual CTree *introduce_member ();
 
338
  virtual CTree *introduce_tag ();
 
339
 
 
340
public: // change or get semantic state information
 
341
  void enter_arg_decl_seq ();
 
342
  void leave_arg_decl_seq ();
 
343
  void begin_param_check ();
 
344
  bool in_arg_decl_seq () const;
 
345
  bool decl_spec_seq ();
 
346
  bool empty_decl_spec_seq ();
 
347
  virtual bool implicit_int ();
 
348
  virtual CProtection::Type protection () const;
 
349
  
 
350
protected:
 
351
  CObjectInfo *lookup (const char *, SemObjType, bool = false) const;
 
352
  CObjectInfo *lookup (CT_SimpleName *, SemObjType, bool = false) const;
 
353
  CObjectInfo *lookup (const char *, CStructure *, SemObjType, bool) const;
 
354
 
 
355
  CLinkage::Type determine_linkage (CSemDeclSpecs *, SemObjType, 
 
356
    CObjectInfo * = (CObjectInfo*)0) const;
 
357
  CStorage::Type determine_storage_class (CSemDeclSpecs *, SemObjType, 
 
358
    CLinkage::Type) const;
 
359
 
 
360
  // helper
 
361
  bool typeMatch (CTypeInfo *, CTypeInfo *) const;
 
362
  CStructure *findParent () const;
 
363
  void setSpecifiers (CObjectInfo *, CSemDeclSpecs *) const;
 
364
  void makeAlias (CObjectInfo *, CStructure *);
 
365
 
 
366
  // create class DB objects
 
367
  CAttributeInfo *createAttribute (const char *, CStructure *, CTypeInfo *,
 
368
                                   bool = false);
 
369
  CTypedefInfo *createTypedef (const char *, CStructure *, CTypeInfo *);
 
370
  void createParameter (CFunctionInfo *, CTypeInfo *);
 
371
  CFunctionInfo *createFunction (const char *, CStructure *, CTypeInfo *);
 
372
 
 
373
public:
 
374
  virtual CTree * wc_extension ( ) {
 
375
CT_AnyExtension * ext = ( CT_AnyExtension * ) builder ( ) . wc_extension ( ) ;
 
376
if ( ext -> String ( ) ) {
 
377
char * name = StrCol :: dup ( ext -> String ( ) -> token ( ) -> text ( ) ) ;
 
378
name ++ ;
 
379
name [ strlen ( name ) - 1 ] = '\0' ;
 
380
ext -> SemValue ( ) -> setValue ( new CStrLiteral ( name , strlen ( name ) , 0 ) ) ;
 
381
} return ext ;
 
382
 
383
public:
 
384
  void define_gnu_builtins ( ) ;
 
385
 
 
386
public:
 
387
  virtual CTree * gnu_typeof ( ) ;
 
388
 
 
389
public:
 
390
  ACIntroducer * _introducer ;
 
391
 
 
392
private:
 
393
  bool _in_advice_decl ;
 
394
 
 
395
private:
 
396
  bool _in_pointcut_decl ;
 
397
 
 
398
private:
 
399
  Syntax :: State _at_end_of_advice_decl ;
 
400
 
 
401
private:
 
402
  CStructure * _saved_scope ;
 
403
 
 
404
private:
 
405
  void introduce_function_post ( CObjectInfo * , CTree * ) ;
 
406
 
 
407
private:
 
408
  void introduce_class_post ( CT_ClassDef * cd ) ;
 
409
 
 
410
private:
 
411
  void add_base_classes_post ( CTree * cs ) ;
 
412
 
 
413
public:
 
414
  virtual CTree * introduce_pointcut ( ) ;
 
415
 
 
416
public:
 
417
  virtual CTree * introduce_member_advice ( ) ;
 
418
 
 
419
public:
 
420
  virtual CTree * introduce_advice ( ) {
 
421
return introduce_member_advice ( ) ;
 
422
 
423
public:
 
424
  void enter_advice_decl ( ) {
 
425
_in_advice_decl = true ;
 
426
 
427
public:
 
428
  void leave_advice_decl ( ) {
 
429
_in_advice_decl = false ;
 
430
 
431
public:
 
432
  void enter_pointcut_decl ( ) {
 
433
_in_pointcut_decl = true ;
 
434
 
435
public:
 
436
  void leave_pointcut_decl ( ) {
 
437
_in_pointcut_decl = false ;
 
438
 
439
public:
 
440
  void enter_pointcut_expr ( ) ;
 
441
 
 
442
public:
 
443
  void leave_pointcut_expr ( ) ;
 
444
 
 
445
public:
 
446
  void check_intro ( CT_ObjDecl * od ) ;
 
447
 
 
448
#line 449 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
449
 
 
450
struct TJP__ZN4Puma9CSemanticC1ERKN4PumaE9CSemantic_0 {
 
451
  typedef void Result;
 
452
  typedef ::Puma::CSemantic That;
 
453
  typedef ::Puma::CSemantic Target;
 
454
  static const int JPID = 60;
 
455
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
456
  struct Res {
 
457
    typedef void Type;
 
458
    typedef void ReferredType;
 
459
  };
 
460
  enum { ARGS = 1 };
 
461
  template <int I, int DUMMY = 0> struct Arg {
 
462
    typedef void Type;
 
463
    typedef void ReferredType;
 
464
  };
 
465
  template <int DUMMY> struct Arg<0, DUMMY> {
 
466
    typedef const ::Puma::CSemantic & Type;
 
467
    typedef const ::Puma::CSemantic ReferredType;
 
468
  };
 
469
 
 
470
  That *_that;
 
471
 
 
472
  inline That *that() {return (That*)_that;}
 
473
 
 
474
};
 
475
 
 
476
 
 
477
#line 129 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
478
 
 
479
#line 480 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
480
 
 
481
public:
 
482
inline CSemantic (const Puma::CSemantic & arg0) : Puma::Semantic (arg0), _syntax (arg0._syntax), _builder (arg0._builder), in_arg_decl (arg0.in_arg_decl), _in_arg_decl_seq (arg0._in_arg_decl_seq), is_type_name (arg0.is_type_name), _introducer (arg0._introducer), _in_advice_decl (arg0._in_advice_decl), _in_pointcut_decl (arg0._in_pointcut_decl), _at_end_of_advice_decl (arg0._at_end_of_advice_decl), _saved_scope (arg0._saved_scope) {
 
483
  TJP__ZN4Puma9CSemanticC1ERKN4PumaE9CSemantic_0 tjp;
 
484
  tjp._that =  (TJP__ZN4Puma9CSemanticC1ERKN4PumaE9CSemantic_0::That*)this;
 
485
  AC::invoke_ExtAC_ExtAC_a5_after<TJP__ZN4Puma9CSemanticC1ERKN4PumaE9CSemantic_0> (&tjp);
 
486
 
 
487
}
 
488
 
 
489
#line 129 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
490
};
 
491
 
 
492
 
 
493
#line 494 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
494
 
 
495
 
 
496
struct TJP__ZN4Puma9CSemanticC1ERN4PumaE7CSyntaxRN4PumaE8CBuilder_0 {
 
497
  typedef void Result;
 
498
  typedef ::Puma::CSemantic That;
 
499
  typedef ::Puma::CSemantic Target;
 
500
  static const int JPID = 60;
 
501
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
502
  struct Res {
 
503
    typedef void Type;
 
504
    typedef void ReferredType;
 
505
  };
 
506
  enum { ARGS = 2 };
 
507
  template <int I, int DUMMY = 0> struct Arg {
 
508
    typedef void Type;
 
509
    typedef void ReferredType;
 
510
  };
 
511
  template <int DUMMY> struct Arg<0, DUMMY> {
 
512
    typedef ::Puma::CSyntax & Type;
 
513
    typedef ::Puma::CSyntax ReferredType;
 
514
  };
 
515
  template <int DUMMY> struct Arg<1, DUMMY> {
 
516
    typedef ::Puma::CBuilder & Type;
 
517
    typedef ::Puma::CBuilder ReferredType;
 
518
  };
 
519
 
 
520
  That *_that;
 
521
 
 
522
  inline That *that() {return (That*)_that;}
 
523
 
 
524
};
 
525
 
 
526
 
 
527
#line 131 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
528
inline CSemantic::CSemantic (CSyntax & arg0, CBuilder & arg1) : 
 
529
  _syntax (arg0), _builder (arg1),
 
530
  in_arg_decl (false),
 
531
  _in_arg_decl_seq (false),
 
532
  is_type_name (false)
 
533
 
 
534
#line 535 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
535
{
 
536
  TJP__ZN4Puma9CSemanticC1ERN4PumaE7CSyntaxRN4PumaE8CBuilder_0 tjp;
 
537
  tjp._that =  (TJP__ZN4Puma9CSemanticC1ERN4PumaE7CSyntaxRN4PumaE8CBuilder_0::That*)this;
 
538
this->__exec_old_C1(arg0, arg1);
 
539
  AC::invoke_ExtAC_ExtAC_a5_after<TJP__ZN4Puma9CSemanticC1ERN4PumaE7CSyntaxRN4PumaE8CBuilder_0> (&tjp);
 
540
 
 
541
}
 
542
inline void Puma::CSemantic::__exec_old_C1(::Puma::CSyntax & s,::Puma::CBuilder & b)
 
543
#line 136 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
544
{}
 
545
 
 
546
inline CBuilder &CSemantic::builder () const 
 
547
 { return _builder; }
 
548
 
 
549
inline CSyntax &CSemantic::syntax () const 
 
550
 { return _syntax; }
 
551
 
 
552
inline CObjectInfo *CSemantic::lookup (const char *id, SemObjType type, 
 
553
  bool nested) const
 
554
 { return lookup (id, current_scope, type, nested); }
 
555
inline CObjectInfo *CSemantic::lookup (CT_SimpleName *id, SemObjType type, 
 
556
  bool nested) const
 
557
 { return lookup (id->Text (), current_scope, type, nested); }
 
558
 
 
559
inline bool CSemantic::in_arg_decl_seq () const 
 
560
 { return _in_arg_decl_seq; }
 
561
inline void CSemantic::enter_arg_decl_seq () 
 
562
 { _in_arg_decl_seq = true; _in_param_decl_clause.push (true); }
 
563
inline void CSemantic::leave_arg_decl_seq () 
 
564
 { _in_arg_decl_seq = false; _in_param_decl_clause.pop (); }
 
565
 
 
566
inline CProtection::Type CSemantic::protection () const
 
567
 { return CProtection::PROT_NONE; }
 
568
 
 
569
} // namespace Puma
 
570
 
 
571
#endif /* __CSemantic_h__ */
 
572
 
 
573
#line 574 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
574
#endif // __ac_guard__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CSemantic_h__
 
575
 
 
576
#line 163 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/inc/Puma/CSemantic.h"
 
577
 
 
578
#line 579 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/inc/Puma/CSemantic.h"
 
579
 
 
580
#ifdef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CSemantic_h__
 
581
/*** begin of aspect includes ***/
 
582
#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__)
 
583
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
584
#include "WinIfExists.ah"
 
585
#endif
 
586
#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__)
 
587
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
588
#include "WinImportHandler.ah"
 
589
#endif
 
590
#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__)
 
591
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__
 
592
#include "WinMacros.ah"
 
593
#endif
 
594
#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__)
 
595
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
596
#include "CMatchSyntax.ah"
 
597
#endif
 
598
#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__)
 
599
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
600
#include "ExtGnu.ah"
 
601
#endif
 
602
#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__)
 
603
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__
 
604
#include "ExtAC.ah"
 
605
#endif
 
606
#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__)
 
607
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
608
#include "ExtACTree.ah"
 
609
#endif
 
610
#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__)
 
611
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
612
#include "TraceSyntax.ah"
 
613
#endif
 
614
#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__)
 
615
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__
 
616
#include "WinAsm.ah"
 
617
#endif
 
618
#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__)
 
619
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
620
#include "WinDeclSpecs.ah"
 
621
#endif
 
622
#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__)
 
623
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
624
#include "WinMemberExplSpec.ah"
 
625
#endif
 
626
#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__)
 
627
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
628
#include "WinTypeKeywords.ah"
 
629
#endif
 
630
#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__)
 
631
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
632
#include "PragmaOnceUnitState.ah"
 
633
#endif
 
634
#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__)
 
635
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
636
#include "PragmaOnce.ah"
 
637
#endif
 
638
#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__)
 
639
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__
 
640
#include "CCExprResolve.ah"
 
641
#endif
 
642
#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__)
 
643
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
 
644
#include "CExprResolve.ah"
 
645
#endif
 
646
/*** end of aspect includes ***/
 
647
#undef __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
 
648
#undef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CSemantic_h__
 
649
#endif // __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_inc_Puma_CSemantic_h__