[fpc-devel] RFC: changing conditional compilation

Jonas Maebe jonas.maebe at elis.ugent.be
Tue Feb 9 11:31:41 CET 2010


	
On 09 Feb 2010, at 01:24, Flávio Etrusco wrote:

>> As far as I know, that's how macros behave.
>>
>> E.g.:
>>
>> {$macro on}
>>
>> {$define xxx:=1}
>>
>> {$if xxx}
>> begin
>> end.
>> {$endif}
>>
>> If you undefine "xxx", you'll get a compile time error.
>>
>> Downside: they don't work with booleans for some reason, only with  
>> integers...
>
> Hi Jonas,
> As you can imagine I'd prefer to "solve" the $ifdef "problem" ;-)

To be honest: no, I can't imagine why you would prefer that. The  
entire difference between $ifdef and $if is that $if checks the value  
of something (and hence will give an error if the symbol is undefined)  
and $ifdef checks whether it is defined or not. As far as I can tell,  
you would simply like to be able to use boolean constants in $if  
expressions.

> Yes, I noticed the problem with bools - and that it would fail with
> "string found but boolean expected" if the name was undefined -,

The latter is the behaviour you want, no?


Jonas

PS: please reply to the list


More information about the fpc-devel mailing list