Is there a way, in BNF, to specify a rule that an element consists of a list of items, and each item is optional, can appear only once, and order isn't important?
For example:
<meal> ::= <appetizer><salad><entree><dessert>
<appetizer> ::= <empty> | <cheeseplate> | <breadsticks> | ...
etc.
So I have my meal parts, all of which are optional (because I include the <empty> item). But how do I allow arbitrary sequences (e.g. <dessert> first)?
Thanks in advance