In your build_64int, there's a few things you need to do.
1) check for leading 0x and skip it.
2) Instead of checking "str[i] <= ASCII_9", you need to check if str[i] is a hex digit and possibly a period and if it's a period, return nil (so that floating point numbers with 64 bit suffixes are disallowed).
3) if leading 0x is present, multiply by 16 instead of 10.
I'm not providing a patch as my codebase is heavily changed (working on a language) and uses a different lexer/parser, but this is what I came up to while messing around with lj-lang-toolkit, and it should be trivial for you to do.
In your build_64int, there's a few things you need to do.
1) check for leading 0x and skip it. 2) Instead of checking "str[i] <= ASCII_9", you need to check if str[i] is a hex digit and possibly a period and if it's a period, return nil (so that floating point numbers with 64 bit suffixes are disallowed). 3) if leading 0x is present, multiply by 16 instead of 10.
I'm not providing a patch as my codebase is heavily changed (working on a language) and uses a different lexer/parser, but this is what I came up to while messing around with lj-lang-toolkit, and it should be trivial for you to do.