diff options
Diffstat (limited to 'vendor/nikic/php-parser/lib/PhpParser/Node')
7 files changed, 60 insertions, 6 deletions
diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php index b69eb16fa..07a74df80 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php @@ -11,7 +11,7 @@ class Const_ extends NodeAbstract /** @var Expr Value */ public $value; - /** @var Name Namespaced name (if using NameResolver) */ + /** @var Name|null Namespaced name (if using NameResolver) */ public $namespacedName; /** @@ -30,7 +30,7 @@ class Const_ extends NodeAbstract public function getSubNodeNames() : array { return ['name', 'value']; } - + public function getType() : string { return 'Const'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php index 29ce0dd40..d4796d65b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php @@ -25,6 +25,17 @@ class DNumber extends Scalar } /** + * @param mixed[] $attributes + */ + public static function fromString(string $str, array $attributes = []): DNumber + { + $attributes['rawValue'] = $str; + $float = self::parse($str); + + return new DNumber($float, $attributes); + } + + /** * @internal * * Parses a DNUMBER token like PHP would. @@ -63,7 +74,7 @@ class DNumber extends Scalar // dec return (float) $str; } - + public function getType() : string { return 'Scalar_DNumber'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php index f17dd1f8a..2cc2b22c8 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php @@ -41,6 +41,8 @@ class LNumber extends Scalar * @return LNumber The constructed LNumber, including kind attribute */ public static function fromString(string $str, array $attributes = [], bool $allowInvalidOctal = false) : LNumber { + $attributes['rawValue'] = $str; + $str = str_replace('_', '', $str); if ('0' !== $str[0] || '0' === $str) { @@ -71,7 +73,7 @@ class LNumber extends Scalar $attributes['kind'] = LNumber::KIND_OCT; return new LNumber(intval($str, 8), $attributes); } - + public function getType() : string { return 'Scalar_LNumber'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php index 8a6d93a47..6690a16bf 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php @@ -43,6 +43,22 @@ class String_ extends Scalar } /** + * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes + */ + public static function fromString(string $str, array $attributes = [], bool $parseUnicodeEscape = true): self + { + $attributes['kind'] = ($str[0] === "'" || ($str[1] === "'" && ($str[0] === 'b' || $str[0] === 'B'))) + ? Scalar\String_::KIND_SINGLE_QUOTED + : Scalar\String_::KIND_DOUBLE_QUOTED; + + $attributes['rawValue'] = $str; + + $string = self::parse($str, $parseUnicodeEscape); + + return new self($string, $attributes); + } + + /** * @internal * * Parses a string token. diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php index 6c3369172..2fa4e861b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php @@ -13,7 +13,7 @@ abstract class ClassLike extends Node\Stmt /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; - /** @var Node\Name Namespaced name (if using NameResolver) */ + /** @var Node\Name|null Namespaced name (if using NameResolver) */ public $namespacedName; /** diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php index b290aaf6d..52ed6c6cd 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php @@ -68,6 +68,10 @@ class Class_ extends ClassLike return (bool) ($this->flags & self::MODIFIER_FINAL); } + public function isReadonly() : bool { + return (bool) ($this->flags & self::MODIFIER_READONLY); + } + /** * Whether the class is anonymous. * @@ -80,6 +84,27 @@ class Class_ extends ClassLike /** * @internal */ + public static function verifyClassModifier($a, $b) { + if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) { + throw new Error('Multiple abstract modifiers are not allowed'); + } + + if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) { + throw new Error('Multiple final modifiers are not allowed'); + } + + if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) { + throw new Error('Multiple readonly modifiers are not allowed'); + } + + if ($a & 48 && $b & 48) { + throw new Error('Cannot use the final modifier on an abstract class'); + } + } + + /** + * @internal + */ public static function verifyModifier($a, $b) { if ($a & self::VISIBILITY_MODIFIER_MASK && $b & self::VISIBILITY_MODIFIER_MASK) { throw new Error('Multiple access type modifiers are not allowed'); diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php index abb7ee5c8..c2ccae24e 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php @@ -20,7 +20,7 @@ class Function_ extends Node\Stmt implements FunctionLike /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; - /** @var Node\Name Namespaced name (if using NameResolver) */ + /** @var Node\Name|null Namespaced name (if using NameResolver) */ public $namespacedName; /** |