diff options
author | George Marques <george@gmarqu.es> | 2020-08-19 10:19:05 -0300 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2020-08-19 10:19:05 -0300 |
commit | a52e457adaf4a0618879b290fb043edd5385c2fd (patch) | |
tree | e232c9b97fe45e2ba16a0e1f1879574e35da6045 /modules/gdscript/gdscript_parser.cpp | |
parent | 35176247af80626684ff6bb1a1eb3bc031857b1c (diff) | |
download | redot-engine-a52e457adaf4a0618879b290fb043edd5385c2fd.tar.gz |
GDScript: Allow keywords to be used in $ notation
Diffstat (limited to 'modules/gdscript/gdscript_parser.cpp')
-rw-r--r-- | modules/gdscript/gdscript_parser.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index e53a1090fe..adc3699519 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -2489,15 +2489,18 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_get_node(ExpressionNode *p make_completion_context(COMPLETION_GET_NODE, get_node); get_node->string = parse_literal(); return get_node; - } else if (check(GDScriptTokenizer::Token::IDENTIFIER)) { + } else if (current.is_node_name()) { GetNodeNode *get_node = alloc_node<GetNodeNode>(); int chain_position = 0; do { make_completion_context(COMPLETION_GET_NODE, get_node, chain_position++); - if (!consume(GDScriptTokenizer::Token::IDENTIFIER, R"(Expect node identifer after "/".)")) { + if (!current.is_node_name()) { + push_error(R"(Expect node path after "/".)"); return nullptr; } - IdentifierNode *identifier = parse_identifier(); + advance(); + IdentifierNode *identifier = alloc_node<IdentifierNode>(); + identifier->name = previous.get_identifier(); get_node->chain.push_back(identifier); } while (match(GDScriptTokenizer::Token::SLASH)); return get_node; |