I have been reading the DSL book by Martin Fowler. And in that he explains different techniques for creating internal dsls. I spent some time on implementing these features by picking an example for creating a DSL. And in the same post I also explore how one can leverage lambda expressions to facilitate creation of internal dsls.
For a detailed post please visit:
http://blog.sanaulla.info/2013/05/30/creating-internal-dsls-in-java-java-8-adopting-martin-fowlers-approach/