http://austingroupbugs.net/view.php?id=735
When processed by
Desired Action
On page 2351, lines 74863-74866, change
When processed by
yacc(1), Shell Grammar Rules result in 5 shift/reduce conflicts. These conflicts are all caused by unnecessary linebreak non-terminals in case_item_ns rule after compound_list non-terminals. The linebreak non-terminal are indeed unnecessary because compound_list rulecompound_list : term
| newline_list term
| term separator
| newline_list term separator
;whereseparator : separator_op linebreak
| newline_list
;itself embeds linebreak definitionlinebreak : newline_list
| /* empty */
;Without the trailing linebreak non-terminals following compound_list, yacc(1) produces no shift/reduce conflicts.Desired Action
On page 2351, lines 74863-74866, change
case_item_ns : pattern ')' linebreak
| pattern ')' compound_list linebreak
| '(' pattern ')' linebreak
| '(' pattern ')' compound_list linebreak
;tocase_item_ns : pattern ')' linebreak
| pattern ')' compound_list
| '(' pattern ')' linebreak
| '(' pattern ')' compound_list
;