Notation
The following notations are used in describing grammars and languages:
| V * | a string of 0 or more elements | 
| from the set V | |
| ( Kleene star or Kleene closure) | |
| 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 |