here's some groovy hacking, not quite ANTLR but similar