Tidy up BNF
Add description
Add initial parser