Browse Source

Merge pull request #8123 from bojidar-bg/gdscript-inline-block-indent

Make inline blocks in GDScript more (or less) pythonic
Rémi Verschelde 8 years ago
parent
commit
495710c3d6
1 changed files with 9 additions and 1 deletions
  1. 9 1
      modules/gdscript/gd_parser.cpp

+ 9 - 1
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;
@@ -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)