Nathan and Alex's Wacky Adventure in External DSLs

It doesn't seem very Scala-y to explicitly carry around a MutableList in eval(). You should design the code so at each step a new partially-interpreted object is returned that you can then add to.