summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-11-12 23:04:20 +0100
committerGitHub <noreply@github.com>2019-11-12 23:04:20 +0100
commit30d4c923cbe0c61bfcae4e91227d7bbdec8737c1 (patch)
treea0e5a89856782c69b1674fe42d6d6f6870f2ddee
parent62a09a2ee351430f9d55eee337691958e877cc68 (diff)
parent4b9fd961d676f8b2207614a3f42fe6659aa7ee7a (diff)
Merge pull request #32966 from ffaristocrat/fix-hex-parsing
Fix base 16 hex literal parsing
-rw-r--r--modules/gdscript/gdscript_tokenizer.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/modules/gdscript/gdscript_tokenizer.cpp b/modules/gdscript/gdscript_tokenizer.cpp
index 23a86f8d2b..761a3de37c 100644
--- a/modules/gdscript/gdscript_tokenizer.cpp
+++ b/modules/gdscript/gdscript_tokenizer.cpp
@@ -907,8 +907,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;
}
@@ -921,7 +923,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))) {