Merge pull request #32966 from ffaristocrat/fix-hex-parsing

Fix base 16 hex literal parsing
This commit is contained in:
Rémi Verschelde 2019-11-12 23:04:20 +01:00 committed by GitHub
commit 30d4c923cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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