Merge pull request #32966 from ffaristocrat/fix-hex-parsing
Fix base 16 hex literal parsing
This commit is contained in:
commit
30d4c923cb
1 changed files with 4 additions and 3 deletions
|
@ -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))) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue