Bug in cpplib (was: Re: typos in f77 docs)
Daniel Jacobowitz
drow@false.org
Wed Mar 31 18:59:00 GMT 1999
On Sun, Mar 28, 1999 at 08:04:26AM -0500, Zack Weinberg wrote:
> On Sat, 27 Mar 1999 17:21:14 -0500, Daniel Jacobowitz wrote:
> >On Sat, Mar 27, 1999 at 01:07:30PM -0500, Zack Weinberg wrote:
>
> >> to '@', '@ ' and '@-' to nothing, and leave all other @'s alone. (Deleting
> >> '@ ' may cause other problems, such as mysterious, inappropriate token
> >> concatenation. However, it shouldn't.)
> >
> >Why are macro arguments even getting this sort of escaping? Do they
> >get run through code which expects them to be escaped after they get
> >substituted in? In which case, wouldn't it be better to move some of
> >the escaping code to a separate routine and not ask cpp_get_token to do
> >it, allowing them never to become escaped if they don't need to be?
>
> The parser for macro expansion uses escapes to handle corner-cases of
> the rules. `@ ' means put a space here only if required to prevent
> pasting tokens. `@-' means don't expand the identifier that follows
> even if it's defined as a macro.
I was able to gather that from the source. But my question is, why do
the arguments to a macro call need to be run through this sort of
escaping? I can see why those cases need to be handled in the
definition, but not in the actual call.
Dan
/--------------------------------\ /--------------------------------\
| Daniel Jacobowitz |__| CMU, CS class of 2002 |
| Debian GNU/Linux Developer __ Part-Time Systems Programmer |
| dan@debian.org | | drow@cs.cmu.edu |
\--------------------------------/ \--------------------------------/
More information about the Gcc-patches
mailing list