Fix lexer bug: we didn't look far enough ahead when parsing 1.0e+x
(i.e. the e+x shouldn't be treated as an exponent).
do_exponent
= let buf3 = incLexeme buf2 in
case currentChar# buf3 of
- '-'# -> expandWhile# is_digit (incLexeme buf3)
- '+'# -> expandWhile# is_digit (incLexeme buf3)
+ '-'# | is_digit (lookAhead# buf 1#)
+ -> expandWhile# is_digit (incLexeme buf3)
+ '+'# | is_digit (lookAhead# buf 1#)
+ -> expandWhile# is_digit (incLexeme buf3)
x | is_digit x -> expandWhile# is_digit buf3
_ -> buf2