Complete floating point literals
KennyTM~
kennytm at gmail.com
Sun Jul 10 11:45:58 PDT 2011
On Jul 11, 11 02:03, bearophile wrote:
> Daniel Murphy:
>
>> If the only reason for removing 1.f and 1.L is to aid ufcs
>
> It's not the only reason, it's also a special case of the rule that asks for a zero.
>
>
>> we should also get rid of leading underscores after the decimal
>> point. eg 1._3 also conflicts with ufcs.
>
> I see (this doesn't look nice regardless of UFCS, but changing it introduces a special case in the use of the underscore).
>
No special case needed. Just complicate the grammar to
// in terms of regex: [0-9][0-9_]*
DecimalDigits:
DecimalDigit
DecimalDigit DecimalDigitsOrUnderscores
DecimalDigitsOrUnderscores:
DecimalDigitOrUnderscore
DecimalDigitOrUnderscore DecimalDigitsOrUnderscores
DecimalDigit:
0
NonZeroDigit
DecimalDigitOrUnderscore
_
DecimalDigit
(similar for HexDigits)
is enough to get rid of leading underscores. (See also
http://d.puremagic.com/issues/show_bug.cgi?id=2734) But I'd prefer
keeping the grammar simple and require the programmer to add '(' ')'
(1)._1;
(4)._0f;
(0xf).deep-2;
or a space ' '
1 ._1;
4 ._0f;
0xf .deep-2;
if they really meant to.
>
>> And don't forget hex floating point literals.
>
> Right.
>
> Bye,
> bearophile
More information about the Digitalmars-d
mailing list