Browse Source

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

Fix base 16 hex literal parsing
Rémi Verschelde 5 years ago
parent
commit
30d4c923cb
1 changed files with 4 additions and 3 deletions
  1. 4 3
      modules/gdscript/gdscript_tokenizer.cpp

+ 4 - 3
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))) {