52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
|
<?php declare(strict_types=1);
|
||
|
|
||
|
namespace PhpParser;
|
||
|
|
||
|
use PhpParser\Node\Expr;
|
||
|
|
||
|
interface PrettyPrinter {
|
||
|
/**
|
||
|
* Pretty prints an array of statements.
|
||
|
*
|
||
|
* @param Node[] $stmts Array of statements
|
||
|
*
|
||
|
* @return string Pretty printed statements
|
||
|
*/
|
||
|
public function prettyPrint(array $stmts): string;
|
||
|
|
||
|
/**
|
||
|
* Pretty prints an expression.
|
||
|
*
|
||
|
* @param Expr $node Expression node
|
||
|
*
|
||
|
* @return string Pretty printed node
|
||
|
*/
|
||
|
public function prettyPrintExpr(Expr $node): string;
|
||
|
|
||
|
/**
|
||
|
* Pretty prints a file of statements (includes the opening <?php tag if it is required).
|
||
|
*
|
||
|
* @param Node[] $stmts Array of statements
|
||
|
*
|
||
|
* @return string Pretty printed statements
|
||
|
*/
|
||
|
public function prettyPrintFile(array $stmts): string;
|
||
|
|
||
|
/**
|
||
|
* Perform a format-preserving pretty print of an AST.
|
||
|
*
|
||
|
* The format preservation is best effort. For some changes to the AST the formatting will not
|
||
|
* be preserved (at least not locally).
|
||
|
*
|
||
|
* In order to use this method a number of prerequisites must be satisfied:
|
||
|
* * The startTokenPos and endTokenPos attributes in the lexer must be enabled.
|
||
|
* * The CloningVisitor must be run on the AST prior to modification.
|
||
|
* * The original tokens must be provided, using the getTokens() method on the lexer.
|
||
|
*
|
||
|
* @param Node[] $stmts Modified AST with links to original AST
|
||
|
* @param Node[] $origStmts Original AST with token offset information
|
||
|
* @param Token[] $origTokens Tokens of the original code
|
||
|
*/
|
||
|
public function printFormatPreserving(array $stmts, array $origStmts, array $origTokens): string;
|
||
|
}
|