From 4b9fd961d676f8b2207614a3f42fe6659aa7ee7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michea=CC=81l=20Keane?= Date: Tue, 12 Nov 2019 15:57:38 -0500 Subject: Fixes #32963 by correctly parsing bin/hex literals --- modules/gdscript/gdscript_tokenizer.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/gdscript/gdscript_tokenizer.cpp b/modules/gdscript/gdscript_tokenizer.cpp index 8b20b0ff48..7e33630743 100644 --- a/modules/gdscript/gdscript_tokenizer.cpp +++ b/modules/gdscript/gdscript_tokenizer.cpp @@ -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))) { -- cgit v1.2.3