diff --git a/fish_tests.cpp b/fish_tests.cpp index 3e4b8dcb3..982997d36 100644 --- a/fish_tests.cpp +++ b/fish_tests.cpp @@ -891,7 +891,9 @@ static void test_indents() const indent_component_t components7[] = { - {L"begin; end", 0}, + {L"begin", 0}, + {L";", 1}, + {L"end", 0}, {L"foo", 0}, {L"", 0}, {NULL, -1} diff --git a/parse_productions.cpp b/parse_productions.cpp index 6ef03f50b..3f905b50c 100644 --- a/parse_productions.cpp +++ b/parse_productions.cpp @@ -341,18 +341,9 @@ RESOLVE_ONLY(while_header) PRODUCTIONS(begin_header) = { - {KEYWORD(parse_keyword_begin), parse_token_type_end}, {KEYWORD(parse_keyword_begin)} }; -RESOLVE(begin_header) -{ - switch (token2.type) { - case parse_token_type_end: - return 0; - default: - return 1; - } -} +RESOLVE_ONLY(begin_header) PRODUCTIONS(function_header) = { diff --git a/parse_tree.h b/parse_tree.h index ff44d8627..84114c5f4 100644 --- a/parse_tree.h +++ b/parse_tree.h @@ -253,7 +253,7 @@ bool parse_tree_from_string(const wcstring &str, parse_tree_flags_t flags, parse block_header = for_header | while_header | function_header | begin_header for_header = FOR var_name IN argument_list while_header = WHILE job - begin_header = BEGIN | BEGIN + begin_header = BEGIN # Functions take arguments, and require at least one (the name). No redirections allowed. function_header = FUNCTION argument argument_list