174
190
#ifndef __scan_buffer_h__
175
191
#define __scan_buffer_h__
181
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
199
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
183
203
class WinIfExists;
184
204
class WinImportHandler;
208
class WinMemberExplSpec;
209
class WinTypeKeywords;
189
212
class ExtACBuilderCoupling;
190
213
class ExtACSyntaxCoupling;
192
215
class ExtACKeywords;
195
class WinMemberExplSpec;
196
class WinTypeKeywords;
197
217
class PragmaOnceUnitState;
198
218
class PragmaOnce;
203
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
222
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
204
223
class ScanBuffer {
205
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
224
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
225
friend class ::CCExprResolve;
226
friend class ::CExprResolve;
206
227
friend class ::WinIfExists;
207
228
friend class ::WinImportHandler;
208
229
friend class ::WinMacros;
209
friend class ::CMatchSyntax;
210
friend class ::ExtGnu;
230
friend class ::WinAsm;
231
friend class ::WinDeclSpecs;
232
friend class ::WinMemberExplSpec;
233
friend class ::WinTypeKeywords;
234
friend class ::WinFriend;
211
235
friend class ::ExtAC;
212
236
friend class ::ExtACBuilderCoupling;
213
237
friend class ::ExtACSyntaxCoupling;
214
238
friend class ::ExtACTree;
215
239
friend class ::ExtACKeywords;
216
friend class ::WinAsm;
217
friend class ::WinDeclSpecs;
218
friend class ::WinMemberExplSpec;
219
friend class ::WinTypeKeywords;
240
friend class ::ExtGnu;
220
241
friend class ::PragmaOnceUnitState;
221
242
friend class ::PragmaOnce;
222
friend class ::CCExprResolve;
223
friend class ::CExprResolve;
243
friend class ::CMatchSyntax;
225
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
245
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
228
typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
248
typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
251
int _token; // start position of current token
252
int _pos; // current position (in token; _pos >= _token && pos < filled)
253
char *_buffer; // token to the buffer that contains all input characters
254
int _buff_size; // size of the input buffer
258
ScanBuffer () : _state (STATE_NEW) {}
260
// init buffer to directly scan from a string
261
void init (const char *str, int l = 0);
230
virtual ~ScanBuffer () {}
232
virtual char next () = 0;
233
virtual char *token () = 0;
234
virtual int len () const = 0;
235
virtual void reset () = 0;
236
virtual void retry () = 0;
237
virtual void accept (int len) = 0;
238
virtual void more (int len) = 0;
239
virtual State state () const = 0;
263
char next () { return _buffer[_pos++]; }
264
char lookahead () { return _buffer[_pos]; }
265
char *token () const { return _buffer + _token; }
266
int len () const { return _pos - _token; }
267
void reset () { _token = _pos = 0; }
268
void retry () { _pos = _token; }
269
void accept (int len) {
273
void more (int len) { _pos = _token + len; }
275
if (_state == STATE_OK && _pos >= _buff_size)
245
284
#endif /* __scan_buffer_h__ */
247
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
248
// This file is part of PUMA.
249
// Copyright (C) 1999-2003 The PUMA developer team.
251
// This program is free software; you can redistribute it and/or
252
// modify it under the terms of the GNU General Public License as
253
// published by the Free Software Foundation; either version 2 of
254
// the License, or (at your option) any later version.
256
// This program is distributed in the hope that it will be useful,
257
// but WITHOUT ANY WARRANTY; without even the implied warranty of
258
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
259
// GNU General Public License for more details.
261
// You should have received a copy of the GNU General Public
262
// License along with this program; if not, write to the Free
263
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
274
#line 275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
277
class WinImportHandler;
282
class ExtACBuilderCoupling;
283
class ExtACSyntaxCoupling;
288
class WinMemberExplSpec;
289
class WinTypeKeywords;
290
class PragmaOnceUnitState;
296
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
297
template <class Item>
299
#line 300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
300
friend class ::WinIfExists;
301
friend class ::WinImportHandler;
302
friend class ::WinMacros;
303
friend class ::CMatchSyntax;
304
friend class ::ExtGnu;
305
friend class ::ExtAC;
306
friend class ::ExtACBuilderCoupling;
307
friend class ::ExtACSyntaxCoupling;
308
friend class ::ExtACTree;
309
friend class ::ExtACKeywords;
310
friend class ::WinAsm;
311
friend class ::WinDeclSpecs;
312
friend class ::WinMemberExplSpec;
313
friend class ::WinTypeKeywords;
314
friend class ::PragmaOnceUnitState;
315
friend class ::PragmaOnce;
316
friend class ::CCExprResolve;
317
friend class ::CExprResolve;
319
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
322
static const long default_init_size = 5;
323
static const long default_increment = 5;
326
Array (long is = default_init_size, long incr = default_increment);
327
Array (const Array<Item>& array);
328
Array<Item>& operator =(const Array<Item>&);
330
void append (const Item& item);
331
void insert (long index, const Item& item);
332
void prepend (const Item& item);
333
void remove (long index);
335
Item& get (long index);
336
Item& operator[] (long index);
337
Item fetch (long index) const;
338
Item& lookup (long index) const;
339
long length () const;
347
void check (long wanted);
350
template <class Item>
351
inline Array<Item>::Array (long is, long incr)
356
data = new Item[size];
359
template <class Item>
360
Array<Item>::Array (const Array<Item>& array)
364
data = new Item[size];
365
increment = array.increment;
367
for (int pos = 0; pos < array.length (); pos++)
368
append (array.lookup (pos));
371
template <class Item>
372
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
378
data = new Item[size];
379
increment = array.increment;
381
for (int pos = 0; pos < array.length (); pos++)
382
append (array.lookup (pos));
386
template <class Item>
387
Array<Item>::~Array ()
393
template <class Item>
394
inline void Array<Item>::check (long wanted)
400
while (wanted >= size)
405
new_data = new Item[size];
406
for (int pos = 0; pos < count; pos++)
407
new_data[pos] = data[pos];
413
template <class Item>
414
inline void Array<Item>::append (const Item& item)
417
data[count++] = item;
420
template <class Item>
421
void Array<Item>::prepend (const Item& item)
426
template <class Item>
427
void Array<Item>::insert (long index, const Item& item)
430
for (int pos = count; pos > index; pos--)
431
data[pos] = data[pos - 1];
436
template <class Item>
437
inline Item& Array<Item>::get (long index)
445
template <class Item>
446
inline Item& Array<Item>::operator[] (long index)
451
template <class Item>
452
inline Item Array<Item>::fetch (long index) const
454
assert(index < count);
458
template <class Item>
459
inline long Array<Item>::length () const
464
template <class Item>
465
inline void Array<Item>::remove (long index)
467
if (index < count && count > 0)
469
for (int pos = index; pos < count - 1; pos++)
470
data[pos] = data[pos + 1];
477
inline void Array<int>::reset () {
482
template <class Item>
483
void Array<Item>::reset ()
488
size = default_init_size;
489
increment = default_increment;
490
data = new Item[size];
493
template <class Item>
494
inline Item& Array<Item>::lookup (long index) const
496
assert(index >= 0 && index < count);
497
// if (index >= count) index = count - 1;
498
// if (index < 0) index = 0;
505
// Array specialization for pointer types sharing method definitions
509
#include "Puma/VoidPtrArray.h"
514
template <class Item>
515
class Array<Item*> : private VoidPtrArray {
516
typedef VoidPtrArray Base;
519
Array (long is = default_init_size, long incr = default_increment) :
521
Array (const Array<Item*> &array) :
523
Array<Item*> &operator= (const Array<Item*> &array)
524
{ return (Array<Item*>&)Base::operator= (array); }
528
void append (const Item *item) { Base::append ((void*)item); }
529
void insert (long idx, const Item *item) { Base::insert (idx, (void*)item); }
530
void prepend (const Item *item) { Base::prepend ((void*)item); }
531
void remove (long idx) { Base::remove (idx); }
532
void reset () { Base::reset (); }
534
Item *&get (long idx) { return (Item*&)Base::get (idx); }
535
Item *&operator[] (long idx) { return (Item*&)Base::operator[] (idx); }
536
Item *fetch (long idx) const { return (Item*)Base::fetch (idx); }
537
Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
538
long length () const { return Base::length (); }
546
#endif /* __array_h__ */
548
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
553
#line 554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
556
class WinImportHandler;
561
class ExtACBuilderCoupling;
562
class ExtACSyntaxCoupling;
567
class WinMemberExplSpec;
568
class WinTypeKeywords;
569
class PragmaOnceUnitState;
575
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
577
#line 578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
578
friend class ::WinIfExists;
579
friend class ::WinImportHandler;
580
friend class ::WinMacros;
581
friend class ::CMatchSyntax;
582
friend class ::ExtGnu;
583
friend class ::ExtAC;
584
friend class ::ExtACBuilderCoupling;
585
friend class ::ExtACSyntaxCoupling;
586
friend class ::ExtACTree;
587
friend class ::ExtACKeywords;
588
friend class ::WinAsm;
589
friend class ::WinDeclSpecs;
590
friend class ::WinMemberExplSpec;
591
friend class ::WinTypeKeywords;
592
friend class ::PragmaOnceUnitState;
593
friend class ::PragmaOnce;
594
friend class ::CCExprResolve;
595
friend class ::CExprResolve;
597
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
599
ScanBuffer *next_buffer;
286
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
291
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
296
class WinImportHandler;
300
class WinMemberExplSpec;
301
class WinTypeKeywords;
304
class ExtACBuilderCoupling;
305
class ExtACSyntaxCoupling;
309
class PragmaOnceUnitState;
314
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
315
class CScanBuffer : public ScanBuffer {
316
#line 317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
317
friend class ::CCExprResolve;
318
friend class ::CExprResolve;
319
friend class ::WinIfExists;
320
friend class ::WinImportHandler;
321
friend class ::WinMacros;
322
friend class ::WinAsm;
323
friend class ::WinDeclSpecs;
324
friend class ::WinMemberExplSpec;
325
friend class ::WinTypeKeywords;
326
friend class ::WinFriend;
327
friend class ::ExtAC;
328
friend class ::ExtACBuilderCoupling;
329
friend class ::ExtACSyntaxCoupling;
330
friend class ::ExtACTree;
331
friend class ::ExtACKeywords;
332
friend class ::ExtGnu;
333
friend class ::PragmaOnceUnitState;
334
friend class ::PragmaOnce;
335
friend class ::CMatchSyntax;
337
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
606
void decorate (ScanBuffer *nb) { next_buffer = nb; }
344
CScanBuffer () : _new_line_pos (-1) {}
607
345
inline char next ();
608
346
inline void reset ();
347
inline void retry ();
609
348
inline void accept (int len);
610
inline void retry ();
611
bool new_line () const { return on_new_line; }
612
char *token () { return next_buffer->token (); }
613
int len () const { return next_buffer->len (); }
614
void more (int len) { next_buffer->more (len); }
615
ScanBuffer::State state () const { return next_buffer->state (); }
349
inline bool new_line (int len) const;
619
353
inline char CScanBuffer::next () {
620
char character = next_buffer->next ();
621
if (character == '\n' && nl_pos == -1)
354
char character = ScanBuffer::next ();
355
if (character == '\n' && _new_line_pos == -1)
356
_new_line_pos = len ();
357
if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
358
ScanBuffer::lookahead () == '\\')
624
360
return character;
627
363
inline void CScanBuffer::reset () {
628
next_buffer->reset ();
364
ScanBuffer::reset ();
635
369
inline void CScanBuffer::retry () {
637
next_buffer->retry ();
370
ScanBuffer::retry ();
641
374
inline void CScanBuffer::accept (int len) {
642
on_new_line = (nl_pos >= 0 && nl_pos < len);
644
next_buffer->accept (len);
375
ScanBuffer::accept (len);
379
inline bool CScanBuffer::new_line (int len) const {
380
return _new_line_pos != -1 && _new_line_pos <= len;
647
383
} // namespace Puma
649
385
#endif // __CScanBuffer_h__
651
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
387
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
652
388
// This file is part of PUMA.
653
389
// Copyright (C) 1999-2003 The PUMA developer team.
1000
596
#endif // __mapped_orange_recognizer_h__
1002
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
598
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
1003
599
namespace Puma {
1007
#line 1008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
603
#line 604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
1008
604
} // closed Puma
1009
607
class WinIfExists;
1010
608
class WinImportHandler;
1011
609
class WinMacros;
612
class WinMemberExplSpec;
613
class WinTypeKeywords;
1015
616
class ExtACBuilderCoupling;
1016
617
class ExtACSyntaxCoupling;
1017
618
class ExtACTree;
1018
619
class ExtACKeywords;
1021
class WinMemberExplSpec;
1022
class WinTypeKeywords;
1023
621
class PragmaOnceUnitState;
1024
622
class PragmaOnce;
1025
class CCExprResolve;
1027
624
namespace Puma {
1029
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
626
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
1030
627
class CCommentRecognizer {
1031
#line 1032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
628
#line 629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
629
friend class ::CCExprResolve;
630
friend class ::CExprResolve;
1032
631
friend class ::WinIfExists;
1033
632
friend class ::WinImportHandler;
1034
633
friend class ::WinMacros;
1035
friend class ::CMatchSyntax;
1036
friend class ::ExtGnu;
634
friend class ::WinAsm;
635
friend class ::WinDeclSpecs;
636
friend class ::WinMemberExplSpec;
637
friend class ::WinTypeKeywords;
638
friend class ::WinFriend;
1037
639
friend class ::ExtAC;
1038
640
friend class ::ExtACBuilderCoupling;
1039
641
friend class ::ExtACSyntaxCoupling;
1040
642
friend class ::ExtACTree;
1041
643
friend class ::ExtACKeywords;
1042
friend class ::WinAsm;
1043
friend class ::WinDeclSpecs;
1044
friend class ::WinMemberExplSpec;
1045
friend class ::WinTypeKeywords;
644
friend class ::ExtGnu;
1046
645
friend class ::PragmaOnceUnitState;
1047
646
friend class ::PragmaOnce;
1048
friend class ::CCExprResolve;
1049
friend class ::CExprResolve;
647
friend class ::CMatchSyntax;
1051
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
649
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
1054
652
typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
1094
692
#define __keyword_recognizer_h__
1097
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
695
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
1098
696
namespace Puma {
1102
#line 1103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
700
#line 701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
1103
701
} // closed Puma
1104
704
class WinIfExists;
1105
705
class WinImportHandler;
1106
706
class WinMacros;
709
class WinMemberExplSpec;
710
class WinTypeKeywords;
1110
713
class ExtACBuilderCoupling;
1111
714
class ExtACSyntaxCoupling;
1112
715
class ExtACTree;
1113
716
class ExtACKeywords;
1116
class WinMemberExplSpec;
1117
class WinTypeKeywords;
1118
718
class PragmaOnceUnitState;
1119
719
class PragmaOnce;
1120
class CCExprResolve;
1122
721
namespace Puma {
1124
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
723
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
1125
724
class KeywordRecognizer {
1126
#line 1127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
725
#line 726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
726
friend class ::CCExprResolve;
727
friend class ::CExprResolve;
1127
728
friend class ::WinIfExists;
1128
729
friend class ::WinImportHandler;
1129
730
friend class ::WinMacros;
1130
friend class ::CMatchSyntax;
1131
friend class ::ExtGnu;
731
friend class ::WinAsm;
732
friend class ::WinDeclSpecs;
733
friend class ::WinMemberExplSpec;
734
friend class ::WinTypeKeywords;
735
friend class ::WinFriend;
1132
736
friend class ::ExtAC;
1133
737
friend class ::ExtACBuilderCoupling;
1134
738
friend class ::ExtACSyntaxCoupling;
1135
739
friend class ::ExtACTree;
1136
740
friend class ::ExtACKeywords;
1137
friend class ::WinAsm;
1138
friend class ::WinDeclSpecs;
1139
friend class ::WinMemberExplSpec;
1140
friend class ::WinTypeKeywords;
741
friend class ::ExtGnu;
1141
742
friend class ::PragmaOnceUnitState;
1142
743
friend class ::PragmaOnce;
1143
friend class ::CCExprResolve;
1144
friend class ::CExprResolve;
744
friend class ::CMatchSyntax;
1146
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
746
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
1149
749
virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
1159
759
#endif /* __keyword_recognizer_h__ */
1161
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
1166
#line 1167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
761
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
762
// This file is part of PUMA.
763
// Copyright (C) 1999-2003 The PUMA developer team.
765
// This program is free software; you can redistribute it and/or
766
// modify it under the terms of the GNU General Public License as
767
// published by the Free Software Foundation; either version 2 of
768
// the License, or (at your option) any later version.
770
// This program is distributed in the hope that it will be useful,
771
// but WITHOUT ANY WARRANTY; without even the implied warranty of
772
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
773
// GNU General Public License for more details.
775
// You should have received a copy of the GNU General Public
776
// License along with this program; if not, write to the Free
777
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
787
template <class Item>
790
static const long default_init_size = 5;
791
static const long default_increment = 5;
794
Array (long is = default_init_size, long incr = default_increment);
795
Array (const Array<Item>& array);
796
Array<Item>& operator =(const Array<Item>&);
798
void append (const Item& item);
799
void insert (long index, const Item& item);
800
void prepend (const Item& item);
801
void remove (long index);
803
Item& get (long index);
804
Item& operator[] (long index);
805
Item fetch (long index) const;
806
Item& lookup (long index) const;
807
long length () const;
815
void grow (long wanted);
818
template <class Item>
819
inline Array<Item>::Array (long is, long incr) {
826
template <class Item>
827
Array<Item>::Array (const Array<Item>& array) {
830
increment = array.increment;
832
if (size && array.data) {
833
data = new Item[size];
834
for (; count < array.count; count++) {
835
data[count] = array.data[count];
841
template <class Item>
842
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
848
increment = array.increment;
850
if (size && array.data) {
851
data = new Item[size];
852
for (; count < array.count; count++) {
853
data[count] = array.data[count];
861
template <class Item>
862
Array<Item>::~Array () {
867
template <class Item>
868
inline void Array<Item>::grow (long wanted) {
872
} while (wanted >= size);
875
Item* new_data = new Item[size];
876
for (long i = 0; i < count; i++) {
877
new_data[i] = data[i];
882
data = new Item[size];
885
template <class Item>
886
inline void Array<Item>::append (const Item& item) {
887
if (count >= size || ! data) {
890
data[count++] = item;
893
template <class Item>
894
void Array<Item>::prepend (const Item& item) {
898
template <class Item>
899
void Array<Item>::insert (long index, const Item& item) {
900
if (count >= size || ! data) {
903
for (long i = count; i > index; i--)
904
data[i] = data[i - 1];
909
template <class Item>
910
inline Item& Array<Item>::get (long index) {
911
if (index >= size || ! data) {
919
template <class Item>
920
inline Item& Array<Item>::operator[] (long index) {
924
template <class Item>
925
inline Item Array<Item>::fetch (long index) const {
926
assert(index < count && data);
930
template <class Item>
931
inline long Array<Item>::length () const {
935
template <class Item>
936
inline void Array<Item>::remove (long index) {
937
if (index < count && count > 0) {
938
for (long i = index; i < count - 1; i++)
939
data[i] = data[i + 1];
946
inline void Array<int>::reset () {
951
template <class Item>
952
void Array<Item>::reset () {
957
size = default_init_size;
958
increment = default_increment;
959
data = new Item[size];
962
template <class Item>
963
inline Item& Array<Item>::lookup (long index) const {
964
assert(index >= 0 && index < count);
971
// Array specialization for pointer types sharing method definitions
975
#include "Puma/VoidPtrArray.h"
980
template <class Item>
981
class Array<Item*> : private VoidPtrArray {
982
typedef VoidPtrArray Base;
985
Array (long is = default_init_size, long incr = default_increment) :
987
Array (const Array<Item*> &array) :
989
Array<Item*> &operator= (const Array<Item*> &array)
990
{ return (Array<Item*>&)Base::operator= (array); }
994
void append (const Item *item) { Base::append ((void*)item); }
995
void insert (long idx, const Item *item) { Base::insert (idx, (void*)item); }
996
void prepend (const Item *item) { Base::prepend ((void*)item); }
997
void remove (long idx) { Base::remove (idx); }
998
void reset () { Base::reset (); }
1000
Item *&get (long idx) { return (Item*&)Base::get (idx); }
1001
Item *&operator[] (long idx) { return (Item*&)Base::operator[] (idx); }
1002
Item *fetch (long idx) const { return (Item*)Base::fetch (idx); }
1003
Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
1004
long length () const { return Base::length (); }
1012
#endif /* __array_h__ */
1014
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
1019
#line 1020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
1167
1020
} // closed Puma
1021
class CCExprResolve;
1168
1023
class WinIfExists;
1169
1024
class WinImportHandler;
1170
1025
class WinMacros;
1028
class WinMemberExplSpec;
1029
class WinTypeKeywords;
1174
1032
class ExtACBuilderCoupling;
1175
1033
class ExtACSyntaxCoupling;
1176
1034
class ExtACTree;
1177
1035
class ExtACKeywords;
1180
class WinMemberExplSpec;
1181
class WinTypeKeywords;
1182
1037
class PragmaOnceUnitState;
1183
1038
class PragmaOnce;
1184
class CCExprResolve;
1186
1040
namespace Puma {
1188
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
1042
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
1189
1043
class CRecognizer {
1190
#line 1191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
1044
#line 1045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
1045
friend class ::CCExprResolve;
1046
friend class ::CExprResolve;
1191
1047
friend class ::WinIfExists;
1192
1048
friend class ::WinImportHandler;
1193
1049
friend class ::WinMacros;
1194
friend class ::CMatchSyntax;
1195
friend class ::ExtGnu;
1050
friend class ::WinAsm;
1051
friend class ::WinDeclSpecs;
1052
friend class ::WinMemberExplSpec;
1053
friend class ::WinTypeKeywords;
1054
friend class ::WinFriend;
1196
1055
friend class ::ExtAC;
1197
1056
friend class ::ExtACBuilderCoupling;
1198
1057
friend class ::ExtACSyntaxCoupling;
1199
1058
friend class ::ExtACTree;
1200
1059
friend class ::ExtACKeywords;
1201
friend class ::WinAsm;
1202
friend class ::WinDeclSpecs;
1203
friend class ::WinMemberExplSpec;
1204
friend class ::WinTypeKeywords;
1060
friend class ::ExtGnu;
1205
1061
friend class ::PragmaOnceUnitState;
1206
1062
friend class ::PragmaOnce;
1207
friend class ::CCExprResolve;
1208
friend class ::CExprResolve;
1210
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
1212
CScanBuffer scan_buffer;
1063
friend class ::CMatchSyntax;
1065
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
1213
1067
CCommentRecognizer comment_recognizer;
1214
1068
Array<KeywordRecognizer*> additional_keyword_recognizers;
1071
CScanBuffer scan_buffer; // TODO: temporarily made public!
1217
1073
typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
1218
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE,
1074
typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE,
1219
1075
KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
1221
CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
1077
CRecognizer () : directives(true), wildcards (false),
1078
aspectc (false), macro_ops (false),
1222
1079
std_c (true), std_cplusplus (true) {}
1223
CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
1224
macro_ops (false) { setup (buffer); }
1080
void allow_directives (bool flag = true) { directives = flag; }
1225
1081
void allow_wildcards (bool flag = true) { wildcards = flag; }
1226
1082
void allow_aspectc (bool flag = true) { aspectc = flag; }
1227
1083
void allow_macro_ops (bool flag = true) { macro_ops = flag; }
1228
1084
void allow_std_c (bool flag = true) { std_c = flag; }
1229
1085
void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
1230
void setup (ScanBuffer &buffer);
1231
1087
int recognize (Lang &lang, int &expr, int &len);
1232
Mode mode () { return scan_mode; }
1233
bool new_line () const { return scan_buffer.new_line (); }
1088
Mode mode () const { return scan_mode; }
1089
void mode (Mode mode) { scan_mode = mode; }
1234
1090
CScanBuffer& buffer () { return scan_buffer; }
1235
1091
void addRecognizer(KeywordRecognizer &recognizer)
1236
1092
{ additional_keyword_recognizers.append(&recognizer); }
1239
static MappedOrangeRecognizer<CScanBuffer> string_recognizer;
1240
1095
static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
1241
1096
static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
1242
1097
static OrangeRecognizer<CScanBuffer> dir_recognizer;
1243
static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
1244
1098
static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
1245
1099
static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
1246
1100
static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
1248
1102
Mode scan_mode;
1249
bool check_directive;
1250
1104
bool wildcards;
1252
1106
bool macro_ops;
1556
1440
#endif /* __printable_h__ */
1558
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1559
// This file is part of PUMA.
1560
// Copyright (C) 1999-2003 The PUMA developer team.
1562
// This program is free software; you can redistribute it and/or
1563
// modify it under the terms of the GNU General Public License as
1564
// published by the Free Software Foundation; either version 2 of
1565
// the License, or (at your option) any later version.
1567
// This program is distributed in the hope that it will be useful,
1568
// but WITHOUT ANY WARRANTY; without even the implied warranty of
1569
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1570
// GNU General Public License for more details.
1572
// You should have received a copy of the GNU General Public
1573
// License along with this program; if not, write to the Free
1574
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1575
// MA 02111-1307 USA
1577
#ifndef __location_info_h__
1578
#define __location_info_h__
1581
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
1582
// This file is part of PUMA.
1583
// Copyright (C) 1999-2003 The PUMA developer team.
1585
// This program is free software; you can redistribute it and/or
1586
// modify it under the terms of the GNU General Public License as
1587
// published by the Free Software Foundation; either version 2 of
1588
// the License, or (at your option) any later version.
1590
// This program is distributed in the hope that it will be useful,
1591
// but WITHOUT ANY WARRANTY; without even the implied warranty of
1592
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1593
// GNU General Public License for more details.
1595
// You should have received a copy of the GNU General Public
1596
// License along with this program; if not, write to the Free
1597
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1598
// MA 02111-1307 USA
1600
#ifndef __filename_h__
1601
#define __filename_h__
1604
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1442
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1605
1443
// This file is part of PUMA.
1606
1444
// Copyright (C) 1999-2003 The PUMA developer team.
2290
2146
#endif /* __filename_info_h__ */
2292
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
2148
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
2293
2149
namespace Puma {
2297
#line 2298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2153
#line 2154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2298
2154
} // closed Puma
2155
class CCExprResolve;
2299
2157
class WinIfExists;
2300
2158
class WinImportHandler;
2301
2159
class WinMacros;
2162
class WinMemberExplSpec;
2163
class WinTypeKeywords;
2305
2166
class ExtACBuilderCoupling;
2306
2167
class ExtACSyntaxCoupling;
2307
2168
class ExtACTree;
2308
2169
class ExtACKeywords;
2311
class WinMemberExplSpec;
2312
class WinTypeKeywords;
2313
2171
class PragmaOnceUnitState;
2314
2172
class PragmaOnce;
2315
class CCExprResolve;
2317
2174
namespace Puma {
2319
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
2176
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
2320
2177
class Filename : public SmartPtr, public Printable {
2321
#line 2322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2178
#line 2179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2179
friend class ::CCExprResolve;
2180
friend class ::CExprResolve;
2322
2181
friend class ::WinIfExists;
2323
2182
friend class ::WinImportHandler;
2324
2183
friend class ::WinMacros;
2325
friend class ::CMatchSyntax;
2326
friend class ::ExtGnu;
2184
friend class ::WinAsm;
2185
friend class ::WinDeclSpecs;
2186
friend class ::WinMemberExplSpec;
2187
friend class ::WinTypeKeywords;
2188
friend class ::WinFriend;
2327
2189
friend class ::ExtAC;
2328
2190
friend class ::ExtACBuilderCoupling;
2329
2191
friend class ::ExtACSyntaxCoupling;
2330
2192
friend class ::ExtACTree;
2331
2193
friend class ::ExtACKeywords;
2332
friend class ::WinAsm;
2333
friend class ::WinDeclSpecs;
2334
friend class ::WinMemberExplSpec;
2335
friend class ::WinTypeKeywords;
2194
friend class ::ExtGnu;
2336
2195
friend class ::PragmaOnceUnitState;
2337
2196
friend class ::PragmaOnce;
2338
friend class ::CCExprResolve;
2339
friend class ::CExprResolve;
2197
friend class ::CMatchSyntax;
2341
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
2199
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
2343
2201
FilenameInfo *info () const { return (FilenameInfo*)data (); }
2362
2221
#endif /* __filename_h__ */
2364
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2223
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2365
2224
namespace Puma {
2369
#line 2370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2228
#line 2229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2370
2229
} // closed Puma
2230
class CCExprResolve;
2371
2232
class WinIfExists;
2372
2233
class WinImportHandler;
2373
2234
class WinMacros;
2237
class WinMemberExplSpec;
2238
class WinTypeKeywords;
2377
2241
class ExtACBuilderCoupling;
2378
2242
class ExtACSyntaxCoupling;
2379
2243
class ExtACTree;
2380
2244
class ExtACKeywords;
2383
class WinMemberExplSpec;
2384
class WinTypeKeywords;
2385
2246
class PragmaOnceUnitState;
2386
2247
class PragmaOnce;
2387
class CCExprResolve;
2389
2249
namespace Puma {
2391
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2392
class LocationInfo : public RefCnt {
2393
#line 2394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2251
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2253
#line 2254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2254
friend class ::CCExprResolve;
2255
friend class ::CExprResolve;
2394
2256
friend class ::WinIfExists;
2395
2257
friend class ::WinImportHandler;
2396
2258
friend class ::WinMacros;
2397
friend class ::CMatchSyntax;
2398
friend class ::ExtGnu;
2259
friend class ::WinAsm;
2260
friend class ::WinDeclSpecs;
2261
friend class ::WinMemberExplSpec;
2262
friend class ::WinTypeKeywords;
2263
friend class ::WinFriend;
2399
2264
friend class ::ExtAC;
2400
2265
friend class ::ExtACBuilderCoupling;
2401
2266
friend class ::ExtACSyntaxCoupling;
2402
2267
friend class ::ExtACTree;
2403
2268
friend class ::ExtACKeywords;
2404
friend class ::WinAsm;
2405
friend class ::WinDeclSpecs;
2406
friend class ::WinMemberExplSpec;
2407
friend class ::WinTypeKeywords;
2269
friend class ::ExtGnu;
2408
2270
friend class ::PragmaOnceUnitState;
2409
2271
friend class ::PragmaOnce;
2410
friend class ::CCExprResolve;
2411
friend class ::CExprResolve;
2272
friend class ::CMatchSyntax;
2413
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2274
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2415
2276
Filename _filename;
2419
LocationInfo () : _filename (), _line (0) {}
2420
void setup (Filename f, int l);
2281
Location () : _filename (), _line (0), _column (0) {}
2282
Location (Filename f, int l, int c = 0) { setup (f, l, c); }
2283
void setup (Filename f, int l, int c = 0) {
2421
2288
const Filename &filename () const { return _filename; }
2422
2289
int line () const { return _line; }
2423
bool operator < (const LocationInfo &l) const;
2424
bool operator == (const LocationInfo &l) const;
2430
#endif /* __location_info_h__ */
2432
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2437
#line 2438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2440
class WinImportHandler;
2445
class ExtACBuilderCoupling;
2446
class ExtACSyntaxCoupling;
2448
class ExtACKeywords;
2451
class WinMemberExplSpec;
2452
class WinTypeKeywords;
2453
class PragmaOnceUnitState;
2455
class CCExprResolve;
2459
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2460
class Location : public SmartPtr, public Printable {
2461
#line 2462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2462
friend class ::WinIfExists;
2463
friend class ::WinImportHandler;
2464
friend class ::WinMacros;
2465
friend class ::CMatchSyntax;
2466
friend class ::ExtGnu;
2467
friend class ::ExtAC;
2468
friend class ::ExtACBuilderCoupling;
2469
friend class ::ExtACSyntaxCoupling;
2470
friend class ::ExtACTree;
2471
friend class ::ExtACKeywords;
2472
friend class ::WinAsm;
2473
friend class ::WinDeclSpecs;
2474
friend class ::WinMemberExplSpec;
2475
friend class ::WinTypeKeywords;
2476
friend class ::PragmaOnceUnitState;
2477
friend class ::PragmaOnce;
2478
friend class ::CCExprResolve;
2479
friend class ::CExprResolve;
2481
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2483
LocationInfo *info () const { return (LocationInfo*)data (); }
2487
Location (Filename f, int l) { setup (f, l); }
2488
Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2489
LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2490
void setup (Filename f, int l);
2491
const Filename &filename () const { return info ()->filename (); }
2493
bool operator == (const Location &l) const;
2290
int column () const { return _column; }
2291
bool operator == (const Location &l) const {
2292
return filename () == l.filename () && line () == l.line () &&
2293
column () == l.column ();
2494
2295
bool operator != (const Location &l) const { return ! (*this == l); }
2495
bool operator < (const Location &l) const;
2296
bool operator < (const Location &l) const {
2297
// TODO: does it make sense to compare the filenames? better assert?
2298
if (filename () != l.filename ())
2300
return line () < l.line () && column () < l.column ();
2497
virtual void print (ostream &os) const {
2304
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2499
2305
#ifdef VISUAL_STUDIO
2500
os << filename () << "(" << line () << ")";
2306
os << loc.filename () << "(" << loc.line () << ")";
2502
os << filename () << ":" << line ();
2308
os << loc.filename () << ":" << loc.line ();
2508
2312
} // namespace Puma
2510
2314
#endif /* __location_h__ */
2512
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
2316
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
2513
2317
// This file is part of PUMA.
2514
2318
// Copyright (C) 1999-2003 The PUMA developer team.
2950
2762
#endif /* __list_h__ */
2952
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
2764
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2954
#line 2955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2766
#line 2767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2956
2768
#ifndef __ac_fwd_PragmaOnceUnitState__
2957
2769
#define __ac_fwd_PragmaOnceUnitState__
2958
2770
class PragmaOnceUnitState;
2960
2772
template <class JoinPoint>
2961
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
2773
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
2774
template <class JoinPoint>
2775
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
2965
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2966
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2779
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2780
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2969
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
2971
#line 2972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2973
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2783
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2784
// This file is part of PUMA.
2785
// Copyright (C) 1999-2003 The PUMA developer team.
2787
// This program is free software; you can redistribute it and/or
2788
// modify it under the terms of the GNU General Public License as
2789
// published by the Free Software Foundation; either version 2 of
2790
// the License, or (at your option) any later version.
2792
// This program is distributed in the hope that it will be useful,
2793
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2794
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2795
// GNU General Public License for more details.
2797
// You should have received a copy of the GNU General Public
2798
// License along with this program; if not, write to the Free
2799
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2800
// MA 02111-1307 USA
2802
#ifndef __UnitState__
2803
#define __UnitState__
2805
// The state of a unit:
2806
// 1. modified by manipulations and not updated at the class registry
2807
// 2. modified by manipulations and updated at the class registry
2808
// 3. unmodified by manipulations and not updated at the class registry
2809
// 4. unmodified by manipulations and updated at the class registry
2815
#line 2816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2817
class CCExprResolve;
2820
class WinImportHandler;
2824
class WinMemberExplSpec;
2825
class WinTypeKeywords;
2828
class ExtACBuilderCoupling;
2829
class ExtACSyntaxCoupling;
2831
class ExtACKeywords;
2833
class PragmaOnceUnitState;
2838
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
2840
#line 2841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2843
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2844
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
2846
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2974
2847
// This file is part of PUMA.
2975
2848
// Copyright (C) 1999-2003 The PUMA developer team.
3058
2931
// pointcut definitions
3060
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2933
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3064
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2937
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3067
2940
// initialize new state flag
3069
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2942
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3071
2944
public: template<class JoinPoint> void __a0_after
3072
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2945
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3074
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2947
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3075
2948
(JoinPoint *tjp)
3076
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2949
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3078
#line 3079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2951
#line 2952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3080
2953
JoinPoint *&thisJoinPoint = tjp;
3082
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2955
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3084
#line 3085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
2957
#line 2958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3086
2959
typedef typename JoinPoint::That __JP_That;
3087
2960
typedef typename JoinPoint::Target __JP_Target;
3088
2961
typedef typename JoinPoint::Result __JP_Result;
3090
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2963
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3092
2965
thisJoinPoint->that ()->_once = false;
3094
#line 3095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3098
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2967
#line 2968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2971
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2974
// initialize new flag for all managed units
2976
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2978
public: template<class JoinPoint> void __a1_after
2979
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2981
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2983
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2985
#line 2986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
2987
typedef typename JoinPoint::That __JP_That;
2988
typedef typename JoinPoint::Target __JP_Target;
2989
typedef typename JoinPoint::Result __JP_Result;
2991
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2993
// go through the whole unit hash table and reset the
2994
// `#pragma once' state of the units
2996
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
2998
for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
2999
(*iter).second->state ().onlyOnce (false);
3001
#line 3002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3005
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3102
3009
// this aspect should never be instantiated directly
3103
3010
PragmaOnceUnitState () {}
3105
#line 3106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3012
#line 3013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3108
3015
template <class JoinPoint>
3109
inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
3016
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
3110
3017
::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
3019
template <class JoinPoint>
3020
__attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
3021
::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
3114
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3025
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
3118
3029
#endif /* __PragmaOnceUnitState__ */
3120
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3121
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
3122
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
3124
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3125
// This file is part of PUMA.
3126
// Copyright (C) 1999-2003 The PUMA developer team.
3128
// This program is free software; you can redistribute it and/or
3129
// modify it under the terms of the GNU General Public License as
3130
// published by the Free Software Foundation; either version 2 of
3131
// the License, or (at your option) any later version.
3133
// This program is distributed in the hope that it will be useful,
3134
// but WITHOUT ANY WARRANTY; without even the implied warranty of
3135
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3136
// GNU General Public License for more details.
3138
// You should have received a copy of the GNU General Public
3139
// License along with this program; if not, write to the Free
3140
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
3141
// MA 02111-1307 USA
3143
#ifndef __UnitState__
3144
#define __UnitState__
3146
// The state of a unit:
3147
// 1. modified by manipulations and not updated at the class registry
3148
// 2. modified by manipulations and updated at the class registry
3149
// 3. unmodified by manipulations and not updated at the class registry
3150
// 4. unmodified by manipulations and updated at the class registry
3156
#line 3157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3159
class WinImportHandler;
3164
class ExtACBuilderCoupling;
3165
class ExtACSyntaxCoupling;
3167
class ExtACKeywords;
3170
class WinMemberExplSpec;
3171
class WinTypeKeywords;
3172
class PragmaOnceUnitState;
3174
class CCExprResolve;
3178
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3031
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
3035
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
3179
3036
class UnitState {
3180
#line 3181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3037
#line 3038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3038
friend class ::CCExprResolve;
3039
friend class ::CExprResolve;
3181
3040
friend class ::WinIfExists;
3182
3041
friend class ::WinImportHandler;
3183
3042
friend class ::WinMacros;
3184
friend class ::CMatchSyntax;
3185
friend class ::ExtGnu;
3043
friend class ::WinAsm;
3044
friend class ::WinDeclSpecs;
3045
friend class ::WinMemberExplSpec;
3046
friend class ::WinTypeKeywords;
3047
friend class ::WinFriend;
3186
3048
friend class ::ExtAC;
3187
3049
friend class ::ExtACBuilderCoupling;
3188
3050
friend class ::ExtACSyntaxCoupling;
3189
3051
friend class ::ExtACTree;
3190
3052
friend class ::ExtACKeywords;
3191
friend class ::WinAsm;
3192
friend class ::WinDeclSpecs;
3193
friend class ::WinMemberExplSpec;
3194
friend class ::WinTypeKeywords;
3053
friend class ::ExtGnu;
3195
3054
friend class ::PragmaOnceUnitState;
3196
3055
friend class ::PragmaOnce;
3197
friend class ::CCExprResolve;
3198
friend class ::CExprResolve;
3056
friend class ::CMatchSyntax;
3200
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3058
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
3202
3060
bool _modified;
3338
3190
#endif /* __UnitState__ */
3340
#line 3341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3341
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
3343
#line 72 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
3345
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
3192
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
3346
3193
namespace Puma {
3350
#line 3351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3197
#line 3198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3351
3198
} // closed Puma
3199
class CCExprResolve;
3352
3201
class WinIfExists;
3353
3202
class WinImportHandler;
3354
3203
class WinMacros;
3206
class WinMemberExplSpec;
3207
class WinTypeKeywords;
3358
3210
class ExtACBuilderCoupling;
3359
3211
class ExtACSyntaxCoupling;
3360
3212
class ExtACTree;
3361
3213
class ExtACKeywords;
3364
class WinMemberExplSpec;
3365
class WinTypeKeywords;
3366
3215
class PragmaOnceUnitState;
3367
3216
class PragmaOnce;
3368
class CCExprResolve;
3370
3218
namespace Puma {
3372
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
3220
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
3373
3221
class Unit : public List, public Printable {
3374
#line 3375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
3222
#line 3223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
3223
friend class ::CCExprResolve;
3224
friend class ::CExprResolve;
3375
3225
friend class ::WinIfExists;
3376
3226
friend class ::WinImportHandler;
3377
3227
friend class ::WinMacros;
3378
friend class ::CMatchSyntax;
3379
friend class ::ExtGnu;
3228
friend class ::WinAsm;
3229
friend class ::WinDeclSpecs;
3230
friend class ::WinMemberExplSpec;
3231
friend class ::WinTypeKeywords;
3232
friend class ::WinFriend;
3380
3233
friend class ::ExtAC;
3381
3234
friend class ::ExtACBuilderCoupling;
3382
3235
friend class ::ExtACSyntaxCoupling;
3383
3236
friend class ::ExtACTree;
3384
3237
friend class ::ExtACKeywords;
3385
friend class ::WinAsm;
3386
friend class ::WinDeclSpecs;
3387
friend class ::WinMemberExplSpec;
3388
friend class ::WinTypeKeywords;
3238
friend class ::ExtGnu;
3389
3239
friend class ::PragmaOnceUnitState;
3390
3240
friend class ::PragmaOnce;
3391
friend class ::CCExprResolve;
3392
friend class ::CExprResolve;
3241
friend class ::CMatchSyntax;
3394
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
3243
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
3397
3246
UnitState _state;
4143
4004
#define __SimpleParser_h__
4146
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4007
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4147
4008
#include <vector>
4148
4009
using namespace std;
4150
4011
namespace Puma {
4015
* Simple string parser.
4016
* \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
4154
#line 4155 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4019
#line 4020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4155
4020
} // closed Puma
4021
class CCExprResolve;
4156
4023
class WinIfExists;
4157
4024
class WinImportHandler;
4158
4025
class WinMacros;
4028
class WinMemberExplSpec;
4029
class WinTypeKeywords;
4162
4032
class ExtACBuilderCoupling;
4163
4033
class ExtACSyntaxCoupling;
4164
4034
class ExtACTree;
4165
4035
class ExtACKeywords;
4168
class WinMemberExplSpec;
4169
class WinTypeKeywords;
4170
4037
class PragmaOnceUnitState;
4171
4038
class PragmaOnce;
4172
class CCExprResolve;
4174
4040
namespace Puma {
4176
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4042
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4177
4043
class SimpleParser {
4178
#line 4179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4044
#line 4045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4045
friend class ::CCExprResolve;
4046
friend class ::CExprResolve;
4179
4047
friend class ::WinIfExists;
4180
4048
friend class ::WinImportHandler;
4181
4049
friend class ::WinMacros;
4182
friend class ::CMatchSyntax;
4183
friend class ::ExtGnu;
4050
friend class ::WinAsm;
4051
friend class ::WinDeclSpecs;
4052
friend class ::WinMemberExplSpec;
4053
friend class ::WinTypeKeywords;
4054
friend class ::WinFriend;
4184
4055
friend class ::ExtAC;
4185
4056
friend class ::ExtACBuilderCoupling;
4186
4057
friend class ::ExtACSyntaxCoupling;
4187
4058
friend class ::ExtACTree;
4188
4059
friend class ::ExtACKeywords;
4189
friend class ::WinAsm;
4190
friend class ::WinDeclSpecs;
4191
friend class ::WinMemberExplSpec;
4192
friend class ::WinTypeKeywords;
4060
friend class ::ExtGnu;
4193
4061
friend class ::PragmaOnceUnitState;
4194
4062
friend class ::PragmaOnce;
4195
friend class ::CCExprResolve;
4196
friend class ::CExprResolve;
4063
friend class ::CMatchSyntax;
4198
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4065
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
4204
static int tokenize (const string &, vector<string> &,
4205
const string &delimiters = " ");
4206
static string strip (const string &);
4069
* Remove enclosing double-quotes from a string.
4070
* \param str The string to strip.
4071
* \return String without the enclosing double-quotes.
4073
static string strip (const string& str);
4075
* Splits a given string into tokens recognized by the given delimiters.
4076
* \param str The string to split.
4077
* \param tokens A vector for the tokens.
4078
* \param delimiters A string with the delimiters. Default is a space or tab.
4079
* \return Number of recognized tokens.
4081
static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
4085
* Get the position of the next token.
4086
* \param line The string to tokenize.
4087
* \param delimiters A string with the token delimiters.
4088
* \param pos The current position in the string.
4089
* \param lastPos The last position in the string.
4090
* \return The position of the next token.
4092
static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
4094
* Get the begin of the next token.
4095
* \param line The string to tokenize.
4096
* \param delimiters A string with the token delimiters.
4097
* \param pos The current position in the string.
4098
* \return The begin of the next token.
4100
static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
4102
* Get the end of the next token.
4103
* \param line The string to tokenize.
4104
* \param delimiters A string with the token delimiters.
4105
* \param lastPos The last position in the string, i.e. the begin of the next token.
4106
* \return The end of the next token.
4108
static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
4212
4114
#endif /* __SimpleParser_h__ */
4214
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4116
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4215
4117
using namespace std;
4217
4119
namespace Puma {
4122
/** \brief The %Options %Parser searches command line parameters for options and
4123
* handles their option arguments, if applicable.
4221
#line 4222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4126
#line 4127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4222
4127
} // closed Puma
4128
class CCExprResolve;
4223
4130
class WinIfExists;
4224
4131
class WinImportHandler;
4225
4132
class WinMacros;
4135
class WinMemberExplSpec;
4136
class WinTypeKeywords;
4229
4139
class ExtACBuilderCoupling;
4230
4140
class ExtACSyntaxCoupling;
4231
4141
class ExtACTree;
4232
4142
class ExtACKeywords;
4235
class WinMemberExplSpec;
4236
class WinTypeKeywords;
4237
4144
class PragmaOnceUnitState;
4238
4145
class PragmaOnce;
4239
class CCExprResolve;
4241
4147
namespace Puma {
4243
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4149
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4244
4150
class OptsParser : public SimpleParser {
4245
#line 4246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4151
#line 4152 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4152
friend class ::CCExprResolve;
4153
friend class ::CExprResolve;
4246
4154
friend class ::WinIfExists;
4247
4155
friend class ::WinImportHandler;
4248
4156
friend class ::WinMacros;
4249
friend class ::CMatchSyntax;
4250
friend class ::ExtGnu;
4157
friend class ::WinAsm;
4158
friend class ::WinDeclSpecs;
4159
friend class ::WinMemberExplSpec;
4160
friend class ::WinTypeKeywords;
4161
friend class ::WinFriend;
4251
4162
friend class ::ExtAC;
4252
4163
friend class ::ExtACBuilderCoupling;
4253
4164
friend class ::ExtACSyntaxCoupling;
4254
4165
friend class ::ExtACTree;
4255
4166
friend class ::ExtACKeywords;
4256
friend class ::WinAsm;
4257
friend class ::WinDeclSpecs;
4258
friend class ::WinMemberExplSpec;
4259
friend class ::WinTypeKeywords;
4167
friend class ::ExtGnu;
4260
4168
friend class ::PragmaOnceUnitState;
4261
4169
friend class ::PragmaOnce;
4262
friend class ::CCExprResolve;
4263
friend class ::CExprResolve;
4265
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4170
friend class ::CMatchSyntax;
4172
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4176
/** \brief Vector holding the commandline parameters.
4178
* This vector is filled in the constructor
4267
4180
vector<string> m_argv;
4182
/** \brief Position of current parameter analyzed by the
4268
4185
unsigned int m_curarg;
4187
/** \brief The increment added to m_curarg used to get to the next
4188
* entry of m_argv which shall be analysed.
4269
4190
unsigned int m_tonext;
4192
/** \brief %Option number of currently processed element of m_argv
4196
/** \brief Name of current option
4200
/** \brief Value of current option argument
4277
enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
4279
enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
4208
* Return codes for OptsParser::getOption() and OptsParser::getArgument()
4211
NOARG =-4, /**< %Option has no argument */
4212
ERR = -3, /**< Error when parsing option */
4213
NOOPTION = -2, /**< Command line parameter is not an option */
4214
UNKNOWN = -1, /**< Parameter is an unknown option */
4215
FINISH = 0 /**< All options are handled */
4219
* Type of argument associated to an option
4222
AT_NONE = 0, /**< %Option receives no argument */
4223
AT_MANDATORY = 1, /**< %Option requires an argument */
4224
AT_OPTIONAL = 2 /**< %Option has optionally an argument */
4228
* Type for specifying an array of options recognized by the %Option %Parser.
4229
* An array of this type has to be passed to the constructor OptsParser::OptsParser()
4281
4231
struct Option {
4282
#line 4283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4232
#line 4233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4233
friend class ::CCExprResolve;
4234
friend class ::CExprResolve;
4283
4235
friend class ::WinIfExists;
4284
4236
friend class ::WinImportHandler;
4285
4237
friend class ::WinMacros;
4286
friend class ::CMatchSyntax;
4287
friend class ::ExtGnu;
4238
friend class ::WinAsm;
4239
friend class ::WinDeclSpecs;
4240
friend class ::WinMemberExplSpec;
4241
friend class ::WinTypeKeywords;
4242
friend class ::WinFriend;
4288
4243
friend class ::ExtAC;
4289
4244
friend class ::ExtACBuilderCoupling;
4290
4245
friend class ::ExtACSyntaxCoupling;
4291
4246
friend class ::ExtACTree;
4292
4247
friend class ::ExtACKeywords;
4293
friend class ::WinAsm;
4294
friend class ::WinDeclSpecs;
4295
friend class ::WinMemberExplSpec;
4296
friend class ::WinTypeKeywords;
4248
friend class ::ExtGnu;
4297
4249
friend class ::PragmaOnceUnitState;
4298
4250
friend class ::PragmaOnce;
4299
friend class ::CCExprResolve;
4300
friend class ::CExprResolve;
4302
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4251
friend class ::CMatchSyntax;
4253
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
4255
int number; /**< Number associated with this option */
4256
const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
4257
const char *longName; /**< Long namen of this option */
4258
const char *desc; /**< Description of this option **/
4259
ArgType argType; /**< Type of argument for this option */
4263
/** Pointer to array of available options. This value is set to the value of the
4264
* parameter passed to the constructor OptsParser::OptsParser()
4312
4266
const Option *m_opts;
4315
OptsParser (int, char **, const Option *);
4316
OptsParser (const string &, const Option *);
4269
/** \brief Constructor of OptsParser
4271
* \param argc Number of parameters to be analyzed
4272
* \param argv Parameters to be analyzed
4273
* \param opts Pointer to array of options which shall be
4274
* recognized by the options parser
4277
OptsParser (int argc, char **argv, const Option *opts);
4279
/** \brief Constructor of OptsParser
4281
* \param line Reference to string with parameters to analyse
4282
* The paramaters are extracted from the string by splitting it up
4288
* \param opts Pointer to array of options which shall be
4289
* recognized by the options parser
4291
OptsParser (const string &line, const Option *);
4318
int getCurrentArgNum () const;
4319
int getNextArgNum () const;
4294
/** Get next parameter without modification.
4295
* No option parsing is done
4297
* \return OptsParser::NOOPTION or OptsParser::FINISH
4299
int getRawOption ();
4301
/** \brief Get next option
4303
* This function processes the next parameter passed to the constructor
4304
* OptsParser::OptsParser().
4305
* That is, search for options and eventually process
4306
* option and option arguement.
4308
* \return Number of option recognized by the options parser or
4309
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
4310
* OptsParser::UNKNOWN or OptsParser::FINISH.
4320
4313
int getOption ();
4315
/** \brief Get result of last processed parameter
4317
* The number returned by this function is identical to the number
4318
* returned by the last call of OptsParser::getOption
4320
* \return Number of option recognized by the options parser or
4321
* OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
4322
* OptsParser::UNKNOWN or OptsParser::FINISH.
4321
4325
int getResult () const;
4327
/** \brief Get option argument of last processed parameter
4329
* This function returns the argument of the option processed during
4330
* OptsParser::getOption. If the option does not provide any argument
4331
* the string will be empty.
4333
* If OptsParser::getOption or respectively OptsParser::getResult returns with
4334
* OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter,
4335
* which is no option, of course.
4337
* \return Argument of last processed parameter
4323
4339
const string &getArgument () const;
4341
/** \brief Get option name of last processed parameter
4343
* If the last processed parameter did not contain an option the string
4344
* returned by this function is empty.
4346
* \return Name of last processed parameter
4324
4349
const string &getOptionName () const;
4351
/** \brief Get position of current argument
4353
* \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
4356
int getCurrentArgNum () const;
4358
/** \brief Get position of next argument
4360
* \return Position of next parameter which will be processed by the %Options %Parser
4363
int getNextArgNum () const;
4326
bool revokeArgument();
4329
int getShortOption (const string &);
4330
int getLongOption (const string &);
4331
bool processOption (const string &, unsigned int,ArgType argtype);
4366
/** Search for an option in m_argv at position m_curarg
4368
* \param arg Currently processed parameter
4370
const Option* findOption(const string &arg, bool isLong);
4372
/** Process an option found by OptsParser::findOption().
4374
bool processOption (const string &arg, const Option* curOpt, bool isLong);
4498
4544
#endif /* __Config_h__ */
4500
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
4546
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
4501
4547
namespace Puma {
4507
#line 4508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4553
#line 4554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4508
4554
} // closed Puma
4555
class CCExprResolve;
4509
4557
class WinIfExists;
4510
4558
class WinImportHandler;
4511
4559
class WinMacros;
4562
class WinMemberExplSpec;
4563
class WinTypeKeywords;
4515
4566
class ExtACBuilderCoupling;
4516
4567
class ExtACSyntaxCoupling;
4517
4568
class ExtACTree;
4518
4569
class ExtACKeywords;
4521
class WinMemberExplSpec;
4522
class WinTypeKeywords;
4523
4571
class PragmaOnceUnitState;
4524
4572
class PragmaOnce;
4525
class CCExprResolve;
4527
4574
namespace Puma {
4529
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
4576
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
4530
4577
class CScanner : public CRecognizer, public Tokenizer {
4531
#line 4532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4578
#line 4579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4579
friend class ::CCExprResolve;
4580
friend class ::CExprResolve;
4532
4581
friend class ::WinIfExists;
4533
4582
friend class ::WinImportHandler;
4534
4583
friend class ::WinMacros;
4535
friend class ::CMatchSyntax;
4536
friend class ::ExtGnu;
4584
friend class ::WinAsm;
4585
friend class ::WinDeclSpecs;
4586
friend class ::WinMemberExplSpec;
4587
friend class ::WinTypeKeywords;
4588
friend class ::WinFriend;
4537
4589
friend class ::ExtAC;
4538
4590
friend class ::ExtACBuilderCoupling;
4539
4591
friend class ::ExtACSyntaxCoupling;
4540
4592
friend class ::ExtACTree;
4541
4593
friend class ::ExtACKeywords;
4542
friend class ::WinAsm;
4543
friend class ::WinDeclSpecs;
4544
friend class ::WinMemberExplSpec;
4545
friend class ::WinTypeKeywords;
4594
friend class ::ExtGnu;
4546
4595
friend class ::PragmaOnceUnitState;
4547
4596
friend class ::PragmaOnce;
4548
friend class ::CCExprResolve;
4549
friend class ::CExprResolve;
4597
friend class ::CMatchSyntax;
4551
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
4599
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
4554
4602
ErrorSink &err;
4582
4630
#endif /* __c_scanner_h__ */
4584
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_Sequential.h"
4585
// This file is part of PUMA.
4586
// Copyright (C) 1999-2003 The PUMA developer team.
4588
// This program is free software; you can redistribute it and/or
4589
// modify it under the terms of the GNU General Public License as
4590
// published by the Free Software Foundation; either version 2 of
4591
// the License, or (at your option) any later version.
4593
// This program is distributed in the hope that it will be useful,
4594
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4595
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4596
// GNU General Public License for more details.
4598
// You should have received a copy of the GNU General Public
4599
// License along with this program; if not, write to the Free
4600
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4601
// MA 02111-1307 USA
4603
#ifndef __sb_sequential_h__
4604
#define __sb_sequential_h__
4607
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_Sequential.h"
4612
#line 4613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4615
class WinImportHandler;
4620
class ExtACBuilderCoupling;
4621
class ExtACSyntaxCoupling;
4623
class ExtACKeywords;
4626
class WinMemberExplSpec;
4627
class WinTypeKeywords;
4628
class PragmaOnceUnitState;
4630
class CCExprResolve;
4634
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_Sequential.h"
4635
class SB_Sequential : public ScanBuffer {
4636
#line 4637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4637
friend class ::WinIfExists;
4638
friend class ::WinImportHandler;
4639
friend class ::WinMacros;
4640
friend class ::CMatchSyntax;
4641
friend class ::ExtGnu;
4642
friend class ::ExtAC;
4643
friend class ::ExtACBuilderCoupling;
4644
friend class ::ExtACSyntaxCoupling;
4645
friend class ::ExtACTree;
4646
friend class ::ExtACKeywords;
4647
friend class ::WinAsm;
4648
friend class ::WinDeclSpecs;
4649
friend class ::WinMemberExplSpec;
4650
friend class ::WinTypeKeywords;
4651
friend class ::PragmaOnceUnitState;
4652
friend class ::PragmaOnce;
4653
friend class ::CCExprResolve;
4654
friend class ::CExprResolve;
4656
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_Sequential.h"
4658
char TokenBuffer[1024]; // Maximum token size!
4667
void init (Source &src) { source = &src; }
4669
char character = TokenBuffer[BuffPos++];
4670
if (BuffPos == BuffSize)
4675
char *token () { return TokenBuffer; }
4676
int len () const { return BuffPos; }
4677
void reset () { BuffPos = 0; BuffSize = 0; fetch (); }
4678
void retry () { BuffPos = 0; }
4679
void accept (int len) {
4680
BuffSize -= len; BuffPos = 0;
4681
memcpy (TokenBuffer, TokenBuffer + len, BuffSize);
4683
void more (int len) { BuffPos = len; }
4684
State state () const { return (BuffPos < BuffSize) ? STATE_OK : _state; }
4690
#endif /* __sb_sequential_h__ */
4692
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_WholeFile.h"
4693
// This file is part of PUMA.
4694
// Copyright (C) 1999-2003 The PUMA developer team.
4696
// This program is free software; you can redistribute it and/or
4697
// modify it under the terms of the GNU General Public License as
4698
// published by the Free Software Foundation; either version 2 of
4699
// the License, or (at your option) any later version.
4701
// This program is distributed in the hope that it will be useful,
4702
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4703
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4704
// GNU General Public License for more details.
4706
// You should have received a copy of the GNU General Public
4707
// License along with this program; if not, write to the Free
4708
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4709
// MA 02111-1307 USA
4711
#ifndef __sb_whole_file_h__
4712
#define __sb_whole_file_h__
4715
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_String.h"
4716
// This file is part of PUMA.
4717
// Copyright (C) 1999-2003 The PUMA developer team.
4719
// This program is free software; you can redistribute it and/or
4720
// modify it under the terms of the GNU General Public License as
4721
// published by the Free Software Foundation; either version 2 of
4722
// the License, or (at your option) any later version.
4724
// This program is distributed in the hope that it will be useful,
4725
// but WITHOUT ANY WARRANTY; without even the implied warranty of
4726
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4727
// GNU General Public License for more details.
4729
// You should have received a copy of the GNU General Public
4730
// License along with this program; if not, write to the Free
4731
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
4732
// MA 02111-1307 USA
4734
#ifndef __sb_string_h__
4735
#define __sb_string_h__
4738
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_String.h"
4743
#line 4744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4746
class WinImportHandler;
4751
class ExtACBuilderCoupling;
4752
class ExtACSyntaxCoupling;
4754
class ExtACKeywords;
4757
class WinMemberExplSpec;
4758
class WinTypeKeywords;
4759
class PragmaOnceUnitState;
4761
class CCExprResolve;
4765
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_String.h"
4766
class SB_String : public ScanBuffer {
4767
#line 4768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4768
friend class ::WinIfExists;
4769
friend class ::WinImportHandler;
4770
friend class ::WinMacros;
4771
friend class ::CMatchSyntax;
4772
friend class ::ExtGnu;
4773
friend class ::ExtAC;
4774
friend class ::ExtACBuilderCoupling;
4775
friend class ::ExtACSyntaxCoupling;
4776
friend class ::ExtACTree;
4777
friend class ::ExtACKeywords;
4778
friend class ::WinAsm;
4779
friend class ::WinDeclSpecs;
4780
friend class ::WinMemberExplSpec;
4781
friend class ::WinTypeKeywords;
4782
friend class ::PragmaOnceUnitState;
4783
friend class ::PragmaOnce;
4784
friend class ::CCExprResolve;
4785
friend class ::CExprResolve;
4787
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_String.h"
4790
const char *TokenBuffer;
4795
void init (const char *str, int len = 0) {
4796
string = str; end = str + (len ? len : strlen (str)); reset ();
4799
char next () { return TokenBuffer[BuffPos++]; }
4800
char *token () { return (char*)TokenBuffer; }
4801
int len () const { return BuffPos; }
4802
void reset () { TokenBuffer = string; BuffPos = 0; }
4803
void retry () { BuffPos = 0; }
4804
void accept (int len) { BuffPos = 0; TokenBuffer += len; }
4805
void more (int len) { BuffPos = len; }
4806
State state () const { return (TokenBuffer + BuffPos == end) ? STATE_END : STATE_OK; }
4812
#endif /* __sb_string_h__ */
4814
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_WholeFile.h"
4819
#line 4820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4822
class WinImportHandler;
4827
class ExtACBuilderCoupling;
4828
class ExtACSyntaxCoupling;
4830
class ExtACKeywords;
4833
class WinMemberExplSpec;
4834
class WinTypeKeywords;
4835
class PragmaOnceUnitState;
4837
class CCExprResolve;
4841
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_WholeFile.h"
4842
class SB_WholeFile : public SB_String {
4843
#line 4844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4844
friend class ::WinIfExists;
4845
friend class ::WinImportHandler;
4846
friend class ::WinMacros;
4847
friend class ::CMatchSyntax;
4848
friend class ::ExtGnu;
4849
friend class ::ExtAC;
4850
friend class ::ExtACBuilderCoupling;
4851
friend class ::ExtACSyntaxCoupling;
4852
friend class ::ExtACTree;
4853
friend class ::ExtACKeywords;
4854
friend class ::WinAsm;
4855
friend class ::WinDeclSpecs;
4856
friend class ::WinMemberExplSpec;
4857
friend class ::WinTypeKeywords;
4858
friend class ::PragmaOnceUnitState;
4859
friend class ::PragmaOnce;
4860
friend class ::CCExprResolve;
4861
friend class ::CExprResolve;
4863
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SB_WholeFile.h"
4869
SB_WholeFile () : SB_String (), buffer (0) {}
4870
virtual ~SB_WholeFile () { if (buffer) delete[] buffer; }
4872
void init (ErrorSink &err, Source &src) {
4873
if (buffer) delete[] buffer;
4876
int buffer_size = src.size ();
4877
if (buffer_size < 0) {
4878
err << sev_error << "can't determine size of input file"
4884
buffer = new char[buffer_size];
4885
if (! buffer) { // Help, this should not happen, but why not checking
4886
err << sev_error << "Out of memory" << endMessage;
4891
if (src.read (buffer, src.size ()) != src.size ()) {
4892
err << sev_error << "can't load input file" << endMessage;
4897
SB_String::init (buffer, buffer_size);
4900
State state () const { return error ? STATE_ERROR : SB_String::state (); }
4906
#endif /* __sb_whole_file_h__ */
4908
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
4632
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4909
4633
// This file is part of PUMA.
4910
4634
// Copyright (C) 1999-2003 The PUMA developer team.
4934
4658
#include <stdlib.h>
4936
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
4660
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4937
4661
#include <assert.h>
4939
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
4663
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4940
4664
namespace Puma {
4944
#line 4945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4668
#line 4669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4945
4669
} // closed Puma
4670
class CCExprResolve;
4946
4672
class WinIfExists;
4947
4673
class WinImportHandler;
4948
4674
class WinMacros;
4677
class WinMemberExplSpec;
4678
class WinTypeKeywords;
4952
4681
class ExtACBuilderCoupling;
4953
4682
class ExtACSyntaxCoupling;
4954
4683
class ExtACTree;
4955
4684
class ExtACKeywords;
4958
class WinMemberExplSpec;
4959
class WinTypeKeywords;
4960
4686
class PragmaOnceUnitState;
4961
4687
class PragmaOnce;
4962
class CCExprResolve;
4964
4689
namespace Puma {
4966
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
4691
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4967
4692
class Token : public ListElement {
4968
#line 4969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
4693
#line 4694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
4694
friend class ::CCExprResolve;
4695
friend class ::CExprResolve;
4969
4696
friend class ::WinIfExists;
4970
4697
friend class ::WinImportHandler;
4971
4698
friend class ::WinMacros;
4972
friend class ::CMatchSyntax;
4973
friend class ::ExtGnu;
4699
friend class ::WinAsm;
4700
friend class ::WinDeclSpecs;
4701
friend class ::WinMemberExplSpec;
4702
friend class ::WinTypeKeywords;
4703
friend class ::WinFriend;
4974
4704
friend class ::ExtAC;
4975
4705
friend class ::ExtACBuilderCoupling;
4976
4706
friend class ::ExtACSyntaxCoupling;
4977
4707
friend class ::ExtACTree;
4978
4708
friend class ::ExtACKeywords;
4979
friend class ::WinAsm;
4980
friend class ::WinDeclSpecs;
4981
friend class ::WinMemberExplSpec;
4982
friend class ::WinTypeKeywords;
4709
friend class ::ExtGnu;
4983
4710
friend class ::PragmaOnceUnitState;
4984
4711
friend class ::PragmaOnce;
4985
friend class ::CCExprResolve;
4986
friend class ::CExprResolve;
4712
friend class ::CMatchSyntax;
4988
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
4714
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4990
4716
int _type, _real_type;
4992
4718
Location _location;
4993
4719
LanguageID _language;
4721
mutable DString _dtext;
4996
4723
Array<int> *_cont_lines;
5483
5212
void CScanner::scan_all (Unit &unit) {
5486
loc.setup (unit.name () ? unit.name () : "<anonymous unit>", 1L);
5488
while ((token = scan ())->type () != Token::ID_END_OF_FILE) {
5489
if (token->type () == Token::ID_UNKNOWN)
5490
err << sev_error << token->location ()
5491
<< "Unknown token" << endMessage;
5492
else if (token->type () == Token::ID_ERROR) {
5493
err << sev_error << token->location ()
5494
<< "Error while scanning tokens" << endMessage;
5214
loc.setup (unit.name () ? unit.name () : "<anonymous unit>", 1, 1);
5216
while (buffer ().state () == CScanBuffer::STATE_OK ||
5217
buffer ().state () == CScanBuffer::STATE_NEW) {
5219
CRecognizer::Lang lang;
5221
int result = recognize (lang, expr, len);
5223
// if (lang == WHITE && mode () == NORMAL && !buffer ().new_line (len)) {
5224
// // eventually accept the token
5225
// buffer ().accept (len);
5228
// if (lang == COMMENT) {
5229
// // eventually accept the token
5230
// buffer ().accept (len);
5235
Token *new_token = make_token (lang, expr, len);
5236
unit.append (*new_token);
5237
// cout << loc << " token " << new_token->type () << ": " << new_token->text () << endl;
5240
err << sev_error << loc
5241
<< "Error while scanning tokens" << endMessage;
5496
} else if (token->type () == Token::ID_WARNING)
5497
err << sev_warning << token->location ()
5498
<< "Warning while scanning tokens" << endMessage;
5500
unit.append (*token);
5502
if (token->type () == Token::ID_END_OF_FILE)
5508
#line 5509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5511
struct TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0 {
5512
typedef void Result;
5513
typedef ::Puma::CScanner That;
5514
typedef ::Puma::CScanner Target;
5515
static const int JPID = 59;
5249
#line 5250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5252
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0 {
5253
typedef TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0 __TJP;
5254
typedef TResult Result;
5256
typedef TTarget Target;
5257
enum { ARGS = TArgs::ARGS };
5258
template <int I> struct Arg : AC::Arg<TArgs, I> {};
5259
static const int JPID = 3730;
5516
5260
static const AC::JPType JPTYPE = (AC::JPType)8;
5519
typedef void ReferredType;
5522
template <int I, int DUMMY = 0> struct Arg {
5524
typedef void ReferredType;
5526
template <int DUMMY> struct Arg<0, DUMMY> {
5527
typedef ::Puma::Source & Type;
5528
typedef ::Puma::Source ReferredType;
5530
template <int DUMMY> struct Arg<1, DUMMY> {
5531
typedef ::Puma::Unit & Type;
5532
typedef ::Puma::Unit ReferredType;
5262
typedef TResult Type;
5263
typedef TResult ReferredType;
5538
5269
inline void *arg (int n) {return _args[n];}
5542
5273
inline That *that() {return (That*)_that;}
5545
struct Binding_TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0_ExtACKeywords_ExtACKeywords_a1_before {
5546
typedef TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0 TJP;
5275
struct Binding_ExtACKeywords_ExtACKeywords_a1_before {
5547
5277
template <int I, int DUMMY = 0> struct Arg {
5548
5278
void val (TJP *tjp) {} // for VC7
5550
5280
template <int DUMMY> struct Arg<0, DUMMY> {
5551
static TJP::Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
5281
static typename TJP::template Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
5556
#line 197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CScanner.cc"
5287
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CScanner.cc"
5557
5288
void CScanner::fill_unit (Source & arg0, Unit & arg1)
5558
#line 5559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5289
#line 5290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5560
void *args__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit[] = { (void*)&arg0, (void*)&arg1 };
5561
TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0 tjp;
5562
tjp._args = args__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit;
5563
tjp._that = (TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0::That*)this;
5291
typedef TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0< void, ::Puma::CScanner , ::Puma::CScanner , AC::TL< ::Puma::Source & , AC::TL< ::Puma::Unit & , AC::TLE > > > __TJP;
5293
tjp._args[0] = (void*)&arg0;
5294
tjp._args[1] = (void*)&arg1;
5295
tjp._that = (__TJP::That*)this;
5564
5296
if(::AC::CFlow<ExtACKeywords,0>::active ()) {
5565
AC::invoke_ExtACKeywords_ExtACKeywords_a1_before<TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0, Binding_TJP__ZN4Puma8CScanner9fill_unitERN4PumaE6SourceRN4PumaE4Unit_0_ExtACKeywords_ExtACKeywords_a1_before> (&tjp);
5297
AC::invoke_ExtACKeywords_ExtACKeywords_a1_before<__TJP> (&tjp);
5567
this->__exec_old_fill_unit(arg0, arg1);
5299
this->__exec_old_fill_unit(arg0, arg1);
5570
inline void Puma::CScanner::__exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit)
5571
#line 197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CScanner.cc"
5302
__attribute__((always_inline)) inline void Puma::CScanner::__exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit)
5303
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CScanner.cc"
5573
if (in.size () > 0) {
5574
SB_WholeFile whole_file_buffer;
5576
whole_file_buffer.init (err, in);
5577
setup (whole_file_buffer);
5580
SB_Sequential seq_buffer;
5582
seq_buffer.init (in);
5306
int size = in.size ();
5310
err << sev_error << "can't scan file of unknown size" << endMessage;
5313
char *buf = new char[size];
5314
if (in.read (buf, size) != size) {
5315
err << sev_error << "can't load input file" << endMessage;
5319
buffer ().init (buf, size);
5590
#line 5591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5593
struct TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0 {
5594
typedef void Result;
5595
typedef ::Puma::CScanner That;
5596
typedef ::Puma::CScanner Target;
5597
static const int JPID = 60;
5326
#line 5327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5329
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0 {
5330
typedef TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0 __TJP;
5331
typedef TResult Result;
5333
typedef TTarget Target;
5334
enum { ARGS = TArgs::ARGS };
5335
template <int I> struct Arg : AC::Arg<TArgs, I> {};
5336
static const int JPID = 3732;
5598
5337
static const AC::JPType JPTYPE = (AC::JPType)8;
5601
typedef void ReferredType;
5604
template <int I, int DUMMY = 0> struct Arg {
5606
typedef void ReferredType;
5608
template <int DUMMY> struct Arg<0, DUMMY> {
5609
typedef const char * Type;
5610
typedef const char * ReferredType;
5612
template <int DUMMY> struct Arg<1, DUMMY> {
5613
typedef ::Puma::Unit & Type;
5614
typedef ::Puma::Unit ReferredType;
5339
typedef TResult Type;
5340
typedef TResult ReferredType;
5620
5346
inline void *arg (int n) {return _args[n];}
5624
5350
inline That *that() {return (That*)_that;}
5627
struct Binding_TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0_ExtACKeywords_ExtACKeywords_a1_before {
5628
typedef TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0 TJP;
5352
struct Binding_ExtACKeywords_ExtACKeywords_a1_before {
5629
5354
template <int I, int DUMMY = 0> struct Arg {
5630
5355
void val (TJP *tjp) {} // for VC7
5632
5357
template <int DUMMY> struct Arg<0, DUMMY> {
5633
static TJP::Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
5358
static typename TJP::template Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
5638
#line 214 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CScanner.cc"
5364
#line 229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CScanner.cc"
5639
5365
void CScanner::fill_unit (const char * arg0, Unit & arg1)
5640
#line 5641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5366
#line 5367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5642
void *args__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit[] = { (void*)&arg0, (void*)&arg1 };
5643
TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0 tjp;
5644
tjp._args = args__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit;
5645
tjp._that = (TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0::That*)this;
5368
typedef TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0< void, ::Puma::CScanner , ::Puma::CScanner , AC::TL< const char * , AC::TL< ::Puma::Unit & , AC::TLE > > > __TJP;
5370
tjp._args[0] = (void*)&arg0;
5371
tjp._args[1] = (void*)&arg1;
5372
tjp._that = (__TJP::That*)this;
5646
5373
if(::AC::CFlow<ExtACKeywords,0>::active ()) {
5647
AC::invoke_ExtACKeywords_ExtACKeywords_a1_before<TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0, Binding_TJP__ZN4Puma8CScanner9fill_unitEPKcRN4PumaE4Unit_0_ExtACKeywords_ExtACKeywords_a1_before> (&tjp);
5374
AC::invoke_ExtACKeywords_ExtACKeywords_a1_before<__TJP> (&tjp);
5649
this->__exec_old_fill_unit(arg0, arg1);
5376
this->__exec_old_fill_unit(arg0, arg1);
5652
inline void Puma::CScanner::__exec_old_fill_unit(const char * in,::Puma::Unit & unit)
5653
#line 214 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CScanner.cc"
5379
__attribute__((always_inline)) inline void Puma::CScanner::__exec_old_fill_unit(const char * in,::Puma::Unit & unit)
5380
#line 229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CScanner.cc"
5655
SB_String string_buffer;
5657
string_buffer.init (in);
5658
setup (string_buffer);
5383
buffer ().init (in);
5659
5384
scan_all (unit);
5663
5388
} // namespace Puma
5665
#line 5666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5390
#line 5391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5667
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CScanner_cc__
5668
/*** begin of aspect includes ***/
5669
#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__)
5670
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
5392
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CScanner_cc__
5393
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
5394
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
5395
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
5396
#include "CCExprResolveCC.ah"
5398
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5399
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5400
#include "ExtACTree.ah"
5402
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
5403
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
5404
#include "ExtGnu.ah"
5407
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5408
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5409
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
5410
#include "CCExprResolveH.ah"
5413
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
5414
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
5415
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
5416
#include "CExprResolveCC.ah"
5418
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5419
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5420
#include "ExtACTree.ah"
5422
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
5423
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
5424
#include "ExtGnu.ah"
5427
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5428
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5429
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
5430
#include "CExprResolveH.ah"
5433
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
5434
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
5435
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
5671
5436
#include "WinIfExists.ah"
5673
#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__)
5674
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5439
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5440
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5441
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
5675
5442
#include "WinImportHandler.ah"
5677
#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__)
5678
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
5445
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
5446
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
5447
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
5679
5448
#include "WinMacros.ah"
5681
#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__)
5682
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
5683
#include "CMatchSyntax.ah"
5685
#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__)
5686
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
5687
#include "ExtGnu.ah"
5689
#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__)
5690
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
5450
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
5451
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
5452
#include "PragmaOnceUnitState.ah"
5455
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
5456
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
5457
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
5458
#include "WinAsm.ah"
5460
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5461
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5462
#include "ExtACTree.ah"
5465
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
5466
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
5467
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
5468
#include "WinDeclSpecs.ah"
5471
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
5472
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
5473
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
5474
#include "WinMemberExplSpec.ah"
5477
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
5478
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
5479
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
5480
#include "WinTypeKeywords.ah"
5483
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
5484
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
5485
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
5486
#include "WinFriend.ah"
5489
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
5490
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
5491
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
5691
5492
#include "ExtAC.ah"
5693
#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__)
5694
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
5494
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5495
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5496
#include "ExtACTree.ah"
5498
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5499
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5500
#include "ExtACKeywords.ah"
5502
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
5503
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
5504
#include "ExtGnu.ah"
5506
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
5507
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
5508
#include "PragmaOnceUnitState.ah"
5510
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
5511
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
5512
#include "CMatchSyntax.ah"
5515
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
5516
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
5517
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
5695
5518
#include "ExtACBuilderH.ah"
5697
#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__)
5698
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
5521
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
5522
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
5523
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
5699
5524
#include "ExtACBuilderCC.ah"
5701
#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__)
5702
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
5526
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5527
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5528
#include "ExtACTree.ah"
5531
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
5532
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
5533
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
5703
5534
#include "ExtACSyntaxH.ah"
5705
#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__)
5706
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
5537
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
5538
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
5539
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
5707
5540
#include "ExtACSyntaxCC.ah"
5709
#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__)
5710
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
5543
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5544
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5545
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
5711
5546
#include "ExtACTree.ah"
5713
#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__)
5714
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5549
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5550
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5551
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
5716
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
5553
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
5717
5554
// This file is part of PUMA.
5718
5555
// Copyright (C) 1999-2003 The PUMA developer team.
5986
5825
using std::map;
5988
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
5827
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
5989
5828
using std::string;
5992
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
5831
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
5993
5832
namespace Puma {
5995
5834
// the project file abstraction is used to store all filenames relevant
5996
5835
// for a specific file that is managed by Puma.
5999
#line 6000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5838
#line 5839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
6000
5839
} // closed Puma
5840
class CCExprResolve;
6001
5842
class WinIfExists;
6002
5843
class WinImportHandler;
6003
5844
class WinMacros;
5847
class WinMemberExplSpec;
5848
class WinTypeKeywords;
6007
5851
class ExtACBuilderCoupling;
6008
5852
class ExtACSyntaxCoupling;
6009
5853
class ExtACTree;
6010
5854
class ExtACKeywords;
6013
class WinMemberExplSpec;
6014
class WinTypeKeywords;
6015
5856
class PragmaOnceUnitState;
6016
5857
class PragmaOnce;
6017
class CCExprResolve;
6019
5859
namespace Puma {
6021
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
5861
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6022
5862
class ProjectFile {
6023
#line 6024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5863
#line 5864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5864
friend class ::CCExprResolve;
5865
friend class ::CExprResolve;
6024
5866
friend class ::WinIfExists;
6025
5867
friend class ::WinImportHandler;
6026
5868
friend class ::WinMacros;
6027
friend class ::CMatchSyntax;
6028
friend class ::ExtGnu;
5869
friend class ::WinAsm;
5870
friend class ::WinDeclSpecs;
5871
friend class ::WinMemberExplSpec;
5872
friend class ::WinTypeKeywords;
5873
friend class ::WinFriend;
6029
5874
friend class ::ExtAC;
6030
5875
friend class ::ExtACBuilderCoupling;
6031
5876
friend class ::ExtACSyntaxCoupling;
6032
5877
friend class ::ExtACTree;
6033
5878
friend class ::ExtACKeywords;
6034
friend class ::WinAsm;
6035
friend class ::WinDeclSpecs;
6036
friend class ::WinMemberExplSpec;
6037
friend class ::WinTypeKeywords;
5879
friend class ::ExtGnu;
6038
5880
friend class ::PragmaOnceUnitState;
6039
5881
friend class ::PragmaOnce;
6040
friend class ::CCExprResolve;
6041
friend class ::CExprResolve;
5882
friend class ::CMatchSyntax;
6043
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
5884
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
6045
5886
Filename _nick_name;
6046
5887
Filename _dest_path;
6065
5906
#endif // __project_file__
6067
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
5908
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6068
5909
namespace Puma {
6070
5911
class PathManager;
6074
#line 6075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5915
#line 5916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
6075
5916
} // closed Puma
5917
class CCExprResolve;
6076
5919
class WinIfExists;
6077
5920
class WinImportHandler;
6078
5921
class WinMacros;
5924
class WinMemberExplSpec;
5925
class WinTypeKeywords;
6082
5928
class ExtACBuilderCoupling;
6083
5929
class ExtACSyntaxCoupling;
6084
5930
class ExtACTree;
6085
5931
class ExtACKeywords;
6088
class WinMemberExplSpec;
6089
class WinTypeKeywords;
6090
5933
class PragmaOnceUnitState;
6091
5934
class PragmaOnce;
6092
class CCExprResolve;
6094
5936
namespace Puma {
6096
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
5938
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6097
5939
class PathIterator : public PFMConstIter {
6098
#line 6099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
5940
#line 5941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
5941
friend class ::CCExprResolve;
5942
friend class ::CExprResolve;
6099
5943
friend class ::WinIfExists;
6100
5944
friend class ::WinImportHandler;
6101
5945
friend class ::WinMacros;
6102
friend class ::CMatchSyntax;
6103
friend class ::ExtGnu;
5946
friend class ::WinAsm;
5947
friend class ::WinDeclSpecs;
5948
friend class ::WinMemberExplSpec;
5949
friend class ::WinTypeKeywords;
5950
friend class ::WinFriend;
6104
5951
friend class ::ExtAC;
6105
5952
friend class ::ExtACBuilderCoupling;
6106
5953
friend class ::ExtACSyntaxCoupling;
6107
5954
friend class ::ExtACTree;
6108
5955
friend class ::ExtACKeywords;
6109
friend class ::WinAsm;
6110
friend class ::WinDeclSpecs;
6111
friend class ::WinMemberExplSpec;
6112
friend class ::WinTypeKeywords;
5956
friend class ::ExtGnu;
6113
5957
friend class ::PragmaOnceUnitState;
6114
5958
friend class ::PragmaOnce;
6115
friend class ::CCExprResolve;
6116
friend class ::CExprResolve;
5959
friend class ::CMatchSyntax;
6118
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
5961
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
6120
5963
friend class PathManager;
6525
6398
#endif /* __SaveMode__ */
6527
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
6400
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
6528
6401
#include <fstream>
6530
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
6403
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
6531
6404
using namespace std;
6533
6406
namespace Puma {
6537
#line 6538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
6410
#line 6411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
6538
6411
} // closed Puma
6412
class CCExprResolve;
6539
6414
class WinIfExists;
6540
6415
class WinImportHandler;
6541
6416
class WinMacros;
6419
class WinMemberExplSpec;
6420
class WinTypeKeywords;
6545
6423
class ExtACBuilderCoupling;
6546
6424
class ExtACSyntaxCoupling;
6547
6425
class ExtACTree;
6548
6426
class ExtACKeywords;
6551
class WinMemberExplSpec;
6552
class WinTypeKeywords;
6553
6428
class PragmaOnceUnitState;
6554
6429
class PragmaOnce;
6555
class CCExprResolve;
6557
6431
namespace Puma {
6559
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
6433
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
6560
6434
class Project : public PathManager, public SaveMode {
6561
#line 6562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
6435
#line 6436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
6436
friend class ::CCExprResolve;
6437
friend class ::CExprResolve;
6562
6438
friend class ::WinIfExists;
6563
6439
friend class ::WinImportHandler;
6564
6440
friend class ::WinMacros;
6565
friend class ::CMatchSyntax;
6566
friend class ::ExtGnu;
6441
friend class ::WinAsm;
6442
friend class ::WinDeclSpecs;
6443
friend class ::WinMemberExplSpec;
6444
friend class ::WinTypeKeywords;
6445
friend class ::WinFriend;
6567
6446
friend class ::ExtAC;
6568
6447
friend class ::ExtACBuilderCoupling;
6569
6448
friend class ::ExtACSyntaxCoupling;
6570
6449
friend class ::ExtACTree;
6571
6450
friend class ::ExtACKeywords;
6572
friend class ::WinAsm;
6573
friend class ::WinDeclSpecs;
6574
friend class ::WinMemberExplSpec;
6575
friend class ::WinTypeKeywords;
6451
friend class ::ExtGnu;
6576
6452
friend class ::PragmaOnceUnitState;
6577
6453
friend class ::PragmaOnce;
6578
friend class ::CCExprResolve;
6579
friend class ::CExprResolve;
6454
friend class ::CMatchSyntax;
6581
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
6456
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
6583
6458
UnitManager _unitManager;
6584
6459
const char *_suffix; // Current file name suffix.
6972
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6850
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6974
#line 6975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
6852
#line 6853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
6853
friend class ::CCExprResolve;
6854
friend class ::CExprResolve;
6975
6855
friend class ::WinIfExists;
6976
6856
friend class ::WinImportHandler;
6977
6857
friend class ::WinMacros;
6978
friend class ::CMatchSyntax;
6979
friend class ::ExtGnu;
6858
friend class ::WinAsm;
6859
friend class ::WinDeclSpecs;
6860
friend class ::WinMemberExplSpec;
6861
friend class ::WinTypeKeywords;
6862
friend class ::WinFriend;
6980
6863
friend class ::ExtAC;
6981
6864
friend class ::ExtACBuilderCoupling;
6982
6865
friend class ::ExtACSyntaxCoupling;
6983
6866
friend class ::ExtACTree;
6984
friend class ::WinAsm;
6985
friend class ::WinDeclSpecs;
6986
friend class ::WinMemberExplSpec;
6987
friend class ::WinTypeKeywords;
6867
friend class ::ExtGnu;
6988
6868
friend class ::PragmaOnceUnitState;
6989
6869
friend class ::PragmaOnce;
6990
friend class ::CCExprResolve;
6991
friend class ::CExprResolve;
6870
friend class ::CMatchSyntax;
6993
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6872
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6996
6875
bool _prj_keywords;
6997
CProject *_project; // active project
6876
Puma::CProject *_project; // active project
7000
6879
ExtACKeywords () : _prj_keywords (false) {}
7002
6882
// allow/forbid AspectC++ keywords in normal project files
7003
6883
void prj_keywords (bool kw) { _prj_keywords = kw; }
7006
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6886
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7008
6888
public: void __a0_before
7009
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6889
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7011
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7013
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6891
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6892
(Puma::CProject &project)
6893
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7015
6895
_project = &project;
7019
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6899
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7021
6901
public: template<class JoinPoint> void __a1_before
7022
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6902
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7024
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7025
(JoinPoint *tjp, Unit &unit)
7026
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6904
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6905
(JoinPoint *tjp, Puma::Unit &unit)
6906
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7028
#line 7029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
6908
#line 6909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
7030
6910
typedef typename JoinPoint::That __JP_That;
7031
6911
typedef typename JoinPoint::Target __JP_Target;
7032
6912
typedef typename JoinPoint::Result __JP_Result;
7034
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6914
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7036
6916
if (!unit.isFile ())
7039
6919
bool ac_kw = _prj_keywords;
7040
6920
// in external files the AspectC++ keywords are always identifiers
7041
if (!((FileUnit*)&unit)->belongsTo (*_project)) {
6921
if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
7044
6924
// in aspect headers keywords are keywords
7054
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6934
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7056
6936
public: template<class JoinPoint> void __a2_before
7057
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6937
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7059
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6939
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7060
6940
(JoinPoint *tjp)
7061
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6941
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7063
#line 7064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
6943
#line 6944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
7065
6945
typedef typename JoinPoint::That __JP_That;
7066
6946
typedef typename JoinPoint::Target __JP_Target;
7067
6947
typedef typename JoinPoint::Result __JP_Result;
7069
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6949
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7071
6951
_project = tjp->that ();
7074
#line 7075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CScanner.cc"
6954
#line 6955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CScanner.cc"
7077
template <class JoinPoint, class Binding>
7078
inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
7079
typedef typename Binding::template Arg<0> Arg0;
6957
template <class JoinPoint>
6958
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
6959
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
7080
6960
::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
7082
template <class JoinPoint, class Binding>
7083
inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
7084
typedef typename Binding::template Arg<0> Arg0;
6962
template <class JoinPoint>
6963
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
6964
typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
7085
6965
::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
7087
6967
template <class JoinPoint>
7088
inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
6968
__attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
7089
6969
::ExtACKeywords::aspectof()->__a2_before (tjp);
7093
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
6973
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
7096
6976
#endif /* __ext_ac_keywords_ah__ */
7098
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CScanner.cc"
7100
#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__)
7101
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
6978
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CScanner.cc"
6980
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
6981
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
6983
#line 167 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CScanner.cc"
6986
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
6987
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
6988
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
6989
#include "ExtACTree.ah"
6991
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
6992
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
6993
#include "ExtGnu.ah"
6996
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
6997
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
6998
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
6999
#include "ExtACTree.ah"
7001
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
7002
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
7003
#include "ExtGnuCSemDeclSpecs.ah"
7006
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
7007
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
7008
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
7009
#include "PragmaOnceUnitState.ah"
7012
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7013
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
7014
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
7015
#include "PragmaOnceUnitState.ah"
7017
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7018
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7019
#include "PragmaOnce.ah"
7022
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
7023
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
7024
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
7102
7025
#include "TraceSyntax.ah"
7104
#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__)
7105
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
7106
#include "WinAsm.ah"
7108
#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__)
7109
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
7110
#include "WinDeclSpecs.ah"
7112
#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__)
7113
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
7114
#include "WinMemberExplSpec.ah"
7116
#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__)
7117
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
7118
#include "WinTypeKeywords.ah"
7120
#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__)
7121
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
7123
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CScanner.cc"
7125
#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__)
7126
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
7127
#include "PragmaOnce.ah"
7129
#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__)
7130
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
7131
#include "CCExprResolveH.ah"
7133
#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__)
7134
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
7135
#include "CCExprResolveCC.ah"
7137
#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__)
7138
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
7139
#include "CExprResolveH.ah"
7141
#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__)
7142
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
7143
#include "CExprResolveCC.ah"
7145
/*** end of aspect includes ***/
7146
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
7147
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CScanner_cc__
7148
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CScanner_cc__
7028
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
7029
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
7030
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
7031
#include "CMatchSyntax.ah"
7034
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
7035
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CScanner_cc__
7036
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CScanner_cc__