GDScript: Allow "match" to be used as an identifier

This is needed to call the String.match() function.
This commit is contained in:
George Marques 2020-08-17 20:14:46 -03:00
parent d45e1befe3
commit 9ecd042e78
No known key found for this signature in database
GPG key ID: 046BD46A3201E43D
2 changed files with 14 additions and 3 deletions

View file

@ -156,6 +156,18 @@ const char *GDScriptTokenizer::Token::get_name() const {
return token_names[type];
}
bool GDScriptTokenizer::Token::is_identifier() const {
// Note: Most keywords should not be recognized as identifiers.
// These are only exceptions for stuff that already is on the engine's API.
switch (type) {
case IDENTIFIER:
case MATCH: // Used in String.match().
return true;
default:
return false;
}
}
String GDScriptTokenizer::get_token_name(Token::Type p_token_type) {
ERR_FAIL_INDEX_V_MSG(p_token_type, Token::TK_MAX, "<error>", "Using token type out of the enum.");
return token_names[p_token_type];

View file

@ -168,9 +168,8 @@ public:
String source;
const char *get_name() const;
// TODO: Allow some keywords as identifiers?
bool is_identifier() const { return type == IDENTIFIER; }
StringName get_identifier() const { return literal; }
bool is_identifier() const;
StringName get_identifier() const { return source; }
Token(Type p_type) {
type = p_type;