diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2017-11-12 21:11:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-12 21:11:39 +0100 |
commit | 51ffd452026236431eb8eced345ed36d053c247f (patch) | |
tree | c07a50b94ec0454451c96d3752755b78d770d5d5 /modules/gdscript | |
parent | e9392dd876181c58ebdc309be84cbf397784e87b (diff) | |
parent | 91ca725f9b5a4a77ca70024e3bb73b7c7821a530 (diff) |
Merge pull request #12627 from Goutte/feat-support-tau
Add support for TAU constant.
Diffstat (limited to 'modules/gdscript')
-rw-r--r-- | modules/gdscript/gd_editor.cpp | 5 | ||||
-rw-r--r-- | modules/gdscript/gd_parser.cpp | 7 | ||||
-rw-r--r-- | modules/gdscript/gd_script.cpp | 2 | ||||
-rw-r--r-- | modules/gdscript/gd_tokenizer.cpp | 3 | ||||
-rw-r--r-- | modules/gdscript/gd_tokenizer.h | 1 |
5 files changed, 18 insertions, 0 deletions
diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp index 0db3694a49..346b7d326a 100644 --- a/modules/gdscript/gd_editor.cpp +++ b/modules/gdscript/gd_editor.cpp @@ -337,6 +337,11 @@ void GDScriptLanguage::get_public_constants(List<Pair<String, Variant> > *p_cons pi.second = Math_PI; p_constants->push_back(pi); + Pair<String, Variant> tau; + tau.first = "TAU"; + tau.second = Math_TAU; + p_constants->push_back(tau); + Pair<String, Variant> infinity; infinity.first = "INF"; infinity.second = Math_INF; diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index 94385dc0d0..d7e83c3a33 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -362,6 +362,13 @@ GDParser::Node *GDParser::_parse_expression(Node *p_parent, bool p_static, bool constant->value = Math_PI; tokenizer->advance(); expr = constant; + } else if (tokenizer->get_token() == GDTokenizer::TK_CONST_TAU) { + + //constant defined by tokenizer + ConstantNode *constant = alloc_node<ConstantNode>(); + constant->value = Math_TAU; + tokenizer->advance(); + expr = constant; } else if (tokenizer->get_token() == GDTokenizer::TK_CONST_INF) { //constant defined by tokenizer diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp index 3f3818ffb9..e5016c59bd 100644 --- a/modules/gdscript/gd_script.cpp +++ b/modules/gdscript/gd_script.cpp @@ -1324,6 +1324,7 @@ void GDScriptLanguage::init() { } _add_global(StaticCString::create("PI"), Math_PI); + _add_global(StaticCString::create("TAU"), Math_TAU); _add_global(StaticCString::create("INF"), Math_INF); _add_global(StaticCString::create("NAN"), Math_NAN); @@ -1700,6 +1701,7 @@ void GDScriptLanguage::get_reserved_words(List<String> *p_words) const { "bool", "null", "PI", + "TAU", "INF", "NAN", "self", diff --git a/modules/gdscript/gd_tokenizer.cpp b/modules/gdscript/gd_tokenizer.cpp index 5f85158232..98ac0f473d 100644 --- a/modules/gdscript/gd_tokenizer.cpp +++ b/modules/gdscript/gd_tokenizer.cpp @@ -123,6 +123,7 @@ const char *GDTokenizer::token_names[TK_MAX] = { "'$'", "'\\n'", "PI", + "TAU", "_", "INF", "NAN", @@ -217,6 +218,7 @@ static const _kws _keyword_list[] = { { GDTokenizer::TK_CF_PASS, "pass" }, { GDTokenizer::TK_SELF, "self" }, { GDTokenizer::TK_CONST_PI, "PI" }, + { GDTokenizer::TK_CONST_TAU, "TAU" }, { GDTokenizer::TK_WILDCARD, "_" }, { GDTokenizer::TK_CONST_INF, "INF" }, { GDTokenizer::TK_CONST_NAN, "NAN" }, @@ -280,6 +282,7 @@ bool GDTokenizer::is_token_literal(int p_offset, bool variable_safe) const { case TK_CF_PASS: case TK_SELF: case TK_CONST_PI: + case TK_CONST_TAU: case TK_WILDCARD: case TK_CONST_INF: case TK_CONST_NAN: diff --git a/modules/gdscript/gd_tokenizer.h b/modules/gdscript/gd_tokenizer.h index c935ce45a1..f4b579def4 100644 --- a/modules/gdscript/gd_tokenizer.h +++ b/modules/gdscript/gd_tokenizer.h @@ -128,6 +128,7 @@ public: TK_DOLLAR, TK_NEWLINE, TK_CONST_PI, + TK_CONST_TAU, TK_WILDCARD, TK_CONST_INF, TK_CONST_NAN, |