finish BNF except main class