1: <?php declare(strict_types=1);
2:
3: namespace PhpParser\NodeVisitor;
4:
5: use PhpParser\Node;
6: use PhpParser\NodeVisitorAbstract;
7:
8: /**
9: * Visitor cloning all nodes and linking to the original nodes using an attribute.
10: *
11: * This visitor is required to perform format-preserving pretty prints.
12: */
13: class CloningVisitor extends NodeVisitorAbstract
14: {
15: public function enterNode(Node $origNode) {
16: $node = clone $origNode;
17: $node->setAttribute('origNode', $origNode);
18: return $node;
19: }
20: }
21: