| 1 |
<?php declare(strict_types=1); |
| 2 |
|
| 3 |
namespace PhpParser; |
| 4 |
|
| 5 |
use PhpParser\Node\Expr; |
| 6 |
|
| 7 |
interface PrettyPrinter { |
| 8 |
/** |
| 9 |
* Pretty prints an array of statements. |
| 10 |
* |
| 11 |
* @param Node[] $stmts Array of statements |
| 12 |
* |
| 13 |
* @return string Pretty printed statements |
| 14 |
*/ |
| 15 |
public function prettyPrint(array $stmts): string; |
| 16 |
|
| 17 |
/** |
| 18 |
* Pretty prints an expression. |
| 19 |
* |
| 20 |
* @param Expr $node Expression node |
| 21 |
* |
| 22 |
* @return string Pretty printed node |
| 23 |
*/ |
| 24 |
public function prettyPrintExpr(Expr $node): string; |
| 25 |
|
| 26 |
/** |
| 27 |
* Pretty prints a file of statements (includes the opening <?php tag if it is required). |
| 28 |
* |
| 29 |
* @param Node[] $stmts Array of statements |
| 30 |
* |
| 31 |
* @return string Pretty printed statements |
| 32 |
*/ |
| 33 |
public function prettyPrintFile(array $stmts): string; |
| 34 |
|
| 35 |
/** |
| 36 |
* Perform a format-preserving pretty print of an AST. |
| 37 |
* |
| 38 |
* The format preservation is best effort. For some changes to the AST the formatting will not |
| 39 |
* be preserved (at least not locally). |
| 40 |
* |
| 41 |
* In order to use this method a number of prerequisites must be satisfied: |
| 42 |
* * The startTokenPos and endTokenPos attributes in the lexer must be enabled. |
| 43 |
* * The CloningVisitor must be run on the AST prior to modification. |
| 44 |
* * The original tokens must be provided, using the getTokens() method on the lexer. |
| 45 |
* |
| 46 |
* @param Node[] $stmts Modified AST with links to original AST |
| 47 |
* @param Node[] $origStmts Original AST with token offset information |
| 48 |
* @param Token[] $origTokens Tokens of the original code |
| 49 |
*/ |
| 50 |
public function printFormatPreserving(array $stmts, array $origStmts, array $origTokens): string; |
| 51 |
} |
| 52 |
|