On Fri Mar 07 23:08:14 2008, songmaster wrote: > On Tue Feb 05 13:41:02 2008, [EMAIL PROTECTED] wrote: > > The fix is straightforward, but this change should also be made in > > STD.pm. This fixes RT #49910. > > This patch would make 3e-4 a valid integer literal, even though it's not > an integer. Now 300e-2 *is* a whole number, but I'm not sure it should > be accepted as an integer literal.
STD.pm has since been updated to have the correct parsing -- the answer is that an integer literal never has a dot or 'e'. In r26812 I've just updated rakudo to match STD.pm, so this ticket can be closed. > This is part of the question of what distinguishes an integer from a > floating point number; it can't just be the presence of a decimal point > as the above examples show, but S02 isn't specific. [...] > Here are a few examples that need answers from the language lawyers: > .1 Legal, or is a leading 0 required? > 1e1 Integer or Float? > 1e-1 Integer or Float? > 10e-1 Integer or Float? > .1e1 If legal, Integer or Float? > 1.e1 Legal? Just for completeness: .1 Not a legal number (leading digit required) 1e1 Float 1e-1 Float 10e-1 Float .1e1 Not a legal number (leading digit required) 1.e1 Not a legal number (digits required after dot) Closing ticket, thanks! Pm