New Upstream Release - php-parser
Ready changes
Summary
Merged new upstream version: 5.0.0~alpha3 (was: 5.0.0~alpha2).
Diff
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..1f8fb404
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,12 @@
+/.github export-ignore
+/doc export-ignore
+/test export-ignore
+/test_old export-ignore
+/tools export-ignore
+.editorconfig export-ignore
+.gitattributes export-ignore
+.gitignore export-ignore
+CHANGELOG.md export-ignore
+CONTRIBUTING.md export-ignore
+phpunit.xml.dist export-ignore
+UPGRADE-*.md export-ignore
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6b0442b1..ab07badc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,37 @@
+Version 5.0.0-alpha3 (2023-06-24)
+---------------------------------
+
+See UPGRADE-5.0 for detailed migration instructions.
+
+### Added
+
+* [PHP 8.3] Added support for typed constants.
+* [PHP 8.3] Added support for readonly anonymous classes.
+* Added support for `NodeVisitor::REPLACE_WITH_NULL`.
+* Added support for CRLF newlines in the pretty printer, using the new `newline` option.
+
+### Changed
+
+* Use PHP 7.1 as the default target version for the pretty printer.
+* Print `else if { }` instead of `else { if { } }`.
+* The `leaveNode()` method on visitors is now invoked in reverse order of `enterNode()`.
+* Moved `NodeTraverser::REMOVE_NODE` etc. to `NodeVisitor::REMOVE_NODE`. The old constants are still
+ available for compatibility.
+* The `Name` subnode `parts` has been replaced by `name`, which stores the name as a string rather
+ than an array of parts separated by namespace separators. The `getParts()` method returns the old
+ representation.
+* No longer accept strings for types in Node constructors. Instead, either an `Identifier`, `Name`
+ or `ComplexType` must be passed.
+* `Comment::getReformattedText()` now normalizes CRLF newlines to LF newlines.
+
+### Fixed
+
+* Don't trim leading whitespace in formatting preserving printer.
+* Treat DEL as a label character in the formatting preserving printer depending on the targeted
+ PHP version.
+* Fix error reporting in emulative lexer without explicitly specified error handler.
+* Gracefully handle non-contiguous array indices in the `Differ`.
+
Version 5.0.0-alpha2 (2023-03-05)
---------------------------------
diff --git a/README.md b/README.md
index ca745368..bb28f57c 100644
--- a/README.md
+++ b/README.md
@@ -70,12 +70,17 @@ This dumps an AST looking something like this:
```
array(
0: Stmt_Function(
+ attrGroups: array(
+ )
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
+ attrGroups: array(
+ )
+ flags: 0
type: null
byRef: false
variadic: false
@@ -90,12 +95,11 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: var_dump
- )
+ name: var_dump
)
args: array(
0: Arg(
+ name: null
value: Expr_Variable(
name: foo
)
@@ -137,12 +141,16 @@ This gives us an AST where the `Function_::$stmts` are empty:
```
array(
0: Stmt_Function(
+ attrGroups: array(
+ )
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
+ attrGroups: array(
+ )
type: null
byRef: false
variadic: false
diff --git a/UPGRADE-5.0.md b/UPGRADE-5.0.md
index b30bb9a7..eab8de16 100644
--- a/UPGRADE-5.0.md
+++ b/UPGRADE-5.0.md
@@ -71,6 +71,17 @@ Now, destructuring is always represented using `Node\Expr\List_`. The `kind` att
`Node\Expr\List_::KIND_LIST` or `Node\Expr\List_::KIND_ARRAY` specifies which syntax was actually
used.
+### Changes to the name representation
+
+Previously, `Name` nodes had a `parts` subnode, which stores an array of name parts, split by
+namespace separators. Now, `Name` nodes instead have a `name` subnode, which stores a plain string.
+
+For example, the name `Foo\Bar` was previously represented by `Name(parts: ['Foo', 'Bar'])` and is
+now represented by `Name(name: 'Foo\Bar')` instead.
+
+It is possible to convert the name to the previous representation using `$name->getParts()`. The
+`Name` constructor continues to accept both the string and the array representation.
+
### Renamed nodes
A number of AST nodes have been renamed or moved in the AST hierarchy:
@@ -104,6 +115,21 @@ PhpParser\Node\Stmt\Class_::MODIFIER_READONLY -> PhpParser\Modifiers::READONLY
PhpParser\Node\Stmt\Class_::VISIBILITY_MODIFIER_MASK -> PhpParser\Modifiers::VISIBILITY_MASK
```
+### Changes to node constructors
+
+Node constructor arguments accepting types now longer accept plain strings. Either an `Identifier` or `Name` (or `ComplexType`) should be passed instead. This affects the following constructor arguments:
+
+* The `'returnType'` key of `$subNodes` argument of `Node\Expr\ArrowFunction`.
+* The `'returnType'` key of `$subNodes` argument of `Node\Expr\Closure`.
+* The `'returnType'` key of `$subNodes` argument of `Node\Stmt\ClassMethod`.
+* The `'returnType'` key of `$subNodes` argument of `Node\Stmt\Function_`.
+* The `$type` argument of `Node\NullableType`.
+* The `$type` argument of `Node\Param`.
+* The `$type` argument of `Node\Stmt\Property`.
+* The `$type` argument of `Node\ClassConst` (new in PHP-Parser 5.0, listed for completeness only).
+
+To follow the previous behavior, an `Identifier` should be passed, which indicates a built-in type.
+
### Changes to the pretty printer
A number of changes to the standard pretty printer have been made, to make it match contemporary coding style conventions (and in particular PSR-12). Options to restore the previous behavior are not provided, but it is possible to override the formatting methods (such as `pStmt_ClassMethod`) with your preferred formatting.
@@ -156,12 +182,27 @@ Backslashes in single-quoted strings are now only printed if they are necessary:
'\\\\';
```
-The pretty printer now accepts a `phpVersion` option, which accepts a `PhpVersion` object and defaults to PHP 7.0. The pretty printer will make formatting choices to make the code valid for that version. It currently controls the following behavior:
+`else if` structures will now omit redundant parentheses:
+
+```php
+# Before
+else {
+ if ($x) {
+ // ...
+ }
+}
+
+# After
+else if ($x) {
+ // ...
+}
+```
+
+The pretty printer now accepts a `phpVersion` option, which accepts a `PhpVersion` object and defaults to PHP 7.1. The pretty printer will make formatting choices to make the code valid for that version. It currently controls the following behavior:
* For PHP >= 7.0 (default), short array syntax `[]` will be used by default. This does not affect nodes that specify an explicit array syntax using the `kind` attribute.
* For PHP >= 7.0 (default), parentheses around `yield` expressions will only be printed when necessary. Previously, parentheses were always printed, even if `yield` was used as a statement.
-* For PHP >= 7.1, the short array syntax `[]` will be used for destructuring by default (instead of
- `list()`). This does not affect nodes that specify and explicit syntax using the `kind` attribute.
+* For PHP >= 7.1 (default), the short array syntax `[]` will be used for destructuring by default (instead of `list()`). This does not affect nodes that specify and explicit syntax using the `kind` attribute.
* For PHP >= 7.3, a newline is no longer forced after heredoc/nowdoc strings, as the requirement for this has been removed with the introduction of flexible heredoc/nowdoc strings.
### Changes to precedence handling in the pretty printer
@@ -197,6 +238,33 @@ protected function pExpr_UnaryPlus(
The new `$precedence` and `$lhsPrecedence` arguments need to be passed down to the `pInfixOp()`, `pPrefixOp()` and `pPostfixOp()` methods.
+### Changes to the node traverser
+
+If there are multiple visitors, the node traverser will now call `leaveNode()` and `afterTraverse()` methods in the reverse order of the corresponding `enterNode()` and `beforeTraverse()` calls:
+
+```php
+# Before
+$visitor1->enterNode($node);
+$visitor2->enterNode($node);
+$visitor1->leaveNode($node);
+$visitor2->leaveNode($node);
+
+# After
+$visitor1->enterNode($node);
+$visitor2->enterNode($node);
+$visitor2->leaveNode($node);
+$visitor1->leaveNode($node);
+```
+
+Additionally, the special `NodeVisitor` return values have been moved from `NodeTraverser` to `NodeVisitor`. The old names are deprecated, but still available.
+
+```php
+PhpParser\NodeTraverser::REMOVE_NODE -> PhpParser\NodeVisitor::REMOVE_NODE
+PhpParser\NodeTraverser::DONT_TRAVERSE_CHILDREN -> PhpParser\NodeVisitor::DONT_TRAVERSE_CHILDREN
+PhpParser\NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN -> PhpParser\NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN
+PhpParser\NodeTraverser::STOP_TRAVERSAL -> PhpParser\NodeVisitor::STOP_TRAVERSAL
+```
+
### Changes to token representation
Tokens are now internally represented using the `PhpParser\Token` class, which exposes the same base interface as
@@ -217,7 +285,8 @@ class Token {
The `Lexer::getTokens()` method will now return an array of `Token`s, rather than an array of arrays and strings.
Additionally, the token array is now terminated by a sentinel token with ID 0.
-### Other removed functionality
+### Miscellaneous changes
* The deprecated `Builder\Param::setTypeHint()` method has been removed in favor of `Builder\Param::setType()`.
* The deprecated `Error` constructor taking a start line has been removed. Pass `['startLine' => $startLine]` attributes instead.
+* `Comment::getReformattedText()` now normalizes CRLF newlines to LF newlines.
diff --git a/debian/changelog b/debian/changelog
index 56beb34a..609493e3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+php-parser (5.0.0~alpha3-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk> Sat, 24 Jun 2023 19:26:27 -0000
+
php-parser (5.0.0~alpha2-1) experimental; urgency=medium
[ Nikita Popov ]
diff --git a/debian/patches/0001-Allow-require-to-search-in-the-path.patch b/debian/patches/0001-Allow-require-to-search-in-the-path.patch
index 690037e5..caf2de36 100644
--- a/debian/patches/0001-Allow-require-to-search-in-the-path.patch
+++ b/debian/patches/0001-Allow-require-to-search-in-the-path.patch
@@ -7,10 +7,10 @@ Forwarded: not-needed
bin/php-parse | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
-diff --git a/bin/php-parse b/bin/php-parse
-index cdf9584..eccc038 100755
---- a/bin/php-parse
-+++ b/bin/php-parse
+Index: php-parser.git/bin/php-parse
+===================================================================
+--- php-parser.git.orig/bin/php-parse
++++ php-parser.git/bin/php-parse
@@ -1,12 +1,7 @@
#!/usr/bin/env php
<?php
diff --git a/debian/patches/0002-Adapt-shebang-for-PHP-script.patch b/debian/patches/0002-Adapt-shebang-for-PHP-script.patch
index 216aa87a..7b39c135 100644
--- a/debian/patches/0002-Adapt-shebang-for-PHP-script.patch
+++ b/debian/patches/0002-Adapt-shebang-for-PHP-script.patch
@@ -7,10 +7,10 @@ Forwarded: not-needed
bin/php-parse | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/bin/php-parse b/bin/php-parse
-index eccc038..40f26f5 100755
---- a/bin/php-parse
-+++ b/bin/php-parse
+Index: php-parser.git/bin/php-parse
+===================================================================
+--- php-parser.git.orig/bin/php-parse
++++ php-parser.git/bin/php-parse
@@ -1,4 +1,4 @@
-#!/usr/bin/env php
+#!/usr/bin/php
diff --git a/doc/2_Usage_of_basic_components.markdown b/doc/2_Usage_of_basic_components.markdown
index 2a0a89be..3fd462da 100644
--- a/doc/2_Usage_of_basic_components.markdown
+++ b/doc/2_Usage_of_basic_components.markdown
@@ -96,12 +96,17 @@ For the sample code from the previous section, this will produce the following o
```
array(
0: Stmt_Function(
+ attrGroups: array(
+ )
byRef: false
name: Identifier(
name: printLine
)
params: array(
0: Param(
+ attrGroups: array(
+ )
+ flags: 0
type: null
byRef: false
variadic: false
@@ -129,12 +134,11 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: printLine
- )
+ name: printLine
)
args: array(
0: Arg(
+ name: null
value: Scalar_String(
value: Hello World!!!
)
@@ -343,15 +347,18 @@ i.e. before its subnodes are traversed, the latter when it is left.
All four methods can either return the changed node or not return at all (i.e. `null`) in which
case the current node is not changed.
-The `enterNode()` method can additionally return the value `NodeTraverser::DONT_TRAVERSE_CHILDREN`,
+The `enterNode()` method can additionally return the value `NodeVisitor::DONT_TRAVERSE_CHILDREN`,
which instructs the traverser to skip all children of the current node. To furthermore prevent subsequent
-visitors from visiting the current node, `NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN` can be used instead.
+visitors from visiting the current node, `NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN` can be used instead.
-Both methods can additionally return the value `NodeTraverser::REMOVE_NODE`, in which
-case the current node will be removed from the parent array. Furthermore, it is possible to return
-an array of nodes, which will be merged into the parent array at the offset of the current node.
-I.e. if in `array(A, B, C)` the node `B` should be replaced with `array(X, Y, Z)` the result will
-be `array(A, X, Y, Z, C)`.
+Both methods can additionally return the following values:
+
+ * `NodeVisitor::STOP_TRAVERSAL`, in which case no further nodes will be visited.
+ * `NodeVisitor::REMOVE_NODE`, in which case the current node will be removed from the parent array.
+ * `NodeVisitor::REPLACE_WITH_NULL`, in which case the current node will be replaced with `null`.
+ * An array of nodes, which will be merged into the parent array at the offset of the current node.
+ I.e. if in `array(A, B, C)` the node `B` should be replaced with `array(X, Y, Z)` the result will
+ be `array(A, X, Y, Z, C)`.
Instead of manually implementing the `NodeVisitor` interface you can also extend the `NodeVisitorAbstract`
class, which will define empty default implementations for all the above methods.
@@ -493,7 +500,7 @@ The last thing we need to do is remove the `namespace` and `use` statements:
```php
use PhpParser\Node;
use PhpParser\Node\Stmt;
-use PhpParser\NodeTraverser;
+use PhpParser\NodeVisitor;
class NodeVisitor_NamespaceConverter extends \PhpParser\NodeVisitorAbstract
{
@@ -513,7 +520,7 @@ class NodeVisitor_NamespaceConverter extends \PhpParser\NodeVisitorAbstract
return $node->stmts;
} elseif ($node instanceof Stmt\Use_) {
// remove use nodes altogether
- return NodeTraverser::REMOVE_NODE;
+ return NodeVisitor::REMOVE_NODE;
}
}
}
diff --git a/doc/component/Performance.markdown b/doc/component/Performance.markdown
index 4de41607..47e8fea4 100644
--- a/doc/component/Performance.markdown
+++ b/doc/component/Performance.markdown
@@ -42,24 +42,3 @@ When possible, objects should be reused rather than being newly instantiated for
objects have expensive initialization procedures, which will be unnecessarily repeated if the object
is not reused. (Currently two objects with particularly expensive setup are lexers and pretty
printers, though the details might change between versions of this library.)
-
-Garbage collection
-------------------
-
-A limitation in PHP's cyclic garbage collector may lead to major performance degradation when the
-active working set exceeds 10000 objects (or arrays). Especially when parsing very large files this
-limit is significantly exceeded and PHP will spend the majority of time performing unnecessary
-garbage collection attempts.
-
-Without GC, parsing time is roughly linear in the input size. With GC, this degenerates to quadratic
-runtime for large files. While the specifics may differ, as a rough guideline you may expect a 2.5x
-GC overhead for 500KB files and a 5x overhead for 1MB files.
-
-Because this a limitation in PHP's implementation, there is no easy way to work around this. If
-possible, you should avoid parsing very large files, as they will impact overall execution time
-disproportionally (and are usually generated anyway).
-
-Of course, you can also try to (temporarily) disable GC. By design the AST generated by PHP-Parser
-is cycle-free, so the AST itself will never cause leaks with GC disabled. However, other code
-(including for example the parser object itself) may hold cycles, so disabling of GC should be
-approached with care.
diff --git a/doc/component/Pretty_printing.markdown b/doc/component/Pretty_printing.markdown
index ee7cac8a..3e164e20 100644
--- a/doc/component/Pretty_printing.markdown
+++ b/doc/component/Pretty_printing.markdown
@@ -32,10 +32,11 @@ Customizing the formatting
--------------------------
The pretty printer respects a number of `kind` attributes used by some notes (e.g., whether an
-integer should be printed as decimal, hexadecimal, etc). Additionally, it supports two options:
+integer should be printed as decimal, hexadecimal, etc). Additionally, it supports three options:
-* `phpVersion` (defaults to 7.0) allows opting into formatting that is not supported by older PHP
+* `phpVersion` (defaults to 7.1) allows opting into formatting that is not supported by older PHP
versions.
+* `newline` (defaults to `"\n"`) can be set to `"\r\n"` in order to produce Windows newlines.
* `shortArraySyntax` determines the used array syntax if the `kind` attribute is not set. This is
a legacy option, and `phpVersion` should be used to control this behavior instead.
diff --git a/doc/component/Walking_the_AST.markdown b/doc/component/Walking_the_AST.markdown
index 3fd668c4..1673c1e0 100644
--- a/doc/component/Walking_the_AST.markdown
+++ b/doc/component/Walking_the_AST.markdown
@@ -129,13 +129,13 @@ Now `$a && $b` will be replaced by `!($a && $b)`. Then the traverser will go int
only) child of `!($a && $b)`, which is `$a && $b`. The transformation applies again and we end up
with `!!($a && $b)`. This will continue until PHP hits the memory limit.
-Finally, there are two special replacement types. The first is removal of a node:
+Finally, there are three special replacement types. The first is removal of a node:
```php
public function leaveNode(Node $node) {
if ($node instanceof Node\Stmt\Return_) {
// Remove all return statements
- return NodeTraverser::REMOVE_NODE;
+ return NodeVisitor::REMOVE_NODE;
}
}
```
@@ -155,7 +155,7 @@ public function leaveNode(Node $node) {
&& $node->expr->name instanceof Node\Name
&& $node->expr->name->toString() === 'var_dump'
) {
- return NodeTraverser::REMOVE_NODE;
+ return NodeVisitor::REMOVE_NODE;
}
}
```
@@ -164,6 +164,20 @@ This example will remove all calls to `var_dump()` which occur as expression sta
that `var_dump($a);` will be removed, but `if (var_dump($a))` will not be removed (and there is no
obvious way in which it can be removed).
+Another way to remove nodes is to replace them with `null`. For example, all `else` statements could
+be removed as follows:
+
+```php
+public function leaveNode(Node $node) {
+ if ($node instanceof Node\Stmt\Else_) {
+ return NodeVisitor::REPLACE_WITH_NULL;
+ }
+}
+```
+
+This is only safe to do if the subnode the node is stored in is nullable. `Node\Stmt\Else_` only
+occurs inside `Node\Stmt\If_::$else`, which is nullable, so this particular replacement is safe.
+
Next to removing nodes, it is also possible to replace one node with multiple nodes. This
only works if the parent structure is an array.
@@ -197,7 +211,7 @@ private $classes = [];
public function enterNode(Node $node) {
if ($node instanceof Node\Stmt\Class_) {
$this->classes[] = $node;
- return NodeTraverser::DONT_TRAVERSE_CHILDREN;
+ return NodeVisitor::DONT_TRAVERSE_CHILDREN;
}
}
```
@@ -217,7 +231,7 @@ public function enterNode(Node $node) {
$node->namespacedName->toString() === 'Foo\Bar\Baz'
) {
$this->class = $node;
- return NodeTraverser::STOP_TRAVERSAL;
+ return NodeVisitor::STOP_TRAVERSAL;
}
}
```
@@ -255,13 +269,14 @@ $visitorA->enterNode(Stmt_Return)
$visitorB->enterNode(Stmt_Return)
$visitorA->enterNode(Expr_Variable)
$visitorB->enterNode(Expr_Variable)
-$visitorA->leaveNode(Expr_Variable)
$visitorB->leaveNode(Expr_Variable)
-$visitorA->leaveNode(Stmt_Return)
+$visitorA->leaveNode(Expr_Variable)
$visitorB->leaveNode(Stmt_Return)
+$visitorA->leaveNode(Stmt_Return)
```
-That is, when visiting a node, enterNode and leaveNode will always be called for all visitors.
+That is, when visiting a node, `enterNode()` and `leaveNode()` will always be called for all
+visitors, with the `leaveNode()` calls happening in the reverse order of the `enterNode()` calls.
Running multiple visitors in parallel improves performance, as the AST only has to be traversed
once. However, it is not always possible to write visitors in a way that allows interleaved
execution. In this case, you can always fall back to performing multiple traversals:
@@ -286,6 +301,7 @@ special enterNode/leaveNode return values:
* If a visitor returns a replacement node, subsequent visitors will be passed the replacement node,
not the original one.
* If a visitor returns `REMOVE_NODE`, subsequent visitors will not see this node.
+ * If a visitor returns `REPLACE_WITH_NULL`, subsequent visitors will not see this node.
* If a visitor returns an array of replacement nodes, subsequent visitors will see neither the node
that was replaced, nor the replacement nodes.
diff --git a/grammar/php.y b/grammar/php.y
index 4756898b..e5d6914b 100644
--- a/grammar/php.y
+++ b/grammar/php.y
@@ -340,7 +340,10 @@ non_empty_class_const_list:
;
class_const:
- identifier_maybe_reserved '=' expr { $$ = Node\Const_[$1, $3]; }
+ T_STRING '=' expr
+ { $$ = Node\Const_[new Node\Identifier($1, stackAttributes(#1)), $3]; }
+ | semi_reserved '=' expr
+ { $$ = Node\Const_[new Node\Identifier($1, stackAttributes(#1)), $3]; }
;
inner_statement_list_ex:
@@ -842,6 +845,9 @@ class_statement:
| optional_attributes method_modifiers T_CONST class_const_list semi
{ $$ = new Stmt\ClassConst($4, $2, attributes(), $1);
$this->checkClassConst($$, #2); }
+ | optional_attributes method_modifiers T_CONST type_expr class_const_list semi
+ { $$ = new Stmt\ClassConst($5, $2, attributes(), $1, $4);
+ $this->checkClassConst($$, #2); }
| optional_attributes method_modifiers T_FUNCTION optional_ref identifier_maybe_reserved '(' parameter_list ')'
optional_return_type method_body
{ $$ = Stmt\ClassMethod[$5, ['type' => $2, 'byRef' => $4, 'params' => $7, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]];
@@ -1070,8 +1076,8 @@ expr:
;
anonymous_class:
- optional_attributes T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}'
- { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3);
+ optional_attributes class_entry_type ctor_arguments extends_from implements_list '{' class_statement_list '}'
+ { $$ = array(Stmt\Class_[null, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3);
$this->checkClass($$[0], -1); }
;
diff --git a/lib/PhpParser/Builder/ClassConst.php b/lib/PhpParser/Builder/ClassConst.php
index de51a910..13b4a703 100644
--- a/lib/PhpParser/Builder/ClassConst.php
+++ b/lib/PhpParser/Builder/ClassConst.php
@@ -22,6 +22,8 @@ class ClassConst implements PhpParser\Builder {
/** @var list<Node\AttributeGroup> */
protected $attributeGroups = [];
+ /** @var Identifier|Node\Name|Node\ComplexType */
+ protected $type;
/**
* Creates a class constant builder
@@ -119,6 +121,19 @@ class ClassConst implements PhpParser\Builder {
return $this;
}
+ /**
+ * Sets the constant type.
+ *
+ * @param string|Node\Name|Identifier|Node\ComplexType $type
+ *
+ * @return $this
+ */
+ public function setType($type) {
+ $this->type = BuilderHelpers::normalizeType($type);
+
+ return $this;
+ }
+
/**
* Returns the built class node.
*
@@ -129,7 +144,8 @@ class ClassConst implements PhpParser\Builder {
$this->constants,
$this->flags,
$this->attributes,
- $this->attributeGroups
+ $this->attributeGroups,
+ $this->type
);
}
}
diff --git a/lib/PhpParser/Builder/Param.php b/lib/PhpParser/Builder/Param.php
index 433801a0..1994a709 100644
--- a/lib/PhpParser/Builder/Param.php
+++ b/lib/PhpParser/Builder/Param.php
@@ -4,6 +4,7 @@ namespace PhpParser\Builder;
use PhpParser;
use PhpParser\BuilderHelpers;
+use PhpParser\Modifiers;
use PhpParser\Node;
class Param implements PhpParser\Builder {
@@ -15,6 +16,8 @@ class Param implements PhpParser\Builder {
protected $type = null;
/** @var bool */
protected $byRef = false;
+ /** @var int */
+ protected $flags = 0;
/** @var bool */
protected $variadic = false;
/** @var list<Node\AttributeGroup> */
@@ -80,6 +83,50 @@ class Param implements PhpParser\Builder {
return $this;
}
+ /**
+ * Makes the (promoted) parameter public.
+ *
+ * @return $this The builder instance (for fluid interface)
+ */
+ public function makePublic() {
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC);
+
+ return $this;
+ }
+
+ /**
+ * Makes the (promoted) parameter protected.
+ *
+ * @return $this The builder instance (for fluid interface)
+ */
+ public function makeProtected() {
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED);
+
+ return $this;
+ }
+
+ /**
+ * Makes the (promoted) parameter private.
+ *
+ * @return $this The builder instance (for fluid interface)
+ */
+ public function makePrivate() {
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE);
+
+ return $this;
+ }
+
+ /**
+ * Makes the (promoted) parameter readonly.
+ *
+ * @return $this The builder instance (for fluid interface)
+ */
+ public function makeReadonly() {
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::READONLY);
+
+ return $this;
+ }
+
/**
* Adds an attribute group.
*
@@ -101,7 +148,7 @@ class Param implements PhpParser\Builder {
public function getNode(): Node {
return new Node\Param(
new Node\Expr\Variable($this->name),
- $this->default, $this->type, $this->byRef, $this->variadic, [], 0, $this->attributeGroups
+ $this->default, $this->type, $this->byRef, $this->variadic, [], $this->flags, $this->attributeGroups
);
}
}
diff --git a/lib/PhpParser/Comment.php b/lib/PhpParser/Comment.php
index ff949d9b..87d3eabd 100644
--- a/lib/PhpParser/Comment.php
+++ b/lib/PhpParser/Comment.php
@@ -150,19 +150,21 @@ class Comment implements \JsonSerializable {
*
* "Reformatted" here means that we try to clean up the whitespace at the
* starts of the lines. This is necessary because we receive the comments
- * without trailing whitespace on the first line, but with trailing whitespace
+ * without leading whitespace on the first line, but with leading whitespace
* on all subsequent lines.
*
- * @return mixed|string
+ * Additionally, this normalizes CRLF newlines to LF newlines.
+ *
+ * @return string
*/
- public function getReformattedText() {
- $text = $this->text;
+ public function getReformattedText(): string {
+ $text = str_replace("\r\n", "\n", $this->text);
$newlinePos = strpos($text, "\n");
if (false === $newlinePos) {
// Single line comments don't need further processing
return $text;
}
- if (preg_match('((*BSR_ANYCRLF)(*ANYCRLF)^.*(?:\R\s+\*.*)+$)', $text)) {
+ if (preg_match('(^.*(?:\n\s+\*.*)+$)', $text)) {
// Multi line comment of the type
//
// /*
@@ -171,9 +173,9 @@ class Comment implements \JsonSerializable {
// */
//
// is handled by replacing the whitespace sequences before the * by a single space
- return preg_replace('(^\s+\*)m', ' *', $this->text);
+ return preg_replace('(^\s+\*)m', ' *', $text);
}
- if (preg_match('(^/\*\*?\s*[\r\n])', $text) && preg_match('(\n(\s*)\*/$)', $text, $matches)) {
+ if (preg_match('(^/\*\*?\s*\n)', $text) && preg_match('(\n(\s*)\*/$)', $text, $matches)) {
// Multi line comment of the type
//
// /*
diff --git a/lib/PhpParser/Internal/Differ.php b/lib/PhpParser/Internal/Differ.php
index bee9f078..baaad87f 100644
--- a/lib/PhpParser/Internal/Differ.php
+++ b/lib/PhpParser/Internal/Differ.php
@@ -33,6 +33,8 @@ class Differ {
* @return DiffElem[] Diff (edit script)
*/
public function diff(array $old, array $new): array {
+ $old = \array_values($old);
+ $new = \array_values($new);
list($trace, $x, $y) = $this->calculateTrace($old, $new);
return $this->extractDiff($trace, $x, $y, $old, $new);
}
diff --git a/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/lib/PhpParser/Internal/PrintableNewAnonClassNode.php
index f60e0407..e897bf13 100644
--- a/lib/PhpParser/Internal/PrintableNewAnonClassNode.php
+++ b/lib/PhpParser/Internal/PrintableNewAnonClassNode.php
@@ -18,6 +18,8 @@ use PhpParser\Node\Expr;
class PrintableNewAnonClassNode extends Expr {
/** @var Node\AttributeGroup[] PHP attribute groups */
public $attrGroups;
+ /** @var int Modifiers */
+ public $flags;
/** @var (Node\Arg|Node\VariadicPlaceholder)[] Arguments */
public $args;
/** @var null|Node\Name Name of extended class */
@@ -36,11 +38,12 @@ class PrintableNewAnonClassNode extends Expr {
* @param array<string, mixed> $attributes Attributes
*/
public function __construct(
- array $attrGroups, array $args, ?Node\Name $extends, array $implements,
+ 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;
@@ -53,7 +56,7 @@ class PrintableNewAnonClassNode extends Expr {
// 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, $newNode->args, $class->extends, $class->implements,
+ $class->attrGroups, $class->flags, $newNode->args, $class->extends, $class->implements,
$class->stmts, $newNode->getAttributes()
);
}
@@ -63,6 +66,6 @@ class PrintableNewAnonClassNode extends Expr {
}
public function getSubNodeNames(): array {
- return ['attrGroups', 'args', 'extends', 'implements', 'stmts'];
+ return ['attrGroups', 'flags', 'args', 'extends', 'implements', 'stmts'];
}
}
diff --git a/lib/PhpParser/Lexer/Emulative.php b/lib/PhpParser/Lexer/Emulative.php
index 054cc734..8993144d 100644
--- a/lib/PhpParser/Lexer/Emulative.php
+++ b/lib/PhpParser/Lexer/Emulative.php
@@ -85,6 +85,10 @@ class Emulative extends Lexer {
return;
}
+ if ($errorHandler === null) {
+ $errorHandler = new ErrorHandler\Throwing();
+ }
+
$this->patches = [];
foreach ($emulators as $emulator) {
$code = $emulator->preprocessCode($code, $this->patches);
diff --git a/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php b/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php
index 197f5052..9803f996 100644
--- a/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php
+++ b/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php
@@ -45,7 +45,7 @@ abstract class KeywordEmulator extends TokenEmulator {
public function reverseEmulate(string $code, array $tokens): array {
$keywordToken = $this->getKeywordToken();
- foreach ($tokens as $i => $token) {
+ foreach ($tokens as $token) {
if ($token->id === $keywordToken) {
$token->id = \T_STRING;
}
diff --git a/lib/PhpParser/Node/Expr/ArrowFunction.php b/lib/PhpParser/Node/Expr/ArrowFunction.php
index 98e24a51..f9b4ec36 100644
--- a/lib/PhpParser/Node/Expr/ArrowFunction.php
+++ b/lib/PhpParser/Node/Expr/ArrowFunction.php
@@ -30,7 +30,7 @@ class ArrowFunction extends Expr implements FunctionLike {
* static?: bool,
* byRef?: bool,
* params?: Node\Param[],
- * returnType?: null|string|Node\Identifier|Node\Name|Node\ComplexType,
+ * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType,
* attrGroups?: Node\AttributeGroup[]
* } $subNodes Array of the following subnodes:
* 'expr' : Expression body
@@ -46,8 +46,7 @@ class ArrowFunction extends Expr implements FunctionLike {
$this->static = $subNodes['static'] ?? false;
$this->byRef = $subNodes['byRef'] ?? false;
$this->params = $subNodes['params'] ?? [];
- $returnType = $subNodes['returnType'] ?? null;
- $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType;
+ $this->returnType = $subNodes['returnType'] ?? null;
$this->expr = $subNodes['expr'];
$this->attrGroups = $subNodes['attrGroups'] ?? [];
}
diff --git a/lib/PhpParser/Node/Expr/Closure.php b/lib/PhpParser/Node/Expr/Closure.php
index ee257d49..ddb4e0b7 100644
--- a/lib/PhpParser/Node/Expr/Closure.php
+++ b/lib/PhpParser/Node/Expr/Closure.php
@@ -31,7 +31,7 @@ class Closure extends Expr implements FunctionLike {
* byRef?: bool,
* params?: Node\Param[],
* uses?: ClosureUse[],
- * returnType?: null|string|Node\Identifier|Node\Name|Node\ComplexType,
+ * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType,
* stmts?: Node\Stmt[],
* attrGroups?: Node\AttributeGroup[],
* } $subNodes Array of the following optional subnodes:
@@ -50,8 +50,7 @@ class Closure extends Expr implements FunctionLike {
$this->byRef = $subNodes['byRef'] ?? false;
$this->params = $subNodes['params'] ?? [];
$this->uses = $subNodes['uses'] ?? [];
- $returnType = $subNodes['returnType'] ?? null;
- $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType;
+ $this->returnType = $subNodes['returnType'] ?? null;
$this->stmts = $subNodes['stmts'] ?? [];
$this->attrGroups = $subNodes['attrGroups'] ?? [];
}
diff --git a/lib/PhpParser/Node/Name.php b/lib/PhpParser/Node/Name.php
index 07bcbfd6..e5a2ae0d 100644
--- a/lib/PhpParser/Node/Name.php
+++ b/lib/PhpParser/Node/Name.php
@@ -5,8 +5,8 @@ namespace PhpParser\Node;
use PhpParser\NodeAbstract;
class Name extends NodeAbstract {
- /** @var string[] Parts of the name */
- public $parts;
+ /** @var string Name as string */
+ public $name;
/** @var array<string, bool> */
private static $specialClassNames = [
@@ -23,11 +23,20 @@ class Name extends NodeAbstract {
*/
final public function __construct($name, array $attributes = []) {
$this->attributes = $attributes;
- $this->parts = self::prepareName($name);
+ $this->name = self::prepareName($name);
}
public function getSubNodeNames(): array {
- return ['parts'];
+ return ['name'];
+ }
+
+ /**
+ * Get parts of name (split by the namespace separator).
+ *
+ * @return string[] Parts of name
+ */
+ public function getParts(): array {
+ return \explode('\\', $this->name);
}
/**
@@ -36,7 +45,10 @@ class Name extends NodeAbstract {
* @return string First part of the name
*/
public function getFirst(): string {
- return $this->parts[0];
+ if (false !== $pos = \strpos($this->name, '\\')) {
+ return \substr($this->name, 0, $pos);
+ }
+ return $this->name;
}
/**
@@ -45,7 +57,10 @@ class Name extends NodeAbstract {
* @return string Last part of the name
*/
public function getLast(): string {
- return $this->parts[count($this->parts) - 1];
+ if (false !== $pos = \strrpos($this->name, '\\')) {
+ return \substr($this->name, $pos + 1);
+ }
+ return $this->name;
}
/**
@@ -54,7 +69,7 @@ class Name extends NodeAbstract {
* @return bool Whether the name is unqualified
*/
public function isUnqualified(): bool {
- return 1 === count($this->parts);
+ return false === \strpos($this->name, '\\');
}
/**
@@ -63,7 +78,7 @@ class Name extends NodeAbstract {
* @return bool Whether the name is qualified
*/
public function isQualified(): bool {
- return 1 < count($this->parts);
+ return false !== \strpos($this->name, '\\');
}
/**
@@ -91,7 +106,7 @@ class Name extends NodeAbstract {
* @return string String representation
*/
public function toString(): string {
- return implode('\\', $this->parts);
+ return $this->name;
}
/**
@@ -111,7 +126,7 @@ class Name extends NodeAbstract {
* @return string Lowercased string representation
*/
public function toLowerString(): string {
- return strtolower(implode('\\', $this->parts));
+ return strtolower($this->name);
}
/**
@@ -120,8 +135,7 @@ class Name extends NodeAbstract {
* @return bool Whether identifier is a special class name
*/
public function isSpecialClassName(): bool {
- return count($this->parts) === 1
- && isset(self::$specialClassNames[strtolower($this->parts[0])]);
+ return isset(self::$specialClassNames[strtolower($this->name)]);
}
/**
@@ -131,7 +145,7 @@ class Name extends NodeAbstract {
* @return string String representation
*/
public function __toString(): string {
- return implode('\\', $this->parts);
+ return $this->name;
}
/**
@@ -151,7 +165,16 @@ class Name extends NodeAbstract {
* @return static|null Sliced name
*/
public function slice(int $offset, ?int $length = null) {
- $numParts = count($this->parts);
+ if ($offset === 1 && $length === null) {
+ // Short-circuit the common case.
+ if (false !== $pos = \strpos($this->name, '\\')) {
+ return new static(\substr($this->name, $pos + 1));
+ }
+ return null;
+ }
+
+ $parts = \explode('\\', $this->name);
+ $numParts = \count($parts);
$realOffset = $offset < 0 ? $offset + $numParts : $offset;
if ($realOffset < 0 || $realOffset > $numParts) {
@@ -172,7 +195,7 @@ class Name extends NodeAbstract {
return null;
}
- return new static(array_slice($this->parts, $realOffset, $realLength), $this->attributes);
+ return new static(array_slice($parts, $realOffset, $realLength), $this->attributes);
}
/**
@@ -197,42 +220,42 @@ class Name extends NodeAbstract {
return null;
}
if (null === $name1) {
- return new static(self::prepareName($name2), $attributes);
+ return new static($name2, $attributes);
}
if (null === $name2) {
- return new static(self::prepareName($name1), $attributes);
+ return new static($name1, $attributes);
} else {
return new static(
- array_merge(self::prepareName($name1), self::prepareName($name2)), $attributes
+ self::prepareName($name1) . '\\' . self::prepareName($name2), $attributes
);
}
}
/**
* Prepares a (string, array or Name node) name for use in name changing methods by converting
- * it to an array.
+ * it to a string.
*
* @param string|string[]|self $name Name to prepare
*
- * @return string[] Prepared name
+ * @return string Prepared name
*/
- private static function prepareName($name): array {
+ private static function prepareName($name): string {
if (\is_string($name)) {
if ('' === $name) {
throw new \InvalidArgumentException('Name cannot be empty');
}
- return explode('\\', $name);
+ return $name;
}
if (\is_array($name)) {
if (empty($name)) {
throw new \InvalidArgumentException('Name cannot be empty');
}
- return $name;
+ return implode('\\', $name);
}
if ($name instanceof self) {
- return $name->parts;
+ return $name->name;
}
throw new \InvalidArgumentException(
diff --git a/lib/PhpParser/Node/NullableType.php b/lib/PhpParser/Node/NullableType.php
index e86d0974..847b6573 100644
--- a/lib/PhpParser/Node/NullableType.php
+++ b/lib/PhpParser/Node/NullableType.php
@@ -2,6 +2,8 @@
namespace PhpParser\Node;
+use PhpParser\Node;
+
class NullableType extends ComplexType {
/** @var Identifier|Name Type */
public $type;
@@ -9,12 +11,12 @@ class NullableType extends ComplexType {
/**
* Constructs a nullable type (wrapping another type).
*
- * @param string|Identifier|Name $type Type
+ * @param Identifier|Name $type Type
* @param array<string, mixed> $attributes Additional attributes
*/
- public function __construct($type, array $attributes = []) {
+ public function __construct(Node $type, array $attributes = []) {
$this->attributes = $attributes;
- $this->type = \is_string($type) ? new Identifier($type) : $type;
+ $this->type = $type;
}
public function getSubNodeNames(): array {
diff --git a/lib/PhpParser/Node/Param.php b/lib/PhpParser/Node/Param.php
index ef110531..0732c574 100644
--- a/lib/PhpParser/Node/Param.php
+++ b/lib/PhpParser/Node/Param.php
@@ -3,6 +3,7 @@
namespace PhpParser\Node;
use PhpParser\Modifiers;
+use PhpParser\Node;
use PhpParser\NodeAbstract;
class Param extends NodeAbstract {
@@ -26,7 +27,7 @@ class Param extends NodeAbstract {
*
* @param Expr\Variable|Expr\Error $var Parameter variable
* @param null|Expr $default Default value
- * @param null|string|Identifier|Name|ComplexType $type Type declaration
+ * @param null|Identifier|Name|ComplexType $type Type declaration
* @param bool $byRef Whether is passed by reference
* @param bool $variadic Whether this is a variadic argument
* @param array<string, mixed> $attributes Additional attributes
@@ -34,14 +35,14 @@ class Param extends NodeAbstract {
* @param list<AttributeGroup> $attrGroups PHP attribute groups
*/
public function __construct(
- $var, ?Expr $default = null, $type = null,
+ $var, ?Expr $default = null, ?Node $type = null,
bool $byRef = false, bool $variadic = false,
array $attributes = [],
int $flags = 0,
array $attrGroups = []
) {
$this->attributes = $attributes;
- $this->type = \is_string($type) ? new Identifier($type) : $type;
+ $this->type = $type;
$this->byRef = $byRef;
$this->variadic = $variadic;
$this->var = $var;
diff --git a/lib/PhpParser/Node/Stmt/ClassConst.php b/lib/PhpParser/Node/Stmt/ClassConst.php
index 8b05980c..a5e467ab 100644
--- a/lib/PhpParser/Node/Stmt/ClassConst.php
+++ b/lib/PhpParser/Node/Stmt/ClassConst.php
@@ -10,31 +10,36 @@ class ClassConst extends Node\Stmt {
public $flags;
/** @var Node\Const_[] Constant declarations */
public $consts;
- /** @var Node\AttributeGroup[] */
+ /** @var Node\AttributeGroup[] PHP attribute groups */
public $attrGroups;
+ /** @var Node\Identifier|Node\Name|Node\ComplexType|null Type declaration */
+ public $type;
/**
* Constructs a class const list node.
*
- * @param Node\Const_[] $consts Constant declarations
- * @param int $flags Modifiers
+ * @param Node\Const_[] $consts Constant declarations
+ * @param int $flags Modifiers
* @param array<string, mixed> $attributes Additional attributes
* @param list<Node\AttributeGroup> $attrGroups PHP attribute groups
+ * @param null|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration
*/
public function __construct(
array $consts,
int $flags = 0,
array $attributes = [],
- array $attrGroups = []
+ array $attrGroups = [],
+ ?Node $type = null
) {
$this->attributes = $attributes;
$this->flags = $flags;
$this->consts = $consts;
$this->attrGroups = $attrGroups;
+ $this->type = $type;
}
public function getSubNodeNames(): array {
- return ['attrGroups', 'flags', 'consts'];
+ return ['attrGroups', 'flags', 'type', 'consts'];
}
/**
diff --git a/lib/PhpParser/Node/Stmt/ClassMethod.php b/lib/PhpParser/Node/Stmt/ClassMethod.php
index 3cadfd86..aa6424b6 100644
--- a/lib/PhpParser/Node/Stmt/ClassMethod.php
+++ b/lib/PhpParser/Node/Stmt/ClassMethod.php
@@ -51,7 +51,7 @@ class ClassMethod extends Node\Stmt implements FunctionLike {
* flags?: int,
* byRef?: bool,
* params?: Node\Param[],
- * returnType?: null|string|Node\Identifier|Node\Name|Node\ComplexType,
+ * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType,
* stmts?: Node\Stmt[]|null,
* attrGroups?: Node\AttributeGroup[],
* } $subNodes Array of the following optional subnodes:
@@ -69,8 +69,7 @@ class ClassMethod extends Node\Stmt implements FunctionLike {
$this->byRef = $subNodes['byRef'] ?? false;
$this->name = \is_string($name) ? new Node\Identifier($name) : $name;
$this->params = $subNodes['params'] ?? [];
- $returnType = $subNodes['returnType'] ?? null;
- $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType;
+ $this->returnType = $subNodes['returnType'] ?? null;
$this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : [];
$this->attrGroups = $subNodes['attrGroups'] ?? [];
}
diff --git a/lib/PhpParser/Node/Stmt/Class_.php b/lib/PhpParser/Node/Stmt/Class_.php
index 98bf9fd7..71196065 100644
--- a/lib/PhpParser/Node/Stmt/Class_.php
+++ b/lib/PhpParser/Node/Stmt/Class_.php
@@ -2,7 +2,6 @@
namespace PhpParser\Node\Stmt;
-use PhpParser\Error;
use PhpParser\Modifiers;
use PhpParser\Node;
diff --git a/lib/PhpParser/Node/Stmt/Function_.php b/lib/PhpParser/Node/Stmt/Function_.php
index 8948e211..feb5edfe 100644
--- a/lib/PhpParser/Node/Stmt/Function_.php
+++ b/lib/PhpParser/Node/Stmt/Function_.php
@@ -29,7 +29,7 @@ class Function_ extends Node\Stmt implements FunctionLike {
* @param array{
* byRef?: bool,
* params?: Node\Param[],
- * returnType?: null|string|Node\Identifier|Node\Name|Node\ComplexType,
+ * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType,
* stmts?: Node\Stmt[],
* attrGroups?: Node\AttributeGroup[],
* } $subNodes Array of the following optional subnodes:
@@ -45,8 +45,7 @@ class Function_ extends Node\Stmt implements FunctionLike {
$this->byRef = $subNodes['byRef'] ?? false;
$this->name = \is_string($name) ? new Node\Identifier($name) : $name;
$this->params = $subNodes['params'] ?? [];
- $returnType = $subNodes['returnType'] ?? null;
- $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType;
+ $this->returnType = $subNodes['returnType'] ?? null;
$this->stmts = $subNodes['stmts'] ?? [];
$this->attrGroups = $subNodes['attrGroups'] ?? [];
}
diff --git a/lib/PhpParser/Node/Stmt/Property.php b/lib/PhpParser/Node/Stmt/Property.php
index 279207fd..5d668274 100644
--- a/lib/PhpParser/Node/Stmt/Property.php
+++ b/lib/PhpParser/Node/Stmt/Property.php
@@ -25,14 +25,14 @@ class Property extends Node\Stmt {
* @param int $flags Modifiers
* @param PropertyItem[] $props Properties
* @param array<string, mixed> $attributes Additional attributes
- * @param null|string|Identifier|Name|ComplexType $type Type declaration
+ * @param null|Identifier|Name|ComplexType $type Type declaration
* @param Node\AttributeGroup[] $attrGroups PHP attribute groups
*/
- public function __construct(int $flags, array $props, array $attributes = [], $type = null, array $attrGroups = []) {
+ public function __construct(int $flags, array $props, array $attributes = [], ?Node $type = null, array $attrGroups = []) {
$this->attributes = $attributes;
$this->flags = $flags;
$this->props = $props;
- $this->type = \is_string($type) ? new Identifier($type) : $type;
+ $this->type = $type;
$this->attrGroups = $attrGroups;
}
diff --git a/lib/PhpParser/Node/UseItem.php b/lib/PhpParser/Node/UseItem.php
index 8c8fb065..c0b36e00 100644
--- a/lib/PhpParser/Node/UseItem.php
+++ b/lib/PhpParser/Node/UseItem.php
@@ -3,7 +3,6 @@
namespace PhpParser\Node;
use PhpParser\Node;
-use PhpParser\Node\Identifier;
use PhpParser\Node\Stmt\Use_;
class UseItem extends Node\Stmt {
diff --git a/lib/PhpParser/NodeDumper.php b/lib/PhpParser/NodeDumper.php
index 753f767c..a83dc293 100644
--- a/lib/PhpParser/NodeDumper.php
+++ b/lib/PhpParser/NodeDumper.php
@@ -3,7 +3,6 @@
namespace PhpParser;
use PhpParser\Node\Expr\Include_;
-use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\GroupUse;
use PhpParser\Node\Stmt\Use_;
use PhpParser\Node\UseItem;
diff --git a/lib/PhpParser/NodeTraverser.php b/lib/PhpParser/NodeTraverser.php
index b338e981..c68be122 100644
--- a/lib/PhpParser/NodeTraverser.php
+++ b/lib/PhpParser/NodeTraverser.php
@@ -4,39 +4,24 @@ namespace PhpParser;
class NodeTraverser implements NodeTraverserInterface {
/**
- * If NodeVisitor::enterNode() returns DONT_TRAVERSE_CHILDREN, child nodes
- * of the current node will not be traversed for any visitors.
- *
- * For subsequent visitors enterNode() will still be called on the current
- * node and leaveNode() will also be invoked for the current node.
+ * @deprecated Use NodeVisitor::DONT_TRAVERSE_CHILDREN instead.
*/
- public const DONT_TRAVERSE_CHILDREN = 1;
+ public const DONT_TRAVERSE_CHILDREN = NodeVisitor::DONT_TRAVERSE_CHILDREN;
/**
- * If NodeVisitor::enterNode() or NodeVisitor::leaveNode() returns
- * STOP_TRAVERSAL, traversal is aborted.
- *
- * The afterTraverse() method will still be invoked.
+ * @deprecated Use NodeVisitor::STOP_TRAVERSAL instead.
*/
- public const STOP_TRAVERSAL = 2;
+ public const STOP_TRAVERSAL = NodeVisitor::STOP_TRAVERSAL;
/**
- * If NodeVisitor::leaveNode() returns REMOVE_NODE for a node that occurs
- * in an array, it will be removed from the array.
- *
- * For subsequent visitors leaveNode() will still be invoked for the
- * removed node.
+ * @deprecated Use NodeVisitor::REMOVE_NODE instead.
*/
- public const REMOVE_NODE = 3;
+ public const REMOVE_NODE = NodeVisitor::REMOVE_NODE;
/**
- * If NodeVisitor::enterNode() returns DONT_TRAVERSE_CURRENT_AND_CHILDREN, child nodes
- * of the current node will not be traversed for any visitors.
- *
- * For subsequent visitors enterNode() will not be called as well.
- * leaveNode() will be invoked for visitors that has enterNode() method invoked.
+ * @deprecated Use NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN instead.
*/
- public const DONT_TRAVERSE_CURRENT_AND_CHILDREN = 4;
+ public const DONT_TRAVERSE_CURRENT_AND_CHILDREN = NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN;
/** @var list<NodeVisitor> Visitors */
protected $visitors = [];
@@ -63,11 +48,9 @@ class NodeTraverser implements NodeTraverserInterface {
* @param NodeVisitor $visitor
*/
public function removeVisitor(NodeVisitor $visitor): void {
- foreach ($this->visitors as $index => $storedVisitor) {
- if ($storedVisitor === $visitor) {
- unset($this->visitors[$index]);
- break;
- }
+ $index = array_search($visitor, $this->visitors);
+ if ($index !== false) {
+ array_splice($this->visitors, $index, 1, []);
}
}
@@ -89,7 +72,8 @@ class NodeTraverser implements NodeTraverserInterface {
$nodes = $this->traverseArray($nodes);
- foreach ($this->visitors as $visitor) {
+ for ($i = \count($this->visitors) - 1; $i >= 0; --$i) {
+ $visitor = $this->visitors[$i];
if (null !== $return = $visitor->afterTraverse($nodes)) {
$nodes = $return;
}
@@ -102,37 +86,37 @@ class NodeTraverser implements NodeTraverserInterface {
* Recursively traverse a node.
*
* @param Node $node Node to traverse.
- *
- * @return Node Result of traversal (may be original node or new one)
*/
- protected function traverseNode(Node $node): Node {
+ protected function traverseNode(Node $node): void {
foreach ($node->getSubNodeNames() as $name) {
- $subNode =& $node->$name;
+ $subNode = $node->$name;
if (\is_array($subNode)) {
- $subNode = $this->traverseArray($subNode);
+ $node->$name = $this->traverseArray($subNode);
if ($this->stopTraversal) {
break;
}
} elseif ($subNode instanceof Node) {
$traverseChildren = true;
- $breakVisitorIndex = null;
+ $visitorIndex = -1;
foreach ($this->visitors as $visitorIndex => $visitor) {
$return = $visitor->enterNode($subNode);
if (null !== $return) {
if ($return instanceof Node) {
$this->ensureReplacementReasonable($subNode, $return);
- $subNode = $return;
- } elseif (self::DONT_TRAVERSE_CHILDREN === $return) {
+ $subNode = $node->$name = $return;
+ } elseif (NodeVisitor::DONT_TRAVERSE_CHILDREN === $return) {
$traverseChildren = false;
- } elseif (self::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) {
+ } elseif (NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) {
$traverseChildren = false;
- $breakVisitorIndex = $visitorIndex;
break;
- } elseif (self::STOP_TRAVERSAL === $return) {
+ } elseif (NodeVisitor::STOP_TRAVERSAL === $return) {
$this->stopTraversal = true;
break 2;
+ } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) {
+ $node->$name = null;
+ continue 2;
} else {
throw new \LogicException(
'enterNode() returned invalid value of type ' . gettype($return)
@@ -142,22 +126,26 @@ class NodeTraverser implements NodeTraverserInterface {
}
if ($traverseChildren) {
- $subNode = $this->traverseNode($subNode);
+ $this->traverseNode($subNode);
if ($this->stopTraversal) {
break;
}
}
- foreach ($this->visitors as $visitorIndex => $visitor) {
+ for (; $visitorIndex >= 0; --$visitorIndex) {
+ $visitor = $this->visitors[$visitorIndex];
$return = $visitor->leaveNode($subNode);
if (null !== $return) {
if ($return instanceof Node) {
$this->ensureReplacementReasonable($subNode, $return);
- $subNode = $return;
- } elseif (self::STOP_TRAVERSAL === $return) {
+ $subNode = $node->$name = $return;
+ } elseif (NodeVisitor::STOP_TRAVERSAL === $return) {
$this->stopTraversal = true;
break 2;
+ } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) {
+ $node->$name = null;
+ break;
} elseif (\is_array($return)) {
throw new \LogicException(
'leaveNode() may only return an array ' .
@@ -169,15 +157,9 @@ class NodeTraverser implements NodeTraverserInterface {
);
}
}
-
- if ($breakVisitorIndex === $visitorIndex) {
- break;
- }
}
}
}
-
- return $node;
}
/**
@@ -193,7 +175,7 @@ class NodeTraverser implements NodeTraverserInterface {
foreach ($nodes as $i => &$node) {
if ($node instanceof Node) {
$traverseChildren = true;
- $breakVisitorIndex = null;
+ $visitorIndex = -1;
foreach ($this->visitors as $visitorIndex => $visitor) {
$return = $visitor->enterNode($node);
@@ -204,18 +186,20 @@ class NodeTraverser implements NodeTraverserInterface {
} elseif (\is_array($return)) {
$doNodes[] = [$i, $return];
continue 2;
- } elseif (self::REMOVE_NODE === $return) {
+ } elseif (NodeVisitor::REMOVE_NODE === $return) {
$doNodes[] = [$i, []];
continue 2;
- } elseif (self::DONT_TRAVERSE_CHILDREN === $return) {
+ } elseif (NodeVisitor::DONT_TRAVERSE_CHILDREN === $return) {
$traverseChildren = false;
- } elseif (self::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) {
+ } elseif (NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) {
$traverseChildren = false;
- $breakVisitorIndex = $visitorIndex;
break;
- } elseif (self::STOP_TRAVERSAL === $return) {
+ } elseif (NodeVisitor::STOP_TRAVERSAL === $return) {
$this->stopTraversal = true;
break 2;
+ } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) {
+ throw new \LogicException(
+ 'REPLACE_WITH_NULL can not be used if the parent structure is an array');
} else {
throw new \LogicException(
'enterNode() returned invalid value of type ' . gettype($return)
@@ -225,13 +209,14 @@ class NodeTraverser implements NodeTraverserInterface {
}
if ($traverseChildren) {
- $node = $this->traverseNode($node);
+ $this->traverseNode($node);
if ($this->stopTraversal) {
break;
}
}
- foreach ($this->visitors as $visitorIndex => $visitor) {
+ for (; $visitorIndex >= 0; --$visitorIndex) {
+ $visitor = $this->visitors[$visitorIndex];
$return = $visitor->leaveNode($node);
if (null !== $return) {
@@ -241,22 +226,21 @@ class NodeTraverser implements NodeTraverserInterface {
} elseif (\is_array($return)) {
$doNodes[] = [$i, $return];
break;
- } elseif (self::REMOVE_NODE === $return) {
+ } elseif (NodeVisitor::REMOVE_NODE === $return) {
$doNodes[] = [$i, []];
break;
- } elseif (self::STOP_TRAVERSAL === $return) {
+ } elseif (NodeVisitor::STOP_TRAVERSAL === $return) {
$this->stopTraversal = true;
break 2;
+ } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) {
+ throw new \LogicException(
+ 'REPLACE_WITH_NULL can not be used if the parent structure is an array');
} else {
throw new \LogicException(
'leaveNode() returned invalid value of type ' . gettype($return)
);
}
}
-
- if ($breakVisitorIndex === $visitorIndex) {
- break;
- }
}
} elseif (\is_array($node)) {
throw new \LogicException('Invalid node structure: Contains nested arrays');
diff --git a/lib/PhpParser/NodeVisitor.php b/lib/PhpParser/NodeVisitor.php
index 06c694bf..0ec4f7be 100644
--- a/lib/PhpParser/NodeVisitor.php
+++ b/lib/PhpParser/NodeVisitor.php
@@ -3,6 +3,48 @@
namespace PhpParser;
interface NodeVisitor {
+ /**
+ * If NodeVisitor::enterNode() returns DONT_TRAVERSE_CHILDREN, child nodes
+ * of the current node will not be traversed for any visitors.
+ *
+ * For subsequent visitors enterNode() will still be called on the current
+ * node and leaveNode() will also be invoked for the current node.
+ */
+ public const DONT_TRAVERSE_CHILDREN = 1;
+
+ /**
+ * If NodeVisitor::enterNode() or NodeVisitor::leaveNode() returns
+ * STOP_TRAVERSAL, traversal is aborted.
+ *
+ * The afterTraverse() method will still be invoked.
+ */
+ public const STOP_TRAVERSAL = 2;
+
+ /**
+ * If NodeVisitor::leaveNode() returns REMOVE_NODE for a node that occurs
+ * in an array, it will be removed from the array.
+ *
+ * For subsequent visitors leaveNode() will still be invoked for the
+ * removed node.
+ */
+ public const REMOVE_NODE = 3;
+
+ /**
+ * If NodeVisitor::enterNode() returns DONT_TRAVERSE_CURRENT_AND_CHILDREN, child nodes
+ * of the current node will not be traversed for any visitors.
+ *
+ * For subsequent visitors enterNode() will not be called as well.
+ * leaveNode() will be invoked for visitors that has enterNode() method invoked.
+ */
+ public const DONT_TRAVERSE_CURRENT_AND_CHILDREN = 4;
+
+ /**
+ * If NodeVisitor::enterNode() or NodeVisitor::leaveNode() returns REPLACE_WITH_NULL,
+ * the node will be replaced with null. This is not a legal return value if the node is part
+ * of an array, rather than another node.
+ */
+ public const REPLACE_WITH_NULL = 5;
+
/**
* Called once before traversal.
*
@@ -24,14 +66,16 @@ interface NodeVisitor {
* => $node stays as-is
* * array (of Nodes)
* => The return value is merged into the parent array (at the position of the $node)
- * * NodeTraverser::REMOVE_NODE
+ * * NodeVisitor::REMOVE_NODE
* => $node is removed from the parent array
- * * NodeTraverser::DONT_TRAVERSE_CHILDREN
+ * * NodeVisitor::REPLACE_WITH_NULL
+ * => $node is replaced with null
+ * * NodeVisitor::DONT_TRAVERSE_CHILDREN
* => Children of $node are not traversed. $node stays as-is
- * * NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN
+ * * NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN
* => Further visitors for the current node are skipped, and its children are not
* traversed. $node stays as-is.
- * * NodeTraverser::STOP_TRAVERSAL
+ * * NodeVisitor::STOP_TRAVERSAL
* => Traversal is aborted. $node stays as-is
* * otherwise
* => $node is set to the return value
@@ -48,9 +92,11 @@ interface NodeVisitor {
* Return value semantics:
* * null
* => $node stays as-is
- * * NodeTraverser::REMOVE_NODE
+ * * NodeVisitor::REMOVE_NODE
* => $node is removed from the parent array
- * * NodeTraverser::STOP_TRAVERSAL
+ * * NodeVisitor::REPLACE_WITH_NULL
+ * => $node is replaced with null
+ * * NodeVisitor::STOP_TRAVERSAL
* => Traversal is aborted. $node stays as-is
* * array (of Nodes)
* => The return value is merged into the parent array (at the position of the $node)
diff --git a/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php b/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php
index 2f7c101b..14731556 100644
--- a/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php
+++ b/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php
@@ -3,7 +3,7 @@
namespace PhpParser\NodeVisitor;
use PhpParser\Node;
-use PhpParser\NodeTraverser;
+use PhpParser\NodeVisitor;
use PhpParser\NodeVisitorAbstract;
/**
@@ -41,7 +41,7 @@ class FirstFindingVisitor extends NodeVisitorAbstract {
$filterCallback = $this->filterCallback;
if ($filterCallback($node)) {
$this->foundNode = $node;
- return NodeTraverser::STOP_TRAVERSAL;
+ return NodeVisitor::STOP_TRAVERSAL;
}
return null;
diff --git a/lib/PhpParser/Parser/Php7.php b/lib/PhpParser/Parser/Php7.php
index f39511c7..7cb04710 100644
--- a/lib/PhpParser/Parser/Php7.php
+++ b/lib/PhpParser/Parser/Php7.php
@@ -160,16 +160,16 @@ class Php7 extends \PhpParser\ParserAbstract
public const T_ATTRIBUTE = 395;
protected $tokenToSymbolMapSize = 396;
- protected $actionTableSize = 1252;
- protected $gotoTableSize = 615;
+ protected $actionTableSize = 1260;
+ protected $gotoTableSize = 612;
protected $invalidSymbol = 168;
protected $errorSymbol = 1;
protected $defaultAction = -32766;
protected $unexpectedTokenRule = 32767;
- protected $YY2TBLSTATE = 429;
- protected $numNonLeafStates = 730;
+ protected $YY2TBLSTATE = 434;
+ protected $numNonLeafStates = 739;
protected $symbolToName = array(
"EOF",
@@ -386,248 +386,248 @@ class Php7 extends \PhpParser\ParserAbstract
);
protected $action = array(
- 132, 133, 134, 578, 135, 136, 0, 742, 743, 744,
- 137, 37, 476, 853, 1016, 854,-32766,-32766,-32766,-32767,
- -32767,-32767,-32767, 101, 102, 103, 104, 105, 1100, 1101,
- 1102, 1099, 1098, 1097, 1103, 736, 735,-32766, 239,-32766,
+ 133, 134, 135, 582, 136, 137, 0, 751, 752, 753,
+ 138, 38,-32766,-32766,-32766, 151,-32766,-32766,-32766,-32767,
+ -32767,-32767,-32767, 102, 103, 104, 105, 106, 1111, 1112,
+ 1113, 1110, 1109, 1108, 1114, 745, 744,-32766,-32766,-32766,
-32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,
- -32767, 1233,-32766,-32766,-32766, 745,-32766,-32766,-32766, -326,
- -591, -588, 825,-32766,-32766,-32766, 979, -591, -588, 267,
- 138, 399, 749, 750, 751, 752, -192,-32766, 423,-32766,
- -32766,-32766,-32766,-32766,-32766, 806, 753, 754, 755, 756,
- 757, 758, 759, 760, 761, 762, 782, 579, 783, 784,
- 785, 786, 774, 775, 340, 341, 777, 778, 763, 764,
- 765, 767, 768, 769, 351, 809, 810, 811, 812, 813,
- 580, 770, 771, 581, 582, 930, 794, 792, 793, 805,
- 789, 790, 826, 2, 583, 584, 788, 585, 586, 587,
- 588, 589, 590, 817, 477,-32766,-32766,-32766, 791, 591,
- 592, -191, 139, 19, 132, 133, 134, 578, 135, 136,
- 1049, 742, 743, 744, 137, 37,-32766, 34,-32766,-32766,
- -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, -110, 1100,
- 1101, 1102, 1099, 1098, 1097, 1103, -270,-32766, 21, 736,
- 735,-32766,-32766,-32766, 980, 128,-32766, 932,-32766,-32766,
- -32766,-32766, 106, 107, 108, 602, 271, 1310, 295, 745,
- 1092, 74,-32766, -326,-32766,-32766,-32766, 322, 109, -591,
- -588, -591, -588, 267, 138, 399, 749, 750, 751, 752,
- -192, -85, 423,-32766,-32766,-32766, 352, 819, 126, 806,
- 753, 754, 755, 756, 757, 758, 759, 760, 761, 762,
- 782, 579, 783, 784, 785, 786, 774, 775, 340, 341,
- 777, 778, 763, 764, 765, 767, 768, 769, 351, 809,
- 810, 811, 812, 813, 580, 770, 771, 581, 582, 423,
- 794, 792, 793, 805, 789, 790, 817, 716, 583, 584,
- 788, 585, 586, 587, 588, 589, 590, -85, 82, 83,
- 84, 238, 791, 591, 592, -191, 148, 766, 737, 738,
- 739, 740, 741, 821, 742, 743, 744, 779, 780, 36,
- 703, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 828, 271, 1294, 932, 375,
- 376,-32766,-32766,-32766, 1228, 1227, 1229, 608, 109, 417,
- 948, 949, 745, 1078, 288, 950, 103, 104, 105, 141,
- 1076, 944,-32766, 322,-32766,-32766, 746, 747, 748, 749,
- 750, 751, 752, 144, 1314, 815, 1339, 357, -542, 1340,
- 910, 1313, 806, 753, 754, 755, 756, 757, 758, 759,
- 760, 761, 762, 782, 804, 783, 784, 785, 786, 774,
- 775, 776, 803, 777, 778, 763, 764, 765, 767, 768,
- 769, 808, 809, 810, 811, 812, 813, 814, 770, 771,
- 772, 773, -545, 794, 792, 793, 805, 789, 790, 551,
- 251, 781, 787, 788, 795, 796, 798, 797, 799, 800,
- -32766,-32766, -542, -542, 306, 791, 802, 801, 49, 50,
- 51, 507, 52, 53, 453, 454, 455, -542, 54, 55,
- -110, 56, 1025, 900, 910, -110, 323, -110, 288, -548,
- 822, -542, 302, 377, 376, -110, -110, -110, -110, -110,
- -110, -110, -110, 417, 308, 287, -545, -545, 1233, -364,
- 1266, -364, 1233, 827, 706, 150, 57, 58, 1254, 81,
- 320, -541, 59, 322, 60, 245, 246, 61, 62, 63,
- 64, 65, 66, 67, 68, -545, 27, 269, 69, 439,
- 508,-32766, -16, -340, 1260, 1261, 509,-32766, 826, 335,
- 461, 462, 1258, 41, 24, 510, 336, 511, 912, 512,
- 910, 513, 701, 1025, 514, 515, 823, 900,-32766, 43,
- 44, 440, 372, 371,-32766, 45, 516, 1012, 1011, 1010,
- 1013, 363, 334, 1077, 1226, -541, -541, 728, 1219, 826,
- 518, 519, 520, 826, 1022, 386, 1025, 18, 826, 826,
- -541, 1329, 522, 523, 365, 1247, 1248, 1249, 1250, 1244,
- 1245, 294, -547, -582, -541, -582, 1025, 1251, 1246, 287,
- 1224, 1228, 1227, 1229, 295,-32766, 369, 70, 910,-32766,
- -32766, 318, 319, 322, -152, -152, -152, 910, 384, -110,
- 1022, 1024, 912, 900,-32766, 910, 701, 1025,-32766, -152,
- 853, -152, 854, -152, 1048, -152, 736, 735, 707, 1228,
- 1227, 1229, 1025, 35, 248, 370, 435, 708, 74, 295,
- 287, 436, 74, 437, 322, 711, 948, 949, 322, 438,
- 140, 517, 910, 284, 322, 280, 886, 944, -110, -110,
- -110, 31, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 736, 735, 652, 25, 671,
- 672, 900, 718, 736, 735, -543, 948, 949, 912, 832,
- 900, 950, 701, -152, 149, 402, 151, 945, 900, 153,
- 373, 374, 378, 379, 1138, 1140, 47, 154, 155, 643,
- 644, 157,-32766, 32, 123, -540, 27, 124, 1226, 129,
- 130, 143, -87, 158, 159,-32766,-32766,-32766, 826,-32766,
- 160,-32766, 1258,-32766, 161, 900,-32766, 285, 109, 1022,
- -84,-32766,-32766,-32766, -4, 910, -78,-32766,-32766, -543,
- -543, -73, -72,-32766, 414, -71, 912, -70, -69, -68,
- 701, 1025,-32766, -67, -543, 965, 736, 735, 1219, 701,
- 296, 297, -540, 912, -66, -300, 48, 701, -543, -540,
- -540, -65, 522, 523, 280, 1247, 1248, 1249, 1250, 1244,
- 1245, -46, 73, -18, -540, 147, 270, 1251, 1246, 125,
- 281, 717, 720,-32766, 909, 146, 926, 72, -540, 1226,
- 912, -296, 319, 322, 701, 276,-32766,-32766,-32766, 277,
- -32766, 282,-32766, 283,-32766, 328, 286,-32766, 900, 289,
- 290, 145,-32766,-32766,-32766, 271, -540, -540,-32766,-32766,
- 298, 299, -50, 681,-32766, 414, 1341, 817, 557, 694,
- 370, -540, 430,-32766, 826, 368, 659, 293, 675, 1107,
- -32766, 948, 949, 303, 553, -540, 517, 641, 300, 127,
- 434, 521, 944, -110, -110, -110, 131, 653, 658, 674,
- 20, 301,-32766, 307, 1265,-32766, -505, 1267, 458, 928,
- 39, 1226, 487, 40, 9, -495, 7, 295,-32766,-32766,
- -32766, 23,-32766, 912,-32766, 0,-32766, 701, -4,-32766,
- 825, 0, 725, 0,-32766,-32766,-32766, 0, 0,-32766,
- -32766,-32766, 910, 0, 0, 1226,-32766, 414, 0, 0,
- 367, 0,-32766,-32766,-32766,-32766,-32766, 0,-32766, 0,
- -32766, 0, 0,-32766, 0, 0, 0, 563,-32766,-32766,
- -32766,-32766, 606, 0,-32766,-32766, 726, 1226, 1255, 845,
- -32766, 414, 910, 891,-32766,-32766,-32766, 989,-32766,-32766,
- -32766, 966,-32766, 973, 963,-32766, 974, 889, 961, 482,
- -32766,-32766,-32766,-32766, 1081, 1084,-32766,-32766, 1085, 1226,
- 570, 1082,-32766, 414, 1083, 1089,-32766,-32766,-32766, 837,
- -32766,-32766,-32766, 1280,-32766, 900, 1298,-32766, 1332, 646,
- 33, -576,-32766,-32766,-32766, -575, -574, -548,-32766,-32766,
- -547, -248, -248, -248,-32766, 414, -546, 370, -489, 1,
- 27, 269, 28,-32766, 29, 38, 42, 46, 948, 949,
- 71, 75, 826, 517, 76, 900, 1258, 77, 886, 944,
- -110, -110, -110, 78, 79, 80, 142, 152, 156, 244,
- 324, -247, -247, -247, 352, 353, 354, 370, 355, 356,
- 722, 357, 358, 359, 360, 361, 362, 364, 948, 949,
- 912, 431, 1219, 517, 701, -248, 550, 317, 886, 944,
- -110, -110, -110, -273, -271, -270, 12, 523, 27, 1247,
- 1248, 1249, 1250, 1244, 1245, 13, 14, 15, 17, 401,
- 826, 1251, 1246, 478, 1258, 479,-32766, 486, 489, 490,
- 912, 72, 1226, 887, 701, -247, 319, 322, 491,-32766,
- -32766,-32766, 492,-32766, 496,-32766, 497,-32766, 498, 505,
- -32766, 568, 688, 1237, 1178,-32766,-32766,-32766, 1256, 1051,
- 1219,-32766,-32766, 1050, 1031, 1214, 1027,-32766, 414, -275,
- -102, 11, 16, 26, 292, 523,-32766, 1247, 1248, 1249,
- 1250, 1244, 1245, 400, 599, 603, 632, 693, 1182, 1251,
- 1246, 1232, 1179, 1311, 1259, 366, 702, 705, 709, 72,
- 710, -509, 712, 713, 319, 322, 714, 715, 719, 704,
- 0, 1336, 1338, 848, 847, 856, 0, 938, 981, 855,
- 1337, 937, 935, 936, 939, 1210, 919, 929, 917, 971,
- 972, 630, 1335, 1292, 1281, 1299, 1308, 0, 1195, 0,
- 0, 322
+ -32767, 1244, 837,-32766, 1321, 754,-32766,-32766,-32766,-32766,
+ -593,-32766,-32766,-32766, 104, 105, 106, -593, 1305, 265,
+ 139, 403, 758, 759, 760, 761, 989,-32766, 428,-32766,
+ -32766, -16,-32766, 242, 1026, 815, 762, 763, 764, 765,
+ 766, 767, 768, 769, 770, 771, 791, 583, 792, 793,
+ 794, 795, 783, 784, 344, 345, 786, 787, 772, 773,
+ 774, 776, 777, 778, 355, 818, 819, 820, 821, 822,
+ 584, 779, 780, 585, 586,-32766, 803, 801, 802, 814,
+ 798, 799, 835, 826, 587, 588, 797, 589, 590, 591,
+ 592, 593, 594, 826, 458, 459, 460, 1035, 800, 595,
+ 596, 940, 140, 2, 133, 134, 135, 582, 136, 137,
+ 1059, 751, 752, 753, 138, 38, -327, -110, -110, 1325,
+ 290, 23, -110,-32766,-32766,-32766, 1324, 35, -110, 1111,
+ 1112, 1113, 1110, 1109, 1108, 1114, 612,-32766, 129, 745,
+ 744, 107, 108, 109,-32766, 274,-32766,-32766,-32766,-32766,
+ -32766,-32766,-32766, 828, 990, -193, 145, 110, 298, 754,
+ 836, 75,-32766,-32766,-32766, 1350, 142, 326, 1351, -593,
+ 326, -593, 254, 265, 139, 403, 758, 759, 760, 761,
+ 82, -271, 428,-32766, 326,-32766,-32766,-32766,-32766, 815,
+ 762, 763, 764, 765, 766, 767, 768, 769, 770, 771,
+ 791, 583, 792, 793, 794, 795, 783, 784, 344, 345,
+ 786, 787, 772, 773, 774, 776, 777, 778, 355, 818,
+ 819, 820, 821, 822, 584, 779, 780, 585, 586, 830,
+ 803, 801, 802, 814, 798, 799, 712, 309, 587, 588,
+ 797, 589, 590, 591, 592, 593, 594, -78, 83, 84,
+ 85, -85, 800, 595, 596, 311, 149, 775, 746, 747,
+ 748, 749, 750, 725, 751, 752, 753, 788, 789, 37,
+ -327, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 323, 274, 481,-32766,-32766,
+ -32766, -58,-32766,-32766,-32766, 958, 959, 127, 110, -193,
+ 960, 339, 754,-32766,-32766,-32766, 954, -85, 291,-32766,
+ 1087,-32766,-32766,-32766,-32766,-32766, 755, 756, 757, 758,
+ 759, 760, 761, -192,-32766, 824,-32766,-32766,-32766, -366,
+ 428, -366, 815, 762, 763, 764, 765, 766, 767, 768,
+ 769, 770, 771, 791, 813, 792, 793, 794, 795, 783,
+ 784, 785, 812, 786, 787, 772, 773, 774, 776, 777,
+ 778, 817, 818, 819, 820, 821, 822, 823, 779, 780,
+ 781, 782, -547, 803, 801, 802, 814, 798, 799, 340,
+ 327, 790, 796, 797, 804, 805, 807, 806, 808, 809,
+ 1032, 390, 606, 7,-32766, 800, 811, 810, 50, 51,
+ 52, 512, 53, 54, 831, 1239, 1238, 1240, 55, 56,
+ -110, 57, 1035, 920, 1089, -110, 1035, -110, 291, 482,
+ 745, 744, 305, 381, 380, -110, -110, -110, -110, -110,
+ -110, -110, -110, 422, 920, 283, -547, -547, 152, 290,
+ 379, 380, 1244, 715, 466, 467, 58, 59, 369, 21,
+ 422, -544, 60, 555, 61, 248, 249, 62, 63, 64,
+ 65, 66, 67, 68, 69, -547, 28, 267, 70, 444,
+ 513, 1103, 373, -341, 1271, 1272, 514, -192, 835, 154,
+ 832, -543, 1269, 42, 25, 515, 388, 516, 241, 517,
+ 920, 518, 298, 1237, 519, 520, 910, 920, 440, 44,
+ 45, 445, 376, 375,-32766, 46, 521, 1022, 1021, 1020,
+ 1023, 367, 338, 441, 1277, -544, -544, 910, 1230, 442,
+ 523, 524, 525, 835, 1244, 835, 1035, 716, 1340, 1235,
+ -544, 155, 527, 528,-32766, 1258, 1259, 1260, 1261, 1255,
+ 1256, 297, -550, 942, -544, -543, -543, 1262, 1257, 290,
+ 1034, 1239, 1238, 1240, 298, 443, 1035, 71, 1265, 841,
+ -543, 321, 322, 326, -153, -153, -153, 920, 1239, 1238,
+ 1240, 922, -549, 910, -543, 710, 942, -590,-32766, -153,
+ 910, -153, 356, -153, -590, -153, 862, 1032, 863, 1088,
+ 36, 251, 922, 737, 156, 374, 710, 717, 862, -584,
+ 863, -584, 75, 158, -545, 835, 958, 959, 326, 1035,
+ -57, 522, 920,-32766,-32766, 361, 896, 954, -110, -110,
+ -110, 32, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 745, 744, 656, 26, 835,
+ -110, -110, 720, 745, 744, -110, 33, 834, 922, 124,
+ 910, -110, 710, -153, 125, 922, 675, 676, 130, 710,
+ -32766, 150, 406, 131, 1149, 1151, 48, 144, -545, -545,
+ 377, 378,-32766, 382, 383, -542, 28, 159, 1237, 920,
+ 160, 298, 1058, -545, 75,-32766,-32766,-32766, 835,-32766,
+ 326,-32766, 1269,-32766, -87, 910,-32766, -545, 647, 648,
+ 161,-32766,-32766,-32766, -4, 920, -84,-32766,-32766, 727,
+ 162, 287, 163,-32766, 419, -301, -78, -73, -72, -71,
+ 141, 287,-32766, -70, 326, 975, 745, 744, 1230, 710,
+ 299, 300, -69, -68, -67, -297, -590, -66, -590, -542,
+ -542, -65, 527, 528, -46, 1258, 1259, 1260, 1261, 1255,
+ 1256, -18, 74, 148, -542, 273, 284, 1262, 1257, 126,
+ -542, 726, 910,-32766, 729, 919, 147, 73, -542, 1237,
+ 922, 690, 322, 326, 710, 279,-32766,-32766,-32766, 280,
+ -32766, 285,-32766, 286,-32766, 332, 288,-32766, 910, 289,
+ 292, 49,-32766,-32766,-32766, 293, 274, 1032,-32766,-32766,
+ 936, 110, -50, 685,-32766, 419, 146, 691, 826, 701,
+ 374, 703, 435,-32766, 1352, 20, 561, 296, 645, 1035,
+ 835, 958, 959, 1118, -542, -542, 522,-32766, 692, 693,
+ 557, 526, 954, -110, -110, -110, 132, 922, 834, -542,
+ 463, 710, 283, 662, 657,-32766, 1239, 1238, 1240, 678,
+ 304, 1237, 283, -542, 10, 301, 302, 492,-32766,-32766,
+ -32766, 663,-32766, 922,-32766, 679,-32766, 710, -4,-32766,
+ 372, 306, -507, 298,-32766,-32766,-32766, -578, 731,-32766,
+ -32766,-32766, 920, 303, 128, 1237,-32766, 419, 310, 0,
+ 567, 955,-32766,-32766,-32766,-32766,-32766, 0,-32766, 0,
+ -32766,-32766, 0,-32766, 0, 1276, 0, 0,-32766,-32766,
+ -32766,-32766, 1278, 0,-32766,-32766, -497, 1237, 8, 24,
+ -32766, 419, 920, 371,-32766,-32766,-32766, 938,-32766,-32766,
+ -32766, 610,-32766, -577, 40,-32766, 41, -576, 734, 487,
+ -32766,-32766,-32766,-32766, 735, 854,-32766,-32766, 901, 1237,
+ 574, 999,-32766, 419, 976, 983,-32766,-32766,-32766, 973,
+ -32766,-32766,-32766, 984,-32766, 910, 899,-32766, 971, 1092,
+ 1095, 1096,-32766,-32766,-32766, 1093, 1094, 1100,-32766,-32766,
+ 1266, -249, -249, -249,-32766, 419, 846, 374, 1291, 1309,
+ 28, 267, 1343,-32766, 650, -274, -550, -549, 958, 959,
+ -548, -491, 835, 522, 1, 910, 1269, 29, 896, 954,
+ -110, -110, -110, 30, 39, 43, 47, 72, 76, 77,
+ 78, -248, -248, -248, 79, 80, 81, 374, 143, 153,
+ 897, 157, 247, 328, 356, 357, 358, 359, 958, 959,
+ 922, 360, 1230, 522, 710, -249, 361, 362, 896, 954,
+ -110, -110, -110, 363, 364, 365, 366, 528, 28, 1258,
+ 1259, 1260, 1261, 1255, 1256, 368, 436, 554, -511, -272,
+ 835, 1262, 1257, -271, 1269, 13,-32766, 14, 15, 16,
+ 922, 73, 1237, 1347, 710, -248, 322, 326, 18,-32766,
+ -32766,-32766, 405,-32766, 483,-32766, 484,-32766, 491, 494,
+ -32766, 495, 496, 497, 501,-32766,-32766,-32766, 502, 503,
+ 1230,-32766,-32766, 510, 572, 696, 1248,-32766, 419, 1189,
+ 1267, 1061, 1060, 1041, 1225, 528,-32766, 1258, 1259, 1260,
+ 1261, 1255, 1256, 1037, -276, -102, 12, 17, 27, 1262,
+ 1257, 295, 404, 603, 607, 636, 702, 1193, 1243, 73,
+ 34, 1190, 1322, 0, 322, 326, 320, 370, 711, 714,
+ 718, 719, 721, 722, 723, 0, 724, 728, 713, 0,
+ 1349, 857, 856, 865, 948, 991, 864, 1348, 947, 945,
+ 946, 949, 1221, 929, 939, 927, 981, 982, 634, 1346,
+ 1303, 1292, 1310, 1319, 0, 1206, 0, 1270, 0, 326
);
protected $actionCheck = array(
2, 3, 4, 5, 6, 7, 0, 9, 10, 11,
- 12, 13, 31, 106, 1, 108, 9, 10, 11, 44,
+ 12, 13, 9, 10, 11, 14, 9, 10, 11, 44,
45, 46, 47, 48, 49, 50, 51, 52, 116, 117,
- 118, 119, 120, 121, 122, 37, 38, 30, 14, 32,
+ 118, 119, 120, 121, 122, 37, 38, 30, 116, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 1, 9, 10, 11, 57, 9, 10, 11, 8,
- 1, 1, 155, 9, 10, 11, 31, 8, 8, 71,
- 72, 73, 74, 75, 76, 77, 8, 30, 80, 32,
- 33, 34, 35, 36, 30, 87, 88, 89, 90, 91,
+ 43, 1, 1, 9, 1, 57, 9, 10, 11, 137,
+ 1, 9, 10, 11, 50, 51, 52, 8, 1, 71,
+ 72, 73, 74, 75, 76, 77, 31, 30, 80, 32,
+ 33, 31, 30, 14, 1, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 1, 128, 129, 130, 131,
- 132, 133, 82, 8, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 80, 163, 9, 10, 11, 150, 151,
- 152, 8, 154, 8, 2, 3, 4, 5, 6, 7,
- 162, 9, 10, 11, 12, 13, 30, 8, 32, 33,
- 34, 35, 36, 37, 38, 9, 10, 11, 128, 116,
- 117, 118, 119, 120, 121, 122, 162, 137, 101, 37,
- 38, 9, 10, 11, 159, 8, 30, 122, 32, 33,
- 34, 35, 53, 54, 55, 1, 57, 1, 158, 57,
- 123, 161, 30, 162, 32, 33, 34, 167, 69, 160,
- 160, 162, 162, 71, 72, 73, 74, 75, 76, 77,
- 162, 31, 80, 9, 10, 11, 161, 80, 14, 87,
+ 122, 123, 124, 125, 126, 116, 128, 129, 130, 131,
+ 132, 133, 82, 80, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 80, 129, 130, 131, 138, 150, 151,
+ 152, 1, 154, 8, 2, 3, 4, 5, 6, 7,
+ 162, 9, 10, 11, 12, 13, 8, 117, 118, 1,
+ 161, 8, 122, 9, 10, 11, 8, 8, 128, 116,
+ 117, 118, 119, 120, 121, 122, 51, 137, 8, 37,
+ 38, 53, 54, 55, 30, 57, 32, 33, 34, 35,
+ 36, 37, 38, 80, 159, 8, 8, 69, 158, 57,
+ 159, 161, 9, 10, 11, 80, 163, 167, 83, 160,
+ 167, 162, 8, 71, 72, 73, 74, 75, 76, 77,
+ 163, 162, 80, 30, 167, 32, 33, 34, 35, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 80,
- 128, 129, 130, 131, 132, 133, 80, 163, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 97, 9, 10,
- 11, 97, 150, 151, 152, 162, 154, 2, 3, 4,
- 5, 6, 7, 156, 9, 10, 11, 12, 13, 30,
- 163, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 156,
+ 128, 129, 130, 131, 132, 133, 163, 8, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 16, 9, 10,
+ 11, 31, 150, 151, 152, 8, 154, 2, 3, 4,
+ 5, 6, 7, 163, 9, 10, 11, 12, 13, 30,
+ 162, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 1, 57, 1, 122, 106,
- 107, 9, 10, 11, 155, 156, 157, 51, 69, 116,
- 117, 118, 57, 164, 30, 122, 50, 51, 52, 163,
- 1, 128, 30, 167, 32, 33, 71, 72, 73, 74,
- 75, 76, 77, 8, 1, 80, 80, 161, 70, 83,
- 1, 8, 87, 88, 89, 90, 91, 92, 93, 94,
+ 51, 52, 53, 54, 55, 8, 57, 31, 9, 10,
+ 11, 16, 9, 10, 11, 117, 118, 14, 69, 162,
+ 122, 8, 57, 9, 10, 11, 128, 97, 30, 30,
+ 1, 32, 33, 34, 35, 36, 71, 72, 73, 74,
+ 75, 76, 77, 8, 30, 80, 32, 33, 34, 106,
+ 80, 108, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 70, 128, 129, 130, 131, 132, 133, 85,
- 8, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 116, 9, 134, 135, 8, 150, 151, 152, 2, 3,
- 4, 5, 6, 7, 129, 130, 131, 149, 12, 13,
- 101, 15, 138, 84, 1, 106, 70, 108, 30, 161,
- 80, 163, 113, 106, 107, 116, 117, 118, 119, 120,
- 121, 122, 123, 116, 8, 161, 134, 135, 1, 106,
- 146, 108, 1, 159, 31, 14, 50, 51, 1, 163,
- 8, 70, 56, 167, 58, 59, 60, 61, 62, 63,
+ 125, 126, 70, 128, 129, 130, 131, 132, 133, 8,
+ 70, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 116, 106, 1, 108, 116, 150, 151, 152, 2, 3,
+ 4, 5, 6, 7, 80, 155, 156, 157, 12, 13,
+ 101, 15, 138, 1, 164, 106, 138, 108, 30, 163,
+ 37, 38, 113, 106, 107, 116, 117, 118, 119, 120,
+ 121, 122, 123, 116, 1, 161, 134, 135, 14, 161,
+ 106, 107, 1, 31, 134, 135, 50, 51, 8, 101,
+ 116, 70, 56, 85, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 163, 70, 71, 72, 73,
- 74, 116, 31, 164, 78, 79, 80, 116, 82, 8,
- 134, 135, 86, 87, 88, 89, 8, 91, 159, 93,
- 1, 95, 163, 138, 98, 99, 156, 84, 137, 103,
+ 74, 123, 8, 164, 78, 79, 80, 162, 82, 14,
+ 156, 70, 86, 87, 88, 89, 8, 91, 97, 93,
+ 1, 95, 158, 80, 98, 99, 84, 1, 8, 103,
104, 105, 106, 107, 116, 109, 110, 119, 120, 121,
- 122, 115, 116, 159, 80, 134, 135, 163, 122, 82,
- 124, 125, 126, 82, 116, 106, 138, 108, 82, 82,
- 149, 85, 136, 137, 8, 139, 140, 141, 142, 143,
- 144, 145, 161, 160, 163, 162, 138, 151, 152, 161,
- 116, 155, 156, 157, 158, 116, 8, 161, 1, 9,
- 10, 165, 166, 167, 75, 76, 77, 1, 8, 128,
- 116, 137, 159, 84, 137, 1, 163, 138, 137, 90,
- 106, 92, 108, 94, 1, 96, 37, 38, 31, 155,
- 156, 157, 138, 147, 148, 106, 8, 31, 161, 158,
- 161, 8, 161, 8, 167, 31, 117, 118, 167, 8,
- 163, 122, 1, 30, 167, 161, 127, 128, 129, 130,
+ 122, 115, 116, 8, 146, 134, 135, 84, 122, 8,
+ 124, 125, 126, 82, 1, 82, 138, 31, 85, 116,
+ 149, 14, 136, 137, 116, 139, 140, 141, 142, 143,
+ 144, 145, 161, 122, 163, 134, 135, 151, 152, 161,
+ 137, 155, 156, 157, 158, 8, 138, 161, 1, 8,
+ 149, 165, 166, 167, 75, 76, 77, 1, 155, 156,
+ 157, 159, 161, 84, 163, 163, 122, 1, 137, 90,
+ 84, 92, 161, 94, 8, 96, 106, 116, 108, 159,
+ 147, 148, 159, 163, 14, 106, 163, 31, 106, 160,
+ 108, 162, 161, 14, 70, 82, 117, 118, 167, 138,
+ 16, 122, 1, 9, 10, 161, 127, 128, 129, 130,
131, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 37, 38, 75, 76, 75,
- 76, 84, 31, 37, 38, 70, 117, 118, 159, 8,
- 84, 122, 163, 164, 101, 102, 14, 128, 84, 14,
- 106, 107, 106, 107, 59, 60, 70, 14, 14, 111,
- 112, 14, 74, 14, 16, 70, 70, 16, 80, 16,
- 16, 16, 31, 16, 16, 87, 88, 89, 82, 91,
- 16, 93, 86, 95, 16, 84, 98, 37, 69, 116,
- 31, 103, 104, 105, 0, 1, 31, 109, 110, 134,
- 135, 31, 31, 115, 116, 31, 159, 31, 31, 31,
- 163, 138, 124, 31, 149, 159, 37, 38, 122, 163,
- 134, 135, 70, 159, 31, 35, 70, 163, 163, 134,
- 135, 31, 136, 137, 161, 139, 140, 141, 142, 143,
+ 25, 26, 27, 28, 29, 37, 38, 75, 76, 82,
+ 117, 118, 31, 37, 38, 122, 14, 155, 159, 16,
+ 84, 128, 163, 164, 16, 159, 75, 76, 16, 163,
+ 137, 101, 102, 16, 59, 60, 70, 16, 134, 135,
+ 106, 107, 74, 106, 107, 70, 70, 16, 80, 1,
+ 16, 158, 1, 149, 161, 87, 88, 89, 82, 91,
+ 167, 93, 86, 95, 31, 84, 98, 163, 111, 112,
+ 16, 103, 104, 105, 0, 1, 31, 109, 110, 31,
+ 16, 30, 16, 115, 116, 35, 31, 31, 31, 31,
+ 163, 30, 124, 31, 167, 159, 37, 38, 122, 163,
+ 134, 135, 31, 31, 31, 35, 160, 31, 162, 134,
+ 135, 31, 136, 137, 31, 139, 140, 141, 142, 143,
144, 31, 154, 31, 149, 31, 31, 151, 152, 163,
- 31, 31, 31, 74, 31, 31, 38, 161, 163, 80,
- 159, 35, 166, 167, 163, 35, 87, 88, 89, 35,
+ 70, 31, 84, 74, 31, 31, 31, 161, 163, 80,
+ 159, 80, 166, 167, 163, 35, 87, 88, 89, 35,
91, 35, 93, 35, 95, 35, 37, 98, 84, 37,
- 37, 70, 103, 104, 105, 57, 134, 135, 109, 110,
- 134, 135, 31, 77, 115, 116, 83, 80, 89, 92,
- 106, 149, 108, 124, 82, 149, 100, 113, 100, 82,
- 85, 117, 118, 114, 85, 163, 122, 113, 132, 163,
- 128, 127, 128, 129, 130, 131, 31, 90, 96, 94,
- 97, 133, 137, 132, 146, 74, 149, 146, 97, 154,
- 159, 80, 97, 159, 150, 149, 149, 158, 87, 88,
- 89, 149, 91, 159, 93, -1, 95, 163, 164, 98,
- 155, -1, 159, -1, 103, 104, 105, -1, -1, 74,
- 109, 110, 1, -1, -1, 80, 115, 116, -1, -1,
- 149, -1, 87, 88, 89, 124, 91, -1, 93, -1,
- 95, -1, -1, 98, -1, -1, -1, 153, 103, 104,
- 105, 74, 153, -1, 109, 110, 159, 80, 160, 159,
- 115, 116, 1, 159, 87, 88, 89, 159, 91, 124,
- 93, 159, 95, 159, 159, 98, 159, 159, 159, 102,
+ 37, 70, 103, 104, 105, 37, 57, 116, 109, 110,
+ 38, 69, 31, 77, 115, 116, 70, 116, 80, 80,
+ 106, 92, 108, 124, 83, 97, 89, 113, 113, 138,
+ 82, 117, 118, 82, 134, 135, 122, 85, 137, 138,
+ 85, 127, 128, 129, 130, 131, 31, 159, 155, 149,
+ 97, 163, 161, 96, 90, 74, 155, 156, 157, 94,
+ 133, 80, 161, 163, 150, 134, 135, 97, 87, 88,
+ 89, 100, 91, 159, 93, 100, 95, 163, 164, 98,
+ 149, 114, 149, 158, 103, 104, 105, 161, 164, 74,
+ 109, 110, 1, 132, 163, 80, 115, 116, 132, -1,
+ 153, 128, 87, 88, 89, 124, 91, -1, 93, -1,
+ 95, 137, -1, 98, -1, 146, -1, -1, 103, 104,
+ 105, 74, 146, -1, 109, 110, 149, 80, 149, 149,
+ 115, 116, 1, 149, 87, 88, 89, 154, 91, 124,
+ 93, 153, 95, 161, 159, 98, 159, 161, 159, 102,
103, 104, 105, 74, 159, 159, 109, 110, 159, 80,
- 81, 159, 115, 116, 159, 159, 87, 88, 89, 160,
- 91, 124, 93, 160, 95, 84, 160, 98, 160, 160,
- 163, 161, 103, 104, 105, 161, 161, 161, 109, 110,
- 161, 100, 101, 102, 115, 116, 161, 106, 161, 161,
- 70, 71, 161, 124, 161, 161, 161, 161, 117, 118,
+ 81, 159, 115, 116, 159, 159, 87, 88, 89, 159,
+ 91, 124, 93, 159, 95, 84, 159, 98, 159, 159,
+ 159, 159, 103, 104, 105, 159, 159, 159, 109, 110,
+ 160, 100, 101, 102, 115, 116, 160, 106, 160, 160,
+ 70, 71, 160, 124, 160, 162, 161, 161, 117, 118,
161, 161, 82, 122, 161, 84, 86, 161, 127, 128,
129, 130, 131, 161, 161, 161, 161, 161, 161, 161,
161, 100, 101, 102, 161, 161, 161, 106, 161, 161,
164, 161, 161, 161, 161, 161, 161, 161, 117, 118,
- 159, 161, 122, 122, 163, 164, 161, 163, 127, 128,
- 129, 130, 131, 162, 162, 162, 162, 137, 70, 139,
- 140, 141, 142, 143, 144, 162, 162, 162, 162, 162,
+ 159, 161, 122, 122, 163, 164, 161, 161, 127, 128,
+ 129, 130, 131, 161, 161, 161, 161, 137, 70, 139,
+ 140, 141, 142, 143, 144, 161, 161, 161, 165, 162,
82, 151, 152, 162, 86, 162, 74, 162, 162, 162,
159, 161, 80, 164, 163, 164, 166, 167, 162, 87,
88, 89, 162, 91, 162, 93, 162, 95, 162, 162,
@@ -635,19 +635,19 @@ class Php7 extends \PhpParser\ParserAbstract
122, 109, 110, 162, 162, 162, 162, 115, 116, 162,
162, 162, 162, 162, 162, 137, 124, 139, 140, 141,
142, 143, 144, 162, 162, 162, 162, 162, 162, 151,
- 152, 162, 162, 162, 166, 163, 163, 163, 163, 161,
- 163, 165, 163, 163, 166, 167, 163, 163, 163, 163,
- -1, 164, 164, 164, 164, 164, -1, 164, 164, 164,
+ 152, 162, 162, 162, 162, 162, 162, 162, 162, 161,
+ 163, 162, 162, -1, 166, 167, 163, 163, 163, 163,
+ 163, 163, 163, 163, 163, -1, 163, 163, 163, -1,
+ 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 164, 164, 164, 164, -1, 165, -1,
- -1, 167
+ 164, 164, 164, 164, -1, 165, -1, 166, -1, 167
);
protected $actionBase = array(
- 0, -2, 152, 549, 764, 941, 981, 507, 199, 157,
- 855, 617, 634, 634, 671, 634, 473, 626, 305, 305,
- 63, 305, 305, 305, 389, 389, 389, 658, 658, 658,
- 658, 749, 749, 897, 897, 929, 865, 831, 1062, 1062,
+ 0, -2, 152, 549, 764, 941, 981, 751, 617, 310,
+ 123, 877, 556, 671, 671, 738, 671, 472, 626, 789,
+ 63, 305, 305, 789, 305, 493, 493, 493, 658, 658,
+ 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
@@ -660,66 +660,67 @@ class Php7 extends \PhpParser\ParserAbstract
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
- 1062, 1062, 344, 35, 204, 719, 1022, 1036, 1032, 1039,
- 1020, 1019, 1031, 1033, 1040, 1078, 1079, 794, 1080, 1081,
- 1077, 1082, 1034, 869, 1021, 1035, 289, 289, 289, 289,
+ 1062, 1062, 1062, 1062, 51, 45, 451, 692, 1039, 1045,
+ 1041, 1046, 1035, 1034, 1040, 1042, 1049, 1085, 1086, 795,
+ 1087, 1088, 1084, 1089, 1043, 894, 1036, 1044, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 442, 224, 610, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 54, 54, 54, 666, 666,
- 342, 182, 980, 166, 1048, 1048, 1048, 1048, 1048, 1048,
- 1048, 1048, 1048, 665, 47, 136, 136, 7, 7, 7,
- 7, 7, 369, -25, -25, -25, -25, 501, 448, 50,
- 643, 497, 87, 393, 334, 243, 514, 514, 316, 316,
- 468, 468, 499, 499, 468, 468, 468, 415, 415, 415,
- 415, 318, 441, -93, 354, 765, 206, 206, 206, 206,
- 765, 765, 765, 765, 761, 1038, 765, 765, 765, 635,
- 722, 722, 726, 149, 149, 149, 722, 534, 799, 506,
- 534, 506, 346, 306, 421, 589, 377, 443, 421, 362,
- 656, 60, 59, 775, 614, 775, 1018, 75, 795, 226,
- 780, 740, 856, 1056, 1041, 776, 1075, 778, 1076, 335,
- 406, 735, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
- 1017, 1017, 1017, 1084, 609, 1018, 400, 1084, 1084, 1084,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
- 618, 400, 622, 624, 400, 810, 609, 344, 766, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 782,
- -19, 344, 35, 124, 124, 414, 13, 124, 124, 124,
- 124, 344, 344, 344, 614, 798, 814, 616, 819, 143,
- 798, 798, 798, 200, 51, 24, 68, 760, 796, 479,
- 787, 787, 797, 888, 888, 787, 792, 787, 797, 896,
- 787, 787, 888, 888, 759, 187, 648, 531, 608, 653,
- 888, 446, 787, 787, 787, 787, 771, 655, 787, 432,
- 375, 787, 787, 771, 756, 789, 125, 768, 888, 888,
- 888, 771, 586, 768, 768, 768, 773, 817, 774, 785,
- 502, 486, 701, 159, 788, 785, 785, 787, 620, 774,
- 785, 774, 785, 755, 785, 785, 785, 774, 785, 792,
- 538, 785, 727, 661, 145, 785, 6, 899, 900, 711,
- 903, 894, 906, 940, 912, 913, 1043, 887, 918, 895,
- 914, 945, 893, 891, 793, 718, 721, 767, 757, 885,
- 689, 689, 689, 876, 689, 689, 689, 689, 689, 689,
- 689, 689, 718, 818, 801, 762, 779, 924, 723, 724,
- 999, 758, 979, 1046, 1083, 923, 1001, 915, 751, 725,
- 966, 925, 926, 944, 927, 928, 967, 1002, 820, 1006,
- 1057, 781, 1058, 1059, 859, 931, 1044, 689, 899, 913,
- 729, 895, 914, 893, 891, 770, 763, 748, 752, 747,
- 746, 741, 744, 784, 1007, 875, 870, 863, 930, 879,
- 718, 866, 954, 867, 971, 973, 1042, 811, 783, 868,
- 1060, 932, 933, 934, 1045, 1011, 1047, 754, 963, 951,
- 975, 815, 1061, 976, 977, 986, 990, 1049, 1063, 1050,
- 874, 1053, 824, 807, 952, 802, 1064, 491, 806, 808,
- 813, 936, 702, 919, 1054, 1065, 1066, 992, 994, 996,
- 1067, 1068, 916, 828, 964, 805, 965, 953, 832, 834,
- 705, 812, 1012, 800, 804, 809, 713, 714, 1069, 1070,
- 1071, 917, 790, 786, 835, 837, 1013, 720, 1014, 1072,
- 717, 838, 728, 1073, 1000, 734, 738, 777, 1055, 772,
- 769, 803, 935, 791, 839, 1074, 845, 846, 849, 997,
- 852, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 289, 289, 289, 289, 289, 44, 343, 664, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 52, 52,
+ 52, 666, 666, 47, 354, 980, 203, 1048, 1048, 1048,
+ 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164,
+ 7, 7, 7, 7, 7, 50, 369, 583, -25, -25,
+ -25, -25, 448, 741, 501, 408, 283, 338, 394, 334,
+ 334, 14, 14, 531, 531, 9, 9, 531, 531, 531,
+ 478, 478, 478, 478, 441, 471, 552, 428, 824, 53,
+ 53, 53, 53, 824, 824, 824, 824, 826, 1091, 824,
+ 824, 824, 594, 750, 750, 781, 138, 138, 138, 750,
+ 540, 805, 503, 540, 238, 503, 67, 135, -78, 823,
+ 377, 499, -78, 362, 656, 636, 59, 743, 624, 743,
+ 1033, 481, 802, 514, 773, 746, 878, 1065, 1050, 821,
+ 1082, 825, 1083, 15, 370, 745, 1032, 1032, 1032, 1032,
+ 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1092, 443, 1033,
+ 384, 1092, 1092, 1092, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 443, 647, 384, 622, 641, 384, 810,
+ 443, 51, 827, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 780, 316, 51, 45, 150, 150, 490,
+ 83, 150, 150, 150, 150, 51, 51, 51, 51, 624,
+ 799, 797, 627, 838, 375, 799, 799, 799, 270, 158,
+ 69, 197, 740, 760, 345, 788, 788, 801, 903, 903,
+ 788, 798, 788, 801, 915, 788, 788, 903, 903, 775,
+ 180, 550, 353, 524, 565, 903, 279, 788, 788, 788,
+ 788, 816, 571, 788, 214, 198, 788, 788, 816, 811,
+ 785, 145, 777, 903, 903, 903, 816, 500, 777, 777,
+ 777, 839, 845, 765, 784, 337, 297, 611, 169, 822,
+ 784, 784, 788, 538, 765, 784, 765, 784, 833, 784,
+ 784, 784, 765, 784, 798, 431, 784, 721, 607, 163,
+ 784, 6, 916, 917, 723, 918, 913, 919, 965, 923,
+ 924, 1055, 900, 931, 914, 925, 966, 912, 906, 794,
+ 693, 698, 829, 783, 899, 792, 792, 792, 895, 792,
+ 792, 792, 792, 792, 792, 792, 792, 693, 880, 834,
+ 787, 934, 702, 707, 1012, 819, 926, 963, 1090, 933,
+ 1014, 927, 835, 711, 986, 935, 774, 1053, 936, 940,
+ 990, 1017, 846, 1018, 979, 796, 1066, 1067, 886, 946,
+ 1056, 792, 916, 924, 735, 914, 925, 912, 906, 770,
+ 766, 762, 763, 761, 752, 747, 748, 782, 1019, 836,
+ 776, 888, 945, 896, 693, 889, 973, 1047, 992, 994,
+ 1054, 803, 791, 892, 1068, 952, 953, 954, 1057, 1020,
+ 1058, 837, 975, 893, 996, 820, 1069, 997, 999, 1000,
+ 1001, 1059, 1070, 1060, 832, 1061, 849, 814, 967, 807,
+ 1071, 1, 806, 808, 818, 964, 484, 932, 1063, 1072,
+ 1073, 1002, 1006, 1007, 1074, 1075, 928, 852, 976, 815,
+ 977, 971, 855, 856, 525, 813, 1021, 800, 804, 812,
+ 577, 640, 1076, 1077, 1078, 930, 790, 786, 860, 864,
+ 1022, 809, 1031, 1079, 649, 867, 724, 1080, 1013, 744,
+ 754, 281, 654, 335, 756, 779, 1064, 830, 817, 778,
+ 955, 754, 793, 869, 1081, 870, 871, 872, 1011, 876,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 456, 456, 456, 456, 456, 456, 305, 305, 305,
- 305, 456, 456, 456, 456, 456, 456, 456, 0, 0,
- 305, 0, 0, 0, 456, 456, 456, 456, 456, 456,
+ 456, 456, 456, 456, 456, 456, 305, 305, 305, 305,
+ 305, 456, 456, 456, 456, 456, 456, 456, 305, 305,
+ 0, 0, 305, 0, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
@@ -733,180 +734,182 @@ class Php7 extends \PhpParser\ParserAbstract
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
- 456, 456, 289, 289, 289, 289, 289, 289, 289, 289,
+ 456, 456, 456, 289, 289, 289, 289, 289, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 289, 289, 289, 289, 0, 0, 0, 0,
+ 289, 289, 289, 289, 289, 289, 289, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 289, 289, 289, 289, 289, 289, 289, 289,
+ 0, 0, 0, 0, 289, 289, 289, 289, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 289, 289, 289, 289, 289, 289, 494, 494,
- 289, 289, 494, 289, 494, 494, 494, 494, 494, 494,
- 494, 494, 494, 0, 289, 289, 289, 289, 289, 289,
- 289, 289, 759, 149, 149, 149, 149, 494, 494, 494,
- 494, 494, -88, -88, 494, 759, 494, 494, 149, 149,
- 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
- 494, 0, 0, 400, 506, 494, 792, 792, 792, 792,
- 494, 494, 494, 494, 506, 506, 494, 494, 494, 0,
- 0, 0, 0, 0, 0, 0, 0, 400, 506, 0,
- 400, 0, 792, 792, 494, 0, 759, 383, 494, 0,
- 0, 0, 0, 400, 792, 400, 609, 787, 506, 787,
- 609, 609, 124, 344, 383, 613, 613, 613, 613, 0,
- 0, 614, 759, 759, 759, 759, 759, 759, 759, 759,
- 759, 759, 759, 792, 0, 759, 0, 792, 792, 792,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 792, 0, 0, 888, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 896,
- 0, 0, 0, 0, 0, 0, 792, 0, 0, 0,
- 0, 0, 0, 0, 0, 689, 811, 0, 811, 0,
- 689, 689, 689, 0, 0, 0, 0, 812, 720
+ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
+ 473, 473, 289, 289, 473, 289, 473, 473, 473, 473,
+ 473, 473, 473, 473, 473, 0, 289, 289, 289, 289,
+ 289, 289, 289, 289, 473, 775, 473, 138, 138, 138,
+ 138, 473, 473, 473, -88, -88, 473, 238, 473, 473,
+ 138, 138, 473, 473, 473, 473, 473, 473, 473, 473,
+ 473, 473, 473, 0, 0, 384, 503, 473, 798, 798,
+ 798, 798, 473, 473, 473, 473, 503, 503, 473, 473,
+ 473, 0, 0, 0, 0, 0, 0, 0, 0, 384,
+ 503, 0, 384, 0, 0, 798, 798, 473, 238, 775,
+ 168, 473, 0, 0, 0, 0, 384, 798, 384, 443,
+ 788, 503, 788, 443, 443, 150, 51, 168, 620, 620,
+ 620, 620, 0, 0, 624, 775, 775, 775, 775, 775,
+ 775, 775, 775, 775, 775, 775, 798, 0, 775, 0,
+ 798, 798, 798, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 798, 0,
+ 0, 903, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 915, 0, 0, 0, 0, 0, 0, 798,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 792,
+ 803, 0, 803, 0, 792, 792, 792, 0, 0, 0,
+ 0, 813, 809
);
protected $actionDefault = array(
3,32767, 102,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767, 100,
- 32767,32767,32767,32767,32767,32767,32767, 594, 594, 594,
- 594,32767,32767, 252, 102,32767,32767, 467, 384, 384,
- 384,32767,32767, 538, 538, 538, 538, 538, 538,32767,
- 32767,32767,32767,32767,32767, 467,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767, 100,32767,32767,32767,32767, 596, 596,
+ 596, 596,32767,32767, 253, 102,32767,32767, 469, 386,
+ 386, 386,32767,32767, 540, 540, 540, 540, 540, 540,
+ 32767,32767,32767,32767,32767,32767, 469,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767, 100,32767,
- 32767,32767, 36, 7, 8, 10, 11, 49, 17, 322,
- 32767,32767,32767,32767, 102,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 100,
+ 32767,32767,32767, 36, 7, 8, 10, 11, 49, 17,
+ 323,32767,32767,32767,32767, 102,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767, 587,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767, 589,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767, 471, 450, 451, 453,
- 454, 383, 539, 593, 325, 590, 382, 145, 337, 327,
- 240, 328, 256, 472, 257, 473, 476, 477, 213, 285,
- 379, 149, 414, 468, 416, 466, 470, 415, 389, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
- 406, 407, 387, 388, 469, 447, 446, 445,32767,32767,
- 412, 413,32767, 417,32767,32767,32767,32767,32767,32767,
- 32767, 102,32767, 386, 420, 418, 419, 436, 437, 434,
- 435, 438,32767, 439, 440, 441, 442,32767, 314,32767,
- 32767,32767, 363, 361, 314, 111,32767,32767, 427, 428,
+ 32767,32767,32767,32767,32767,32767,32767,32767, 473, 452,
+ 453, 455, 456, 385, 541, 595, 326, 592, 384, 145,
+ 338, 328, 241, 329, 257, 474, 258, 475, 478, 479,
+ 214, 286, 381, 149, 150, 416, 470, 418, 468, 472,
+ 417, 391, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 389, 390, 471, 449, 448,
+ 447,32767,32767, 414, 415,32767, 419,32767,32767,32767,
+ 32767,32767,32767,32767, 102,32767, 388, 422, 420, 421,
+ 438, 439, 436, 437, 440,32767,32767,32767, 441, 442,
+ 443, 444, 315,32767,32767, 365, 363, 315, 111,32767,
+ 32767, 429, 430,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767, 534, 446,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 102,
+ 32767, 100, 536, 411, 413, 503, 424, 425, 423, 392,
+ 32767, 510,32767, 102,32767, 512,32767,32767,32767,32767,
+ 32767,32767,32767, 535,32767, 542, 542,32767, 496, 100,
+ 194,32767,32767,32767, 194, 194,32767,32767,32767,32767,
+ 32767,32767,32767,32767, 603, 496, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110,32767, 194, 110,
+ 32767,32767,32767, 100, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 189,32767, 267, 269, 102, 557,
+ 194,32767, 515,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767, 508,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 496,
+ 434, 138,32767, 138, 542, 426, 427, 428, 498, 542,
+ 542, 542, 311, 288,32767,32767,32767,32767, 513, 513,
+ 100, 100, 100, 100, 508,32767,32767,32767,32767, 111,
+ 99, 99, 99, 99, 99, 103, 101,32767,32767,32767,
+ 32767, 222, 99,32767, 101, 101,32767,32767, 222, 224,
+ 211, 101, 226,32767, 561, 562, 222, 101, 226, 226,
+ 226, 246, 246, 485, 317, 101, 99, 101, 101, 196,
+ 317, 317,32767, 101, 485, 317, 485, 317, 198, 317,
+ 317, 317, 485, 317,32767, 101, 317, 213, 99, 99,
+ 317,32767,32767,32767, 498,32767,32767,32767,32767,32767,
+ 32767,32767, 221,32767,32767,32767,32767,32767,32767,32767,
+ 32767, 529,32767, 546, 559, 432, 433, 435, 544, 457,
+ 458, 459, 460, 461, 462, 463, 465, 591,32767, 502,
+ 32767,32767,32767, 337,32767, 601,32767, 601,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 532, 444,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767, 102,32767, 100, 534,
- 409, 411, 501, 422, 423, 421, 390,32767, 508,32767,
- 102, 510,32767,32767,32767,32767,32767,32767,32767, 533,
- 32767, 540, 540,32767, 494, 100, 193,32767,32767,32767,
- 193, 193,32767,32767,32767,32767,32767,32767,32767,32767,
- 601, 494, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110,32767, 193, 110,32767,32767,32767, 100,
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
- 188,32767, 266, 268, 102, 555, 193,32767, 513,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767, 506,
+ 32767,32767,32767,32767, 602,32767, 542,32767,32767,32767,
+ 32767, 431, 9, 74, 491, 42, 43, 51, 57, 519,
+ 520, 521, 522, 516, 517, 523, 518,32767,32767, 524,
+ 567,32767,32767, 543, 594,32767,32767,32767,32767,32767,
+ 32767, 138,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767, 529,32767, 136,32767,32767,32767,32767,
+ 32767,32767,32767,32767, 525,32767,32767,32767, 542,32767,
+ 32767,32767,32767, 313, 310,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767, 494, 432, 138,32767, 138, 540,
- 424, 425, 426, 496, 540, 540, 540, 310, 287,32767,
- 32767,32767,32767, 511, 511, 100, 100, 100, 100, 506,
- 32767,32767,32767,32767, 111, 99, 99, 99, 99, 99,
- 103, 101,32767,32767,32767,32767, 221, 99,32767, 101,
- 101,32767,32767, 221, 223, 210, 101, 225,32767, 559,
- 560, 221, 101, 225, 225, 225, 245, 245, 483, 316,
- 101, 99, 101, 101, 195, 316, 316,32767, 101, 483,
- 316, 483, 316, 197, 316, 316, 316, 483, 316,32767,
- 101, 316, 212, 99, 99, 316,32767,32767,32767, 496,
- 32767,32767,32767,32767,32767,32767,32767, 220,32767,32767,
- 32767,32767,32767,32767,32767,32767, 527,32767, 544, 557,
- 430, 431, 433, 542, 455, 456, 457, 458, 459, 460,
- 461, 463, 589,32767, 500,32767,32767,32767,32767, 336,
- 32767, 599,32767, 599,32767,32767,32767,32767,32767,32767,
+ 32767, 542,32767,32767,32767,32767,32767, 290,32767, 307,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 600,32767, 540,32767,32767,32767,32767, 429, 9, 74,
- 489, 42, 43, 51, 57, 517, 518, 519, 520, 514,
- 515, 521, 516,32767,32767, 522, 565,32767,32767, 541,
- 592,32767,32767,32767,32767,32767,32767, 138,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767, 527,
- 32767, 136,32767,32767,32767,32767,32767,32767,32767,32767,
- 523,32767,32767,32767, 540,32767,32767,32767,32767, 312,
- 309,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767, 540,32767,32767,
- 32767,32767,32767, 289,32767, 306,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767, 285,32767,32767, 380,
+ 498, 293, 295, 296,32767,32767,32767,32767, 359,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767, 284,32767,32767, 378,32767,32767,32767,32767,
- 357,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 151, 151, 3, 3, 339, 151, 151, 151, 339,
- 339, 151, 339, 339, 339, 151, 151, 151, 151, 151,
- 151, 278, 183, 260, 263, 245, 245, 151, 349, 151
+ 152, 152, 3, 3, 340, 152, 152, 152, 340, 340,
+ 152, 340, 340, 340, 152, 152, 152, 152, 152, 152,
+ 279, 184, 261, 264, 246, 246, 152, 351, 152
);
protected $goto = array(
- 194, 194, 689, 1054, 425, 657, 617, 654, 316, 697,
- 419, 310, 311, 331, 572, 424, 332, 426, 634, 650,
- 651, 843, 668, 669, 670, 844, 165, 165, 165, 165,
- 218, 195, 191, 191, 175, 177, 213, 191, 191, 191,
- 191, 191, 192, 192, 192, 192, 192, 192, 186, 187,
- 188, 189, 190, 215, 213, 216, 530, 531, 415, 532,
- 534, 535, 536, 537, 538, 539, 540, 541, 1124, 166,
- 167, 168, 193, 169, 170, 171, 164, 172, 173, 174,
- 176, 212, 214, 217, 235, 240, 241, 243, 254, 255,
- 256, 257, 258, 259, 260, 261, 263, 264, 265, 266,
- 278, 279, 313, 314, 315, 420, 421, 422, 577, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
- 230, 231, 232, 233, 178, 234, 179, 196, 197, 198,
- 236, 186, 187, 188, 189, 190, 215, 1124, 199, 180,
- 181, 182, 200, 196, 183, 237, 201, 199, 163, 202,
- 203, 184, 204, 205, 206, 185, 207, 208, 209, 210,
- 211, 846, 820, 249, 249, 470, 1300, 1301, 275, 275,
- 275, 275, 964, 596, 619, 619, 877, 903, 1257, 904,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 247,
- 247, 247, 247, 242, 250, 349, 349, 349, 349, 956,
- 405, 696, 555, 547, 346, 851, 818, 899, 894, 895,
- 908, 852, 896, 849, 897, 898, 850, 1204, 933, 902,
- 473, 1205, 1208, 934, 1209, 1325, 1325, 824, 475, 1075,
- 1071, 1072, 337, 547, 555, 564, 565, 339, 575, 598,
- 612, 613, 1325, 1275, 1275, 1095, 1096, 1275, 22, 1275,
- 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 494, 1328,
- 495, 1225, 1023, 1225, 1023, 1225, 501, 824, 1023, 824,
- 1023, 1023, 1029, 1028, 1023, 1023, 1023, 1023, 1023, 1023,
- 1023, 1023, 1023, 1023, 1023, 1307, 1307, 1307, 1307, 1225,
- 859, 569, 1326, 1326, 1225, 1225, 1225, 1225, 460, 460,
- 1225, 1225, 1225, 842, 344, 871, 350, 460, 858, 1326,
- 988, 962, 962, 960, 962, 723, 350, 350, 915, 627,
- 629, 631, 916, 546, 997, 992, 931, 5, 931, 6,
- 350, 350, 1315, 350, 1220, 1342, 605, 620, 623, 624,
- 625, 626, 647, 648, 649, 699, 549, 1273, 1273, 985,
- 350, 1273, 389, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
- 1273, 1273, 533, 533, 567, 418, 533, 607, 533, 533,
- 533, 533, 533, 533, 533, 533, 533, 562, 1032, 1033,
- 839, 724, 633, 635, 321, 305, 655, 656, 1221, 1222,
- 679, 683, 999, 687, 695, 995, 834, 1286, 1302, 1303,
- 252, 252, 542, 542, 542, 542, 1173, 600, 573, 610,
- 872, 860, 1059, 1063, 1223, 1283, 1284, 1121, 682, 548,
- 559, 967, 452, 432, 548, 678, 559, 444, 662, 392,
- 456, 839, 444, 1297, 444, 1297, 333, 1297, 836, 864,
- 947, 463, 576, 464, 465, 957, 398, 869, 549, 861,
- 1333, 1334, 347, 348, 272, 611, 544, 1216, 544, 545,
- 544, 545, 1309, 1309, 1309, 1309, 1007, 1104, 876, 1060,
- 727, 595, 1088, 471, 700, 873, 867, 391, 394, 556,
- 597, 601, 686, 686, 450, 502, 692, 1086, 1293, 958,
- 958, 958, 958, 403, 404, 450, 952, 959, 666, 1064,
- 667, 969, 407, 408, 409, 1106, 680, 0, 0, 410,
- 0, 1218, 0, 342, 0, 0, 0, 444, 444, 444,
- 444, 444, 444, 444, 444, 444, 444, 444, 0, 1062,
- 444, 920, 1111, 1295, 1295, 1062, 0, 0, 615, 0,
- 0, 0, 427, 0, 1004, 0, 0, 0, 427, 839,
- 0, 0, 863, 0, 660, 983, 1030, 1030, 0, 428,
- 857, 661, 1041, 1037, 1038, 0, 0, 0, 0, 677,
- 941, 0, 1215, 1018, 1034, 1035, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 196, 196, 1033, 1064, 697, 430, 661, 621, 658, 319,
+ 706, 424, 313, 314, 335, 576, 429, 336, 431, 638,
+ 654, 655, 852, 672, 673, 674, 853, 167, 167, 167,
+ 167, 221, 197, 193, 193, 177, 179, 216, 193, 193,
+ 193, 193, 193, 194, 194, 194, 194, 194, 194, 188,
+ 189, 190, 191, 192, 218, 216, 219, 535, 536, 420,
+ 537, 539, 540, 541, 542, 543, 544, 545, 546, 1135,
+ 168, 169, 170, 195, 171, 172, 173, 166, 174, 175,
+ 176, 178, 215, 217, 220, 238, 243, 244, 246, 257,
+ 258, 259, 260, 261, 262, 263, 264, 268, 269, 270,
+ 271, 281, 282, 316, 317, 318, 425, 426, 427, 581,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 180, 237, 181, 198, 199,
+ 200, 239, 188, 189, 190, 191, 192, 218, 1135, 201,
+ 182, 183, 184, 202, 198, 185, 240, 203, 201, 165,
+ 204, 205, 186, 206, 207, 208, 187, 209, 210, 211,
+ 212, 213, 214, 855, 478, 278, 278, 278, 278, 623,
+ 623, 974, 480, 1268, 600, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1286, 1286, 599, 1099, 1286, 709,
+ 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 507,
+ 700, 848, 1097, 418, 868, 559, 551, 860, 827, 909,
+ 904, 905, 918, 861, 906, 858, 907, 908, 859, 880,
+ 886, 912, 867, 833, 547, 547, 547, 547, 423, 604,
+ 611, 1086, 1081, 1082, 1083, 341, 551, 559, 568, 569,
+ 343, 579, 602, 616, 617, 407, 408, 573, 465, 465,
+ 670, 22, 671, 848, 411, 412, 413, 465, 684, 348,
+ 1236, 414, 1236, 350, 833, 346, 833, 1033, 1033, 1236,
+ 1326, 457, 1033, 995, 1033, 1033, 1336, 1336, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1318,
+ 1318, 1318, 1318, 1236, 1336, 930, 1122, 393, 1236, 1236,
+ 1236, 1236, 619, 571, 1236, 1236, 1236, 913, 1014, 914,
+ 354, 1339, 1337, 1337, 252, 252, 872, 439, 664, 993,
+ 354, 354, 1132, 925, 866, 1057, 5, 926, 6, 660,
+ 1337, 941, 1184, 941, 354, 354, 1226, 437, 354, 682,
+ 1353, 250, 250, 250, 250, 245, 253, 353, 353, 353,
+ 353, 553, 1284, 1284, 666, 354, 1284, 337, 1284, 1284,
+ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 538, 538, 1106,
+ 1107, 538, 848, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 566, 475, 1311, 1312, 733, 637, 639, 1039,
+ 1038, 659, 966, 409, 705, 683, 687, 1009, 695, 704,
+ 1005, 845, 1297, 609, 624, 627, 628, 629, 630, 651,
+ 652, 653, 708, 1215, 943, 1042, 1043, 1216, 1219, 944,
+ 1220, 325, 308, 686, 873, 552, 563, 449, 449, 449,
+ 552, 1308, 563, 1308, 957, 396, 461, 1012, 1012, 402,
+ 1308, 395, 398, 560, 601, 605, 870, 468, 580, 469,
+ 470, 1313, 1314, 878, 553, 615, 1344, 1345, 577, 614,
+ 549, 1227, 549, 851, 1070, 1320, 1320, 1320, 1320, 549,
+ 476, 998, 972, 972, 970, 972, 732, 881, 869, 1069,
+ 1073, 736, 876, 1017, 550, 1007, 1002, 1231, 977, 432,
+ 882, 979, 1304, 455, 432, 631, 633, 635, 968, 968,
+ 968, 968, 1040, 1040, 455, 962, 969, 665, 1051, 1047,
+ 1048, 1074, 967, 0, 1117, 351, 352, 1229, 449, 449,
+ 449, 449, 449, 449, 449, 449, 449, 449, 449, 694,
+ 0, 449, 829, 1072, 1115, 885, 0, 1306, 1306, 1072,
+ 0, 694, 1232, 1233, 0, 694, 0, 0, 1036, 1036,
+ 843, 0, 681, 951, 255, 255, 1028, 1044, 1045, 499,
+ 0, 500, 0, 0, 0, 0, 0, 506, 1234, 1294,
+ 1295, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1002, 1002
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 275, 324
);
protected $gotoCheck = array(
- 42, 42, 72, 126, 65, 65, 55, 55, 65, 9,
- 65, 65, 65, 65, 65, 65, 65, 65, 65, 85,
- 85, 26, 85, 85, 85, 27, 42, 42, 42, 42,
+ 42, 42, 72, 126, 72, 65, 65, 55, 55, 65,
+ 9, 65, 65, 65, 65, 65, 65, 65, 65, 65,
+ 85, 85, 26, 85, 85, 85, 27, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
@@ -920,96 +923,96 @@ class Php7 extends \PhpParser\ParserAbstract
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 15, 7, 5, 5, 174, 174, 174, 23, 23,
- 23, 23, 49, 129, 107, 107, 45, 64, 107, 64,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 5,
- 5, 5, 5, 5, 5, 24, 24, 24, 24, 92,
- 92, 92, 75, 75, 96, 15, 6, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 78, 78, 15,
- 83, 78, 78, 78, 78, 180, 180, 12, 83, 15,
- 15, 15, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 180, 168, 168, 143, 143, 168, 75, 168,
- 168, 168, 168, 168, 168, 168, 168, 168, 154, 180,
- 154, 72, 72, 72, 72, 72, 154, 12, 72, 12,
- 72, 72, 117, 117, 72, 72, 72, 72, 72, 72,
- 72, 72, 72, 72, 72, 9, 9, 9, 9, 72,
- 35, 170, 181, 181, 72, 72, 72, 72, 148, 148,
- 72, 72, 72, 25, 177, 35, 14, 148, 35, 181,
- 25, 25, 25, 25, 25, 25, 14, 14, 72, 84,
- 84, 84, 72, 25, 25, 25, 9, 46, 9, 46,
- 14, 14, 179, 14, 20, 14, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 14, 169, 169, 102,
- 14, 169, 61, 169, 169, 169, 169, 169, 169, 169,
- 169, 169, 171, 171, 103, 13, 171, 13, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 48, 118, 118,
- 22, 48, 48, 48, 167, 167, 48, 63, 20, 20,
- 48, 48, 48, 48, 48, 48, 20, 14, 176, 176,
- 5, 5, 106, 106, 106, 106, 150, 106, 2, 2,
- 16, 16, 16, 16, 20, 20, 20, 149, 14, 9,
- 9, 16, 82, 112, 9, 115, 9, 23, 119, 9,
- 9, 22, 23, 129, 23, 129, 29, 129, 18, 39,
- 91, 9, 9, 9, 9, 16, 28, 9, 14, 37,
- 9, 9, 96, 96, 24, 79, 19, 159, 19, 24,
- 19, 24, 129, 129, 129, 129, 109, 16, 16, 128,
- 98, 8, 8, 156, 8, 41, 9, 58, 58, 58,
- 58, 58, 8, 8, 19, 8, 8, 8, 129, 19,
- 19, 19, 19, 81, 81, 19, 19, 19, 81, 131,
- 81, 95, 81, 81, 81, 146, 81, -1, -1, 81,
- -1, 14, -1, 81, -1, -1, -1, 23, 23, 23,
- 23, 23, 23, 23, 23, 23, 23, 23, -1, 129,
- 23, 17, 17, 129, 129, 129, -1, -1, 17, -1,
- -1, -1, 116, -1, 17, -1, -1, -1, 116, 22,
- -1, -1, 17, -1, 17, 17, 116, 116, -1, 88,
- 17, 116, 116, 116, 116, -1, -1, -1, -1, 88,
- 88, -1, 17, 88, 88, 88, -1, -1, -1, -1,
+ 42, 42, 42, 15, 83, 23, 23, 23, 23, 107,
+ 107, 49, 83, 107, 129, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 168, 168, 8, 8, 168, 8,
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 8,
+ 8, 22, 8, 43, 35, 75, 75, 15, 6, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 35,
+ 45, 15, 35, 12, 106, 106, 106, 106, 13, 106,
+ 13, 15, 15, 15, 15, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 81, 81, 170, 148, 148,
+ 81, 75, 81, 22, 81, 81, 81, 148, 81, 177,
+ 72, 81, 72, 96, 12, 81, 12, 72, 72, 72,
+ 179, 82, 72, 102, 72, 72, 180, 180, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72, 72, 9,
+ 9, 9, 9, 72, 180, 17, 17, 61, 72, 72,
+ 72, 72, 17, 103, 72, 72, 72, 64, 17, 64,
+ 14, 180, 181, 181, 5, 5, 17, 82, 17, 17,
+ 14, 14, 149, 72, 17, 113, 46, 72, 46, 63,
+ 181, 9, 150, 9, 14, 14, 17, 112, 14, 115,
+ 14, 5, 5, 5, 5, 5, 5, 24, 24, 24,
+ 24, 14, 169, 169, 119, 14, 169, 29, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 171, 171, 143,
+ 143, 171, 22, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 48, 174, 174, 174, 48, 48, 48, 117,
+ 117, 48, 92, 92, 92, 48, 48, 48, 48, 48,
+ 48, 18, 14, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 78, 78, 118, 118, 78, 78, 78,
+ 78, 167, 167, 14, 39, 9, 9, 23, 23, 23,
+ 9, 129, 9, 129, 91, 9, 9, 106, 106, 28,
+ 129, 58, 58, 58, 58, 58, 37, 9, 9, 9,
+ 9, 176, 176, 9, 14, 79, 9, 9, 2, 2,
+ 19, 159, 19, 25, 128, 129, 129, 129, 129, 19,
+ 156, 25, 25, 25, 25, 25, 25, 16, 16, 16,
+ 16, 98, 9, 109, 25, 25, 25, 20, 16, 116,
+ 41, 95, 129, 19, 116, 84, 84, 84, 19, 19,
+ 19, 19, 116, 116, 19, 19, 19, 116, 116, 116,
+ 116, 131, 16, -1, 146, 96, 96, 14, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 7,
+ -1, 23, 7, 129, 16, 16, -1, 129, 129, 129,
+ -1, 7, 20, 20, -1, 7, -1, -1, 88, 88,
+ 20, -1, 88, 88, 5, 5, 88, 88, 88, 154,
+ -1, 154, -1, -1, -1, -1, -1, 154, 20, 20,
+ 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 106, 106
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 24,
+ 24, 24
);
protected $gotoBase = array(
- 0, 0, -295, 0, 0, 162, 186, 153, 464, -11,
- 0, 0, -66, 32, 12, -182, -36, 72, 132, 189,
- -54, 0, 105, 165, 192, 299, 17, 21, 113, 143,
- 0, 0, 0, 0, 0, -76, 0, 114, 0, 119,
- 0, 40, -1, 0, 0, 157, -400, 0, -325, 155,
- 0, 0, 0, 0, 0, -33, 0, 0, 433, 0,
- 0, 311, 0, 148, 164, -234, 0, 0, 0, 0,
- 0, 0, -6, 0, 0, -138, 0, 0, -186, 116,
- -17, 8, 147, -243, -154, -690, 0, 0, 289, 0,
- 0, 115, -102, 0, 0, 64, -273, 0, 68, 0,
- 0, 0, 315, 322, 0, 0, 375, -64, 0, 101,
- 0, 0, 149, 0, 0, 145, 274, -4, 96, 141,
- 0, 0, 0, 0, 0, 0, 1, 0, 100, 166,
- 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -27, 0, 0, 67, 0, 265, 175,
- 135, 0, 0, 0, -231, 0, 39, 0, 0, 93,
- 0, 0, 0, 0, 0, 0, 0, 66, 5, 109,
- 263, 124, 0, 0, -132, 0, 31, 275, 0, 302,
- -79, -12, 0, 0
+ 0, 0, -254, 0, 0, 313, 188, 522, 178, -10,
+ 0, 0, -73, -109, 13, -184, 26, -169, 92, 195,
+ 95, 0, -77, 162, 344, 459, 18, 22, 102, 61,
+ 0, 0, 0, 0, 0, -166, 0, 107, 0, 101,
+ 0, 50, -1, 184, 0, 197, -410, 0, -329, 153,
+ 0, 0, 0, 0, 0, -33, 0, 0, 396, 0,
+ 0, 255, 0, 87, 293, -236, 0, 0, 0, 0,
+ 0, 0, -5, 0, 0, -139, 0, 0, 6, 112,
+ 46, -245, -7, -304, 17, -698, 0, 0, 269, 0,
+ 0, 105, 88, 0, 0, 49, -219, 0, 75, 0,
+ 0, 0, 238, 260, 0, 0, 196, -72, 0, 114,
+ 0, 0, 60, 52, 0, 56, 217, 110, 130, 64,
+ 0, 0, 0, 0, 0, 0, 1, 0, 91, 166,
+ 0, 70, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 94, 0, 0, 71, 0, 214, 77,
+ 58, 0, 0, 0, 65, 0, 31, 0, 0, 93,
+ 0, 0, 0, 0, 0, 0, 0, 100, -57, 111,
+ 218, 126, 0, 0, 83, 0, 80, 229, 0, 239,
+ -31, 5, 0, 0
);
protected $gotoDefault = array(
- -32768, 506, 731, 4, 732, 924, 807, 816, 593, 524,
- 698, 343, 621, 416, 1291, 901, 1110, 574, 835, 1234,
- 1242, 451, 838, 326, 721, 883, 884, 885, 395, 381,
- 387, 393, 645, 622, 488, 870, 447, 862, 480, 865,
- 446, 874, 162, 413, 504, 878, 3, 880, 552, 911,
- 382, 888, 383, 673, 890, 558, 892, 893, 390, 396,
- 397, 1115, 566, 618, 905, 253, 560, 906, 380, 907,
- 914, 385, 388, 684, 459, 499, 493, 406, 1090, 561,
- 604, 642, 441, 467, 616, 628, 614, 474, 1026, 411,
- 325, 946, 954, 481, 457, 968, 345, 976, 729, 1123,
- 636, 483, 984, 637, 991, 994, 525, 526, 472, 1006,
- 268, 1009, 484, 1047, 663, 1020, 1021, 664, 638, 1043,
- 639, 665, 640, 1045, 466, 594, 1053, 448, 1061, 1279,
- 449, 1065, 262, 1068, 274, 412, 429, 1073, 1074, 8,
- 1080, 690, 691, 10, 273, 503, 1105, 685, 445, 1122,
- 433, 1192, 1194, 554, 485, 1212, 1211, 676, 500, 1217,
- 442, 1282, 443, 527, 468, 312, 528, 304, 329, 309,
- 543, 291, 330, 529, 469, 1288, 1296, 327, 30, 1316,
- 1327, 338, 571, 609
+ -32768, 511, 740, 4, 741, 934, 816, 825, 597, 529,
+ 707, 347, 625, 421, 1302, 911, 1121, 578, 844, 1245,
+ 1253, 456, 847, 330, 730, 893, 894, 895, 399, 385,
+ 391, 397, 649, 626, 493, 879, 452, 871, 485, 874,
+ 451, 883, 164, 417, 509, 887, 3, 890, 556, 921,
+ 386, 898, 387, 677, 900, 562, 902, 903, 394, 400,
+ 401, 1126, 570, 622, 915, 256, 564, 916, 384, 917,
+ 924, 389, 392, 688, 464, 504, 498, 410, 1101, 565,
+ 608, 646, 446, 472, 620, 632, 618, 479, 433, 415,
+ 329, 956, 964, 486, 462, 978, 349, 986, 738, 1134,
+ 640, 488, 994, 641, 1001, 1004, 530, 531, 477, 1016,
+ 272, 1019, 489, 19, 667, 1030, 1031, 668, 642, 1053,
+ 643, 669, 644, 1055, 471, 598, 1063, 453, 1071, 1290,
+ 454, 1075, 266, 1078, 277, 416, 434, 1084, 1085, 9,
+ 1091, 698, 699, 11, 276, 508, 1116, 689, 450, 1133,
+ 438, 1203, 1205, 558, 490, 1223, 1222, 680, 505, 1228,
+ 447, 1293, 448, 532, 473, 315, 533, 307, 333, 312,
+ 548, 294, 334, 534, 474, 1299, 1307, 331, 31, 1327,
+ 1338, 342, 575, 613
);
protected $ruleToNonTerminal = array(
@@ -1028,30 +1031,30 @@ class Php7 extends \PhpParser\ParserAbstract
4, 4, 4, 29, 29, 30, 30, 32, 34, 34,
28, 36, 36, 33, 38, 38, 35, 35, 37, 37,
39, 39, 31, 40, 40, 41, 43, 44, 44, 45,
- 46, 46, 48, 47, 47, 47, 47, 49, 49, 49,
+ 45, 46, 46, 48, 47, 47, 47, 47, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 25, 25, 68, 68, 71, 71, 70, 69, 69,
- 62, 74, 74, 75, 75, 76, 76, 77, 77, 78,
- 78, 79, 79, 26, 26, 27, 27, 27, 27, 27,
- 87, 87, 89, 89, 82, 82, 90, 90, 91, 91,
- 91, 83, 83, 86, 86, 84, 84, 92, 93, 93,
- 56, 56, 64, 64, 67, 67, 67, 66, 94, 94,
- 95, 57, 57, 57, 57, 96, 96, 97, 97, 98,
- 98, 99, 100, 100, 101, 101, 102, 102, 54, 54,
- 50, 50, 104, 52, 52, 105, 51, 51, 53, 53,
- 63, 63, 63, 63, 80, 80, 108, 108, 110, 110,
- 111, 111, 111, 111, 109, 109, 109, 113, 113, 113,
- 113, 88, 88, 116, 116, 116, 117, 117, 114, 114,
- 118, 118, 120, 120, 121, 121, 115, 122, 122, 119,
- 123, 123, 123, 123, 112, 112, 81, 81, 81, 20,
- 20, 20, 125, 124, 124, 126, 126, 126, 126, 59,
- 127, 127, 128, 60, 130, 130, 131, 131, 132, 132,
- 85, 133, 133, 133, 133, 133, 133, 138, 138, 139,
- 139, 140, 140, 140, 140, 140, 141, 142, 142, 137,
- 137, 134, 134, 136, 136, 144, 144, 143, 143, 143,
- 143, 143, 143, 143, 135, 145, 145, 147, 146, 146,
- 61, 103, 148, 148, 55, 55, 42, 42, 42, 42,
+ 49, 49, 25, 25, 68, 68, 71, 71, 70, 69,
+ 69, 62, 74, 74, 75, 75, 76, 76, 77, 77,
+ 78, 78, 79, 79, 26, 26, 27, 27, 27, 27,
+ 27, 87, 87, 89, 89, 82, 82, 90, 90, 91,
+ 91, 91, 83, 83, 86, 86, 84, 84, 92, 93,
+ 93, 56, 56, 64, 64, 67, 67, 67, 66, 94,
+ 94, 95, 57, 57, 57, 57, 96, 96, 97, 97,
+ 98, 98, 99, 100, 100, 101, 101, 102, 102, 54,
+ 54, 50, 50, 104, 52, 52, 105, 51, 51, 53,
+ 53, 63, 63, 63, 63, 80, 80, 108, 108, 110,
+ 110, 111, 111, 111, 111, 109, 109, 109, 113, 113,
+ 113, 113, 88, 88, 116, 116, 116, 117, 117, 114,
+ 114, 118, 118, 120, 120, 121, 121, 115, 122, 122,
+ 119, 123, 123, 123, 123, 112, 112, 81, 81, 81,
+ 20, 20, 20, 125, 124, 124, 126, 126, 126, 126,
+ 59, 127, 127, 128, 60, 130, 130, 131, 131, 132,
+ 132, 85, 133, 133, 133, 133, 133, 133, 133, 138,
+ 138, 139, 139, 140, 140, 140, 140, 140, 141, 142,
+ 142, 137, 137, 134, 134, 136, 136, 144, 144, 143,
+ 143, 143, 143, 143, 143, 143, 135, 145, 145, 147,
+ 146, 146, 61, 103, 148, 148, 55, 55, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
@@ -1061,20 +1064,20 @@ class Php7 extends \PhpParser\ParserAbstract
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 155, 149, 149, 154, 154, 157, 158, 158, 159, 160,
- 161, 161, 161, 161, 19, 19, 72, 72, 72, 72,
- 150, 150, 150, 150, 163, 163, 151, 151, 153, 153,
- 153, 156, 156, 168, 168, 168, 168, 168, 168, 168,
- 168, 168, 169, 169, 169, 107, 171, 171, 171, 171,
- 152, 152, 152, 152, 152, 152, 152, 152, 58, 58,
- 166, 166, 166, 166, 172, 172, 162, 162, 162, 173,
- 173, 173, 173, 173, 173, 73, 73, 65, 65, 65,
- 65, 129, 129, 129, 129, 176, 175, 165, 165, 165,
- 165, 165, 165, 165, 164, 164, 164, 174, 174, 174,
- 174, 106, 170, 178, 178, 177, 177, 179, 179, 179,
- 179, 179, 179, 179, 179, 167, 167, 167, 167, 181,
- 182, 180, 180, 180, 180, 180, 180, 180, 180, 183,
- 183, 183, 183
+ 42, 42, 155, 149, 149, 154, 154, 157, 158, 158,
+ 159, 160, 161, 161, 161, 161, 19, 19, 72, 72,
+ 72, 72, 150, 150, 150, 150, 163, 163, 151, 151,
+ 153, 153, 153, 156, 156, 168, 168, 168, 168, 168,
+ 168, 168, 168, 168, 169, 169, 169, 107, 171, 171,
+ 171, 171, 152, 152, 152, 152, 152, 152, 152, 152,
+ 58, 58, 166, 166, 166, 166, 172, 172, 162, 162,
+ 162, 173, 173, 173, 173, 173, 173, 73, 73, 65,
+ 65, 65, 65, 129, 129, 129, 129, 176, 175, 165,
+ 165, 165, 165, 165, 165, 165, 164, 164, 164, 174,
+ 174, 174, 174, 106, 170, 178, 178, 177, 177, 179,
+ 179, 179, 179, 179, 179, 179, 179, 167, 167, 167,
+ 167, 181, 182, 180, 180, 180, 180, 180, 180, 180,
+ 180, 183, 183, 183, 183
);
protected $ruleToLength = array(
@@ -1093,53 +1096,53 @@ class Php7 extends \PhpParser\ParserAbstract
4, 2, 3, 1, 1, 7, 6, 2, 3, 1,
2, 3, 1, 2, 3, 1, 1, 3, 1, 3,
1, 2, 2, 3, 1, 3, 2, 3, 1, 3,
- 2, 0, 1, 1, 1, 1, 1, 3, 7, 10,
- 5, 7, 9, 5, 3, 3, 3, 3, 3, 3,
- 1, 2, 5, 7, 9, 6, 5, 6, 3, 2,
- 1, 1, 1, 0, 2, 1, 3, 8, 0, 4,
- 2, 1, 3, 0, 1, 0, 1, 0, 1, 3,
- 1, 1, 1, 8, 9, 7, 8, 7, 6, 8,
- 0, 2, 0, 2, 1, 2, 1, 2, 1, 1,
- 1, 0, 2, 0, 2, 0, 2, 2, 1, 3,
- 1, 4, 1, 4, 1, 1, 4, 2, 1, 3,
- 3, 3, 4, 4, 5, 0, 2, 4, 3, 1,
- 1, 7, 0, 2, 1, 3, 3, 4, 1, 4,
- 0, 2, 5, 0, 2, 6, 0, 2, 0, 3,
- 1, 2, 1, 1, 2, 0, 1, 3, 0, 2,
- 1, 1, 1, 1, 6, 8, 6, 1, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
- 1, 3, 3, 3, 3, 3, 1, 3, 3, 1,
- 1, 2, 1, 1, 0, 1, 0, 2, 2, 2,
- 4, 3, 1, 1, 3, 1, 2, 2, 3, 2,
- 3, 1, 1, 2, 3, 1, 1, 3, 2, 0,
- 1, 5, 5, 10, 3, 5, 1, 1, 3, 0,
- 2, 4, 5, 4, 4, 4, 3, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 1, 2, 1, 3, 1, 1, 3,
- 2, 2, 3, 1, 0, 1, 1, 3, 3, 3,
- 4, 4, 1, 1, 2, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
- 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 2, 0, 1, 1, 1, 1, 1, 3, 7,
+ 10, 5, 7, 9, 5, 3, 3, 3, 3, 3,
+ 3, 1, 2, 5, 7, 9, 6, 5, 6, 3,
+ 2, 1, 1, 1, 0, 2, 1, 3, 8, 0,
+ 4, 2, 1, 3, 0, 1, 0, 1, 0, 1,
+ 3, 1, 1, 1, 8, 9, 7, 8, 7, 6,
+ 8, 0, 2, 0, 2, 1, 2, 1, 2, 1,
+ 1, 1, 0, 2, 0, 2, 0, 2, 2, 1,
+ 3, 1, 4, 1, 4, 1, 1, 4, 2, 1,
+ 3, 3, 3, 4, 4, 5, 0, 2, 4, 3,
+ 1, 1, 7, 0, 2, 1, 3, 3, 4, 1,
+ 4, 0, 2, 5, 0, 2, 6, 0, 2, 0,
+ 3, 1, 2, 1, 1, 2, 0, 1, 3, 0,
+ 2, 1, 1, 1, 1, 6, 8, 6, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
+ 3, 1, 3, 3, 3, 3, 3, 1, 3, 3,
+ 1, 1, 2, 1, 1, 0, 1, 0, 2, 2,
+ 2, 4, 3, 1, 1, 3, 1, 2, 2, 3,
+ 2, 3, 1, 1, 2, 3, 1, 1, 3, 2,
+ 0, 1, 5, 5, 6, 10, 3, 5, 1, 1,
+ 3, 0, 2, 4, 5, 4, 4, 4, 3, 1,
+ 1, 1, 1, 1, 1, 0, 1, 1, 2, 1,
+ 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
+ 1, 3, 2, 2, 3, 1, 0, 1, 1, 3,
+ 3, 3, 4, 4, 1, 1, 2, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 5, 4, 3, 4, 4,
- 2, 2, 4, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 1, 3, 2, 1, 2, 4,
- 2, 2, 8, 9, 8, 9, 9, 10, 9, 10,
- 8, 3, 2, 0, 4, 2, 1, 3, 2, 1,
- 2, 2, 2, 4, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 1, 1, 1, 0, 3, 0, 1,
- 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 5, 3, 3, 4, 1, 1, 3,
- 1, 1, 1, 1, 1, 3, 2, 3, 0, 1,
- 1, 3, 1, 1, 1, 1, 1, 3, 1, 1,
- 4, 4, 1, 4, 4, 0, 1, 1, 1, 3,
- 3, 1, 4, 2, 2, 1, 3, 1, 4, 4,
- 3, 3, 3, 3, 1, 3, 1, 1, 3, 1,
- 1, 4, 1, 1, 1, 3, 1, 1, 2, 1,
- 3, 4, 3, 2, 0, 2, 2, 1, 2, 1,
- 1, 1, 4, 3, 3, 3, 3, 6, 3, 1,
- 1, 2, 1
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 5, 4, 3,
+ 4, 4, 2, 2, 4, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 3, 2, 1,
+ 2, 4, 2, 2, 8, 9, 8, 9, 9, 10,
+ 9, 10, 8, 3, 2, 0, 4, 2, 1, 3,
+ 2, 1, 2, 2, 2, 4, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 1, 1, 1, 0, 3,
+ 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 5, 3, 3, 4, 1,
+ 1, 3, 1, 1, 1, 1, 1, 3, 2, 3,
+ 0, 1, 1, 3, 1, 1, 1, 1, 1, 3,
+ 1, 1, 4, 4, 1, 4, 4, 0, 1, 1,
+ 1, 3, 3, 1, 4, 2, 2, 1, 3, 1,
+ 4, 4, 3, 3, 3, 3, 1, 3, 1, 1,
+ 3, 1, 1, 4, 1, 1, 1, 3, 1, 1,
+ 2, 1, 3, 4, 3, 2, 0, 2, 2, 1,
+ 2, 1, 1, 1, 4, 3, 3, 3, 3, 6,
+ 3, 1, 1, 2, 1
);
protected function initReduceCallbacks(): void {
@@ -1599,20 +1602,20 @@ class Php7 extends \PhpParser\ParserAbstract
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
149 => function ($stackPos) {
- $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
150 => function ($stackPos) {
- if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; };
+ $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
151 => function ($stackPos) {
- $this->semValue = array();
+ if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; };
},
152 => function ($stackPos) {
- $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; };
- if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array();
},
153 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; };
+ if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
},
154 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -1621,9 +1624,12 @@ class Php7 extends \PhpParser\ParserAbstract
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
156 => function ($stackPos) {
- throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
157 => function ($stackPos) {
+ throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ },
+ 158 => function ($stackPos) {
if ($this->semStack[$stackPos-(3-2)]) {
$this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); };
@@ -1633,46 +1639,46 @@ class Php7 extends \PhpParser\ParserAbstract
}
},
- 158 => function ($stackPos) {
+ 159 => function ($stackPos) {
$this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => is_array($this->semStack[$stackPos-(7-5)]) ? $this->semStack[$stackPos-(7-5)] : array($this->semStack[$stackPos-(7-5)]), 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
- 159 => function ($stackPos) {
+ 160 => function ($stackPos) {
$this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
},
- 160 => function ($stackPos) {
+ 161 => function ($stackPos) {
$this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 161 => function ($stackPos) {
+ 162 => function ($stackPos) {
$this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], is_array($this->semStack[$stackPos-(7-2)]) ? $this->semStack[$stackPos-(7-2)] : array($this->semStack[$stackPos-(7-2)]), $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
- 162 => function ($stackPos) {
+ 163 => function ($stackPos) {
$this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
- 163 => function ($stackPos) {
+ 164 => function ($stackPos) {
$this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 164 => function ($stackPos) {
+ 165 => function ($stackPos) {
$this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 165 => function ($stackPos) {
+ 166 => function ($stackPos) {
$this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 166 => function ($stackPos) {
+ 167 => function ($stackPos) {
$this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 167 => function ($stackPos) {
+ 168 => function ($stackPos) {
$this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 168 => function ($stackPos) {
+ 169 => function ($stackPos) {
$this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 169 => function ($stackPos) {
+ 170 => function ($stackPos) {
$this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 170 => function ($stackPos) {
+ 171 => function ($stackPos) {
$this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 171 => function ($stackPos) {
+ 172 => function ($stackPos) {
$e = $this->semStack[$stackPos-(2-1)];
if ($e instanceof Expr\Throw_) {
@@ -1684,1145 +1690,1143 @@ class Php7 extends \PhpParser\ParserAbstract
}
},
- 172 => function ($stackPos) {
+ 173 => function ($stackPos) {
$this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 173 => function ($stackPos) {
+ 174 => function ($stackPos) {
$this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
- 174 => function ($stackPos) {
+ 175 => function ($stackPos) {
$this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
- 175 => function ($stackPos) {
+ 176 => function ($stackPos) {
$this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->startAttributeStack[$stackPos-(6-4)] + $this->endAttributeStack[$stackPos-(6-4)]), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
},
- 176 => function ($stackPos) {
+ 177 => function ($stackPos) {
$this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 177 => function ($stackPos) {
+ 178 => function ($stackPos) {
$this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue);
},
- 178 => function ($stackPos) {
+ 179 => function ($stackPos) {
$this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 179 => function ($stackPos) {
+ 180 => function ($stackPos) {
$this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 180 => function ($stackPos) {
+ 181 => function ($stackPos) {
$this->semValue = array(); /* means: no statement */
},
- 181 => function ($stackPos) {
+ 182 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 182 => function ($stackPos) {
+ 183 => function ($stackPos) {
$startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; };
if ($this->semValue === null) $this->semValue = array(); /* means: no statement */
},
- 183 => function ($stackPos) {
+ 184 => function ($stackPos) {
$this->semValue = array();
},
- 184 => function ($stackPos) {
+ 185 => function ($stackPos) {
$this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 185 => function ($stackPos) {
+ 186 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
- 186 => function ($stackPos) {
+ 187 => function ($stackPos) {
$this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
- 187 => function ($stackPos) {
+ 188 => function ($stackPos) {
$this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
- 188 => function ($stackPos) {
+ 189 => function ($stackPos) {
$this->semValue = null;
},
- 189 => function ($stackPos) {
+ 190 => function ($stackPos) {
$this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 190 => function ($stackPos) {
+ 191 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 191 => function ($stackPos) {
+ 192 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
- 192 => function ($stackPos) {
+ 193 => function ($stackPos) {
$this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
- 193 => function ($stackPos) {
+ 194 => function ($stackPos) {
$this->semValue = false;
},
- 194 => function ($stackPos) {
+ 195 => function ($stackPos) {
$this->semValue = true;
},
- 195 => function ($stackPos) {
+ 196 => function ($stackPos) {
$this->semValue = false;
},
- 196 => function ($stackPos) {
+ 197 => function ($stackPos) {
$this->semValue = true;
},
- 197 => function ($stackPos) {
+ 198 => function ($stackPos) {
$this->semValue = false;
},
- 198 => function ($stackPos) {
+ 199 => function ($stackPos) {
$this->semValue = true;
},
- 199 => function ($stackPos) {
+ 200 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(3-2)];
},
- 200 => function ($stackPos) {
+ 201 => function ($stackPos) {
$this->semValue = [];
},
- 201 => function ($stackPos) {
+ 202 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 202 => function ($stackPos) {
+ 203 => function ($stackPos) {
$this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 203 => function ($stackPos) {
+ 204 => function ($stackPos) {
$this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
- 204 => function ($stackPos) {
+ 205 => function ($stackPos) {
$this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
- 205 => function ($stackPos) {
+ 206 => function ($stackPos) {
$this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
$this->checkClass($this->semValue, $stackPos-(7-2));
},
- 206 => function ($stackPos) {
+ 207 => function ($stackPos) {
$this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
$this->checkClass($this->semValue, $stackPos-(8-3));
},
- 207 => function ($stackPos) {
+ 208 => function ($stackPos) {
$this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
$this->checkInterface($this->semValue, $stackPos-(7-3));
},
- 208 => function ($stackPos) {
+ 209 => function ($stackPos) {
$this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
},
- 209 => function ($stackPos) {
+ 210 => function ($stackPos) {
$this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
$this->checkEnum($this->semValue, $stackPos-(8-3));
},
- 210 => function ($stackPos) {
- $this->semValue = null;
- },
211 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
212 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
213 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
214 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
215 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = 0;
},
216 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
217 => function ($stackPos) {
- $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
218 => function ($stackPos) {
- $this->semValue = Modifiers::ABSTRACT;
+ $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
},
219 => function ($stackPos) {
- $this->semValue = Modifiers::FINAL;
+ $this->semValue = Modifiers::ABSTRACT;
},
220 => function ($stackPos) {
- $this->semValue = Modifiers::READONLY;
+ $this->semValue = Modifiers::FINAL;
},
221 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = Modifiers::READONLY;
},
222 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
223 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
224 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = array();
},
225 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
226 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = array();
},
227 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
228 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
229 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
230 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
231 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
232 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
233 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
234 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
235 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
236 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = null;
},
237 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
238 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
239 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
240 => function ($stackPos) {
- $this->semValue = new Node\DeclareItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
241 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = new Node\DeclareItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
242 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-3)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
243 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = $this->semStack[$stackPos-(4-3)];
},
244 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(5-3)];
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
245 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(5-3)];
},
246 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
247 => function ($stackPos) {
- $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
248 => function ($stackPos) {
- $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
249 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos];
+ $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
250 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos];
},
251 => function ($stackPos) {
- $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos];
},
252 => function ($stackPos) {
- $this->semValue = [];
+ $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
253 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = [];
},
254 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
255 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
256 => function ($stackPos) {
- $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
257 => function ($stackPos) {
- $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
258 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
259 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
260 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
261 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
262 => function ($stackPos) {
- $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
263 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
264 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
265 => function ($stackPos) {
- $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
266 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
},
267 => function ($stackPos) {
- $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = null;
},
268 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
269 => function ($stackPos) {
- $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
+ $this->semValue = null;
},
270 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
+ $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
},
271 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(2-2)], true);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
},
272 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
+ $this->semValue = array($this->semStack[$stackPos-(2-2)], true);
},
273 => function ($stackPos) {
- $this->semValue = array($this->fixupArrayDestructuring($this->semStack[$stackPos-(1-1)]), false);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
},
274 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array($this->fixupArrayDestructuring($this->semStack[$stackPos-(1-1)]), false);
},
275 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
276 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = array();
},
277 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
278 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
279 => function ($stackPos) {
- $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+ $this->semValue = 0;
},
280 => function ($stackPos) {
- $this->semValue = Modifiers::PUBLIC;
+ $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
},
281 => function ($stackPos) {
- $this->semValue = Modifiers::PROTECTED;
+ $this->semValue = Modifiers::PUBLIC;
},
282 => function ($stackPos) {
- $this->semValue = Modifiers::PRIVATE;
+ $this->semValue = Modifiers::PROTECTED;
},
283 => function ($stackPos) {
- $this->semValue = Modifiers::READONLY;
+ $this->semValue = Modifiers::PRIVATE;
},
284 => function ($stackPos) {
- $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
- $this->checkParam($this->semValue);
+ $this->semValue = Modifiers::READONLY;
},
285 => function ($stackPos) {
- $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]);
+ $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
$this->checkParam($this->semValue);
},
286 => function ($stackPos) {
- $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
+ $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]);
+ $this->checkParam($this->semValue);
},
287 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
},
288 => function ($stackPos) {
- $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
289 => function ($stackPos) {
- $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
290 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
291 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
292 => function ($stackPos) {
- $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
293 => function ($stackPos) {
- $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
294 => function ($stackPos) {
- $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]);
},
295 => function ($stackPos) {
- $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
296 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
297 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
298 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
299 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
300 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
301 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
302 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
303 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
304 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
305 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
306 => function ($stackPos) {
- $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
307 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
308 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
309 => function ($stackPos) {
- $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
310 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
311 => function ($stackPos) {
- $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
312 => function ($stackPos) {
- $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
313 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
314 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
315 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
316 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
317 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
318 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
319 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = null;
},
320 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = array();
},
321 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-2)]);
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
322 => function ($stackPos) {
- $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(3-2)]);
},
323 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
324 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
325 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
326 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
327 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
328 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]);
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
329 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]);
},
330 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
331 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
332 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
333 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
334 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
335 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
336 => function ($stackPos) {
- $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
337 => function ($stackPos) {
- $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
338 => function ($stackPos) {
- if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }
+ $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
339 => function ($stackPos) {
- $this->semValue = array();
+ if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }
},
340 => function ($stackPos) {
+ $this->semValue = array();
+ },
+ 341 => function ($stackPos) {
$startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; };
if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 341 => function ($stackPos) {
+ 342 => function ($stackPos) {
$this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]);
$this->checkProperty($this->semValue, $stackPos-(5-2));
},
- 342 => function ($stackPos) {
+ 343 => function ($stackPos) {
$this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-1)]);
$this->checkClassConst($this->semValue, $stackPos-(5-2));
},
- 343 => function ($stackPos) {
- $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
- $this->checkClassMethod($this->semValue, $stackPos-(10-2));
- },
344 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)]);
+ $this->checkClassConst($this->semValue, $stackPos-(6-2));
},
345 => function ($stackPos) {
- $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+ $this->checkClassMethod($this->semValue, $stackPos-(10-2));
},
346 => function ($stackPos) {
- $this->semValue = null; /* will be skipped */
+ $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
347 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
348 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = null; /* will be skipped */
},
349 => function ($stackPos) {
$this->semValue = array();
},
350 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
351 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = array();
},
352 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
353 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
354 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
355 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
356 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
357 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
358 => function ($stackPos) {
- $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]);
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
359 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
360 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]);
},
361 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
362 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
363 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
364 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = 0;
},
365 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = 0;
},
366 => function ($stackPos) {
- $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
367 => function ($stackPos) {
- $this->semValue = Modifiers::PUBLIC;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
368 => function ($stackPos) {
- $this->semValue = Modifiers::PROTECTED;
+ $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
},
369 => function ($stackPos) {
- $this->semValue = Modifiers::PRIVATE;
+ $this->semValue = Modifiers::PUBLIC;
},
370 => function ($stackPos) {
- $this->semValue = Modifiers::STATIC;
+ $this->semValue = Modifiers::PROTECTED;
},
371 => function ($stackPos) {
- $this->semValue = Modifiers::ABSTRACT;
+ $this->semValue = Modifiers::PRIVATE;
},
372 => function ($stackPos) {
- $this->semValue = Modifiers::FINAL;
+ $this->semValue = Modifiers::STATIC;
},
373 => function ($stackPos) {
- $this->semValue = Modifiers::READONLY;
+ $this->semValue = Modifiers::ABSTRACT;
},
374 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = Modifiers::FINAL;
},
375 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = Modifiers::READONLY;
},
376 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
377 => function ($stackPos) {
- $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
378 => function ($stackPos) {
- $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
379 => function ($stackPos) {
- $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
380 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
381 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
382 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
383 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
384 => function ($stackPos) {
- $this->semValue = array();
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
385 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
386 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array();
},
387 => function ($stackPos) {
- $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
388 => function ($stackPos) {
- $this->semValue = new Expr\Assign($this->fixupArrayDestructuring($this->semStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
389 => function ($stackPos) {
$this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
390 => function ($stackPos) {
- $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Assign($this->fixupArrayDestructuring($this->semStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
391 => function ($stackPos) {
+ $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ },
+ 392 => function ($stackPos) {
+ $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ },
+ 393 => function ($stackPos) {
$this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
if (!$this->phpVersion->allowsAssignNewByReference()) {
$this->emitError(new Error('Cannot assign new by reference', $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes));
}
},
- 392 => function ($stackPos) {
+ 394 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 393 => function ($stackPos) {
+ 395 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 394 => function ($stackPos) {
+ 396 => function ($stackPos) {
$this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 395 => function ($stackPos) {
+ 397 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 396 => function ($stackPos) {
+ 398 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 397 => function ($stackPos) {
+ 399 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 398 => function ($stackPos) {
+ 400 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 399 => function ($stackPos) {
+ 401 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 400 => function ($stackPos) {
+ 402 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 401 => function ($stackPos) {
+ 403 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 402 => function ($stackPos) {
+ 404 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 403 => function ($stackPos) {
+ 405 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 404 => function ($stackPos) {
+ 406 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 405 => function ($stackPos) {
+ 407 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 406 => function ($stackPos) {
+ 408 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 407 => function ($stackPos) {
+ 409 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 408 => function ($stackPos) {
+ 410 => function ($stackPos) {
$this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 409 => function ($stackPos) {
+ 411 => function ($stackPos) {
$this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 410 => function ($stackPos) {
+ 412 => function ($stackPos) {
$this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 411 => function ($stackPos) {
+ 413 => function ($stackPos) {
$this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 412 => function ($stackPos) {
+ 414 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 413 => function ($stackPos) {
+ 415 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 414 => function ($stackPos) {
+ 416 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 415 => function ($stackPos) {
+ 417 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 416 => function ($stackPos) {
+ 418 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 417 => function ($stackPos) {
+ 419 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 418 => function ($stackPos) {
+ 420 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 419 => function ($stackPos) {
+ 421 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 420 => function ($stackPos) {
+ 422 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 421 => function ($stackPos) {
+ 423 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 422 => function ($stackPos) {
+ 424 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 423 => function ($stackPos) {
+ 425 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 424 => function ($stackPos) {
+ 426 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 425 => function ($stackPos) {
+ 427 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 426 => function ($stackPos) {
+ 428 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 427 => function ($stackPos) {
+ 429 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 428 => function ($stackPos) {
+ 430 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 429 => function ($stackPos) {
+ 431 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 430 => function ($stackPos) {
+ 432 => function ($stackPos) {
$this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 431 => function ($stackPos) {
+ 433 => function ($stackPos) {
$this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 432 => function ($stackPos) {
+ 434 => function ($stackPos) {
$this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 433 => function ($stackPos) {
+ 435 => function ($stackPos) {
$this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 434 => function ($stackPos) {
+ 436 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 435 => function ($stackPos) {
+ 437 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 436 => function ($stackPos) {
+ 438 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 437 => function ($stackPos) {
+ 439 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 438 => function ($stackPos) {
+ 440 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 439 => function ($stackPos) {
+ 441 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 440 => function ($stackPos) {
+ 442 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 441 => function ($stackPos) {
+ 443 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 442 => function ($stackPos) {
+ 444 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 443 => function ($stackPos) {
+ 445 => function ($stackPos) {
$this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 444 => function ($stackPos) {
+ 446 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(3-2)];
},
- 445 => function ($stackPos) {
+ 447 => function ($stackPos) {
$this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 446 => function ($stackPos) {
+ 448 => function ($stackPos) {
$this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 447 => function ($stackPos) {
+ 449 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 448 => function ($stackPos) {
+ 450 => function ($stackPos) {
$this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 449 => function ($stackPos) {
+ 451 => function ($stackPos) {
$this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 450 => function ($stackPos) {
+ 452 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 451 => function ($stackPos) {
+ 453 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 452 => function ($stackPos) {
+ 454 => function ($stackPos) {
$this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 453 => function ($stackPos) {
+ 455 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 454 => function ($stackPos) {
+ 456 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 455 => function ($stackPos) {
+ 457 => function ($stackPos) {
$this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 456 => function ($stackPos) {
+ 458 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes;
$attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]);
$this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs);
},
- 457 => function ($stackPos) {
+ 459 => function ($stackPos) {
$this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 458 => function ($stackPos) {
+ 460 => function ($stackPos) {
$this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 459 => function ($stackPos) {
+ 461 => function ($stackPos) {
$this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 460 => function ($stackPos) {
+ 462 => function ($stackPos) {
$this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 461 => function ($stackPos) {
+ 463 => function ($stackPos) {
$this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 462 => function ($stackPos) {
+ 464 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes;
$attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE;
$this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs);
},
- 463 => function ($stackPos) {
- $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
- },
- 464 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
- },
465 => function ($stackPos) {
- $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
466 => function ($stackPos) {
- $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
467 => function ($stackPos) {
- $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
468 => function ($stackPos) {
- $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
469 => function ($stackPos) {
- $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
470 => function ($stackPos) {
- $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
471 => function ($stackPos) {
- $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
472 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
+ $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
473 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
474 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
475 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
476 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
477 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
478 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
479 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
},
480 => function ($stackPos) {
- $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]);
- $this->checkClass($this->semValue[0], -1);
+ $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
481 => function ($stackPos) {
- $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
},
482 => function ($stackPos) {
- list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]);
+ $this->checkClass($this->semValue[0], -1);
},
483 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
484 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-3)];
+ list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
485 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
486 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(4-3)];
},
487 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
488 => function ($stackPos) {
- $this->semValue = new Node\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
489 => function ($stackPos) {
- $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
490 => function ($stackPos) {
- $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Node\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
491 => function ($stackPos) {
- $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
492 => function ($stackPos) {
$this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
493 => function ($stackPos) {
- $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
494 => function ($stackPos) {
- $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
495 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
496 => function ($stackPos) {
$this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
497 => function ($stackPos) {
- $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
498 => function ($stackPos) {
- $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
499 => function ($stackPos) {
- $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
500 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
501 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
502 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
503 => function ($stackPos) {
- $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
504 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
505 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
},
506 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
507 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
508 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = null;
},
509 => function ($stackPos) {
- $this->semValue = array(new Node\InterpolatedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes));
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
510 => function ($stackPos) {
- foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array();
},
511 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = array(new Node\InterpolatedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes));
},
512 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)];
},
513 => function ($stackPos) {
- $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array();
},
514 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
515 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
516 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
517 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
518 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
519 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
520 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
521 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
522 => function ($stackPos) {
- $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
523 => function ($stackPos) {
- $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
524 => function ($stackPos) {
- $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
525 => function ($stackPos) {
+ $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ },
+ 526 => function ($stackPos) {
+ $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2;
+ },
+ 527 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT;
$this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs);
},
- 526 => function ($stackPos) {
+ 528 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG;
$this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs);
$this->createdArrays->attach($this->semValue);
},
- 527 => function ($stackPos) {
+ 529 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)]; $this->createdArrays->attach($this->semValue);
},
- 528 => function ($stackPos) {
+ 530 => function ($stackPos) {
$this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 529 => function ($stackPos) {
+ 531 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\InterpolatedString($this->semStack[$stackPos-(3-2)], $attrs);
},
- 530 => function ($stackPos) {
- $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, $this->phpVersion->allowsInvalidOctals());
- },
- 531 => function ($stackPos) {
- $this->semValue = Scalar\Float_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
- },
532 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, $this->phpVersion->allowsInvalidOctals());
},
533 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = Scalar\Float_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
534 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
535 => function ($stackPos) {
- $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
536 => function ($stackPos) {
- $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
537 => function ($stackPos) {
$this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
},
538 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true);
},
539 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
},
540 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
541 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
542 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
543 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
544 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -2834,205 +2838,211 @@ class Php7 extends \PhpParser\ParserAbstract
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
547 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
548 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
549 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
550 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
551 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
552 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
553 => function ($stackPos) {
- $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
554 => function ($stackPos) {
- $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
555 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
556 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
557 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
558 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
559 => function ($stackPos) {
- $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
560 => function ($stackPos) {
- $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
561 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
562 => function ($stackPos) {
- $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
563 => function ($stackPos) {
- $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
564 => function ($stackPos) {
- $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
565 => function ($stackPos) {
- $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var;
+ $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
566 => function ($stackPos) {
- $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2;
},
567 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var;
},
568 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
569 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
570 => function ($stackPos) {
- $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
571 => function ($stackPos) {
- $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
572 => function ($stackPos) {
- $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
573 => function ($stackPos) {
- $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
574 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
575 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
576 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
577 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
578 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
579 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
580 => function ($stackPos) {
- $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
581 => function ($stackPos) {
- $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Expr\List_::KIND_LIST);
- $this->postprocessList($this->semValue);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
582 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end]->value instanceof Expr\Error) array_pop($this->semValue);
+ $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
},
583 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos];
+ $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Expr\List_::KIND_LIST);
+ $this->postprocessList($this->semValue);
},
584 => function ($stackPos) {
- /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */
+ $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end]->value instanceof Expr\Error) array_pop($this->semValue);
},
585 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos];
},
586 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */
},
587 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
588 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
589 => function ($stackPos) {
$this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
590 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
591 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
592 => function ($stackPos) {
$this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
593 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true);
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
594 => function ($stackPos) {
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ },
+ 595 => function ($stackPos) {
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true);
+ },
+ 596 => function ($stackPos) {
/* Create an Error node now to remember the position. We'll later either report an error,
or convert this into a null element, depending on whether this is a creation or destructuring context. */
$attrs = $this->createEmptyElemAttributes($this->lookaheadStartAttributes);
$this->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs);
},
- 595 => function ($stackPos) {
+ 597 => function ($stackPos) {
$this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 596 => function ($stackPos) {
+ 598 => function ($stackPos) {
$this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 597 => function ($stackPos) {
+ 599 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
- 598 => function ($stackPos) {
+ 600 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]);
},
- 599 => function ($stackPos) {
+ 601 => function ($stackPos) {
$this->semValue = new Node\InterpolatedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 600 => function ($stackPos) {
+ 602 => function ($stackPos) {
$this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 601 => function ($stackPos) {
+ 603 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 602 => function ($stackPos) {
+ 604 => function ($stackPos) {
$this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 603 => function ($stackPos) {
+ 605 => function ($stackPos) {
$this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 604 => function ($stackPos) {
+ 606 => function ($stackPos) {
$this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 605 => function ($stackPos) {
+ 607 => function ($stackPos) {
$this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 606 => function ($stackPos) {
+ 608 => function ($stackPos) {
$this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 607 => function ($stackPos) {
+ 609 => function ($stackPos) {
$this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
},
- 608 => function ($stackPos) {
+ 610 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(3-2)];
},
- 609 => function ($stackPos) {
+ 611 => function ($stackPos) {
$this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 610 => function ($stackPos) {
+ 612 => function ($stackPos) {
$this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 611 => function ($stackPos) {
+ 613 => function ($stackPos) {
$this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 612 => function ($stackPos) {
+ 614 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
];
diff --git a/lib/PhpParser/Parser/Php8.php b/lib/PhpParser/Parser/Php8.php
index cdf3e436..009a8b6a 100644
--- a/lib/PhpParser/Parser/Php8.php
+++ b/lib/PhpParser/Parser/Php8.php
@@ -160,16 +160,16 @@ class Php8 extends \PhpParser\ParserAbstract
public const T_ATTRIBUTE = 395;
protected $tokenToSymbolMapSize = 396;
- protected $actionTableSize = 1252;
- protected $gotoTableSize = 646;
+ protected $actionTableSize = 1260;
+ protected $gotoTableSize = 656;
protected $invalidSymbol = 168;
protected $errorSymbol = 1;
protected $defaultAction = -32766;
protected $unexpectedTokenRule = 32767;
- protected $YY2TBLSTATE = 429;
- protected $numNonLeafStates = 730;
+ protected $YY2TBLSTATE = 434;
+ protected $numNonLeafStates = 739;
protected $symbolToName = array(
"EOF",
@@ -386,248 +386,248 @@ class Php8 extends \PhpParser\ParserAbstract
);
protected $action = array(
- 132, 133, 134, 578, 135, 136, 0, 742, 743, 744,
- 137, 37,-32766,-32766,-32766, 979,-32766,-32766,-32766,-32766,
- -32766,-32766, 1294, 817,-32767,-32767,-32767,-32767, 101, 102,
- 103,-32766, 930,-32766, 828, 736, 735,-32766, 1016,-32766,
+ 133, 134, 135, 582, 136, 137, 0, 751, 752, 753,
+ 138, 38, 327,-32766,-32766,-32766,-32766,-32766,-32766, 837,
+ 826,-32767,-32767,-32767,-32767, 102, 103, 104, 1111, 1112,
+ 1113, 1110, 1109, 1108, 1114, 745, 744,-32766, 1026,-32766,
-32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,
- -32767, 1233, -364, 1025, -364, 745,-32766,-32766,-32766, 1100,
- 1101, 1102, 1099, 1098, 1097, 1103, -326, -192, 819, 267,
- 138, 399, 749, 750, 751, 752, 288,-32766, 423,-32766,
- -32766,-32766,-32766,-32766, 602, 806, 753, 754, 755, 756,
- 757, 758, 759, 760, 761, 762, 782, 579, 783, 784,
- 785, 786, 774, 775, 340, 341, 777, 778, 763, 764,
- 765, 767, 768, 769, 351, 809, 810, 811, 812, 813,
- 580, 770, 771, 581, 582, -191, 794, 792, 793, 805,
- 789, 790, 826, 2, 583, 584, 788, 585, 586, 587,
- 588, 589, 590, 980, 821,-32766,-32766,-32766, 791, 591,
- 592, 703, 139, 19, 132, 133, 134, 578, 135, 136,
- 1049, 742, 743, 744, 137, 37,-32766, 34,-32766,-32766,
- -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, -110, 128,
- 238,-32766,-32766,-32766, 81, 144, -591,-32766, 322, 736,
- 735, 608, 827, -591, 716, 386,-32766, 18,-32766,-32766,
- -32766,-32766,-32766, 1314,-32766,-32766,-32766, 1310, 296, 745,
- 1313, 74, 104, 105, 106, 107, 108, 322, 271, 1339,
- -326, -192, 1340, 267, 138, 399, 749, 750, 751, 752,
- 109, 476, 423,-32766,-32766,-32766, 551, 822, 126, 806,
- 753, 754, 755, 756, 757, 758, 759, 760, 761, 762,
- 782, 579, 783, 784, 785, 786, 774, 775, 340, 341,
- 777, 778, 763, 764, 765, 767, 768, 769, 351, 809,
- 810, 811, 812, 813, 580, 770, 771, 581, 582, -191,
- 794, 792, 793, 805, 789, 790, 817, 251, 583, 584,
- 788, 585, 586, 587, 588, 589, 590, 1266, 82, 83,
- 84, 1077, 791, 591, 592, 728, 148, 766, 737, 738,
- 739, 740, 741, 823, 742, 743, 744, 779, 780, 36,
- 307, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, -591, 271, -591, 309, 375,
- 376, 1100, 1101, 1102, 1099, 1098, 1097, 1103, 109, 417,
- 948, 949, 745, 477, 289, 950,-32766,-32766,-32766, 141,
- 1076, 944,-32766, 322, 377, 376, 746, 747, 748, 749,
- 750, 751, 752, 320, 417, 815, 335,-32766, -542,-32766,
- -32766, 336, 806, 753, 754, 755, 756, 757, 758, 759,
- 760, 761, 762, 782, 804, 783, 784, 785, 786, 774,
- 775, 776, 803, 777, 778, 763, 764, 765, 767, 768,
- 769, 808, 809, 810, 811, 812, 813, 814, 770, 771,
- 772, 773, -545, 794, 792, 793, 805, 789, 790, 239,
- -85, 781, 787, 788, 795, 796, 798, 797, 799, 800,
- -32766, 21, -542, -542, 1022, 791, 802, 801, 49, 50,
- 51, 507, 52, 53, 423, 736, 735, -542, 54, 55,
- -110, 56, 1025, 1092, 910, -110, 1025, -110, 289, -548,
- -32766, -542, 303,-32766,-32766, -110, -110, -110, -110, -110,
- -110, -110, -110, 365, 910, 288, -545, -545, 1233, 279,
- 369,-32766, 1233, 853, 706, 854, -85, 57, 58,-32766,
- 384, -541, 59, 435, 60, 245, 246, 61, 62, 63,
- 64, 65, 66, 67, 68, -545, 27, 269, 69, 439,
- 508, 1025, -16, -340, 1260, 1261, 509, 436, 826, 1228,
- 1227, 1229, 1258, 41, 24, 510, 932, 511, 1078, 512,
- 910, 513, 825, 437, 514, 515, 853, 900, 854, 43,
- 44, 440, 372, 371,-32766, 45, 516, 1012, 1011, 1010,
- 1013, 363, 334, 438, 1226, -541, -541, 900, 1219, 826,
- 518, 519, 520, 826, 1022, 352, 1025, -270, 1254, 932,
- -541, 832, 522, 523, 150, 1247, 1248, 1249, 1250, 1244,
- 1245, 295, -547, -582, -541, -582, 1025, 1251, 1246, 288,
- 1224, 1228, 1227, 1229, 296, 102, 103, 70, 910, 652,
- 25, 318, 319, 322, -152, -152, -152, 910, 357, -110,
- 123, 1024, 912, 900,-32766, 910, 701, 151,-32766, -152,
- -87, -152, 153, -152, 1048, -152,-32766,-32766, 707, 1228,
- 1227, 1229, 912, 124, -588, 370, 701, 708, 74, 296,
- 154, -588, 74, 155, 322, 711, 948, 949, 322, 826,
- 129, 517, 910, 283, 157, 323, 886, 944, -110, -110,
- -110, 31, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 736, 735, 453, 454, 455,
- 32, 900, 718, 736, 735, -543, 826, 130, 912, 1329,
- 900, 143, 701, -152, 671, 672, 948, 949, 900, 149,
- 402, 950, 373, 374, 1138, 1140, 47, 945, 378, 379,
- 643, 644,-32766, 158, 159, -540, 27, 160, 1226, 461,
- 462, 161, -84, -78, -73,-32766,-32766,-32766, 826,-32766,
- 140,-32766, 1258,-32766, 322, 900,-32766, 284, -72, 1022,
- -71,-32766,-32766,-32766, -4, 910, -70,-32766,-32766, -543,
- -543, 35, 248,-32766, 414, -69, 912, -68, -67, -66,
- 701, 1025,-32766, -65, -543, 965, 736, 735, 1219, 701,
- 297, 298, -540, 912, -46, -300, 48, 701, -543, -540,
- -540, -18, 522, 523, 279, 1247, 1248, 1249, 1250, 1244,
- 1245, 147, 73, -588, -540, -588, 270, 1251, 1246, 125,
- 280, 717, 720,-32766, 909, 146, 926, 72, -540, 1226,
- 912, -296, 319, 322, 701, 277,-32766,-32766,-32766, 278,
- -32766, 281,-32766, 282,-32766, 328, 285,-32766, 900, 290,
- 291, 109,-32766,-32766,-32766, 271, -540, -540,-32766,-32766,
- 299, 300, -50, 681,-32766, 414, 826, 145,-32766, 1107,
- 370, -540, 430,-32766, 658, 368, 20, 294, 1341, 817,
- 641, 948, 949, 304, 694, -540, 517, 553, 301, 127,
- 557, 521, 944, -110, -110, -110, 131, 653, 308, 674,
- 458, 434,-32766, 1265, 302,-32766, 563, 1267, 487, 928,
- 39, 1226, 606, 825, 9, 659, 675, -505,-32766,-32766,
- -32766, -495,-32766, 912,-32766, 7,-32766, 701, -4,-32766,
- 23, 0, 296, 0,-32766,-32766,-32766, 1255, 33,-32766,
- -32766,-32766, 910, 0, 0, 1226,-32766, 414, 0, 0,
+ -32767, 1244,-32766,-32766, 1321, 754, 1111, 1112, 1113, 1110,
+ 1109, 1108, 1114, 458, 459, 460, 2, 989, 1305, 265,
+ 139, 403, 758, 759, 760, 761, 466, 467, 428, 835,
+ 606, -16, 1340, 23, 292, 815, 762, 763, 764, 765,
+ 766, 767, 768, 769, 770, 771, 791, 583, 792, 793,
+ 794, 795, 783, 784, 344, 345, 786, 787, 772, 773,
+ 774, 776, 777, 778, 355, 818, 819, 820, 821, 822,
+ 584, 779, 780, 585, 586, 940, 803, 801, 802, 814,
+ 798, 799, 835, 826, 587, 588, 797, 589, 590, 591,
+ 592, 593, 594, -327, 36, 251, 35, -193, 800, 595,
+ 596, -192, 140, -85, 133, 134, 135, 582, 136, 137,
+ 1059, 751, 752, 753, 138, 38, 129, -110, -110, -584,
+ -32766, -584, -110,-32766,-32766,-32766, 241, 836, -110, 145,
+ 958, 959,-32766,-32766,-32766, 960, -593,-32766, 481, 745,
+ 744, 954, 1035, -593,-32766, 990,-32766,-32766,-32766,-32766,
+ -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 299, 754,
+ 831, 75,-32766,-32766,-32766, 291, 142, 326, 242, -85,
+ 326, 381, 380, 265, 139, 403, 758, 759, 760, 761,
+ 82, 422, 428,-32766, 326,-32766,-32766,-32766,-32766, 815,
+ 762, 763, 764, 765, 766, 767, 768, 769, 770, 771,
+ 791, 583, 792, 793, 794, 795, 783, 784, 344, 345,
+ 786, 787, 772, 773, 774, 776, 777, 778, 355, 818,
+ 819, 820, 821, 822, 584, 779, 780, 585, 586, 254,
+ 803, 801, 802, 814, 798, 799, 832, 725, 587, 588,
+ 797, 589, 590, 591, 592, 593, 594, -327, 83, 84,
+ 85, -193, 800, 595, 596, -192, 149, 775, 746, 747,
+ 748, 749, 750, 151, 751, 752, 753, 788, 789, 37,
+ 482, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, -593, 274, -593,-32766,-32766,
+ -32766,-32766,-32766,-32766, 310, 1088, 127, 312, 110, 737,
+ 1325, 21, 754,-32766,-32766,-32766, -271, 1324,-32766,-32766,
+ 1087,-32766,-32766,-32766,-32766,-32766, 755, 756, 757, 758,
+ 759, 760, 761, 1103,-32766, 824,-32766,-32766, -544, 428,
+ 1035, 323, 815, 762, 763, 764, 765, 766, 767, 768,
+ 769, 770, 771, 791, 813, 792, 793, 794, 795, 783,
+ 784, 785, 812, 786, 787, 772, 773, 774, 776, 777,
+ 778, 817, 818, 819, 820, 821, 822, 823, 779, 780,
+ 781, 782, 1032, 803, 801, 802, 814, 798, 799, 745,
+ 744, 790, 796, 797, 804, 805, 807, 806, 808, 809,
+ 152,-32766, -544, -544, 1035, 800, 811, 810, 50, 51,
+ 52, 512, 53, 54, 1239, 1238, 1240, -544, 55, 56,
+ -110, 57,-32766, 1089, 920, -110, 555, -110, 292, -550,
+ 339, -544, 306, 103, 104, -110, -110, -110, -110, -110,
+ -110, -110, -110, 105, 106, 107, 108, 109, 1244, 274,
+ 379, 380, -590, -366, 715, -366, 340, 58, 59, -590,
+ 422, 110, 60, 369, 61, 248, 249, 62, 63, 64,
+ 65, 66, 67, 68, 69, -543, 28, 267, 70, 444,
+ 513,-32766, 373, -341, 1271, 1272, 514, 1277, 835, 862,
+ 388, 863, 1269, 42, 25, 515, 942, 516, 942, 517,
+ 920, 518, 299, 1035, 519, 520, 1265, 910, 440, 44,
+ 45, 445, 376, 375,-32766, 46, 521, 1022, 1021, 1020,
+ 1023, 367, 338, 390, 1237, 7, 291, 441, 1230, 835,
+ 523, 524, 525, 442, 1244, 356, 1035, 361, 834, -543,
+ -543, 154, 527, 528, 443, 1258, 1259, 1260, 1261, 1255,
+ 1256, 298,-32766,-32766, -543, -547, 1058, 1262, 1257, 291,
+ 1235, 1239, 1238, 1240, 299, 841, -549, 71, -543, 656,
+ 26, 321, 322, 326, -153, -153, -153, 920, 612, 675,
+ 676, 1034, 922, 910,-32766, 286, 710, 835, 155, -153,
+ 828, -153, 862, -153, 863, -153, 150, 406, 156, 1239,
+ 1238, 1240,-32766,-32766,-32766, 374, 1350, 716, 75, 1351,
+ 158, -590, 33, -590, 326, 835, 958, 959, -78, -547,
+ -547, 522, 920,-32766, 377, 378, 896, 954, -110, -110,
+ -110, 32, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 745, 744, -58, -547, -57,
+ -110, -110, 717, 745, 744, -110, 382, 383, 922, 1032,
+ 910, -110, 710, -153, 647, 648, 830, 124, 141, 125,
+ -32766, 1032, 326, 712, 1149, 1151, 48, 130, 131, 144,
+ 159, 1035,-32766, 160, 161, -542, 28, 162, 1237, 920,
+ 163, 299, 920, 1035, 75,-32766,-32766,-32766, 835,-32766,
+ 326,-32766, 1269,-32766, 282, 910,-32766, -87, -84, -78,
+ -73,-32766,-32766,-32766, -4, 920, 282,-32766,-32766, 720,
+ -72, -71, 727,-32766, 419, -70, -69, -68, -67, -66,
+ 287, 286,-32766, -65, -46, 922, 745, 744, 1230, 710,
+ 300, 301, -545, -18, 148, -301, 273, 283, 726, -542,
+ -542, 729, 527, 528, 920, 1258, 1259, 1260, 1261, 1255,
+ 1256, 919, 74, 147, -542, 288, 293, 1262, 1257, 126,
+ -297, 280, 910,-32766, 281, 910, 284, 73, -542, 1237,
+ 975, 690, 322, 326, 710, 285,-32766,-32766,-32766, 332,
+ -32766, 274,-32766, 294,-32766, 936, 110,-32766, 910, 685,
+ 835, -542,-32766,-32766,-32766, 826, -545, -545,-32766,-32766,
+ 146,-32766, -50, 701,-32766, 419, 703, 691, 20, 1118,
+ 374, -545, 435,-32766, 645, 1352, 1276, 297, 557,-32766,
+ 1278, 958, 959, 561, 662, -545, 522, 910, 692, 693,
+ 678, 526, 954, -110, -110, -110, 132, 922, 657, 463,
+ 922, 710, 492, -507, 710,-32766, 1239, 1238, 1240, 663,
+ 679, 1237, 282, 307, 10, -542, -542, 299,-32766,-32766,
+ -32766, 34,-32766, 922,-32766, 955,-32766, 710, -4,-32766,
+ -542, 305, 40, 304,-32766,-32766,-32766, 0, 0,-32766,
+ -32766,-32766, 920, 311, -542, 1237,-32766, 419, 567, 0,
0, 0,-32766,-32766,-32766,-32766,-32766, 0,-32766, 0,
- -32766, 0, 0,-32766, 0, 0, 367, 0,-32766,-32766,
- -32766,-32766, 0, 40,-32766,-32766, 0, 1226, 725, 726,
- -32766, 414, 910, 845,-32766,-32766,-32766, 891,-32766,-32766,
- -32766, 989,-32766, 966, 973,-32766, 963, 974, 889, 482,
- -32766,-32766,-32766,-32766, 961, 1081,-32766,-32766, 1084, 1226,
- 570, 1085,-32766, 414, 1082, 1083,-32766,-32766,-32766, 1089,
- -32766,-32766,-32766, 837,-32766, 900, 1280,-32766, 1298, 1332,
- 646, 722,-32766,-32766,-32766, -576, -575, -574,-32766,-32766,
- -548, -248, -248, -248,-32766, 414, -547, 370, -546, -489,
- 27, 269, 1,-32766, 28, 29, 38, 42, 948, 949,
- 46, 71, 826, 517, 75, 900, 1258, 76, 886, 944,
- -110, -110, -110, 77, 78, 79, 80, 142, 152, 156,
- 244, -247, -247, -247, 324, 352, 353, 370, 354, 355,
- 887, 356, 357, 358, 359, 360, 361, 362, 948, 949,
- 912, 364, 1219, 517, 701, -248, 431, 550, 886, 944,
- -110, -110, -110, -273, -271, -270, 12, 523, 27, 1247,
- 1248, 1249, 1250, 1244, 1245, 13, 14, 15, 17, 401,
- 826, 1251, 1246, 478, 1258, 479,-32766, 486, 489, 490,
- 912, 72, 1226, 1336, 701, -247, 319, 322, 491,-32766,
- -32766,-32766, 492,-32766, 496,-32766, 497,-32766, 498, 505,
- -32766, 568, 688, 1237, 1178,-32766,-32766,-32766, 1256, 1051,
- 1219,-32766,-32766, 1050, 1031, 1214, 1027,-32766, 414, -275,
- -102, 11, 16, 26, 293, 523,-32766, 1247, 1248, 1249,
- 1250, 1244, 1245, 400, 599, 603, 632, 693, 1182, 1251,
- 1246, 1232, 1179, 1311, 1259, 317, 366, 702, 705, 72,
- 709, -509, 710, 712, 319, 322, 713, 714, 715, 719,
- 704, 0, 1338, 848, 847, 856, 0, 938, 981, 855,
- 1337, 937, 935, 936, 939, 1210, 919, 929, 917, 971,
- 972, 630, 1335, 1292, 1281, 1299, 1308, 0, 1195, 0,
- 0, 322
+ -32766, -497, 922,-32766, 8, 24, 710, 371,-32766,-32766,
+ -32766,-32766, 610, 41,-32766,-32766, 938, 1237, 834, 734,
+ -32766, 419, 920, 735,-32766,-32766,-32766, 854,-32766,-32766,
+ -32766, 901,-32766, 999, 976,-32766, 49, 983, 973, 487,
+ -32766,-32766,-32766,-32766, 984, 899,-32766,-32766, 971, 1237,
+ 574, 1092,-32766, 419, 1095, 1096,-32766,-32766,-32766, 1093,
+ -32766,-32766,-32766, 1094,-32766, 910, 1100,-32766, 1266, 846,
+ 1291, 1309,-32766,-32766,-32766, 1343, 650, 320,-32766,-32766,
+ -578, -249, -249, -249,-32766, 419, -577, 374, -576, -550,
+ 28, 267, -549,-32766, -548, -491, 1, 29, 958, 959,
+ 302, 303, 835, 522, 30, 910, 1269, 39, 896, 954,
+ -110, -110, -110, 43, 47, 372, 72, 76, 77, 78,
+ 79, -248, -248, -248, 80, 81, 143, 374, 153, 128,
+ -274, 157, 247, 328, 356, 357, 358, 359, 958, 959,
+ 922, 360, 1230, 522, 710, -249, 361, 362, 896, 954,
+ -110, -110, -110, 363, 364, 365, 366, 528, 28, 1258,
+ 1259, 1260, 1261, 1255, 1256, 368, 436, 554, -511, -272,
+ 835, 1262, 1257, -271, 1269, 13,-32766, 14, 15, 16,
+ 922, 73, 1237, 731, 710, -248, 322, 326, 18,-32766,
+ -32766,-32766, 405,-32766, 483,-32766, 484,-32766, 491, 494,
+ -32766, 495, 496, 497, 501,-32766,-32766,-32766, 502, 503,
+ 1230,-32766,-32766, 510, 572, 696, 1248,-32766, 419, 1189,
+ 1267, 1061, 1060, 1041, 1225, 528,-32766, 1258, 1259, 1260,
+ 1261, 1255, 1256, 1037, -276, -102, 12, 17, 27, 1262,
+ 1257, 296, 404, 603, 607, 636, 702, 1193, 1243, 73,
+ 370, 1190, 1322, 0, 322, 326, 711, 714, 718, 719,
+ 721, 722, 723, 724, 728, 0, 713, 0, 897, 1347,
+ 1349, 857, 856, 865, 948, 991, 864, 1348, 947, 945,
+ 946, 949, 1221, 929, 939, 927, 981, 982, 634, 1346,
+ 1303, 1292, 1310, 1319, 0, 1206, 0, 1270, 0, 326
);
protected $actionCheck = array(
2, 3, 4, 5, 6, 7, 0, 9, 10, 11,
- 12, 13, 9, 10, 11, 31, 9, 10, 11, 9,
- 10, 11, 1, 80, 44, 45, 46, 47, 48, 49,
- 50, 116, 1, 30, 1, 37, 38, 30, 1, 32,
+ 12, 13, 70, 9, 10, 11, 9, 10, 11, 1,
+ 80, 44, 45, 46, 47, 48, 49, 50, 116, 117,
+ 118, 119, 120, 121, 122, 37, 38, 30, 1, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 1, 106, 138, 108, 57, 9, 10, 11, 116,
- 117, 118, 119, 120, 121, 122, 8, 8, 80, 71,
- 72, 73, 74, 75, 76, 77, 161, 30, 80, 32,
- 33, 34, 35, 36, 1, 87, 88, 89, 90, 91,
+ 43, 1, 9, 10, 1, 57, 116, 117, 118, 119,
+ 120, 121, 122, 129, 130, 131, 8, 31, 1, 71,
+ 72, 73, 74, 75, 76, 77, 134, 135, 80, 82,
+ 1, 31, 85, 8, 30, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 8, 128, 129, 130, 131,
- 132, 133, 82, 8, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 159, 156, 9, 10, 11, 150, 151,
- 152, 163, 154, 8, 2, 3, 4, 5, 6, 7,
- 162, 9, 10, 11, 12, 13, 30, 8, 32, 33,
- 34, 35, 36, 37, 38, 9, 10, 11, 128, 8,
- 97, 9, 10, 11, 163, 8, 1, 137, 167, 37,
- 38, 52, 159, 8, 163, 106, 30, 108, 32, 33,
- 34, 35, 30, 1, 32, 33, 34, 1, 158, 57,
- 8, 161, 51, 52, 53, 54, 55, 167, 57, 80,
- 162, 162, 83, 71, 72, 73, 74, 75, 76, 77,
- 69, 31, 80, 9, 10, 11, 85, 80, 14, 87,
+ 122, 123, 124, 125, 126, 1, 128, 129, 130, 131,
+ 132, 133, 82, 80, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 8, 147, 148, 8, 8, 150, 151,
+ 152, 8, 154, 31, 2, 3, 4, 5, 6, 7,
+ 162, 9, 10, 11, 12, 13, 8, 117, 118, 160,
+ 116, 162, 122, 9, 10, 11, 97, 159, 128, 8,
+ 117, 118, 9, 10, 11, 122, 1, 137, 31, 37,
+ 38, 128, 138, 8, 30, 159, 32, 33, 34, 35,
+ 36, 37, 38, 30, 9, 32, 33, 34, 158, 57,
+ 80, 161, 9, 10, 11, 161, 163, 167, 14, 97,
+ 167, 106, 107, 71, 72, 73, 74, 75, 76, 77,
+ 163, 116, 80, 30, 167, 32, 33, 34, 35, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 162,
- 128, 129, 130, 131, 132, 133, 80, 8, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 146, 9, 10,
- 11, 159, 150, 151, 152, 163, 154, 2, 3, 4,
- 5, 6, 7, 156, 9, 10, 11, 12, 13, 30,
- 8, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 8,
+ 128, 129, 130, 131, 132, 133, 156, 163, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 162, 9, 10,
+ 11, 162, 150, 151, 152, 162, 154, 2, 3, 4,
+ 5, 6, 7, 14, 9, 10, 11, 12, 13, 30,
+ 163, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 160, 57, 162, 8, 106,
- 107, 116, 117, 118, 119, 120, 121, 122, 69, 116,
- 117, 118, 57, 163, 30, 122, 9, 10, 11, 163,
- 1, 128, 9, 167, 106, 107, 71, 72, 73, 74,
- 75, 76, 77, 8, 116, 80, 8, 30, 70, 32,
- 33, 8, 87, 88, 89, 90, 91, 92, 93, 94,
+ 51, 52, 53, 54, 55, 160, 57, 162, 9, 10,
+ 11, 9, 10, 11, 8, 159, 14, 8, 69, 163,
+ 1, 101, 57, 9, 10, 11, 162, 8, 116, 30,
+ 1, 32, 33, 34, 35, 36, 71, 72, 73, 74,
+ 75, 76, 77, 123, 30, 80, 32, 33, 70, 80,
+ 138, 8, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 70, 128, 129, 130, 131, 132, 133, 14,
- 31, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 116, 101, 134, 135, 116, 150, 151, 152, 2, 3,
- 4, 5, 6, 7, 80, 37, 38, 149, 12, 13,
- 101, 15, 138, 123, 1, 106, 138, 108, 30, 161,
- 116, 163, 113, 9, 10, 116, 117, 118, 119, 120,
- 121, 122, 123, 8, 1, 161, 134, 135, 1, 161,
- 8, 137, 1, 106, 31, 108, 97, 51, 52, 116,
- 8, 70, 56, 8, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 163, 70, 71, 72, 73,
- 74, 138, 31, 164, 78, 79, 80, 8, 82, 155,
- 156, 157, 86, 87, 88, 89, 122, 91, 164, 93,
- 1, 95, 155, 8, 98, 99, 106, 84, 108, 103,
+ 125, 126, 116, 128, 129, 130, 131, 132, 133, 37,
+ 38, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 14, 116, 134, 135, 138, 150, 151, 152, 2, 3,
+ 4, 5, 6, 7, 155, 156, 157, 149, 12, 13,
+ 101, 15, 137, 164, 1, 106, 85, 108, 30, 161,
+ 8, 163, 113, 49, 50, 116, 117, 118, 119, 120,
+ 121, 122, 123, 51, 52, 53, 54, 55, 1, 57,
+ 106, 107, 1, 106, 31, 108, 8, 51, 52, 8,
+ 116, 69, 56, 8, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 70, 70, 71, 72, 73,
+ 74, 116, 8, 164, 78, 79, 80, 146, 82, 106,
+ 8, 108, 86, 87, 88, 89, 122, 91, 122, 93,
+ 1, 95, 158, 138, 98, 99, 1, 84, 8, 103,
104, 105, 106, 107, 116, 109, 110, 119, 120, 121,
- 122, 115, 116, 8, 80, 134, 135, 84, 122, 82,
- 124, 125, 126, 82, 116, 161, 138, 162, 1, 122,
- 149, 8, 136, 137, 14, 139, 140, 141, 142, 143,
- 144, 145, 161, 160, 163, 162, 138, 151, 152, 161,
- 116, 155, 156, 157, 158, 49, 50, 161, 1, 75,
- 76, 165, 166, 167, 75, 76, 77, 1, 161, 128,
- 16, 137, 159, 84, 137, 1, 163, 14, 137, 90,
- 31, 92, 14, 94, 1, 96, 51, 52, 31, 155,
- 156, 157, 159, 16, 1, 106, 163, 31, 161, 158,
- 14, 8, 161, 14, 167, 31, 117, 118, 167, 82,
- 16, 122, 1, 30, 14, 70, 127, 128, 129, 130,
+ 122, 115, 116, 106, 80, 108, 161, 8, 122, 82,
+ 124, 125, 126, 8, 1, 161, 138, 161, 155, 134,
+ 135, 14, 136, 137, 8, 139, 140, 141, 142, 143,
+ 144, 145, 51, 52, 149, 70, 1, 151, 152, 161,
+ 116, 155, 156, 157, 158, 8, 161, 161, 163, 75,
+ 76, 165, 166, 167, 75, 76, 77, 1, 52, 75,
+ 76, 137, 159, 84, 137, 30, 163, 82, 14, 90,
+ 80, 92, 106, 94, 108, 96, 101, 102, 14, 155,
+ 156, 157, 9, 10, 11, 106, 80, 31, 161, 83,
+ 14, 160, 14, 162, 167, 82, 117, 118, 16, 134,
+ 135, 122, 1, 30, 106, 107, 127, 128, 129, 130,
131, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 37, 38, 129, 130, 131,
- 14, 84, 31, 37, 38, 70, 82, 16, 159, 85,
- 84, 16, 163, 164, 75, 76, 117, 118, 84, 101,
- 102, 122, 106, 107, 59, 60, 70, 128, 106, 107,
- 111, 112, 74, 16, 16, 70, 70, 16, 80, 134,
- 135, 16, 31, 31, 31, 87, 88, 89, 82, 91,
- 163, 93, 86, 95, 167, 84, 98, 37, 31, 116,
- 31, 103, 104, 105, 0, 1, 31, 109, 110, 134,
- 135, 147, 148, 115, 116, 31, 159, 31, 31, 31,
- 163, 138, 124, 31, 149, 159, 37, 38, 122, 163,
- 134, 135, 70, 159, 31, 35, 70, 163, 163, 134,
- 135, 31, 136, 137, 161, 139, 140, 141, 142, 143,
- 144, 31, 154, 160, 149, 162, 31, 151, 152, 163,
- 31, 31, 31, 74, 31, 31, 38, 161, 163, 80,
- 159, 35, 166, 167, 163, 35, 87, 88, 89, 35,
- 91, 35, 93, 35, 95, 35, 37, 98, 84, 37,
- 37, 69, 103, 104, 105, 57, 134, 135, 109, 110,
- 134, 135, 31, 77, 115, 116, 82, 70, 85, 82,
- 106, 149, 108, 124, 96, 149, 97, 113, 83, 80,
- 113, 117, 118, 114, 92, 163, 122, 85, 132, 163,
- 89, 127, 128, 129, 130, 131, 31, 90, 132, 94,
- 97, 128, 137, 146, 133, 74, 153, 146, 97, 154,
- 159, 80, 153, 155, 150, 100, 100, 149, 87, 88,
- 89, 149, 91, 159, 93, 149, 95, 163, 164, 98,
- 149, -1, 158, -1, 103, 104, 105, 160, 163, 74,
- 109, 110, 1, -1, -1, 80, 115, 116, -1, -1,
+ 25, 26, 27, 28, 29, 37, 38, 16, 163, 16,
+ 117, 118, 31, 37, 38, 122, 106, 107, 159, 116,
+ 84, 128, 163, 164, 111, 112, 156, 16, 163, 16,
+ 137, 116, 167, 163, 59, 60, 70, 16, 16, 16,
+ 16, 138, 74, 16, 16, 70, 70, 16, 80, 1,
+ 16, 158, 1, 138, 161, 87, 88, 89, 82, 91,
+ 167, 93, 86, 95, 161, 84, 98, 31, 31, 31,
+ 31, 103, 104, 105, 0, 1, 161, 109, 110, 31,
+ 31, 31, 31, 115, 116, 31, 31, 31, 31, 31,
+ 37, 30, 124, 31, 31, 159, 37, 38, 122, 163,
+ 134, 135, 70, 31, 31, 35, 31, 31, 31, 134,
+ 135, 31, 136, 137, 1, 139, 140, 141, 142, 143,
+ 144, 31, 154, 31, 149, 37, 37, 151, 152, 163,
+ 35, 35, 84, 74, 35, 84, 35, 161, 163, 80,
+ 159, 80, 166, 167, 163, 35, 87, 88, 89, 35,
+ 91, 57, 93, 37, 95, 38, 69, 98, 84, 77,
+ 82, 70, 103, 104, 105, 80, 134, 135, 109, 110,
+ 70, 85, 31, 80, 115, 116, 92, 116, 97, 82,
+ 106, 149, 108, 124, 113, 83, 146, 113, 85, 137,
+ 146, 117, 118, 89, 96, 163, 122, 84, 137, 138,
+ 94, 127, 128, 129, 130, 131, 31, 159, 90, 97,
+ 159, 163, 97, 149, 163, 74, 155, 156, 157, 100,
+ 100, 80, 161, 114, 150, 134, 135, 158, 87, 88,
+ 89, 163, 91, 159, 93, 128, 95, 163, 164, 98,
+ 149, 133, 159, 132, 103, 104, 105, -1, -1, 74,
+ 109, 110, 1, 132, 163, 80, 115, 116, 153, -1,
-1, -1, 87, 88, 89, 124, 91, -1, 93, -1,
- 95, -1, -1, 98, -1, -1, 149, -1, 103, 104,
- 105, 74, -1, 159, 109, 110, -1, 80, 159, 159,
+ 95, 149, 159, 98, 149, 149, 163, 149, 103, 104,
+ 105, 74, 153, 159, 109, 110, 154, 80, 155, 159,
115, 116, 1, 159, 87, 88, 89, 159, 91, 124,
- 93, 159, 95, 159, 159, 98, 159, 159, 159, 102,
+ 93, 159, 95, 159, 159, 98, 70, 159, 159, 102,
103, 104, 105, 74, 159, 159, 109, 110, 159, 80,
81, 159, 115, 116, 159, 159, 87, 88, 89, 159,
- 91, 124, 93, 160, 95, 84, 160, 98, 160, 160,
- 160, 164, 103, 104, 105, 161, 161, 161, 109, 110,
+ 91, 124, 93, 159, 95, 84, 159, 98, 160, 160,
+ 160, 160, 103, 104, 105, 160, 160, 163, 109, 110,
161, 100, 101, 102, 115, 116, 161, 106, 161, 161,
70, 71, 161, 124, 161, 161, 161, 161, 117, 118,
- 161, 161, 82, 122, 161, 84, 86, 161, 127, 128,
- 129, 130, 131, 161, 161, 161, 161, 161, 161, 161,
- 161, 100, 101, 102, 161, 161, 161, 106, 161, 161,
- 164, 161, 161, 161, 161, 161, 161, 161, 117, 118,
+ 134, 135, 82, 122, 161, 84, 86, 161, 127, 128,
+ 129, 130, 131, 161, 161, 149, 161, 161, 161, 161,
+ 161, 100, 101, 102, 161, 161, 161, 106, 161, 163,
+ 162, 161, 161, 161, 161, 161, 161, 161, 117, 118,
159, 161, 122, 122, 163, 164, 161, 161, 127, 128,
- 129, 130, 131, 162, 162, 162, 162, 137, 70, 139,
- 140, 141, 142, 143, 144, 162, 162, 162, 162, 162,
+ 129, 130, 131, 161, 161, 161, 161, 137, 70, 139,
+ 140, 141, 142, 143, 144, 161, 161, 161, 165, 162,
82, 151, 152, 162, 86, 162, 74, 162, 162, 162,
159, 161, 80, 164, 163, 164, 166, 167, 162, 87,
88, 89, 162, 91, 162, 93, 162, 95, 162, 162,
@@ -635,19 +635,19 @@ class Php8 extends \PhpParser\ParserAbstract
122, 109, 110, 162, 162, 162, 162, 115, 116, 162,
162, 162, 162, 162, 162, 137, 124, 139, 140, 141,
142, 143, 144, 162, 162, 162, 162, 162, 162, 151,
- 152, 162, 162, 162, 166, 163, 163, 163, 163, 161,
- 163, 165, 163, 163, 166, 167, 163, 163, 163, 163,
- 163, -1, 164, 164, 164, 164, -1, 164, 164, 164,
+ 152, 162, 162, 162, 162, 162, 162, 162, 162, 161,
+ 163, 162, 162, -1, 166, 167, 163, 163, 163, 163,
+ 163, 163, 163, 163, 163, -1, 163, -1, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 164, 164, 164, 164, -1, 165, -1,
- -1, 167
+ 164, 164, 164, 164, -1, 165, -1, 166, -1, 167
);
protected $actionBase = array(
- 0, -2, 152, 549, 764, 941, 981, 587, 384, -12,
- 856, 617, 634, 634, 671, 634, 473, 626, 305, 305,
- -57, 305, 305, 305, 493, 493, 493, 658, 658, 658,
- 658, 749, 749, 897, 897, 929, 865, 831, 1062, 1062,
+ 0, -2, 152, 549, 764, 941, 981, 751, 555, 309,
+ 560, 864, 626, 738, 738, 741, 738, 473, 671, 783,
+ -60, 305, 305, 783, 305, 803, 803, 803, 658, 658,
+ 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
@@ -660,66 +660,67 @@ class Php8 extends \PhpParser\ParserAbstract
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
- 1062, 1062, 33, -16, 83, 686, 1022, 1036, 1032, 1039,
- 1020, 1019, 1031, 1033, 1040, 1078, 1079, 794, 1080, 1081,
- 1077, 1082, 1034, 870, 1021, 1035, 289, 289, 289, 289,
+ 1062, 1062, 1062, 1062, 18, 36, 79, 648, 1039, 1045,
+ 1041, 1046, 1035, 1034, 1040, 1042, 1049, 1085, 1086, 782,
+ 1087, 1088, 1084, 1089, 1043, 876, 1036, 1044, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 363, 224, 474, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 3, 3, 3, 666, 666,
- 357, 172, 980, 166, 1048, 1048, 1048, 1048, 1048, 1048,
- 1048, 1048, 1048, 665, 47, 136, 136, 7, 7, 7,
- 7, 7, 369, -20, -20, -20, -20, 501, 448, 50,
- 643, 497, 350, -54, 566, 334, 243, 338, 338, 468,
- 468, -85, -85, 468, 468, 468, 161, 161, 393, 393,
- 393, 393, 318, 441, 397, 151, 765, 206, 206, 206,
- 206, 765, 765, 765, 765, 761, 1038, 765, 765, 765,
- 635, 722, 722, 726, 595, 595, 722, 450, 802, 624,
- 450, 624, 21, 139, 364, 599, 268, 443, 364, 362,
- 656, 653, 185, 758, 616, 758, 1018, 424, 783, 467,
- 763, 713, 860, 1057, 1041, 815, 1075, 816, 1076, 568,
- 605, 712, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
- 1017, 1017, 1017, 1084, 428, 1018, 157, 1084, 1084, 1084,
- 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
- 619, 157, 544, 639, 157, 810, 428, 33, 772, 33,
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 770,
- 200, 33, -16, 31, 31, 142, 37, 31, 31, 31,
- 31, 33, 33, 33, 616, 798, 753, 622, 759, 117,
- 798, 798, 798, 409, 58, 425, 59, 760, 796, 89,
- 799, 799, 787, 891, 891, 799, 784, 799, 787, 899,
- 799, 799, 891, 891, 774, 171, 505, 378, 492, 529,
- 891, 312, 799, 799, 799, 799, 766, 545, 799, 279,
- 177, 799, 799, 766, 756, 789, 125, 771, 891, 891,
- 891, 766, 485, 771, 771, 771, 819, 820, 767, 785,
- 375, 340, 583, 159, 788, 785, 785, 799, 502, 767,
- 785, 767, 785, 755, 785, 785, 785, 767, 785, 784,
- 383, 785, 717, 565, 145, 785, 6, 900, 903, 609,
- 906, 895, 912, 945, 913, 914, 1044, 888, 919, 896,
- 915, 946, 894, 893, 793, 614, 637, 776, 768, 887,
- 782, 782, 782, 879, 782, 782, 782, 782, 782, 782,
- 782, 782, 614, 777, 817, 773, 801, 925, 654, 691,
- 999, 757, 926, 1046, 1083, 924, 1001, 916, 751, 695,
- 966, 927, 867, 1042, 928, 930, 967, 1002, 824, 1006,
- 979, 797, 1058, 1059, 863, 932, 1045, 782, 900, 914,
- 711, 896, 915, 894, 893, 752, 748, 746, 747, 744,
- 735, 727, 729, 780, 1007, 876, 874, 866, 931, 885,
- 614, 868, 954, 775, 971, 973, 1043, 803, 795, 869,
- 1060, 933, 934, 935, 1047, 1011, 1049, 814, 963, 951,
- 975, 811, 1061, 976, 977, 986, 990, 1050, 1063, 1053,
- 875, 1054, 828, 807, 952, 778, 1064, 580, 806, 808,
- 813, 940, 623, 923, 1055, 1065, 1066, 992, 994, 996,
- 1067, 1068, 917, 832, 964, 805, 965, 953, 834, 835,
- 628, 812, 1012, 800, 804, 809, 646, 649, 1069, 1070,
- 1071, 918, 790, 786, 837, 838, 1013, 720, 1014, 1072,
- 660, 839, 718, 1073, 1000, 721, 725, 792, 1056, 781,
- 769, 779, 936, 791, 845, 1074, 846, 849, 852, 997,
- 855, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 289, 289, 289, 289, 289, 195, 342, 43, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 643, 643,
+ 643, 666, 666, 354, 173, 980, 203, 1048, 1048, 1048,
+ 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164,
+ 7, 7, 7, 7, 7, 50, 369, 583, -23, -23,
+ -23, -23, 448, 605, 497, 260, 397, 434, 54, 394,
+ 593, 593, 316, 316, 415, 415, 316, 316, 316, 442,
+ 442, 252, 252, 252, 252, 318, 455, 433, 391, 742,
+ 53, 53, 53, 53, 742, 742, 742, 742, 734, 1091,
+ 742, 742, 742, 722, 781, 781, 926, 551, 551, 781,
+ 536, 793, -3, 536, 63, -3, 67, 576, 335, 797,
+ 115, 9, 335, 535, 656, 501, 185, 823, 568, 823,
+ 1033, 424, 776, 426, 753, 729, 867, 1063, 1050, 809,
+ 1082, 810, 1083, -66, -58, 728, 1032, 1032, 1032, 1032,
+ 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1092, 402, 1033,
+ 130, 1092, 1092, 1092, 402, 402, 402, 402, 402, 402,
+ 402, 402, 402, 402, 603, 130, 544, 554, 130, 804,
+ 402, 18, 812, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 762, 157, 18, 36, 124, 124, 196,
+ 37, 124, 124, 124, 124, 18, 18, 18, 18, 568,
+ 784, 795, 600, 819, 143, 784, 784, 784, 122, 135,
+ 204, 139, 760, 785, 467, 775, 775, 787, 895, 895,
+ 775, 768, 775, 787, 913, 775, 775, 895, 895, 759,
+ 158, 550, 472, 524, 569, 895, 346, 775, 775, 775,
+ 775, 811, 575, 775, 271, 171, 775, 775, 811, 801,
+ 766, 58, 798, 895, 895, 895, 811, 505, 798, 798,
+ 798, 820, 824, 761, 765, 383, 349, 607, 138, 807,
+ 765, 765, 775, 532, 761, 765, 761, 765, 822, 765,
+ 765, 765, 761, 765, 768, 498, 765, 714, 586, 75,
+ 765, 6, 915, 916, 726, 917, 906, 918, 965, 919,
+ 923, 1053, 894, 931, 912, 924, 966, 903, 896, 780,
+ 701, 703, 815, 754, 893, 777, 777, 777, 888, 777,
+ 777, 777, 777, 777, 777, 777, 777, 701, 868, 818,
+ 794, 934, 711, 712, 1012, 730, 1064, 963, 1090, 933,
+ 1014, 925, 773, 713, 986, 935, 979, 874, 936, 940,
+ 990, 1017, 828, 1018, 1065, 790, 1066, 1067, 869, 946,
+ 1054, 777, 915, 923, 727, 912, 924, 903, 896, 752,
+ 748, 746, 747, 745, 744, 739, 740, 763, 1019, 887,
+ 879, 870, 945, 891, 701, 871, 973, 758, 992, 994,
+ 1047, 802, 792, 875, 1068, 952, 953, 954, 1055, 1020,
+ 1056, 814, 975, 928, 996, 805, 1069, 997, 999, 1000,
+ 1001, 1057, 1070, 1058, 885, 1059, 832, 808, 967, 788,
+ 1071, 299, 791, 800, 806, 964, 436, 932, 1060, 1072,
+ 1073, 1002, 1006, 1007, 1074, 1075, 927, 834, 976, 796,
+ 977, 971, 835, 838, 577, 779, 1021, 786, 789, 778,
+ 624, 634, 1076, 1077, 1078, 930, 767, 772, 839, 845,
+ 1022, 743, 1031, 1079, 646, 846, 717, 1080, 1013, 718,
+ 721, 652, 683, 681, 724, 774, 1061, 816, 799, 771,
+ 955, 721, 770, 849, 1081, 852, 855, 856, 1011, 860,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 456, 456, 456, 456, 456, 456, 305, 305, 305,
- 305, 456, 456, 456, 456, 456, 456, 456, 0, 0,
- 305, 0, 0, 0, 456, 456, 456, 456, 456, 456,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 456, 456, 456, 456, 456, 456, 305, 305, 305, 305,
+ 305, 456, 456, 456, 456, 456, 456, 456, 305, 305,
+ 0, 0, 305, 0, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
@@ -733,183 +734,186 @@ class Php8 extends \PhpParser\ParserAbstract
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
- 456, 456, 289, 289, 289, 289, 289, 289, 289, 289,
+ 456, 456, 456, 289, 289, 289, 289, 289, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 289, 289, 289, 289, 0, 0, 0, 0,
+ 289, 289, 289, 289, 289, 289, 289, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 289, 289, 289, 289, 289, 289, 289, 289,
+ 0, 0, 0, 0, 289, 289, 289, 289, 289, 289,
289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 289, 289, 289, 289, 289, 289, 494, 494,
- 289, 289, 494, 289, 494, 494, 494, 494, 494, 494,
- 494, 494, 494, 0, 289, 289, 289, 289, 289, 289,
- 289, 289, 774, 161, 161, 161, 161, 494, 494, 494,
- 494, 494, 235, 235, 161, 494, 774, 494, 494, 494,
- 494, 494, 494, 494, 494, 494, 0, 0, 494, 494,
- 494, 494, 0, 0, 157, 624, 494, 784, 784, 784,
- 784, 494, 494, 494, 494, 624, 624, 494, 494, 494,
- 0, 0, 0, 0, 161, 161, 0, 157, 624, 0,
- 157, 0, 784, 784, 494, 0, 774, 202, 494, 0,
- 0, 0, 0, 157, 784, 157, 428, 799, 624, 799,
- 428, 428, 31, 33, 202, 618, 618, 618, 618, 0,
- 0, 616, 774, 774, 774, 774, 774, 774, 774, 774,
- 774, 774, 774, 784, 0, 774, 0, 784, 784, 784,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 784, 0, 0, 891, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 899,
- 0, 0, 0, 0, 0, 0, 784, 0, 0, 0,
- 0, 0, 0, 0, 0, 782, 803, 0, 803, 0,
- 782, 782, 782, 0, 0, 0, 0, 812, 720
+ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
+ 494, 494, 289, 289, 494, 289, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 0, 289, 289, 289, 289,
+ 289, 289, 289, 289, 494, 759, 494, 442, 442, 442,
+ 442, 494, 494, 494, -88, -88, 442, 494, 63, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 0, 0,
+ 494, 494, 494, 494, 0, 0, 130, -3, 494, 768,
+ 768, 768, 768, 494, 494, 494, 494, -3, -3, 494,
+ 494, 494, 0, 0, 0, 0, 442, 442, 0, 130,
+ -3, 0, 130, 0, 0, 768, 768, 494, 63, 759,
+ 359, 494, 0, 0, 0, 0, 130, 768, 130, 402,
+ 775, -3, 775, 402, 402, 124, 18, 359, 545, 545,
+ 545, 545, 0, 0, 568, 759, 759, 759, 759, 759,
+ 759, 759, 759, 759, 759, 759, 768, 0, 759, 0,
+ 768, 768, 768, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 768, 0,
+ 0, 895, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 913, 0, 0, 0, 0, 0, 0, 768,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 777,
+ 802, 0, 802, 0, 777, 777, 777, 0, 0, 0,
+ 0, 779, 743
);
protected $actionDefault = array(
3,32767, 102,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767, 100,
- 32767,32767,32767,32767,32767,32767,32767, 594, 594, 594,
- 594,32767,32767, 252, 102,32767,32767, 467, 384, 384,
- 384,32767,32767, 538, 538, 538, 538, 538, 538,32767,
- 32767,32767,32767,32767,32767, 467,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767, 100,32767,32767,32767,32767, 596, 596,
+ 596, 596,32767,32767, 253, 102,32767,32767, 469, 386,
+ 386, 386,32767,32767, 540, 540, 540, 540, 540, 540,
+ 32767,32767,32767,32767,32767,32767, 469,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 100,
+ 32767,32767,32767, 36, 7, 8, 10, 11, 49, 17,
+ 323,32767,32767,32767,32767, 102,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767, 589,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767, 100,32767,
- 32767,32767, 36, 7, 8, 10, 11, 49, 17, 322,
- 32767,32767,32767,32767, 102,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767, 473, 452,
+ 453, 455, 456, 385, 541, 595, 326, 592, 384, 145,
+ 338, 328, 241, 329, 257, 474, 258, 475, 478, 479,
+ 214, 286, 381, 149, 150, 416, 470, 418, 468, 472,
+ 417, 391, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 389, 390, 471, 449, 448,
+ 447,32767,32767, 414, 415,32767, 419,32767,32767,32767,
+ 32767,32767,32767,32767, 102,32767, 388, 422, 420, 421,
+ 438, 439, 436, 437, 440,32767,32767,32767, 441, 442,
+ 443, 444, 315,32767,32767, 365, 363, 423, 315, 111,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 429,
+ 430,32767,32767,32767,32767, 534, 446,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767, 587,32767,32767,32767,32767,
+ 102,32767, 100, 536, 411, 413, 503, 424, 425, 392,
+ 32767, 510,32767, 102,32767, 512,32767,32767,32767,32767,
+ 32767,32767,32767, 535,32767, 542, 542,32767, 496, 100,
+ 194,32767,32767,32767, 194, 194,32767,32767,32767,32767,
+ 32767,32767,32767,32767, 603, 496, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110,32767, 194, 110,
+ 32767,32767,32767, 100, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 189,32767, 267, 269, 102, 557,
+ 194,32767, 515,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767, 508,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 496,
+ 434, 138,32767, 138, 542, 426, 427, 428, 498, 542,
+ 542, 542, 311, 288,32767,32767,32767,32767, 513, 513,
+ 100, 100, 100, 100, 508,32767,32767,32767,32767, 111,
+ 99, 99, 99, 99, 99, 103, 101,32767,32767,32767,
+ 32767, 222, 99,32767, 101, 101,32767,32767, 222, 224,
+ 211, 101, 226,32767, 561, 562, 222, 101, 226, 226,
+ 226, 246, 246, 485, 317, 101, 99, 101, 101, 196,
+ 317, 317,32767, 101, 485, 317, 485, 317, 198, 317,
+ 317, 317, 485, 317,32767, 101, 317, 213, 99, 99,
+ 317,32767,32767,32767, 498,32767,32767,32767,32767,32767,
+ 32767,32767, 221,32767,32767,32767,32767,32767,32767,32767,
+ 32767, 529,32767, 546, 559, 432, 433, 435, 544, 457,
+ 458, 459, 460, 461, 462, 463, 465, 591,32767, 502,
+ 32767,32767,32767, 337,32767, 601,32767, 601,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767, 471, 450, 451, 453,
- 454, 383, 539, 593, 325, 590, 382, 145, 337, 327,
- 240, 328, 256, 472, 257, 473, 476, 477, 213, 285,
- 379, 149, 414, 468, 416, 466, 470, 415, 389, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
- 406, 407, 387, 388, 469, 447, 446, 445,32767,32767,
- 412, 413,32767, 417,32767,32767,32767,32767,32767,32767,
- 32767, 102,32767, 386, 420, 418, 419, 436, 437, 434,
- 435, 438,32767, 439, 440, 441, 442,32767, 314,32767,
- 32767,32767, 363, 361, 421, 314, 111,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767, 427, 428,32767,32767,
- 32767,32767, 532, 444,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767, 102,32767, 100,
- 534, 409, 411, 501, 422, 423, 390,32767, 508,32767,
- 102, 510,32767,32767,32767,32767,32767,32767,32767, 533,
- 32767, 540, 540,32767, 494, 100, 193,32767,32767,32767,
- 193, 193,32767,32767,32767,32767,32767,32767,32767,32767,
- 601, 494, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110,32767, 193, 110,32767,32767,32767, 100,
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
- 188,32767, 266, 268, 102, 555, 193,32767, 513,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767, 506,
+ 32767,32767,32767,32767, 602,32767, 542,32767,32767,32767,
+ 32767, 431, 9, 74, 491, 42, 43, 51, 57, 519,
+ 520, 521, 522, 516, 517, 523, 518,32767,32767, 524,
+ 567,32767,32767, 543, 594,32767,32767,32767,32767,32767,
+ 32767, 138,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767, 529,32767, 136,32767,32767,32767,32767,
+ 32767,32767,32767,32767, 525,32767,32767,32767, 542,32767,
+ 32767,32767,32767, 313, 310,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767, 494, 432, 138,32767, 138, 540,
- 424, 425, 426, 496, 540, 540, 540, 310, 287,32767,
- 32767,32767,32767, 511, 511, 100, 100, 100, 100, 506,
- 32767,32767,32767,32767, 111, 99, 99, 99, 99, 99,
- 103, 101,32767,32767,32767,32767, 221, 99,32767, 101,
- 101,32767,32767, 221, 223, 210, 101, 225,32767, 559,
- 560, 221, 101, 225, 225, 225, 245, 245, 483, 316,
- 101, 99, 101, 101, 195, 316, 316,32767, 101, 483,
- 316, 483, 316, 197, 316, 316, 316, 483, 316,32767,
- 101, 316, 212, 99, 99, 316,32767,32767,32767, 496,
- 32767,32767,32767,32767,32767,32767,32767, 220,32767,32767,
- 32767,32767,32767,32767,32767,32767, 527,32767, 544, 557,
- 430, 431, 433, 542, 455, 456, 457, 458, 459, 460,
- 461, 463, 589,32767, 500,32767,32767,32767,32767, 336,
- 32767, 599,32767, 599,32767,32767,32767,32767,32767,32767,
+ 32767, 542,32767,32767,32767,32767,32767, 290,32767, 307,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 600,32767, 540,32767,32767,32767,32767, 429, 9, 74,
- 489, 42, 43, 51, 57, 517, 518, 519, 520, 514,
- 515, 521, 516,32767,32767, 522, 565,32767,32767, 541,
- 592,32767,32767,32767,32767,32767,32767, 138,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767, 527,
- 32767, 136,32767,32767,32767,32767,32767,32767,32767,32767,
- 523,32767,32767,32767, 540,32767,32767,32767,32767, 312,
- 309,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767, 540,32767,32767,
- 32767,32767,32767, 289,32767, 306,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767, 285,32767,32767, 380,
+ 498, 293, 295, 296,32767,32767,32767,32767, 359,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767, 284,32767,32767, 378,32767,32767,32767,32767,
- 357,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 151, 151, 3, 3, 339, 151, 151, 151, 339,
- 339, 151, 339, 339, 339, 151, 151, 151, 151, 151,
- 151, 278, 183, 260, 263, 245, 245, 151, 349, 151
+ 152, 152, 3, 3, 340, 152, 152, 152, 340, 340,
+ 152, 340, 340, 340, 152, 152, 152, 152, 152, 152,
+ 279, 184, 261, 264, 246, 246, 152, 351, 152
);
protected $goto = array(
- 194, 194, 689, 1054, 425, 657, 617, 654, 316, 697,
- 419, 311, 312, 331, 572, 424, 332, 426, 634, 650,
- 651, 843, 668, 669, 670, 820, 165, 165, 165, 165,
- 218, 195, 191, 191, 175, 177, 213, 191, 191, 191,
- 191, 191, 192, 192, 192, 192, 192, 192, 186, 187,
- 188, 189, 190, 215, 213, 216, 530, 531, 415, 532,
- 534, 535, 536, 537, 538, 539, 540, 541, 1124, 166,
- 167, 168, 193, 169, 170, 171, 164, 172, 173, 174,
- 176, 212, 214, 217, 235, 240, 241, 243, 254, 255,
- 256, 257, 258, 259, 260, 261, 263, 264, 265, 266,
- 274, 286, 287, 314, 315, 420, 421, 422, 577, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
- 230, 231, 232, 233, 178, 234, 179, 196, 197, 198,
- 236, 186, 187, 188, 189, 190, 215, 1124, 199, 180,
- 181, 182, 200, 196, 183, 237, 201, 199, 163, 202,
- 203, 184, 204, 205, 206, 185, 207, 208, 209, 210,
- 211, 846, 391, 394, 556, 597, 601, 346, 276, 276,
- 276, 276, 844, 596, 619, 619, 859, 964, 1257, 824,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1275,
- 1275, 871, 877, 1275, 858, 1275, 1275, 1275, 1275, 1275,
- 1275, 1275, 1275, 1275, 903, 851, 904, 899, 894, 895,
- 908, 852, 896, 849, 897, 898, 850, 818, 824, 902,
- 824, 1095, 1096, 872, 860, 1059, 1063, 350, 569, 1075,
- 1071, 1072, 473, 344, 967, 1273, 1273, 350, 350, 1273,
- 475, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
- 350, 350, 418, 350, 607, 1342, 389, 839, 957, 460,
- 460, 1225, 1023, 1225, 1023, 1225, 549, 1315, 460, 1023,
- 350, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
- 1104, 876, 1023, 1023, 1023, 1023, 1307, 1307, 1307, 1307,
- 1225, 5, 427, 6, 985, 1225, 1225, 1225, 1225, 427,
- 567, 1225, 1225, 1225, 656, 1030, 1030, 839, 1121, 555,
- 547, 1173, 661, 1041, 1037, 1038, 432, 1286, 915, 470,
- 1300, 1301, 916, 533, 533, 452, 931, 533, 931, 533,
- 533, 533, 533, 533, 533, 533, 533, 533, 682, 337,
- 547, 555, 564, 565, 339, 575, 598, 612, 613, 544,
- 494, 544, 495, 544, 678, 22, 562, 333, 501, 662,
- 724, 633, 635, 1029, 1028, 655, 249, 249, 549, 679,
- 683, 999, 687, 695, 995, 956, 405, 696, 450, 349,
- 349, 349, 349, 958, 958, 958, 958, 321, 306, 450,
- 952, 959, 247, 247, 247, 247, 242, 250, 1326, 1326,
- 864, 842, 542, 542, 542, 542, 947, 600, 988, 962,
- 962, 960, 962, 723, 1326, 347, 348, 1032, 1033, 548,
- 559, 546, 997, 992, 548, 839, 559, 444, 836, 392,
- 456, 1218, 444, 1297, 444, 1297, 398, 1297, 627, 629,
- 631, 463, 576, 464, 465, 1302, 1303, 869, 573, 610,
- 1333, 1334, 605, 620, 623, 624, 625, 626, 647, 648,
- 649, 699, 861, 1309, 1309, 1309, 1309, 611, 1216, 1060,
- 403, 404, 1007, 471, 1064, 666, 867, 667, 727, 407,
- 408, 409, 873, 680, 595, 1088, 410, 700, 1293, 969,
- 342, 1106, 428, 0, 1220, 686, 686, 0, 502, 692,
- 1086, 677, 941, 0, 0, 1018, 1034, 1035, 1204, 933,
- 0, 0, 1205, 1208, 934, 1209, 0, 444, 444, 444,
- 444, 444, 444, 444, 444, 444, 444, 444, 0, 1062,
- 444, 920, 1111, 1295, 1295, 1062, 0, 0, 615, 0,
- 0, 0, 0, 0, 1004, 1325, 1325, 0, 1221, 1222,
- 0, 0, 863, 0, 660, 983, 834, 0, 0, 0,
- 857, 1325, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1215, 0, 1223, 1283, 1284, 0, 1328, 0,
+ 196, 196, 1033, 1064, 697, 430, 661, 621, 658, 319,
+ 706, 424, 314, 315, 335, 576, 429, 336, 431, 638,
+ 654, 655, 852, 672, 673, 674, 853, 167, 167, 167,
+ 167, 221, 197, 193, 193, 177, 179, 216, 193, 193,
+ 193, 193, 193, 194, 194, 194, 194, 194, 194, 188,
+ 189, 190, 191, 192, 218, 216, 219, 535, 536, 420,
+ 537, 539, 540, 541, 542, 543, 544, 545, 546, 1135,
+ 168, 169, 170, 195, 171, 172, 173, 166, 174, 175,
+ 176, 178, 215, 217, 220, 238, 243, 244, 246, 257,
+ 258, 259, 260, 261, 262, 263, 264, 268, 269, 270,
+ 271, 277, 289, 290, 317, 318, 425, 426, 427, 581,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 180, 237, 181, 198, 199,
+ 200, 239, 188, 189, 190, 191, 192, 218, 1135, 201,
+ 182, 183, 184, 202, 198, 185, 240, 203, 201, 165,
+ 204, 205, 186, 206, 207, 208, 187, 209, 210, 211,
+ 212, 213, 214, 855, 478, 279, 279, 279, 279, 623,
+ 623, 974, 480, 1268, 600, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1286, 1286, 599, 1099, 1286, 709,
+ 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 507,
+ 700, 418, 1097, 1337, 1337, 559, 551, 860, 827, 909,
+ 904, 905, 918, 861, 906, 858, 907, 908, 859, 457,
+ 1337, 912, 353, 353, 353, 353, 395, 398, 560, 601,
+ 605, 1086, 1081, 1082, 1083, 341, 551, 559, 568, 569,
+ 343, 579, 602, 616, 617, 407, 408, 913, 868, 914,
+ 670, 22, 671, 350, 411, 412, 413, 423, 684, 611,
+ 1236, 414, 1236, 880, 439, 346, 867, 1033, 1033, 1236,
+ 833, 886, 5, 1033, 6, 1033, 1033, 1033, 1033, 1033,
+ 1033, 1033, 1033, 1033, 573, 848, 1033, 1033, 1033, 1033,
+ 1318, 1318, 1318, 1318, 1236, 348, 930, 1122, 1326, 1236,
+ 1236, 1236, 1236, 619, 995, 1236, 1236, 1236, 393, 1014,
+ 833, 354, 833, 571, 252, 252, 499, 872, 500, 664,
+ 993, 354, 354, 925, 506, 866, 660, 926, 475, 1311,
+ 1312, 941, 1132, 941, 354, 354, 848, 1226, 354, 1057,
+ 1353, 250, 250, 250, 250, 245, 253, 1184, 549, 437,
+ 549, 553, 1284, 1284, 682, 354, 1284, 549, 1284, 1284,
+ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 538, 538, 1336,
+ 1336, 538, 666, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 455, 966, 409, 705, 1336, 968, 968, 968,
+ 968, 337, 566, 455, 962, 969, 733, 637, 639, 1106,
+ 1107, 659, 1297, 1339, 957, 683, 687, 1009, 695, 704,
+ 1005, 609, 624, 627, 628, 629, 630, 651, 652, 653,
+ 708, 1039, 1038, 686, 845, 552, 563, 449, 449, 449,
+ 552, 1308, 563, 1308, 870, 396, 461, 631, 633, 635,
+ 1308, 547, 547, 547, 547, 873, 604, 468, 580, 469,
+ 470, 851, 402, 878, 553, 848, 1344, 1345, 1227, 998,
+ 972, 972, 970, 972, 732, 1017, 1320, 1320, 1320, 1320,
+ 1042, 1043, 550, 1007, 1002, 325, 309, 881, 869, 1069,
+ 1073, 432, 876, 615, 324, 275, 324, 432, 977, 1231,
+ 465, 465, 1304, 1040, 1040, 736, 1313, 1314, 476, 465,
+ 665, 1051, 1047, 1048, 1070, 351, 352, 1036, 1036, 681,
+ 951, 1074, 967, 1028, 1044, 1045, 882, 1229, 449, 449,
+ 449, 449, 449, 449, 449, 449, 449, 449, 449, 577,
+ 614, 449, 0, 1072, 1115, 885, 1117, 1306, 1306, 1072,
+ 979, 0, 1215, 943, 1232, 1233, 1216, 1219, 944, 1220,
+ 694, 0, 843, 829, 255, 255, 0, 0, 0, 0,
+ 0, 0, 694, 0, 0, 0, 694, 0, 0, 0,
+ 1234, 1294, 1295, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 252, 252, 0, 0, 0, 0, 0,
- 0, 0, 0, 1002, 1002, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 272, 0,
- 0, 0, 0, 545, 0, 545
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1012, 1012
);
protected $gotoCheck = array(
- 42, 42, 72, 126, 65, 65, 55, 55, 65, 9,
- 65, 65, 65, 65, 65, 65, 65, 65, 65, 85,
- 85, 26, 85, 85, 85, 7, 42, 42, 42, 42,
+ 42, 42, 72, 126, 72, 65, 65, 55, 55, 65,
+ 9, 65, 65, 65, 65, 65, 65, 65, 65, 65,
+ 85, 85, 26, 85, 85, 85, 27, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
@@ -923,99 +927,100 @@ class Php8 extends \PhpParser\ParserAbstract
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 15, 58, 58, 58, 58, 58, 96, 23, 23,
- 23, 23, 27, 129, 107, 107, 35, 49, 107, 12,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 168,
- 168, 35, 45, 168, 35, 168, 168, 168, 168, 168,
- 168, 168, 168, 168, 64, 15, 64, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 6, 12, 15,
- 12, 143, 143, 16, 16, 16, 16, 14, 170, 15,
- 15, 15, 83, 177, 16, 169, 169, 14, 14, 169,
- 83, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 14, 14, 13, 14, 13, 14, 61, 22, 16, 148,
- 148, 72, 72, 72, 72, 72, 14, 179, 148, 72,
- 14, 72, 72, 72, 72, 72, 72, 72, 72, 72,
- 16, 16, 72, 72, 72, 72, 9, 9, 9, 9,
- 72, 46, 116, 46, 102, 72, 72, 72, 72, 116,
- 103, 72, 72, 72, 63, 116, 116, 22, 149, 75,
- 75, 150, 116, 116, 116, 116, 112, 14, 72, 174,
- 174, 174, 72, 171, 171, 82, 9, 171, 9, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 14, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 19,
- 154, 19, 154, 19, 115, 75, 48, 29, 154, 119,
- 48, 48, 48, 117, 117, 48, 5, 5, 14, 48,
- 48, 48, 48, 48, 48, 92, 92, 92, 19, 24,
- 24, 24, 24, 19, 19, 19, 19, 167, 167, 19,
- 19, 19, 5, 5, 5, 5, 5, 5, 181, 181,
- 39, 25, 106, 106, 106, 106, 91, 106, 25, 25,
- 25, 25, 25, 25, 181, 96, 96, 118, 118, 9,
- 9, 25, 25, 25, 9, 22, 9, 23, 18, 9,
- 9, 14, 23, 129, 23, 129, 28, 129, 84, 84,
- 84, 9, 9, 9, 9, 176, 176, 9, 2, 2,
- 9, 9, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 37, 129, 129, 129, 129, 79, 159, 128,
- 81, 81, 109, 156, 131, 81, 9, 81, 98, 81,
- 81, 81, 41, 81, 8, 8, 81, 8, 129, 95,
- 81, 146, 88, -1, 20, 8, 8, -1, 8, 8,
- 8, 88, 88, -1, -1, 88, 88, 88, 78, 78,
- -1, -1, 78, 78, 78, 78, -1, 23, 23, 23,
- 23, 23, 23, 23, 23, 23, 23, 23, -1, 129,
- 23, 17, 17, 129, 129, 129, -1, -1, 17, -1,
- -1, -1, -1, -1, 17, 180, 180, -1, 20, 20,
- -1, -1, 17, -1, 17, 17, 20, -1, -1, -1,
- 17, 180, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 17, -1, 20, 20, 20, -1, 180, -1,
+ 42, 42, 42, 15, 83, 23, 23, 23, 23, 107,
+ 107, 49, 83, 107, 129, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 168, 168, 8, 8, 168, 8,
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 8,
+ 8, 43, 8, 181, 181, 75, 75, 15, 6, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 82,
+ 181, 15, 24, 24, 24, 24, 58, 58, 58, 58,
+ 58, 15, 15, 15, 15, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 81, 81, 64, 35, 64,
+ 81, 75, 81, 96, 81, 81, 81, 13, 81, 13,
+ 72, 81, 72, 35, 82, 81, 35, 72, 72, 72,
+ 12, 45, 46, 72, 46, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 170, 22, 72, 72, 72, 72,
+ 9, 9, 9, 9, 72, 177, 17, 17, 179, 72,
+ 72, 72, 72, 17, 102, 72, 72, 72, 61, 17,
+ 12, 14, 12, 103, 5, 5, 154, 17, 154, 17,
+ 17, 14, 14, 72, 154, 17, 63, 72, 174, 174,
+ 174, 9, 149, 9, 14, 14, 22, 17, 14, 113,
+ 14, 5, 5, 5, 5, 5, 5, 150, 19, 112,
+ 19, 14, 169, 169, 115, 14, 169, 19, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 171, 171, 180,
+ 180, 171, 119, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 19, 92, 92, 92, 180, 19, 19, 19,
+ 19, 29, 48, 19, 19, 19, 48, 48, 48, 143,
+ 143, 48, 14, 180, 91, 48, 48, 48, 48, 48,
+ 48, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 117, 117, 14, 18, 9, 9, 23, 23, 23,
+ 9, 129, 9, 129, 37, 9, 9, 84, 84, 84,
+ 129, 106, 106, 106, 106, 39, 106, 9, 9, 9,
+ 9, 25, 28, 9, 14, 22, 9, 9, 159, 25,
+ 25, 25, 25, 25, 25, 109, 129, 129, 129, 129,
+ 118, 118, 25, 25, 25, 167, 167, 16, 16, 16,
+ 16, 116, 9, 79, 24, 24, 24, 116, 16, 20,
+ 148, 148, 129, 116, 116, 98, 176, 176, 156, 148,
+ 116, 116, 116, 116, 128, 96, 96, 88, 88, 88,
+ 88, 131, 16, 88, 88, 88, 41, 14, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 2,
+ 2, 23, -1, 129, 16, 16, 146, 129, 129, 129,
+ 95, -1, 78, 78, 20, 20, 78, 78, 78, 78,
+ 7, -1, 20, 7, 5, 5, -1, -1, -1, -1,
+ -1, -1, 7, -1, -1, -1, 7, -1, -1, -1,
+ 20, 20, 20, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 5, 5, -1, -1, -1, -1, -1,
- -1, -1, -1, 106, 106, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 24, -1,
- -1, -1, -1, 24, -1, 24
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 106, 106
);
protected $gotoBase = array(
- 0, 0, -255, 0, 0, 365, 197, 16, 477, -11,
- 0, 0, -115, -81, -68, -182, -223, 72, 121, 82,
- 106, 0, -19, 165, 376, 397, 17, 168, 103, 63,
- 0, 0, 0, 0, 0, -190, 0, 127, 0, 80,
- 0, 47, -1, 0, 0, 173, -436, 0, -346, 160,
- 0, 0, 0, 0, 0, -33, 0, 0, 118, 0,
- 0, 215, 0, 65, 191, -234, 0, 0, 0, 0,
- 0, 0, -6, 0, 0, -31, 0, 0, 105, 128,
- 99, -15, 49, -231, -35, -690, 0, 0, 222, 0,
- 0, 81, 73, 0, 0, 52, -310, 0, 76, 0,
- 0, 0, 260, 258, 0, 0, 375, -64, 0, 107,
- 0, 0, 41, 0, 0, 75, 24, 86, 136, 71,
- 0, 0, 0, 0, 0, 0, 1, 0, 100, 166,
- 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -51, 0, 0, 53, 0, 226, 66,
- 40, 0, 0, 0, -139, 0, 39, 0, 0, 104,
- 0, 0, 0, 0, 0, 0, 0, 69, -49, -3,
- 200, 85, 0, 0, 21, 0, 78, 204, 0, 237,
- 240, 93, 0, 0
+ 0, 0, -183, 0, 0, 313, 188, 543, 178, -10,
+ 0, 0, -27, -80, 13, -184, 26, -168, 114, 83,
+ 97, 0, 6, 162, 219, 447, 18, 22, 115, 94,
+ 0, 0, 0, 0, 0, -122, 0, 95, 0, 122,
+ 0, 76, -1, 182, 0, 248, -464, 0, -319, 153,
+ 0, 0, 0, 0, 0, -33, 0, 0, 181, 0,
+ 0, 266, 0, 84, 233, -236, 0, 0, 0, 0,
+ 0, 0, -5, 0, 0, -139, 0, 0, 135, 140,
+ 54, -245, -60, -304, -41, -698, 0, 0, 227, 0,
+ 0, 75, 78, 0, 0, 98, -229, 0, 89, 0,
+ 0, 0, 269, 270, 0, 0, 413, -72, 0, 96,
+ 0, 0, 71, 66, 0, 72, 209, 141, 186, 81,
+ 0, 0, 0, 0, 0, 0, 1, 0, 131, 166,
+ 0, 70, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 124, 0, 0, 93, 0, 456, 87,
+ 73, 0, 0, 0, -178, 0, 59, 0, 0, 90,
+ 0, 0, 0, 0, 0, 0, 0, 154, -57, 111,
+ 255, 126, 0, 0, 27, 0, 125, 265, 0, 267,
+ 61, -105, 0, 0
);
protected $gotoDefault = array(
- -32768, 506, 731, 4, 732, 924, 807, 816, 593, 524,
- 698, 343, 621, 416, 1291, 901, 1110, 574, 835, 1234,
- 1242, 451, 838, 326, 721, 883, 884, 885, 395, 381,
- 387, 393, 645, 622, 488, 870, 447, 862, 480, 865,
- 446, 874, 162, 413, 504, 878, 3, 880, 552, 911,
- 382, 888, 383, 673, 890, 558, 892, 893, 390, 396,
- 397, 1115, 566, 618, 905, 253, 560, 906, 380, 907,
- 914, 385, 388, 684, 459, 499, 493, 406, 1090, 561,
- 604, 642, 441, 467, 616, 628, 614, 474, 1026, 411,
- 325, 946, 954, 481, 457, 968, 345, 976, 729, 1123,
- 636, 483, 984, 637, 991, 994, 525, 526, 472, 1006,
- 268, 1009, 484, 1047, 663, 1020, 1021, 664, 638, 1043,
- 639, 665, 640, 1045, 466, 594, 1053, 448, 1061, 1279,
- 449, 1065, 262, 1068, 275, 412, 429, 1073, 1074, 8,
- 1080, 690, 691, 10, 273, 503, 1105, 685, 445, 1122,
- 433, 1192, 1194, 554, 485, 1212, 1211, 676, 500, 1217,
- 442, 1282, 443, 527, 468, 313, 528, 305, 329, 310,
- 543, 292, 330, 529, 469, 1288, 1296, 327, 30, 1316,
- 1327, 338, 571, 609
+ -32768, 511, 740, 4, 741, 934, 816, 825, 597, 529,
+ 707, 347, 625, 421, 1302, 911, 1121, 578, 844, 1245,
+ 1253, 456, 847, 330, 730, 893, 894, 895, 399, 385,
+ 391, 397, 649, 626, 493, 879, 452, 871, 485, 874,
+ 451, 883, 164, 417, 509, 887, 3, 890, 556, 921,
+ 386, 898, 387, 677, 900, 562, 902, 903, 394, 400,
+ 401, 1126, 570, 622, 915, 256, 564, 916, 384, 917,
+ 924, 389, 392, 688, 464, 504, 498, 410, 1101, 565,
+ 608, 646, 446, 472, 620, 632, 618, 479, 433, 415,
+ 329, 956, 964, 486, 462, 978, 349, 986, 738, 1134,
+ 640, 488, 994, 641, 1001, 1004, 530, 531, 477, 1016,
+ 272, 1019, 489, 19, 667, 1030, 1031, 668, 642, 1053,
+ 643, 669, 644, 1055, 471, 598, 1063, 453, 1071, 1290,
+ 454, 1075, 266, 1078, 278, 416, 434, 1084, 1085, 9,
+ 1091, 698, 699, 11, 276, 508, 1116, 689, 450, 1133,
+ 438, 1203, 1205, 558, 490, 1223, 1222, 680, 505, 1228,
+ 447, 1293, 448, 532, 473, 316, 533, 308, 333, 313,
+ 548, 295, 334, 534, 474, 1299, 1307, 331, 31, 1327,
+ 1338, 342, 575, 613
);
protected $ruleToNonTerminal = array(
@@ -1034,30 +1039,30 @@ class Php8 extends \PhpParser\ParserAbstract
4, 4, 4, 29, 29, 30, 30, 32, 34, 34,
28, 36, 36, 33, 38, 38, 35, 35, 37, 37,
39, 39, 31, 40, 40, 41, 43, 44, 44, 45,
- 46, 46, 48, 47, 47, 47, 47, 49, 49, 49,
+ 45, 46, 46, 48, 47, 47, 47, 47, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 25, 25, 68, 68, 71, 71, 70, 69, 69,
- 62, 74, 74, 75, 75, 76, 76, 77, 77, 78,
- 78, 79, 79, 26, 26, 27, 27, 27, 27, 27,
- 87, 87, 89, 89, 82, 82, 90, 90, 91, 91,
- 91, 83, 83, 86, 86, 84, 84, 92, 93, 93,
- 56, 56, 64, 64, 67, 67, 67, 66, 94, 94,
- 95, 57, 57, 57, 57, 96, 96, 97, 97, 98,
- 98, 99, 100, 100, 101, 101, 102, 102, 54, 54,
- 50, 50, 104, 52, 52, 105, 51, 51, 53, 53,
- 63, 63, 63, 63, 80, 80, 108, 108, 110, 110,
- 111, 111, 111, 111, 109, 109, 109, 113, 113, 113,
- 113, 88, 88, 116, 116, 116, 117, 117, 114, 114,
- 118, 118, 120, 120, 121, 121, 115, 122, 122, 119,
- 123, 123, 123, 123, 112, 112, 81, 81, 81, 20,
- 20, 20, 125, 124, 124, 126, 126, 126, 126, 59,
- 127, 127, 128, 60, 130, 130, 131, 131, 132, 132,
- 85, 133, 133, 133, 133, 133, 133, 138, 138, 139,
- 139, 140, 140, 140, 140, 140, 141, 142, 142, 137,
- 137, 134, 134, 136, 136, 144, 144, 143, 143, 143,
- 143, 143, 143, 143, 135, 145, 145, 147, 146, 146,
- 61, 103, 148, 148, 55, 55, 42, 42, 42, 42,
+ 49, 49, 25, 25, 68, 68, 71, 71, 70, 69,
+ 69, 62, 74, 74, 75, 75, 76, 76, 77, 77,
+ 78, 78, 79, 79, 26, 26, 27, 27, 27, 27,
+ 27, 87, 87, 89, 89, 82, 82, 90, 90, 91,
+ 91, 91, 83, 83, 86, 86, 84, 84, 92, 93,
+ 93, 56, 56, 64, 64, 67, 67, 67, 66, 94,
+ 94, 95, 57, 57, 57, 57, 96, 96, 97, 97,
+ 98, 98, 99, 100, 100, 101, 101, 102, 102, 54,
+ 54, 50, 50, 104, 52, 52, 105, 51, 51, 53,
+ 53, 63, 63, 63, 63, 80, 80, 108, 108, 110,
+ 110, 111, 111, 111, 111, 109, 109, 109, 113, 113,
+ 113, 113, 88, 88, 116, 116, 116, 117, 117, 114,
+ 114, 118, 118, 120, 120, 121, 121, 115, 122, 122,
+ 119, 123, 123, 123, 123, 112, 112, 81, 81, 81,
+ 20, 20, 20, 125, 124, 124, 126, 126, 126, 126,
+ 59, 127, 127, 128, 60, 130, 130, 131, 131, 132,
+ 132, 85, 133, 133, 133, 133, 133, 133, 133, 138,
+ 138, 139, 139, 140, 140, 140, 140, 140, 141, 142,
+ 142, 137, 137, 134, 134, 136, 136, 144, 144, 143,
+ 143, 143, 143, 143, 143, 143, 135, 145, 145, 147,
+ 146, 146, 61, 103, 148, 148, 55, 55, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
@@ -1067,20 +1072,20 @@ class Php8 extends \PhpParser\ParserAbstract
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 155, 149, 149, 154, 154, 157, 158, 158, 159, 160,
- 161, 161, 161, 161, 19, 19, 72, 72, 72, 72,
- 150, 150, 150, 150, 163, 163, 151, 151, 153, 153,
- 153, 156, 156, 168, 168, 168, 168, 168, 168, 168,
- 168, 168, 169, 169, 169, 107, 171, 171, 171, 171,
- 152, 152, 152, 152, 152, 152, 152, 152, 58, 58,
- 166, 166, 166, 166, 172, 172, 162, 162, 162, 173,
- 173, 173, 173, 173, 173, 73, 73, 65, 65, 65,
- 65, 129, 129, 129, 129, 176, 175, 165, 165, 165,
- 165, 165, 165, 165, 164, 164, 164, 174, 174, 174,
- 174, 106, 170, 178, 178, 177, 177, 179, 179, 179,
- 179, 179, 179, 179, 179, 167, 167, 167, 167, 181,
- 182, 180, 180, 180, 180, 180, 180, 180, 180, 183,
- 183, 183, 183
+ 42, 42, 155, 149, 149, 154, 154, 157, 158, 158,
+ 159, 160, 161, 161, 161, 161, 19, 19, 72, 72,
+ 72, 72, 150, 150, 150, 150, 163, 163, 151, 151,
+ 153, 153, 153, 156, 156, 168, 168, 168, 168, 168,
+ 168, 168, 168, 168, 169, 169, 169, 107, 171, 171,
+ 171, 171, 152, 152, 152, 152, 152, 152, 152, 152,
+ 58, 58, 166, 166, 166, 166, 172, 172, 162, 162,
+ 162, 173, 173, 173, 173, 173, 173, 73, 73, 65,
+ 65, 65, 65, 129, 129, 129, 129, 176, 175, 165,
+ 165, 165, 165, 165, 165, 165, 164, 164, 164, 174,
+ 174, 174, 174, 106, 170, 178, 178, 177, 177, 179,
+ 179, 179, 179, 179, 179, 179, 179, 167, 167, 167,
+ 167, 181, 182, 180, 180, 180, 180, 180, 180, 180,
+ 180, 183, 183, 183, 183
);
protected $ruleToLength = array(
@@ -1099,53 +1104,53 @@ class Php8 extends \PhpParser\ParserAbstract
4, 2, 3, 1, 1, 7, 6, 2, 3, 1,
2, 3, 1, 2, 3, 1, 1, 3, 1, 3,
1, 2, 2, 3, 1, 3, 2, 3, 1, 3,
- 2, 0, 1, 1, 1, 1, 1, 3, 7, 10,
- 5, 7, 9, 5, 3, 3, 3, 3, 3, 3,
- 1, 2, 5, 7, 9, 6, 5, 6, 3, 2,
- 1, 1, 1, 0, 2, 1, 3, 8, 0, 4,
- 2, 1, 3, 0, 1, 0, 1, 0, 1, 3,
- 1, 1, 1, 8, 9, 7, 8, 7, 6, 8,
- 0, 2, 0, 2, 1, 2, 1, 2, 1, 1,
- 1, 0, 2, 0, 2, 0, 2, 2, 1, 3,
- 1, 4, 1, 4, 1, 1, 4, 2, 1, 3,
- 3, 3, 4, 4, 5, 0, 2, 4, 3, 1,
- 1, 7, 0, 2, 1, 3, 3, 4, 1, 4,
- 0, 2, 5, 0, 2, 6, 0, 2, 0, 3,
- 1, 2, 1, 1, 2, 0, 1, 3, 0, 2,
- 1, 1, 1, 1, 6, 8, 6, 1, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
- 1, 3, 3, 3, 3, 3, 1, 3, 3, 1,
- 1, 2, 1, 1, 0, 1, 0, 2, 2, 2,
- 4, 3, 1, 1, 3, 1, 2, 2, 3, 2,
- 3, 1, 1, 2, 3, 1, 1, 3, 2, 0,
- 1, 5, 5, 10, 3, 5, 1, 1, 3, 0,
- 2, 4, 5, 4, 4, 4, 3, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 1, 2, 1, 3, 1, 1, 3,
- 2, 2, 3, 1, 0, 1, 1, 3, 3, 3,
- 4, 4, 1, 1, 2, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
- 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 2, 0, 1, 1, 1, 1, 1, 3, 7,
+ 10, 5, 7, 9, 5, 3, 3, 3, 3, 3,
+ 3, 1, 2, 5, 7, 9, 6, 5, 6, 3,
+ 2, 1, 1, 1, 0, 2, 1, 3, 8, 0,
+ 4, 2, 1, 3, 0, 1, 0, 1, 0, 1,
+ 3, 1, 1, 1, 8, 9, 7, 8, 7, 6,
+ 8, 0, 2, 0, 2, 1, 2, 1, 2, 1,
+ 1, 1, 0, 2, 0, 2, 0, 2, 2, 1,
+ 3, 1, 4, 1, 4, 1, 1, 4, 2, 1,
+ 3, 3, 3, 4, 4, 5, 0, 2, 4, 3,
+ 1, 1, 7, 0, 2, 1, 3, 3, 4, 1,
+ 4, 0, 2, 5, 0, 2, 6, 0, 2, 0,
+ 3, 1, 2, 1, 1, 2, 0, 1, 3, 0,
+ 2, 1, 1, 1, 1, 6, 8, 6, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
+ 3, 1, 3, 3, 3, 3, 3, 1, 3, 3,
+ 1, 1, 2, 1, 1, 0, 1, 0, 2, 2,
+ 2, 4, 3, 1, 1, 3, 1, 2, 2, 3,
+ 2, 3, 1, 1, 2, 3, 1, 1, 3, 2,
+ 0, 1, 5, 5, 6, 10, 3, 5, 1, 1,
+ 3, 0, 2, 4, 5, 4, 4, 4, 3, 1,
+ 1, 1, 1, 1, 1, 0, 1, 1, 2, 1,
+ 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
+ 1, 3, 2, 2, 3, 1, 0, 1, 1, 3,
+ 3, 3, 4, 4, 1, 1, 2, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 5, 4, 3, 4, 4,
- 2, 2, 4, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 1, 3, 2, 1, 2, 4,
- 2, 2, 8, 9, 8, 9, 9, 10, 9, 10,
- 8, 3, 2, 0, 4, 2, 1, 3, 2, 1,
- 2, 2, 2, 4, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 1, 1, 1, 0, 3, 0, 1,
- 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 5, 3, 3, 4, 1, 1, 3,
- 1, 1, 1, 1, 1, 3, 2, 3, 0, 1,
- 1, 3, 1, 1, 1, 1, 1, 3, 1, 1,
- 4, 4, 1, 4, 4, 0, 1, 1, 1, 3,
- 3, 1, 4, 2, 2, 1, 3, 1, 4, 4,
- 3, 3, 3, 3, 1, 3, 1, 1, 3, 1,
- 1, 4, 1, 1, 1, 3, 1, 1, 2, 1,
- 3, 4, 3, 2, 0, 2, 2, 1, 2, 1,
- 1, 1, 4, 3, 3, 3, 3, 6, 3, 1,
- 1, 2, 1
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 5, 4, 3,
+ 4, 4, 2, 2, 4, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 3, 2, 1,
+ 2, 4, 2, 2, 8, 9, 8, 9, 9, 10,
+ 9, 10, 8, 3, 2, 0, 4, 2, 1, 3,
+ 2, 1, 2, 2, 2, 4, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 1, 1, 1, 0, 3,
+ 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 5, 3, 3, 4, 1,
+ 1, 3, 1, 1, 1, 1, 1, 3, 2, 3,
+ 0, 1, 1, 3, 1, 1, 1, 1, 1, 3,
+ 1, 1, 4, 4, 1, 4, 4, 0, 1, 1,
+ 1, 3, 3, 1, 4, 2, 2, 1, 3, 1,
+ 4, 4, 3, 3, 3, 3, 1, 3, 1, 1,
+ 3, 1, 1, 4, 1, 1, 1, 3, 1, 1,
+ 2, 1, 3, 4, 3, 2, 0, 2, 2, 1,
+ 2, 1, 1, 1, 4, 3, 3, 3, 3, 6,
+ 3, 1, 1, 2, 1
);
protected function initReduceCallbacks(): void {
@@ -1605,20 +1610,20 @@ class Php8 extends \PhpParser\ParserAbstract
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
149 => function ($stackPos) {
- $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
150 => function ($stackPos) {
- if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; };
+ $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
151 => function ($stackPos) {
- $this->semValue = array();
+ if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; };
},
152 => function ($stackPos) {
- $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; };
- if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array();
},
153 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; };
+ if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
},
154 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -1627,9 +1632,12 @@ class Php8 extends \PhpParser\ParserAbstract
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
156 => function ($stackPos) {
- throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
157 => function ($stackPos) {
+ throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ },
+ 158 => function ($stackPos) {
if ($this->semStack[$stackPos-(3-2)]) {
$this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); };
@@ -1639,46 +1647,46 @@ class Php8 extends \PhpParser\ParserAbstract
}
},
- 158 => function ($stackPos) {
+ 159 => function ($stackPos) {
$this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => is_array($this->semStack[$stackPos-(7-5)]) ? $this->semStack[$stackPos-(7-5)] : array($this->semStack[$stackPos-(7-5)]), 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
- 159 => function ($stackPos) {
+ 160 => function ($stackPos) {
$this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
},
- 160 => function ($stackPos) {
+ 161 => function ($stackPos) {
$this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 161 => function ($stackPos) {
+ 162 => function ($stackPos) {
$this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], is_array($this->semStack[$stackPos-(7-2)]) ? $this->semStack[$stackPos-(7-2)] : array($this->semStack[$stackPos-(7-2)]), $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
- 162 => function ($stackPos) {
+ 163 => function ($stackPos) {
$this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
- 163 => function ($stackPos) {
+ 164 => function ($stackPos) {
$this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 164 => function ($stackPos) {
+ 165 => function ($stackPos) {
$this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 165 => function ($stackPos) {
+ 166 => function ($stackPos) {
$this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 166 => function ($stackPos) {
+ 167 => function ($stackPos) {
$this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 167 => function ($stackPos) {
+ 168 => function ($stackPos) {
$this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 168 => function ($stackPos) {
+ 169 => function ($stackPos) {
$this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 169 => function ($stackPos) {
+ 170 => function ($stackPos) {
$this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 170 => function ($stackPos) {
+ 171 => function ($stackPos) {
$this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 171 => function ($stackPos) {
+ 172 => function ($stackPos) {
$e = $this->semStack[$stackPos-(2-1)];
if ($e instanceof Expr\Throw_) {
@@ -1690,1145 +1698,1143 @@ class Php8 extends \PhpParser\ParserAbstract
}
},
- 172 => function ($stackPos) {
+ 173 => function ($stackPos) {
$this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 173 => function ($stackPos) {
+ 174 => function ($stackPos) {
$this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
- 174 => function ($stackPos) {
+ 175 => function ($stackPos) {
$this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
- 175 => function ($stackPos) {
+ 176 => function ($stackPos) {
$this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->startAttributeStack[$stackPos-(6-4)] + $this->endAttributeStack[$stackPos-(6-4)]), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
},
- 176 => function ($stackPos) {
+ 177 => function ($stackPos) {
$this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 177 => function ($stackPos) {
+ 178 => function ($stackPos) {
$this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue);
},
- 178 => function ($stackPos) {
+ 179 => function ($stackPos) {
$this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 179 => function ($stackPos) {
+ 180 => function ($stackPos) {
$this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 180 => function ($stackPos) {
+ 181 => function ($stackPos) {
$this->semValue = array(); /* means: no statement */
},
- 181 => function ($stackPos) {
+ 182 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 182 => function ($stackPos) {
+ 183 => function ($stackPos) {
$startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; };
if ($this->semValue === null) $this->semValue = array(); /* means: no statement */
},
- 183 => function ($stackPos) {
+ 184 => function ($stackPos) {
$this->semValue = array();
},
- 184 => function ($stackPos) {
+ 185 => function ($stackPos) {
$this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 185 => function ($stackPos) {
+ 186 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
- 186 => function ($stackPos) {
+ 187 => function ($stackPos) {
$this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
- 187 => function ($stackPos) {
+ 188 => function ($stackPos) {
$this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
- 188 => function ($stackPos) {
+ 189 => function ($stackPos) {
$this->semValue = null;
},
- 189 => function ($stackPos) {
+ 190 => function ($stackPos) {
$this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 190 => function ($stackPos) {
+ 191 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 191 => function ($stackPos) {
+ 192 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
- 192 => function ($stackPos) {
+ 193 => function ($stackPos) {
$this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
- 193 => function ($stackPos) {
+ 194 => function ($stackPos) {
$this->semValue = false;
},
- 194 => function ($stackPos) {
+ 195 => function ($stackPos) {
$this->semValue = true;
},
- 195 => function ($stackPos) {
+ 196 => function ($stackPos) {
$this->semValue = false;
},
- 196 => function ($stackPos) {
+ 197 => function ($stackPos) {
$this->semValue = true;
},
- 197 => function ($stackPos) {
+ 198 => function ($stackPos) {
$this->semValue = false;
},
- 198 => function ($stackPos) {
+ 199 => function ($stackPos) {
$this->semValue = true;
},
- 199 => function ($stackPos) {
+ 200 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(3-2)];
},
- 200 => function ($stackPos) {
+ 201 => function ($stackPos) {
$this->semValue = [];
},
- 201 => function ($stackPos) {
+ 202 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 202 => function ($stackPos) {
+ 203 => function ($stackPos) {
$this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 203 => function ($stackPos) {
+ 204 => function ($stackPos) {
$this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
- 204 => function ($stackPos) {
+ 205 => function ($stackPos) {
$this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
- 205 => function ($stackPos) {
+ 206 => function ($stackPos) {
$this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
$this->checkClass($this->semValue, $stackPos-(7-2));
},
- 206 => function ($stackPos) {
+ 207 => function ($stackPos) {
$this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
$this->checkClass($this->semValue, $stackPos-(8-3));
},
- 207 => function ($stackPos) {
+ 208 => function ($stackPos) {
$this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
$this->checkInterface($this->semValue, $stackPos-(7-3));
},
- 208 => function ($stackPos) {
+ 209 => function ($stackPos) {
$this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
},
- 209 => function ($stackPos) {
+ 210 => function ($stackPos) {
$this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
$this->checkEnum($this->semValue, $stackPos-(8-3));
},
- 210 => function ($stackPos) {
- $this->semValue = null;
- },
211 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
212 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
213 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
214 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
215 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = 0;
},
216 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
217 => function ($stackPos) {
- $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
218 => function ($stackPos) {
- $this->semValue = Modifiers::ABSTRACT;
+ $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
},
219 => function ($stackPos) {
- $this->semValue = Modifiers::FINAL;
+ $this->semValue = Modifiers::ABSTRACT;
},
220 => function ($stackPos) {
- $this->semValue = Modifiers::READONLY;
+ $this->semValue = Modifiers::FINAL;
},
221 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = Modifiers::READONLY;
},
222 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
223 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
224 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = array();
},
225 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
226 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = array();
},
227 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
228 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
229 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
230 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
231 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
232 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
233 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
234 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
235 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
236 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = null;
},
237 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
238 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
239 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
240 => function ($stackPos) {
- $this->semValue = new Node\DeclareItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
241 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = new Node\DeclareItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
242 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-3)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
243 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = $this->semStack[$stackPos-(4-3)];
},
244 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(5-3)];
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
245 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(5-3)];
},
246 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
247 => function ($stackPos) {
- $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
248 => function ($stackPos) {
- $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
249 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos];
+ $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
250 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos];
},
251 => function ($stackPos) {
- $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos];
},
252 => function ($stackPos) {
- $this->semValue = [];
+ $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes);
},
253 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = [];
},
254 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
255 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
256 => function ($stackPos) {
- $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
257 => function ($stackPos) {
- $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
258 => function ($stackPos) {
- $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
259 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]);
},
260 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
261 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
262 => function ($stackPos) {
- $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
263 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
264 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
265 => function ($stackPos) {
- $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
266 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
},
267 => function ($stackPos) {
- $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = null;
},
268 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
269 => function ($stackPos) {
- $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
+ $this->semValue = null;
},
270 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
+ $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue);
},
271 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(2-2)], true);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
},
272 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
+ $this->semValue = array($this->semStack[$stackPos-(2-2)], true);
},
273 => function ($stackPos) {
- $this->semValue = array($this->fixupArrayDestructuring($this->semStack[$stackPos-(1-1)]), false);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)], false);
},
274 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array($this->fixupArrayDestructuring($this->semStack[$stackPos-(1-1)]), false);
},
275 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
276 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = array();
},
277 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
278 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
279 => function ($stackPos) {
- $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+ $this->semValue = 0;
},
280 => function ($stackPos) {
- $this->semValue = Modifiers::PUBLIC;
+ $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
},
281 => function ($stackPos) {
- $this->semValue = Modifiers::PROTECTED;
+ $this->semValue = Modifiers::PUBLIC;
},
282 => function ($stackPos) {
- $this->semValue = Modifiers::PRIVATE;
+ $this->semValue = Modifiers::PROTECTED;
},
283 => function ($stackPos) {
- $this->semValue = Modifiers::READONLY;
+ $this->semValue = Modifiers::PRIVATE;
},
284 => function ($stackPos) {
- $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
- $this->checkParam($this->semValue);
+ $this->semValue = Modifiers::READONLY;
},
285 => function ($stackPos) {
- $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]);
+ $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
$this->checkParam($this->semValue);
},
286 => function ($stackPos) {
- $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
+ $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]);
+ $this->checkParam($this->semValue);
},
287 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]);
},
288 => function ($stackPos) {
- $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
289 => function ($stackPos) {
- $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
290 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
291 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
292 => function ($stackPos) {
- $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
293 => function ($stackPos) {
- $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
294 => function ($stackPos) {
- $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]);
},
295 => function ($stackPos) {
- $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
296 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
297 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
298 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
299 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
300 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
301 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
302 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
303 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
304 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
305 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
306 => function ($stackPos) {
- $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
307 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
308 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
309 => function ($stackPos) {
- $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
310 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
311 => function ($stackPos) {
- $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
312 => function ($stackPos) {
- $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
313 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
314 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
315 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
316 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
317 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-2)];
+ $this->semValue = null;
},
318 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(2-2)];
},
319 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = null;
},
320 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-2)];
+ $this->semValue = array();
},
321 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-2)]);
+ $this->semValue = $this->semStack[$stackPos-(4-2)];
},
322 => function ($stackPos) {
- $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(3-2)]);
},
323 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
324 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
325 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
326 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
327 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
328 => function ($stackPos) {
- $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]);
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
329 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]);
},
330 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
331 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
332 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
333 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
334 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
335 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
336 => function ($stackPos) {
- $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
337 => function ($stackPos) {
- $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
338 => function ($stackPos) {
- if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }
+ $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
339 => function ($stackPos) {
- $this->semValue = array();
+ if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }
},
340 => function ($stackPos) {
+ $this->semValue = array();
+ },
+ 341 => function ($stackPos) {
$startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; };
if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 341 => function ($stackPos) {
+ 342 => function ($stackPos) {
$this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]);
$this->checkProperty($this->semValue, $stackPos-(5-2));
},
- 342 => function ($stackPos) {
+ 343 => function ($stackPos) {
$this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-1)]);
$this->checkClassConst($this->semValue, $stackPos-(5-2));
},
- 343 => function ($stackPos) {
- $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
- $this->checkClassMethod($this->semValue, $stackPos-(10-2));
- },
344 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)]);
+ $this->checkClassConst($this->semValue, $stackPos-(6-2));
},
345 => function ($stackPos) {
- $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+ $this->checkClassMethod($this->semValue, $stackPos-(10-2));
},
346 => function ($stackPos) {
- $this->semValue = null; /* will be skipped */
+ $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
347 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
348 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = null; /* will be skipped */
},
349 => function ($stackPos) {
$this->semValue = array();
},
350 => function ($stackPos) {
- $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
351 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = array();
},
352 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
353 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
354 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
355 => function ($stackPos) {
- $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
356 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
357 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
358 => function ($stackPos) {
- $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]);
+ $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
},
359 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
360 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]);
},
361 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
362 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
363 => function ($stackPos) {
- $this->semValue = 0;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
364 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = 0;
},
365 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = 0;
},
366 => function ($stackPos) {
- $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
367 => function ($stackPos) {
- $this->semValue = Modifiers::PUBLIC;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
368 => function ($stackPos) {
- $this->semValue = Modifiers::PROTECTED;
+ $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
},
369 => function ($stackPos) {
- $this->semValue = Modifiers::PRIVATE;
+ $this->semValue = Modifiers::PUBLIC;
},
370 => function ($stackPos) {
- $this->semValue = Modifiers::STATIC;
+ $this->semValue = Modifiers::PROTECTED;
},
371 => function ($stackPos) {
- $this->semValue = Modifiers::ABSTRACT;
+ $this->semValue = Modifiers::PRIVATE;
},
372 => function ($stackPos) {
- $this->semValue = Modifiers::FINAL;
+ $this->semValue = Modifiers::STATIC;
},
373 => function ($stackPos) {
- $this->semValue = Modifiers::READONLY;
+ $this->semValue = Modifiers::ABSTRACT;
},
374 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = Modifiers::FINAL;
},
375 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = Modifiers::READONLY;
},
376 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
377 => function ($stackPos) {
- $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
378 => function ($stackPos) {
- $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
379 => function ($stackPos) {
- $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
380 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
381 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
382 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
383 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
384 => function ($stackPos) {
- $this->semValue = array();
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
385 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
386 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array();
},
387 => function ($stackPos) {
- $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
388 => function ($stackPos) {
- $this->semValue = new Expr\Assign($this->fixupArrayDestructuring($this->semStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
389 => function ($stackPos) {
$this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
390 => function ($stackPos) {
- $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Assign($this->fixupArrayDestructuring($this->semStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
391 => function ($stackPos) {
+ $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ },
+ 392 => function ($stackPos) {
+ $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ },
+ 393 => function ($stackPos) {
$this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
if (!$this->phpVersion->allowsAssignNewByReference()) {
$this->emitError(new Error('Cannot assign new by reference', $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes));
}
},
- 392 => function ($stackPos) {
+ 394 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 393 => function ($stackPos) {
+ 395 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 394 => function ($stackPos) {
+ 396 => function ($stackPos) {
$this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 395 => function ($stackPos) {
+ 397 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 396 => function ($stackPos) {
+ 398 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 397 => function ($stackPos) {
+ 399 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 398 => function ($stackPos) {
+ 400 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 399 => function ($stackPos) {
+ 401 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 400 => function ($stackPos) {
+ 402 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 401 => function ($stackPos) {
+ 403 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 402 => function ($stackPos) {
+ 404 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 403 => function ($stackPos) {
+ 405 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 404 => function ($stackPos) {
+ 406 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 405 => function ($stackPos) {
+ 407 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 406 => function ($stackPos) {
+ 408 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 407 => function ($stackPos) {
+ 409 => function ($stackPos) {
$this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 408 => function ($stackPos) {
+ 410 => function ($stackPos) {
$this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 409 => function ($stackPos) {
+ 411 => function ($stackPos) {
$this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 410 => function ($stackPos) {
+ 412 => function ($stackPos) {
$this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 411 => function ($stackPos) {
+ 413 => function ($stackPos) {
$this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 412 => function ($stackPos) {
+ 414 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 413 => function ($stackPos) {
+ 415 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 414 => function ($stackPos) {
+ 416 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 415 => function ($stackPos) {
+ 417 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 416 => function ($stackPos) {
+ 418 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 417 => function ($stackPos) {
+ 419 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 418 => function ($stackPos) {
+ 420 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 419 => function ($stackPos) {
+ 421 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 420 => function ($stackPos) {
+ 422 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 421 => function ($stackPos) {
+ 423 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 422 => function ($stackPos) {
+ 424 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 423 => function ($stackPos) {
+ 425 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 424 => function ($stackPos) {
+ 426 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 425 => function ($stackPos) {
+ 427 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 426 => function ($stackPos) {
+ 428 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 427 => function ($stackPos) {
+ 429 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 428 => function ($stackPos) {
+ 430 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 429 => function ($stackPos) {
+ 431 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 430 => function ($stackPos) {
+ 432 => function ($stackPos) {
$this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 431 => function ($stackPos) {
+ 433 => function ($stackPos) {
$this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 432 => function ($stackPos) {
+ 434 => function ($stackPos) {
$this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 433 => function ($stackPos) {
+ 435 => function ($stackPos) {
$this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 434 => function ($stackPos) {
+ 436 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 435 => function ($stackPos) {
+ 437 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 436 => function ($stackPos) {
+ 438 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 437 => function ($stackPos) {
+ 439 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 438 => function ($stackPos) {
+ 440 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 439 => function ($stackPos) {
+ 441 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 440 => function ($stackPos) {
+ 442 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 441 => function ($stackPos) {
+ 443 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 442 => function ($stackPos) {
+ 444 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 443 => function ($stackPos) {
+ 445 => function ($stackPos) {
$this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 444 => function ($stackPos) {
+ 446 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(3-2)];
},
- 445 => function ($stackPos) {
+ 447 => function ($stackPos) {
$this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
},
- 446 => function ($stackPos) {
+ 448 => function ($stackPos) {
$this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 447 => function ($stackPos) {
+ 449 => function ($stackPos) {
$this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 448 => function ($stackPos) {
+ 450 => function ($stackPos) {
$this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 449 => function ($stackPos) {
+ 451 => function ($stackPos) {
$this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 450 => function ($stackPos) {
+ 452 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 451 => function ($stackPos) {
+ 453 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 452 => function ($stackPos) {
+ 454 => function ($stackPos) {
$this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 453 => function ($stackPos) {
+ 455 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 454 => function ($stackPos) {
+ 456 => function ($stackPos) {
$this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 455 => function ($stackPos) {
+ 457 => function ($stackPos) {
$this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 456 => function ($stackPos) {
+ 458 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes;
$attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]);
$this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs);
},
- 457 => function ($stackPos) {
+ 459 => function ($stackPos) {
$this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 458 => function ($stackPos) {
+ 460 => function ($stackPos) {
$this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 459 => function ($stackPos) {
+ 461 => function ($stackPos) {
$this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 460 => function ($stackPos) {
+ 462 => function ($stackPos) {
$this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 461 => function ($stackPos) {
+ 463 => function ($stackPos) {
$this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 462 => function ($stackPos) {
+ 464 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes;
$attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE;
$this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs);
},
- 463 => function ($stackPos) {
- $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
- },
- 464 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
- },
465 => function ($stackPos) {
- $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
466 => function ($stackPos) {
- $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
467 => function ($stackPos) {
- $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
468 => function ($stackPos) {
- $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
469 => function ($stackPos) {
- $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
470 => function ($stackPos) {
- $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
471 => function ($stackPos) {
- $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
472 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
+ $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
473 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
474 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
475 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
476 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes);
},
477 => function ($stackPos) {
- $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
478 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
479 => function ($stackPos) {
- $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
},
480 => function ($stackPos) {
- $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]);
- $this->checkClass($this->semValue[0], -1);
+ $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
},
481 => function ($stackPos) {
- $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
},
482 => function ($stackPos) {
- list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]);
+ $this->checkClass($this->semValue[0], -1);
},
483 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
484 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(4-3)];
+ list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
485 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(2-1)];
+ $this->semValue = array();
},
486 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ $this->semValue = $this->semStack[$stackPos-(4-3)];
},
487 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos-(2-1)];
},
488 => function ($stackPos) {
- $this->semValue = new Node\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
489 => function ($stackPos) {
- $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
490 => function ($stackPos) {
- $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Node\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
491 => function ($stackPos) {
- $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
492 => function ($stackPos) {
$this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
493 => function ($stackPos) {
- $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
494 => function ($stackPos) {
- $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
495 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
496 => function ($stackPos) {
$this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
497 => function ($stackPos) {
- $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
498 => function ($stackPos) {
- $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
499 => function ($stackPos) {
- $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
500 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
501 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
502 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
503 => function ($stackPos) {
- $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
504 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
505 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
},
506 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
507 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
508 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = null;
},
509 => function ($stackPos) {
- $this->semValue = array(new Node\InterpolatedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes));
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
510 => function ($stackPos) {
- foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = array();
},
511 => function ($stackPos) {
- $this->semValue = array();
+ $this->semValue = array(new Node\InterpolatedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes));
},
512 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)];
},
513 => function ($stackPos) {
- $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = array();
},
514 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
515 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
516 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
517 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
518 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
519 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
520 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
521 => function ($stackPos) {
- $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
522 => function ($stackPos) {
- $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
523 => function ($stackPos) {
- $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
524 => function ($stackPos) {
- $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
525 => function ($stackPos) {
+ $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+ },
+ 526 => function ($stackPos) {
+ $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2;
+ },
+ 527 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT;
$this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs);
},
- 526 => function ($stackPos) {
+ 528 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG;
$this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs);
$this->createdArrays->attach($this->semValue);
},
- 527 => function ($stackPos) {
+ 529 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)]; $this->createdArrays->attach($this->semValue);
},
- 528 => function ($stackPos) {
+ 530 => function ($stackPos) {
$this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 529 => function ($stackPos) {
+ 531 => function ($stackPos) {
$attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\InterpolatedString($this->semStack[$stackPos-(3-2)], $attrs);
},
- 530 => function ($stackPos) {
- $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, $this->phpVersion->allowsInvalidOctals());
- },
- 531 => function ($stackPos) {
- $this->semValue = Scalar\Float_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
- },
532 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, $this->phpVersion->allowsInvalidOctals());
},
533 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = Scalar\Float_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
534 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
535 => function ($stackPos) {
- $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
536 => function ($stackPos) {
- $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
537 => function ($stackPos) {
$this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
},
538 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true);
},
539 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
},
540 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
541 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
542 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
543 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
544 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -2840,205 +2846,211 @@ class Php8 extends \PhpParser\ParserAbstract
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
547 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
548 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
549 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
550 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
551 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
552 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
553 => function ($stackPos) {
- $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
554 => function ($stackPos) {
- $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
555 => function ($stackPos) {
- $this->semValue = null;
+ $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
556 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
557 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = null;
},
558 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
559 => function ($stackPos) {
- $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
560 => function ($stackPos) {
- $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
561 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
562 => function ($stackPos) {
- $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
563 => function ($stackPos) {
- $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
564 => function ($stackPos) {
- $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
565 => function ($stackPos) {
- $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var;
+ $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
566 => function ($stackPos) {
- $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2;
},
567 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var;
},
568 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
569 => function ($stackPos) {
- $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
570 => function ($stackPos) {
- $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
571 => function ($stackPos) {
- $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
572 => function ($stackPos) {
- $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
573 => function ($stackPos) {
- $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
574 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
575 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
576 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
577 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)];
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
578 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(3-2)];
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
579 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
580 => function ($stackPos) {
- $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
+ $this->semValue = $this->semStack[$stackPos-(3-2)];
},
581 => function ($stackPos) {
- $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Expr\List_::KIND_LIST);
- $this->postprocessList($this->semValue);
+ $this->semValue = $this->semStack[$stackPos-(1-1)];
},
582 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end]->value instanceof Expr\Error) array_pop($this->semValue);
+ $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
},
583 => function ($stackPos) {
- $this->semValue = $this->semStack[$stackPos];
+ $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Expr\List_::KIND_LIST);
+ $this->postprocessList($this->semValue);
},
584 => function ($stackPos) {
- /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */
+ $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end]->value instanceof Expr\Error) array_pop($this->semValue);
},
585 => function ($stackPos) {
- $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+ $this->semValue = $this->semStack[$stackPos];
},
586 => function ($stackPos) {
- $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+ /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */
},
587 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+ $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
},
588 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+ $this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
589 => function ($stackPos) {
$this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
590 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
591 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
592 => function ($stackPos) {
$this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
593 => function ($stackPos) {
- $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true);
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
594 => function ($stackPos) {
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+ },
+ 595 => function ($stackPos) {
+ $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true);
+ },
+ 596 => function ($stackPos) {
/* Create an Error node now to remember the position. We'll later either report an error,
or convert this into a null element, depending on whether this is a creation or destructuring context. */
$attrs = $this->createEmptyElemAttributes($this->lookaheadStartAttributes);
$this->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs);
},
- 595 => function ($stackPos) {
+ 597 => function ($stackPos) {
$this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 596 => function ($stackPos) {
+ 598 => function ($stackPos) {
$this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
},
- 597 => function ($stackPos) {
+ 599 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(1-1)]);
},
- 598 => function ($stackPos) {
+ 600 => function ($stackPos) {
$this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]);
},
- 599 => function ($stackPos) {
+ 601 => function ($stackPos) {
$this->semValue = new Node\InterpolatedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 600 => function ($stackPos) {
+ 602 => function ($stackPos) {
$this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 601 => function ($stackPos) {
+ 603 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
- 602 => function ($stackPos) {
+ 604 => function ($stackPos) {
$this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
},
- 603 => function ($stackPos) {
+ 605 => function ($stackPos) {
$this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 604 => function ($stackPos) {
+ 606 => function ($stackPos) {
$this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 605 => function ($stackPos) {
+ 607 => function ($stackPos) {
$this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 606 => function ($stackPos) {
+ 608 => function ($stackPos) {
$this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
},
- 607 => function ($stackPos) {
+ 609 => function ($stackPos) {
$this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
},
- 608 => function ($stackPos) {
+ 610 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(3-2)];
},
- 609 => function ($stackPos) {
+ 611 => function ($stackPos) {
$this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 610 => function ($stackPos) {
+ 612 => function ($stackPos) {
$this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
},
- 611 => function ($stackPos) {
+ 613 => function ($stackPos) {
$this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
},
- 612 => function ($stackPos) {
+ 614 => function ($stackPos) {
$this->semValue = $this->semStack[$stackPos-(1-1)];
},
];
diff --git a/lib/PhpParser/PhpVersion.php b/lib/PhpParser/PhpVersion.php
index 0a28d054..9dd16816 100644
--- a/lib/PhpParser/PhpVersion.php
+++ b/lib/PhpParser/PhpVersion.php
@@ -141,6 +141,13 @@ class PhpVersion {
return $this->id < 70000;
}
+ /**
+ * Whether this version allows DEL (\x7f) to occur in identifiers.
+ */
+ public function allowsDelInIdentifiers(): bool {
+ return $this->id < 70100;
+ }
+
/**
* Whether this version support yield in expression context without parentheses.
*/
diff --git a/lib/PhpParser/PrettyPrinter.php b/lib/PhpParser/PrettyPrinter.php
index 9eed6072..ceaaba95 100644
--- a/lib/PhpParser/PrettyPrinter.php
+++ b/lib/PhpParser/PrettyPrinter.php
@@ -1,4 +1,4 @@
-<?php
+<?php declare(strict_types=1);
namespace PhpParser;
diff --git a/lib/PhpParser/PrettyPrinter/Standard.php b/lib/PhpParser/PrettyPrinter/Standard.php
index efdbcf53..27b2f9fd 100644
--- a/lib/PhpParser/PrettyPrinter/Standard.php
+++ b/lib/PhpParser/PrettyPrinter/Standard.php
@@ -80,15 +80,15 @@ class Standard extends PrettyPrinterAbstract {
// Names
protected function pName(Name $node): string {
- return implode('\\', $node->parts);
+ return $node->name;
}
protected function pName_FullyQualified(Name\FullyQualified $node): string {
- return '\\' . implode('\\', $node->parts);
+ return '\\' . $node->name;
}
protected function pName_Relative(Name\Relative $node): string {
- return 'namespace\\' . implode('\\', $node->parts);
+ return 'namespace\\' . $node->name;
}
// Magic Constants
@@ -134,12 +134,12 @@ class Standard extends PrettyPrinterAbstract {
$label = $node->getAttribute('docLabel');
if ($label && !$this->containsEndLabel($node->value, $label)) {
if ($node->value === '') {
- return "<<<'$label'\n$label" . $this->docStringEndToken;
+ return "<<<'$label'{$this->newline}$label{$this->docStringEndToken}";
}
// Make sure trailing \r is not combined with following \n into CRLF.
if ($node->value[strlen($node->value) - 1] !== "\r") {
- return "<<<'$label'\n$node->value\n$label"
+ return "<<<'$label'{$this->newline}{$node->value}{$this->newline}$label"
. $this->docStringEndToken;
}
}
@@ -152,10 +152,10 @@ class Standard extends PrettyPrinterAbstract {
$escaped = $this->escapeString($node->value, null);
if ($label && !$this->containsEndLabel($escaped, $label)) {
if ($escaped === '') {
- return "<<<$label\n$label" . $this->docStringEndToken;
+ return "<<<$label{$this->newline}$label{$this->docStringEndToken}";
}
- return "<<<$label\n" . $escaped . "\n$label"
+ return "<<<$label{$this->newline}$escaped{$this->newline}$label"
. $this->docStringEndToken;
}
/* break missing intentionally */
@@ -174,11 +174,11 @@ class Standard extends PrettyPrinterAbstract {
&& $node->parts[0] instanceof Node\InterpolatedStringPart
&& $node->parts[0]->value === ''
) {
- return "<<<$label\n$label" . $this->docStringEndToken;
+ return "<<<$label{$this->newline}$label{$this->docStringEndToken}";
}
- return "<<<$label\n" . $this->pEncapsList($node->parts, null) . "\n$label"
- . $this->docStringEndToken;
+ return "<<<$label{$this->newline}" . $this->pEncapsList($node->parts, null)
+ . "{$this->newline}$label{$this->docStringEndToken}";
}
}
return '"' . $this->pEncapsList($node->parts, '"') . '"';
@@ -728,7 +728,7 @@ class Standard extends PrettyPrinterAbstract {
}
return $this->pPrefixOp(
Expr\Yield_::class, 'yield ' . $this->pKey($node->key),
- $node->value, $precedence, $lhsPrecedence);
+ $node->value, $precedence, $lhsPrecedence);
}
}
@@ -842,7 +842,9 @@ class Standard extends PrettyPrinterAbstract {
protected function pStmt_ClassConst(Stmt\ClassConst $node): string {
return $this->pAttrGroups($node->attrGroups)
. $this->pModifiers($node->flags)
- . 'const ' . $this->pCommaSeparated($node->consts) . ';';
+ . 'const '
+ . (null !== $node->type ? $this->p($node->type) . ' ' : '')
+ . $this->pCommaSeparated($node->consts) . ';';
}
protected function pStmt_Function(Stmt\Function_ $node): string {
@@ -881,6 +883,10 @@ class Standard extends PrettyPrinterAbstract {
}
protected function pStmt_Else(Stmt\Else_ $node): string {
+ if (\count($node->stmts) === 1 && $node->stmts[0] instanceof Stmt\If_) {
+ // Print as "else if" rather than "else { if }"
+ return 'else ' . $this->p($node->stmts[0]);
+ }
return 'else {' . $this->pStmts($node->stmts) . $this->nl . '}';
}
@@ -987,7 +993,7 @@ class Standard extends PrettyPrinterAbstract {
}
protected function pStmt_InlineHTML(Stmt\InlineHTML $node): string {
- $newline = $node->getAttribute('hasLeadingNewline', true) ? "\n" : '';
+ $newline = $node->getAttribute('hasLeadingNewline', true) ? $this->newline : '';
return '?>' . $newline . $node->value . '<?php ';
}
diff --git a/lib/PhpParser/PrettyPrinterAbstract.php b/lib/PhpParser/PrettyPrinterAbstract.php
index d20b4f6b..3eb03db0 100644
--- a/lib/PhpParser/PrettyPrinterAbstract.php
+++ b/lib/PhpParser/PrettyPrinterAbstract.php
@@ -104,6 +104,8 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
/** @var int Current indentation level. */
protected $indentLevel;
+ /** @var string Newline style. Does not include current indentation. */
+ protected $newline;
/** @var string Newline including current indentation. */
protected $nl;
/** @var string|null Token placed at end of doc string to ensure it is followed by a newline.
@@ -159,20 +161,29 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
* Creates a pretty printer instance using the given options.
*
* Supported options:
- * * PhpVersion $phpVersion: The PHP version to target (default to PHP 7.0). This option
+ * * PhpVersion $phpVersion: The PHP version to target (default to PHP 7.1). This option
* controls compatibility of the generated code with older PHP
* versions in cases where a simple stylistic choice exists (e.g.
* array() vs []). It is safe to pretty-print an AST for a newer
* PHP version while specifying an older target (but the result will
* of course not be compatible with the older version in that case).
+ * * string $newline: The newline style to use. Should be "\n" (default) or "\r\n".
* * bool $shortArraySyntax: Whether to use [] instead of array() as the default array
* syntax, if the node does not specify a format. Defaults to whether
* the phpVersion support short array syntax.
*
- * @param array{phpVersion?: PhpVersion, shortArraySyntax?: bool} $options Dictionary of formatting options
+ * @param array{
+ * phpVersion?: PhpVersion, newline?: string, shortArraySyntax?: bool
+ * } $options Dictionary of formatting options
*/
public function __construct(array $options = []) {
- $this->phpVersion = $options['phpVersion'] ?? PhpVersion::fromComponents(7, 0);
+ $this->phpVersion = $options['phpVersion'] ?? PhpVersion::fromComponents(7, 1);
+
+ $this->newline = $options['newline'] ?? "\n";
+ if ($this->newline !== "\n" && $this->newline != "\r\n") {
+ throw new \LogicException('Option "newline" must be one of "\n" or "\r\n"');
+ }
+
$this->shortArraySyntax =
$options['shortArraySyntax'] ?? $this->phpVersion->supportsShortArraySyntax();
$this->docStringEndToken =
@@ -184,7 +195,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
*/
protected function resetState(): void {
$this->indentLevel = 0;
- $this->nl = "\n";
+ $this->nl = $this->newline;
$this->origTokens = null;
}
@@ -195,7 +206,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
*/
protected function setIndentLevel(int $level): void {
$this->indentLevel = $level;
- $this->nl = "\n" . \str_repeat(' ', $level);
+ $this->nl = $this->newline . \str_repeat(' ', $level);
}
/**
@@ -212,7 +223,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
protected function outdent(): void {
assert($this->indentLevel >= 4);
$this->indentLevel -= 4;
- $this->nl = "\n" . str_repeat(' ', $this->indentLevel);
+ $this->nl = $this->newline . str_repeat(' ', $this->indentLevel);
}
/**
@@ -250,13 +261,13 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
*/
public function prettyPrintFile(array $stmts): string {
if (!$stmts) {
- return "<?php\n\n";
+ return "<?php" . $this->newline . $this->newline;
}
- $p = "<?php\n\n" . $this->prettyPrint($stmts);
+ $p = "<?php" . $this->newline . $this->newline . $this->prettyPrint($stmts);
if ($stmts[0] instanceof Stmt\InlineHTML) {
- $p = preg_replace('/^<\?php\s+\?>\n?/', '', $p);
+ $p = preg_replace('/^<\?php\s+\?>\r?\n?/', '', $p);
}
if ($stmts[count($stmts) - 1] instanceof Stmt\InlineHTML) {
$p = preg_replace('/<\?php$/', '', rtrim($p));
@@ -290,8 +301,11 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
protected function handleMagicTokens(string $str): string {
if ($this->docStringEndToken !== null) {
// Replace doc-string-end tokens with nothing or a newline
- $str = str_replace($this->docStringEndToken . ";\n", ";\n", $str);
- $str = str_replace($this->docStringEndToken, "\n", $str);
+ $str = str_replace(
+ $this->docStringEndToken . ';' . $this->newline,
+ ';' . $this->newline,
+ $str);
+ $str = str_replace($this->docStringEndToken, $this->newline, $str);
}
return $str;
@@ -537,10 +551,10 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
} else {
// Fallback
// TODO Add <?php properly
- $result = "<?php\n" . $this->pStmts($stmts, false);
+ $result = "<?php" . $this->newline . $this->pStmts($stmts, false);
}
- return ltrim($this->handleMagicTokens($result));
+ return $this->handleMagicTokens($result);
}
protected function pFallback(Node $node, int $precedence, int $lhsPrecedence): string {
@@ -1244,10 +1258,12 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
$this->labelCharMap = [];
for ($i = 0; $i < 256; $i++) {
- // Since PHP 7.1 The lower range is 0x80. However, we also want to support code for
- // older versions.
$chr = chr($i);
- $this->labelCharMap[$chr] = $i >= 0x7f || ctype_alnum($chr);
+ $this->labelCharMap[$chr] = $i >= 0x80 || ctype_alnum($chr);
+ }
+
+ if ($this->phpVersion->allowsDelInIdentifiers()) {
+ $this->labelCharMap["\x7f"] = true;
}
}
@@ -1389,6 +1405,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
'Param->default' => $stripEquals,
'Stmt_Break->num' => $stripBoth,
'Stmt_Catch->var' => $stripLeft,
+ 'Stmt_ClassConst->type' => $stripRight,
'Stmt_ClassMethod->returnType' => $stripColon,
'Stmt_Class->extends' => ['left' => \T_EXTENDS],
'Stmt_Enum->scalarType' => $stripColon,
@@ -1432,6 +1449,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
'Stmt_Break->num' => [\T_BREAK, false, ' ', null],
'Stmt_Catch->var' => [null, false, ' ', null],
'Stmt_ClassMethod->returnType' => [')', false, ': ', null],
+ 'Stmt_ClassConst->type' => [\T_CONST, false, ' ', null],
'Stmt_Class->extends' => [null, false, ' extends ', null],
'Stmt_Enum->scalarType' => [null, false, ' : ', null],
'Stmt_EnumCase->expr' => [null, false, ' = ', null],
@@ -1629,6 +1647,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter {
Stmt\ClassMethod::class . '->flags' => ['pModifiers', \T_FUNCTION],
Stmt\Class_::class . '->flags' => ['pModifiers', \T_CLASS],
Stmt\Property::class . '->flags' => ['pModifiers', \T_VARIABLE],
+ PrintableNewAnonClassNode::class . '->flags' => ['pModifiers', \T_CLASS],
Param::class . '->flags' => ['pModifiers', \T_VARIABLE],
Expr\Closure::class . '->static' => ['pStatic', \T_FUNCTION],
Expr\ArrowFunction::class . '->static' => ['pStatic', \T_FN],
diff --git a/test/PhpParser/Builder/ClassConstTest.php b/test/PhpParser/Builder/ClassConstTest.php
index 715a5bb6..4a71e0fd 100644
--- a/test/PhpParser/Builder/ClassConstTest.php
+++ b/test/PhpParser/Builder/ClassConstTest.php
@@ -142,6 +142,18 @@ class ClassConstTest extends \PHPUnit\Framework\TestCase {
);
}
+ public function testType() {
+ $node = $this->createClassConstBuilder('TYPE', 1)
+ ->setType('int')
+ ->getNode();
+ $this->assertEquals(
+ new Stmt\ClassConst(
+ [new Const_('TYPE', new Int_(1))],
+ 0, [], [], new Identifier('int')),
+ $node
+ );
+ }
+
/**
* @dataProvider provideTestDefaultValues
*/
diff --git a/test/PhpParser/Builder/ParamTest.php b/test/PhpParser/Builder/ParamTest.php
index 62c357e7..58a6c042 100644
--- a/test/PhpParser/Builder/ParamTest.php
+++ b/test/PhpParser/Builder/ParamTest.php
@@ -2,6 +2,7 @@
namespace PhpParser\Builder;
+use PhpParser\Modifiers;
use PhpParser\Node;
use PhpParser\Node\Arg;
use PhpParser\Node\Attribute;
@@ -204,6 +205,54 @@ class ParamTest extends \PHPUnit\Framework\TestCase {
);
}
+ public function testMakePublic() {
+ $node = $this->createParamBuilder('test')
+ ->makePublic()
+ ->getNode()
+ ;
+
+ $this->assertEquals(
+ new Node\Param(new Expr\Variable('test'), null, null, false, false, [], Modifiers::PUBLIC),
+ $node
+ );
+ }
+
+ public function testMakeProtected() {
+ $node = $this->createParamBuilder('test')
+ ->makeProtected()
+ ->getNode()
+ ;
+
+ $this->assertEquals(
+ new Node\Param(new Expr\Variable('test'), null, null, false, false, [], Modifiers::PROTECTED),
+ $node
+ );
+ }
+
+ public function testMakePrivate() {
+ $node = $this->createParamBuilder('test')
+ ->makePrivate()
+ ->getNode()
+ ;
+
+ $this->assertEquals(
+ new Node\Param(new Expr\Variable('test'), null, null, false, false, [], Modifiers::PRIVATE),
+ $node
+ );
+ }
+
+ public function testMakeReadonly() {
+ $node = $this->createParamBuilder('test')
+ ->makeReadonly()
+ ->getNode()
+ ;
+
+ $this->assertEquals(
+ new Node\Param(new Expr\Variable('test'), null, null, false, false, [], Modifiers::READONLY),
+ $node
+ );
+ }
+
public function testAddAttribute() {
$attribute = new Attribute(
new Name('Attr'),
diff --git a/test/PhpParser/BuilderHelpersTest.php b/test/PhpParser/BuilderHelpersTest.php
index 493e71e9..d70be9d8 100644
--- a/test/PhpParser/BuilderHelpersTest.php
+++ b/test/PhpParser/BuilderHelpersTest.php
@@ -3,6 +3,7 @@
namespace PhpParser;
use PhpParser\Builder\Class_;
+use PhpParser\Node\Identifier;
use PhpParser\Node\Scalar;
use PhpParser\Node\Stmt;
use PhpParser\Node\Expr;
@@ -136,7 +137,7 @@ class BuilderHelpersTest extends \PHPUnit\Framework\TestCase {
$intName = new Node\Name('int');
$this->assertSame($intName, BuilderHelpers::normalizeType($intName));
- $intNullable = new Node\NullableType('int');
+ $intNullable = new Node\NullableType(new Identifier('int'));
$this->assertSame($intNullable, BuilderHelpers::normalizeType($intNullable));
$unionType = new Node\UnionType([new Node\Identifier('int'), new Node\Identifier('string')]);
diff --git a/test/PhpParser/CodeTestParser.php b/test/PhpParser/CodeTestParser.php
index d77a50f0..bde0a5fd 100644
--- a/test/PhpParser/CodeTestParser.php
+++ b/test/PhpParser/CodeTestParser.php
@@ -47,7 +47,7 @@ class CodeTestParser {
}
$result .= $lastPart;
}
- return $result;
+ return $result . "\n";
}
private function extractMode(string $expected): array {
diff --git a/test/PhpParser/CommentTest.php b/test/PhpParser/CommentTest.php
index 49cf631a..7b3493de 100644
--- a/test/PhpParser/CommentTest.php
+++ b/test/PhpParser/CommentTest.php
@@ -33,47 +33,37 @@ class CommentTest extends \PHPUnit\Framework\TestCase {
['// Some text', '// Some text'],
['/* Some text */', '/* Some text */'],
[
- '/**
- * Some text.
- * Some more text.
- */',
- '/**
- * Some text.
- * Some more text.
- */'
+ "/**\n * Some text.\n * Some more text.\n */",
+ "/**\n * Some text.\n * Some more text.\n */"
],
[
- '/*
- Some text.
- Some more text.
- */',
- '/*
- Some text.
- Some more text.
-*/'
+ "/**\r\n * Some text.\r\n * Some more text.\r\n */",
+ "/**\n * Some text.\n * Some more text.\n */"
],
[
- '/* Some text.
- More text.
- Even more text. */',
- '/* Some text.
- More text.
- Even more text. */'
+ "/*\n Some text.\n Some more text.\n */",
+ "/*\n Some text.\n Some more text.\n*/"
],
[
- '/* Some text.
- More text.
- Indented text. */',
- '/* Some text.
- More text.
- Indented text. */',
+ "/*\r\n Some text.\r\n Some more text.\r\n */",
+ "/*\n Some text.\n Some more text.\n*/"
+ ],
+ [
+ "/* Some text.\n More text.\n Even more text. */",
+ "/* Some text.\n More text.\n Even more text. */"
+ ],
+ [
+ "/* Some text.\r\n More text.\r\n Even more text. */",
+ "/* Some text.\n More text.\n Even more text. */"
+ ],
+ [
+ "/* Some text.\n More text.\n Indented text. */",
+ "/* Some text.\n More text.\n Indented text. */",
],
// invalid comment -> no reformatting
[
- 'hallo
- world',
- 'hallo
- world',
+ "hello\n world",
+ "hello\n world",
],
];
}
diff --git a/test/PhpParser/Internal/DifferTest.php b/test/PhpParser/Internal/DifferTest.php
index 8ff3cb5c..8b84c1a0 100644
--- a/test/PhpParser/Internal/DifferTest.php
+++ b/test/PhpParser/Internal/DifferTest.php
@@ -65,4 +65,15 @@ class DifferTest extends \PHPUnit\Framework\TestCase {
['abcde', 'axyzue', 'a-b-c-d+x+y+z+ue'],
];
}
+
+ public function testNonContiguousIndices() {
+ $differ = new Differ(function ($a, $b) {
+ return $a === $b;
+ });
+ $diff = $differ->diff([0 => 'a', 2 => 'b'], [0 => 'a', 3 => 'b']);
+ $this->assertEquals([
+ new DiffElem(DiffElem::TYPE_KEEP, 'a', 'a'),
+ new DiffElem(DiffElem::TYPE_KEEP, 'b', 'b'),
+ ], $diff);
+ }
}
diff --git a/test/PhpParser/LexerTest.php b/test/PhpParser/LexerTest.php
index 2d6b8c92..4538280c 100644
--- a/test/PhpParser/LexerTest.php
+++ b/test/PhpParser/LexerTest.php
@@ -47,6 +47,14 @@ class LexerTest extends \PHPUnit\Framework\TestCase {
];
}
+ public function testDefaultErrorHandler() {
+ $this->expectException(Error::class);
+ $this->expectExceptionMessage('Unterminated comment on line 1');
+ $lexer = $this->getLexer();
+ $lexer->startLexing("<?php readonly /*");
+ $lexer->getNextToken();
+ }
+
/**
* @dataProvider provideTestLex
*/
diff --git a/test/PhpParser/Node/NameTest.php b/test/PhpParser/Node/NameTest.php
index 36121ec4..50df3624 100644
--- a/test/PhpParser/Node/NameTest.php
+++ b/test/PhpParser/Node/NameTest.php
@@ -5,23 +5,25 @@ namespace PhpParser\Node;
class NameTest extends \PHPUnit\Framework\TestCase {
public function testConstruct() {
$name = new Name(['foo', 'bar']);
- $this->assertSame(['foo', 'bar'], $name->parts);
+ $this->assertSame('foo\bar', $name->name);
$name = new Name('foo\bar');
- $this->assertSame(['foo', 'bar'], $name->parts);
+ $this->assertSame('foo\bar', $name->name);
$name = new Name($name);
- $this->assertSame(['foo', 'bar'], $name->parts);
+ $this->assertSame('foo\bar', $name->name);
}
public function testGet() {
$name = new Name('foo');
$this->assertSame('foo', $name->getFirst());
$this->assertSame('foo', $name->getLast());
+ $this->assertSame(['foo'], $name->getParts());
$name = new Name('foo\bar');
$this->assertSame('foo', $name->getFirst());
$this->assertSame('bar', $name->getLast());
+ $this->assertSame(['foo', 'bar'], $name->getParts());
}
public function testToString() {
diff --git a/test/PhpParser/NodeDumperTest.php b/test/PhpParser/NodeDumperTest.php
index 70ca6f21..79b27345 100644
--- a/test/PhpParser/NodeDumperTest.php
+++ b/test/PhpParser/NodeDumperTest.php
@@ -34,10 +34,7 @@ class NodeDumperTest extends \PHPUnit\Framework\TestCase {
[
new Node\Name(['Hallo', 'World']),
'Name(
- parts: array(
- 0: Hallo
- 1: World
- )
+ name: Hallo\World
)'
],
[
diff --git a/test/PhpParser/NodeTraverserTest.php b/test/PhpParser/NodeTraverserTest.php
index 26f3d12b..6af99622 100644
--- a/test/PhpParser/NodeTraverserTest.php
+++ b/test/PhpParser/NodeTraverserTest.php
@@ -3,7 +3,10 @@
namespace PhpParser;
use PhpParser\Node\Expr;
+use PhpParser\Node\Scalar\Int_;
use PhpParser\Node\Scalar\String_;
+use PhpParser\Node\Stmt\Else_;
+use PhpParser\Node\Stmt\If_;
class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
public function testNonModifying() {
@@ -34,8 +37,9 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$str2Node = new String_('Bar');
$printNode = new Expr\Print_($str1Node);
- // first visitor changes the node, second verifies the change
- $visitor1 = new NodeVisitorForTesting([
+ // Visitor 2 performs changes, visitors 1 and 3 observe the changes.
+ $visitor1 = new NodeVisitorForTesting();
+ $visitor2 = new NodeVisitorForTesting([
['beforeTraverse', [], [$str1Node]],
['enterNode', $str1Node, $printNode],
['enterNode', $str1Node, $str2Node],
@@ -43,22 +47,35 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
['leaveNode', $printNode, $str1Node],
['afterTraverse', [$str1Node], []],
]);
- $visitor2 = new NodeVisitorForTesting();
+ $visitor3 = new NodeVisitorForTesting();
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor1);
$traverser->addVisitor($visitor2);
+ $traverser->addVisitor($visitor3);
// as all operations are reversed we end where we start
$this->assertEquals([], $traverser->traverse([]));
$this->assertEquals([
- ['beforeTraverse', [$str1Node]],
- ['enterNode', $printNode],
- ['enterNode', $str2Node],
+ // Sees nodes before changes on entry.
+ ['beforeTraverse', []],
+ ['enterNode', $str1Node],
+ ['enterNode', $str1Node],
+ // Sees nodes after changes on leave.
['leaveNode', $str1Node],
['leaveNode', $str1Node],
['afterTraverse', []],
- ], $visitor2->trace);
+ ], $visitor1->trace);
+ $this->assertEquals([
+ // Sees nodes after changes on entry.
+ ['beforeTraverse', [$str1Node]],
+ ['enterNode', $printNode],
+ ['enterNode', $str2Node],
+ // Sees nodes before changes on leave.
+ ['leaveNode', $str2Node],
+ ['leaveNode', $printNode],
+ ['afterTraverse', [$str1Node]],
+ ], $visitor3->trace);
}
public function testRemoveFromLeave() {
@@ -66,13 +83,13 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$str2Node = new String_('Bar');
$visitor = new NodeVisitorForTesting([
- ['leaveNode', $str1Node, NodeTraverser::REMOVE_NODE],
+ ['leaveNode', $str1Node, NodeVisitor::REMOVE_NODE],
]);
$visitor2 = new NodeVisitorForTesting();
$traverser = new NodeTraverser();
- $traverser->addVisitor($visitor);
$traverser->addVisitor($visitor2);
+ $traverser->addVisitor($visitor);
$stmts = [$str1Node, $str2Node];
$this->assertEquals([$str2Node], $traverser->traverse($stmts));
@@ -90,7 +107,7 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$str2Node = new String_('Bar');
$visitor = new NodeVisitorForTesting([
- ['enterNode', $str1Node, NodeTraverser::REMOVE_NODE],
+ ['enterNode', $str1Node, NodeVisitor::REMOVE_NODE],
]);
$visitor2 = new NodeVisitorForTesting();
@@ -172,10 +189,10 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$stmts = [$printNode, $negNode];
$visitor1 = new NodeVisitorForTesting([
- ['enterNode', $printNode, NodeTraverser::DONT_TRAVERSE_CHILDREN],
+ ['enterNode', $printNode, NodeVisitor::DONT_TRAVERSE_CHILDREN],
]);
$visitor2 = new NodeVisitorForTesting([
- ['enterNode', $mulNode, NodeTraverser::DONT_TRAVERSE_CHILDREN],
+ ['enterNode', $mulNode, NodeVisitor::DONT_TRAVERSE_CHILDREN],
]);
$expectedTrace = [
@@ -209,8 +226,8 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$stmts = [$printNode, $negNode];
$visitor1 = new NodeVisitorForTesting([
- ['enterNode', $printNode, NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN],
- ['enterNode', $mulNode, NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN],
+ ['enterNode', $printNode, NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN],
+ ['enterNode', $mulNode, NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN],
['leaveNode', $mulNode, $divNode],
]);
$visitor2 = new NodeVisitorForTesting();
@@ -250,7 +267,7 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
// From enterNode() with array parent
$visitor = new NodeVisitorForTesting([
- ['enterNode', $mulNode, NodeTraverser::STOP_TRAVERSAL],
+ ['enterNode', $mulNode, NodeVisitor::STOP_TRAVERSAL],
]);
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor);
@@ -263,7 +280,7 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
// From enterNode with Node parent
$visitor = new NodeVisitorForTesting([
- ['enterNode', $varNode1, NodeTraverser::STOP_TRAVERSAL],
+ ['enterNode', $varNode1, NodeVisitor::STOP_TRAVERSAL],
]);
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor);
@@ -277,7 +294,7 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
// From leaveNode with Node parent
$visitor = new NodeVisitorForTesting([
- ['leaveNode', $varNode1, NodeTraverser::STOP_TRAVERSAL],
+ ['leaveNode', $varNode1, NodeVisitor::STOP_TRAVERSAL],
]);
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor);
@@ -292,7 +309,7 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
// From leaveNode with array parent
$visitor = new NodeVisitorForTesting([
- ['leaveNode', $mulNode, NodeTraverser::STOP_TRAVERSAL],
+ ['leaveNode', $mulNode, NodeVisitor::STOP_TRAVERSAL],
]);
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor);
@@ -310,8 +327,8 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
// Check that pending array modifications are still carried out
$visitor = new NodeVisitorForTesting([
- ['leaveNode', $mulNode, NodeTraverser::REMOVE_NODE],
- ['enterNode', $printNode, NodeTraverser::STOP_TRAVERSAL],
+ ['leaveNode', $mulNode, NodeVisitor::REMOVE_NODE],
+ ['enterNode', $printNode, NodeVisitor::STOP_TRAVERSAL],
]);
$traverser = new NodeTraverser();
$traverser->addVisitor($visitor);
@@ -329,6 +346,44 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
], $visitor->trace);
}
+ public function testReplaceWithNull() {
+ $one = new Int_(1);
+ $else1 = new Else_();
+ $else2 = new Else_();
+ $if1 = new If_($one, ['else' => $else1]);
+ $if2 = new If_($one, ['else' => $else2]);
+ $stmts = [$if1, $if2];
+ $visitor1 = new NodeVisitorForTesting([
+ ['enterNode', $else1, NodeVisitor::REPLACE_WITH_NULL],
+ ['leaveNode', $else2, NodeVisitor::REPLACE_WITH_NULL],
+ ]);
+ $visitor2 = new NodeVisitorForTesting();
+ $traverser = new NodeTraverser();
+ $traverser->addVisitor($visitor1);
+ $traverser->addVisitor($visitor2);
+ $newStmts = $traverser->traverse($stmts);
+ $this->assertEquals([
+ new If_($one),
+ new If_($one),
+ ], $newStmts);
+ $this->assertEquals([
+ ['beforeTraverse', $stmts],
+ ['enterNode', $if1],
+ ['enterNode', $one],
+ // We never see the if1 Else node.
+ ['leaveNode', $one],
+ ['leaveNode', $if1],
+ ['enterNode', $if2],
+ ['enterNode', $one],
+ ['leaveNode', $one],
+ // We do see the if2 Else node, as it will only be replaced afterwards.
+ ['enterNode', $else2],
+ ['leaveNode', $else2],
+ ['leaveNode', $if2],
+ ['afterTraverse', $stmts],
+ ], $visitor2->trace);
+ }
+
public function testRemovingVisitor() {
$visitor1 = new class () extends NodeVisitorAbstract {};
$visitor2 = new class () extends NodeVisitorAbstract {};
@@ -348,7 +403,7 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$traverser->removeVisitor($visitor2);
- $postExpected = [0 => $visitor1, 2 => $visitor3];
+ $postExpected = [$visitor1, $visitor3];
$this->assertSame($postExpected, $getVisitors());
}
@@ -401,6 +456,12 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
$visitor8 = new NodeVisitorForTesting([
['enterNode', $num, new Node\Stmt\Return_()],
]);
+ $visitor9 = new NodeVisitorForTesting([
+ ['enterNode', $expr, NodeVisitor::REPLACE_WITH_NULL],
+ ]);
+ $visitor10 = new NodeVisitorForTesting([
+ ['leaveNode', $expr, NodeVisitor::REPLACE_WITH_NULL],
+ ]);
return [
[$stmts, $visitor1, 'enterNode() returned invalid value of type string'],
@@ -411,6 +472,8 @@ class NodeTraverserTest extends \PHPUnit\Framework\TestCase {
[$stmts, $visitor6, 'leaveNode() returned invalid value of type bool'],
[$stmts, $visitor7, 'Trying to replace statement (Stmt_Expression) with expression (Scalar_Int). Are you missing a Stmt_Expression wrapper?'],
[$stmts, $visitor8, 'Trying to replace expression (Scalar_Int) with statement (Stmt_Return)'],
+ [$stmts, $visitor9, 'REPLACE_WITH_NULL can not be used if the parent structure is an array'],
+ [$stmts, $visitor10, 'REPLACE_WITH_NULL can not be used if the parent structure is an array'],
];
}
}
diff --git a/test/PhpParser/NodeVisitor/NameResolverTest.php b/test/PhpParser/NodeVisitor/NameResolverTest.php
index e7b986c5..d38a90c8 100644
--- a/test/PhpParser/NodeVisitor/NameResolverTest.php
+++ b/test/PhpParser/NodeVisitor/NameResolverTest.php
@@ -460,7 +460,7 @@ EOC;
$stmt = $stmts[0];
$assign = $stmt->stmts[1]->expr;
- $this->assertSame(['Bar', 'Baz'], $assign->expr->class->parts);
+ $this->assertSame('Bar\\Baz', $assign->expr->class->name);
}
public function testSpecialClassNamesAreCaseInsensitive() {
diff --git a/test/PhpParser/PrettyPrinterTest.php b/test/PhpParser/PrettyPrinterTest.php
index a2b68f4e..d64b69cb 100644
--- a/test/PhpParser/PrettyPrinterTest.php
+++ b/test/PhpParser/PrettyPrinterTest.php
@@ -210,6 +210,7 @@ use PhpParser\Node;
use PhpParser\Node\Expr;
use PhpParser\Node\Scalar;
use PhpParser\Node\Stmt;
+use PhpParser\Modifiers;
\$fn = function(&\$stmts) { $modification };
CODE
);
@@ -269,4 +270,49 @@ CODE
$this->getTests(__DIR__ . '/../code/parser', 'test')
);
}
+
+ public function testWindowsNewline() {
+ $prettyPrinter = new Standard(['newline' => "\r\n"]);
+ $stmts = [
+ new Stmt\If_(new Int_(1), [
+ 'stmts' => [
+ new Stmt\Echo_([new String_('Hello')]),
+ new Stmt\Echo_([new String_('World')]),
+ ],
+ ]),
+ ];
+ $code = $prettyPrinter->prettyPrint($stmts);
+ $this->assertSame("if (1) {\r\n echo 'Hello';\r\n echo 'World';\r\n}", $code);
+ $code = $prettyPrinter->prettyPrintFile($stmts);
+ $this->assertSame("<?php\r\n\r\nif (1) {\r\n echo 'Hello';\r\n echo 'World';\r\n}", $code);
+
+ $stmts = [new Stmt\InlineHTML('Hello world')];
+ $code = $prettyPrinter->prettyPrintFile($stmts);
+ $this->assertSame("Hello world", $code);
+
+ $stmts = [
+ new Stmt\Expression(new String_('Test', [
+ 'kind' => String_::KIND_NOWDOC,
+ 'docLabel' => 'STR'
+ ])),
+ new Stmt\Expression(new String_('Test 2', [
+ 'kind' => String_::KIND_HEREDOC,
+ 'docLabel' => 'STR'
+ ])),
+ new Stmt\Expression(new InterpolatedString([new InterpolatedStringPart('Test 3')], [
+ 'kind' => String_::KIND_HEREDOC,
+ 'docLabel' => 'STR'
+ ])),
+ ];
+ $code = $prettyPrinter->prettyPrint($stmts);
+ $this->assertSame(
+ "<<<'STR'\r\nTest\r\nSTR;\r\n<<<STR\r\nTest 2\r\nSTR;\r\n<<<STR\r\nTest 3\r\nSTR\r\n;",
+ $code);
+ }
+
+ public function testInvalidNewline() {
+ $this->expectException(\LogicException::class);
+ $this->expectExceptionMessage('Option "newline" must be one of "\n" or "\r\n"');
+ new PrettyPrinter\Standard(['newline' => 'foo']);
+ }
}
diff --git a/test/code/formatPreservation/delAfterIdentifier.test b/test/code/formatPreservation/delAfterIdentifier.test
new file mode 100644
index 00000000..be6f3b62
--- /dev/null
+++ b/test/code/formatPreservation/delAfterIdentifier.test
@@ -0,0 +1,9 @@
+DEL after identifier
+-----
+<?php
+"$a@@{ "\x7f" }@@";
+-----
+/* do nothing */
+-----
+<?php
+"$a@@{ "\x7f" }@@";
diff --git a/test/code/formatPreservation/inlineHtml.test b/test/code/formatPreservation/inlineHtml.test
index 0b131fed..c3afc699 100644
--- a/test/code/formatPreservation/inlineHtml.test
+++ b/test/code/formatPreservation/inlineHtml.test
@@ -110,3 +110,13 @@ function test()
foo();
baz();
}
+-----
+
+
+<?php $x;
+-----
+/* Do nothing, but make sure leading newlines are preserved. */
+-----
+
+
+<?php $x;
diff --git a/test/code/formatPreservation/insertionOfNullable.test b/test/code/formatPreservation/insertionOfNullable.test
index 9822eede..9278d3ec 100644
--- a/test/code/formatPreservation/insertionOfNullable.test
+++ b/test/code/formatPreservation/insertionOfNullable.test
@@ -49,6 +49,10 @@ X
private
$x
;
+
+ const
+ X
+ = 1;
}
foreach (
@@ -86,6 +90,7 @@ $stmts[9]->expr = new Expr\Variable('x');
$stmts[10]->extends = new Node\Name\FullyQualified('Bar');
$stmts[10]->stmts[0]->returnType = new Node\Name('Y');
$stmts[10]->stmts[1]->props[0]->default = new Scalar\DNumber(42.0);
+$stmts[10]->stmts[2]->type = new Node\Identifier('int');
$stmts[11]->keyVar = new Expr\Variable('z');
$stmts[12]->vars[0]->default = new Scalar\String_('abc');
$stmts[13]->finally = new Stmt\Finally_([]);
@@ -140,6 +145,10 @@ X extends \Bar
private
$x = 42.0
;
+
+ const int
+ X
+ = 1;
}
foreach (
diff --git a/test/code/formatPreservation/listInsertion.test b/test/code/formatPreservation/listInsertion.test
index 30b12917..05ae43a2 100644
--- a/test/code/formatPreservation/listInsertion.test
+++ b/test/code/formatPreservation/listInsertion.test
@@ -141,7 +141,7 @@ function test() {
namespace
Foo;
-----
-$stmts[0]->name->parts[0] = 'Xyz';
+$stmts[0]->name->name = 'Xyz';
-----
<?php
namespace
diff --git a/test/code/formatPreservation/listRemoval.test b/test/code/formatPreservation/listRemoval.test
index b0877024..aa276844 100644
--- a/test/code/formatPreservation/listRemoval.test
+++ b/test/code/formatPreservation/listRemoval.test
@@ -207,4 +207,16 @@ class Foo
function getBaz()
{
}
-}
\ No newline at end of file
+}
+-----
+<?php
+class Test {
+ use A, B;
+}
+-----
+unset($stmts[0]->stmts[0]->traits[0]);
+-----
+<?php
+class Test {
+ use B;
+}
diff --git a/test/code/formatPreservation/modifierChange.test b/test/code/formatPreservation/modifierChange.test
index 0c4f6cc4..af74aa28 100644
--- a/test/code/formatPreservation/modifierChange.test
+++ b/test/code/formatPreservation/modifierChange.test
@@ -55,3 +55,14 @@ function test(
public T3 $z
= 'x',
) {}
+-----
+<?php
+new class {};
+new readonly class {};
+-----
+$stmts[0]->expr->class->flags = Modifiers::READONLY;
+$stmts[1]->expr->class->flags = 0;
+-----
+<?php
+readonly class {};
+class {};
diff --git a/test/code/formatPreservation/removalViaNull.test b/test/code/formatPreservation/removalViaNull.test
index 4cc43b2a..a3679289 100644
--- a/test/code/formatPreservation/removalViaNull.test
+++ b/test/code/formatPreservation/removalViaNull.test
@@ -35,6 +35,11 @@ Bar
y
;
}
+
+ const
+ int
+ X
+ = 1;
}
$foo [ $bar ];
@@ -97,6 +102,7 @@ $stmts[2]->extends = null;
$stmts[2]->stmts[0]->returnType = null;
$stmts[2]->stmts[1]->props[0]->default = null;
$stmts[2]->stmts[2]->adaptations[0]->newName = null;
+$stmts[2]->stmts[3]->type = null;
$stmts[3]->expr->dim = null;
$stmts[4]->expr->expr = null;
$stmts[5]->expr->if = null;
@@ -141,6 +147,10 @@ Foo
public
;
}
+
+ const
+ X
+ = 1;
}
$foo [];
diff --git a/test/code/parser/blockComments.test b/test/code/parser/blockComments.test
index 8cfe166d..bc72183d 100644
--- a/test/code/parser/blockComments.test
+++ b/test/code/parser/blockComments.test
@@ -33,4 +33,4 @@ array(
0: // empty
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/comments.test b/test/code/parser/comments.test
index be797fd3..404cfaa8 100644
--- a/test/code/parser/comments.test
+++ b/test/code/parser/comments.test
@@ -105,4 +105,4 @@ array(
0: // comment
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/errorHandling/eofError.test b/test/code/parser/errorHandling/eofError.test
index 012841de..c3423856 100644
--- a/test/code/parser/errorHandling/eofError.test
+++ b/test/code/parser/errorHandling/eofError.test
@@ -7,9 +7,7 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
)
)
@@ -22,9 +20,7 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
)
)
@@ -33,4 +29,4 @@ array(
0: /* bar */
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/errorHandling/recovery.test b/test/code/parser/errorHandling/recovery.test
index e26bdd12..8101a7e2 100644
--- a/test/code/parser/errorHandling/recovery.test
+++ b/test/code/parser/errorHandling/recovery.test
@@ -13,9 +13,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -24,9 +22,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
args: array(
)
@@ -35,9 +31,7 @@ array(
2: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: baz
- )
+ name: baz
)
args: array(
)
@@ -56,9 +50,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -67,9 +59,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
args: array(
)
@@ -78,9 +68,7 @@ array(
2: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: baz
- )
+ name: baz
)
args: array(
)
@@ -99,9 +87,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -110,9 +96,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
args: array(
)
@@ -121,9 +105,7 @@ array(
2: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: baz
- )
+ name: baz
)
args: array(
)
@@ -140,9 +122,7 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: abc
- )
+ name: abc
)
)
)
@@ -339,9 +319,7 @@ array(
0: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: T
- )
+ name: T
)
args: array(
)
@@ -402,9 +380,7 @@ array(
0: Stmt_Expression(
expr: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
name: Expr_Error(
)
@@ -420,9 +396,7 @@ array(
0: Stmt_Expression(
expr: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
name: Expr_Error(
)
@@ -455,9 +429,7 @@ Syntax error, unexpected T_THROW, expecting ';' from 15:1 to 15:5
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
stmts: array(
0: Stmt_Use(
@@ -466,9 +438,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
alias: null
)
@@ -480,9 +450,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: a
- )
+ name: a
)
alias: null
)
@@ -491,17 +459,13 @@ array(
2: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
alias: null
)
@@ -619,17 +583,13 @@ array(
0: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
alias: null
)
@@ -638,17 +598,13 @@ array(
1: Stmt_GroupUse(
type: TYPE_FUNCTION (2)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: b
- )
+ name: b
)
alias: null
)
@@ -660,9 +616,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
alias: null
)
@@ -690,18 +644,14 @@ array(
extends: null
implements: array(
0: Name(
- parts: array(
- 0: Y
- )
+ name: Y
)
)
stmts: array(
0: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
adaptations: array(
@@ -710,26 +660,20 @@ array(
1: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
adaptations: array(
0: Stmt_TraitUseAdaptation_Precedence(
trait: Name(
- parts: array(
- 0: A
- )
+ name: A
)
method: Identifier(
name: b
)
insteadof: array(
0: Name(
- parts: array(
- 0: C
- )
+ name: C
)
)
)
@@ -739,6 +683,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -774,9 +719,7 @@ array(
)
extends: array(
0: Name(
- parts: array(
- 0: J
- )
+ name: J
)
)
stmts: array(
@@ -866,18 +809,14 @@ array(
0: Stmt_Expression[3:1 - 3:11](
expr: Expr_FuncCall[3:1 - 3:10](
name: Name[3:1 - 3:3](
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
0: Arg[3:5 - 3:9](
name: null
value: Expr_ClassConstFetch[3:5 - 3:9](
class: Name[3:5 - 3:7](
- parts: array(
- 0: Bar
- )
+ name: Bar
)
name: Expr_Error[3:10 - 3:9](
)
@@ -1017,9 +956,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Type
- )
+ name: Type
)
byRef: false
variadic: false
@@ -1050,9 +987,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Type1
- )
+ name: Type1
)
byRef: false
variadic: false
@@ -1066,9 +1001,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Type2
- )
+ name: Type2
)
byRef: false
variadic: false
@@ -1157,9 +1090,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
byRef: false
variadic: false
@@ -1197,9 +1128,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Baz
- )
+ name: Baz
)
byRef: false
variadic: false
@@ -1226,9 +1155,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
byRef: false
variadic: false
@@ -1495,6 +1422,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
diff --git a/test/code/parser/expr/arrayDef.test b/test/code/parser/expr/arrayDef.test
index 11596277..7c068010 100644
--- a/test/code/parser/expr/arrayDef.test
+++ b/test/code/parser/expr/arrayDef.test
@@ -170,4 +170,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/arrayDestructuring.test b/test/code/parser/expr/arrayDestructuring.test
index 148019ba..9b0dfa58 100644
--- a/test/code/parser/expr/arrayDestructuring.test
+++ b/test/code/parser/expr/arrayDestructuring.test
@@ -169,4 +169,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/arrayEmptyElemens.test b/test/code/parser/expr/arrayEmptyElemens.test
index 48e6451d..919c0ece 100644
--- a/test/code/parser/expr/arrayEmptyElemens.test
+++ b/test/code/parser/expr/arrayEmptyElemens.test
@@ -67,4 +67,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/arraySpread.test b/test/code/parser/expr/arraySpread.test
index c6004406..66746794 100644
--- a/test/code/parser/expr/arraySpread.test
+++ b/test/code/parser/expr/arraySpread.test
@@ -220,9 +220,7 @@ array(
key: null
value: Expr_FuncCall(
name: Name(
- parts: array(
- 0: getArr
- )
+ name: getArr
)
args: array(
)
@@ -240,9 +238,7 @@ array(
key: null
value: Expr_FuncCall(
name: Name(
- parts: array(
- 0: arrGen
- )
+ name: arrGen
)
args: array(
)
@@ -260,9 +256,7 @@ array(
key: null
value: Expr_New(
class: Name(
- parts: array(
- 0: ArrayIterator
- )
+ name: ArrayIterator
)
args: array(
0: Arg(
@@ -329,9 +323,7 @@ array(
key: null
value: Expr_FuncCall(
name: Name(
- parts: array(
- 0: getArr
- )
+ name: getArr
)
args: array(
)
@@ -383,9 +375,7 @@ array(
key: null
value: Expr_FuncCall(
name: Name(
- parts: array(
- 0: arrGen
- )
+ name: arrGen
)
args: array(
)
@@ -434,4 +424,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/arrow_function.test b/test/code/parser/expr/arrow_function.test
index 47bd8c55..3ab9e271 100644
--- a/test/code/parser/expr/arrow_function.test
+++ b/test/code/parser/expr/arrow_function.test
@@ -260,4 +260,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/assign.test b/test/code/parser/expr/assign.test
index 9066ac8a..971407e1 100644
--- a/test/code/parser/expr/assign.test
+++ b/test/code/parser/expr/assign.test
@@ -378,4 +378,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/assignNewByRef.test b/test/code/parser/expr/assignNewByRef.test
index 8ed227bd..338d6507 100644
--- a/test/code/parser/expr/assignNewByRef.test
+++ b/test/code/parser/expr/assignNewByRef.test
@@ -12,9 +12,7 @@ array(
)
expr: Expr_New(
class: Name(
- parts: array(
- 0: B
- )
+ name: B
)
args: array(
)
@@ -36,13 +34,11 @@ array(
)
expr: Expr_New(
class: Name(
- parts: array(
- 0: B
- )
+ name: B
)
args: array(
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/cast.test b/test/code/parser/expr/cast.test
index a875bb47..b996548c 100644
--- a/test/code/parser/expr/cast.test
+++ b/test/code/parser/expr/cast.test
@@ -91,4 +91,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/clone.test b/test/code/parser/expr/clone.test
index 418eb0e6..3b2c4a40 100644
--- a/test/code/parser/expr/clone.test
+++ b/test/code/parser/expr/clone.test
@@ -12,4 +12,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/closure.test b/test/code/parser/expr/closure.test
index e87d6a35..304603b3 100644
--- a/test/code/parser/expr/closure.test
+++ b/test/code/parser/expr/closure.test
@@ -190,13 +190,10 @@ array(
)
)
returnType: Name_FullyQualified(
- parts: array(
- 0: Foo
- 1: Bar
- )
+ name: Foo\Bar
)
stmts: array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/closure_use_trailing_comma.test b/test/code/parser/expr/closure_use_trailing_comma.test
index a7fd0e12..3dfdd7ba 100644
--- a/test/code/parser/expr/closure_use_trailing_comma.test
+++ b/test/code/parser/expr/closure_use_trailing_comma.test
@@ -25,4 +25,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/comparison.test b/test/code/parser/expr/comparison.test
index 011692f0..2ff0dd95 100644
--- a/test/code/parser/expr/comparison.test
+++ b/test/code/parser/expr/comparison.test
@@ -110,9 +110,7 @@ array(
name: a
)
class: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
@@ -126,4 +124,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/concatPrecedence.test b/test/code/parser/expr/concatPrecedence.test
index b7a8ce94..293d7d73 100644
--- a/test/code/parser/expr/concatPrecedence.test
+++ b/test/code/parser/expr/concatPrecedence.test
@@ -94,4 +94,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/constant_expr.test b/test/code/parser/expr/constant_expr.test
index 926ebcbc..de7acd91 100644
--- a/test/code/parser/expr/constant_expr.test
+++ b/test/code/parser/expr/constant_expr.test
@@ -682,13 +682,11 @@ array(
value: Expr_BooleanNot(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: false
- )
+ name: false
)
)
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/dynamicClassConst.test b/test/code/parser/expr/dynamicClassConst.test
index a333df8a..0bd68e6b 100644
--- a/test/code/parser/expr/dynamicClassConst.test
+++ b/test/code/parser/expr/dynamicClassConst.test
@@ -8,15 +8,11 @@ array(
0: Stmt_Expression(
expr: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
name: Expr_FuncCall(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
args: array(
)
@@ -30,9 +26,7 @@ array(
)
name: Expr_FuncCall(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
args: array(
)
diff --git a/test/code/parser/expr/errorSuppress.test b/test/code/parser/expr/errorSuppress.test
index 7f099988..44f9b6cf 100644
--- a/test/code/parser/expr/errorSuppress.test
+++ b/test/code/parser/expr/errorSuppress.test
@@ -11,4 +11,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/exit.test b/test/code/parser/expr/exit.test
index c880921f..ced97a4d 100644
--- a/test/code/parser/expr/exit.test
+++ b/test/code/parser/expr/exit.test
@@ -43,4 +43,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/exprInIsset.test b/test/code/parser/expr/exprInIsset.test
index 43e78b4b..f8b678e8 100644
--- a/test/code/parser/expr/exprInIsset.test
+++ b/test/code/parser/expr/exprInIsset.test
@@ -45,4 +45,4 @@ array(
0: // This is illegal, but not a syntax error.
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/exprInList.test b/test/code/parser/expr/exprInList.test
index 1916074c..b4715286 100644
--- a/test/code/parser/expr/exprInList.test
+++ b/test/code/parser/expr/exprInList.test
@@ -77,4 +77,4 @@ array(
0: // This is illegal, but not a syntax error.
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/args.test b/test/code/parser/expr/fetchAndCall/args.test
index 5c4f3863..e883c9cb 100644
--- a/test/code/parser/expr/fetchAndCall/args.test
+++ b/test/code/parser/expr/fetchAndCall/args.test
@@ -12,9 +12,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: f
- )
+ name: f
)
args: array(
)
@@ -23,9 +21,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: f
- )
+ name: f
)
args: array(
0: Arg(
@@ -42,9 +38,7 @@ array(
2: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: f
- )
+ name: f
)
args: array(
0: Arg(
@@ -69,9 +63,7 @@ array(
3: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: f
- )
+ name: f
)
args: array(
0: Arg(
@@ -88,9 +80,7 @@ array(
4: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: f
- )
+ name: f
)
args: array(
0: Arg(
@@ -112,4 +102,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/constFetch.test b/test/code/parser/expr/fetchAndCall/constFetch.test
index 98af79dd..2ef7d5d7 100644
--- a/test/code/parser/expr/fetchAndCall/constFetch.test
+++ b/test/code/parser/expr/fetchAndCall/constFetch.test
@@ -12,18 +12,14 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
)
1: Stmt_Expression(
expr: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -33,9 +29,7 @@ array(
2: Stmt_Expression(
expr: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: class
@@ -62,4 +56,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/constantDeref.test b/test/code/parser/expr/fetchAndCall/constantDeref.test
index b13349ac..181650b0 100644
--- a/test/code/parser/expr/fetchAndCall/constantDeref.test
+++ b/test/code/parser/expr/fetchAndCall/constantDeref.test
@@ -210,9 +210,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: FOO
- )
+ name: FOO
)
)
dim: Scalar_Int(
@@ -224,9 +222,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
name: Identifier(
name: BAR
@@ -262,4 +258,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/funcCall.test b/test/code/parser/expr/fetchAndCall/funcCall.test
index 4a826514..69d5a120 100644
--- a/test/code/parser/expr/fetchAndCall/funcCall.test
+++ b/test/code/parser/expr/fetchAndCall/funcCall.test
@@ -19,9 +19,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: a
- )
+ name: a
comments: array(
0: // function name variations
)
@@ -131,9 +129,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_FuncCall(
name: Name(
- parts: array(
- 0: a
- )
+ name: a
comments: array(
0: // array dereferencing
)
@@ -155,4 +151,4 @@ array(
0: // array dereferencing
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/namedArgs.test b/test/code/parser/expr/fetchAndCall/namedArgs.test
index 1d75cf2d..7a27c6e9 100644
--- a/test/code/parser/expr/fetchAndCall/namedArgs.test
+++ b/test/code/parser/expr/fetchAndCall/namedArgs.test
@@ -8,9 +8,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
0: Arg(
@@ -39,9 +37,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
args: array(
0: Arg(
@@ -57,4 +53,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/newDeref.test b/test/code/parser/expr/fetchAndCall/newDeref.test
index a4b7a724..bfed4374 100644
--- a/test/code/parser/expr/fetchAndCall/newDeref.test
+++ b/test/code/parser/expr/fetchAndCall/newDeref.test
@@ -12,9 +12,7 @@ array(
expr: Expr_PropertyFetch(
var: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
)
@@ -28,9 +26,7 @@ array(
expr: Expr_MethodCall(
var: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
)
@@ -46,9 +42,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
)
@@ -63,9 +57,7 @@ array(
var: Expr_ArrayDimFetch(
var: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
)
@@ -79,4 +71,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/objectAccess.test b/test/code/parser/expr/fetchAndCall/objectAccess.test
index 5f7751ee..9772f261 100644
--- a/test/code/parser/expr/fetchAndCall/objectAccess.test
+++ b/test/code/parser/expr/fetchAndCall/objectAccess.test
@@ -177,4 +177,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test b/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test
index 133771b7..9cc88b9e 100644
--- a/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test
+++ b/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test
@@ -69,4 +69,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/staticCall.test b/test/code/parser/expr/fetchAndCall/staticCall.test
index 47df8f5f..602fe5a9 100644
--- a/test/code/parser/expr/fetchAndCall/staticCall.test
+++ b/test/code/parser/expr/fetchAndCall/staticCall.test
@@ -22,9 +22,7 @@ array(
0: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
comments: array(
0: // method name variations
)
@@ -45,9 +43,7 @@ array(
1: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Scalar_String(
value: b
@@ -59,9 +55,7 @@ array(
2: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Expr_Variable(
name: b
@@ -75,9 +69,7 @@ array(
name: Expr_ArrayDimFetch(
var: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: VarLikeIdentifier(
name: b
@@ -97,9 +89,7 @@ array(
var: Expr_ArrayDimFetch(
var: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: VarLikeIdentifier(
name: b
@@ -121,9 +111,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_StaticCall(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
comments: array(
0: // array dereferencing
)
@@ -151,9 +139,7 @@ array(
6: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: static
- )
+ name: static
comments: array(
0: // class name variations
)
@@ -214,4 +200,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/fetchAndCall/staticPropertyFetch.test b/test/code/parser/expr/fetchAndCall/staticPropertyFetch.test
index a1de3c8c..23878409 100644
--- a/test/code/parser/expr/fetchAndCall/staticPropertyFetch.test
+++ b/test/code/parser/expr/fetchAndCall/staticPropertyFetch.test
@@ -17,9 +17,7 @@ array(
0: Stmt_Expression(
expr: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
comments: array(
0: // property name variations
)
@@ -38,9 +36,7 @@ array(
1: Stmt_Expression(
expr: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Expr_Variable(
name: b
@@ -50,9 +46,7 @@ array(
2: Stmt_Expression(
expr: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Scalar_String(
value: b
@@ -63,9 +57,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
comments: array(
0: // array access
)
@@ -92,9 +84,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: VarLikeIdentifier(
name: b
@@ -110,4 +100,4 @@ array(
0: // class name variations can be found in staticCall.test
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/firstClassCallables.test b/test/code/parser/expr/firstClassCallables.test
index 73ec2ce6..cf1933f3 100644
--- a/test/code/parser/expr/firstClassCallables.test
+++ b/test/code/parser/expr/firstClassCallables.test
@@ -16,9 +16,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
0: VariadicPlaceholder(
@@ -43,9 +41,7 @@ array(
2: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: foo
@@ -59,9 +55,7 @@ array(
3: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
0: VariadicPlaceholder(
@@ -95,9 +89,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
0: VariadicPlaceholder(
@@ -117,4 +109,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/includeAndEval.test b/test/code/parser/expr/includeAndEval.test
index 0ab18908..6d28e7c5 100644
--- a/test/code/parser/expr/includeAndEval.test
+++ b/test/code/parser/expr/includeAndEval.test
@@ -47,4 +47,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/issetAndEmpty.test b/test/code/parser/expr/issetAndEmpty.test
index 3db32c3d..94babbc0 100644
--- a/test/code/parser/expr/issetAndEmpty.test
+++ b/test/code/parser/expr/issetAndEmpty.test
@@ -44,9 +44,7 @@ array(
expr: Expr_Empty(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -85,4 +83,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/keywordsInNamespacedName.test b/test/code/parser/expr/keywordsInNamespacedName.test
index 742beb81..47279f1d 100644
--- a/test/code/parser/expr/keywordsInNamespacedName.test
+++ b/test/code/parser/expr/keywordsInNamespacedName.test
@@ -14,55 +14,41 @@ private\protected\public\static\abstract\final();
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: fn
- )
+ name: fn
)
stmts: array(
)
)
1: Stmt_Namespace(
name: Name(
- parts: array(
- 0: fn
- 1: use
- )
+ name: fn\use
)
stmts: array(
)
)
2: Stmt_Namespace(
name: Name(
- parts: array(
- 0: self
- )
+ name: self
)
stmts: array(
)
)
3: Stmt_Namespace(
name: Name(
- parts: array(
- 0: parent
- )
+ name: parent
)
stmts: array(
)
)
4: Stmt_Namespace(
name: Name(
- parts: array(
- 0: static
- )
+ name: static
)
stmts: array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: fn
- 1: use
- )
+ name: fn\use
)
args: array(
)
@@ -71,10 +57,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name_FullyQualified(
- parts: array(
- 0: fn
- 1: use
- )
+ name: fn\use
)
args: array(
)
@@ -83,10 +66,7 @@ array(
2: Stmt_Expression(
expr: Expr_FuncCall(
name: Name_Relative(
- parts: array(
- 0: fn
- 1: use
- )
+ name: fn\use
)
args: array(
)
@@ -95,14 +75,7 @@ array(
3: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: private
- 1: protected
- 2: public
- 3: static
- 4: abstract
- 5: final
- )
+ name: private\protected\public\static\abstract\final
)
args: array(
)
@@ -110,4 +83,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/listReferences.test b/test/code/parser/expr/listReferences.test
index 0e02d368..fd333555 100644
--- a/test/code/parser/expr/listReferences.test
+++ b/test/code/parser/expr/listReferences.test
@@ -88,4 +88,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/listWithKeys.test b/test/code/parser/expr/listWithKeys.test
index e800236d..aa07d45e 100644
--- a/test/code/parser/expr/listWithKeys.test
+++ b/test/code/parser/expr/listWithKeys.test
@@ -80,4 +80,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/logic.test b/test/code/parser/expr/logic.test
index 6b434565..6b841f50 100644
--- a/test/code/parser/expr/logic.test
+++ b/test/code/parser/expr/logic.test
@@ -187,4 +187,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/match.test b/test/code/parser/expr/match.test
index 364701eb..cb2367e3 100644
--- a/test/code/parser/expr/match.test
+++ b/test/code/parser/expr/match.test
@@ -105,9 +105,7 @@ array(
conds: array(
0: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: BinaryOperator
- )
+ name: BinaryOperator
)
name: Identifier(
name: ADD
@@ -210,4 +208,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/math.test b/test/code/parser/expr/math.test
index 8399400c..5d22bf8e 100644
--- a/test/code/parser/expr/math.test
+++ b/test/code/parser/expr/math.test
@@ -310,4 +310,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/new.test b/test/code/parser/expr/new.test
index 5c6a82a1..dd9ef66d 100644
--- a/test/code/parser/expr/new.test
+++ b/test/code/parser/expr/new.test
@@ -22,9 +22,7 @@ array(
0: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
)
@@ -33,9 +31,7 @@ array(
1: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
0: Arg(
@@ -82,9 +78,7 @@ array(
expr: Expr_New(
class: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: VarLikeIdentifier(
name: b
@@ -174,9 +168,7 @@ array(
9: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
args: array(
)
@@ -185,4 +177,4 @@ array(
0: // test regression introduces by new dereferencing syntax
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/newWithoutClass.test b/test/code/parser/expr/newWithoutClass.test
index 2ad0af00..d06f880f 100644
--- a/test/code/parser/expr/newWithoutClass.test
+++ b/test/code/parser/expr/newWithoutClass.test
@@ -13,4 +13,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/print.test b/test/code/parser/expr/print.test
index 84ed7775..98e45b56 100644
--- a/test/code/parser/expr/print.test
+++ b/test/code/parser/expr/print.test
@@ -11,4 +11,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/shellExec.test b/test/code/parser/expr/shellExec.test
index ccb110e4..594bce6f 100644
--- a/test/code/parser/expr/shellExec.test
+++ b/test/code/parser/expr/shellExec.test
@@ -53,4 +53,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/ternaryAndCoalesce.test b/test/code/parser/expr/ternaryAndCoalesce.test
index ea1010ca..3d163087 100644
--- a/test/code/parser/expr/ternaryAndCoalesce.test
+++ b/test/code/parser/expr/ternaryAndCoalesce.test
@@ -171,4 +171,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/throw.test b/test/code/parser/expr/throw.test
index 2b54521d..a8597ffe 100644
--- a/test/code/parser/expr/throw.test
+++ b/test/code/parser/expr/throw.test
@@ -8,9 +8,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: test
- )
+ name: test
)
args: array(
0: Arg(
@@ -34,9 +32,7 @@ array(
right: Expr_Throw(
expr: Expr_New(
class: Name(
- parts: array(
- 0: Exception
- )
+ name: Exception
)
args: array(
)
@@ -44,4 +40,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/trailingCommas.test b/test/code/parser/expr/trailingCommas.test
index 4a7a3437..cbb5f99a 100644
--- a/test/code/parser/expr/trailingCommas.test
+++ b/test/code/parser/expr/trailingCommas.test
@@ -13,9 +13,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
0: Arg(
@@ -68,9 +66,7 @@ array(
2: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
name: Identifier(
name: bar
@@ -98,9 +94,7 @@ array(
3: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
0: Arg(
@@ -144,4 +138,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/constDeref.test b/test/code/parser/expr/uvs/constDeref.test
index 03f67175..501b5b58 100644
--- a/test/code/parser/expr/uvs/constDeref.test
+++ b/test/code/parser/expr/uvs/constDeref.test
@@ -26,9 +26,7 @@ array(
expr: Expr_PropertyFetch(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
name: Identifier(
@@ -40,9 +38,7 @@ array(
expr: Expr_MethodCall(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
name: Identifier(
@@ -56,9 +52,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
dim: Scalar_Int(
@@ -72,9 +66,7 @@ array(
var: Expr_ArrayDimFetch(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
dim: Scalar_Int(
@@ -94,9 +86,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
dim: Scalar_Int(
@@ -108,9 +98,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -127,9 +115,7 @@ array(
var: Expr_ArrayDimFetch(
var: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -152,9 +138,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -169,9 +153,7 @@ array(
expr: Expr_PropertyFetch(
var: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -186,9 +168,7 @@ array(
expr: Expr_MethodCall(
var: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -205,9 +185,7 @@ array(
expr: Expr_ClassConstFetch(
class: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -222,9 +200,7 @@ array(
expr: Expr_StaticPropertyFetch(
class: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -239,9 +215,7 @@ array(
expr: Expr_StaticCall(
class: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -276,9 +250,7 @@ array(
expr: Expr_MethodCall(
var: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: __FUNCIONT__
- )
+ name: __FUNCIONT__
)
)
name: Identifier(
@@ -288,4 +260,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/globalNonSimpleVarError.test b/test/code/parser/expr/uvs/globalNonSimpleVarError.test
index 54dd467d..8b8fd40e 100644
--- a/test/code/parser/expr/uvs/globalNonSimpleVarError.test
+++ b/test/code/parser/expr/uvs/globalNonSimpleVarError.test
@@ -17,10 +17,8 @@ array(
1: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/indirectCall.test b/test/code/parser/expr/uvs/indirectCall.test
index 7168b4e7..08535cf5 100644
--- a/test/code/parser/expr/uvs/indirectCall.test
+++ b/test/code/parser/expr/uvs/indirectCall.test
@@ -20,9 +20,7 @@ array(
expr: Expr_FuncCall(
name: Expr_FuncCall(
name: Name(
- parts: array(
- 0: id
- )
+ name: id
)
args: array(
0: Arg(
@@ -52,9 +50,7 @@ array(
name: Expr_FuncCall(
name: Expr_FuncCall(
name: Name(
- parts: array(
- 0: id
- )
+ name: id
)
args: array(
0: Arg(
@@ -96,9 +92,7 @@ array(
name: Expr_FuncCall(
name: Expr_FuncCall(
name: Name(
- parts: array(
- 0: id
- )
+ name: id
)
args: array(
)
@@ -136,9 +130,7 @@ array(
name: Expr_ArrayDimFetch(
var: Expr_FuncCall(
name: Name(
- parts: array(
- 0: id
- )
+ name: id
)
args: array(
0: Arg(
@@ -294,9 +286,7 @@ array(
)
default: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: null
- )
+ name: null
)
)
)
@@ -543,4 +533,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/isset.test b/test/code/parser/expr/uvs/isset.test
index 9757d6a4..fe20e985 100644
--- a/test/code/parser/expr/uvs/isset.test
+++ b/test/code/parser/expr/uvs/isset.test
@@ -83,4 +83,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/new.test b/test/code/parser/expr/uvs/new.test
index 0d93615e..bb7888ff 100644
--- a/test/code/parser/expr/uvs/new.test
+++ b/test/code/parser/expr/uvs/new.test
@@ -65,9 +65,7 @@ array(
expr: Expr_New(
class: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: Test
- )
+ name: Test
)
name: VarLikeIdentifier(
name: className
@@ -115,4 +113,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/newInstanceofExpr.test b/test/code/parser/expr/uvs/newInstanceofExpr.test
index 2908c9e3..0fe70746 100644
--- a/test/code/parser/expr/uvs/newInstanceofExpr.test
+++ b/test/code/parser/expr/uvs/newInstanceofExpr.test
@@ -58,4 +58,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/uvs/staticProperty.test b/test/code/parser/expr/uvs/staticProperty.test
index 96c61a61..f9120301 100644
--- a/test/code/parser/expr/uvs/staticProperty.test
+++ b/test/code/parser/expr/uvs/staticProperty.test
@@ -14,9 +14,7 @@ array(
0: Stmt_Expression(
expr: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: VarLikeIdentifier(
name: b
@@ -76,9 +74,7 @@ array(
5: Stmt_Expression(
expr: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Expr_Variable(
name: b
@@ -89,9 +85,7 @@ array(
expr: Expr_ArrayDimFetch(
var: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Expr_Variable(
name: c
@@ -106,9 +100,7 @@ array(
expr: Expr_StaticPropertyFetch(
class: Expr_StaticPropertyFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: VarLikeIdentifier(
name: A
@@ -119,4 +111,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/varVarPos.test b/test/code/parser/expr/varVarPos.test
index 26c747f5..aefb8f52 100644
--- a/test/code/parser/expr/varVarPos.test
+++ b/test/code/parser/expr/varVarPos.test
@@ -14,4 +14,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/expr/variable.test b/test/code/parser/expr/variable.test
index b28a9321..f34e495c 100644
--- a/test/code/parser/expr/variable.test
+++ b/test/code/parser/expr/variable.test
@@ -26,9 +26,7 @@ array(
expr: Expr_Variable(
name: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -63,4 +61,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/nopPositions.test b/test/code/parser/nopPositions.test
index 7f5d15b3..d790741a 100644
--- a/test/code/parser/nopPositions.test
+++ b/test/code/parser/nopPositions.test
@@ -24,4 +24,4 @@ array(
0: /* comment */
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/scalar/explicitOctal.test b/test/code/parser/scalar/explicitOctal.test
index b3c9aa29..d6bb8500 100644
--- a/test/code/parser/scalar/explicitOctal.test
+++ b/test/code/parser/scalar/explicitOctal.test
@@ -27,4 +27,4 @@ array(
value: 9.2233720368548E+18
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/scalar/invalidOctal.test b/test/code/parser/scalar/invalidOctal.test
index 04160487..c489abe7 100644
--- a/test/code/parser/scalar/invalidOctal.test
+++ b/test/code/parser/scalar/invalidOctal.test
@@ -23,4 +23,4 @@ array(
value: 7
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/scalar/magicConst.test b/test/code/parser/scalar/magicConst.test
index 520ea177..c0980f13 100644
--- a/test/code/parser/scalar/magicConst.test
+++ b/test/code/parser/scalar/magicConst.test
@@ -44,4 +44,4 @@ array(
expr: Scalar_MagicConst_Trait(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/scalar/numberSeparators.test b/test/code/parser/scalar/numberSeparators.test
index 24b2e670..cbc16c32 100644
--- a/test/code/parser/scalar/numberSeparators.test
+++ b/test/code/parser/scalar/numberSeparators.test
@@ -58,9 +58,7 @@ array(
5: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: _100
- )
+ name: _100
comments: array(
0: // already a valid constant name
)
@@ -87,9 +85,7 @@ array(
7: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: _
- )
+ name: _
)
)
)
@@ -101,9 +97,7 @@ array(
9: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: __1
- )
+ name: __1
)
)
)
@@ -115,9 +109,7 @@ array(
11: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: _
- )
+ name: _
)
)
)
@@ -134,9 +126,7 @@ array(
14: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: _0
- )
+ name: _0
)
)
)
@@ -148,9 +138,7 @@ array(
16: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: x_123
- )
+ name: x_123
)
)
)
@@ -162,9 +150,7 @@ array(
18: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: b_101
- )
+ name: b_101
)
)
)
@@ -176,9 +162,7 @@ array(
20: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: _e2
- )
+ name: _e2
)
)
)
@@ -190,9 +174,7 @@ array(
22: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: e_2
- )
+ name: e_2
)
)
)
diff --git a/test/code/parser/semiReserved.test b/test/code/parser/semiReserved.test
index 1d3594a4..5b361cb7 100644
--- a/test/code/parser/semiReserved.test
+++ b/test/code/parser/semiReserved.test
@@ -152,6 +152,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -175,6 +176,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -256,9 +258,7 @@ array(
)
expr: Expr_New(
class: Name(
- parts: array(
- 0: Test
- )
+ name: Test
)
args: array(
)
@@ -292,9 +292,7 @@ array(
4: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: Test
- )
+ name: Test
)
name: Identifier(
name: list
@@ -306,9 +304,7 @@ array(
5: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
- parts: array(
- 0: Test
- )
+ name: Test
)
name: Identifier(
name: protected
@@ -340,9 +336,7 @@ array(
8: Stmt_Expression(
expr: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: Test
- )
+ name: Test
)
name: Identifier(
name: TRAIT
@@ -352,9 +346,7 @@ array(
9: Stmt_Expression(
expr: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: Test
- )
+ name: Test
)
name: Identifier(
name: FINAL
@@ -375,39 +367,29 @@ array(
0: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: TraitA
- )
+ name: TraitA
)
1: Name(
- parts: array(
- 0: TraitB
- )
+ name: TraitB
)
)
adaptations: array(
0: Stmt_TraitUseAdaptation_Precedence(
trait: Name(
- parts: array(
- 0: TraitA
- )
+ name: TraitA
)
method: Identifier(
name: catch
)
insteadof: array(
0: Name_Relative(
- parts: array(
- 0: TraitB
- )
+ name: TraitB
)
)
)
1: Stmt_TraitUseAdaptation_Alias(
trait: Name(
- parts: array(
- 0: TraitA
- )
+ name: TraitA
)
method: Identifier(
name: list
@@ -419,9 +401,7 @@ array(
)
2: Stmt_TraitUseAdaptation_Alias(
trait: Name(
- parts: array(
- 0: TraitB
- )
+ name: TraitB
)
method: Identifier(
name: throw
@@ -433,9 +413,7 @@ array(
)
3: Stmt_TraitUseAdaptation_Alias(
trait: Name(
- parts: array(
- 0: TraitB
- )
+ name: TraitB
)
method: Identifier(
name: self
@@ -455,9 +433,7 @@ array(
)
5: Stmt_TraitUseAdaptation_Alias(
trait: Name_FullyQualified(
- parts: array(
- 0: TraitC
- )
+ name: TraitC
)
method: Identifier(
name: exit
@@ -469,9 +445,7 @@ array(
)
6: Stmt_TraitUseAdaptation_Alias(
trait: Name_Relative(
- parts: array(
- 0: TraitC
- )
+ name: TraitC
)
method: Identifier(
name: exit
@@ -483,9 +457,7 @@ array(
)
7: Stmt_TraitUseAdaptation_Precedence(
trait: Name(
- parts: array(
- 0: TraitA
- )
+ name: TraitA
)
method: Identifier(
name: catch
@@ -497,9 +469,7 @@ array(
)
insteadof: array(
0: Name(
- parts: array(
- 0: TraitB
- )
+ name: TraitB
)
)
)
diff --git a/test/code/parser/stmt/attributes.test b/test/code/parser/stmt/attributes.test
index aa477435..2a0d2d28 100644
--- a/test/code/parser/stmt/attributes.test
+++ b/test/code/parser/stmt/attributes.test
@@ -38,27 +38,21 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A1
- )
+ name: A1
)
args: array(
)
)
1: Attribute(
name: Name(
- parts: array(
- 0: A2
- )
+ name: A2
)
args: array(
)
)
2: Attribute(
name: Name(
- parts: array(
- 0: A3
- )
+ name: A3
)
args: array(
0: Arg(
@@ -73,9 +67,7 @@ array(
)
3: Attribute(
name: Name(
- parts: array(
- 0: A4
- )
+ name: A4
)
args: array(
0: Arg(
@@ -109,9 +101,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A5
- )
+ name: A5
)
args: array(
)
@@ -133,9 +123,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A6
- )
+ name: A6
)
args: array(
)
@@ -155,9 +143,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A7
- )
+ name: A7
)
args: array(
)
@@ -185,9 +171,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A14
- )
+ name: A14
)
args: array(
)
@@ -214,9 +198,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A8
- )
+ name: A8
)
args: array(
)
@@ -238,9 +220,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A9
- )
+ name: A9
)
args: array(
)
@@ -265,9 +245,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A10
- )
+ name: A10
)
args: array(
)
@@ -298,9 +276,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A11
- )
+ name: A11
)
args: array(
)
@@ -330,9 +306,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A12
- )
+ name: A12
)
args: array(
)
@@ -363,9 +337,7 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: A13
- )
+ name: A13
)
args: array(
)
diff --git a/test/code/parser/stmt/class/abstract.test b/test/code/parser/stmt/class/abstract.test
index 8c7444cf..8b81fd95 100644
--- a/test/code/parser/stmt/class/abstract.test
+++ b/test/code/parser/stmt/class/abstract.test
@@ -48,4 +48,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/anonymous.test b/test/code/parser/stmt/class/anonymous.test
index 89fe3f36..0af0e769 100644
--- a/test/code/parser/stmt/class/anonymous.test
+++ b/test/code/parser/stmt/class/anonymous.test
@@ -61,20 +61,14 @@ array(
flags: 0
name: null
extends: Name(
- parts: array(
- 0: A
- )
+ name: A
)
implements: array(
0: Name(
- parts: array(
- 0: B
- )
+ name: B
)
1: Name(
- parts: array(
- 0: C
- )
+ name: C
)
)
stmts: array(
@@ -123,9 +117,7 @@ array(
flags: 0
name: null
extends: Name(
- parts: array(
- 0: A
- )
+ name: A
)
implements: array(
)
@@ -133,9 +125,7 @@ array(
0: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: T
- )
+ name: T
)
)
adaptations: array(
@@ -194,9 +184,7 @@ array(
flags: 0
name: null
extends: Name(
- parts: array(
- 0: A
- )
+ name: A
)
implements: array(
)
@@ -205,6 +193,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
diff --git a/test/code/parser/stmt/class/class_position.test b/test/code/parser/stmt/class/class_position.test
index 82991499..1f6e11b7 100644
--- a/test/code/parser/stmt/class/class_position.test
+++ b/test/code/parser/stmt/class/class_position.test
@@ -91,4 +91,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/conditional.test b/test/code/parser/stmt/class/conditional.test
index 53a38c2e..dbe27e6a 100644
--- a/test/code/parser/stmt/class/conditional.test
+++ b/test/code/parser/stmt/class/conditional.test
@@ -10,9 +10,7 @@ array(
0: Stmt_If(
cond: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: true
- )
+ name: true
)
)
stmts: array(
@@ -34,4 +32,4 @@ array(
)
else: null
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/constModifierErrors.test b/test/code/parser/stmt/class/constModifierErrors.test
index c810bfb8..5cde50d4 100644
--- a/test/code/parser/stmt/class/constModifierErrors.test
+++ b/test/code/parser/stmt/class/constModifierErrors.test
@@ -22,6 +22,7 @@ array(
attrGroups: array(
)
flags: STATIC (8)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -59,6 +60,7 @@ array(
attrGroups: array(
)
flags: ABSTRACT (16)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -96,6 +98,7 @@ array(
attrGroups: array(
)
flags: READONLY (64)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -133,6 +136,7 @@ array(
attrGroups: array(
)
flags: PUBLIC (1)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -146,4 +150,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/constModifiers.test b/test/code/parser/stmt/class/constModifiers.test
index 6a16ca32..1a448b9c 100644
--- a/test/code/parser/stmt/class/constModifiers.test
+++ b/test/code/parser/stmt/class/constModifiers.test
@@ -26,6 +26,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -41,6 +42,7 @@ array(
attrGroups: array(
)
flags: PUBLIC (1)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -56,6 +58,7 @@ array(
attrGroups: array(
)
flags: PROTECTED (2)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -71,6 +74,7 @@ array(
attrGroups: array(
)
flags: PRIVATE (4)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -86,6 +90,7 @@ array(
attrGroups: array(
)
flags: FINAL (32)
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -99,4 +104,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/enum.test b/test/code/parser/stmt/class/enum.test
index dfc76522..1fdd0c22 100644
--- a/test/code/parser/stmt/class/enum.test
+++ b/test/code/parser/stmt/class/enum.test
@@ -41,14 +41,10 @@ array(
scalarType: null
implements: array(
0: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
1: Name(
- parts: array(
- 0: Baz
- )
+ name: Baz
)
)
stmts: array(
@@ -65,9 +61,7 @@ array(
)
implements: array(
0: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
)
stmts: array(
@@ -83,4 +77,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/enum_with_string.test b/test/code/parser/stmt/class/enum_with_string.test
index a8f8655a..49deeba5 100644
--- a/test/code/parser/stmt/class/enum_with_string.test
+++ b/test/code/parser/stmt/class/enum_with_string.test
@@ -63,4 +63,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/final.test b/test/code/parser/stmt/class/final.test
index 1a9f52e0..44d9f664 100644
--- a/test/code/parser/stmt/class/final.test
+++ b/test/code/parser/stmt/class/final.test
@@ -18,4 +18,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/interface.test b/test/code/parser/stmt/class/interface.test
index a726d53b..b87e6afd 100644
--- a/test/code/parser/stmt/class/interface.test
+++ b/test/code/parser/stmt/class/interface.test
@@ -15,14 +15,10 @@ array(
)
extends: array(
0: Name(
- parts: array(
- 0: C
- )
+ name: C
)
1: Name(
- parts: array(
- 0: D
- )
+ name: D
)
)
stmts: array(
@@ -41,4 +37,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/name.test b/test/code/parser/stmt/class/name.test
index 77ba1f27..e3029f24 100644
--- a/test/code/parser/stmt/class/name.test
+++ b/test/code/parser/stmt/class/name.test
@@ -56,9 +56,7 @@ array(
name: A
)
extends: Name(
- parts: array(
- 0: self
- )
+ name: self
)
implements: array(
)
@@ -79,9 +77,7 @@ array(
name: A
)
extends: Name(
- parts: array(
- 0: PARENT
- )
+ name: PARENT
)
implements: array(
)
@@ -102,9 +98,7 @@ array(
name: A
)
extends: Name(
- parts: array(
- 0: static
- )
+ name: static
)
implements: array(
)
@@ -127,9 +121,7 @@ array(
extends: null
implements: array(
0: Name(
- parts: array(
- 0: self
- )
+ name: self
)
)
stmts: array(
@@ -151,9 +143,7 @@ array(
extends: null
implements: array(
0: Name(
- parts: array(
- 0: PARENT
- )
+ name: PARENT
)
)
stmts: array(
@@ -175,9 +165,7 @@ array(
extends: null
implements: array(
0: Name(
- parts: array(
- 0: static
- )
+ name: static
)
)
stmts: array(
@@ -237,9 +225,7 @@ array(
)
extends: array(
0: Name(
- parts: array(
- 0: self
- )
+ name: self
)
)
stmts: array(
@@ -259,9 +245,7 @@ array(
)
extends: array(
0: Name(
- parts: array(
- 0: PARENT
- )
+ name: PARENT
)
)
stmts: array(
@@ -281,12 +265,10 @@ array(
)
extends: array(
0: Name(
- parts: array(
- 0: static
- )
+ name: static
)
)
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/propertyTypes.test b/test/code/parser/stmt/class/propertyTypes.test
index e502795c..bc301d12 100644
--- a/test/code/parser/stmt/class/propertyTypes.test
+++ b/test/code/parser/stmt/class/propertyTypes.test
@@ -42,9 +42,7 @@ array(
)
flags: PROTECTED | STATIC (10)
type: Name(
- parts: array(
- 0: D
- )
+ name: D
)
props: array(
0: PropertyItem(
diff --git a/test/code/parser/stmt/class/property_promotion.test b/test/code/parser/stmt/class/property_promotion.test
index 467943b7..f613623c 100644
--- a/test/code/parser/stmt/class/property_promotion.test
+++ b/test/code/parser/stmt/class/property_promotion.test
@@ -104,4 +104,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/readonly.test b/test/code/parser/stmt/class/readonly.test
index cccd60df..fb2131e6 100644
--- a/test/code/parser/stmt/class/readonly.test
+++ b/test/code/parser/stmt/class/readonly.test
@@ -40,4 +40,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/readonlyAnonyous.test b/test/code/parser/stmt/class/readonlyAnonyous.test
new file mode 100644
index 00000000..dd80f6db
--- /dev/null
+++ b/test/code/parser/stmt/class/readonlyAnonyous.test
@@ -0,0 +1,25 @@
+Readonly anonymous class
+-----
+<?php
+
+new readonly class {};
+-----
+array(
+ 0: Stmt_Expression(
+ expr: Expr_New(
+ class: Stmt_Class(
+ attrGroups: array(
+ )
+ flags: READONLY (64)
+ name: null
+ extends: null
+ implements: array(
+ )
+ stmts: array(
+ )
+ )
+ args: array(
+ )
+ )
+ )
+)
diff --git a/test/code/parser/stmt/class/readonlyAsClassName.test b/test/code/parser/stmt/class/readonlyAsClassName.test
index 7d3010dd..3bf53f77 100644
--- a/test/code/parser/stmt/class/readonlyAsClassName.test
+++ b/test/code/parser/stmt/class/readonlyAsClassName.test
@@ -25,4 +25,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/readonlyMethod.test b/test/code/parser/stmt/class/readonlyMethod.test
index 3b252260..c509d11c 100644
--- a/test/code/parser/stmt/class/readonlyMethod.test
+++ b/test/code/parser/stmt/class/readonlyMethod.test
@@ -31,4 +31,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/shortEchoAsIdentifier.test b/test/code/parser/stmt/class/shortEchoAsIdentifier.test
index 90d05c7e..4ac05642 100644
--- a/test/code/parser/stmt/class/shortEchoAsIdentifier.test
+++ b/test/code/parser/stmt/class/shortEchoAsIdentifier.test
@@ -23,9 +23,7 @@ array(
0: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: T
- )
+ name: T
)
)
adaptations: array(
diff --git a/test/code/parser/stmt/class/simple.test b/test/code/parser/stmt/class/simple.test
index fde02c33..c601f0cf 100644
--- a/test/code/parser/stmt/class/simple.test
+++ b/test/code/parser/stmt/class/simple.test
@@ -25,20 +25,14 @@ array(
name: A
)
extends: Name(
- parts: array(
- 0: B
- )
+ name: B
)
implements: array(
0: Name(
- parts: array(
- 0: C
- )
+ name: C
)
1: Name(
- parts: array(
- 0: D
- )
+ name: D
)
)
stmts: array(
@@ -46,6 +40,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -168,9 +163,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: B
- )
+ name: B
)
stmts: array(
)
diff --git a/test/code/parser/stmt/class/staticMethod.test b/test/code/parser/stmt/class/staticMethod.test
index 28b012c0..aabacbb8 100644
--- a/test/code/parser/stmt/class/staticMethod.test
+++ b/test/code/parser/stmt/class/staticMethod.test
@@ -196,4 +196,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/staticType.test b/test/code/parser/stmt/class/staticType.test
index 9d87f3b2..28dd8375 100644
--- a/test/code/parser/stmt/class/staticType.test
+++ b/test/code/parser/stmt/class/staticType.test
@@ -28,13 +28,11 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: static
- )
+ name: static
)
stmts: array(
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/trait.test b/test/code/parser/stmt/class/trait.test
index 4031ef24..f1702ca3 100644
--- a/test/code/parser/stmt/class/trait.test
+++ b/test/code/parser/stmt/class/trait.test
@@ -59,9 +59,7 @@ array(
0: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: C
- )
+ name: C
)
)
adaptations: array(
@@ -70,9 +68,7 @@ array(
1: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: D
- )
+ name: D
)
)
adaptations: array(
@@ -109,49 +105,35 @@ array(
2: Stmt_TraitUse(
traits: array(
0: Name(
- parts: array(
- 0: E
- )
+ name: E
)
1: Name(
- parts: array(
- 0: F
- )
+ name: F
)
2: Name(
- parts: array(
- 0: G
- )
+ name: G
)
)
adaptations: array(
0: Stmt_TraitUseAdaptation_Precedence(
trait: Name(
- parts: array(
- 0: E
- )
+ name: E
)
method: Identifier(
name: a
)
insteadof: array(
0: Name(
- parts: array(
- 0: F
- )
+ name: F
)
1: Name(
- parts: array(
- 0: G
- )
+ name: G
)
)
)
1: Stmt_TraitUseAdaptation_Alias(
trait: Name(
- parts: array(
- 0: E
- )
+ name: E
)
method: Identifier(
name: b
@@ -163,9 +145,7 @@ array(
)
2: Stmt_TraitUseAdaptation_Alias(
trait: Name(
- parts: array(
- 0: E
- )
+ name: E
)
method: Identifier(
name: d
@@ -177,9 +157,7 @@ array(
)
3: Stmt_TraitUseAdaptation_Alias(
trait: Name(
- parts: array(
- 0: E
- )
+ name: E
)
method: Identifier(
name: f
@@ -191,4 +169,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/class/typedConstants.test b/test/code/parser/stmt/class/typedConstants.test
new file mode 100644
index 00000000..b44cb411
--- /dev/null
+++ b/test/code/parser/stmt/class/typedConstants.test
@@ -0,0 +1,118 @@
+Typed constants
+-----
+<?php
+class Test {
+ const int X = 1;
+ private const string Y = "a", Z = "b";
+ const array ARRAY = [];
+ const Foo|Bar|null FOO = null;
+}
+-----
+array(
+ 0: Stmt_Class(
+ attrGroups: array(
+ )
+ flags: 0
+ name: Identifier(
+ name: Test
+ )
+ extends: null
+ implements: array(
+ )
+ stmts: array(
+ 0: Stmt_ClassConst(
+ attrGroups: array(
+ )
+ flags: 0
+ type: Identifier(
+ name: int
+ )
+ consts: array(
+ 0: Const(
+ name: Identifier(
+ name: X
+ )
+ value: Scalar_Int(
+ value: 1
+ )
+ )
+ )
+ )
+ 1: Stmt_ClassConst(
+ attrGroups: array(
+ )
+ flags: PRIVATE (4)
+ type: Identifier(
+ name: string
+ )
+ consts: array(
+ 0: Const(
+ name: Identifier(
+ name: Y
+ )
+ value: Scalar_String(
+ value: a
+ )
+ )
+ 1: Const(
+ name: Identifier(
+ name: Z
+ )
+ value: Scalar_String(
+ value: b
+ )
+ )
+ )
+ )
+ 2: Stmt_ClassConst(
+ attrGroups: array(
+ )
+ flags: 0
+ type: Identifier(
+ name: array
+ )
+ consts: array(
+ 0: Const(
+ name: Identifier(
+ name: ARRAY
+ )
+ value: Expr_Array(
+ items: array(
+ )
+ )
+ )
+ )
+ )
+ 3: Stmt_ClassConst(
+ attrGroups: array(
+ )
+ flags: 0
+ type: UnionType(
+ types: array(
+ 0: Name(
+ name: Foo
+ )
+ 1: Name(
+ name: Bar
+ )
+ 2: Identifier(
+ name: null
+ )
+ )
+ )
+ consts: array(
+ 0: Const(
+ name: Identifier(
+ name: FOO
+ )
+ value: Expr_ConstFetch(
+ name: Name(
+ name: null
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+)
diff --git a/test/code/parser/stmt/const.test b/test/code/parser/stmt/const.test
index 2e7a1ce2..958c4cfe 100644
--- a/test/code/parser/stmt/const.test
+++ b/test/code/parser/stmt/const.test
@@ -37,12 +37,10 @@ array(
)
value: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: E
- )
+ name: E
)
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/controlFlow.test b/test/code/parser/stmt/controlFlow.test
index 94184f8f..be786f9a 100644
--- a/test/code/parser/stmt/controlFlow.test
+++ b/test/code/parser/stmt/controlFlow.test
@@ -56,4 +56,4 @@ array(
name: label
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/echo.test b/test/code/parser/stmt/echo.test
index 1d03eae5..74241b0e 100644
--- a/test/code/parser/stmt/echo.test
+++ b/test/code/parser/stmt/echo.test
@@ -29,4 +29,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/builtinTypeDeclarations.test b/test/code/parser/stmt/function/builtinTypeDeclarations.test
index 3229b4df..64cbedcf 100644
--- a/test/code/parser/stmt/function/builtinTypeDeclarations.test
+++ b/test/code/parser/stmt/function/builtinTypeDeclarations.test
@@ -117,4 +117,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/byRef.test b/test/code/parser/stmt/function/byRef.test
index b4e4514b..ae01214c 100644
--- a/test/code/parser/stmt/function/byRef.test
+++ b/test/code/parser/stmt/function/byRef.test
@@ -56,4 +56,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/conditional.test b/test/code/parser/stmt/function/conditional.test
index 42f5fa20..50861ed5 100644
--- a/test/code/parser/stmt/function/conditional.test
+++ b/test/code/parser/stmt/function/conditional.test
@@ -10,9 +10,7 @@ array(
0: Stmt_If(
cond: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: true
- )
+ name: true
)
)
stmts: array(
@@ -34,4 +32,4 @@ array(
)
else: null
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/defaultValues.test b/test/code/parser/stmt/function/defaultValues.test
index a87057c9..952b64c4 100644
--- a/test/code/parser/stmt/function/defaultValues.test
+++ b/test/code/parser/stmt/function/defaultValues.test
@@ -35,9 +35,7 @@ array(
)
default: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: null
- )
+ name: null
)
)
)
@@ -67,9 +65,7 @@ array(
)
default: Expr_ClassConstFetch(
class: Name(
- parts: array(
- 0: A
- )
+ name: A
)
name: Identifier(
name: B
@@ -199,4 +195,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/disjointNormalFormTypes.test b/test/code/parser/stmt/function/disjointNormalFormTypes.test
index 39dc2613..3ad9503e 100644
--- a/test/code/parser/stmt/function/disjointNormalFormTypes.test
+++ b/test/code/parser/stmt/function/disjointNormalFormTypes.test
@@ -30,28 +30,20 @@ array(
0: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
1: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: X
- )
+ name: X
)
1: Name(
- parts: array(
- 0: Y
- )
+ name: Y
)
)
)
@@ -75,21 +67,15 @@ array(
0: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
1: Name(
- parts: array(
- 0: C
- )
+ name: C
)
)
)
@@ -121,28 +107,20 @@ array(
0: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
1: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: X
- )
+ name: X
)
1: Name(
- parts: array(
- 0: Y
- )
+ name: Y
)
)
)
@@ -161,28 +139,20 @@ array(
0: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
1: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: X
- )
+ name: X
)
1: Name(
- parts: array(
- 0: Y
- )
+ name: Y
)
)
)
diff --git a/test/code/parser/stmt/function/intersectionTypes.test b/test/code/parser/stmt/function/intersectionTypes.test
index 4a7c8fd2..c7a01f3b 100644
--- a/test/code/parser/stmt/function/intersectionTypes.test
+++ b/test/code/parser/stmt/function/intersectionTypes.test
@@ -27,14 +27,10 @@ array(
type: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
@@ -64,14 +60,10 @@ array(
type: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
@@ -86,14 +78,10 @@ array(
returnType: IntersectionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
diff --git a/test/code/parser/stmt/function/neverType.test b/test/code/parser/stmt/function/neverType.test
index a504b89b..e23bcdbd 100644
--- a/test/code/parser/stmt/function/neverType.test
+++ b/test/code/parser/stmt/function/neverType.test
@@ -19,4 +19,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/nullFalseTrueTypes.test b/test/code/parser/stmt/function/nullFalseTrueTypes.test
index 45e18ec6..eba3e769 100644
--- a/test/code/parser/stmt/function/nullFalseTrueTypes.test
+++ b/test/code/parser/stmt/function/nullFalseTrueTypes.test
@@ -48,9 +48,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: true
- )
+ name: true
)
stmts: array(
)
@@ -110,4 +108,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/nullableTypes.test b/test/code/parser/stmt/function/nullableTypes.test
index 4f4f6b41..a2c2e9aa 100644
--- a/test/code/parser/stmt/function/nullableTypes.test
+++ b/test/code/parser/stmt/function/nullableTypes.test
@@ -20,9 +20,7 @@ array(
flags: 0
type: NullableType(
type: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
)
byRef: false
@@ -51,12 +49,10 @@ array(
)
returnType: NullableType(
type: Name(
- parts: array(
- 0: Baz
- )
+ name: Baz
)
)
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/parameters_trailing_comma.test b/test/code/parser/stmt/function/parameters_trailing_comma.test
index dce1878b..f80ba1f4 100644
--- a/test/code/parser/stmt/function/parameters_trailing_comma.test
+++ b/test/code/parser/stmt/function/parameters_trailing_comma.test
@@ -126,4 +126,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/readonlyFunction.test b/test/code/parser/stmt/function/readonlyFunction.test
index c96d4835..0ce05d74 100644
--- a/test/code/parser/stmt/function/readonlyFunction.test
+++ b/test/code/parser/stmt/function/readonlyFunction.test
@@ -21,9 +21,7 @@ array(
1: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: readonly
- )
+ name: readonly
)
args: array(
)
diff --git a/test/code/parser/stmt/function/returnTypes.test b/test/code/parser/stmt/function/returnTypes.test
index 96e43a2a..ae1c9d9c 100644
--- a/test/code/parser/stmt/function/returnTypes.test
+++ b/test/code/parser/stmt/function/returnTypes.test
@@ -61,12 +61,9 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: Foo
- 1: Bar
- )
+ name: Foo\Bar
)
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/specialVars.test b/test/code/parser/stmt/function/specialVars.test
index 79b204c5..462e0652 100644
--- a/test/code/parser/stmt/function/specialVars.test
+++ b/test/code/parser/stmt/function/specialVars.test
@@ -56,4 +56,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/typeDeclarations.test b/test/code/parser/stmt/function/typeDeclarations.test
index b3102a13..07ce52e4 100644
--- a/test/code/parser/stmt/function/typeDeclarations.test
+++ b/test/code/parser/stmt/function/typeDeclarations.test
@@ -58,9 +58,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: E
- )
+ name: E
)
byRef: false
variadic: false
@@ -74,4 +72,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/typeVersions.test b/test/code/parser/stmt/function/typeVersions.test
index 6f8b4b47..54d21b0e 100644
--- a/test/code/parser/stmt/function/typeVersions.test
+++ b/test/code/parser/stmt/function/typeVersions.test
@@ -26,9 +26,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: bool
- )
+ name: bool
)
byRef: false
variadic: false
@@ -42,9 +40,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: int
- )
+ name: int
)
byRef: false
variadic: false
@@ -58,9 +54,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: float
- )
+ name: float
)
byRef: false
variadic: false
@@ -74,9 +68,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: string
- )
+ name: string
)
byRef: false
variadic: false
@@ -90,9 +82,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: iterable
- )
+ name: iterable
comments: array(
0: // PHP 7.0
)
@@ -112,9 +102,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: object
- )
+ name: object
comments: array(
0: // PHP 7.1
)
@@ -134,9 +122,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: mixed
- )
+ name: mixed
comments: array(
0: // PHP 7.2
)
@@ -156,9 +142,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: null
- )
+ name: null
comments: array(
0: // PHP 8.0
)
@@ -178,9 +162,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: false
- )
+ name: false
comments: array(
0: // PHP 8.0
)
@@ -197,9 +179,7 @@ array(
)
)
returnType: Name(
- parts: array(
- 0: void
- )
+ name: void
)
stmts: array(
)
@@ -214,9 +194,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: never
- )
+ name: never
)
stmts: array(
)
@@ -313,9 +291,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: iterable
- )
+ name: iterable
comments: array(
0: // PHP 7.0
)
@@ -335,9 +311,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: object
- )
+ name: object
comments: array(
0: // PHP 7.1
)
@@ -357,9 +331,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: mixed
- )
+ name: mixed
comments: array(
0: // PHP 7.2
)
@@ -379,9 +351,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: null
- )
+ name: null
comments: array(
0: // PHP 8.0
)
@@ -401,9 +371,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: false
- )
+ name: false
comments: array(
0: // PHP 8.0
)
@@ -420,9 +388,7 @@ array(
)
)
returnType: Name(
- parts: array(
- 0: void
- )
+ name: void
)
stmts: array(
)
@@ -437,9 +403,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: never
- )
+ name: never
)
stmts: array(
)
@@ -556,9 +520,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: object
- )
+ name: object
comments: array(
0: // PHP 7.1
)
@@ -578,9 +540,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: mixed
- )
+ name: mixed
comments: array(
0: // PHP 7.2
)
@@ -600,9 +560,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: null
- )
+ name: null
comments: array(
0: // PHP 8.0
)
@@ -622,9 +580,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: false
- )
+ name: false
comments: array(
0: // PHP 8.0
)
@@ -656,9 +612,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: never
- )
+ name: never
)
stmts: array(
)
@@ -795,9 +749,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: mixed
- )
+ name: mixed
comments: array(
0: // PHP 7.2
)
@@ -817,9 +769,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: null
- )
+ name: null
comments: array(
0: // PHP 8.0
)
@@ -839,9 +789,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: false
- )
+ name: false
comments: array(
0: // PHP 8.0
)
@@ -873,9 +821,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: never
- )
+ name: never
)
stmts: array(
)
@@ -1084,9 +1030,7 @@ array(
params: array(
)
returnType: Name(
- parts: array(
- 0: never
- )
+ name: never
)
stmts: array(
)
@@ -1308,4 +1252,4 @@ array(
0: // PHP 8.1
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/unionTypes.test b/test/code/parser/stmt/function/unionTypes.test
index f82724ed..5be08e24 100644
--- a/test/code/parser/stmt/function/unionTypes.test
+++ b/test/code/parser/stmt/function/unionTypes.test
@@ -27,9 +27,7 @@ array(
type: UnionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Identifier(
name: iterable
@@ -65,14 +63,10 @@ array(
type: UnionType(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
)
diff --git a/test/code/parser/stmt/function/variadic.test b/test/code/parser/stmt/function/variadic.test
index 245c0876..76cbb862 100644
--- a/test/code/parser/stmt/function/variadic.test
+++ b/test/code/parser/stmt/function/variadic.test
@@ -106,9 +106,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Type
- )
+ name: Type
)
byRef: false
variadic: true
@@ -147,9 +145,7 @@ array(
)
flags: 0
type: Name(
- parts: array(
- 0: Type
- )
+ name: Type
)
byRef: true
variadic: true
@@ -163,4 +159,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/function/variadicDefaultValue.test b/test/code/parser/stmt/function/variadicDefaultValue.test
index 1bd85401..45b7df69 100644
--- a/test/code/parser/stmt/function/variadicDefaultValue.test
+++ b/test/code/parser/stmt/function/variadicDefaultValue.test
@@ -33,4 +33,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/generator/basic.test b/test/code/parser/stmt/generator/basic.test
index 57fc3a4b..098e2259 100644
--- a/test/code/parser/stmt/generator/basic.test
+++ b/test/code/parser/stmt/generator/basic.test
@@ -213,9 +213,7 @@ array(
12: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: func
- )
+ name: func
comments: array(
0: // yield in function calls
)
@@ -267,9 +265,7 @@ array(
14: Stmt_Expression(
expr: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
0: Arg(
@@ -321,4 +317,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/generator/yieldPrecedence.test b/test/code/parser/stmt/generator/yieldPrecedence.test
index 8d8746d4..04593983 100644
--- a/test/code/parser/stmt/generator/yieldPrecedence.test
+++ b/test/code/parser/stmt/generator/yieldPrecedence.test
@@ -85,9 +85,7 @@ array(
4: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: var_dump
- )
+ name: var_dump
)
args: array(
0: Arg(
@@ -169,9 +167,7 @@ array(
7: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: var_dump
- )
+ name: var_dump
)
args: array(
0: Arg(
@@ -212,9 +208,7 @@ array(
8: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: var_dump
- )
+ name: var_dump
)
args: array(
0: Arg(
@@ -254,4 +248,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/generator/yieldUnaryPrecedence.test b/test/code/parser/stmt/generator/yieldUnaryPrecedence.test
index e4759abe..172984f3 100644
--- a/test/code/parser/stmt/generator/yieldUnaryPrecedence.test
+++ b/test/code/parser/stmt/generator/yieldUnaryPrecedence.test
@@ -55,4 +55,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/haltCompiler.test b/test/code/parser/stmt/haltCompiler.test
index 112946ea..995e7605 100644
--- a/test/code/parser/stmt/haltCompiler.test
+++ b/test/code/parser/stmt/haltCompiler.test
@@ -43,9 +43,7 @@ __halt_compiler();
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
0: Stmt_Expression(
@@ -58,4 +56,4 @@ array(
1: Stmt_HaltCompiler(
remaining:
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/haltCompilerInvalidSyntax.test b/test/code/parser/stmt/haltCompilerInvalidSyntax.test
index 2884737d..9b121ecb 100644
--- a/test/code/parser/stmt/haltCompilerInvalidSyntax.test
+++ b/test/code/parser/stmt/haltCompilerInvalidSyntax.test
@@ -5,4 +5,4 @@ __halt_compiler()
-----
Syntax error, unexpected EOF, expecting ';' from 2:18 to 2:18
array(
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/haltCompilerOffset.test b/test/code/parser/stmt/haltCompilerOffset.test
index b713dbcd..fc8b58da 100644
--- a/test/code/parser/stmt/haltCompilerOffset.test
+++ b/test/code/parser/stmt/haltCompilerOffset.test
@@ -10,18 +10,14 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: var_dump
- )
+ name: var_dump
)
args: array(
0: Arg(
name: null
value: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: __HALT_COMPILER_OFFSET__
- )
+ name: __HALT_COMPILER_OFFSET__
)
)
byRef: false
@@ -34,4 +30,4 @@ array(
remaining:
Foo
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/haltCompilerOutermostScope.test b/test/code/parser/stmt/haltCompilerOutermostScope.test
index fddb6191..2f8a3f19 100644
--- a/test/code/parser/stmt/haltCompilerOutermostScope.test
+++ b/test/code/parser/stmt/haltCompilerOutermostScope.test
@@ -5,4 +5,4 @@ if (true) {
__halt_compiler();
}
-----
-__HALT_COMPILER() can only be used from the outermost scope from 3:5 to 3:19
\ No newline at end of file
+__HALT_COMPILER() can only be used from the outermost scope from 3:5 to 3:19
diff --git a/test/code/parser/stmt/hashbang.test b/test/code/parser/stmt/hashbang.test
index 60eff652..11c45da6 100644
--- a/test/code/parser/stmt/hashbang.test
+++ b/test/code/parser/stmt/hashbang.test
@@ -23,4 +23,4 @@ array(
2: Stmt_InlineHTML(
value: #!/usr/bin/env php
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/if.test b/test/code/parser/stmt/if.test
index e054c897..53d2c830 100644
--- a/test/code/parser/stmt/if.test
+++ b/test/code/parser/stmt/if.test
@@ -100,4 +100,4 @@ array(
0: // without else
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/inlineHTML.test b/test/code/parser/stmt/inlineHTML.test
index a7e543cf..6f23b666 100644
--- a/test/code/parser/stmt/inlineHTML.test
+++ b/test/code/parser/stmt/inlineHTML.test
@@ -30,4 +30,4 @@ array(
name: d
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/loop/do.test b/test/code/parser/stmt/loop/do.test
index 76c80810..ca5bdf45 100644
--- a/test/code/parser/stmt/loop/do.test
+++ b/test/code/parser/stmt/loop/do.test
@@ -14,4 +14,4 @@ array(
name: a
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/loop/for.test b/test/code/parser/stmt/loop/for.test
index 5d5edc26..a1214771 100644
--- a/test/code/parser/stmt/loop/for.test
+++ b/test/code/parser/stmt/loop/for.test
@@ -107,4 +107,4 @@ array(
0: // alternative syntax
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/loop/foreach.test b/test/code/parser/stmt/loop/foreach.test
index 50400252..6bca655e 100644
--- a/test/code/parser/stmt/loop/foreach.test
+++ b/test/code/parser/stmt/loop/foreach.test
@@ -165,4 +165,4 @@ array(
0: // alternative syntax
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/loop/while.test b/test/code/parser/stmt/loop/while.test
index 65f6b233..e8540fa7 100644
--- a/test/code/parser/stmt/loop/while.test
+++ b/test/code/parser/stmt/loop/while.test
@@ -22,4 +22,4 @@ array(
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/multiCatch.test b/test/code/parser/stmt/multiCatch.test
index 4d8fcabd..b420cb49 100644
--- a/test/code/parser/stmt/multiCatch.test
+++ b/test/code/parser/stmt/multiCatch.test
@@ -22,14 +22,10 @@ array(
0: Stmt_Catch(
types: array(
0: Name(
- parts: array(
- 0: X
- )
+ name: X
)
1: Name(
- parts: array(
- 0: Y
- )
+ name: Y
)
)
var: Expr_Variable(
@@ -46,15 +42,10 @@ array(
1: Stmt_Catch(
types: array(
0: Name_FullyQualified(
- parts: array(
- 0: A
- )
+ name: A
)
1: Name(
- parts: array(
- 0: B
- 1: C
- )
+ name: B\C
)
)
var: Expr_Variable(
@@ -71,4 +62,4 @@ array(
)
finally: null
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/alias.test b/test/code/parser/stmt/namespace/alias.test
index cc158f13..572b9b30 100644
--- a/test/code/parser/stmt/namespace/alias.test
+++ b/test/code/parser/stmt/namespace/alias.test
@@ -23,10 +23,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: A
- 1: B
- )
+ name: A\B
)
alias: null
)
@@ -38,10 +35,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: C
- 1: D
- )
+ name: C\D
)
alias: Identifier(
name: E
@@ -55,10 +49,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: F
- 1: G
- )
+ name: F\G
)
alias: Identifier(
name: H
@@ -67,9 +58,7 @@ array(
1: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: J
- )
+ name: J
)
alias: null
)
@@ -81,9 +70,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
alias: null
)
@@ -98,9 +85,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
alias: Identifier(
name: B
@@ -114,10 +99,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: foo
- 1: bar
- )
+ name: foo\bar
)
alias: null
)
@@ -132,10 +114,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: foo
- 1: bar
- )
+ name: foo\bar
)
alias: Identifier(
name: baz
@@ -149,10 +128,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: foo
- 1: BAR
- )
+ name: foo\BAR
)
alias: null
)
@@ -164,10 +140,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: foo
- 1: BAR
- )
+ name: foo\BAR
)
alias: Identifier(
name: BAZ
diff --git a/test/code/parser/stmt/namespace/braced.test b/test/code/parser/stmt/namespace/braced.test
index a057352f..9520b28a 100644
--- a/test/code/parser/stmt/namespace/braced.test
+++ b/test/code/parser/stmt/namespace/braced.test
@@ -12,18 +12,13 @@ namespace {
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: Foo
- 1: Bar
- )
+ name: Foo\Bar
)
stmts: array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
)
)
@@ -35,12 +30,10 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/commentAfterNamespace.test b/test/code/parser/stmt/namespace/commentAfterNamespace.test
index 3f379b73..30a07e73 100644
--- a/test/code/parser/stmt/namespace/commentAfterNamespace.test
+++ b/test/code/parser/stmt/namespace/commentAfterNamespace.test
@@ -7,9 +7,7 @@ namespace Foo {}
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
stmts: array(
)
@@ -19,4 +17,4 @@ array(
0: // Comment
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/groupUse.test b/test/code/parser/stmt/namespace/groupUse.test
index 17c8632d..0f0d67dd 100644
--- a/test/code/parser/stmt/namespace/groupUse.test
+++ b/test/code/parser/stmt/namespace/groupUse.test
@@ -12,17 +12,13 @@ array(
0: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
alias: null
)
@@ -31,27 +27,20 @@ array(
1: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: B
- 1: C
- )
+ name: B\C
)
alias: null
)
1: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: D
- )
+ name: D
)
alias: null
)
@@ -60,28 +49,20 @@ array(
2: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- 1: B
- )
+ name: A\B
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: C
- 1: D
- )
+ name: C\D
)
alias: null
)
1: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: E
- )
+ name: E
)
alias: null
)
@@ -90,27 +71,20 @@ array(
3: Stmt_GroupUse(
type: TYPE_FUNCTION (2)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: b
- 1: c
- )
+ name: b\c
)
alias: null
)
1: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: d
- )
+ name: d
)
alias: null
)
@@ -119,27 +93,20 @@ array(
4: Stmt_GroupUse(
type: TYPE_CONSTANT (3)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: B
- 1: C
- )
+ name: B\C
)
alias: null
)
1: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: D
- )
+ name: D
)
alias: null
)
@@ -148,38 +115,27 @@ array(
5: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- 1: B
- )
+ name: A\B
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: C
- 1: D
- )
+ name: C\D
)
alias: null
)
1: UseItem(
type: TYPE_FUNCTION (2)
name: Name(
- parts: array(
- 0: b
- 1: c
- )
+ name: b\c
)
alias: null
)
2: UseItem(
type: TYPE_CONSTANT (3)
name: Name(
- parts: array(
- 0: D
- )
+ name: D
)
alias: null
)
diff --git a/test/code/parser/stmt/namespace/groupUseErrors.test b/test/code/parser/stmt/namespace/groupUseErrors.test
index 7c7f5c53..514c32cc 100644
--- a/test/code/parser/stmt/namespace/groupUseErrors.test
+++ b/test/code/parser/stmt/namespace/groupUseErrors.test
@@ -10,17 +10,13 @@ array(
0: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
alias: null
)
@@ -32,17 +28,13 @@ array(
1: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
alias: null
)
@@ -62,9 +54,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
alias: null
)
@@ -76,18 +66,14 @@ array(
1: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
)
)
2: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: Baz
- )
+ name: Baz
)
)
)
@@ -102,9 +88,7 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name_FullyQualified(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
)
)
diff --git a/test/code/parser/stmt/namespace/groupUsePositions.test b/test/code/parser/stmt/namespace/groupUsePositions.test
index 7e415b4c..7e072184 100644
--- a/test/code/parser/stmt/namespace/groupUsePositions.test
+++ b/test/code/parser/stmt/namespace/groupUsePositions.test
@@ -8,18 +8,13 @@ array(
0: Stmt_GroupUse[2:1 - 2:17](
type: TYPE_UNKNOWN (0)
prefix: Name[2:5 - 2:11](
- parts: array(
- 0: Foo
- 1: Bar
- )
+ name: Foo\Bar
)
uses: array(
0: UseItem[2:14 - 2:16](
type: TYPE_NORMAL (1)
name: Name[2:14 - 2:16](
- parts: array(
- 0: Baz
- )
+ name: Baz
)
alias: null
)
diff --git a/test/code/parser/stmt/namespace/groupUseTrailingComma.test b/test/code/parser/stmt/namespace/groupUseTrailingComma.test
index 1b9032b0..03152a21 100644
--- a/test/code/parser/stmt/namespace/groupUseTrailingComma.test
+++ b/test/code/parser/stmt/namespace/groupUseTrailingComma.test
@@ -8,17 +8,13 @@ array(
0: Stmt_GroupUse(
type: TYPE_UNKNOWN (0)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_NORMAL (1)
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
alias: null
)
@@ -27,17 +23,13 @@ array(
1: Stmt_GroupUse(
type: TYPE_FUNCTION (2)
prefix: Name(
- parts: array(
- 0: A
- )
+ name: A
)
uses: array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: b
- )
+ name: b
)
alias: null
)
diff --git a/test/code/parser/stmt/namespace/invalidName.test b/test/code/parser/stmt/namespace/invalidName.test
index 6f132b3f..c457dd66 100644
--- a/test/code/parser/stmt/namespace/invalidName.test
+++ b/test/code/parser/stmt/namespace/invalidName.test
@@ -10,9 +10,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
alias: Identifier(
name: self
@@ -32,9 +30,7 @@ array(
0: UseItem(
type: TYPE_UNKNOWN (0)
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
alias: Identifier(
name: PARENT
diff --git a/test/code/parser/stmt/namespace/mix.test b/test/code/parser/stmt/namespace/mix.test
index 4c557d45..ac89d0c9 100644
--- a/test/code/parser/stmt/namespace/mix.test
+++ b/test/code/parser/stmt/namespace/mix.test
@@ -12,9 +12,7 @@ Cannot mix bracketed namespace declarations with unbracketed namespace declarati
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
0: Stmt_Echo(
@@ -28,9 +26,7 @@ array(
)
1: Stmt_Namespace(
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
stmts: array(
0: Stmt_Echo(
@@ -63,9 +59,7 @@ Cannot mix bracketed namespace declarations with unbracketed namespace declarati
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
0: Stmt_Echo(
@@ -86,9 +80,7 @@ array(
)
2: Stmt_Namespace(
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
stmts: array(
0: Stmt_Echo(
diff --git a/test/code/parser/stmt/namespace/name.test b/test/code/parser/stmt/namespace/name.test
index 9a5babb3..b539f41a 100644
--- a/test/code/parser/stmt/namespace/name.test
+++ b/test/code/parser/stmt/namespace/name.test
@@ -11,40 +11,29 @@ array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
)
1: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: A
- 1: B
- )
+ name: A\B
)
)
)
2: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name_FullyQualified(
- parts: array(
- 0: A
- 1: B
- )
+ name: A\B
)
)
)
3: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name_Relative(
- parts: array(
- 0: A
- 1: B
- )
+ name: A\B
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/nested.test b/test/code/parser/stmt/namespace/nested.test
index 840daffe..5efc67b5 100644
--- a/test/code/parser/stmt/namespace/nested.test
+++ b/test/code/parser/stmt/namespace/nested.test
@@ -11,20 +11,16 @@ Namespace declarations cannot be nested from 3:5 to 5:5
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
stmts: array(
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/notBraced.test b/test/code/parser/stmt/namespace/notBraced.test
index aa34fc5c..f31f9156 100644
--- a/test/code/parser/stmt/namespace/notBraced.test
+++ b/test/code/parser/stmt/namespace/notBraced.test
@@ -11,18 +11,13 @@ bar;
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: Foo
- 1: Bar
- )
+ name: Foo\Bar
)
stmts: array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
)
)
@@ -30,20 +25,16 @@ array(
)
1: Stmt_Namespace(
name: Name(
- parts: array(
- 0: Bar
- )
+ name: Bar
)
stmts: array(
0: Stmt_Expression(
expr: Expr_ConstFetch(
name: Name(
- parts: array(
- 0: bar
- )
+ name: bar
)
)
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/nsAfterHashbang.test b/test/code/parser/stmt/namespace/nsAfterHashbang.test
index 6d452538..9d392f17 100644
--- a/test/code/parser/stmt/namespace/nsAfterHashbang.test
+++ b/test/code/parser/stmt/namespace/nsAfterHashbang.test
@@ -12,11 +12,9 @@ array(
)
1: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/namespace/outsideStmt.test b/test/code/parser/stmt/namespace/outsideStmt.test
index bfd5aa16..4f3303d5 100644
--- a/test/code/parser/stmt/namespace/outsideStmt.test
+++ b/test/code/parser/stmt/namespace/outsideStmt.test
@@ -25,9 +25,7 @@ array(
)
1: Stmt_Namespace(
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
stmts: array(
)
@@ -50,9 +48,7 @@ array(
)
1: Stmt_Namespace(
name: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
stmts: array(
)
diff --git a/test/code/parser/stmt/namespace/outsideStmtInvalid.test b/test/code/parser/stmt/namespace/outsideStmtInvalid.test
index 79a9c21e..77b8f5c1 100644
--- a/test/code/parser/stmt/namespace/outsideStmtInvalid.test
+++ b/test/code/parser/stmt/namespace/outsideStmtInvalid.test
@@ -23,9 +23,7 @@ array(
)
2: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
)
@@ -40,9 +38,7 @@ No code may exist outside of namespace {} from 3:1 to 3:7
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
)
@@ -66,9 +62,7 @@ No code may exist outside of namespace {} from 3:1 to 3:17
array(
0: Stmt_Namespace(
name: Name(
- parts: array(
- 0: A
- )
+ name: A
)
stmts: array(
)
@@ -89,9 +83,7 @@ array(
2: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -99,9 +91,7 @@ array(
)
3: Stmt_Namespace(
name: Name(
- parts: array(
- 0: B
- )
+ name: B
)
stmts: array(
)
diff --git a/test/code/parser/stmt/newInInitializer.test b/test/code/parser/stmt/newInInitializer.test
index 7ee1574b..74b43fd1 100644
--- a/test/code/parser/stmt/newInInitializer.test
+++ b/test/code/parser/stmt/newInInitializer.test
@@ -23,9 +23,7 @@ array(
)
value: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
)
@@ -53,9 +51,7 @@ array(
)
default: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
)
@@ -72,9 +68,7 @@ array(
)
default: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
)
@@ -90,18 +84,14 @@ array(
attrs: array(
0: Attribute(
name: Name(
- parts: array(
- 0: Attr
- )
+ name: Attr
)
args: array(
0: Arg(
name: null
value: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
)
@@ -126,6 +116,7 @@ array(
attrGroups: array(
)
flags: 0
+ type: null
consts: array(
0: Const(
name: Identifier(
@@ -133,9 +124,7 @@ array(
)
value: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
)
@@ -155,9 +144,7 @@ array(
)
default: Expr_New(
class: Name(
- parts: array(
- 0: Foo
- )
+ name: Foo
)
args: array(
)
diff --git a/test/code/parser/stmt/switch.test b/test/code/parser/stmt/switch.test
index 8316b52c..8be9c7f4 100644
--- a/test/code/parser/stmt/switch.test
+++ b/test/code/parser/stmt/switch.test
@@ -78,4 +78,4 @@ array(
cases: array(
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/tryCatch.test b/test/code/parser/stmt/tryCatch.test
index 8f88f4a3..20b3672f 100644
--- a/test/code/parser/stmt/tryCatch.test
+++ b/test/code/parser/stmt/tryCatch.test
@@ -27,9 +27,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: doTry
- )
+ name: doTry
)
args: array(
)
@@ -40,9 +38,7 @@ array(
0: Stmt_Catch(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
var: Expr_Variable(
@@ -52,9 +48,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: doCatchA
- )
+ name: doCatchA
)
args: array(
)
@@ -65,9 +59,7 @@ array(
1: Stmt_Catch(
types: array(
0: Name(
- parts: array(
- 0: B
- )
+ name: B
)
)
var: Expr_Variable(
@@ -77,9 +69,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: doCatchB
- )
+ name: doCatchB
)
args: array(
)
@@ -93,9 +83,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: doFinally
- )
+ name: doFinally
)
args: array(
)
@@ -111,9 +99,7 @@ array(
0: Stmt_Catch(
types: array(
0: Name(
- parts: array(
- 0: A
- )
+ name: A
)
)
var: Expr_Variable(
@@ -141,4 +127,4 @@ array(
0: // no catch
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/tryCatch_without_variable.test b/test/code/parser/stmt/tryCatch_without_variable.test
index 2efd8e1a..6a030b1f 100644
--- a/test/code/parser/stmt/tryCatch_without_variable.test
+++ b/test/code/parser/stmt/tryCatch_without_variable.test
@@ -16,9 +16,7 @@ array(
0: Stmt_Catch(
types: array(
0: Name(
- parts: array(
- 0: Exception
- )
+ name: Exception
)
)
var: null
@@ -28,4 +26,4 @@ array(
)
finally: null
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/tryWithoutCatch.test b/test/code/parser/stmt/tryWithoutCatch.test
index 5650d80a..76f92cc3 100644
--- a/test/code/parser/stmt/tryWithoutCatch.test
+++ b/test/code/parser/stmt/tryWithoutCatch.test
@@ -13,9 +13,7 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: foo
- )
+ name: foo
)
args: array(
)
@@ -26,4 +24,4 @@ array(
)
finally: null
)
-)
\ No newline at end of file
+)
diff --git a/test/code/parser/stmt/unset.test b/test/code/parser/stmt/unset.test
index c69679ef..412e6d65 100644
--- a/test/code/parser/stmt/unset.test
+++ b/test/code/parser/stmt/unset.test
@@ -23,4 +23,4 @@ array(
)
)
)
-)
\ No newline at end of file
+)
diff --git a/test/code/prettyPrinter/expr/anonymousClass.test b/test/code/prettyPrinter/expr/anonymousClass.test
index 1f245171..c011179a 100644
--- a/test/code/prettyPrinter/expr/anonymousClass.test
+++ b/test/code/prettyPrinter/expr/anonymousClass.test
@@ -10,6 +10,7 @@ new class($a) extends A {
$this->a = $a;
}
};
+new readonly class {};
-----
new class
{
@@ -25,3 +26,6 @@ new class($a) extends A
$this->a = $a;
}
};
+new readonly class
+{
+};
diff --git a/test/code/prettyPrinter/stmt/class_const.test b/test/code/prettyPrinter/stmt/class_const.test
index c14ed9ef..db72f323 100644
--- a/test/code/prettyPrinter/stmt/class_const.test
+++ b/test/code/prettyPrinter/stmt/class_const.test
@@ -7,7 +7,7 @@ class Foo
const A = 1, B = 2;
public const C = 3, D = 4;
protected const E = 5, F = 6;
- private const G = 7, H = 8;
+ private const int G = 7, H = 8;
}
-----
class Foo
@@ -15,5 +15,5 @@ class Foo
const A = 1, B = 2;
public const C = 3, D = 4;
protected const E = 5, F = 6;
- private const G = 7, H = 8;
-}
\ No newline at end of file
+ private const int G = 7, H = 8;
+}
diff --git a/test/code/prettyPrinter/stmt/if.test b/test/code/prettyPrinter/stmt/if.test
index 8debb2ec..ed850e6d 100644
--- a/test/code/prettyPrinter/stmt/if.test
+++ b/test/code/prettyPrinter/stmt/if.test
@@ -6,11 +6,13 @@ if ($expr) {
} elseif ($expr2) {
-} else {
+} else if ($expr3) {
+} else {
}
-----
if ($expr) {
} elseif ($expr2) {
+} else if ($expr3) {
} else {
-}
\ No newline at end of file
+}
diff --git a/test_old/run.php b/test_old/run.php
index 7eb95662..e76c350b 100644
--- a/test_old/run.php
+++ b/test_old/run.php
@@ -107,6 +107,8 @@ switch ($testType) {
# whitespace in namespaced name
| Zend.tests.bug55086
| Zend.tests.grammar.regression_010
+# not worth emulating on old PHP versions
+| Zend.tests.type_declarations.intersection_types.parsing_comment
)\.phpt$~x', $file)) {
return null;
}
diff --git a/tools/fuzzing/target.php b/tools/fuzzing/target.php
index 1057a493..f876727a 100644
--- a/tools/fuzzing/target.php
+++ b/tools/fuzzing/target.php
@@ -5,6 +5,7 @@
use PhpParser\Node\Expr;
use PhpParser\Node\Scalar;
use PhpParser\Node\Stmt;
+use PhpParser\NodeVisitor;
if (class_exists(PhpParser\Parser\Php7::class)) {
echo "The PHP-Parser target can only be used with php-fuzzer.phar,\n";
@@ -51,7 +52,7 @@ $visitor = new class extends PhpParser\NodeVisitorAbstract {
public function leaveNode(PhpParser\Node $node) {
// We don't precisely preserve nop statements.
if ($node instanceof Stmt\Nop) {
- return PhpParser\NodeTraverser::REMOVE_NODE;
+ return NodeVisitor::REMOVE_NODE;
}
// We don't precisely preserve redundant trailing commas in array destructuring.