В публикациях Мэннинга есть книга " DSL в действии ", которая вначале охватывает Java.
Но, возможно, вы захотите взглянуть на использование Groovy для написания вашего DSL, поскольку у динамического языка есть много возможностей, и у него будет более короткая кривая обучения, чем у Scala.
Для вступления вы можете начать с http://docs.codehaus.org/display/GROOVY/Writing+Domain-Specific+Languages.
Книга, которую я упомянул, также охватывает использование antlr, и когда имеет смысл использовать, а когда нет, поэтому, если вы хотите лучше понять, как писать и поддерживать DSL, это отличная книга.