Table 2: A Summary of EBNF operators
X = Y . means "an X is defined to be a Y" X | Y means "either an X or a Y" [ X ] means 0 or 1 occurrence(s) of an X" { X } means "0 or more occurrences of an X" also ( ) group sub-expressions " " enclose a terminal symbol