aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Sanne Wouda <sanne.wouda@gmail.com>2015-04-06 13:33:57 +0200
committerGravatar David Adam <zanchey@ucc.gu.uwa.edu.au>2015-04-13 13:23:59 +0800
commitcb1e3c501d7a0780fef2e7ccb7579ba82fa54f26 (patch)
treef58b19fd027e020a7b51eda31bd3f4e982083946
parent9e8e5af06407378048630d4932b67a9a64b9ab2d (diff)
Simplify begin_header production
The TOK_END is swallowed by the subsequent job_list anyway.
-rw-r--r--fish_tests.cpp4
-rw-r--r--parse_productions.cpp11
-rw-r--r--parse_tree.h2
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>