# <> must choose # [] can choose # {} can repeat 0 to infinite time(s) # | or # ::= is defined as ::= ::= ::= ::= ::= <[> { <,> } <]> ::= <{> { ( ) | ( ) <:> <,> } <}> ::= [ <(> { ( [ <=> ] ) | ( ) <,> } <)> ] ( ) | ( <{> { <;> } <}> ) ::= ::= <=> | <(> { <,> } <)> <=> | <(> { <,> } <) <=> ::= ::= <(> <)> ( ) | ( <{> { <;> } <}> ) { ( ) | ( ) } <(> <)> ( ) | ( <{> { <;> } <}> ) [ ( ) | ( <{> { <;> } <}> ) ::= <(> <;> <;> <)> ( ) | ( <{> { <;> } <}> ) | <(> <;> <)> ( ) | ( <{> { <;> } <}> ) | <(> <;> <)> ( ) | ( <{> { <;> } <}> ) | <(> <)> ( ) | ( <{> { <;> } <}> ) ::= | | | |