BNF based parsing now working