work on ebnf