> > 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