Notation
The following notations are used in describing grammars and languages:
| V* | Kleene closure: a string of 0 or more |
| elements from the set V. | |
| V+ | 1 or more elements from V |
| V? | 0 or 1 elements from V ( i.e., optional) |
| a | b | either a or b |
| <nt> | a nonterminal symbol or phrase name |
| ε | the empty string |