I am critical of what I percieve to be a pathological growth of objects (and search times). If those problems are corrected, there are plenty of resources left to do a few extra parses.
How often will you encounter expressions this complex ? Rarely.
A complex expression tree *will* *not* have any influence on search times in the inheritance lattice of a property. Unless there are functions referencing other properties of course. And more offten than not, there will be exactly one object in the tree, representing the only token parsed from the property value, which is hardly a pathological growth of objects.
This implies that objects must exist even if they will never be used after the parser moves past their end-points. Optimization anyone?
Be careful, proper layout needs backtracking.
J.Pietschmann