function PrettyPrinterAbstract::initializeFixupMap
Lazily initializes fixup map.
The fixup map is used to determine whether a certain subnode of a certain node may require some kind of "fixup" operation, e.g. the addition of parenthesis or braces.
1 call to PrettyPrinterAbstract::initializeFixupMap()
- PrettyPrinterAbstract::printFormatPreserving in vendor/
nikic/ php-parser/ lib/ PhpParser/ PrettyPrinterAbstract.php - Perform a format-preserving pretty print of an AST.
File
-
vendor/
nikic/ php-parser/ lib/ PhpParser/ PrettyPrinterAbstract.php, line 1317
Class
Namespace
PhpParserCode
protected function initializeFixupMap() : void {
if (isset($this->fixupMap)) {
return;
}
$this->fixupMap = [
Expr\Instanceof_::class => [
'expr' => self::FIXUP_PREC_UNARY,
'class' => self::FIXUP_NEW,
],
Expr\Ternary::class => [
'cond' => self::FIXUP_PREC_LEFT,
'else' => self::FIXUP_PREC_RIGHT,
],
Expr\Yield_::class => [
'value' => self::FIXUP_PREC_UNARY,
],
Expr\FuncCall::class => [
'name' => self::FIXUP_CALL_LHS,
],
Expr\StaticCall::class => [
'class' => self::FIXUP_STATIC_DEREF_LHS,
],
Expr\ArrayDimFetch::class => [
'var' => self::FIXUP_DEREF_LHS,
],
Expr\ClassConstFetch::class => [
'class' => self::FIXUP_STATIC_DEREF_LHS,
'name' => self::FIXUP_BRACED_NAME,
],
Expr\New_::class => [
'class' => self::FIXUP_NEW,
],
Expr\MethodCall::class => [
'var' => self::FIXUP_DEREF_LHS,
'name' => self::FIXUP_BRACED_NAME,
],
Expr\NullsafeMethodCall::class => [
'var' => self::FIXUP_DEREF_LHS,
'name' => self::FIXUP_BRACED_NAME,
],
Expr\StaticPropertyFetch::class => [
'class' => self::FIXUP_STATIC_DEREF_LHS,
'name' => self::FIXUP_VAR_BRACED_NAME,
],
Expr\PropertyFetch::class => [
'var' => self::FIXUP_DEREF_LHS,
'name' => self::FIXUP_BRACED_NAME,
],
Expr\NullsafePropertyFetch::class => [
'var' => self::FIXUP_DEREF_LHS,
'name' => self::FIXUP_BRACED_NAME,
],
Scalar\InterpolatedString::class => [
'parts' => self::FIXUP_ENCAPSED,
],
];
$binaryOps = [
BinaryOp\Pow::class,
BinaryOp\Mul::class,
BinaryOp\Div::class,
BinaryOp\Mod::class,
BinaryOp\Plus::class,
BinaryOp\Minus::class,
BinaryOp\Concat::class,
BinaryOp\ShiftLeft::class,
BinaryOp\ShiftRight::class,
BinaryOp\Smaller::class,
BinaryOp\SmallerOrEqual::class,
BinaryOp\Greater::class,
BinaryOp\GreaterOrEqual::class,
BinaryOp\Equal::class,
BinaryOp\NotEqual::class,
BinaryOp\Identical::class,
BinaryOp\NotIdentical::class,
BinaryOp\Spaceship::class,
BinaryOp\BitwiseAnd::class,
BinaryOp\BitwiseXor::class,
BinaryOp\BitwiseOr::class,
BinaryOp\BooleanAnd::class,
BinaryOp\BooleanOr::class,
BinaryOp\Coalesce::class,
BinaryOp\LogicalAnd::class,
BinaryOp\LogicalXor::class,
BinaryOp\LogicalOr::class,
];
foreach ($binaryOps as $binaryOp) {
$this->fixupMap[$binaryOp] = [
'left' => self::FIXUP_PREC_LEFT,
'right' => self::FIXUP_PREC_RIGHT,
];
}
$prefixOps = [
Expr\Clone_::class,
Expr\BitwiseNot::class,
Expr\BooleanNot::class,
Expr\UnaryPlus::class,
Expr\UnaryMinus::class,
Cast\Int_::class,
Cast\Double::class,
Cast\String_::class,
Cast\Array_::class,
Cast\Object_::class,
Cast\Bool_::class,
Cast\Unset_::class,
Expr\ErrorSuppress::class,
Expr\YieldFrom::class,
Expr\Print_::class,
Expr\Include_::class,
Expr\Assign::class,
Expr\AssignRef::class,
AssignOp\Plus::class,
AssignOp\Minus::class,
AssignOp\Mul::class,
AssignOp\Div::class,
AssignOp\Concat::class,
AssignOp\Mod::class,
AssignOp\BitwiseAnd::class,
AssignOp\BitwiseOr::class,
AssignOp\BitwiseXor::class,
AssignOp\ShiftLeft::class,
AssignOp\ShiftRight::class,
AssignOp\Pow::class,
AssignOp\Coalesce::class,
Expr\ArrowFunction::class,
Expr\Throw_::class,
];
foreach ($prefixOps as $prefixOp) {
$this->fixupMap[$prefixOp] = [
'expr' => self::FIXUP_PREC_UNARY,
];
}
}