Submit
Path:
~
/
/
opt
/
psa
/
admin
/
plib
/
modules
/
grafana
/
vendor
/
nikic
/
php-parser
/
lib
/
PhpParser
/
Internal
/
File Content:
PrintableNewAnonClassNode.php
<?php declare (strict_types=1); namespace PleskGrafana\PhpParser\Internal; use PleskGrafana\PhpParser\Node; use PleskGrafana\PhpParser\Node\Expr; /** * This node is used internally by the format-preserving pretty printer to print anonymous classes. * * The normal anonymous class structure violates assumptions about the order of token offsets. * Namely, the constructor arguments are part of the Expr\New_ node and follow the class node, even * though they are actually interleaved with them. This special node type is used temporarily to * restore a sane token offset order. * * @internal */ class PrintableNewAnonClassNode extends Expr { /** @var Node\AttributeGroup[] PHP attribute groups */ public array $attrGroups; /** @var int Modifiers */ public int $flags; /** @var (Node\Arg|Node\VariadicPlaceholder)[] Arguments */ public array $args; /** @var null|Node\Name Name of extended class */ public ?Node\Name $extends; /** @var Node\Name[] Names of implemented interfaces */ public array $implements; /** @var Node\Stmt[] Statements */ public array $stmts; /** * @param Node\AttributeGroup[] $attrGroups PHP attribute groups * @param (Node\Arg|Node\VariadicPlaceholder)[] $args Arguments * @param Node\Name|null $extends Name of extended class * @param Node\Name[] $implements Names of implemented interfaces * @param Node\Stmt[] $stmts Statements * @param array<string, mixed> $attributes Attributes */ public function __construct(array $attrGroups, int $flags, array $args, ?Node\Name $extends, array $implements, array $stmts, array $attributes) { parent::__construct($attributes); $this->attrGroups = $attrGroups; $this->flags = $flags; $this->args = $args; $this->extends = $extends; $this->implements = $implements; $this->stmts = $stmts; } public static function fromNewNode(Expr\New_ $newNode) : self { $class = $newNode->class; \assert($class instanceof Node\Stmt\Class_); // We don't assert that $class->name is null here, to allow consumers to assign unique names // to anonymous classes for their own purposes. We simplify ignore the name here. return new self($class->attrGroups, $class->flags, $newNode->args, $class->extends, $class->implements, $class->stmts, $newNode->getAttributes()); } public function getType() : string { return 'Expr_PrintableNewAnonClass'; } public function getSubNodeNames() : array { return ['attrGroups', 'flags', 'args', 'extends', 'implements', 'stmts']; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
DiffElem.php
779 bytes
0644
Differ.php
5070 bytes
0644
PrintableNewAnonClassNode.php
2668 bytes
0644
TokenPolyfill.php
9413 bytes
0644
TokenStream.php
9254 bytes
0644
N4ST4R_ID | Naxtarrr