I have recently been experimenting with Treetop, a ruby gem that allows you to easily work with parsing expression grammars.

I may move to Common Lisp or Clojure for writing DSLs, but I am pretty happy with my early experience with Treetop. The one downside, especially compared to Antlr which has a couple of books out there, is that the Treetop documentation had me more than once scratching my head and hacking rather than looking up a relevant reference.

I think parsing expression grammars and packrat parsing in general is going to explode the DSL dev scene . . .