updated BNF to take advantage of more cunning approach in EBNF