Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. PrettyPrinterAbstract.php

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

PrettyPrinterAbstract

Namespace

PhpParser

Code

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,
        ];
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal