diff options
Diffstat (limited to 'modules/gdscript')
-rw-r--r-- | modules/gdscript/gd_compiler.cpp | 4 | ||||
-rw-r--r-- | modules/gdscript/gd_editor.cpp | 2 | ||||
-rw-r--r-- | modules/gdscript/gd_parser.cpp | 18 | ||||
-rw-r--r-- | modules/gdscript/gd_script.cpp | 4 |
4 files changed, 18 insertions, 10 deletions
diff --git a/modules/gdscript/gd_compiler.cpp b/modules/gdscript/gd_compiler.cpp index 3f8c710674..245f44887c 100644 --- a/modules/gdscript/gd_compiler.cpp +++ b/modules/gdscript/gd_compiler.cpp @@ -1539,7 +1539,7 @@ Error GDCompiler::_parse_function(GDScript *p_script, const GDParser::ClassNode signature += "::0"; } - //funciton and class + //function and class if (p_class->name) { signature += "::" + String(p_class->name) + "." + String(func_name); @@ -1660,7 +1660,7 @@ Error GDCompiler::_parse_class(GDScript *p_script, GDScript *p_owner, const GDPa String sub = p_class->extends_class[i]; if (script->subclasses.has(sub)) { - Ref<Script> subclass = script->subclasses[sub]; //avoid reference from dissapearing + Ref<Script> subclass = script->subclasses[sub]; //avoid reference from disappearing script = subclass; } else { diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp index 702876ecdc..1499f167c4 100644 --- a/modules/gdscript/gd_editor.cpp +++ b/modules/gdscript/gd_editor.cpp @@ -1070,7 +1070,7 @@ static bool _guess_identifier_type(GDCompletionContext &context, int p_line, con //return _guess_expression_type(context,context._class->variables[i].expression,context._class->variables[i].line,r_type); } - //try to guess from assignment in construtor or _ready + //try to guess from assignment in constructor or _ready if (_guess_identifier_from_assignment_in_function(context, p_line + 1, p_identifier, "_ready", r_type)) return true; if (_guess_identifier_from_assignment_in_function(context, p_line + 1, p_identifier, "_enter_tree", r_type)) diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index 86b97e27a9..1540bb51f8 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -76,7 +76,7 @@ bool GDParser::_enter_indent_block(BlockNode *p_block) { // be more python-like int current = tab_level.back()->get(); - tab_level.push_back(current + 1); + tab_level.push_back(current); return true; //_set_error("newline expected after ':'."); //return false; @@ -1021,7 +1021,7 @@ GDParser::Node *GDParser::_parse_expression(Node *p_parent, bool p_static, bool OperatorNode::Operator op; bool valid = true; -//assign, if allowed is only alowed on the first operator +//assign, if allowed is only allowed on the first operator #define _VALIDATE_ASSIGN \ if (!p_allow_assign) { \ _set_error("Unexpected assign."); \ @@ -1253,7 +1253,7 @@ GDParser::Node *GDParser::_parse_expression(Node *p_parent, bool p_static, bool // this is not invalid and can really appear // but it becomes invalid anyway because no binary op // can be followed by an unary op in a valid combination, - // due to how precedence works, unaries will always dissapear first + // due to how precedence works, unaries will always disappear first _set_error("Unexpected two consecutive operators after ternary if."); return NULL; @@ -1263,7 +1263,7 @@ GDParser::Node *GDParser::_parse_expression(Node *p_parent, bool p_static, bool // this is not invalid and can really appear // but it becomes invalid anyway because no binary op // can be followed by an unary op in a valid combination, - // due to how precedence works, unaries will always dissapear first + // due to how precedence works, unaries will always disappear first _set_error("Unexpected two consecutive operators after ternary else."); return NULL; @@ -1300,7 +1300,7 @@ GDParser::Node *GDParser::_parse_expression(Node *p_parent, bool p_static, bool // this is not invalid and can really appear // but it becomes invalid anyway because no binary op // can be followed by an unary op in a valid combination, - // due to how precedence works, unaries will always dissapear first + // due to how precedence works, unaries will always disappear first _set_error("Unexpected two consecutive operators."); return NULL; @@ -2258,7 +2258,15 @@ void GDParser::_parse_block(BlockNode *p_block, bool p_static) { p_block->statements.push_back(nl); #endif + bool is_first_line = true; + while (true) { + if (!is_first_line && tab_level.back()->prev() && tab_level.back()->prev()->get() == indent_level) { + // pythonic single-line expression, don't parse future lines + tab_level.pop_back(); + return; + } + is_first_line = false; GDTokenizer::Token token = tokenizer->get_token(); if (error_set) diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp index e1cc75acfc..9aafe41a0c 100644 --- a/modules/gdscript/gd_script.cpp +++ b/modules/gdscript/gd_script.cpp @@ -532,7 +532,7 @@ bool GDScript::_update_exports() { } } } else { - //print_line("unchaged is "+get_path()); + //print_line("unchanged is "+get_path()); } if (base_cache.is_valid()) { @@ -1271,7 +1271,7 @@ void GDInstance::call_multilevel_reversed(const StringName &p_method, const Vari void GDInstance::notification(int p_notification) { - //notification is not virutal, it gets called at ALL levels just like in C. + //notification is not virtual, it gets called at ALL levels just like in C. Variant value = p_notification; const Variant *args[1] = { &value }; |