Just an update: I've started coding (in haskell, to be used with Pugs). I've got file input, I've got a data structure for the AST, now I just have to make them play nicely together. I'll start implementing translations soon, so any other corrections would be appreciated.
Thanks to everyone who's already given me corrections, sorry for the mistakes I made (no more top posting for me). Sage