Just from the top of my head, wouldn't it be better to evaluate `structa` when over `structa`, and `structa->item1` when over `item1`? I think it's reasonably useful to be able to get the evaluation of a part of the expression, here the parent.
Also if you wanted to be thorough, the C and C++ syntax allows for any kind of spaces between `structa`, `->` and `item1` :grin: