a) first it checks if the (octal) number begins with '_'
b) then it checks the next charachters to see if they are valid (not
the case so the parsing ends)
c) then it checks if the last character was '_'.
In this case there is only one character and this produces the warning
(because '_' is not valid at the start of a number nor at the end of a
The double warning also happens in the following cases:
The double warning does not happen for:
The reason for this is that the parsing of the exponent is a bit
a) it checks if the first character is '_'
b) it checks if the second character is '+' or '-'
c) it checks if the third character is _
This also means that: print 5e__-3 is parsed as: 5 - 3 (= 2) and not as
The only fix I can currently see is to add another var which contains
the 'real start' of the number...