work on EBNF