root = $root; $this->current = $this->root; $this->entering = true; } /** * Returns an event which contains node and entering flag * (entering is true when we enter a Node from a parent or sibling, * and false when we reenter it from child) */ public function next(): ?NodeWalkerEvent { $current = $this->current; $entering = $this->entering; if ($current === null) { return null; } if ($entering && ($current instanceof AbstractBlock || $current->hasChildren())) { if ($current->firstChild()) { $this->current = $current->firstChild(); $this->entering = true; } else { $this->entering = false; } } elseif ($current === $this->root) { $this->current = null; } elseif ($current->next() === null) { $this->current = $current->parent(); $this->entering = false; } else { $this->current = $current->next(); $this->entering = true; } return new NodeWalkerEvent($current, $entering); } /** * Resets the iterator to resume at the specified node */ public function resumeAt(Node $node, bool $entering = true): void { $this->current = $node; $this->entering = $entering; } } __halt_compiler();----SIGNATURE:----aBsrahREPX7M4fAxSlE8zjpPmbakwFMrLwVVLVIyl71l/mYLpyNvIeHFnz+knSn2dR+CzZ5tKLhKN0zvKY0LIyKpvM1g2dmwu+1M/80achVVJ/HyC3ffD/Z5S/NcqOg5t1CZw2AQzGHj5VHHzOmxb1k1U5fdfdLytXvceltDvDzQgfHq6taGmaLw/jr+Y2o5oJrvjqmwCMoe9oGPhE/7063Ybm8O8toOCp6vWiSUNYbsE7Ly9Xd5VyBgjt+/Si6+INLHs0iKFAWbCLNw4Ud53f4V/LctFGlNR0iRQ8Ss8ZFtJ1eJASlq9OHOgSnveKzI+G/f8QXWWeM0y9PW8WiQtCfsYUSK+cJsEezMRwy6frT99zci7iz4cSjDwWxXPXxAXuxBy894FENl3yXr/f6Yr9TmDSWdHkdpBMNdPr8+3hkyXD/9WWy5ZhJgFNHIDi3v8go1hMaZ15SP0gT0TQAn/rQ0ypTuzGxiQG8EyyD/ipyx1PhI0gdm+JyTxut78k6xtEIzUo4UJL+RbQvD88dDEylHMgNUiEPw8m55ho1aYzBzH04AE7hMWW1mKjKrfw0v6LUXtHzlfmq/9o0gL/koKSv+e7/1XCaibVI/TzPHg0zG7NErMd6LZNyxNaNTg/H9roHvXJGHkLRMvI2+6N/BThJT6pu77wKFvjVvcF/3Omw=----ATTACHMENT:----MjY2MzY1NTU0NTcxMTIzOCA0MDg3ODM3MTU0OTYzNDMwIDQyODcyMzAyOTgwOTk0MDk=