Parse any language you can describe in BNF -- Release 2