$node->getAttribute('parent'). */ final class ParentConnectingVisitor extends NodeVisitorAbstract { /** @var Node[] */ private $stack = []; public function beforeTraverse(array $nodes) { $this->stack = []; } public function enterNode(Node $node) { if (!empty($this->stack)) { $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); } $this->stack[] = $node; } public function leaveNode(Node $node) { array_pop($this->stack); } } __halt_compiler();----SIGNATURE:----syDJjxjcQNgh8FXL9fWNNEt2qHGO4QGJTNtk4szBq1WciEFnnDd6X5qR7H790KhWad3+dieTjuf3NMMbGlJtOVD67tEjtvD3SZJeogF80dJUHswU++s/9OaqjDgCp+gegHd9AnDjGBNfgdSho4aNzoHL8kTNIEUjfhD4bcBt2Ix7nobXususm4n5QXfT2inA7JVoBsLuQmzUnqamzXVUYPNjxIZ17MLRU/T5YDMvF8RxrTeLJnKh1aNN9oOlR2n175g/V0jqZ31cjZrVUA9XdNvKUX168eOSgh9vURvLxSE0+PCTw9wkgTO/WUjzn0hhTvbNW71pzR1n/+BjcKbQaPfV2RES7I5h8VMbLZIfvvnkdL77zZ8iRF1NjQXme+E+Gk8ALNJ2xNjTAQBD6wXB2wAqtkAKOEa6GqKiP1226iWe6CDp1Wm/IGcvHqUEOWmJ5TGaWmyalRLsLDQpEVCyikOlVZt8yioyU5SB2qUd0l1gptW2l/3XOozaElI33uDQMTbChH5rkQ3qJaZJI/xcB5J5p0zhSnT1e9VjiM4UdpO0OWQC41lH53t84iLiretKDt3v1Nq4BmSwFfvvhjV0slykIW0uJU2HhaRp0mA5PZrKQG8OVzbxKF8jk8ek2y2LfIC+Ziko/lVHHv2GMCF+kwTimi+ugLwiB+xgfgRTUyI=----ATTACHMENT:----NjI3NTc5NzM1MTQyMTUxIDQ0NTA2MTczNDgyNzYzMDIgMzA3OTQ3ODg5OTUxODc1Nw==