summaryrefslogtreecommitdiff
path: root/modules/gdscript/gd_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gdscript/gd_parser.cpp')
-rw-r--r--modules/gdscript/gd_parser.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp
index 029e227cdd..ede6e63806 100644
--- a/modules/gdscript/gd_parser.cpp
+++ b/modules/gdscript/gd_parser.cpp
@@ -290,8 +290,10 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
} break;
case GDTokenizer::TK_CONSTANT: {
- if (!need_identifier)
+ if (!need_identifier) {
+ done=true;
break;
+ }
if (tokenizer->get_token_constant().get_type()!=Variant::STRING) {
_set_error("Expected string constant or identifier after '$' or '/'.");
@@ -300,12 +302,14 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
path+=String(tokenizer->get_token_constant());
tokenizer->advance();
+ need_identifier=false;
} break;
case GDTokenizer::TK_IDENTIFIER: {
-
- if (!need_identifier)
+ if (!need_identifier) {
+ done=true;
break;
+ }
path+=String(tokenizer->get_token_identifier());
tokenizer->advance();
@@ -314,8 +318,10 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
} break;
case GDTokenizer::TK_OP_DIV: {
- if (need_identifier)
+ if (need_identifier) {
+ done=true;
break;
+ }
path+="/";
tokenizer->advance();