[Ur] Bug with oversized int literals and hexadecimal ones bigger than 32 bits
Adam Chlipala
adamc at csail.mit.edu
Thu May 28 10:30:51 EDT 2015
Thanks, patch pushed! I also removed the redundant line of code pointed
out in your follow-up message.
On 05/26/2015 07:53 AM, Gabriel Riba wrote:
> Affected: urweb.lex
>
> 1. Oversized int literals throw an unhandled Overflow exception in SML
> Basis Int64.fromString, making the lexer fail.
>
> Documentation:
> http://sml-family.org/Basis/integer.html#SIG:INTEGER.scan:VAL
>
> Adding
>
> handle Overflow => NONE
>
> solves it.
>
> 2. Hexadecimal literals are defined too shortly, and refuse values
> bigger then 32 bits.
>
> hexconst = 0x[0-9A-F]{1,8};
>
> The actual definition with max. repetitions specifier, causes an
> oversized literal to be split in two tokens making the error ugly.
>
> It is better to accept the whole token and check for the Overflow when
> converted, adding the exception handler as with the previous section.
>
> (This bug is from a proposal of mine, so It was my fault)
More information about the Ur
mailing list