[aspectc-user] More Fun with TAO

Andreas Gal gal at uci.edu
Thu Aug 7 21:49:28 CEST 2003

Hi Gary,

"advice" is a keyword for the parser and thus cannot be used for 
member/variable names. We tried to introduce as few keywords as possible 
(advice, aspect, pointcut) to reduce collisions with legacy code. Pointcut 
functions (base, derived, cflow, ...) are for example _not_ keywords. To 
allow advice/aspect/pointcut in member/variable names we would have to 
relax the AspectC++ grammar, which would make parsing even more of a 
headache then it already is. For the time being you could use

#define advice _advice

around the offending function. As far as I can see, the only feasible way 
to cope with this problem without changing the problematic source code is 
to introduce a command line switch that prefixes all builtin AC++ 
keywords with some prefix. For example, instead of "advice" "__advice" 
would be expected for advice declarations. GCC does some similar hacks 
(inline, _inline, __inline) to solve exactly the same problem. This is 
really an ugly kludge, maybe Matthias has a better idea.


> ===========================================================================
>   static int madvise (caddr_t addr,
>                       size_t len,
>                       int advice);
> ===========================================================================
> Naturally, ac++ is complaining that "advice" is not valid in the middle
> of a member declaration. I can see this issue coming up elsewhere, as
> well. Any chance that ac++ will be able to deal with this sort of thing?
>    Thanks.
> 					Gary Duzan
> 					BBN Technologies
> 					A Verizon Company
> p.s. In case anyone is wondering, I'm exploring the possibility of using
>      AspectJ and AspectC++ as back-ends to QuO ( http://www.quality-objects.com/ )
>      as an alternative to the delegate classes we emit now, which must be
>      added to the code manually.
> _______________________________________________
> aspectc-user mailing list
> aspectc-user at aspectc.org
> http://www.aspectc.org/mailman/listinfo/aspectc-user

Dipl. Inf. Andreas Gal                       Tel: none
School of Information & Computer Science     Fax: (949)-824-4056
University of California, Irvine          Office: CS/E 138
Irvine, CA 92697-3430                      Email: gal at uci.edu

More information about the aspectc-user mailing list