A lexical change (a breaking change, but trivial to fix)
H. S. Teoh
hsteoh at quickfur.ath.cx
Sat Jul 7 15:01:50 PDT 2012
On Sat, Jul 07, 2012 at 11:39:59PM +0200, Mehrdad wrote:
> This might sound silly, but how about if D stopped allowing 0..2
> as a range, and instead just said "invalid floating-point number"?
[...]
I like writing 0..2 as a range. It's especially nice in array slice
notation, where you _want_ to have it as concise as possible.
OTOH, having implemented a D lexer before (just for practice, not
production quality), I do see how ambiguities with floating-point
numbers can cause a lot of code convolutions.
But I'm gonna have to say no to this one; *I* think a better solution
would be to prohibit things like 0. or 1. in a float literal. Either
follow it with a digit, or don't write the dot. This will also save us a
lot of pain in the UFCS department, where 4.sqrt is currently a pain to
lex. Once this is done, 0..2 is no longer ambiguous, and any respectable
DFA lexer should be able to handle it with ease.
T
--
If a person can't communicate, the very least he could do is to shut up. -- Tom Lehrer, on people who bemoan their communication woes with their loved ones.
More information about the Digitalmars-d
mailing list