aboutsummaryrefslogtreecommitdiff
path: root/modules/gdscript/gd_parser.cpp
diff options
context:
space:
mode:
authorJuan Linietsky2017-01-08 03:01:52 -0300
committerJuan Linietsky2017-01-08 03:01:52 -0300
commit8963ca3d17ff6e1340cb5c2eb88a6485ec422a64 (patch)
tree9154c469e1f0a33dc34ae0f4ed49b36b49cfdbf9 /modules/gdscript/gd_parser.cpp
parent8b912d11152410302f45eaa117c19b7016d781f5 (diff)
downloadgodot-8963ca3d17ff6e1340cb5c2eb88a6485ec422a64.tar.gz
godot-8963ca3d17ff6e1340cb5c2eb88a6485ec422a64.tar.zst
godot-8963ca3d17ff6e1340cb5c2eb88a6485ec422a64.zip
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 029e227cd..ede6e6380 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();