A node in an expression. Can be constructed from any C++ type that has a corresponding DEFINE_EXPRESSION_NODE_TYPE. Evaluation behaviour (unary/binary operator etc) is defined in the expression grammar, rather than the type itself.