Expand description
This implements ToTokensState for Expression.
For most use-cases, calling this method will output rust code that properly evaluates to whatever final value the expression represents.
If any new attributes occur in the
expression, the provided attr_fun function (see ToTokensState) should register them with the state object.