Add move virtual void evaluate() =0 from Node into new StatementNode subclass Darin suggested this as part of comments on bug 15879. I agree, I think it would make the node tree cleaner.
Created attachment 17131 [details] the patch Well, this does as requested... adds an ExpressionNode and makes all expressions use it/subclass from it instead of Node.
Comment on attachment 17131 [details] the patch Good first step. Now some of the nodes should probably not be a subclass of ExpressionNode, since they're not used in a polymorphic way.
Committed as r27622.