I'm not sure if this is intentional or not, but the following produces produces a compiler error.
[source]double 1e5;[/source]
It looks like the parser is treating the "1" character as a complete token and an integer literal, so the "e" character is unexpected. The function "asStringScanDouble", however, is able to convert the string "1e5" to the appropriate double.
The parser requires a "." for all floating point literals. Can we change the parser to also interpret the presence of the "e" or "E" character as a double?
The following change to the asCTokenizer::IsConstant function (line 258 of "as_tokenizer.cpp") seems to be the only change needed to make this happen.
[source]if( n < sourceLength && source[n] == '.' )[/source]
becomes...
[source]if( n < sourceLength && (source[n] == '.' || source[n] =='e' || source[n] == 'E') )[/source]
Thanks