updating BNF grammar