[antlr-interest] Re: Preprocessors - academic question

mzukowski at yci.com mzukowski at yci.com
Fri Jun 28 06:38:07 PDT 2002


What is the problem you are trying to solve?  Do you need to make changes
that propagate back into unpreprocessed code?

Monty

> -----Original Message-----
> From: John Allen Green [mailto:greenj at ix.netcom.com]
> Sent: Thursday, June 27, 2002 3:15 PM
> To: antlr-interest at yahoogroups.com
> Subject: Re: [antlr-interest] Re: Preprocessors - academic question
> 
> 
> 
> --On 27/06/2002 10:43 AM +0200 John Allen Green wrote:
> 
> >>> Given a preprocessor which allows branching and unrestricted code
> >>> substitutions, is it impossible to work with the semantics of the
> >>> preprocessing itself?
> >>> 
> >>> It would seem to me that since you could have code substitution 
> >> doing code
> >>> substitution, it would be impossible to build a parse tree of the
> >>> preprocessing.
> 
> 
> I think I've finally figured out what's been bothering me. Here's some
> valid Progress code:
> 
> &GLOBAL-DEFINE XX &GLOBAL-DEFINE HI "Hello world!"
> {&XX}
> DISPLAY {&HI}.
> 
> Of course, C doesn't let you get away with the above 
> nonsense. What I think
> the above shows is that we can't build a complete graph of the
> preprocessing without actually evaluating the preprocessing 
> expressions and
> expansions.
> 
> Here's an expression that would have to be evaluated:
> 
> &IF OPSYS = "VMS" &THEN
>   &GLOBAL-DEFINE OSINCLUDE include/vms.i
> &ENDIF
> {{&OSINCLUDE}}
> 
> We'd have to evaluate for both true and false on OPSYS = 
> "VMS". If we never
> evaluated for true, we'd never evaluate the text in the 
> include file, and
> our graph would be incomplete.
> 
> If we have to evaluate for every possible combination of 
> conditions, then
> for some compile units we might be talking about an 
> astronomical number of
> possible states, and graphing becomes impractical.
> 
> A friend suggested that this sort of graphing problem is 
> similar to other
> problems as well, and mentioned NP Complete. I've no 
> education for this
> stuff, so I'll have to hit the books for this one.
> 
> Cheers,
> John
> 
> 
>  
> 
> Your use of Yahoo! Groups is subject to 
http://docs.yahoo.com/info/terms/ 


 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 



More information about the antlr-interest mailing list