@ Page 3064 Line 33374 Section sh Editorial [DST-1]
Problem:
Historical clarity.
Action:
"at this time" -> "at that time". We're talking history, not current
decisions.
@ Page 2261 Line 2414 Section shell Editorial [DST-2]
Problem:
Compare the whitespace use on P147 L1214 of .2-1992. The whitspace
is carefully layed out to emphasize the difference and similiarites in
the rules
for case_item. Most of that whitespace use (for other rules) has been
retained in this draft, but that has not.
Action:
Restore so that case_item looks the same as it did there; case_item_ns
should be similar.
See also DST-6.
@ Page 2261 Line 2413 Section shell Comment [DST-6]
Problem:
This change to the case statement grammar is misleading and hard
to follow. I believe that the following more clearly expresses
the intent. Although I have not done the analysis necessary, it
also looks to me as if it might end up being a little easier for
a yacc parser to parse, because the right context (follow set) of
case_item_ns is clearly just Esac (rather than having to infer it
from the closure, which might bring in other symbols?) (If someone
is actually using yacc on these grammars currently, they could
easily check that it at least doesn't hurt.) I suspect that
there may be further factoring that would help make this more
parseable both by yacc and humans, but this is at least a step.
I apologize for not seeing this much earlier; this is submitted as a
because of that.
Action:
case_clause : Case WORD linebreak in linebreak case_list Esac
| Case WORD linebreak in linebreak case_list case_item_ns
Esac
| Case WORD linebreak in linebreak Esac
;
(These aren't really changed, but for reference...)
case_list : case_list case_item
| case_item
;
case_item : pattern ')' linebreak DSEMI linebreak
| pattern ')' compound_list DSEMI linebreak
| '(' pattern ')' linebreak DSEMI linebreak
| '(' pattern ')' compound_list DSEMI linebreak
case_item_ns: pattern ')' linebreak
| pattern ')' compound_list linebreak
| '(' pattern ')' linebreak
| '(' pattern ')' compound_list linebreak
|