| 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: |