diff options
author | Sanne Wouda <sanne.wouda@gmail.com> | 2015-04-06 13:33:57 +0200 |
---|---|---|
committer | David Adam <zanchey@ucc.gu.uwa.edu.au> | 2015-04-13 13:23:59 +0800 |
commit | cb1e3c501d7a0780fef2e7ccb7579ba82fa54f26 (patch) | |
tree | f58b19fd027e020a7b51eda31bd3f4e982083946 | |
parent | 9e8e5af06407378048630d4932b67a9a64b9ab2d (diff) |
Simplify begin_header production
The TOK_END is swallowed by the subsequent job_list anyway.
-rw-r--r-- | fish_tests.cpp | 4 | ||||
-rw-r--r-- | parse_productions.cpp | 11 | ||||
-rw-r--r-- | parse_tree.h | 2 |
3 files changed, 5 insertions, 12 deletions
diff --git a/fish_tests.cpp b/fish_tests.cpp index 3e4b8dcb..982997d3 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 6ef03f50..3f905b50 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 ff44d862..84114c5f 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 <TOK_END> while_header = WHILE job <TOK_END> - begin_header = BEGIN | BEGIN <TOK_END> + begin_header = BEGIN # Functions take arguments, and require at least one (the name). No redirections allowed. function_header = FUNCTION argument argument_list <TOK_END> |