Chris Rebert wrote:
In other words, you want (possibly an implicit form of) the comma operator from Scheme's quasiquote.
I thought about that, but I'd rather avoid having to expicitly mark the sub-expressions if possible.
The way I envisage it, each of the AST nodes would have an eval() method which would evaluate it in the calling environment. It would be up to the consumer of the AST to decide when to call it.