#3232 closed Bug

Issue when parsing scientific notation literals — at Version 3

Reported by: jchd18 Owned by:
Milestone: 3.3.15.4 Component: AutoIt
Version: 3.3.14.0 Severity: None
Keywords: Cc:

Description (last modified by jchd18)

The runtime parser sometimes fails on reals in scientific notation immediately followed by some operators or silently gives a wrong result in some cases.

$x = 1e2 + 10
ConsoleWrite($x & @CRLF)	; 110 OK
$x = (1e2)+10
ConsoleWrite($x & @CRLF)	; 110 OK

$x = 1e2+10
ConsoleWrite($x & @CRLF)	; 100 Wrong!
$x = 1e2-10
ConsoleWrite($x & @CRLF)	; 100 Wrong!
$x = 1e2^10
ConsoleWrite($x & @CRLF)	; 1e+020 Wrong!
$x = 1e2+ 10			; Unable to parse line.
ConsoleWrite($x & @CRLF)
$x = 1e2- 10			; Unable to parse line.
ConsoleWrite($x & @CRLF)
$x = 1e2^ 10			; 1e+020 Wrong!
ConsoleWrite($x & @CRLF)

+, - and ̂ are the only arithmetic operators affected: * and / seem to work correctly. (It was fun composing the exponentiation sign here!)

Change History (3)

comment:1 by anonymous, on May 23, 2016 at 9:46:48 PM

If I run Tidy on those lines, I get the correct results.

comment:2 by jchd18, on May 24, 2016 at 9:07:20 AM

That's obvious, since tidying the code inserts whitespace between literals and operators, when needed, for readability. The bug remains that untidied code isn't parsed correctly or gives wrong results.

comment:3 by jchd18, on May 24, 2016 at 9:08:48 AM

Description: modified (diff)
Note: See TracTickets for help on using tickets.