optional parameter size in BNF.first_lookup
removed commented code
moved bnf tests to an intedependent file