<p>Am 01.02.2016 13:29 schrieb "Michael Van Canneyt" <<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>>:<br>
><br>
><br>
><br>
> On Mon, 1 Feb 2016, Maciej Izak wrote:<br>
><br>
>> 2016-02-01 13:09 GMT+01:00 Michael Van Canneyt <<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>>:<br>
>>><br>
>>><br>
>>> No. The compiler already uses &.<br>
>>><br>
>>> & means 'the following is an identifier even if it is a keyword'.<br>
>>><br>
>>> You can perfectly declare and compile:<br>
>>><br>
>>> Var<br>
>>>   &if : integer;<br>
>>><br>
>>> begin<br>
>>>   &if:=1;<br>
>>> end.<br>
>>><br>
>>> So &if is a bad idea.<br>
>><br>
>><br>
>><br>
>> Yes it is possible. Anyway it is better idea than IfThen. You treat facts<br>
>> selectively. How often is used &if and how often is used IfThen?<br>
><br>
><br>
> You missed my point.<br>
><br>
><br>
>><br>
>> &IfThen looks also good (I like shorter syntax &if). With "&" prefix it is<br>
>> obvious that this function is unique.<br>
><br>
><br>
> You misunderstand.<br>
><br>
> The & character cannot be used as part of an identifier, it is a special token.<br>
><br>
> It is eaten by the scanner. The parser will never see it. You simply cannot define "&if' as an identifier. The parser will always see 'if'.<br>
><br>
> scanner.pas around line 4607.<br>
><br>
> And modifying the scanner for this exception is a REALLY bad idea.</p>
<p>Maciej is in so far right that the intrinsic could indeed be named "if" and the only way to call it would thus be by "&if", cause only then the scanner would not treat "if" as a keyword. So it would work with what the compiler currently can.</p>
<p>I'm more inclined to use iif() however, as &if() doesn't look that nice... (though it would be more noticeable :P )</p>
<p>Regards,<br>
Sven</p>