> > Text-substitution macros would have to be handled in an earlier pass,
>
> I still don't see evidence for this.  Or maybe I do, but I don't see
> any reason that the preprocessing pass must finish before the parsing
> begins.

Mixing C and Perl ...

my $foo;
BEGIN { $foo = '}'; }

#define OPEN {
#define CLOSE $foo

void main (void)
OPEN
BEGIN { $foo = '{''; }
    printf( "I don't work\n" );
CLOSE

How does that work out? The issue is that you can interrupt the
parsing process with executable code that can affect the parsing.
That's a good thing. It doesn't work so well with text-substitution,
though. Hence, I would argue it should be disallowed.

Rob

Reply via email to