Floating Point Literals

Started by
1 comment, last by WitchLord 10 years, 10 months ago

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

Advertisement

I'll look into it. Thanks.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

I've changed this in revision 1658. Thanks.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement