PluginProbe
WPIDE – File Manager & Code Editor / 3.5.10
WPIDE – File Manager & Code Editor v3.5.10
3.5.10 3.5.9 3.5.8 3.5.7 2.0.14 2.0.15 2.0.16 2.0.2 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1 2.2 2.3 2.3.1 2.3.2 2.4.0 2.5 2.6 3.0 3.1 3.2 All 56 releases
wpide / vendor / nikic / php-parser / lib / PhpParser / NodeVisitor / ParentConnectingVisitor.php

ParentConnectingVisitor.php in WPIDE – File Manager & Code Editor 3.5.10, at vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php

42 lines 865 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php declare(strict_types=1);
2
3 namespace PhpParser\NodeVisitor;
4
5 use function array_pop;
6 use function count;
7 use PhpParser\Node;
8 use PhpParser\NodeVisitorAbstract;
9
10 /**
11 * Visitor that connects a child node to its parent node.
12 *
13 * On the child node, the parent node can be accessed through
14 * <code>$node->getAttribute('parent')</code>.
15 */
16 final class ParentConnectingVisitor extends NodeVisitorAbstract
17 {
18 /**
19 * @var Node[]
20 */
21 private $stack = [];
22
23 public function beforeTraverse(array $nodes)
24 {
25 $this->stack = [];
26 }
27
28 public function enterNode(Node $node)
29 {
30 if (!empty($this->stack)) {
31 $node->setAttribute('parent', $this->stack[count($this->stack) - 1]);
32 }
33
34 $this->stack[] = $node;
35 }
36
37 public function leaveNode(Node $node)
38 {
39 array_pop($this->stack);
40 }
41 }
42