Not to beat a dead horse, but if you discard *all* notion in RFC-822 that
dot is any way a special character, you end up with an even simpler grammar
than RFC-822. What's more, you delete a lot of the special rules indicated by
notes but not in the grammar.
For example, you end up with the following simplification:
local-part = word
domain = atom / domain-literal
I know that many implementations do exactly this, in order to deal with the
garbage passing as RFC-822 floating around on the net.
As for your `hobby horse', it sounds like a good idea to me. I can't
think of any particular reason why comma is in tspecials either, except due to
the same thoughtlessness that inserted dot (on this, I must plead guilty). I
see three paths that can be taken:
1) leave it alone.
2) remove comma from tspecials along with period.
3) leave comma in tspecials, but change the grammar as follows:
parameter := attribute "=" value-list
value-list =: value ["," value-list]
Personally, I think that #3 is the cleanest, since it defines a specific
syntax for multiple values, as distinct from a value which happens to contain
an embedded comma.
-- Mark --