add bnf rules