Fixes #32963 by correctly parsing bin/hex literals

This commit is contained in:
Micheál Keane 2019-11-12 15:57:38 -05:00
parent 9e631a40c6
commit 4b9fd961d6

View file

@ -937,8 +937,10 @@ void GDScriptTokenizerText::_advance() {
return;
}
hexa_found = true;
} else if (GETCHAR(i) == 'b') {
if (hexa_found || bin_found || str.length() != 1 || !((i == 1 && str[0] == '0') || (i == 2 && str[1] == '0' && str[0] == '-'))) {
} else if (hexa_found && _is_hex(GETCHAR(i))) {
} else if (!hexa_found && GETCHAR(i) == 'b') {
if (bin_found || str.length() != 1 || !((i == 1 && str[0] == '0') || (i == 2 && str[1] == '0' && str[0] == '-'))) {
_make_error("Invalid numeric constant at 'b'");
return;
}
@ -951,7 +953,6 @@ void GDScriptTokenizerText::_advance() {
exponent_found = true;
} else if (_is_number(GETCHAR(i))) {
//all ok
} else if (hexa_found && _is_hex(GETCHAR(i))) {
} else if (bin_found && _is_bin(GETCHAR(i))) {