summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
Diffstat (limited to 'Zend')
-rw-r--r--Zend/README.ZEND_VM2
-rw-r--r--Zend/ZEND_CHANGES6
-rw-r--r--Zend/acinclude.m42
-rw-r--r--Zend/tests/019.phpt2
-rw-r--r--Zend/tests/bug32428.phpt2
-rw-r--r--Zend/tests/bug60598.phpt30
-rw-r--r--Zend/tests/bug60771.phpt20
-rw-r--r--Zend/tests/bug64660.phpt11
-rw-r--r--Zend/tests/bug64720.phpt48
-rw-r--r--Zend/tests/bug64821.1.phpt22
-rw-r--r--Zend/tests/bug64821.2.phpt19
-rw-r--r--Zend/tests/bug64821.3.phpt20
-rw-r--r--Zend/tests/bug64896.phpt47
-rw-r--r--Zend/tests/bug64960.phpt40
-rw-r--r--Zend/tests/bug64966.phpt30
-rw-r--r--Zend/tests/bug64988.phpt30
-rw-r--r--Zend/tests/bug65108.phpt27
-rw-r--r--Zend/tests/bug65254.phpt21
-rw-r--r--Zend/tests/bug65291.phpt25
-rw-r--r--Zend/tests/bug65322.phpt22
-rw-r--r--Zend/tests/bug65372.phpt40
-rw-r--r--Zend/tests/bug65579.phpt29
-rw-r--r--Zend/tests/closure_044.phpt2
-rw-r--r--Zend/tests/errmsg_045.phpt18
-rw-r--r--Zend/tests/gc_007.phpt2
-rw-r--r--Zend/tests/gc_008.phpt2
-rw-r--r--Zend/tests/gc_009.phpt2
-rw-r--r--Zend/tests/traits/bugs/overridding-conflicting-methods.phpt2
-rw-r--r--Zend/zend.c12
-rw-r--r--Zend/zend_API.c30
-rw-r--r--Zend/zend_API.h6
-rw-r--r--Zend/zend_alloc.c20
-rw-r--r--Zend/zend_builtin_functions.c25
-rw-r--r--Zend/zend_compile.c18
-rw-r--r--Zend/zend_dtrace.c24
-rw-r--r--Zend/zend_exceptions.c16
-rw-r--r--Zend/zend_execute_API.c8
-rw-r--r--Zend/zend_gc.h4
-rw-r--r--Zend/zend_globals.h2
-rw-r--r--Zend/zend_ini_parser.c873
-rw-r--r--Zend/zend_ini_parser.h54
-rw-r--r--Zend/zend_ini_parser.output144
-rw-r--r--Zend/zend_language_parser.c1096
-rw-r--r--Zend/zend_language_parser.h64
-rw-r--r--Zend/zend_language_parser.output4544
-rw-r--r--Zend/zend_language_parser.y12
-rw-r--r--Zend/zend_language_scanner.c689
-rw-r--r--Zend/zend_language_scanner.h2
-rw-r--r--Zend/zend_language_scanner.l7
-rw-r--r--Zend/zend_language_scanner_defs.h2
-rw-r--r--Zend/zend_multiply.h4
-rw-r--r--Zend/zend_object_handlers.c8
-rw-r--r--Zend/zend_objects_API.c5
-rw-r--r--Zend/zend_opcode.c3
-rw-r--r--Zend/zend_operators.c2
-rw-r--r--Zend/zend_vm_def.h41
-rw-r--r--Zend/zend_vm_execute.h240
-rw-r--r--Zend/zend_vm_gen.php2
58 files changed, 4620 insertions, 3860 deletions
diff --git a/Zend/README.ZEND_VM b/Zend/README.ZEND_VM
index 15ff6fd86..de66110d6 100644
--- a/Zend/README.ZEND_VM
+++ b/Zend/README.ZEND_VM
@@ -6,7 +6,7 @@ fields and using different execution methods (call threading, switch threading
and direct threading). As a result ZE2 got more than 20% speedup on raw PHP
code execution (with specialized executor and direct threading execution
method). As in most PHP applications raw execution speed isn't the limiting
-factor but system calls and database callls are, your mileage with this patch
+factor but system calls and database calls are, your mileage with this patch
will vary.
Most parts of the old zend_execute.c go into zend_vm_def.h. Here you can
diff --git a/Zend/ZEND_CHANGES b/Zend/ZEND_CHANGES
index 5208ce162..afb359559 100644
--- a/Zend/ZEND_CHANGES
+++ b/Zend/ZEND_CHANGES
@@ -435,7 +435,7 @@ Changes in the Zend Engine 2.0
that of other object-oriented languages, such as Java: When the
last reference to an object is destroyed the object's
destructor, which is a class method name __destruct() that
- recieves no parameters, is called before the object is freed
+ receives no parameters, is called before the object is freed
from memory.
Example:
@@ -1136,7 +1136,7 @@ Changes in the Zend Engine 1.0
(supports breakpoints, expression evaluation, step-in/over,
function call backtrace, and more).
- The Zend Engine claims 100% compatability with the engine of PHP
+ The Zend Engine claims 100% compatibility with the engine of PHP
3.0, and is shamelessly lying about it. Here's why:
* Static variable initializers only accept scalar values
@@ -1161,6 +1161,6 @@ Changes in the Zend Engine 1.0
printed the letter { and the contents of the variable $somevar in
PHP 3.0), it will result in a parse error with the Zend Engine.
In this case, you would have to change the code to print
- "\{$somevar"; This incompatability is due to the full variable
+ "\{$somevar"; This incompatibility is due to the full variable
reference within quoted strings feature added in the Zend
Engine.
diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4
index 136d2d8be..77430aba7 100644
--- a/Zend/acinclude.m4
+++ b/Zend/acinclude.m4
@@ -4,7 +4,7 @@ dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
# we only support certain bison versions
- bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2"
+ bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 2.6.4"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
diff --git a/Zend/tests/019.phpt b/Zend/tests/019.phpt
index 70093cd28..654f86bb1 100644
--- a/Zend/tests/019.phpt
+++ b/Zend/tests/019.phpt
@@ -357,7 +357,7 @@ var_dump($global_var);
test_unset3();
var_dump($global_var);
-//Note: No error conditions relating to passing arugments can be tested
+//Note: No error conditions relating to passing arguments can be tested
// because these are not functions but statements, it will result in syntax error.
?>
===DONE===
diff --git a/Zend/tests/bug32428.phpt b/Zend/tests/bug32428.phpt
index 0b5ca6aeb..e75148fec 100644
--- a/Zend/tests/bug32428.phpt
+++ b/Zend/tests/bug32428.phpt
@@ -1,5 +1,5 @@
--TEST--
-Bug #32428 (The @ warning error supression operator is broken)
+Bug #32428 (The @ warning error suppression operator is broken)
--FILE--
<?php
$data = @$not_exists;
diff --git a/Zend/tests/bug60598.phpt b/Zend/tests/bug60598.phpt
new file mode 100644
index 000000000..eeee75a19
--- /dev/null
+++ b/Zend/tests/bug60598.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #60598 (cli/apache sapi segfault on objects manipulation)
+--FILE--
+<?php
+define('OBJECT_COUNT', 10000);
+
+$containers = array();
+
+class Object {
+ protected $_guid = 0;
+ public function __construct() {
+ global $containers;
+ $this->guid = 1;
+ $containers[spl_object_hash($this)] = $this;
+ }
+ public function __destruct() {
+ global $containers;
+ $containers[spl_object_hash($this)] = NULL;
+ }
+}
+
+for ($i = 0; $i < OBJECT_COUNT; ++$i) {
+ new Object();
+}
+
+// You probably won't see this because of the "zend_mm_heap corrupted"
+?>
+If you see this, try to increase OBJECT_COUNT to 100,000
+--EXPECT--
+If you see this, try to increase OBJECT_COUNT to 100,000
diff --git a/Zend/tests/bug60771.phpt b/Zend/tests/bug60771.phpt
index c20bbc462..119ae50ad 100644
--- a/Zend/tests/bug60771.phpt
+++ b/Zend/tests/bug60771.phpt
@@ -1,10 +1,10 @@
---TEST--
-test of larger than 8kb text file being parsed by require statement
---FILE--
-<?php
- file_put_contents('test.php',str_repeat('passed, ',1024));
- require('test.php');
- unlink('test.php');
-?>
---EXPECT--
-passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed,
+--TEST--
+test of larger than 8kb text file being parsed by require statement
+--FILE--
+<?php
+ file_put_contents('test.php',str_repeat('passed, ',1024));
+ require('./test.php');
+ unlink('test.php');
+?>
+--EXPECT--
+passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed, passed,
diff --git a/Zend/tests/bug64660.phpt b/Zend/tests/bug64660.phpt
new file mode 100644
index 000000000..e2b89da1c
--- /dev/null
+++ b/Zend/tests/bug64660.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #64660 (Segfault on memory exhaustion within function definition)
+--FILE--
+<?php
+function a() {
+ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
+}
+echo "Done\n";
+--EXPECTF--
+
+Parse error: memory exhausted in %s on line %d
diff --git a/Zend/tests/bug64720.phpt b/Zend/tests/bug64720.phpt
new file mode 100644
index 000000000..6c33165bb
--- /dev/null
+++ b/Zend/tests/bug64720.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #64720 (SegFault on zend_deactivate)
+--FILE--
+<?php
+class Stat {
+ private static $requests;
+ public static function getInstance() {
+ if (!isset(self::$requests[1])) {
+ self::$requests[1] = new self();
+ }
+ return self::$requests[1];
+ }
+
+ public function __destruct() {
+ unset(self::$requests[1]);
+ }
+}
+
+class Foo {
+ public function __construct() {
+ Stat::getInstance();
+ }
+}
+
+class Error {
+ private $trace;
+ public function __construct() {
+ $this->trace = debug_backtrace(1);
+ }
+}
+
+class Bar {
+ public function __destruct() {
+ Stat::getInstance();
+ new Error();
+ }
+
+ public function test() {
+ new Error();
+ }
+}
+
+$foo = new Foo();
+$bar = new Bar();
+$bar->test();
+?>
+--EXPECTF--
+Fatal error: Access to undeclared static property: Stat::$requests in %sbug64720.php on line 12
diff --git a/Zend/tests/bug64821.1.phpt b/Zend/tests/bug64821.1.phpt
new file mode 100644
index 000000000..5e2093c47
--- /dev/null
+++ b/Zend/tests/bug64821.1.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #64821 Custom Exceptions crash when internal properties overridden (variation 1)
+--FILE--
+<?php
+
+class a extends exception {
+ public function __construct() {
+ $this->message = NULL;
+ $this->string = NULL;
+ $this->code = array();
+ $this->line = "hello";
+ }
+}
+
+throw new a;
+
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'a' in %s:0
+Stack trace:
+#0 {main}
+ thrown in %s on line %d
diff --git a/Zend/tests/bug64821.2.phpt b/Zend/tests/bug64821.2.phpt
new file mode 100644
index 000000000..91a43f500
--- /dev/null
+++ b/Zend/tests/bug64821.2.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #64821 Custom Exceptions crash when internal properties overridden (variation 2)
+--FILE--
+<?php
+
+class a extends exception {
+ public function __construct() {
+ $this->line = array();
+ }
+}
+
+throw new a;
+
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'a' in %s:0
+Stack trace:
+#0 {main}
+ thrown in %s on line %d
diff --git a/Zend/tests/bug64821.3.phpt b/Zend/tests/bug64821.3.phpt
new file mode 100644
index 000000000..9e96075d4
--- /dev/null
+++ b/Zend/tests/bug64821.3.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug #64821 Custom Exceptions crash when internal properties overridden (variation 3)
+--FILE--
+<?php
+
+class a extends exception {
+ public function __construct() {
+ $this->line = array();
+ $this->file = NULL;
+ }
+}
+
+throw new a;
+
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'a' in :0
+Stack trace:
+#0 {main}
+ thrown in Unknown on line %d
diff --git a/Zend/tests/bug64896.phpt b/Zend/tests/bug64896.phpt
new file mode 100644
index 000000000..3e955bbec
--- /dev/null
+++ b/Zend/tests/bug64896.phpt
@@ -0,0 +1,47 @@
+--TEST--
+Bug #64896 (Segfault with gc_collect_cycles using unserialize on certain objects)
+--XFAIL--
+We can not fix this bug without a significant (performace slow down) change to gc
+--FILE--
+<?php
+$bar = NULL;
+class bad
+{
+ private $_private = array();
+
+ public function __construct()
+ {
+ $this->_private[] = 'php';
+ }
+
+ public function __destruct()
+ {
+ global $bar;
+ $bar = $this;
+ }
+}
+
+$foo = new stdclass;
+$foo->foo = $foo;
+$foo->bad = new bad;
+
+gc_disable();
+
+unserialize(serialize($foo));
+gc_collect_cycles();
+var_dump($bar);
+/* will output:
+object(bad)#4 (1) {
+ ["_private":"bad":private]=>
+ &UNKNOWN:0
+}
+*/
+?>
+--EXPECTF--
+bject(bad)#%d (1) {
+ ["_private":"bad":private]=>
+ array(1) {
+ [0]=>
+ string(3) "php"
+ }
+}
diff --git a/Zend/tests/bug64960.phpt b/Zend/tests/bug64960.phpt
new file mode 100644
index 000000000..b31cca3dc
--- /dev/null
+++ b/Zend/tests/bug64960.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Bug #64960 (Segfault in gc_zval_possible_root)
+--FILE--
+<?php
+// this makes ob_end_clean raise an error
+ob_end_flush();
+
+class ExceptionHandler {
+ public function __invoke (Exception $e)
+ {
+ // this triggers the custom error handler
+ ob_end_clean();
+ }
+}
+
+// this must be a class, closure does not trigger segfault
+set_exception_handler(new ExceptionHandler());
+
+// exception must be throwed from error handler.
+set_error_handler(function()
+{
+ $e = new Exception;
+ $e->_trace = debug_backtrace();
+
+ throw $e;
+});
+
+// trigger error handler
+$a['waa'];
+?>
+--EXPECTF--
+Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in %sbug64960.php on line 3
+
+Fatal error: Uncaught exception 'Exception' in %sbug64960.php:19
+Stack trace:
+#0 [internal function]: {closure}(8, 'ob_end_clean():...', '%s', 9, Array)
+#1 %sbug64960.php(9): ob_end_clean()
+#2 [internal function]: ExceptionHandler->__invoke(Object(Exception))
+#3 {main}
+ thrown in %sbug64960.php on line 19
diff --git a/Zend/tests/bug64966.phpt b/Zend/tests/bug64966.phpt
new file mode 100644
index 000000000..c1cdbbf81
--- /dev/null
+++ b/Zend/tests/bug64966.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #64966 (segfault in zend_do_fcall_common_helper_SPEC)
+--FILE--
+<?php
+error_reporting(E_ALL);
+set_error_handler(function($error) { throw new Exception(); }, E_RECOVERABLE_ERROR);
+
+function test($func) {
+ $a = $func("");
+ return true;
+}
+class A {
+ public function b() {
+ test("strlen");
+ test("iterator_apply");
+ }
+}
+
+$a = new A();
+$a->b();
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'Exception' in %sbug64966.php:3
+Stack trace:
+#0 [internal function]: {closure}(4096, 'Argument 1 pass...', '%s', 6, Array)
+#1 %sbug64966.php(6): iterator_apply('')
+#2 %sbug64966.php(12): test('iterator_apply')
+#3 %sbug64966.php(17): A->b()
+#4 {main}
+ thrown in %sbug64966.php on line 3
diff --git a/Zend/tests/bug64988.phpt b/Zend/tests/bug64988.phpt
new file mode 100644
index 000000000..34fd482f3
--- /dev/null
+++ b/Zend/tests/bug64988.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #64988 (Class loading order affects E_STRICT warning)
+--FILE--
+<?php
+abstract class Base1 {
+ public function insert(array $data){
+ return array_reverse($data);
+ }
+}
+
+class Noisy1 extends Base1 {
+ public function insert(array $data, $option1 = Null) {
+ if (!empty($option1)) {
+ $data['option1'] = $option1;
+ }
+ return parent::insert($data);
+ }
+}
+class Smooth1 extends Noisy1 {
+ public function insert(array $data) {
+ return parent::insert($data, count($data));
+ }
+}
+
+$o = new Smooth1();
+echo "okey";
+?>
+--EXPECTF--
+Strict Standards: Declaration of Smooth1::insert() should be compatible with Noisy1::insert(array $data, $option1 = NULL) in %sbug64988.php on line 20
+okey
diff --git a/Zend/tests/bug65108.phpt b/Zend/tests/bug65108.phpt
new file mode 100644
index 000000000..d3e5a65b2
--- /dev/null
+++ b/Zend/tests/bug65108.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Bug #65108 (is_callable() triggers Fatal Error)
+--FILE--
+<?php
+class C {
+ private function f() {}
+ static function __callStatic($name, $args) {}
+}
+
+class B {
+ public function B() {
+ $isCallable = is_callable(array(new C, 'f'));
+ var_dump($isCallable);
+ }
+}
+
+new B();
+
+Class E {
+ private function f() {}
+ function __call($name, $args) {}
+}
+$isCallable = is_callable(array('E', 'f'));
+var_dump($isCallable);
+--EXPECT--
+bool(false)
+bool(false)
diff --git a/Zend/tests/bug65254.phpt b/Zend/tests/bug65254.phpt
new file mode 100644
index 000000000..d2ebba4d9
--- /dev/null
+++ b/Zend/tests/bug65254.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Bug #65254 (Exception not catchable when exception thrown in autoload with a namespace)
+--FILE--
+<?php
+function __autoload($class)
+{
+ eval("namespace ns_test; class test {}");
+
+ throw new \Exception('abcd');
+}
+
+try
+{
+ \ns_test\test::go();
+}
+catch (Exception $e)
+{
+ echo 'caught';
+}
+--EXPECT--
+caught
diff --git a/Zend/tests/bug65291.phpt b/Zend/tests/bug65291.phpt
new file mode 100644
index 000000000..7bc76331c
--- /dev/null
+++ b/Zend/tests/bug65291.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #65291 - get_defined_constants() causes PHP to crash in a very limited case.
+--FILE--
+<?php
+
+trait TestTrait
+{
+ public static function testStaticFunction()
+ {
+ return __CLASS__;
+ }
+}
+class Tester
+{
+ use TestTrait;
+}
+
+$foo = Tester::testStaticFunction();
+get_defined_constants();
+get_defined_constants(true);
+
+echo $foo;
+?>
+--EXPECT--
+Tester
diff --git a/Zend/tests/bug65322.phpt b/Zend/tests/bug65322.phpt
new file mode 100644
index 000000000..aab163d91
--- /dev/null
+++ b/Zend/tests/bug65322.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #65322: compile time errors won't trigger auto loading
+--FILE--
+<?php
+
+spl_autoload_register(function($class) {
+ var_dump($class);
+ class B {}
+});
+
+set_error_handler(function($_, $msg, $file) {
+ var_dump($msg, $file);
+ new B;
+});
+
+eval('class A { function a() {} function __construct() {} }');
+
+?>
+--EXPECTF--
+string(50) "Redefining already defined constructor for class A"
+string(%d) "%s(%d) : eval()'d code"
+string(1) "B"
diff --git a/Zend/tests/bug65372.phpt b/Zend/tests/bug65372.phpt
new file mode 100644
index 000000000..50fc2dbb1
--- /dev/null
+++ b/Zend/tests/bug65372.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Bug #65372 (Segfault in gc_zval_possible_root when return reference fails)
+--FILE--
+<?php
+
+class ParentClass
+{
+ private static $_OBJECTS;
+
+ public static function Get()
+ {
+ self::$_OBJECTS[1] = new ChildClass();
+ return self::$_OBJECTS[1];
+ }
+}
+
+class ChildClass extends ParentClass
+{
+ public $Manager;
+
+ function __construct()
+ {
+ $this->Manager = $this;
+ }
+
+ public static function &GetCurrent()
+ {
+ return ChildClass::Get();
+ }
+
+ public static function &Get()
+ {
+ return parent::Get();
+ }
+}
+
+$staff = ChildClass::GetCurrent();
+?>
+--EXPECTF--
+Notice: Only variable references should be returned by reference in %sbug65372.php on line 30
diff --git a/Zend/tests/bug65579.phpt b/Zend/tests/bug65579.phpt
new file mode 100644
index 000000000..25d74ed4f
--- /dev/null
+++ b/Zend/tests/bug65579.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #65579 (Using traits with get_class_methods causes segfault)
+--FILE--
+<?php
+trait ParentTrait {
+ public function testMethod() { }
+}
+
+trait ChildTrait {
+ use ParentTrait {
+ testMethod as testMethodFromParentTrait;
+ }
+ public function testMethod() { }
+}
+
+class TestClass {
+ use ChildTrait;
+}
+
+$obj = new TestClass();
+var_dump(get_class_methods($obj));
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ string(10) "testMethod"
+ [1]=>
+ string(25) "testmethodfromparenttrait"
+}
diff --git a/Zend/tests/closure_044.phpt b/Zend/tests/closure_044.phpt
index d2644c040..8fdef135d 100644
--- a/Zend/tests/closure_044.phpt
+++ b/Zend/tests/closure_044.phpt
@@ -3,7 +3,7 @@ Closure 044: Scope/bounding combination invariants; non static closures
--FILE--
<?php
/* A non-static closure has a bound instance if it has a scope
- * and does't have an instance if it has no scope */
+ * and doesn't have an instance if it has no scope */
$nonstaticUnscoped = function () { var_dump(isset(A::$priv)); var_dump(isset($this)); };
diff --git a/Zend/tests/errmsg_045.phpt b/Zend/tests/errmsg_045.phpt
new file mode 100644
index 000000000..b27f67ade
--- /dev/null
+++ b/Zend/tests/errmsg_045.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Error message in error handler during compilation
+--FILE--
+<?php
+
+set_error_handler(function($_, $msg, $file) {
+ var_dump($msg, $file);
+ echo $undefined;
+});
+
+eval('class A { function a() {} function __construct() {} }');
+
+?>
+--EXPECTF--
+string(50) "Redefining already defined constructor for class A"
+string(%d) "%s(%d) : eval()'d code"
+
+Notice: Undefined variable: undefined in %s on line %d
diff --git a/Zend/tests/gc_007.phpt b/Zend/tests/gc_007.phpt
index 8601ea43b..a018e4846 100644
--- a/Zend/tests/gc_007.phpt
+++ b/Zend/tests/gc_007.phpt
@@ -1,5 +1,5 @@
--TEST--
-GC 007: Unreferensed array cycle
+GC 007: Unreferenced array cycle
--INI--
zend.enable_gc=1
--FILE--
diff --git a/Zend/tests/gc_008.phpt b/Zend/tests/gc_008.phpt
index 289d581d6..4e27e5b70 100644
--- a/Zend/tests/gc_008.phpt
+++ b/Zend/tests/gc_008.phpt
@@ -1,5 +1,5 @@
--TEST--
-GC 008: Unreferensed object cycle
+GC 008: Unreferenced object cycle
--INI--
zend.enable_gc=1
--FILE--
diff --git a/Zend/tests/gc_009.phpt b/Zend/tests/gc_009.phpt
index 263d31f45..3f4657d2e 100644
--- a/Zend/tests/gc_009.phpt
+++ b/Zend/tests/gc_009.phpt
@@ -1,5 +1,5 @@
--TEST--
-GC 009: Unreferensed array-object cycle
+GC 009: Unreferenced array-object cycle
--INI--
zend.enable_gc=1
--FILE--
diff --git a/Zend/tests/traits/bugs/overridding-conflicting-methods.phpt b/Zend/tests/traits/bugs/overridding-conflicting-methods.phpt
index fc09a367b..0bbea1100 100644
--- a/Zend/tests/traits/bugs/overridding-conflicting-methods.phpt
+++ b/Zend/tests/traits/bugs/overridding-conflicting-methods.phpt
@@ -1,5 +1,5 @@
--TEST--
-Overridding Conflicting Methods should not result in a notice/warning about collisions
+Overriding Conflicting Methods should not result in a notice/warning about collisions
--FILE--
<?php
error_reporting(E_ALL);
diff --git a/Zend/zend.c b/Zend/zend.c
index fc443d95b..0602c4504 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -1091,17 +1091,19 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
error_filename = "Unknown";
}
- va_start(args, format);
-
#ifdef HAVE_DTRACE
if(DTRACE_ERROR_ENABLED()) {
char *dtrace_error_buffer;
+ va_start(args, format);
zend_vspprintf(&dtrace_error_buffer, 0, format, args);
- DTRACE_ERROR(dtrace_error_buffer, error_filename, error_lineno);
+ DTRACE_ERROR(dtrace_error_buffer, (char *)error_filename, error_lineno);
efree(dtrace_error_buffer);
+ va_end(args);
}
#endif /* HAVE_DTRACE */
+ va_start(args, format);
+
/* if we don't have a user defined error handler */
if (!EG(user_error_handler)
|| !(EG(user_error_handler_error_reporting) & type)
@@ -1181,7 +1183,7 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
* such scripts recursivly, but some CG() variables may be
* inconsistent. */
- in_compilation = zend_is_compiling(TSRMLS_C);
+ in_compilation = CG(in_compilation);
if (in_compilation) {
saved_class_entry = CG(active_class_entry);
CG(active_class_entry) = NULL;
@@ -1193,6 +1195,7 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
SAVE_STACK(declare_stack);
SAVE_STACK(list_stack);
SAVE_STACK(context_stack);
+ CG(in_compilation) = 0;
}
if (call_user_function_ex(CG(function_table), NULL, orig_user_error_handler, &retval, 5, params, 1, NULL TSRMLS_CC) == SUCCESS) {
@@ -1217,6 +1220,7 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
RESTORE_STACK(declare_stack);
RESTORE_STACK(list_stack);
RESTORE_STACK(context_stack);
+ CG(in_compilation) = 1;
}
if (!EG(user_error_handler)) {
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 529092ab9..125a1a256 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1143,7 +1143,7 @@ ZEND_API void object_properties_init(zend_object *object, zend_class_entry *clas
/* This function requires 'properties' to contain all props declared in the
* class and all props being public. If only a subset is given or the class
- * has protected members then you need to merge the properties seperately by
+ * has protected members then you need to merge the properties separately by
* calling zend_merge_properties(). */
ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *class_type, HashTable *properties ZEND_FILE_LINE_DC TSRMLS_DC) /* {{{ */
{
@@ -2514,7 +2514,12 @@ ZEND_API int zend_register_class_alias_ex(const char *name, int name_len, zend_c
char *lcname = zend_str_tolower_dup(name, name_len);
int ret;
- ret = zend_hash_add(CG(class_table), lcname, name_len+1, &ce, sizeof(zend_class_entry *), NULL);
+ if (lcname[0] == '\\') {
+ ret = zend_hash_add(CG(class_table), lcname+1, name_len, &ce, sizeof(zend_class_entry *), NULL);
+ } else {
+ ret = zend_hash_add(CG(class_table), lcname, name_len+1, &ce, sizeof(zend_class_entry *), NULL);
+ }
+
efree(lcname);
if (ret == SUCCESS) {
ce->refcount++;
@@ -2779,8 +2784,8 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
}
if ((check_flags & IS_CALLABLE_CHECK_NO_ACCESS) == 0 &&
(fcc->calling_scope &&
- (fcc->calling_scope->__call ||
- fcc->calling_scope->__callstatic))) {
+ ((fcc->object_ptr && fcc->calling_scope->__call) ||
+ (!fcc->object_ptr && fcc->calling_scope->__callstatic)))) {
if (fcc->function_handler->op_array.fn_flags & ZEND_ACC_PRIVATE) {
if (!zend_check_private(fcc->function_handler, fcc->object_ptr ? Z_OBJCE_P(fcc->object_ptr) : EG(scope), lmname, mlen TSRMLS_CC)) {
retval = 0;
@@ -3917,15 +3922,16 @@ ZEND_API const char* zend_find_alias_name(zend_class_entry *ce, const char *name
{
zend_trait_alias *alias, **alias_ptr;
- alias_ptr = ce->trait_aliases;
- alias = *alias_ptr;
- while (alias) {
- if (alias->alias_len == len &&
- !strncasecmp(name, alias->alias, alias->alias_len)) {
- return alias->alias;
- }
- alias_ptr++;
+ if ((alias_ptr = ce->trait_aliases)) {
alias = *alias_ptr;
+ while (alias) {
+ if (alias->alias_len == len &&
+ !strncasecmp(name, alias->alias, alias->alias_len)) {
+ return alias->alias;
+ }
+ alias_ptr++;
+ alias = *alias_ptr;
+ }
}
return name;
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index 62bf391ca..7b8b68d3b 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -90,7 +90,7 @@ typedef struct _zend_fcall_info_cache {
#define ZEND_NS_RAW_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, zend_name), name, arg_info, flags)
#define ZEND_NS_RAW_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_RAW_FENTRY(ns, #zend_name, name, arg_info, 0)
-#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, #zend_name, name, arg_info, 0)
+#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, zend_name, name, arg_info, 0)
#define ZEND_NS_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0)
#define ZEND_NS_DEP_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
#define ZEND_NS_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0)
@@ -461,7 +461,7 @@ ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache;
*/
ZEND_API int zend_fcall_info_init(zval *callable, uint check_flags, zend_fcall_info *fci, zend_fcall_info_cache *fcc, char **callable_name, char **error TSRMLS_DC);
-/** Clear argumens connected with zend_fcall_info *fci
+/** Clear arguments connected with zend_fcall_info *fci
* If free_mem is not zero then the params array gets free'd as well
*/
ZEND_API void zend_fcall_info_args_clear(zend_fcall_info *fci, int free_mem);
@@ -499,7 +499,7 @@ ZEND_API int zend_fcall_info_argv(zend_fcall_info *fci TSRMLS_DC, int argc, va_l
ZEND_API int zend_fcall_info_argn(zend_fcall_info *fci TSRMLS_DC, int argc, ...);
/** Call a function using information created by zend_fcall_info_init()/args().
- * If args is given then those replace the arguement info in fci is temporarily.
+ * If args is given then those replace the argument info in fci is temporarily.
*/
ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *fcc, zval **retval, zval *args TSRMLS_DC);
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 605e39646..596c2498b 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -672,7 +672,7 @@ static inline unsigned int zend_mm_high_bit(size_t _size)
#elif defined(__GNUC__) && defined(__x86_64__)
unsigned long n;
- __asm__("bsrq %1,%0\n\t" : "=r" (n) : "rm" (_size));
+ __asm__("bsr %1,%0\n\t" : "=r" (n) : "rm" (_size));
return (unsigned int)n;
#elif defined(_MSC_VER) && defined(_M_IX86)
__asm {
@@ -698,12 +698,12 @@ static inline unsigned int zend_mm_low_bit(size_t _size)
#elif defined(__GNUC__) && defined(__x86_64__)
unsigned long n;
- __asm__("bsfq %1,%0\n\t" : "=r" (n) : "rm" (_size));
+ __asm__("bsf %1,%0\n\t" : "=r" (n) : "rm" (_size));
return (unsigned int)n;
#elif defined(_MSC_VER) && defined(_M_IX86)
__asm {
bsf eax, _size
- }
+ }
#else
static const int offset[16] = {4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0};
unsigned int n;
@@ -2461,7 +2461,7 @@ static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
size_t res = nmemb;
unsigned long overflow = 0;
- __asm__ ("mull %3\n\taddl %4,%0\n\tadcl %1,%1"
+ __asm__ ("mull %3\n\taddl %4,%0\n\tadcl $0,%1"
: "=&a"(res), "=&d" (overflow)
: "%0"(res),
"rm"(size),
@@ -2481,12 +2481,22 @@ static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
size_t res = nmemb;
unsigned long overflow = 0;
- __asm__ ("mulq %3\n\taddq %4,%0\n\tadcq %1,%1"
+#ifdef __ILP32__ /* x32 */
+# define LP_SUFF "l"
+#else /* amd64 */
+# define LP_SUFF "q"
+#endif
+
+ __asm__ ("mul" LP_SUFF " %3\n\t"
+ "add %4,%0\n\t"
+ "adc $0,%1"
: "=&a"(res), "=&d" (overflow)
: "%0"(res),
"rm"(size),
"rm"(offset));
+#undef LP_SUFF
+
if (UNEXPECTED(overflow)) {
zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu * %zu + %zu)", nmemb, size, offset);
return 0;
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index f29676bac..04f4ebec2 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1399,15 +1399,8 @@ ZEND_FUNCTION(class_alias)
return;
}
- if (!autoload) {
- lc_name = do_alloca(class_name_len + 1, use_heap);
- zend_str_tolower_copy(lc_name, class_name, class_name_len);
+ found = zend_lookup_class_ex(class_name, class_name_len, NULL, autoload, &ce TSRMLS_CC);
- found = zend_hash_find(EG(class_table), lc_name, class_name_len+1, (void **) &ce);
- free_alloca(lc_name, use_heap);
- } else {
- found = zend_lookup_class(class_name, class_name_len, &ce TSRMLS_CC);
- }
if (found == SUCCESS) {
if ((*ce)->type == ZEND_USER_CLASS) {
if (zend_register_class_alias_ex(alias_name, alias_name_len, *ce TSRMLS_CC) == SUCCESS) {
@@ -1926,6 +1919,11 @@ static int add_constant_info(zend_constant *constant, void *arg TSRMLS_DC)
zval *name_array = (zval *)arg;
zval *const_val;
+ if (!constant->name) {
+ /* skip special constants */
+ return 0;
+ }
+
MAKE_STD_ZVAL(const_val);
*const_val = constant->value;
zval_copy_ctor(const_val);
@@ -1993,11 +1991,16 @@ ZEND_FUNCTION(get_defined_constants)
while (zend_hash_get_current_data_ex(EG(zend_constants), (void **) &val, &pos) != FAILURE) {
zval *const_val;
+ if (!val->name) {
+ /* skip special constants */
+ goto next_constant;
+ }
+
if (val->module_number == PHP_USER_CONSTANT) {
module_number = i;
} else if (val->module_number > i || val->module_number < 0) {
/* should not happen */
- goto bad_module_id;
+ goto next_constant;
} else {
module_number = val->module_number;
}
@@ -2014,7 +2017,7 @@ ZEND_FUNCTION(get_defined_constants)
INIT_PZVAL(const_val);
add_assoc_zval_ex(modules[module_number], val->name, val->name_len, const_val);
-bad_module_id:
+next_constant:
zend_hash_move_forward_ex(EG(zend_constants), &pos);
}
efree(module_names);
@@ -2386,7 +2389,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
MAKE_STD_ZVAL(arg_array);
array_init(arg_array);
- /* include_filename always points to the last filename of the last last called-fuction.
+ /* include_filename always points to the last filename of the last last called-function.
if we have called include in the frame above - this is the file we have included.
*/
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 82275ce62..326d4ef97 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1723,7 +1723,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
}
{
- /* Push a seperator to the switch and foreach stacks */
+ /* Push a separator to the switch and foreach stacks */
zend_switch_entry switch_entry;
switch_entry.cond.op_type = IS_UNUSED;
@@ -1817,7 +1817,7 @@ void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) /*
CG(active_op_array) = function_token->u.op_array;
- /* Pop the switch and foreach seperators */
+ /* Pop the switch and foreach separators */
zend_stack_del_top(&CG(switch_cond_stack));
zend_stack_del_top(&CG(foreach_copy_stack));
}
@@ -2584,7 +2584,7 @@ static int generate_free_foreach_copy(const zend_op *foreach_copy TSRMLS_DC) /*
{
zend_op *opline;
- /* If we reach the seperator then stop applying the stack */
+ /* If we reach the separator then stop applying the stack */
if (foreach_copy->result_type == IS_UNUSED && foreach_copy->op1_type == IS_UNUSED) {
return 1;
}
@@ -3267,11 +3267,11 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
if (child->common.prototype && (child->common.prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) {
if (!zend_do_perform_implementation_check(child, child->common.prototype TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype? child->common.prototype : parent TSRMLS_CC));
+ zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype TSRMLS_CC));
}
} else if (EG(error_reporting) & E_STRICT || EG(user_error_handler)) { /* Check E_STRICT (or custom error handler) before the check so that we save some time */
if (!zend_do_perform_implementation_check(child, parent TSRMLS_CC)) {
- char *method_prototype = zend_get_function_declaration(child->common.prototype? child->common.prototype : parent TSRMLS_CC);
+ char *method_prototype = zend_get_function_declaration(parent TSRMLS_CC);
zend_error(E_STRICT, "Declaration of %s::%s() should be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, method_prototype);
efree(method_prototype);
}
@@ -3744,7 +3744,7 @@ static void zend_add_trait_method(zend_class_entry *ce, const char *name, const
#endif
} else {
/* inherited members are overridden by members inserted by traits */
- /* check whether the trait method fullfills the inheritance requirements */
+ /* check whether the trait method fulfills the inheritance requirements */
do_inheritance_check_on_method(fn, existing_fn TSRMLS_CC);
}
}
@@ -3911,7 +3911,7 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
/** With the other traits, we are more permissive.
We do not give errors for those. This allows to be more
defensive in such definitions.
- However, we want to make sure that the insteadof declartion
+ However, we want to make sure that the insteadof declaration
is consistent in itself.
*/
j = 0;
@@ -5479,7 +5479,7 @@ void zend_do_shell_exec(znode *result, const znode *cmd TSRMLS_DC) /* {{{ */
break;
}
SET_NODE(opline->op1, cmd);
- opline->op2.opline_num = 0;
+ opline->op2.opline_num = 1;
opline->extended_value = ZEND_DO_FCALL;
SET_UNUSED(opline->op2);
@@ -6943,7 +6943,7 @@ ZEND_API size_t zend_dirname(char *path, size_t len)
}
#elif defined(NETWARE)
/*
- * Find the first occurence of : from the left
+ * Find the first occurrence of : from the left
* move the path pointer to the position just after :
* increment the len_adjust to the length of path till colon character(inclusive)
* If there is no character beyond : simple return len
diff --git a/Zend/zend_dtrace.c b/Zend/zend_dtrace.c
index 5b2d0d2df..65c019385 100644
--- a/Zend/zend_dtrace.c
+++ b/Zend/zend_dtrace.c
@@ -24,7 +24,7 @@
#ifdef HAVE_DTRACE
/* PHP DTrace probes {{{ */
-static inline char *dtrace_get_executed_filename(TSRMLS_D)
+static inline const char *dtrace_get_executed_filename(TSRMLS_D)
{
if (EG(current_execute_data) && EG(current_execute_data)->op_array) {
return EG(current_execute_data)->op_array->filename;
@@ -36,9 +36,9 @@ static inline char *dtrace_get_executed_filename(TSRMLS_D)
ZEND_API zend_op_array *dtrace_compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
{
zend_op_array *res;
- DTRACE_COMPILE_FILE_ENTRY(file_handle->opened_path, file_handle->filename);
+ DTRACE_COMPILE_FILE_ENTRY(file_handle->opened_path, (char *)file_handle->filename);
res = compile_file(file_handle, type TSRMLS_CC);
- DTRACE_COMPILE_FILE_RETURN(file_handle->opened_path, file_handle->filename);
+ DTRACE_COMPILE_FILE_RETURN(file_handle->opened_path, (char *)file_handle->filename);
return res;
}
@@ -47,7 +47,7 @@ ZEND_API zend_op_array *dtrace_compile_file(zend_file_handle *file_handle, int t
ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC)
{
int lineno;
- char *scope, *filename, *funcname, *classname;
+ const char *scope, *filename, *funcname, *classname;
scope = filename = funcname = classname = NULL;
/* we need filename and lineno for both execute and function probes */
@@ -58,48 +58,46 @@ ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC)
}
if (DTRACE_FUNCTION_ENTRY_ENABLED() || DTRACE_FUNCTION_RETURN_ENABLED()) {
- filename = dtrace_get_executed_filename(TSRMLS_C);
classname = get_active_class_name(&scope TSRMLS_CC);
funcname = get_active_function_name(TSRMLS_C);
- lineno = zend_get_executed_lineno(TSRMLS_C);
}
if (DTRACE_EXECUTE_ENTRY_ENABLED()) {
- DTRACE_EXECUTE_ENTRY(filename, lineno);
+ DTRACE_EXECUTE_ENTRY((char *)filename, lineno);
}
if (DTRACE_FUNCTION_ENTRY_ENABLED() && funcname != NULL) {
- DTRACE_FUNCTION_ENTRY(funcname, filename, lineno, classname, scope);
+ DTRACE_FUNCTION_ENTRY((char *)funcname, (char *)filename, lineno, (char *)classname, (char *)scope);
}
execute(op_array TSRMLS_CC);
if (DTRACE_FUNCTION_RETURN_ENABLED() && funcname != NULL) {
- DTRACE_FUNCTION_RETURN(funcname, filename, lineno, classname, scope);
+ DTRACE_FUNCTION_RETURN((char *)funcname, (char *)filename, lineno, (char *)classname, (char *)scope);
}
if (DTRACE_EXECUTE_RETURN_ENABLED()) {
- DTRACE_EXECUTE_RETURN(filename, lineno);
+ DTRACE_EXECUTE_RETURN((char *)filename, lineno);
}
}
ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC)
{
int lineno;
- char *filename;
+ const char *filename;
if (DTRACE_EXECUTE_ENTRY_ENABLED() || DTRACE_EXECUTE_RETURN_ENABLED()) {
filename = dtrace_get_executed_filename(TSRMLS_C);
lineno = zend_get_executed_lineno(TSRMLS_C);
}
if (DTRACE_EXECUTE_ENTRY_ENABLED()) {
- DTRACE_EXECUTE_ENTRY(filename, lineno);
+ DTRACE_EXECUTE_ENTRY((char *)filename, lineno);
}
execute_internal(execute_data_ptr, return_value_used TSRMLS_CC);
if (DTRACE_EXECUTE_RETURN_ENABLED()) {
- DTRACE_EXECUTE_RETURN(filename, lineno);
+ DTRACE_EXECUTE_RETURN((char *)filename, lineno);
}
}
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index f457b2846..14ae75e38 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -85,12 +85,12 @@ void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */
{
#ifdef HAVE_DTRACE
if (DTRACE_EXCEPTION_THROWN_ENABLED()) {
- char *classname;
- int name_len;
+ const char *classname;
+ zend_uint name_len;
if (exception != NULL) {
zend_get_object_classname(exception, &classname, &name_len TSRMLS_CC);
- DTRACE_EXCEPTION_THROWN(classname);
+ DTRACE_EXCEPTION_THROWN((char *)classname);
} else {
DTRACE_EXCEPTION_THROWN(NULL);
}
@@ -817,6 +817,10 @@ ZEND_API void zend_exception_error(zval *exception, int severity TSRMLS_DC) /* {
if (instanceof_function(ce_exception, default_exception_ce TSRMLS_CC)) {
file = zend_read_property(default_exception_ce, EG(exception), "file", sizeof("file")-1, 1 TSRMLS_CC);
line = zend_read_property(default_exception_ce, EG(exception), "line", sizeof("line")-1, 1 TSRMLS_CC);
+
+ convert_to_string(file);
+ file = (Z_STRLEN_P(file) > 0) ? file : NULL;
+ line = (Z_TYPE_P(line) == IS_LONG) ? line : NULL;
} else {
file = NULL;
line = NULL;
@@ -828,7 +832,11 @@ ZEND_API void zend_exception_error(zval *exception, int severity TSRMLS_DC) /* {
file = zend_read_property(default_exception_ce, exception, "file", sizeof("file")-1, 1 TSRMLS_CC);
line = zend_read_property(default_exception_ce, exception, "line", sizeof("line")-1, 1 TSRMLS_CC);
- zend_error_va(severity, Z_STRVAL_P(file), Z_LVAL_P(line), "Uncaught %s\n thrown", Z_STRVAL_P(str));
+ convert_to_string(str);
+ convert_to_string(file);
+ convert_to_long(line);
+
+ zend_error_va(severity, (Z_STRLEN_P(file) > 0) ? Z_STRVAL_P(file) : NULL, Z_LVAL_P(line), "Uncaught %s\n thrown", Z_STRVAL_P(str));
} else {
zend_error(severity, "Uncaught exception '%s'", ce_exception->name);
}
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 09e703ca5..6fa7e9baf 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -254,15 +254,13 @@ void shutdown_executor(TSRMLS_D) /* {{{ */
if (EG(user_error_handler)) {
zeh = EG(user_error_handler);
EG(user_error_handler) = NULL;
- zval_dtor(zeh);
- FREE_ZVAL(zeh);
+ zval_ptr_dtor(&zeh);
}
if (EG(user_exception_handler)) {
zeh = EG(user_exception_handler);
EG(user_exception_handler) = NULL;
- zval_dtor(zeh);
- FREE_ZVAL(zeh);
+ zval_ptr_dtor(&zeh);
}
zend_stack_destroy(&EG(user_error_handlers_error_reporting));
@@ -1074,7 +1072,7 @@ ZEND_API int zend_lookup_class_ex(const char *name, int name_length, const zend_
}
/* The compiler is not-reentrant. Make sure we __autoload() only during run-time
- * (doesn't impact fuctionality of __autoload()
+ * (doesn't impact functionality of __autoload()
*/
if (!use_autoload || zend_is_compiling(TSRMLS_C)) {
if (!key) {
diff --git a/Zend/zend_gc.h b/Zend/zend_gc.h
index a44303268..3483e9dbf 100644
--- a/Zend/zend_gc.h
+++ b/Zend/zend_gc.h
@@ -106,7 +106,7 @@ typedef struct _zend_gc_globals {
gc_root_buffer *first_unused; /* pointer to first unused buffer */
gc_root_buffer *last_unused; /* pointer to last unused buffer */
- zval_gc_info *zval_to_free; /* temporaryt list of zvals to free */
+ zval_gc_info *zval_to_free; /* temporary list of zvals to free */
zval_gc_info *free_list;
zval_gc_info *next_to_free;
@@ -199,7 +199,7 @@ static zend_always_inline void gc_remove_from_buffer(gc_root_buffer *root TSRMLS
GC_ZVAL_INIT(z); \
} while (0)
-/* The following macroses override macroses from zend_alloc.h */
+/* The following macros override macros from zend_alloc.h */
#undef ALLOC_ZVAL
#define ALLOC_ZVAL(z) \
do { \
diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h
index 58392c199..646e9c9a6 100644
--- a/Zend/zend_globals.h
+++ b/Zend/zend_globals.h
@@ -306,7 +306,7 @@ struct _zend_php_scanner_globals {
unsigned char *script_filtered;
size_t script_filtered_size;
- /* input/ouput filters */
+ /* input/output filters */
zend_encoding_filter input_filter;
zend_encoding_filter output_filter;
const zend_encoding *script_encoding;
diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c
index a3862d30f..70bc55ec0 100644
--- a/Zend/zend_ini_parser.c
+++ b/Zend/zend_ini_parser.c
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.7. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +26,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -47,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.7"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -55,59 +52,21 @@
/* Pure parsers. */
#define YYPURE 1
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-/* Substitute the variable and function names. */
-#define yyparse ini_parse
-#define yylex ini_lex
-#define yyerror ini_error
-#define yylval ini_lval
-#define yychar ini_char
-#define yydebug ini_debug
-#define yynerrs ini_nerrs
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- TC_SECTION = 258,
- TC_RAW = 259,
- TC_CONSTANT = 260,
- TC_NUMBER = 261,
- TC_STRING = 262,
- TC_WHITESPACE = 263,
- TC_LABEL = 264,
- TC_OFFSET = 265,
- TC_DOLLAR_CURLY = 266,
- TC_VARNAME = 267,
- TC_QUOTED_STRING = 268,
- BOOL_TRUE = 269,
- BOOL_FALSE = 270,
- END_OF_LINE = 271
- };
-#endif
-/* Tokens. */
-#define TC_SECTION 258
-#define TC_RAW 259
-#define TC_CONSTANT 260
-#define TC_NUMBER 261
-#define TC_STRING 262
-#define TC_WHITESPACE 263
-#define TC_LABEL 264
-#define TC_OFFSET 265
-#define TC_DOLLAR_CURLY 266
-#define TC_VARNAME 267
-#define TC_QUOTED_STRING 268
-#define BOOL_TRUE 269
-#define BOOL_FALSE 270
-#define END_OF_LINE 271
+/* Push parsers. */
+#define YYPUSH 0
+/* Pull parsers. */
+#define YYPULL 1
+/* Substitute the variable and function names. */
+#define yyparse ini_parse
+#define yylex ini_lex
+#define yyerror ini_error
+#define yylval ini_lval
+#define yychar ini_char
+#define yydebug ini_debug
+#define yynerrs ini_nerrs
/* Copy the first part of user declarations. */
@@ -359,10 +318,14 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
+
+# ifndef YY_NULL
+# if defined __cplusplus && 201103L <= __cplusplus
+# define YY_NULL nullptr
+# else
+# define YY_NULL 0
+# endif
+# endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@@ -372,24 +335,84 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
# define YYERROR_VERBOSE 0
#endif
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
+/* In a future release of Bison, this section will be replaced
+ by #include "zend_ini_parser.h". */
+#ifndef YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED
+# define YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
#endif
+#if YYDEBUG
+extern int ini_debug;
+#endif
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ TC_SECTION = 258,
+ TC_RAW = 259,
+ TC_CONSTANT = 260,
+ TC_NUMBER = 261,
+ TC_STRING = 262,
+ TC_WHITESPACE = 263,
+ TC_LABEL = 264,
+ TC_OFFSET = 265,
+ TC_DOLLAR_CURLY = 266,
+ TC_VARNAME = 267,
+ TC_QUOTED_STRING = 268,
+ BOOL_TRUE = 269,
+ BOOL_FALSE = 270,
+ END_OF_LINE = 271
+ };
+#endif
+/* Tokens. */
+#define TC_SECTION 258
+#define TC_RAW 259
+#define TC_CONSTANT 260
+#define TC_NUMBER 261
+#define TC_STRING 262
+#define TC_WHITESPACE 263
+#define TC_LABEL 264
+#define TC_OFFSET 265
+#define TC_DOLLAR_CURLY 266
+#define TC_VARNAME 267
+#define TC_QUOTED_STRING 268
+#define BOOL_TRUE 269
+#define BOOL_FALSE 270
+#define END_OF_LINE 271
+
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int ini_parse (void *YYPARSE_PARAM);
+#else
+int ini_parse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int ini_parse (void);
+#else
+int ini_parse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
-/* Copy the second part of user declarations. */
+#endif /* !YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED */
+/* Copy the second part of user declarations. */
-/* Line 216 of yacc.c. */
#ifdef short
@@ -443,36 +466,36 @@ typedef short int yytype_int16;
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
# endif
# endif
# ifndef YY_
-# define YY_(msgid) msgid
+# define YY_(Msgid) Msgid
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
+# define YYUSE(E) ((void) (E))
#else
-# define YYUSE(e) /* empty */
+# define YYUSE(E) /* empty */
#endif
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
-# define YYID(n) (n)
+# define YYID(N) (N)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
-YYID (int i)
+YYID (int yyi)
#else
static int
-YYID (i)
- int i;
+YYID (yyi)
+ int yyi;
#endif
{
- return i;
+ return yyi;
}
#endif
@@ -493,11 +516,12 @@ YYID (i)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -520,24 +544,24 @@ YYID (i)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -553,9 +577,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -566,35 +590,19 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
-# define YYSTACK_RELOCATE(Stack) \
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
@@ -602,6 +610,26 @@ union yyalloc
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(Dst, Src, Count) \
+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+# else
+# define YYCOPY(Dst, Src, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (Dst)[yyi] = (Src)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
@@ -697,7 +725,7 @@ static const yytype_uint16 yyrline[] =
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
@@ -705,13 +733,13 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "TC_SECTION", "TC_RAW", "TC_CONSTANT",
"TC_NUMBER", "TC_STRING", "TC_WHITESPACE", "TC_LABEL", "TC_OFFSET",
"TC_DOLLAR_CURLY", "TC_VARNAME", "TC_QUOTED_STRING", "BOOL_TRUE",
- "BOOL_FALSE", "END_OF_LINE", "'='", "':'", "','", "'.'", "'\"'", "'''",
+ "BOOL_FALSE", "END_OF_LINE", "'='", "':'", "','", "'.'", "'\"'", "'\\''",
"'^'", "'+'", "'-'", "'/'", "'*'", "'%'", "'$'", "'~'", "'<'", "'>'",
"'?'", "'@'", "'{'", "'}'", "'|'", "'&'", "'!'", "']'", "'('", "')'",
"$accept", "statement_list", "statement", "section_string_or_value",
"string_or_value", "option_offset", "encapsed_list",
"var_string_list_section", "var_string_list", "expr", "cfg_var_ref",
- "constant_literal", "constant_string", 0
+ "constant_literal", "constant_string", YY_NULL
};
#endif
@@ -748,8 +776,8 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
@@ -792,8 +820,7 @@ static const yytype_int8 yypgoto[] =
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
@@ -810,6 +837,12 @@ static const yytype_uint8 yytable[] =
0, 0, 4, 5, 0, 47, 0, 68, 0, 6
};
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-36)))
+
+#define yytable_value_is_error(Yytable_value) \
+ YYID (0)
+
static const yytype_int8 yycheck[] =
{
3, 25, 37, 38, 4, 5, 6, 7, 8, 33,
@@ -850,78 +883,50 @@ static const yytype_uint8 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ goto yybackup; \
+ } \
+ else \
+ { \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
-
+/* Error token number */
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
-
#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
#else
@@ -971,6 +976,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
YYSTYPE const * const yyvaluep;
#endif
{
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
@@ -982,7 +989,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
switch (yytype)
{
default:
- break;
+ break;
}
}
@@ -1020,17 +1027,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+ yytype_int16 *yybottom;
+ yytype_int16 *yytop;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
YYFPRINTF (stderr, "\n");
}
@@ -1064,11 +1074,11 @@ yy_reduce_print (yyvsp, yyrule)
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- fprintf (stderr, " $%d = ", yyi + 1);
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
- fprintf (stderr, "\n");
+ YYFPRINTF (stderr, "\n");
}
}
@@ -1105,7 +1115,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1208,115 +1217,145 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = YY_NULL;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ for details. YYERROR is fine as it does not invoke this
+ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ {
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ {
+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1345,28 +1384,9 @@ yydestruct (yymsg, yytype, yyvaluep)
{
default:
- break;
+ break;
}
}
-
-
-/* Prevent warnings from -Wmissing-prototypes. */
-
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
@@ -1397,77 +1417,92 @@ yyparse ()
#endif
#endif
{
- /* The look-ahead symbol. */
+/* The lookahead symbol. */
int yychar;
-/* The semantic value of the look-ahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+ _Pragma ("GCC diagnostic pop")
+#else
+/* Default value used for initialization, for pacifying older GCCs
+ or non-GCC compilers. */
+static YYSTYPE yyval_default;
+# define YY_INITIAL_VALUE(Value) = Value
+#endif
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
+ /* Number of syntax errors so far. */
+ int yynerrs;
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+ Refer to the stacks through separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
- YYSIZE_T yystacksize = YYINITDEPTH;
+ YYSIZE_T yystacksize;
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken = 0;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
+ yyssp = yyss = yyssa;
+ yyvsp = yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
+ yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate;
/*------------------------------------------------------------.
@@ -1494,7 +1529,6 @@ int yynerrs;
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
-
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
@@ -1502,7 +1536,6 @@ int yynerrs;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
-
&yystacksize);
yyss = yyss1;
@@ -1525,9 +1558,8 @@ int yynerrs;
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -1538,7 +1570,6 @@ int yynerrs;
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
-
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -1548,6 +1579,9 @@ int yynerrs;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
goto yybackup;
/*-----------.
@@ -1556,16 +1590,16 @@ int yynerrs;
yybackup:
/* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
+ lookahead token if we need one and don't already have one. */
- /* First try to decide what to do without reference to look-ahead token. */
+ /* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
- /* Not known => get a look-ahead token if don't already have one. */
+ /* Not known => get a lookahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -1591,29 +1625,27 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
- /* Shift the look-ahead token. */
+ /* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
yystate = yyn;
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
goto yynewstate;
@@ -1891,10 +1923,20 @@ yyreduce:
break;
-/* Line 1267 of yacc.c. */
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -1903,7 +1945,6 @@ yyreduce:
*++yyvsp = yyval;
-
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -1923,6 +1964,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -1930,37 +1975,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -1968,7 +2012,7 @@ yyerrlab:
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse look-ahead token after an
+ /* If just tried and failed to reuse lookahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -1985,7 +2029,7 @@ yyerrlab:
}
}
- /* Else will try to reuse look-ahead token after shifting the error
+ /* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
@@ -2019,7 +2063,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -2042,10 +2086,9 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Shift the error token. */
@@ -2069,7 +2112,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -2080,9 +2123,14 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ if (yychar != YYEMPTY)
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
@@ -2106,4 +2154,3 @@ yyreturn:
}
-
diff --git a/Zend/zend_ini_parser.h b/Zend/zend_ini_parser.h
index d883f9d40..42bb013c0 100644
--- a/Zend/zend_ini_parser.h
+++ b/Zend/zend_ini_parser.h
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.7. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison interface for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,10 +26,20 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
+#ifndef YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED
+# define YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int ini_debug;
+#endif
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -73,13 +80,26 @@
-
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int ini_parse (void *YYPARSE_PARAM);
+#else
+int ini_parse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int ini_parse (void);
+#else
+int ini_parse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+#endif /* !YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED */
diff --git a/Zend/zend_ini_parser.output b/Zend/zend_ini_parser.output
index 9f7bcda21..8c597b4da 100644
--- a/Zend/zend_ini_parser.output
+++ b/Zend/zend_ini_parser.output
@@ -1,9 +1,9 @@
-Terminals which are not used
+Terminals unused in grammar
':'
','
'.'
- '''
+ '\''
'^'
'+'
'-'
@@ -90,7 +90,7 @@ $end (0) 0
'$' (36)
'%' (37)
'&' (38) 33
-''' (39)
+'\'' (39)
'(' (40) 36
')' (41) 36
'*' (42)
@@ -158,7 +158,7 @@ constant_string (55)
on left: 43 44 45 46 47, on right: 26 29
-state 0
+State 0
0 $accept: . statement_list $end
@@ -167,7 +167,7 @@ state 0
statement_list go to state 1
-state 1
+State 1
0 $accept: statement_list . $end
1 statement_list: statement_list . statement
@@ -181,14 +181,14 @@ state 1
statement go to state 7
-state 2
+State 2
0 $accept: statement_list $end .
$default accept
-state 3
+State 3
3 statement: TC_SECTION . section_string_or_value ']'
@@ -208,7 +208,7 @@ state 3
constant_literal go to state 18
-state 4
+State 4
4 statement: TC_LABEL . '=' string_or_value
6 | TC_LABEL .
@@ -218,7 +218,7 @@ state 4
$default reduce using rule 6 (statement)
-state 5
+State 5
5 statement: TC_OFFSET . option_offset ']' '=' string_or_value
@@ -238,63 +238,63 @@ state 5
constant_string go to state 29
-state 6
+State 6
7 statement: END_OF_LINE .
$default reduce using rule 7 (statement)
-state 7
+State 7
1 statement_list: statement_list statement .
$default reduce using rule 1 (statement_list)
-state 8
+State 8
39 constant_literal: TC_RAW .
$default reduce using rule 39 (constant_literal)
-state 9
+State 9
38 constant_literal: TC_CONSTANT .
$default reduce using rule 38 (constant_literal)
-state 10
+State 10
40 constant_literal: TC_NUMBER .
$default reduce using rule 40 (constant_literal)
-state 11
+State 11
41 constant_literal: TC_STRING .
$default reduce using rule 41 (constant_literal)
-state 12
+State 12
42 constant_literal: TC_WHITESPACE .
$default reduce using rule 42 (constant_literal)
-state 13
+State 13
37 cfg_var_ref: TC_DOLLAR_CURLY . TC_VARNAME '}'
TC_VARNAME shift, and go to state 30
-state 14
+State 14
21 var_string_list_section: '"' . encapsed_list '"'
@@ -303,14 +303,14 @@ state 14
encapsed_list go to state 31
-state 15
+State 15
3 statement: TC_SECTION section_string_or_value . ']'
']' shift, and go to state 32
-state 16
+State 16
8 section_string_or_value: var_string_list_section .
22 var_string_list_section: var_string_list_section . cfg_var_ref
@@ -331,21 +331,21 @@ state 16
constant_literal go to state 35
-state 17
+State 17
19 var_string_list_section: cfg_var_ref .
$default reduce using rule 19 (var_string_list_section)
-state 18
+State 18
20 var_string_list_section: constant_literal .
$default reduce using rule 20 (var_string_list_section)
-state 19
+State 19
4 statement: TC_LABEL '=' . string_or_value
@@ -370,42 +370,42 @@ state 19
constant_string go to state 29
-state 20
+State 20
44 constant_string: TC_RAW .
$default reduce using rule 44 (constant_string)
-state 21
+State 21
43 constant_string: TC_CONSTANT .
$default reduce using rule 43 (constant_string)
-state 22
+State 22
45 constant_string: TC_NUMBER .
$default reduce using rule 45 (constant_string)
-state 23
+State 23
46 constant_string: TC_STRING .
$default reduce using rule 46 (constant_string)
-state 24
+State 24
47 constant_string: TC_WHITESPACE .
$default reduce using rule 47 (constant_string)
-state 25
+State 25
27 var_string_list: '"' . encapsed_list '"'
@@ -414,14 +414,14 @@ state 25
encapsed_list go to state 45
-state 26
+State 26
5 statement: TC_OFFSET option_offset . ']' '=' string_or_value
']' shift, and go to state 46
-state 27
+State 27
14 option_offset: var_string_list .
28 var_string_list: var_string_list . cfg_var_ref
@@ -442,28 +442,28 @@ state 27
constant_string go to state 49
-state 28
+State 28
25 var_string_list: cfg_var_ref .
$default reduce using rule 25 (var_string_list)
-state 29
+State 29
26 var_string_list: constant_string .
$default reduce using rule 26 (var_string_list)
-state 30
+State 30
37 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME . '}'
'}' shift, and go to state 50
-state 31
+State 31
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
@@ -476,14 +476,14 @@ state 31
cfg_var_ref go to state 53
-state 32
+State 32
3 statement: TC_SECTION section_string_or_value ']' .
$default reduce using rule 3 (statement)
-state 33
+State 33
24 var_string_list_section: var_string_list_section '"' . encapsed_list '"'
@@ -492,42 +492,42 @@ state 33
encapsed_list go to state 54
-state 34
+State 34
22 var_string_list_section: var_string_list_section cfg_var_ref .
$default reduce using rule 22 (var_string_list_section)
-state 35
+State 35
23 var_string_list_section: var_string_list_section constant_literal .
$default reduce using rule 23 (var_string_list_section)
-state 36
+State 36
11 string_or_value: BOOL_TRUE .
$default reduce using rule 11 (string_or_value)
-state 37
+State 37
12 string_or_value: BOOL_FALSE .
$default reduce using rule 12 (string_or_value)
-state 38
+State 38
13 string_or_value: END_OF_LINE .
$default reduce using rule 13 (string_or_value)
-state 39
+State 39
34 expr: '~' . expr
@@ -548,7 +548,7 @@ state 39
constant_string go to state 29
-state 40
+State 40
35 expr: '!' . expr
@@ -569,7 +569,7 @@ state 40
constant_string go to state 29
-state 41
+State 41
36 expr: '(' . expr ')'
@@ -590,14 +590,14 @@ state 41
constant_string go to state 29
-state 42
+State 42
4 statement: TC_LABEL '=' string_or_value .
$default reduce using rule 4 (statement)
-state 43
+State 43
28 var_string_list: var_string_list . cfg_var_ref
29 | var_string_list . constant_string
@@ -618,7 +618,7 @@ state 43
constant_string go to state 49
-state 44
+State 44
10 string_or_value: expr .
32 expr: expr . '|' expr
@@ -630,7 +630,7 @@ state 44
$default reduce using rule 10 (string_or_value)
-state 45
+State 45
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
@@ -643,14 +643,14 @@ state 45
cfg_var_ref go to state 53
-state 46
+State 46
5 statement: TC_OFFSET option_offset ']' . '=' string_or_value
'=' shift, and go to state 61
-state 47
+State 47
30 var_string_list: var_string_list '"' . encapsed_list '"'
@@ -659,49 +659,49 @@ state 47
encapsed_list go to state 62
-state 48
+State 48
28 var_string_list: var_string_list cfg_var_ref .
$default reduce using rule 28 (var_string_list)
-state 49
+State 49
29 var_string_list: var_string_list constant_string .
$default reduce using rule 29 (var_string_list)
-state 50
+State 50
37 cfg_var_ref: TC_DOLLAR_CURLY TC_VARNAME '}' .
$default reduce using rule 37 (cfg_var_ref)
-state 51
+State 51
17 encapsed_list: encapsed_list TC_QUOTED_STRING .
$default reduce using rule 17 (encapsed_list)
-state 52
+State 52
21 var_string_list_section: '"' encapsed_list '"' .
$default reduce using rule 21 (var_string_list_section)
-state 53
+State 53
16 encapsed_list: encapsed_list cfg_var_ref .
$default reduce using rule 16 (encapsed_list)
-state 54
+State 54
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
@@ -714,7 +714,7 @@ state 54
cfg_var_ref go to state 53
-state 55
+State 55
32 expr: expr . '|' expr
33 | expr . '&' expr
@@ -723,7 +723,7 @@ state 55
$default reduce using rule 34 (expr)
-state 56
+State 56
32 expr: expr . '|' expr
33 | expr . '&' expr
@@ -732,7 +732,7 @@ state 56
$default reduce using rule 35 (expr)
-state 57
+State 57
32 expr: expr . '|' expr
33 | expr . '&' expr
@@ -743,7 +743,7 @@ state 57
')' shift, and go to state 64
-state 58
+State 58
32 expr: expr '|' . expr
@@ -764,7 +764,7 @@ state 58
constant_string go to state 29
-state 59
+State 59
33 expr: expr '&' . expr
@@ -785,14 +785,14 @@ state 59
constant_string go to state 29
-state 60
+State 60
27 var_string_list: '"' encapsed_list '"' .
$default reduce using rule 27 (var_string_list)
-state 61
+State 61
5 statement: TC_OFFSET option_offset ']' '=' . string_or_value
@@ -817,7 +817,7 @@ state 61
constant_string go to state 29
-state 62
+State 62
16 encapsed_list: encapsed_list . cfg_var_ref
17 | encapsed_list . TC_QUOTED_STRING
@@ -830,21 +830,21 @@ state 62
cfg_var_ref go to state 53
-state 63
+State 63
24 var_string_list_section: var_string_list_section '"' encapsed_list '"' .
$default reduce using rule 24 (var_string_list_section)
-state 64
+State 64
36 expr: '(' expr ')' .
$default reduce using rule 36 (expr)
-state 65
+State 65
32 expr: expr . '|' expr
32 | expr '|' expr .
@@ -853,7 +853,7 @@ state 65
$default reduce using rule 32 (expr)
-state 66
+State 66
32 expr: expr . '|' expr
33 | expr . '&' expr
@@ -862,14 +862,14 @@ state 66
$default reduce using rule 33 (expr)
-state 67
+State 67
5 statement: TC_OFFSET option_offset ']' '=' string_or_value .
$default reduce using rule 5 (statement)
-state 68
+State 68
30 var_string_list: var_string_list '"' encapsed_list '"' .
diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c
index 295da98ca..1c5c71cd0 100644
--- a/Zend/zend_language_parser.c
+++ b/Zend/zend_language_parser.c
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.7. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +26,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -47,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.7"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -55,17 +52,107 @@
/* Pure parsers. */
#define YYPURE 1
-/* Using locations. */
-#define YYLSP_NEEDED 0
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 1
+
/* Substitute the variable and function names. */
-#define yyparse zendparse
-#define yylex zendlex
-#define yyerror zenderror
-#define yylval zendlval
-#define yychar zendchar
-#define yydebug zenddebug
-#define yynerrs zendnerrs
+#define yyparse zendparse
+#define yylex zendlex
+#define yyerror zenderror
+#define yylval zendlval
+#define yychar zendchar
+#define yydebug zenddebug
+#define yynerrs zendnerrs
+
+/* Copy the first part of user declarations. */
+
+
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 2.00 of the Zend license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.zend.com/license/2_00.txt. |
+ | If you did not receive a copy of the Zend license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@zend.com so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Andi Gutmans <andi@zend.com> |
+ | Zeev Suraski <zeev@zend.com> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+/*
+ * LALR shift/reduce conflicts and how they are resolved:
+ *
+ * - 2 shift/reduce conflicts due to the dangling elseif/else ambiguity. Solved by shift.
+ *
+ */
+
+
+#include "zend_compile.h"
+#include "zend.h"
+#include "zend_list.h"
+#include "zend_globals.h"
+#include "zend_API.h"
+#include "zend_constants.h"
+
+#define YYSIZE_T size_t
+#define yytnamerr zend_yytnamerr
+static YYSIZE_T zend_yytnamerr(char*, const char*);
+
+#define YYERROR_VERBOSE
+#define YYSTYPE znode
+
+
+
+
+# ifndef YY_NULL
+# if defined __cplusplus && 201103L <= __cplusplus
+# define YY_NULL nullptr
+# else
+# define YY_NULL 0
+# endif
+# endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* In a future release of Bison, this section will be replaced
+ by #include "zend_language_parser.h". */
+#ifndef YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED
+# define YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int zenddebug;
+#endif
+/* "%code requires" blocks. */
+
+
+#ifdef ZTS
+# define YYPARSE_PARAM tsrm_ls
+# define YYLEX_PARAM tsrm_ls
+#endif
+
+
/* Tokens. */
@@ -336,92 +423,33 @@
-
-/* Copy the first part of user declarations. */
-
-
-/*
- +----------------------------------------------------------------------+
- | Zend Engine |
- +----------------------------------------------------------------------+
- | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
- +----------------------------------------------------------------------+
- | This source file is subject to version 2.00 of the Zend license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.zend.com/license/2_00.txt. |
- | If you did not receive a copy of the Zend license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@zend.com so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Andi Gutmans <andi@zend.com> |
- | Zeev Suraski <zeev@zend.com> |
- +----------------------------------------------------------------------+
-*/
-
-/* $Id$ */
-
-/*
- * LALR shift/reduce conflicts and how they are resolved:
- *
- * - 2 shift/reduce conflicts due to the dangling elseif/else ambiguity. Solved by shift.
- *
- */
-
-
-#include "zend_compile.h"
-#include "zend.h"
-#include "zend_list.h"
-#include "zend_globals.h"
-#include "zend_API.h"
-#include "zend_constants.h"
-
-#define YYSIZE_T size_t
-#define yytnamerr zend_yytnamerr
-static YYSIZE_T zend_yytnamerr(char*, const char*);
-
-#define YYERROR_VERBOSE
-#define YYSTYPE znode
-#ifdef ZTS
-# define YYPARSE_PARAM tsrm_ls
-# define YYLEX_PARAM tsrm_ls
-#endif
-
-
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int zendparse (void *YYPARSE_PARAM);
+#else
+int zendparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int zendparse (void);
+#else
+int zendparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+#endif /* !YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED */
/* Copy the second part of user declarations. */
-/* Line 216 of yacc.c. */
-
#ifdef short
# undef short
@@ -474,36 +502,36 @@ typedef short int yytype_int16;
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
# endif
# endif
# ifndef YY_
-# define YY_(msgid) msgid
+# define YY_(Msgid) Msgid
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
+# define YYUSE(E) ((void) (E))
#else
-# define YYUSE(e) /* empty */
+# define YYUSE(E) /* empty */
#endif
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
-# define YYID(n) (n)
+# define YYID(N) (N)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
-YYID (int i)
+YYID (int yyi)
#else
static int
-YYID (i)
- int i;
+YYID (yyi)
+ int yyi;
#endif
{
- return i;
+ return yyi;
}
#endif
@@ -524,11 +552,12 @@ YYID (i)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -551,24 +580,24 @@ YYID (i)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -584,9 +613,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -597,35 +626,19 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
-# define YYSTACK_RELOCATE(Stack) \
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
@@ -633,6 +646,26 @@ union yyalloc
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(Dst, Src, Count) \
+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+# else
+# define YYCOPY(Dst, Src, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (Dst)[yyi] = (Src)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
@@ -933,62 +966,62 @@ static const yytype_int16 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 214, 214, 218, 218, 219, 223, 224, 228, 229,
- 230, 231, 232, 233, 233, 235, 235, 237, 238, 242,
- 243, 247, 248, 249, 250, 254, 255, 259, 259, 260,
- 265, 266, 267, 268, 273, 274, 278, 279, 279, 279,
- 280, 280, 280, 281, 281, 281, 282, 282, 282, 286,
- 288, 290, 283, 292, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 307, 308,
- 306, 311, 312, 310, 314, 314, 315, 316, 317, 318,
- 319, 320, 316, 322, 323, 328, 329, 333, 334, 339,
- 339, 339, 344, 345, 349, 353, 357, 362, 363, 368,
- 368, 374, 373, 380, 379, 389, 390, 391, 392, 396,
- 397, 401, 404, 406, 409, 411, 415, 416, 420, 421,
- 426, 427, 431, 432, 437, 438, 443, 444, 449, 450,
- 455, 456, 457, 458, 463, 464, 464, 465, 465, 470,
- 471, 476, 477, 482, 484, 484, 488, 490, 490, 494,
- 496, 500, 502, 507, 508, 513, 514, 515, 516, 517,
- 518, 519, 520, 525, 526, 527, 528, 533, 534, 539,
- 540, 541, 542, 543, 544, 548, 549, 554, 555, 556,
- 561, 562, 563, 564, 570, 571, 576, 576, 577, 578,
- 579, 579, 584, 588, 589, 593, 594, 597, 599, 603,
- 604, 608, 609, 613, 617, 618, 622, 623, 627, 631,
- 632, 636, 637, 641, 642, 646, 647, 651, 652, 656,
- 657, 661, 662, 663, 664, 665, 666, 670, 671, 672,
- 673, 677, 678, 682, 683, 688, 689, 693, 693, 694,
- 698, 699, 703, 704, 708, 708, 709, 710, 714, 715,
- 715, 720, 720, 724, 724, 725, 726, 727, 727, 728,
- 729, 730, 731, 732, 733, 734, 735, 736, 737, 738,
- 739, 740, 741, 742, 743, 744, 744, 745, 745, 746,
- 746, 747, 747, 748, 749, 750, 751, 752, 753, 754,
- 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
- 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
- 775, 775, 776, 777, 776, 779, 779, 781, 782, 783,
- 784, 785, 786, 787, 788, 789, 790, 790, 791, 792,
- 793, 794, 795, 796, 796, 798, 798, 803, 806, 808,
- 812, 813, 814, 815, 819, 819, 822, 822, 825, 825,
- 828, 828, 831, 831, 834, 834, 837, 837, 840, 840,
- 846, 847, 848, 849, 853, 854, 855, 861, 862, 867,
- 868, 867, 870, 875, 876, 881, 885, 886, 887, 891,
- 892, 893, 898, 899, 904, 905, 906, 907, 908, 909,
- 910, 911, 912, 913, 914, 915, 920, 921, 922, 923,
- 924, 925, 926, 927, 928, 929, 933, 937, 938, 939,
- 940, 941, 942, 943, 944, 945, 950, 951, 954, 956,
- 960, 961, 962, 963, 967, 968, 973, 978, 983, 988,
- 989, 988, 991, 995, 996, 1001, 1001, 1005, 1006, 1010,
- 1010, 1016, 1017, 1018, 1022, 1023, 1027, 1028, 1033, 1037,
- 1038, 1038, 1043, 1044, 1045, 1050, 1051, 1052, 1056, 1057,
- 1058, 1063, 1064, 1068, 1069, 1074, 1075, 1075, 1079, 1080,
- 1081, 1085, 1086, 1090, 1091, 1095, 1096, 1101, 1102, 1102,
- 1103, 1108, 1109, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
- 1120, 1124, 1125, 1126, 1127, 1133, 1134, 1134, 1135, 1136,
- 1137, 1138, 1143, 1144, 1145, 1150, 1151, 1152, 1153, 1154,
- 1155, 1156, 1160, 1161, 1161, 1165, 1166
+ 0, 216, 216, 220, 220, 221, 225, 226, 230, 231,
+ 232, 233, 234, 235, 235, 237, 237, 239, 240, 244,
+ 245, 249, 250, 251, 252, 256, 257, 261, 261, 262,
+ 267, 268, 269, 270, 275, 276, 280, 281, 281, 281,
+ 282, 282, 282, 283, 283, 283, 284, 284, 284, 288,
+ 290, 292, 285, 294, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 309, 310,
+ 308, 313, 314, 312, 316, 316, 317, 318, 319, 320,
+ 321, 322, 318, 324, 325, 330, 331, 335, 336, 341,
+ 341, 341, 346, 347, 351, 355, 359, 364, 365, 370,
+ 370, 376, 375, 382, 381, 391, 392, 393, 394, 398,
+ 399, 403, 406, 408, 411, 413, 417, 418, 422, 423,
+ 428, 429, 433, 434, 439, 440, 445, 446, 451, 452,
+ 457, 458, 459, 460, 465, 466, 466, 467, 467, 472,
+ 473, 478, 479, 484, 486, 486, 490, 492, 492, 496,
+ 498, 502, 504, 509, 510, 515, 516, 517, 518, 519,
+ 520, 521, 522, 527, 528, 529, 530, 535, 536, 541,
+ 542, 543, 544, 545, 546, 550, 551, 556, 557, 558,
+ 563, 564, 565, 566, 572, 573, 578, 578, 579, 580,
+ 581, 581, 586, 590, 591, 595, 596, 599, 601, 605,
+ 606, 610, 611, 615, 619, 620, 624, 625, 629, 633,
+ 634, 638, 639, 643, 644, 648, 649, 653, 654, 658,
+ 659, 663, 664, 665, 666, 667, 668, 672, 673, 674,
+ 675, 679, 680, 684, 685, 690, 691, 695, 695, 696,
+ 700, 701, 705, 706, 710, 710, 711, 712, 716, 717,
+ 717, 722, 722, 726, 726, 727, 728, 729, 729, 730,
+ 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
+ 741, 742, 743, 744, 745, 746, 746, 747, 747, 748,
+ 748, 749, 749, 750, 751, 752, 753, 754, 755, 756,
+ 757, 758, 759, 760, 761, 762, 763, 764, 765, 766,
+ 767, 768, 769, 770, 771, 772, 773, 774, 775, 776,
+ 777, 777, 778, 779, 778, 781, 781, 783, 784, 785,
+ 786, 787, 788, 789, 790, 791, 792, 792, 793, 794,
+ 795, 796, 797, 798, 798, 800, 800, 805, 808, 810,
+ 814, 815, 816, 817, 821, 821, 824, 824, 827, 827,
+ 830, 830, 833, 833, 836, 836, 839, 839, 842, 842,
+ 848, 849, 850, 851, 855, 856, 857, 863, 864, 869,
+ 870, 869, 872, 877, 878, 883, 887, 888, 889, 893,
+ 894, 895, 900, 901, 906, 907, 908, 909, 910, 911,
+ 912, 913, 914, 915, 916, 917, 922, 923, 924, 925,
+ 926, 927, 928, 929, 930, 931, 935, 939, 940, 941,
+ 942, 943, 944, 945, 946, 947, 952, 953, 956, 958,
+ 962, 963, 964, 965, 969, 970, 975, 980, 985, 990,
+ 991, 990, 993, 997, 998, 1003, 1003, 1007, 1008, 1012,
+ 1012, 1018, 1019, 1020, 1024, 1025, 1029, 1030, 1035, 1039,
+ 1040, 1040, 1045, 1046, 1047, 1052, 1053, 1054, 1058, 1059,
+ 1060, 1065, 1066, 1070, 1071, 1076, 1077, 1077, 1081, 1082,
+ 1083, 1087, 1088, 1092, 1093, 1097, 1098, 1103, 1104, 1104,
+ 1105, 1110, 1111, 1115, 1116, 1117, 1118, 1119, 1120, 1121,
+ 1122, 1126, 1127, 1128, 1129, 1135, 1136, 1136, 1137, 1138,
+ 1139, 1140, 1145, 1146, 1147, 1152, 1153, 1154, 1155, 1156,
+ 1157, 1158, 1162, 1163, 1163, 1167, 1168
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
@@ -1055,27 +1088,28 @@ static const char *const yytname[] =
"\":: (T_PAAMAYIM_NEKUDOTAYIM)\"", "\"namespace (T_NAMESPACE)\"",
"\"__NAMESPACE__ (T_NS_C)\"", "\"__DIR__ (T_DIR)\"",
"\"\\\\ (T_NS_SEPARATOR)\"", "'('", "')'", "';'", "'{'", "'}'", "'$'",
- "']'", "'`'", "'\"'", "$accept", "start", "top_statement_list", "@1",
- "namespace_name", "top_statement", "@2", "@3", "use_declarations",
- "use_declaration", "constant_declaration", "inner_statement_list", "@4",
- "inner_statement", "statement", "unticked_statement", "@5", "@6", "@7",
- "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", "@17",
- "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25", "@26",
- "additional_catches", "non_empty_additional_catches", "additional_catch",
- "@27", "@28", "unset_variables", "unset_variable",
+ "']'", "'`'", "'\"'", "$accept", "start", "top_statement_list", "$@1",
+ "namespace_name", "top_statement", "$@2", "$@3", "use_declarations",
+ "use_declaration", "constant_declaration", "inner_statement_list", "$@4",
+ "inner_statement", "statement", "unticked_statement", "$@5", "$@6",
+ "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15",
+ "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23", "$@24",
+ "$@25", "$@26", "additional_catches", "non_empty_additional_catches",
+ "additional_catch", "@27", "$@28", "unset_variables", "unset_variable",
"function_declaration_statement", "class_declaration_statement",
- "is_reference", "unticked_function_declaration_statement", "@29",
- "unticked_class_declaration_statement", "@30", "@31", "class_entry_type",
- "extends_from", "interface_entry", "interface_extends_list",
- "implements_list", "interface_list", "foreach_optional_arg",
- "foreach_variable", "for_statement", "foreach_statement",
- "declare_statement", "declare_list", "switch_case_list", "case_list",
- "@32", "@33", "case_separator", "while_statement", "elseif_list", "@34",
- "new_elseif_list", "@35", "else_single", "new_else_single",
- "parameter_list", "non_empty_parameter_list", "optional_class_type",
+ "is_reference", "unticked_function_declaration_statement", "$@29",
+ "unticked_class_declaration_statement", "$@30", "$@31",
+ "class_entry_type", "extends_from", "interface_entry",
+ "interface_extends_list", "implements_list", "interface_list",
+ "foreach_optional_arg", "foreach_variable", "for_statement",
+ "foreach_statement", "declare_statement", "declare_list",
+ "switch_case_list", "case_list", "$@32", "$@33", "case_separator",
+ "while_statement", "elseif_list", "$@34", "new_elseif_list", "$@35",
+ "else_single", "new_else_single", "parameter_list",
+ "non_empty_parameter_list", "optional_class_type",
"function_call_parameter_list", "non_empty_function_call_parameter_list",
"global_var_list", "global_var", "static_var_list",
- "class_statement_list", "class_statement", "@36", "@37",
+ "class_statement_list", "class_statement", "$@36", "$@37",
"trait_use_statement", "trait_list", "trait_adaptations",
"trait_adaptation_list", "non_empty_trait_adaptation_list",
"trait_adaptation_statement", "trait_precedence", "trait_reference_list",
@@ -1083,32 +1117,33 @@ static const char *const yytname[] =
"trait_alias", "trait_modifiers", "method_body", "variable_modifiers",
"method_modifiers", "non_empty_member_modifiers", "member_modifier",
"class_variable_declaration", "class_constant_declaration",
- "echo_expr_list", "for_expr", "non_empty_for_expr", "@38",
+ "echo_expr_list", "for_expr", "non_empty_for_expr", "$@38",
"chaining_method_or_property", "chaining_dereference",
- "chaining_instance_call", "@39", "instance_call", "@40", "new_expr",
- "@41", "expr_without_variable", "@42", "@43", "@44", "@45", "@46", "@47",
- "@48", "@49", "@50", "@51", "@52", "@53", "@54", "function",
- "lexical_vars", "lexical_var_list", "function_call", "@55", "@56", "@57",
- "@58", "@59", "@60", "@61", "@62", "class_name",
+ "chaining_instance_call", "$@39", "instance_call", "$@40", "new_expr",
+ "$@41", "expr_without_variable", "$@42", "$@43", "$@44", "$@45", "$@46",
+ "$@47", "@48", "$@49", "$@50", "$@51", "$@52", "@53", "@54", "function",
+ "lexical_vars", "lexical_var_list", "function_call", "$@55", "$@56",
+ "$@57", "$@58", "$@59", "$@60", "$@61", "$@62", "class_name",
"fully_qualified_class_name", "class_name_reference",
- "dynamic_class_name_reference", "@63", "@64",
+ "dynamic_class_name_reference", "$@63", "$@64",
"dynamic_class_name_variable_properties",
"dynamic_class_name_variable_property", "exit_expr", "backticks_expr",
"ctor_arguments", "common_scalar", "static_scalar",
"static_class_constant", "scalar", "static_array_pair_list",
"possible_comma", "non_empty_static_array_pair_list", "expr",
- "r_variable", "w_variable", "rw_variable", "variable", "@65", "@66",
- "variable_properties", "variable_property", "@67",
- "array_method_dereference", "method", "@68", "method_or_not",
+ "r_variable", "w_variable", "rw_variable", "variable", "$@65", "$@66",
+ "variable_properties", "variable_property", "$@67",
+ "array_method_dereference", "method", "$@68", "method_or_not",
"variable_without_objects", "static_member", "variable_class_name",
- "array_function_dereference", "@69", "base_variable_with_function_calls",
- "base_variable", "reference_variable", "compound_variable", "dim_offset",
- "object_property", "@70", "object_dim_list", "variable_name",
+ "array_function_dereference", "$@69",
+ "base_variable_with_function_calls", "base_variable",
+ "reference_variable", "compound_variable", "dim_offset",
+ "object_property", "$@70", "object_dim_list", "variable_name",
"simple_indirect_reference", "assignment_list",
- "assignment_list_element", "@71", "array_pair_list",
- "non_empty_array_pair_list", "encaps_list", "encaps_var", "@72",
+ "assignment_list_element", "$@71", "array_pair_list",
+ "non_empty_array_pair_list", "encaps_list", "encaps_var", "$@72",
"encaps_var_offset", "internal_functions_in_yacc", "isset_variables",
- "@73", "class_constant", 0
+ "$@73", "class_constant", YY_NULL
};
#endif
@@ -1250,8 +1285,8 @@ static const yytype_uint8 yyr2[] =
2, 2, 1, 0, 4, 3, 3
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
@@ -1516,8 +1551,7 @@ static const yytype_int16 yypgoto[] =
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -472
static const yytype_int16 yytable[] =
{
@@ -2055,6 +2089,12 @@ static const yytype_int16 yytable[] =
259, 0, 260
};
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-736)))
+
+#define yytable_value_is_error(Yytable_value) \
+ (!!((Yytable_value) == (-472)))
+
static const yytype_int16 yycheck[] =
{
23, 24, 4, 234, 27, 119, 27, 577, 4, 373,
@@ -2708,78 +2748,50 @@ static const yytype_uint16 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ goto yybackup; \
+ } \
+ else \
+ { \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
-
+/* Error token number */
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
-
#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
#else
@@ -2829,6 +2841,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
YYSTYPE const * const yyvaluep;
#endif
{
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
@@ -2840,7 +2854,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
switch (yytype)
{
default:
- break;
+ break;
}
}
@@ -2878,17 +2892,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+ yytype_int16 *yybottom;
+ yytype_int16 *yytop;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
YYFPRINTF (stderr, "\n");
}
@@ -2922,11 +2939,11 @@ yy_reduce_print (yyvsp, yyrule)
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- fprintf (stderr, " $%d = ", yyi + 1);
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
- fprintf (stderr, "\n");
+ YYFPRINTF (stderr, "\n");
}
}
@@ -2963,7 +2980,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -3066,115 +3082,145 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = YY_NULL;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ for details. YYERROR is fine as it does not invoke this
+ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ {
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ {
+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -3203,28 +3249,9 @@ yydestruct (yymsg, yytype, yyvaluep)
{
default:
- break;
+ break;
}
}
-
-
-/* Prevent warnings from -Wmissing-prototypes. */
-
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
@@ -3255,77 +3282,92 @@ yyparse ()
#endif
#endif
{
- /* The look-ahead symbol. */
+/* The lookahead symbol. */
int yychar;
-/* The semantic value of the look-ahead symbol. */
-YYSTYPE yylval;
-/* Number of syntax errors so far. */
-int yynerrs;
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+ _Pragma ("GCC diagnostic pop")
+#else
+/* Default value used for initialization, for pacifying older GCCs
+ or non-GCC compilers. */
+static YYSTYPE yyval_default;
+# define YY_INITIAL_VALUE(Value) = Value
+#endif
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
+ /* Number of syntax errors so far. */
+ int yynerrs;
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+ Refer to the stacks through separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
- YYSIZE_T yystacksize = YYINITDEPTH;
+ YYSIZE_T yystacksize;
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken = 0;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
+ yyssp = yyss = yyssa;
+ yyvsp = yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
+ yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate;
/*------------------------------------------------------------.
@@ -3352,7 +3394,6 @@ int yynerrs;
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
-
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
@@ -3360,7 +3401,6 @@ int yynerrs;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
-
&yystacksize);
yyss = yyss1;
@@ -3383,9 +3423,8 @@ int yynerrs;
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -3396,7 +3435,6 @@ int yynerrs;
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
-
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -3406,6 +3444,9 @@ int yynerrs;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
goto yybackup;
/*-----------.
@@ -3414,16 +3455,16 @@ int yynerrs;
yybackup:
/* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
+ lookahead token if we need one and don't already have one. */
- /* First try to decide what to do without reference to look-ahead token. */
+ /* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
- /* Not known => get a look-ahead token if don't already have one. */
+ /* Not known => get a lookahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -3449,29 +3490,27 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
- /* Shift the look-ahead token. */
+ /* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
yystate = yyn;
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
goto yynewstate;
@@ -5790,10 +5829,20 @@ yyreduce:
break;
-/* Line 1267 of yacc.c. */
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -5802,7 +5851,6 @@ yyreduce:
*++yyvsp = yyval;
-
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -5822,6 +5870,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -5829,37 +5881,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -5867,7 +5918,7 @@ yyerrlab:
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse look-ahead token after an
+ /* If just tried and failed to reuse lookahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -5884,7 +5935,7 @@ yyerrlab:
}
}
- /* Else will try to reuse look-ahead token after shifting the error
+ /* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
@@ -5918,7 +5969,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -5941,10 +5992,9 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Shift the error token. */
@@ -5968,7 +6018,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -5979,9 +6029,14 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ if (yychar != YYEMPTY)
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
@@ -6083,4 +6138,3 @@ static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr)
* indent-tabs-mode: t
* End:
*/
-
diff --git a/Zend/zend_language_parser.h b/Zend/zend_language_parser.h
index 152ff00e7..8b3cd6c34 100644
--- a/Zend/zend_language_parser.h
+++ b/Zend/zend_language_parser.h
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 2.7. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
+/* Bison interface for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,10 +26,30 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
+#ifndef YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED
+# define YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int zenddebug;
+#endif
+/* "%code requires" blocks. */
+
+
+#ifdef ZTS
+# define YYPARSE_PARAM tsrm_ls
+# define YYLEX_PARAM tsrm_ls
+#endif
+
+
+
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -301,13 +318,26 @@
-
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
#endif
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int zendparse (void *YYPARSE_PARAM);
+#else
+int zendparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int zendparse (void);
+#else
+int zendparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+#endif /* !YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED */
diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output
index a67c1a458..baea4b6ff 100644
--- a/Zend/zend_language_parser.output
+++ b/Zend/zend_language_parser.output
@@ -1,4 +1,4 @@
-Terminals which are not used
+Terminals unused in grammar
T_CHARACTER
T_BAD_CHARACTER
@@ -20,9 +20,9 @@ Grammar
1 start: top_statement_list
- 2 @1: /* empty */
+ 2 $@1: /* empty */
- 3 top_statement_list: top_statement_list @1 top_statement
+ 3 top_statement_list: top_statement_list $@1 top_statement
4 | /* empty */
5 namespace_name: "identifier (T_STRING)"
@@ -34,13 +34,13 @@ Grammar
10 | "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';'
11 | "namespace (T_NAMESPACE)" namespace_name ';'
- 12 @2: /* empty */
+ 12 $@2: /* empty */
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list '}'
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}'
- 14 @3: /* empty */
+ 14 $@3: /* empty */
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list '}'
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}'
16 | "use (T_USE)" use_declarations ';'
17 | constant_declaration ';'
@@ -55,9 +55,9 @@ Grammar
24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar
25 | "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar
- 26 @4: /* empty */
+ 26 $@4: /* empty */
- 27 inner_statement_list: inner_statement_list @4 inner_statement
+ 27 inner_statement_list: inner_statement_list $@4 inner_statement
28 | /* empty */
29 inner_statement: statement
@@ -70,41 +70,41 @@ Grammar
35 unticked_statement: '{' inner_statement_list '}'
- 36 @5: /* empty */
+ 36 $@5: /* empty */
- 37 @6: /* empty */
+ 37 $@6: /* empty */
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list else_single
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' $@5 statement $@6 elseif_list else_single
- 39 @7: /* empty */
+ 39 $@7: /* empty */
- 40 @8: /* empty */
+ 40 $@8: /* empty */
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- 42 @9: /* empty */
+ 42 $@9: /* empty */
- 43 @10: /* empty */
+ 43 $@10: /* empty */
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" '(' $@9 expr ')' $@10 while_statement
- 45 @11: /* empty */
+ 45 $@11: /* empty */
- 46 @12: /* empty */
+ 46 $@12: /* empty */
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" '(' $@12 expr ')' ';'
- 48 @13: /* empty */
+ 48 $@13: /* empty */
- 49 @14: /* empty */
+ 49 $@14: /* empty */
- 50 @15: /* empty */
+ 50 $@15: /* empty */
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- 52 @16: /* empty */
+ 52 $@16: /* empty */
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 switch_case_list
+ 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' $@16 switch_case_list
54 | "break (T_BREAK)" ';'
55 | "break (T_BREAK)" expr ';'
56 | "continue (T_CONTINUE)" ';'
@@ -119,34 +119,34 @@ Grammar
65 | expr ';'
66 | "unset (T_UNSET)" '(' unset_variables ')' ';'
- 67 @17: /* empty */
+ 67 $@17: /* empty */
- 68 @18: /* empty */
+ 68 $@18: /* empty */
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- 70 @19: /* empty */
+ 70 $@19: /* empty */
- 71 @20: /* empty */
+ 71 $@20: /* empty */
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg ')' $@20 foreach_statement
- 73 @21: /* empty */
+ 73 $@21: /* empty */
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' declare_statement
+ 74 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement
75 | ';'
- 76 @22: /* empty */
+ 76 $@22: /* empty */
- 77 @23: /* empty */
+ 77 $@23: /* empty */
- 78 @24: /* empty */
+ 78 $@24: /* empty */
- 79 @25: /* empty */
+ 79 $@25: /* empty */
- 80 @26: /* empty */
+ 80 $@26: /* empty */
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
82 | "throw (T_THROW)" expr ';'
83 | "goto (T_GOTO)" "identifier (T_STRING)" ';'
@@ -158,9 +158,9 @@ Grammar
88 @27: /* empty */
- 89 @28: /* empty */
+ 89 $@28: /* empty */
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list '}'
91 unset_variables: unset_variable
92 | unset_variables ',' unset_variable
@@ -174,17 +174,17 @@ Grammar
96 is_reference: /* empty */
97 | '&'
- 98 @29: /* empty */
+ 98 $@29: /* empty */
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' parameter_list ')' '{' inner_statement_list '}'
- 100 @30: /* empty */
+ 100 $@30: /* empty */
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@30 implements_list '{' class_statement_list '}'
- 102 @31: /* empty */
+ 102 $@31: /* empty */
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@31 interface_extends_list '{' class_statement_list '}'
104 class_entry_type: "class (T_CLASS)"
105 | "abstract (T_ABSTRACT)" "class (T_CLASS)"
@@ -230,13 +230,13 @@ Grammar
133 case_list: /* empty */
- 134 @32: /* empty */
+ 134 $@32: /* empty */
- 135 case_list: case_list "case (T_CASE)" expr case_separator @32 inner_statement_list
+ 135 case_list: case_list "case (T_CASE)" expr case_separator $@32 inner_statement_list
- 136 @33: /* empty */
+ 136 $@33: /* empty */
- 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 137 case_list: case_list "default (T_DEFAULT)" case_separator $@33 inner_statement_list
138 case_separator: ':'
139 | ';'
@@ -246,15 +246,15 @@ Grammar
142 elseif_list: /* empty */
- 143 @34: /* empty */
+ 143 $@34: /* empty */
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 statement
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' $@34 statement
145 new_elseif_list: /* empty */
- 146 @35: /* empty */
+ 146 $@35: /* empty */
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' $@35 inner_statement_list
148 else_single: /* empty */
149 | "else (T_ELSE)" statement
@@ -304,15 +304,15 @@ Grammar
183 class_statement_list: class_statement_list class_statement
184 | /* empty */
- 185 @36: /* empty */
+ 185 $@36: /* empty */
- 186 class_statement: variable_modifiers @36 class_variable_declaration ';'
+ 186 class_statement: variable_modifiers $@36 class_variable_declaration ';'
187 | class_constant_declaration ';'
188 | trait_use_statement
- 189 @37: /* empty */
+ 189 $@37: /* empty */
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@37 '(' parameter_list ')' method_body
191 trait_use_statement: "use (T_USE)" trait_list trait_adaptations
@@ -380,9 +380,9 @@ Grammar
234 for_expr: /* empty */
235 | non_empty_for_expr
- 236 @38: /* empty */
+ 236 $@38: /* empty */
- 237 non_empty_for_expr: non_empty_for_expr ',' @38 expr
+ 237 non_empty_for_expr: non_empty_for_expr ',' $@38 expr
238 | expr
239 chaining_method_or_property: chaining_method_or_property variable_property
@@ -391,31 +391,31 @@ Grammar
241 chaining_dereference: chaining_dereference '[' dim_offset ']'
242 | '[' dim_offset ']'
- 243 @39: /* empty */
+ 243 $@39: /* empty */
- 244 chaining_instance_call: chaining_dereference @39 chaining_method_or_property
+ 244 chaining_instance_call: chaining_dereference $@39 chaining_method_or_property
245 | chaining_dereference
246 | chaining_method_or_property
247 instance_call: /* empty */
- 248 @40: /* empty */
+ 248 $@40: /* empty */
- 249 instance_call: @40 chaining_instance_call
+ 249 instance_call: $@40 chaining_instance_call
- 250 @41: /* empty */
+ 250 $@41: /* empty */
- 251 new_expr: "new (T_NEW)" class_name_reference @41 ctor_arguments
+ 251 new_expr: "new (T_NEW)" class_name_reference $@41 ctor_arguments
- 252 @42: /* empty */
+ 252 $@42: /* empty */
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' expr
+ 253 expr_without_variable: "list (T_LIST)" '(' $@42 assignment_list ')' '=' expr
254 | variable '=' expr
255 | variable '=' '&' variable
- 256 @43: /* empty */
+ 256 $@43: /* empty */
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
258 | "clone (T_CLONE)" expr
259 | variable "+= (T_PLUS_EQUAL)" expr
260 | variable "-= (T_MINUS_EQUAL)" expr
@@ -433,21 +433,21 @@ Grammar
272 | rw_variable "-- (T_DEC)"
273 | "-- (T_DEC)" rw_variable
- 274 @44: /* empty */
+ 274 $@44: /* empty */
- 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @44 expr
+ 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@44 expr
- 276 @45: /* empty */
+ 276 $@45: /* empty */
- 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @45 expr
+ 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@45 expr
- 278 @46: /* empty */
+ 278 $@46: /* empty */
- 279 expr_without_variable: expr "or (T_LOGICAL_OR)" @46 expr
+ 279 expr_without_variable: expr "or (T_LOGICAL_OR)" $@46 expr
- 280 @47: /* empty */
+ 280 $@47: /* empty */
- 281 expr_without_variable: expr "and (T_LOGICAL_AND)" @47 expr
+ 281 expr_without_variable: expr "and (T_LOGICAL_AND)" $@47 expr
282 | expr "xor (T_LOGICAL_XOR)" expr
283 | expr '|' expr
284 | expr '&' expr
@@ -480,15 +480,15 @@ Grammar
310 expr_without_variable: '(' new_expr ')' @48 instance_call
- 311 @49: /* empty */
+ 311 $@49: /* empty */
- 312 @50: /* empty */
+ 312 $@50: /* empty */
- 313 expr_without_variable: expr '?' @49 expr ':' @50 expr
+ 313 expr_without_variable: expr '?' $@49 expr ':' $@50 expr
- 314 @51: /* empty */
+ 314 $@51: /* empty */
- 315 expr_without_variable: expr '?' ':' @51 expr
+ 315 expr_without_variable: expr '?' ':' $@51 expr
316 | internal_functions_in_yacc
317 | "(int) (T_INT_CAST)" expr
318 | "(double) (T_DOUBLE_CAST)" expr
@@ -499,9 +499,9 @@ Grammar
323 | "(unset) (T_UNSET_CAST)" expr
324 | "exit (T_EXIT)" exit_expr
- 325 @52: /* empty */
+ 325 $@52: /* empty */
- 326 expr_without_variable: '@' @52 expr
+ 326 expr_without_variable: '@' $@52 expr
327 | scalar
328 | "array (T_ARRAY)" '(' array_pair_list ')'
329 | '[' array_pair_list ']'
@@ -526,37 +526,37 @@ Grammar
341 | "variable (T_VARIABLE)"
342 | '&' "variable (T_VARIABLE)"
- 343 @55: /* empty */
+ 343 $@55: /* empty */
- 344 function_call: namespace_name '(' @55 function_call_parameter_list ')'
+ 344 function_call: namespace_name '(' $@55 function_call_parameter_list ')'
- 345 @56: /* empty */
+ 345 $@56: /* empty */
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 function_call_parameter_list ')'
- 347 @57: /* empty */
+ 347 $@57: /* empty */
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' $@57 function_call_parameter_list ')'
- 349 @58: /* empty */
+ 349 $@58: /* empty */
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@58 function_call_parameter_list ')'
- 351 @59: /* empty */
+ 351 $@59: /* empty */
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')'
+ 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@59 function_call_parameter_list ')'
- 353 @60: /* empty */
+ 353 $@60: /* empty */
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@60 function_call_parameter_list ')'
- 355 @61: /* empty */
+ 355 $@61: /* empty */
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')'
+ 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@61 function_call_parameter_list ')'
- 357 @62: /* empty */
+ 357 $@62: /* empty */
- 358 function_call: variable_without_objects '(' @62 function_call_parameter_list ')'
+ 358 function_call: variable_without_objects '(' $@62 function_call_parameter_list ')'
359 class_name: "static (T_STATIC)"
360 | namespace_name
@@ -570,11 +570,11 @@ Grammar
366 class_name_reference: class_name
367 | dynamic_class_name_reference
- 368 @63: /* empty */
+ 368 $@63: /* empty */
- 369 @64: /* empty */
+ 369 $@64: /* empty */
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties
+ 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@63 object_property $@64 dynamic_class_name_variable_properties
371 | base_variable
372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
@@ -649,26 +649,26 @@ Grammar
427 rw_variable: variable
- 428 @65: /* empty */
+ 428 $@65: /* empty */
- 429 @66: /* empty */
+ 429 $@66: /* empty */
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@65 object_property $@66 method_or_not variable_properties
431 | base_variable_with_function_calls
432 variable_properties: variable_properties variable_property
433 | /* empty */
- 434 @67: /* empty */
+ 434 $@67: /* empty */
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 method_or_not
+ 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@67 method_or_not
436 array_method_dereference: array_method_dereference '[' dim_offset ']'
437 | method '[' dim_offset ']'
- 438 @68: /* empty */
+ 438 $@68: /* empty */
- 439 method: '(' @68 function_call_parameter_list ')'
+ 439 method: '(' $@68 function_call_parameter_list ')'
440 method_or_not: method
441 | array_method_dereference
@@ -684,9 +684,9 @@ Grammar
448 array_function_dereference: array_function_dereference '[' dim_offset ']'
- 449 @69: /* empty */
+ 449 $@69: /* empty */
- 450 array_function_dereference: function_call @69 '[' dim_offset ']'
+ 450 array_function_dereference: function_call $@69 '[' dim_offset ']'
451 base_variable_with_function_calls: base_variable
452 | array_function_dereference
@@ -708,9 +708,9 @@ Grammar
464 object_property: object_dim_list
- 465 @70: /* empty */
+ 465 $@70: /* empty */
- 466 object_property: variable_without_objects @70
+ 466 object_property: variable_without_objects $@70
467 object_dim_list: object_dim_list '[' dim_offset ']'
468 | object_dim_list '{' expr '}'
@@ -727,9 +727,9 @@ Grammar
476 assignment_list_element: variable
- 477 @71: /* empty */
+ 477 $@71: /* empty */
- 478 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list ')'
+ 478 assignment_list_element: "list (T_LIST)" '(' $@71 assignment_list ')'
479 | /* empty */
480 array_pair_list: /* empty */
@@ -751,9 +751,9 @@ Grammar
494 encaps_var: "variable (T_VARIABLE)"
- 495 @72: /* empty */
+ 495 $@72: /* empty */
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset ']'
+ 496 encaps_var: "variable (T_VARIABLE)" '[' $@72 encaps_var_offset ']'
497 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
498 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}'
499 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
@@ -773,9 +773,9 @@ Grammar
511 isset_variables: variable
- 512 @73: /* empty */
+ 512 $@73: /* empty */
- 513 isset_variables: isset_variables ',' @73 variable
+ 513 isset_variables: isset_variables ',' $@73 variable
514 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
515 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
@@ -883,8 +883,8 @@ error (256)
T_INLINE_HTML (311) 64
T_CHARACTER (312)
T_BAD_CHARACTER (313)
-"quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)"
- (314) 379 393 491 493
+"quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" (314) 379
+ 393 491 493
"quoted-string (T_CONSTANT_ENCAPSED_STRING)" (315) 385
"echo (T_ECHO)" (316) 63
"do (T_DO)" (317) 47
@@ -967,16 +967,16 @@ start (159)
on left: 1, on right: 0
top_statement_list (160)
on left: 3 4, on right: 1 3 13 15
-@1 (161)
+$@1 (161)
on left: 2, on right: 3
namespace_name (162)
on left: 5 6, on right: 6 11 13 20 21 22 23 344 346 348 360 361
362 363 364 365 396 397 398 408 409 410
top_statement (163)
on left: 7 8 9 10 11 13 15 16 17, on right: 3
-@2 (164)
+$@2 (164)
on left: 12, on right: 13
-@3 (165)
+$@3 (165)
on left: 14, on right: 15
use_declarations (166)
on left: 18 19, on right: 16 18
@@ -987,7 +987,7 @@ constant_declaration (168)
inner_statement_list (169)
on left: 27 28, on right: 27 35 41 81 90 99 122 124 126 135 137
141 147 151 213 333 335
-@4 (170)
+$@4 (170)
on left: 26, on right: 27
inner_statement (171)
on left: 29 30 31 32, on right: 27
@@ -996,49 +996,49 @@ statement (172)
unticked_statement (173)
on left: 35 38 41 44 47 51 53 54 55 56 57 58 59 60 61 62 63 64
65 66 69 72 74 75 81 82 83, on right: 33
-@5 (174)
+$@5 (174)
on left: 36, on right: 38
-@6 (175)
+$@6 (175)
on left: 37, on right: 38
-@7 (176)
+$@7 (176)
on left: 39, on right: 41
-@8 (177)
+$@8 (177)
on left: 40, on right: 41
-@9 (178)
+$@9 (178)
on left: 42, on right: 44
-@10 (179)
+$@10 (179)
on left: 43, on right: 44
-@11 (180)
+$@11 (180)
on left: 45, on right: 47
-@12 (181)
+$@12 (181)
on left: 46, on right: 47
-@13 (182)
+$@13 (182)
on left: 48, on right: 51
-@14 (183)
+$@14 (183)
on left: 49, on right: 51
-@15 (184)
+$@15 (184)
on left: 50, on right: 51
-@16 (185)
+$@16 (185)
on left: 52, on right: 53
-@17 (186)
+$@17 (186)
on left: 67, on right: 69
-@18 (187)
+$@18 (187)
on left: 68, on right: 69
-@19 (188)
+$@19 (188)
on left: 70, on right: 72
-@20 (189)
+$@20 (189)
on left: 71, on right: 72
-@21 (190)
+$@21 (190)
on left: 73, on right: 74
-@22 (191)
+$@22 (191)
on left: 76, on right: 81
-@23 (192)
+$@23 (192)
on left: 77, on right: 81
-@24 (193)
+$@24 (193)
on left: 78, on right: 81
-@25 (194)
+$@25 (194)
on left: 79, on right: 81
-@26 (195)
+$@26 (195)
on left: 80, on right: 81
additional_catches (196)
on left: 84 85, on right: 81
@@ -1048,7 +1048,7 @@ additional_catch (198)
on left: 90, on right: 86 87
@27 (199)
on left: 88, on right: 90
-@28 (200)
+$@28 (200)
on left: 89, on right: 90
unset_variables (201)
on left: 91 92, on right: 66 92
@@ -1062,13 +1062,13 @@ is_reference (205)
on left: 96 97, on right: 99 190 333 335
unticked_function_declaration_statement (206)
on left: 99, on right: 94
-@29 (207)
+$@29 (207)
on left: 98, on right: 99
unticked_class_declaration_statement (208)
on left: 101 103, on right: 95
-@30 (209)
+$@30 (209)
on left: 100, on right: 101
-@31 (210)
+$@31 (210)
on left: 102, on right: 103
class_entry_type (211)
on left: 104 105 106 107, on right: 101
@@ -1098,9 +1098,9 @@ switch_case_list (223)
on left: 129 130 131 132, on right: 53
case_list (224)
on left: 133 135 137, on right: 129 130 131 132 135 137
-@32 (225)
+$@32 (225)
on left: 134, on right: 135
-@33 (226)
+$@33 (226)
on left: 136, on right: 137
case_separator (227)
on left: 138 139, on right: 135 137
@@ -1108,11 +1108,11 @@ while_statement (228)
on left: 140 141, on right: 44
elseif_list (229)
on left: 142 144, on right: 38 144
-@34 (230)
+$@34 (230)
on left: 143, on right: 144
new_elseif_list (231)
on left: 145 147, on right: 41 147
-@35 (232)
+$@35 (232)
on left: 146, on right: 147
else_single (233)
on left: 148 149, on right: 38
@@ -1141,9 +1141,9 @@ class_statement_list (243)
on left: 183 184, on right: 101 103 183
class_statement (244)
on left: 186 187 188 190, on right: 183
-@36 (245)
+$@36 (245)
on left: 185, on right: 186
-@37 (246)
+$@37 (246)
on left: 189, on right: 190
trait_use_statement (247)
on left: 191, on right: 188
@@ -1189,7 +1189,7 @@ for_expr (267)
on left: 234 235, on right: 51
non_empty_for_expr (268)
on left: 237 238, on right: 235 237
-@38 (269)
+$@38 (269)
on left: 236, on right: 237
chaining_method_or_property (270)
on left: 239 240, on right: 239 244 246
@@ -1197,15 +1197,15 @@ chaining_dereference (271)
on left: 241 242, on right: 241 244 245
chaining_instance_call (272)
on left: 244 245 246, on right: 249
-@39 (273)
+$@39 (273)
on left: 243, on right: 244
instance_call (274)
on left: 247 249, on right: 310
-@40 (275)
+$@40 (275)
on left: 248, on right: 249
new_expr (276)
on left: 251, on right: 308 310
-@41 (277)
+$@41 (277)
on left: 250, on right: 251
expr_without_variable (278)
on left: 253 254 255 257 258 259 260 261 262 263 264 265 266 267
@@ -1213,27 +1213,27 @@ expr_without_variable (278)
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303
304 305 306 307 308 310 313 315 316 317 318 319 320 321 322 323
324 326 327 328 329 330 331 333 335, on right: 59 72 168 171 424
-@42 (279)
+$@42 (279)
on left: 252, on right: 253
-@43 (280)
+$@43 (280)
on left: 256, on right: 257
-@44 (281)
+$@44 (281)
on left: 274, on right: 275
-@45 (282)
+$@45 (282)
on left: 276, on right: 277
-@46 (283)
+$@46 (283)
on left: 278, on right: 279
-@47 (284)
+$@47 (284)
on left: 280, on right: 281
@48 (285)
on left: 309, on right: 310
-@49 (286)
+$@49 (286)
on left: 311, on right: 313
-@50 (287)
+$@50 (287)
on left: 312, on right: 313
-@51 (288)
+$@51 (288)
on left: 314, on right: 315
-@52 (289)
+$@52 (289)
on left: 325, on right: 326
@53 (290)
on left: 332, on right: 333
@@ -1247,21 +1247,21 @@ lexical_var_list (294)
on left: 339 340 341 342, on right: 338 339 340
function_call (295)
on left: 344 346 348 350 352 354 356 358, on right: 450 453
-@55 (296)
+$@55 (296)
on left: 343, on right: 344
-@56 (297)
+$@56 (297)
on left: 345, on right: 346
-@57 (298)
+$@57 (298)
on left: 347, on right: 348
-@58 (299)
+$@58 (299)
on left: 349, on right: 350
-@59 (300)
+$@59 (300)
on left: 351, on right: 352
-@60 (301)
+$@60 (301)
on left: 353, on right: 354
-@61 (302)
+$@61 (302)
on left: 355, on right: 356
-@62 (303)
+$@62 (303)
on left: 357, on right: 358
class_name (304)
on left: 359 360 361 362, on right: 350 352 366 405 445 514
@@ -1272,9 +1272,9 @@ class_name_reference (306)
on left: 366 367, on right: 251 257 306
dynamic_class_name_reference (307)
on left: 370 371, on right: 367
-@63 (308)
+$@63 (308)
on left: 368, on right: 370
-@64 (309)
+$@64 (309)
on left: 369, on right: 370
dynamic_class_name_variable_properties (310)
on left: 372 373, on right: 370 372
@@ -1287,12 +1287,12 @@ backticks_expr (313)
ctor_arguments (314)
on left: 381 382, on right: 251 257
common_scalar (315)
- on left: 383 384 385 386 387 388 389 390 391 392 393 394,
- on right: 395 411
+ on left: 383 384 385 386 387 388 389 390 391 392 393 394, on right:
+ 395 411
static_scalar (316)
- on left: 395 396 397 398 399 400 401 402 403 404,
- on right: 24 25 127 128 156 157 160 161 180 182 227 229 230 231
- 399 400 419 420 421 422
+ on left: 395 396 397 398 399 400 401 402 403 404, on right: 24
+ 25 127 128 156 157 160 161 180 182 227 229 230 231 399 400 419
+ 420 421 422
static_class_constant (317)
on left: 405, on right: 403
scalar (318)
@@ -1320,21 +1320,21 @@ variable (326)
on left: 430 431, on right: 60 69 72 93 119 120 169 172 254 255
257 259 260 261 262 263 264 265 266 267 268 269 425 426 427 476
500 505 511 513
-@65 (327)
+$@65 (327)
on left: 428, on right: 430
-@66 (328)
+$@66 (328)
on left: 429, on right: 430
variable_properties (329)
on left: 432 433, on right: 430 432
variable_property (330)
on left: 435, on right: 239 240 432
-@67 (331)
+$@67 (331)
on left: 434, on right: 435
array_method_dereference (332)
on left: 436 437, on right: 436 441
method (333)
on left: 439, on right: 437 440
-@68 (334)
+$@68 (334)
on left: 438, on right: 439
method_or_not (335)
on left: 440 441 442, on right: 430 435
@@ -1346,7 +1346,7 @@ variable_class_name (338)
on left: 447, on right: 354 356 446 515
array_function_dereference (339)
on left: 448 450, on right: 448 452
-@69 (340)
+$@69 (340)
on left: 449, on right: 450
base_variable_with_function_calls (341)
on left: 451 452 453, on right: 430 431
@@ -1360,7 +1360,7 @@ dim_offset (345)
on left: 462 463, on right: 241 242 436 437 448 450 457 467
object_property (346)
on left: 464 466, on right: 370 374 430 435
-@70 (347)
+$@70 (347)
on left: 465, on right: 466
object_dim_list (348)
on left: 467 468 469, on right: 464 467 468
@@ -1372,7 +1372,7 @@ assignment_list (351)
on left: 474 475, on right: 253 474 478
assignment_list_element (352)
on left: 476 478 479, on right: 474 475
-@71 (353)
+$@71 (353)
on left: 477, on right: 478
array_pair_list (354)
on left: 480 481, on right: 328 329
@@ -1383,7 +1383,7 @@ encaps_list (356)
on left: 490 491 492 493, on right: 380 412 413 490 491
encaps_var (357)
on left: 494 496 497 498 499 500, on right: 490 492 493
-@72 (358)
+$@72 (358)
on left: 495, on right: 496
encaps_var_offset (359)
on left: 501 502 503, on right: 496
@@ -1391,13 +1391,13 @@ internal_functions_in_yacc (360)
on left: 504 505 506 507 508 509 510, on right: 316
isset_variables (361)
on left: 511 513, on right: 504 513
-@73 (362)
+$@73 (362)
on left: 512, on right: 513
class_constant (363)
on left: 514 515, on right: 407
-state 0
+State 0
0 $accept: . start "end of file"
@@ -1407,34 +1407,34 @@ state 0
top_statement_list go to state 2
-state 1
+State 1
0 $accept: start . "end of file"
"end of file" shift, and go to state 3
-state 2
+State 2
1 start: top_statement_list .
- 3 top_statement_list: top_statement_list . @1 top_statement
+ 3 top_statement_list: top_statement_list . $@1 top_statement
"end of file" reduce using rule 1 (start)
- $default reduce using rule 2 (@1)
+ $default reduce using rule 2 ($@1)
- @1 go to state 4
+ $@1 go to state 4
-state 3
+State 3
0 $accept: start "end of file" .
$default accept
-state 4
+State 4
- 3 top_statement_list: top_statement_list @1 . top_statement
+ 3 top_statement_list: top_statement_list $@1 . top_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -1550,7 +1550,7 @@ state 4
class_constant go to state 115
-state 5
+State 5
510 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" . expr
@@ -1631,7 +1631,7 @@ state 5
class_constant go to state 115
-state 6
+State 6
509 internal_functions_in_yacc: "require (T_REQUIRE)" . expr
@@ -1712,14 +1712,14 @@ state 6
class_constant go to state 115
-state 7
+State 7
508 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')'
'(' shift, and go to state 122
-state 8
+State 8
507 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" . expr
@@ -1800,7 +1800,7 @@ state 8
class_constant go to state 115
-state 9
+State 9
506 internal_functions_in_yacc: "include (T_INCLUDE)" . expr
@@ -1881,7 +1881,7 @@ state 9
class_constant go to state 115
-state 10
+State 10
331 expr_without_variable: "print (T_PRINT)" . expr
@@ -1962,7 +1962,7 @@ state 10
class_constant go to state 115
-state 11
+State 11
294 expr_without_variable: '+' . expr
@@ -2043,7 +2043,7 @@ state 11
class_constant go to state 115
-state 12
+State 12
295 expr_without_variable: '-' . expr
@@ -2124,7 +2124,7 @@ state 12
class_constant go to state 115
-state 13
+State 13
296 expr_without_variable: '!' . expr
@@ -2205,7 +2205,7 @@ state 13
class_constant go to state 115
-state 14
+State 14
297 expr_without_variable: '~' . expr
@@ -2286,16 +2286,16 @@ state 14
class_constant go to state 115
-state 15
+State 15
- 326 expr_without_variable: '@' . @52 expr
+ 326 expr_without_variable: '@' . $@52 expr
- $default reduce using rule 325 (@52)
+ $default reduce using rule 325 ($@52)
- @52 go to state 130
+ $@52 go to state 130
-state 16
+State 16
323 expr_without_variable: "(unset) (T_UNSET_CAST)" . expr
@@ -2376,7 +2376,7 @@ state 16
class_constant go to state 115
-state 17
+State 17
322 expr_without_variable: "(bool) (T_BOOL_CAST)" . expr
@@ -2457,7 +2457,7 @@ state 17
class_constant go to state 115
-state 18
+State 18
321 expr_without_variable: "(object) (T_OBJECT_CAST)" . expr
@@ -2538,7 +2538,7 @@ state 18
class_constant go to state 115
-state 19
+State 19
320 expr_without_variable: "(array) (T_ARRAY_CAST)" . expr
@@ -2619,7 +2619,7 @@ state 19
class_constant go to state 115
-state 20
+State 20
319 expr_without_variable: "(string) (T_STRING_CAST)" . expr
@@ -2700,7 +2700,7 @@ state 20
class_constant go to state 115
-state 21
+State 21
318 expr_without_variable: "(double) (T_DOUBLE_CAST)" . expr
@@ -2781,7 +2781,7 @@ state 21
class_constant go to state 115
-state 22
+State 22
317 expr_without_variable: "(int) (T_INT_CAST)" . expr
@@ -2862,7 +2862,7 @@ state 22
class_constant go to state 115
-state 23
+State 23
273 expr_without_variable: "-- (T_DEC)" . rw_variable
@@ -2889,7 +2889,7 @@ state 23
simple_indirect_reference go to state 113
-state 24
+State 24
271 expr_without_variable: "++ (T_INC)" . rw_variable
@@ -2916,7 +2916,7 @@ state 24
simple_indirect_reference go to state 113
-state 25
+State 25
329 expr_without_variable: '[' . array_pair_list ']'
@@ -3002,7 +3002,7 @@ state 25
class_constant go to state 115
-state 26
+State 26
258 expr_without_variable: "clone (T_CLONE)" . expr
@@ -3083,9 +3083,9 @@ state 26
class_constant go to state 115
-state 27
+State 27
- 251 new_expr: "new (T_NEW)" . class_name_reference @41 ctor_arguments
+ 251 new_expr: "new (T_NEW)" . class_name_reference $@41 ctor_arguments
"identifier (T_STRING)" shift, and go to state 116
"variable (T_VARIABLE)" shift, and go to state 34
@@ -3106,7 +3106,7 @@ state 27
simple_indirect_reference go to state 161
-state 28
+State 28
324 expr_without_variable: "exit (T_EXIT)" . exit_expr
@@ -3117,29 +3117,29 @@ state 28
exit_expr go to state 163
-state 29
+State 29
- 38 unticked_statement: "if (T_IF)" . '(' expr ')' @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" . '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 38 unticked_statement: "if (T_IF)" . '(' expr ')' $@5 statement $@6 elseif_list else_single
+ 41 | "if (T_IF)" . '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
'(' shift, and go to state 164
-state 30
+State 30
383 common_scalar: "integer number (T_LNUMBER)" .
$default reduce using rule 383 (common_scalar)
-state 31
+State 31
384 common_scalar: "floating-point number (T_DNUMBER)" .
$default reduce using rule 384 (common_scalar)
-state 32
+State 32
5 namespace_name: "identifier (T_STRING)" .
34 statement: "identifier (T_STRING)" . ':'
@@ -3149,35 +3149,35 @@ state 32
$default reduce using rule 5 (namespace_name)
-state 33
+State 33
406 scalar: "variable name (T_STRING_VARNAME)" .
$default reduce using rule 406 (scalar)
-state 34
+State 34
460 compound_variable: "variable (T_VARIABLE)" .
$default reduce using rule 460 (compound_variable)
-state 35
+State 35
64 unticked_statement: T_INLINE_HTML .
$default reduce using rule 64 (unticked_statement)
-state 36
+State 36
385 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" .
$default reduce using rule 385 (common_scalar)
-state 37
+State 37
63 unticked_statement: "echo (T_ECHO)" . echo_expr_list ';'
@@ -3259,54 +3259,54 @@ state 37
class_constant go to state 115
-state 38
+State 38
- 47 unticked_statement: "do (T_DO)" . @11 statement "while (T_WHILE)" '(' @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" . $@11 statement "while (T_WHILE)" '(' $@12 expr ')' ';'
- $default reduce using rule 45 (@11)
+ $default reduce using rule 45 ($@11)
- @11 go to state 168
+ $@11 go to state 168
-state 39
+State 39
- 44 unticked_statement: "while (T_WHILE)" . '(' @9 expr ')' @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" . '(' $@9 expr ')' $@10 while_statement
'(' shift, and go to state 169
-state 40
+State 40
- 51 unticked_statement: "for (T_FOR)" . '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" . '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
'(' shift, and go to state 170
-state 41
+State 41
- 69 unticked_statement: "foreach (T_FOREACH)" . '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 72 | "foreach (T_FOREACH)" . '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" . '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 72 | "foreach (T_FOREACH)" . '(' expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg ')' $@20 foreach_statement
'(' shift, and go to state 171
-state 42
+State 42
- 74 unticked_statement: "declare (T_DECLARE)" . @21 '(' declare_list ')' declare_statement
+ 74 unticked_statement: "declare (T_DECLARE)" . $@21 '(' declare_list ')' declare_statement
- $default reduce using rule 73 (@21)
+ $default reduce using rule 73 ($@21)
- @21 go to state 172
+ $@21 go to state 172
-state 43
+State 43
- 53 unticked_statement: "switch (T_SWITCH)" . '(' expr ')' @16 switch_case_list
+ 53 unticked_statement: "switch (T_SWITCH)" . '(' expr ')' $@16 switch_case_list
'(' shift, and go to state 173
-state 44
+State 44
54 unticked_statement: "break (T_BREAK)" . ';'
55 | "break (T_BREAK)" . expr ';'
@@ -3389,7 +3389,7 @@ state 44
class_constant go to state 115
-state 45
+State 45
56 unticked_statement: "continue (T_CONTINUE)" . ';'
57 | "continue (T_CONTINUE)" . expr ';'
@@ -3472,28 +3472,28 @@ state 45
class_constant go to state 115
-state 46
+State 46
83 unticked_statement: "goto (T_GOTO)" . "identifier (T_STRING)" ';'
"identifier (T_STRING)" shift, and go to state 178
-state 47
+State 47
336 function: "function (T_FUNCTION)" .
$default reduce using rule 336 (function)
-state 48
+State 48
25 constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
"identifier (T_STRING)" shift, and go to state 179
-state 49
+State 49
58 unticked_statement: "return (T_RETURN)" . ';'
59 | "return (T_RETURN)" . expr_without_variable ';'
@@ -3577,16 +3577,16 @@ state 49
class_constant go to state 115
-state 50
+State 50
- 81 unticked_statement: "try (T_TRY)" . @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" . $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
- $default reduce using rule 76 (@22)
+ $default reduce using rule 76 ($@22)
- @22 go to state 184
+ $@22 go to state 184
-state 51
+State 51
82 unticked_statement: "throw (T_THROW)" . expr ';'
@@ -3667,7 +3667,7 @@ state 51
class_constant go to state 115
-state 52
+State 52
16 top_statement: "use (T_USE)" . use_declarations ';'
@@ -3679,7 +3679,7 @@ state 52
use_declaration go to state 189
-state 53
+State 53
61 unticked_statement: "global (T_GLOBAL)" . global_var_list ';'
@@ -3690,21 +3690,21 @@ state 53
global_var go to state 193
-state 54
+State 54
107 class_entry_type: "final (T_FINAL)" . "class (T_CLASS)"
"class (T_CLASS)" shift, and go to state 194
-state 55
+State 55
105 class_entry_type: "abstract (T_ABSTRACT)" . "class (T_CLASS)"
"class (T_CLASS)" shift, and go to state 195
-state 56
+State 56
62 unticked_statement: "static (T_STATIC)" . static_var_list ';'
335 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -3719,112 +3719,112 @@ state 56
function go to state 198
-state 57
+State 57
66 unticked_statement: "unset (T_UNSET)" . '(' unset_variables ')' ';'
'(' shift, and go to state 199
-state 58
+State 58
504 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')'
'(' shift, and go to state 200
-state 59
+State 59
505 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')'
'(' shift, and go to state 201
-state 60
+State 60
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
'(' shift, and go to state 202
-state 61
+State 61
104 class_entry_type: "class (T_CLASS)" .
$default reduce using rule 104 (class_entry_type)
-state 62
+State 62
106 class_entry_type: "trait (T_TRAIT)" .
$default reduce using rule 106 (class_entry_type)
-state 63
+State 63
110 interface_entry: "interface (T_INTERFACE)" .
$default reduce using rule 110 (interface_entry)
-state 64
+State 64
- 253 expr_without_variable: "list (T_LIST)" . '(' @42 assignment_list ')' '=' expr
+ 253 expr_without_variable: "list (T_LIST)" . '(' $@42 assignment_list ')' '=' expr
'(' shift, and go to state 203
-state 65
+State 65
328 expr_without_variable: "array (T_ARRAY)" . '(' array_pair_list ')'
'(' shift, and go to state 204
-state 66
+State 66
414 scalar: "__CLASS__ (T_CLASS_C)" .
$default reduce using rule 414 (scalar)
-state 67
+State 67
389 common_scalar: "__TRAIT__ (T_TRAIT_C)" .
$default reduce using rule 389 (common_scalar)
-state 68
+State 68
390 common_scalar: "__METHOD__ (T_METHOD_C)" .
$default reduce using rule 390 (common_scalar)
-state 69
+State 69
391 common_scalar: "__FUNCTION__ (T_FUNC_C)" .
$default reduce using rule 391 (common_scalar)
-state 70
+State 70
386 common_scalar: "__LINE__ (T_LINE)" .
$default reduce using rule 386 (common_scalar)
-state 71
+State 71
387 common_scalar: "__FILE__ (T_FILE)" .
$default reduce using rule 387 (common_scalar)
-state 72
+State 72
393 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
394 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
@@ -3840,12 +3840,12 @@ state 72
encaps_var go to state 211
-state 73
+State 73
11 top_statement: "namespace (T_NAMESPACE)" . namespace_name ';'
- 13 | "namespace (T_NAMESPACE)" . namespace_name '{' @2 top_statement_list '}'
- 15 | "namespace (T_NAMESPACE)" . '{' @3 top_statement_list '}'
- 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
+ 13 | "namespace (T_NAMESPACE)" . namespace_name '{' $@2 top_statement_list '}'
+ 15 | "namespace (T_NAMESPACE)" . '{' $@3 top_statement_list '}'
+ 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
409 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
@@ -3856,23 +3856,23 @@ state 73
namespace_name go to state 214
-state 74
+State 74
392 common_scalar: "__NAMESPACE__ (T_NS_C)" .
$default reduce using rule 392 (common_scalar)
-state 75
+State 75
388 common_scalar: "__DIR__ (T_DIR)" .
$default reduce using rule 388 (common_scalar)
-state 76
+State 76
- 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @57 function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' $@57 function_call_parameter_list ')'
362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
410 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -3881,7 +3881,7 @@ state 76
namespace_name go to state 215
-state 77
+State 77
307 expr_without_variable: '(' . expr ')'
310 | '(' . new_expr ')' @48 instance_call
@@ -3963,14 +3963,14 @@ state 77
class_constant go to state 115
-state 78
+State 78
75 unticked_statement: ';' .
$default reduce using rule 75 (unticked_statement)
-state 79
+State 79
35 unticked_statement: '{' . inner_statement_list '}'
@@ -3979,7 +3979,7 @@ state 79
inner_statement_list go to state 218
-state 80
+State 80
461 compound_variable: '$' . '{' expr '}'
472 simple_indirect_reference: '$' .
@@ -3989,7 +3989,7 @@ state 80
$default reduce using rule 472 (simple_indirect_reference)
-state 81
+State 81
330 expr_without_variable: '`' . backticks_expr '`'
@@ -4005,7 +4005,7 @@ state 81
encaps_var go to state 211
-state 82
+State 82
412 scalar: '"' . encaps_list '"'
@@ -4018,10 +4018,10 @@ state 82
encaps_var go to state 211
-state 83
+State 83
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 344 function_call: namespace_name . '(' @55 function_call_parameter_list ')'
+ 344 function_call: namespace_name . '(' $@55 function_call_parameter_list ')'
360 class_name: namespace_name .
408 scalar: namespace_name .
@@ -4032,14 +4032,14 @@ state 83
$default reduce using rule 408 (scalar)
-state 84
+State 84
- 3 top_statement_list: top_statement_list @1 top_statement .
+ 3 top_statement_list: top_statement_list $@1 top_statement .
$default reduce using rule 3 (top_statement_list)
-state 85
+State 85
17 top_statement: constant_declaration . ';'
24 constant_declaration: constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
@@ -4048,79 +4048,79 @@ state 85
';' shift, and go to state 228
-state 86
+State 86
7 top_statement: statement .
$default reduce using rule 7 (top_statement)
-state 87
+State 87
33 statement: unticked_statement .
$default reduce using rule 33 (statement)
-state 88
+State 88
8 top_statement: function_declaration_statement .
$default reduce using rule 8 (top_statement)
-state 89
+State 89
9 top_statement: class_declaration_statement .
$default reduce using rule 9 (top_statement)
-state 90
+State 90
94 function_declaration_statement: unticked_function_declaration_statement .
$default reduce using rule 94 (function_declaration_statement)
-state 91
+State 91
95 class_declaration_statement: unticked_class_declaration_statement .
$default reduce using rule 95 (class_declaration_statement)
-state 92
+State 92
- 101 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from $@30 implements_list '{' class_statement_list '}'
"identifier (T_STRING)" shift, and go to state 229
-state 93
+State 93
- 103 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" $@31 interface_extends_list '{' class_statement_list '}'
"identifier (T_STRING)" shift, and go to state 230
-state 94
+State 94
308 expr_without_variable: new_expr .
$default reduce using rule 308 (expr_without_variable)
-state 95
+State 95
424 expr: expr_without_variable .
$default reduce using rule 424 (expr)
-state 96
+State 96
- 99 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" $@29 '(' parameter_list ')' '{' inner_statement_list '}'
333 expr_without_variable: function . is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
'&' shift, and go to state 231
@@ -4130,48 +4130,48 @@ state 96
is_reference go to state 232
-state 97
+State 97
- 450 array_function_dereference: function_call . @69 '[' dim_offset ']'
+ 450 array_function_dereference: function_call . $@69 '[' dim_offset ']'
453 base_variable_with_function_calls: function_call .
- '[' reduce using rule 449 (@69)
+ '[' reduce using rule 449 ($@69)
$default reduce using rule 453 (base_variable_with_function_calls)
- @69 go to state 233
+ $@69 go to state 233
-state 98
+State 98
- 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')'
+ 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@58 function_call_parameter_list ')'
+ 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@59 function_call_parameter_list ')'
445 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
514 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 234
-state 99
+State 99
411 scalar: common_scalar .
$default reduce using rule 411 (scalar)
-state 100
+State 100
327 expr_without_variable: scalar .
$default reduce using rule 327 (expr_without_variable)
-state 101
+State 101
65 unticked_statement: expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4193,8 +4193,8 @@ state 101
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -4225,14 +4225,14 @@ state 101
';' shift, and go to state 261
-state 102
+State 102
423 expr: r_variable .
$default reduce using rule 423 (expr)
-state 103
+State 103
270 expr_without_variable: rw_variable . "++ (T_INC)"
272 | rw_variable . "-- (T_DEC)"
@@ -4241,11 +4241,11 @@ state 103
"++ (T_INC)" shift, and go to state 263
-state 104
+State 104
254 expr_without_variable: variable . '=' expr
255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable . '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
259 | variable . "+= (T_PLUS_EQUAL)" expr
260 | variable . "-= (T_MINUS_EQUAL)" expr
261 | variable . "*= (T_MUL_EQUAL)" expr
@@ -4278,31 +4278,31 @@ state 104
$default reduce using rule 425 (r_variable)
-state 105
+State 105
- 358 function_call: variable_without_objects . '(' @62 function_call_parameter_list ')'
+ 358 function_call: variable_without_objects . '(' $@62 function_call_parameter_list ')'
'(' shift, and go to state 276
-state 106
+State 106
456 base_variable: static_member .
$default reduce using rule 456 (base_variable)
-state 107
+State 107
- 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')'
+ 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@60 function_call_parameter_list ')'
+ 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@61 function_call_parameter_list ')'
446 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
515 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 277
-state 108
+State 108
448 array_function_dereference: array_function_dereference . '[' dim_offset ']'
452 base_variable_with_function_calls: array_function_dereference .
@@ -4312,9 +4312,9 @@ state 108
$default reduce using rule 452 (base_variable_with_function_calls)
-state 109
+State 109
- 430 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties
+ 430 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" $@65 object_property $@66 method_or_not variable_properties
431 | base_variable_with_function_calls .
"-> (T_OBJECT_OPERATOR)" shift, and go to state 279
@@ -4322,14 +4322,14 @@ state 109
$default reduce using rule 431 (variable)
-state 110
+State 110
451 base_variable_with_function_calls: base_variable .
$default reduce using rule 451 (base_variable_with_function_calls)
-state 111
+State 111
443 variable_without_objects: reference_variable .
447 variable_class_name: reference_variable .
@@ -4345,14 +4345,14 @@ state 111
$default reduce using rule 454 (base_variable)
-state 112
+State 112
459 reference_variable: compound_variable .
$default reduce using rule 459 (reference_variable)
-state 113
+State 113
444 variable_without_objects: simple_indirect_reference . reference_variable
455 base_variable: simple_indirect_reference . reference_variable
@@ -4365,28 +4365,28 @@ state 113
compound_variable go to state 112
-state 114
+State 114
316 expr_without_variable: internal_functions_in_yacc .
$default reduce using rule 316 (expr_without_variable)
-state 115
+State 115
407 scalar: class_constant .
$default reduce using rule 407 (scalar)
-state 116
+State 116
5 namespace_name: "identifier (T_STRING)" .
$default reduce using rule 5 (namespace_name)
-state 117
+State 117
335 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
359 class_name: "static (T_STATIC)" .
@@ -4398,16 +4398,16 @@ state 117
function go to state 198
-state 118
+State 118
- 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
409 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
"\\ (T_NS_SEPARATOR)" shift, and go to state 212
-state 119
+State 119
333 expr_without_variable: function . is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -4418,12 +4418,12 @@ state 119
is_reference go to state 284
-state 120
+State 120
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4445,8 +4445,8 @@ state 120
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
510 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -4479,12 +4479,12 @@ state 120
$default reduce using rule 510 (internal_functions_in_yacc)
-state 121
+State 121
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4506,8 +4506,8 @@ state 121
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
509 internal_functions_in_yacc: "require (T_REQUIRE)" expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -4540,7 +4540,7 @@ state 121
$default reduce using rule 509 (internal_functions_in_yacc)
-state 122
+State 122
508 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')'
@@ -4621,12 +4621,12 @@ state 122
class_constant go to state 115
-state 123
+State 123
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4648,8 +4648,8 @@ state 123
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
507 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -4682,12 +4682,12 @@ state 123
$default reduce using rule 507 (internal_functions_in_yacc)
-state 124
+State 124
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4709,8 +4709,8 @@ state 124
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
506 internal_functions_in_yacc: "include (T_INCLUDE)" expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -4743,12 +4743,12 @@ state 124
$default reduce using rule 506 (internal_functions_in_yacc)
-state 125
+State 125
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4770,8 +4770,8 @@ state 125
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
331 | "print (T_PRINT)" expr .
'?' shift, and go to state 238
@@ -4801,12 +4801,12 @@ state 125
$default reduce using rule 331 (expr_without_variable)
-state 126
+State 126
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4829,18 +4829,18 @@ state 126
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
$default reduce using rule 294 (expr_without_variable)
-state 127
+State 127
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4863,18 +4863,18 @@ state 127
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
$default reduce using rule 295 (expr_without_variable)
-state 128
+State 128
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4897,20 +4897,20 @@ state 128
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"instanceof (T_INSTANCEOF)" shift, and go to state 260
$default reduce using rule 296 (expr_without_variable)
-state 129
+State 129
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -4933,15 +4933,15 @@ state 129
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
$default reduce using rule 297 (expr_without_variable)
-state 130
+State 130
- 326 expr_without_variable: '@' @52 . expr
+ 326 expr_without_variable: '@' $@52 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -5020,12 +5020,12 @@ state 130
class_constant go to state 115
-state 131
+State 131
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5047,19 +5047,19 @@ state 131
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
323 | "(unset) (T_UNSET_CAST)" expr .
$default reduce using rule 323 (expr_without_variable)
-state 132
+State 132
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5081,19 +5081,19 @@ state 132
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
322 | "(bool) (T_BOOL_CAST)" expr .
$default reduce using rule 322 (expr_without_variable)
-state 133
+State 133
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5115,19 +5115,19 @@ state 133
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
321 | "(object) (T_OBJECT_CAST)" expr .
$default reduce using rule 321 (expr_without_variable)
-state 134
+State 134
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5149,19 +5149,19 @@ state 134
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
320 | "(array) (T_ARRAY_CAST)" expr .
$default reduce using rule 320 (expr_without_variable)
-state 135
+State 135
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5183,19 +5183,19 @@ state 135
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
319 | "(string) (T_STRING_CAST)" expr .
$default reduce using rule 319 (expr_without_variable)
-state 136
+State 136
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5217,19 +5217,19 @@ state 136
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
318 | "(double) (T_DOUBLE_CAST)" expr .
$default reduce using rule 318 (expr_without_variable)
-state 137
+State 137
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5251,31 +5251,31 @@ state 137
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
317 | "(int) (T_INT_CAST)" expr .
$default reduce using rule 317 (expr_without_variable)
-state 138
+State 138
359 class_name: "static (T_STATIC)" .
$default reduce using rule 359 (class_name)
-state 139
+State 139
- 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
"\\ (T_NS_SEPARATOR)" shift, and go to state 287
-state 140
+State 140
- 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @57 function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' $@57 function_call_parameter_list ')'
362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
"identifier (T_STRING)" shift, and go to state 116
@@ -5283,10 +5283,10 @@ state 140
namespace_name go to state 288
-state 141
+State 141
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 344 function_call: namespace_name . '(' @55 function_call_parameter_list ')'
+ 344 function_call: namespace_name . '(' $@55 function_call_parameter_list ')'
360 class_name: namespace_name .
"\\ (T_NS_SEPARATOR)" shift, and go to state 225
@@ -5295,46 +5295,46 @@ state 141
$default reduce using rule 360 (class_name)
-state 142
+State 142
- 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')'
+ 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@58 function_call_parameter_list ')'
+ 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@59 function_call_parameter_list ')'
445 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 289
-state 143
+State 143
273 expr_without_variable: "-- (T_DEC)" rw_variable .
$default reduce using rule 273 (expr_without_variable)
-state 144
+State 144
427 rw_variable: variable .
$default reduce using rule 427 (rw_variable)
-state 145
+State 145
- 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')'
+ 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@60 function_call_parameter_list ')'
+ 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@61 function_call_parameter_list ')'
446 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 290
-state 146
+State 146
271 expr_without_variable: "++ (T_INC)" rw_variable .
$default reduce using rule 271 (expr_without_variable)
-state 147
+State 147
489 non_empty_array_pair_list: '&' . w_variable
@@ -5361,12 +5361,12 @@ state 147
simple_indirect_reference go to state 113
-state 148
+State 148
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5388,8 +5388,8 @@ state 148
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
484 non_empty_array_pair_list: expr . "=> (T_DOUBLE_ARROW)" expr
485 | expr .
488 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
@@ -5425,14 +5425,14 @@ state 148
$default reduce using rule 485 (non_empty_array_pair_list)
-state 149
+State 149
329 expr_without_variable: '[' array_pair_list . ']'
']' shift, and go to state 294
-state 150
+State 150
481 array_pair_list: non_empty_array_pair_list . possible_comma
482 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr
@@ -5447,13 +5447,13 @@ state 150
possible_comma go to state 296
-state 151
+State 151
258 expr_without_variable: "clone (T_CLONE)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5475,20 +5475,20 @@ state 151
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
$default reduce using rule 258 (expr_without_variable)
-state 152
+State 152
361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
"\\ (T_NS_SEPARATOR)" shift, and go to state 297
-state 153
+State 153
362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -5497,7 +5497,7 @@ state 153
namespace_name go to state 298
-state 154
+State 154
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
360 class_name: namespace_name .
@@ -5507,7 +5507,7 @@ state 154
$default reduce using rule 360 (class_name)
-state 155
+State 155
366 class_name_reference: class_name .
445 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
@@ -5517,32 +5517,32 @@ state 155
$default reduce using rule 366 (class_name_reference)
-state 156
+State 156
- 251 new_expr: "new (T_NEW)" class_name_reference . @41 ctor_arguments
+ 251 new_expr: "new (T_NEW)" class_name_reference . $@41 ctor_arguments
- $default reduce using rule 250 (@41)
+ $default reduce using rule 250 ($@41)
- @41 go to state 300
+ $@41 go to state 300
-state 157
+State 157
367 class_name_reference: dynamic_class_name_reference .
$default reduce using rule 367 (class_name_reference)
-state 158
+State 158
446 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 301
-state 159
+State 159
- 370 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties
+ 370 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" $@63 object_property $@64 dynamic_class_name_variable_properties
371 | base_variable .
"-> (T_OBJECT_OPERATOR)" shift, and go to state 302
@@ -5550,7 +5550,7 @@ state 159
$default reduce using rule 371 (dynamic_class_name_reference)
-state 160
+State 160
447 variable_class_name: reference_variable .
454 base_variable: reference_variable .
@@ -5564,7 +5564,7 @@ state 160
$default reduce using rule 454 (base_variable)
-state 161
+State 161
455 base_variable: simple_indirect_reference . reference_variable
473 simple_indirect_reference: simple_indirect_reference . '$'
@@ -5576,7 +5576,7 @@ state 161
compound_variable go to state 112
-state 162
+State 162
376 exit_expr: '(' . ')'
377 | '(' . expr ')'
@@ -5659,17 +5659,17 @@ state 162
class_constant go to state 115
-state 163
+State 163
324 expr_without_variable: "exit (T_EXIT)" exit_expr .
$default reduce using rule 324 (expr_without_variable)
-state 164
+State 164
- 38 unticked_statement: "if (T_IF)" '(' . expr ')' @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" '(' . expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 38 unticked_statement: "if (T_IF)" '(' . expr ')' $@5 statement $@6 elseif_list else_single
+ 41 | "if (T_IF)" '(' . expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -5748,14 +5748,14 @@ state 164
class_constant go to state 115
-state 165
+State 165
34 statement: "identifier (T_STRING)" ':' .
$default reduce using rule 34 (statement)
-state 166
+State 166
63 unticked_statement: "echo (T_ECHO)" echo_expr_list . ';'
232 echo_expr_list: echo_expr_list . ',' expr
@@ -5764,13 +5764,13 @@ state 166
';' shift, and go to state 308
-state 167
+State 167
233 echo_expr_list: expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -5792,8 +5792,8 @@ state 167
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -5825,9 +5825,9 @@ state 167
$default reduce using rule 233 (echo_expr_list)
-state 168
+State 168
- 47 unticked_statement: "do (T_DO)" @11 . statement "while (T_WHILE)" '(' @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 . statement "while (T_WHILE)" '(' $@12 expr ')' ';'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -5927,18 +5927,18 @@ state 168
class_constant go to state 115
-state 169
+State 169
- 44 unticked_statement: "while (T_WHILE)" '(' . @9 expr ')' @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" '(' . $@9 expr ')' $@10 while_statement
- $default reduce using rule 42 (@9)
+ $default reduce using rule 42 ($@9)
- @9 go to state 310
+ $@9 go to state 310
-state 170
+State 170
- 51 unticked_statement: "for (T_FOR)" '(' . for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' . for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -6021,10 +6021,10 @@ state 170
class_constant go to state 115
-state 171
+State 171
- 69 unticked_statement: "foreach (T_FOREACH)" '(' . variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 72 | "foreach (T_FOREACH)" '(' . expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' . variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 72 | "foreach (T_FOREACH)" '(' . expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg ')' $@20 foreach_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -6103,16 +6103,16 @@ state 171
class_constant go to state 115
-state 172
+State 172
- 74 unticked_statement: "declare (T_DECLARE)" @21 . '(' declare_list ')' declare_statement
+ 74 unticked_statement: "declare (T_DECLARE)" $@21 . '(' declare_list ')' declare_statement
'(' shift, and go to state 316
-state 173
+State 173
- 53 unticked_statement: "switch (T_SWITCH)" '(' . expr ')' @16 switch_case_list
+ 53 unticked_statement: "switch (T_SWITCH)" '(' . expr ')' $@16 switch_case_list
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -6191,20 +6191,20 @@ state 173
class_constant go to state 115
-state 174
+State 174
54 unticked_statement: "break (T_BREAK)" ';' .
$default reduce using rule 54 (unticked_statement)
-state 175
+State 175
55 unticked_statement: "break (T_BREAK)" expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -6226,8 +6226,8 @@ state 175
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -6258,20 +6258,20 @@ state 175
';' shift, and go to state 318
-state 176
+State 176
56 unticked_statement: "continue (T_CONTINUE)" ';' .
$default reduce using rule 56 (unticked_statement)
-state 177
+State 177
57 unticked_statement: "continue (T_CONTINUE)" expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -6293,8 +6293,8 @@ state 177
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -6325,28 +6325,28 @@ state 177
';' shift, and go to state 319
-state 178
+State 178
83 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" . ';'
';' shift, and go to state 320
-state 179
+State 179
25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
'=' shift, and go to state 321
-state 180
+State 180
58 unticked_statement: "return (T_RETURN)" ';' .
$default reduce using rule 58 (unticked_statement)
-state 181
+State 181
59 unticked_statement: "return (T_RETURN)" expr_without_variable . ';'
424 expr: expr_without_variable .
@@ -6356,12 +6356,12 @@ state 181
$default reduce using rule 424 (expr)
-state 182
+State 182
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -6383,8 +6383,8 @@ state 182
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -6414,12 +6414,12 @@ state 182
"instanceof (T_INSTANCEOF)" shift, and go to state 260
-state 183
+State 183
60 unticked_statement: "return (T_RETURN)" variable . ';'
254 expr_without_variable: variable . '=' expr
255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable . '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
259 | variable . "+= (T_PLUS_EQUAL)" expr
260 | variable . "-= (T_MINUS_EQUAL)" expr
261 | variable . "*= (T_MUL_EQUAL)" expr
@@ -6453,20 +6453,20 @@ state 183
$default reduce using rule 425 (r_variable)
-state 184
+State 184
- 81 unticked_statement: "try (T_TRY)" @22 . '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 . '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
'{' shift, and go to state 324
-state 185
+State 185
82 unticked_statement: "throw (T_THROW)" expr . ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -6488,8 +6488,8 @@ state 185
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -6520,7 +6520,7 @@ state 185
';' shift, and go to state 325
-state 186
+State 186
22 use_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name
23 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)"
@@ -6530,7 +6530,7 @@ state 186
namespace_name go to state 326
-state 187
+State 187
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
20 use_declaration: namespace_name .
@@ -6542,7 +6542,7 @@ state 187
$default reduce using rule 20 (use_declaration)
-state 188
+State 188
16 top_statement: "use (T_USE)" use_declarations . ';'
18 use_declarations: use_declarations . ',' use_declaration
@@ -6551,21 +6551,21 @@ state 188
';' shift, and go to state 329
-state 189
+State 189
19 use_declarations: use_declaration .
$default reduce using rule 19 (use_declarations)
-state 190
+State 190
176 global_var: "variable (T_VARIABLE)" .
$default reduce using rule 176 (global_var)
-state 191
+State 191
177 global_var: '$' . r_variable
178 | '$' . '{' expr '}'
@@ -6594,7 +6594,7 @@ state 191
simple_indirect_reference go to state 113
-state 192
+State 192
61 unticked_statement: "global (T_GLOBAL)" global_var_list . ';'
174 global_var_list: global_var_list . ',' global_var
@@ -6603,28 +6603,28 @@ state 192
';' shift, and go to state 334
-state 193
+State 193
175 global_var_list: global_var .
$default reduce using rule 175 (global_var_list)
-state 194
+State 194
107 class_entry_type: "final (T_FINAL)" "class (T_CLASS)" .
$default reduce using rule 107 (class_entry_type)
-state 195
+State 195
105 class_entry_type: "abstract (T_ABSTRACT)" "class (T_CLASS)" .
$default reduce using rule 105 (class_entry_type)
-state 196
+State 196
181 static_var_list: "variable (T_VARIABLE)" .
182 | "variable (T_VARIABLE)" . '=' static_scalar
@@ -6634,7 +6634,7 @@ state 196
$default reduce using rule 181 (static_var_list)
-state 197
+State 197
62 unticked_statement: "static (T_STATIC)" static_var_list . ';'
179 static_var_list: static_var_list . ',' "variable (T_VARIABLE)"
@@ -6644,7 +6644,7 @@ state 197
';' shift, and go to state 337
-state 198
+State 198
335 expr_without_variable: "static (T_STATIC)" function . is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -6655,7 +6655,7 @@ state 198
is_reference go to state 338
-state 199
+State 199
66 unticked_statement: "unset (T_UNSET)" '(' . unset_variables ')' ';'
@@ -6683,7 +6683,7 @@ state 199
simple_indirect_reference go to state 113
-state 200
+State 200
504 internal_functions_in_yacc: "isset (T_ISSET)" '(' . isset_variables ')'
@@ -6710,7 +6710,7 @@ state 200
isset_variables go to state 343
-state 201
+State 201
505 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')'
@@ -6736,23 +6736,23 @@ state 201
simple_indirect_reference go to state 113
-state 202
+State 202
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
')' shift, and go to state 345
-state 203
+State 203
- 253 expr_without_variable: "list (T_LIST)" '(' . @42 assignment_list ')' '=' expr
+ 253 expr_without_variable: "list (T_LIST)" '(' . $@42 assignment_list ')' '=' expr
- $default reduce using rule 252 (@42)
+ $default reduce using rule 252 ($@42)
- @42 go to state 346
+ $@42 go to state 346
-state 204
+State 204
328 expr_without_variable: "array (T_ARRAY)" '(' . array_pair_list ')'
@@ -6838,10 +6838,10 @@ state 204
class_constant go to state 115
-state 205
+State 205
494 encaps_var: "variable (T_VARIABLE)" .
- 496 | "variable (T_VARIABLE)" . '[' @72 encaps_var_offset ']'
+ 496 | "variable (T_VARIABLE)" . '[' $@72 encaps_var_offset ']'
497 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)"
'[' shift, and go to state 348
@@ -6850,7 +6850,7 @@ state 205
$default reduce using rule 494 (encaps_var)
-state 206
+State 206
393 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
@@ -6863,14 +6863,14 @@ state 206
encaps_var go to state 351
-state 207
+State 207
394 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" .
$default reduce using rule 394 (common_scalar)
-state 208
+State 208
498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}'
499 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . "variable name (T_STRING_VARNAME)" '[' expr ']' '}'
@@ -6952,7 +6952,7 @@ state 208
class_constant go to state 115
-state 209
+State 209
500 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}'
@@ -6978,7 +6978,7 @@ state 209
simple_indirect_reference go to state 113
-state 210
+State 210
413 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)"
490 encaps_list: encaps_list . encaps_var
@@ -6993,16 +6993,16 @@ state 210
encaps_var go to state 357
-state 211
+State 211
492 encaps_list: encaps_var .
$default reduce using rule 492 (encaps_list)
-state 212
+State 212
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
409 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -7011,30 +7011,30 @@ state 212
namespace_name go to state 358
-state 213
+State 213
- 15 top_statement: "namespace (T_NAMESPACE)" '{' . @3 top_statement_list '}'
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' . $@3 top_statement_list '}'
- $default reduce using rule 14 (@3)
+ $default reduce using rule 14 ($@3)
- @3 go to state 359
+ $@3 go to state 359
-state 214
+State 214
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
11 top_statement: "namespace (T_NAMESPACE)" namespace_name . ';'
- 13 | "namespace (T_NAMESPACE)" namespace_name . '{' @2 top_statement_list '}'
+ 13 | "namespace (T_NAMESPACE)" namespace_name . '{' $@2 top_statement_list '}'
"\\ (T_NS_SEPARATOR)" shift, and go to state 225
';' shift, and go to state 360
'{' shift, and go to state 361
-state 215
+State 215
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @57 function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' $@57 function_call_parameter_list ')'
362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
410 scalar: "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -7045,7 +7045,7 @@ state 215
$default reduce using rule 410 (scalar)
-state 216
+State 216
308 expr_without_variable: new_expr .
310 | '(' new_expr . ')' @48 instance_call
@@ -7056,12 +7056,12 @@ state 216
$default reduce using rule 308 (expr_without_variable)
-state 217
+State 217
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -7084,8 +7084,8 @@ state 217
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
307 | '(' expr . ')'
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -7116,19 +7116,19 @@ state 217
')' shift, and go to state 364
-state 218
+State 218
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
35 unticked_statement: '{' inner_statement_list . '}'
'}' shift, and go to state 365
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 219
+State 219
461 compound_variable: '$' '{' . expr '}'
@@ -7209,7 +7209,7 @@ state 219
class_constant go to state 115
-state 220
+State 220
379 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
@@ -7223,14 +7223,14 @@ state 220
encaps_var go to state 351
-state 221
+State 221
330 expr_without_variable: '`' backticks_expr . '`'
'`' shift, and go to state 368
-state 222
+State 222
380 backticks_expr: encaps_list .
490 encaps_list: encaps_list . encaps_var
@@ -7246,7 +7246,7 @@ state 222
encaps_var go to state 357
-state 223
+State 223
493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var
@@ -7257,7 +7257,7 @@ state 223
encaps_var go to state 351
-state 224
+State 224
412 scalar: '"' encaps_list . '"'
490 encaps_list: encaps_list . encaps_var
@@ -7272,39 +7272,39 @@ state 224
encaps_var go to state 357
-state 225
+State 225
6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 370
-state 226
+State 226
- 344 function_call: namespace_name '(' . @55 function_call_parameter_list ')'
+ 344 function_call: namespace_name '(' . $@55 function_call_parameter_list ')'
- $default reduce using rule 343 (@55)
+ $default reduce using rule 343 ($@55)
- @55 go to state 371
+ $@55 go to state 371
-state 227
+State 227
24 constant_declaration: constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
"identifier (T_STRING)" shift, and go to state 372
-state 228
+State 228
17 top_statement: constant_declaration ';' .
$default reduce using rule 17 (top_statement)
-state 229
+State 229
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from $@30 implements_list '{' class_statement_list '}'
"extends (T_EXTENDS)" shift, and go to state 373
@@ -7313,42 +7313,42 @@ state 229
extends_from go to state 374
-state 230
+State 230
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . @31 interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . $@31 interface_extends_list '{' class_statement_list '}'
- $default reduce using rule 102 (@31)
+ $default reduce using rule 102 ($@31)
- @31 go to state 375
+ $@31 go to state 375
-state 231
+State 231
97 is_reference: '&' .
$default reduce using rule 97 (is_reference)
-state 232
+State 232
- 99 unticked_function_declaration_statement: function is_reference . "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference . "identifier (T_STRING)" $@29 '(' parameter_list ')' '{' inner_statement_list '}'
333 expr_without_variable: function is_reference . '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
"identifier (T_STRING)" shift, and go to state 376
'(' shift, and go to state 377
-state 233
+State 233
- 450 array_function_dereference: function_call @69 . '[' dim_offset ']'
+ 450 array_function_dereference: function_call $@69 . '[' dim_offset ']'
'[' shift, and go to state 378
-state 234
+State 234
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @59 function_call_parameter_list ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' $@58 function_call_parameter_list ')'
+ 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' $@59 function_call_parameter_list ')'
445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
514 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
@@ -7364,16 +7364,16 @@ state 234
simple_indirect_reference go to state 384
-state 235
+State 235
- 279 expr_without_variable: expr "or (T_LOGICAL_OR)" . @46 expr
+ 279 expr_without_variable: expr "or (T_LOGICAL_OR)" . $@46 expr
- $default reduce using rule 278 (@46)
+ $default reduce using rule 278 ($@46)
- @46 go to state 385
+ $@46 go to state 385
-state 236
+State 236
282 expr_without_variable: expr "xor (T_LOGICAL_XOR)" . expr
@@ -7454,46 +7454,46 @@ state 236
class_constant go to state 115
-state 237
+State 237
- 281 expr_without_variable: expr "and (T_LOGICAL_AND)" . @47 expr
+ 281 expr_without_variable: expr "and (T_LOGICAL_AND)" . $@47 expr
- $default reduce using rule 280 (@47)
+ $default reduce using rule 280 ($@47)
- @47 go to state 387
+ $@47 go to state 387
-state 238
+State 238
- 313 expr_without_variable: expr '?' . @49 expr ':' @50 expr
- 315 | expr '?' . ':' @51 expr
+ 313 expr_without_variable: expr '?' . $@49 expr ':' $@50 expr
+ 315 | expr '?' . ':' $@51 expr
':' shift, and go to state 388
- $default reduce using rule 311 (@49)
+ $default reduce using rule 311 ($@49)
- @49 go to state 389
+ $@49 go to state 389
-state 239
+State 239
- 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . @44 expr
+ 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . $@44 expr
- $default reduce using rule 274 (@44)
+ $default reduce using rule 274 ($@44)
- @44 go to state 390
+ $@44 go to state 390
-state 240
+State 240
- 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . @45 expr
+ 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . $@45 expr
- $default reduce using rule 276 (@45)
+ $default reduce using rule 276 ($@45)
- @45 go to state 391
+ $@45 go to state 391
-state 241
+State 241
283 expr_without_variable: expr '|' . expr
@@ -7574,7 +7574,7 @@ state 241
class_constant go to state 115
-state 242
+State 242
285 expr_without_variable: expr '^' . expr
@@ -7655,7 +7655,7 @@ state 242
class_constant go to state 115
-state 243
+State 243
284 expr_without_variable: expr '&' . expr
@@ -7736,7 +7736,7 @@ state 243
class_constant go to state 115
-state 244
+State 244
299 expr_without_variable: expr "!== (T_IS_NOT_IDENTICAL)" . expr
@@ -7817,7 +7817,7 @@ state 244
class_constant go to state 115
-state 245
+State 245
298 expr_without_variable: expr "=== (T_IS_IDENTICAL)" . expr
@@ -7898,7 +7898,7 @@ state 245
class_constant go to state 115
-state 246
+State 246
301 expr_without_variable: expr "!= (T_IS_NOT_EQUAL)" . expr
@@ -7979,7 +7979,7 @@ state 246
class_constant go to state 115
-state 247
+State 247
300 expr_without_variable: expr "== (T_IS_EQUAL)" . expr
@@ -8060,7 +8060,7 @@ state 247
class_constant go to state 115
-state 248
+State 248
302 expr_without_variable: expr '<' . expr
@@ -8141,7 +8141,7 @@ state 248
class_constant go to state 115
-state 249
+State 249
304 expr_without_variable: expr '>' . expr
@@ -8222,7 +8222,7 @@ state 249
class_constant go to state 115
-state 250
+State 250
305 expr_without_variable: expr ">= (T_IS_GREATER_OR_EQUAL)" . expr
@@ -8303,7 +8303,7 @@ state 250
class_constant go to state 115
-state 251
+State 251
303 expr_without_variable: expr "<= (T_IS_SMALLER_OR_EQUAL)" . expr
@@ -8384,7 +8384,7 @@ state 251
class_constant go to state 115
-state 252
+State 252
293 expr_without_variable: expr ">> (T_SR)" . expr
@@ -8465,7 +8465,7 @@ state 252
class_constant go to state 115
-state 253
+State 253
292 expr_without_variable: expr "<< (T_SL)" . expr
@@ -8546,7 +8546,7 @@ state 253
class_constant go to state 115
-state 254
+State 254
287 expr_without_variable: expr '+' . expr
@@ -8627,7 +8627,7 @@ state 254
class_constant go to state 115
-state 255
+State 255
288 expr_without_variable: expr '-' . expr
@@ -8708,7 +8708,7 @@ state 255
class_constant go to state 115
-state 256
+State 256
286 expr_without_variable: expr '.' . expr
@@ -8789,7 +8789,7 @@ state 256
class_constant go to state 115
-state 257
+State 257
289 expr_without_variable: expr '*' . expr
@@ -8870,7 +8870,7 @@ state 257
class_constant go to state 115
-state 258
+State 258
290 expr_without_variable: expr '/' . expr
@@ -8951,7 +8951,7 @@ state 258
class_constant go to state 115
-state 259
+State 259
291 expr_without_variable: expr '%' . expr
@@ -9032,7 +9032,7 @@ state 259
class_constant go to state 115
-state 260
+State 260
306 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference
@@ -9055,32 +9055,32 @@ state 260
simple_indirect_reference go to state 161
-state 261
+State 261
65 unticked_statement: expr ';' .
$default reduce using rule 65 (unticked_statement)
-state 262
+State 262
272 expr_without_variable: rw_variable "-- (T_DEC)" .
$default reduce using rule 272 (expr_without_variable)
-state 263
+State 263
270 expr_without_variable: rw_variable "++ (T_INC)" .
$default reduce using rule 270 (expr_without_variable)
-state 264
+State 264
254 expr_without_variable: variable '=' . expr
255 | variable '=' . '&' variable
- 257 | variable '=' . '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable '=' . '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -9160,7 +9160,7 @@ state 264
class_constant go to state 115
-state 265
+State 265
269 expr_without_variable: variable ">>= (T_SR_EQUAL)" . expr
@@ -9241,7 +9241,7 @@ state 265
class_constant go to state 115
-state 266
+State 266
268 expr_without_variable: variable "<<= (T_SL_EQUAL)" . expr
@@ -9322,7 +9322,7 @@ state 266
class_constant go to state 115
-state 267
+State 267
267 expr_without_variable: variable "^= (T_XOR_EQUAL)" . expr
@@ -9403,7 +9403,7 @@ state 267
class_constant go to state 115
-state 268
+State 268
266 expr_without_variable: variable "|= (T_OR_EQUAL)" . expr
@@ -9484,7 +9484,7 @@ state 268
class_constant go to state 115
-state 269
+State 269
265 expr_without_variable: variable "&= (T_AND_EQUAL)" . expr
@@ -9565,7 +9565,7 @@ state 269
class_constant go to state 115
-state 270
+State 270
264 expr_without_variable: variable "%= (T_MOD_EQUAL)" . expr
@@ -9646,7 +9646,7 @@ state 270
class_constant go to state 115
-state 271
+State 271
263 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" . expr
@@ -9727,7 +9727,7 @@ state 271
class_constant go to state 115
-state 272
+State 272
262 expr_without_variable: variable "/= (T_DIV_EQUAL)" . expr
@@ -9808,7 +9808,7 @@ state 272
class_constant go to state 115
-state 273
+State 273
261 expr_without_variable: variable "*= (T_MUL_EQUAL)" . expr
@@ -9889,7 +9889,7 @@ state 273
class_constant go to state 115
-state 274
+State 274
260 expr_without_variable: variable "-= (T_MINUS_EQUAL)" . expr
@@ -9970,7 +9970,7 @@ state 274
class_constant go to state 115
-state 275
+State 275
259 expr_without_variable: variable "+= (T_PLUS_EQUAL)" . expr
@@ -10051,19 +10051,19 @@ state 275
class_constant go to state 115
-state 276
+State 276
- 358 function_call: variable_without_objects '(' . @62 function_call_parameter_list ')'
+ 358 function_call: variable_without_objects '(' . $@62 function_call_parameter_list ')'
- $default reduce using rule 357 (@62)
+ $default reduce using rule 357 ($@62)
- @62 go to state 425
+ $@62 go to state 425
-state 277
+State 277
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @61 function_call_parameter_list ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' $@60 function_call_parameter_list ')'
+ 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' $@61 function_call_parameter_list ')'
446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
515 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
@@ -10079,7 +10079,7 @@ state 277
simple_indirect_reference go to state 384
-state 278
+State 278
448 array_function_dereference: array_function_dereference '[' . dim_offset ']'
@@ -10163,16 +10163,16 @@ state 278
class_constant go to state 115
-state 279
+State 279
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . @65 object_property @66 method_or_not variable_properties
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . $@65 object_property $@66 method_or_not variable_properties
- $default reduce using rule 428 (@65)
+ $default reduce using rule 428 ($@65)
- @65 go to state 431
+ $@65 go to state 431
-state 280
+State 280
457 reference_variable: reference_variable '[' . dim_offset ']'
@@ -10256,7 +10256,7 @@ state 280
class_constant go to state 115
-state 281
+State 281
458 reference_variable: reference_variable '{' . expr '}'
@@ -10337,7 +10337,7 @@ state 281
class_constant go to state 115
-state 282
+State 282
461 compound_variable: '$' . '{' expr '}'
473 simple_indirect_reference: simple_indirect_reference '$' .
@@ -10347,7 +10347,7 @@ state 282
$default reduce using rule 473 (simple_indirect_reference)
-state 283
+State 283
444 variable_without_objects: simple_indirect_reference reference_variable .
455 base_variable: simple_indirect_reference reference_variable .
@@ -10361,19 +10361,19 @@ state 283
$default reduce using rule 455 (base_variable)
-state 284
+State 284
333 expr_without_variable: function is_reference . '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
'(' shift, and go to state 377
-state 285
+State 285
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -10395,8 +10395,8 @@ state 285
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
508 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr . ')'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -10428,12 +10428,12 @@ state 285
')' shift, and go to state 434
-state 286
+State 286
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -10455,16 +10455,16 @@ state 286
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 326 | '@' @52 expr .
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
+ 326 | '@' $@52 expr .
$default reduce using rule 326 (expr_without_variable)
-state 287
+State 287
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
"identifier (T_STRING)" shift, and go to state 116
@@ -10472,10 +10472,10 @@ state 287
namespace_name go to state 435
-state 288
+State 288
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @57 function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' $@57 function_call_parameter_list ')'
362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
"\\ (T_NS_SEPARATOR)" shift, and go to state 225
@@ -10484,10 +10484,10 @@ state 288
$default reduce using rule 362 (class_name)
-state 289
+State 289
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @58 function_call_parameter_list ')'
- 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @59 function_call_parameter_list ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' $@58 function_call_parameter_list ')'
+ 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' $@59 function_call_parameter_list ')'
445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
"identifier (T_STRING)" shift, and go to state 436
@@ -10502,10 +10502,10 @@ state 289
simple_indirect_reference go to state 384
-state 290
+State 290
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @60 function_call_parameter_list ')'
- 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @61 function_call_parameter_list ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' $@60 function_call_parameter_list ')'
+ 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' $@61 function_call_parameter_list ')'
446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
"identifier (T_STRING)" shift, and go to state 436
@@ -10520,21 +10520,21 @@ state 290
simple_indirect_reference go to state 384
-state 291
+State 291
489 non_empty_array_pair_list: '&' w_variable .
$default reduce using rule 489 (non_empty_array_pair_list)
-state 292
+State 292
426 w_variable: variable .
$default reduce using rule 426 (w_variable)
-state 293
+State 293
484 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr
488 | expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
@@ -10617,14 +10617,14 @@ state 293
class_constant go to state 115
-state 294
+State 294
329 expr_without_variable: '[' array_pair_list ']' .
$default reduce using rule 329 (expr_without_variable)
-state 295
+State 295
418 possible_comma: ',' .
482 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr
@@ -10712,14 +10712,14 @@ state 295
class_constant go to state 115
-state 296
+State 296
481 array_pair_list: non_empty_array_pair_list possible_comma .
$default reduce using rule 481 (array_pair_list)
-state 297
+State 297
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -10728,7 +10728,7 @@ state 297
namespace_name go to state 441
-state 298
+State 298
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -10738,7 +10738,7 @@ state 298
$default reduce using rule 362 (class_name)
-state 299
+State 299
445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
@@ -10751,9 +10751,9 @@ state 299
simple_indirect_reference go to state 384
-state 300
+State 300
- 251 new_expr: "new (T_NEW)" class_name_reference @41 . ctor_arguments
+ 251 new_expr: "new (T_NEW)" class_name_reference $@41 . ctor_arguments
'(' shift, and go to state 443
@@ -10762,7 +10762,7 @@ state 300
ctor_arguments go to state 444
-state 301
+State 301
446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects
@@ -10775,16 +10775,16 @@ state 301
simple_indirect_reference go to state 384
-state 302
+State 302
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . @63 object_property @64 dynamic_class_name_variable_properties
+ 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . $@63 object_property $@64 dynamic_class_name_variable_properties
- $default reduce using rule 368 (@63)
+ $default reduce using rule 368 ($@63)
- @63 go to state 446
+ $@63 go to state 446
-state 303
+State 303
455 base_variable: simple_indirect_reference reference_variable .
457 reference_variable: reference_variable . '[' dim_offset ']'
@@ -10796,19 +10796,19 @@ state 303
$default reduce using rule 455 (base_variable)
-state 304
+State 304
376 exit_expr: '(' ')' .
$default reduce using rule 376 (exit_expr)
-state 305
+State 305
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -10830,8 +10830,8 @@ state 305
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
377 exit_expr: '(' expr . ')'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -10863,14 +10863,14 @@ state 305
')' shift, and go to state 447
-state 306
+State 306
- 38 unticked_statement: "if (T_IF)" '(' expr . ')' @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" '(' expr . ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 38 unticked_statement: "if (T_IF)" '(' expr . ')' $@5 statement $@6 elseif_list else_single
+ 41 | "if (T_IF)" '(' expr . ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -10892,8 +10892,8 @@ state 306
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -10924,7 +10924,7 @@ state 306
')' shift, and go to state 448
-state 307
+State 307
232 echo_expr_list: echo_expr_list ',' . expr
@@ -11005,23 +11005,23 @@ state 307
class_constant go to state 115
-state 308
+State 308
63 unticked_statement: "echo (T_ECHO)" echo_expr_list ';' .
$default reduce using rule 63 (unticked_statement)
-state 309
+State 309
- 47 unticked_statement: "do (T_DO)" @11 statement . "while (T_WHILE)" '(' @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement . "while (T_WHILE)" '(' $@12 expr ')' ';'
"while (T_WHILE)" shift, and go to state 450
-state 310
+State 310
- 44 unticked_statement: "while (T_WHILE)" '(' @9 . expr ')' @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" '(' $@9 . expr ')' $@10 while_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -11100,30 +11100,30 @@ state 310
class_constant go to state 115
-state 311
+State 311
- 51 unticked_statement: "for (T_FOR)" '(' for_expr . ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr . ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
';' shift, and go to state 452
-state 312
+State 312
235 for_expr: non_empty_for_expr .
- 237 non_empty_for_expr: non_empty_for_expr . ',' @38 expr
+ 237 non_empty_for_expr: non_empty_for_expr . ',' $@38 expr
',' shift, and go to state 453
$default reduce using rule 235 (for_expr)
-state 313
+State 313
238 non_empty_for_expr: expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -11145,8 +11145,8 @@ state 313
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -11178,9 +11178,9 @@ state 313
$default reduce using rule 238 (non_empty_for_expr)
-state 314
+State 314
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" $@19 variable foreach_optional_arg ')' $@20 foreach_statement
424 expr: expr_without_variable .
"as (T_AS)" shift, and go to state 454
@@ -11188,12 +11188,12 @@ state 314
$default reduce using rule 424 (expr)
-state 315
+State 315
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable . "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable . "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
254 expr_without_variable: variable . '=' expr
255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable . '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
259 | variable . "+= (T_PLUS_EQUAL)" expr
260 | variable . "-= (T_MINUS_EQUAL)" expr
261 | variable . "*= (T_MUL_EQUAL)" expr
@@ -11227,22 +11227,22 @@ state 315
$default reduce using rule 425 (r_variable)
-state 316
+State 316
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' . declare_list ')' declare_statement
+ 74 unticked_statement: "declare (T_DECLARE)" $@21 '(' . declare_list ')' declare_statement
"identifier (T_STRING)" shift, and go to state 456
declare_list go to state 457
-state 317
+State 317
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr . ')' @16 switch_case_list
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 53 unticked_statement: "switch (T_SWITCH)" '(' expr . ')' $@16 switch_case_list
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -11264,8 +11264,8 @@ state 317
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -11296,28 +11296,28 @@ state 317
')' shift, and go to state 458
-state 318
+State 318
55 unticked_statement: "break (T_BREAK)" expr ';' .
$default reduce using rule 55 (unticked_statement)
-state 319
+State 319
57 unticked_statement: "continue (T_CONTINUE)" expr ';' .
$default reduce using rule 57 (unticked_statement)
-state 320
+State 320
83 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" ';' .
$default reduce using rule 83 (unticked_statement)
-state 321
+State 321
25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
@@ -11349,37 +11349,37 @@ state 321
static_class_constant go to state 471
-state 322
+State 322
59 unticked_statement: "return (T_RETURN)" expr_without_variable ';' .
$default reduce using rule 59 (unticked_statement)
-state 323
+State 323
60 unticked_statement: "return (T_RETURN)" variable ';' .
$default reduce using rule 60 (unticked_statement)
-state 324
+State 324
- 81 unticked_statement: "try (T_TRY)" @22 '{' . inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' . inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 472
-state 325
+State 325
82 unticked_statement: "throw (T_THROW)" expr ';' .
$default reduce using rule 82 (unticked_statement)
-state 326
+State 326
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
22 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -11391,14 +11391,14 @@ state 326
$default reduce using rule 22 (use_declaration)
-state 327
+State 327
21 use_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 474
-state 328
+State 328
18 use_declarations: use_declarations ',' . use_declaration
@@ -11409,14 +11409,14 @@ state 328
use_declaration go to state 475
-state 329
+State 329
16 top_statement: "use (T_USE)" use_declarations ';' .
$default reduce using rule 16 (top_statement)
-state 330
+State 330
178 global_var: '$' '{' . expr '}'
@@ -11497,21 +11497,21 @@ state 330
class_constant go to state 115
-state 331
+State 331
177 global_var: '$' r_variable .
$default reduce using rule 177 (global_var)
-state 332
+State 332
425 r_variable: variable .
$default reduce using rule 425 (r_variable)
-state 333
+State 333
174 global_var_list: global_var_list ',' . global_var
@@ -11521,14 +11521,14 @@ state 333
global_var go to state 477
-state 334
+State 334
61 unticked_statement: "global (T_GLOBAL)" global_var_list ';' .
$default reduce using rule 61 (unticked_statement)
-state 335
+State 335
182 static_var_list: "variable (T_VARIABLE)" '=' . static_scalar
@@ -11560,7 +11560,7 @@ state 335
static_class_constant go to state 471
-state 336
+State 336
179 static_var_list: static_var_list ',' . "variable (T_VARIABLE)"
180 | static_var_list ',' . "variable (T_VARIABLE)" '=' static_scalar
@@ -11568,21 +11568,21 @@ state 336
"variable (T_VARIABLE)" shift, and go to state 479
-state 337
+State 337
62 unticked_statement: "static (T_STATIC)" static_var_list ';' .
$default reduce using rule 62 (unticked_statement)
-state 338
+State 338
335 expr_without_variable: "static (T_STATIC)" function is_reference . '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
'(' shift, and go to state 480
-state 339
+State 339
66 unticked_statement: "unset (T_UNSET)" '(' unset_variables . ')' ';'
92 unset_variables: unset_variables . ',' unset_variable
@@ -11591,53 +11591,53 @@ state 339
')' shift, and go to state 482
-state 340
+State 340
91 unset_variables: unset_variable .
$default reduce using rule 91 (unset_variables)
-state 341
+State 341
93 unset_variable: variable .
$default reduce using rule 93 (unset_variable)
-state 342
+State 342
511 isset_variables: variable .
$default reduce using rule 511 (isset_variables)
-state 343
+State 343
504 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')'
- 513 isset_variables: isset_variables . ',' @73 variable
+ 513 isset_variables: isset_variables . ',' $@73 variable
',' shift, and go to state 483
')' shift, and go to state 484
-state 344
+State 344
505 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')'
')' shift, and go to state 485
-state 345
+State 345
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
';' shift, and go to state 486
-state 346
+State 346
- 253 expr_without_variable: "list (T_LIST)" '(' @42 . assignment_list ')' '=' expr
+ 253 expr_without_variable: "list (T_LIST)" '(' $@42 . assignment_list ')' '=' expr
"identifier (T_STRING)" shift, and go to state 116
"variable (T_VARIABLE)" shift, and go to state 34
@@ -11666,44 +11666,44 @@ state 346
assignment_list_element go to state 490
-state 347
+State 347
328 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list . ')'
')' shift, and go to state 491
-state 348
+State 348
- 496 encaps_var: "variable (T_VARIABLE)" '[' . @72 encaps_var_offset ']'
+ 496 encaps_var: "variable (T_VARIABLE)" '[' . $@72 encaps_var_offset ']'
- $default reduce using rule 495 (@72)
+ $default reduce using rule 495 ($@72)
- @72 go to state 492
+ $@72 go to state 492
-state 349
+State 349
497 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 493
-state 350
+State 350
393 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" .
$default reduce using rule 393 (common_scalar)
-state 351
+State 351
493 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var .
$default reduce using rule 493 (encaps_list)
-state 352
+State 352
406 scalar: "variable name (T_STRING_VARNAME)" .
499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}'
@@ -11713,12 +11713,12 @@ state 352
$default reduce using rule 406 (scalar)
-state 353
+State 353
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -11740,8 +11740,8 @@ state 353
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -11773,38 +11773,38 @@ state 353
'}' shift, and go to state 495
-state 354
+State 354
500 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}'
'}' shift, and go to state 496
-state 355
+State 355
491 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" .
$default reduce using rule 491 (encaps_list)
-state 356
+State 356
413 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" .
$default reduce using rule 413 (scalar)
-state 357
+State 357
490 encaps_list: encaps_list encaps_var .
$default reduce using rule 490 (encaps_list)
-state 358
+State 358
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
409 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -11815,41 +11815,41 @@ state 358
$default reduce using rule 409 (scalar)
-state 359
+State 359
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 . top_statement_list '}'
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 . top_statement_list '}'
$default reduce using rule 4 (top_statement_list)
top_statement_list go to state 498
-state 360
+State 360
11 top_statement: "namespace (T_NAMESPACE)" namespace_name ';' .
$default reduce using rule 11 (top_statement)
-state 361
+State 361
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . @2 top_statement_list '}'
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . $@2 top_statement_list '}'
- $default reduce using rule 12 (@2)
+ $default reduce using rule 12 ($@2)
- @2 go to state 499
+ $@2 go to state 499
-state 362
+State 362
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' . @57 function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' . $@57 function_call_parameter_list ')'
- $default reduce using rule 347 (@57)
+ $default reduce using rule 347 ($@57)
- @57 go to state 500
+ $@57 go to state 500
-state 363
+State 363
310 expr_without_variable: '(' new_expr ')' . @48 instance_call
@@ -11858,23 +11858,23 @@ state 363
@48 go to state 501
-state 364
+State 364
307 expr_without_variable: '(' expr ')' .
$default reduce using rule 307 (expr_without_variable)
-state 365
+State 365
35 unticked_statement: '{' inner_statement_list '}' .
$default reduce using rule 35 (unticked_statement)
-state 366
+State 366
- 27 inner_statement_list: inner_statement_list @4 . inner_statement
+ 27 inner_statement_list: inner_statement_list $@4 . inner_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -11987,12 +11987,12 @@ state 366
class_constant go to state 115
-state 367
+State 367
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -12014,8 +12014,8 @@ state 367
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
461 compound_variable: '$' '{' expr . '}'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -12047,30 +12047,30 @@ state 367
'}' shift, and go to state 507
-state 368
+State 368
330 expr_without_variable: '`' backticks_expr '`' .
$default reduce using rule 330 (expr_without_variable)
-state 369
+State 369
412 scalar: '"' encaps_list '"' .
$default reduce using rule 412 (scalar)
-state 370
+State 370
6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" .
$default reduce using rule 6 (namespace_name)
-state 371
+State 371
- 344 function_call: namespace_name '(' @55 . function_call_parameter_list ')'
+ 344 function_call: namespace_name '(' $@55 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12154,14 +12154,14 @@ state 371
class_constant go to state 115
-state 372
+State 372
24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
'=' shift, and go to state 513
-state 373
+State 373
109 extends_from: "extends (T_EXTENDS)" . fully_qualified_class_name
@@ -12173,18 +12173,18 @@ state 373
fully_qualified_class_name go to state 517
-state 374
+State 374
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . $@30 implements_list '{' class_statement_list '}'
- $default reduce using rule 100 (@30)
+ $default reduce using rule 100 ($@30)
- @30 go to state 518
+ $@30 go to state 518
-state 375
+State 375
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 . interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@31 . interface_extends_list '{' class_statement_list '}'
"extends (T_EXTENDS)" shift, and go to state 519
@@ -12193,16 +12193,16 @@ state 375
interface_extends_list go to state 520
-state 376
+State 376
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . $@29 '(' parameter_list ')' '{' inner_statement_list '}'
- $default reduce using rule 98 (@29)
+ $default reduce using rule 98 ($@29)
- @29 go to state 521
+ $@29 go to state 521
-state 377
+State 377
333 expr_without_variable: function is_reference '(' . @53 parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -12211,9 +12211,9 @@ state 377
@53 go to state 522
-state 378
+State 378
- 450 array_function_dereference: function_call @69 '[' . dim_offset ']'
+ 450 array_function_dereference: function_call $@69 '[' . dim_offset ']'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12295,7 +12295,7 @@ state 378
class_constant go to state 115
-state 379
+State 379
470 variable_name: "identifier (T_STRING)" .
514 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
@@ -12304,7 +12304,7 @@ state 379
$default reduce using rule 514 (class_constant)
-state 380
+State 380
471 variable_name: '{' . expr '}'
@@ -12385,9 +12385,9 @@ state 380
class_constant go to state 115
-state 381
+State 381
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @59 function_call_parameter_list ')'
+ 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' $@59 function_call_parameter_list ')'
445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
'(' shift, and go to state 525
@@ -12395,7 +12395,7 @@ state 381
$default reduce using rule 445 (static_member)
-state 382
+State 382
443 variable_without_objects: reference_variable .
457 reference_variable: reference_variable . '[' dim_offset ']'
@@ -12407,14 +12407,14 @@ state 382
$default reduce using rule 443 (variable_without_objects)
-state 383
+State 383
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @58 function_call_parameter_list ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' $@58 function_call_parameter_list ')'
'(' shift, and go to state 526
-state 384
+State 384
444 variable_without_objects: simple_indirect_reference . reference_variable
473 simple_indirect_reference: simple_indirect_reference . '$'
@@ -12426,9 +12426,9 @@ state 384
compound_variable go to state 112
-state 385
+State 385
- 279 expr_without_variable: expr "or (T_LOGICAL_OR)" @46 . expr
+ 279 expr_without_variable: expr "or (T_LOGICAL_OR)" $@46 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12507,12 +12507,12 @@ state 385
class_constant go to state 115
-state 386
+State 386
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
282 | expr "xor (T_LOGICAL_XOR)" expr .
283 | expr . '|' expr
@@ -12535,8 +12535,8 @@ state 386
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"and (T_LOGICAL_AND)" shift, and go to state 237
'?' shift, and go to state 238
@@ -12566,9 +12566,9 @@ state 386
$default reduce using rule 282 (expr_without_variable)
-state 387
+State 387
- 281 expr_without_variable: expr "and (T_LOGICAL_AND)" @47 . expr
+ 281 expr_without_variable: expr "and (T_LOGICAL_AND)" $@47 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12647,18 +12647,18 @@ state 387
class_constant go to state 115
-state 388
+State 388
- 315 expr_without_variable: expr '?' ':' . @51 expr
+ 315 expr_without_variable: expr '?' ':' . $@51 expr
- $default reduce using rule 314 (@51)
+ $default reduce using rule 314 ($@51)
- @51 go to state 530
+ $@51 go to state 530
-state 389
+State 389
- 313 expr_without_variable: expr '?' @49 . expr ':' @50 expr
+ 313 expr_without_variable: expr '?' $@49 . expr ':' $@50 expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12737,9 +12737,9 @@ state 389
class_constant go to state 115
-state 390
+State 390
- 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @44 . expr
+ 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" $@44 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12818,9 +12818,9 @@ state 390
class_constant go to state 115
-state 391
+State 391
- 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @45 . expr
+ 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" $@45 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -12899,12 +12899,12 @@ state 391
class_constant go to state 115
-state 392
+State 392
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
283 | expr '|' expr .
@@ -12927,8 +12927,8 @@ state 392
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'^' shift, and go to state 242
'&' shift, and go to state 243
@@ -12953,12 +12953,12 @@ state 392
$default reduce using rule 283 (expr_without_variable)
-state 393
+State 393
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -12981,8 +12981,8 @@ state 393
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'&' shift, and go to state 243
"!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
@@ -13006,12 +13006,12 @@ state 393
$default reduce using rule 285 (expr_without_variable)
-state 394
+State 394
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13034,8 +13034,8 @@ state 394
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244
"=== (T_IS_IDENTICAL)" shift, and go to state 245
@@ -13058,12 +13058,12 @@ state 394
$default reduce using rule 284 (expr_without_variable)
-state 395
+State 395
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13086,8 +13086,8 @@ state 395
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'<' shift, and go to state 248
'>' shift, and go to state 249
@@ -13111,12 +13111,12 @@ state 395
$default reduce using rule 299 (expr_without_variable)
-state 396
+State 396
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13139,8 +13139,8 @@ state 396
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'<' shift, and go to state 248
'>' shift, and go to state 249
@@ -13164,12 +13164,12 @@ state 396
$default reduce using rule 298 (expr_without_variable)
-state 397
+State 397
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13192,8 +13192,8 @@ state 397
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'<' shift, and go to state 248
'>' shift, and go to state 249
@@ -13217,12 +13217,12 @@ state 397
$default reduce using rule 301 (expr_without_variable)
-state 398
+State 398
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13245,8 +13245,8 @@ state 398
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'<' shift, and go to state 248
'>' shift, and go to state 249
@@ -13270,12 +13270,12 @@ state 398
$default reduce using rule 300 (expr_without_variable)
-state 399
+State 399
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13298,8 +13298,8 @@ state 399
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
">> (T_SR)" shift, and go to state 252
"<< (T_SL)" shift, and go to state 253
@@ -13319,12 +13319,12 @@ state 399
$default reduce using rule 302 (expr_without_variable)
-state 400
+State 400
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13347,8 +13347,8 @@ state 400
304 | expr '>' expr .
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
">> (T_SR)" shift, and go to state 252
"<< (T_SL)" shift, and go to state 253
@@ -13368,12 +13368,12 @@ state 400
$default reduce using rule 304 (expr_without_variable)
-state 401
+State 401
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13396,8 +13396,8 @@ state 401
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
305 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr .
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
">> (T_SR)" shift, and go to state 252
"<< (T_SL)" shift, and go to state 253
@@ -13417,12 +13417,12 @@ state 401
$default reduce using rule 305 (expr_without_variable)
-state 402
+State 402
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13445,8 +13445,8 @@ state 402
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
">> (T_SR)" shift, and go to state 252
"<< (T_SL)" shift, and go to state 253
@@ -13466,12 +13466,12 @@ state 402
$default reduce using rule 303 (expr_without_variable)
-state 403
+State 403
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13494,8 +13494,8 @@ state 403
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'+' shift, and go to state 254
'-' shift, and go to state 255
@@ -13508,12 +13508,12 @@ state 403
$default reduce using rule 293 (expr_without_variable)
-state 404
+State 404
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13536,8 +13536,8 @@ state 404
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'+' shift, and go to state 254
'-' shift, and go to state 255
@@ -13550,12 +13550,12 @@ state 404
$default reduce using rule 292 (expr_without_variable)
-state 405
+State 405
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13578,8 +13578,8 @@ state 405
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'*' shift, and go to state 257
'/' shift, and go to state 258
@@ -13589,12 +13589,12 @@ state 405
$default reduce using rule 287 (expr_without_variable)
-state 406
+State 406
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13617,8 +13617,8 @@ state 406
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'*' shift, and go to state 257
'/' shift, and go to state 258
@@ -13628,12 +13628,12 @@ state 406
$default reduce using rule 288 (expr_without_variable)
-state 407
+State 407
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13656,8 +13656,8 @@ state 407
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'*' shift, and go to state 257
'/' shift, and go to state 258
@@ -13667,12 +13667,12 @@ state 407
$default reduce using rule 286 (expr_without_variable)
-state 408
+State 408
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13695,20 +13695,20 @@ state 408
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"instanceof (T_INSTANCEOF)" shift, and go to state 260
$default reduce using rule 289 (expr_without_variable)
-state 409
+State 409
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13731,20 +13731,20 @@ state 409
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"instanceof (T_INSTANCEOF)" shift, and go to state 260
$default reduce using rule 290 (expr_without_variable)
-state 410
+State 410
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13767,25 +13767,25 @@ state 410
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"instanceof (T_INSTANCEOF)" shift, and go to state 260
$default reduce using rule 291 (expr_without_variable)
-state 411
+State 411
306 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference .
$default reduce using rule 306 (expr_without_variable)
-state 412
+State 412
255 expr_without_variable: variable '=' '&' . variable
- 257 | variable '=' '&' . "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable '=' '&' . "new (T_NEW)" class_name_reference $@43 ctor_arguments
"new (T_NEW)" shift, and go to state 534
"identifier (T_STRING)" shift, and go to state 116
@@ -13810,13 +13810,13 @@ state 412
simple_indirect_reference go to state 113
-state 413
+State 413
254 expr_without_variable: variable '=' expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13838,8 +13838,8 @@ state 413
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -13868,13 +13868,13 @@ state 413
$default reduce using rule 254 (expr_without_variable)
-state 414
+State 414
269 expr_without_variable: variable ">>= (T_SR_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13896,8 +13896,8 @@ state 414
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -13926,13 +13926,13 @@ state 414
$default reduce using rule 269 (expr_without_variable)
-state 415
+State 415
268 expr_without_variable: variable "<<= (T_SL_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -13954,8 +13954,8 @@ state 415
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -13984,13 +13984,13 @@ state 415
$default reduce using rule 268 (expr_without_variable)
-state 416
+State 416
267 expr_without_variable: variable "^= (T_XOR_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14012,8 +14012,8 @@ state 416
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14042,13 +14042,13 @@ state 416
$default reduce using rule 267 (expr_without_variable)
-state 417
+State 417
266 expr_without_variable: variable "|= (T_OR_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14070,8 +14070,8 @@ state 417
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14100,13 +14100,13 @@ state 417
$default reduce using rule 266 (expr_without_variable)
-state 418
+State 418
265 expr_without_variable: variable "&= (T_AND_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14128,8 +14128,8 @@ state 418
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14158,13 +14158,13 @@ state 418
$default reduce using rule 265 (expr_without_variable)
-state 419
+State 419
264 expr_without_variable: variable "%= (T_MOD_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14186,8 +14186,8 @@ state 419
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14216,13 +14216,13 @@ state 419
$default reduce using rule 264 (expr_without_variable)
-state 420
+State 420
263 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14244,8 +14244,8 @@ state 420
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14274,13 +14274,13 @@ state 420
$default reduce using rule 263 (expr_without_variable)
-state 421
+State 421
262 expr_without_variable: variable "/= (T_DIV_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14302,8 +14302,8 @@ state 421
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14332,13 +14332,13 @@ state 421
$default reduce using rule 262 (expr_without_variable)
-state 422
+State 422
261 expr_without_variable: variable "*= (T_MUL_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14360,8 +14360,8 @@ state 422
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14390,13 +14390,13 @@ state 422
$default reduce using rule 261 (expr_without_variable)
-state 423
+State 423
260 expr_without_variable: variable "-= (T_MINUS_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14418,8 +14418,8 @@ state 423
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14448,13 +14448,13 @@ state 423
$default reduce using rule 260 (expr_without_variable)
-state 424
+State 424
259 expr_without_variable: variable "+= (T_PLUS_EQUAL)" expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14476,8 +14476,8 @@ state 424
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -14506,9 +14506,9 @@ state 424
$default reduce using rule 259 (expr_without_variable)
-state 425
+State 425
- 358 function_call: variable_without_objects '(' @62 . function_call_parameter_list ')'
+ 358 function_call: variable_without_objects '(' $@62 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -14592,7 +14592,7 @@ state 425
class_constant go to state 115
-state 426
+State 426
470 variable_name: "identifier (T_STRING)" .
515 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
@@ -14601,9 +14601,9 @@ state 426
$default reduce using rule 515 (class_constant)
-state 427
+State 427
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @61 function_call_parameter_list ')'
+ 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' $@61 function_call_parameter_list ')'
446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
'(' shift, and go to state 537
@@ -14611,19 +14611,19 @@ state 427
$default reduce using rule 446 (static_member)
-state 428
+State 428
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @60 function_call_parameter_list ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' $@60 function_call_parameter_list ')'
'(' shift, and go to state 538
-state 429
+State 429
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14645,8 +14645,8 @@ state 429
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
463 dim_offset: expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -14679,16 +14679,16 @@ state 429
$default reduce using rule 463 (dim_offset)
-state 430
+State 430
448 array_function_dereference: array_function_dereference '[' dim_offset . ']'
']' shift, and go to state 539
-state 431
+State 431
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 . object_property @66 method_or_not variable_properties
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@65 . object_property $@66 method_or_not variable_properties
"identifier (T_STRING)" shift, and go to state 436
"variable (T_VARIABLE)" shift, and go to state 34
@@ -14704,19 +14704,19 @@ state 431
simple_indirect_reference go to state 384
-state 432
+State 432
457 reference_variable: reference_variable '[' dim_offset . ']'
']' shift, and go to state 544
-state 433
+State 433
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14738,8 +14738,8 @@ state 433
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
458 reference_variable: reference_variable '{' expr . '}'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -14771,17 +14771,17 @@ state 433
'}' shift, and go to state 545
-state 434
+State 434
508 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr ')' .
$default reduce using rule 508 (internal_functions_in_yacc)
-state 435
+State 435
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' $@56 function_call_parameter_list ')'
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
"\\ (T_NS_SEPARATOR)" shift, and go to state 225
@@ -14790,14 +14790,14 @@ state 435
$default reduce using rule 361 (class_name)
-state 436
+State 436
470 variable_name: "identifier (T_STRING)" .
$default reduce using rule 470 (variable_name)
-state 437
+State 437
488 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
@@ -14824,12 +14824,12 @@ state 437
simple_indirect_reference go to state 113
-state 438
+State 438
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14851,8 +14851,8 @@ state 438
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
484 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -14885,7 +14885,7 @@ state 438
$default reduce using rule 484 (non_empty_array_pair_list)
-state 439
+State 439
487 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable
@@ -14912,12 +14912,12 @@ state 439
simple_indirect_reference go to state 113
-state 440
+State 440
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -14939,8 +14939,8 @@ state 440
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr
483 | non_empty_array_pair_list ',' expr .
486 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable
@@ -14976,7 +14976,7 @@ state 440
$default reduce using rule 483 (non_empty_array_pair_list)
-state 441
+State 441
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -14986,14 +14986,14 @@ state 441
$default reduce using rule 361 (class_name)
-state 442
+State 442
445 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
$default reduce using rule 445 (static_member)
-state 443
+State 443
382 ctor_arguments: '(' . function_call_parameter_list ')'
@@ -15079,23 +15079,23 @@ state 443
class_constant go to state 115
-state 444
+State 444
- 251 new_expr: "new (T_NEW)" class_name_reference @41 ctor_arguments .
+ 251 new_expr: "new (T_NEW)" class_name_reference $@41 ctor_arguments .
$default reduce using rule 251 (new_expr)
-state 445
+State 445
446 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects .
$default reduce using rule 446 (static_member)
-state 446
+State 446
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 . object_property @64 dynamic_class_name_variable_properties
+ 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@63 . object_property $@64 dynamic_class_name_variable_properties
"identifier (T_STRING)" shift, and go to state 436
"variable (T_VARIABLE)" shift, and go to state 34
@@ -15111,32 +15111,32 @@ state 446
simple_indirect_reference go to state 384
-state 447
+State 447
377 exit_expr: '(' expr ')' .
$default reduce using rule 377 (exit_expr)
-state 448
+State 448
- 38 unticked_statement: "if (T_IF)" '(' expr ')' . @5 statement @6 elseif_list else_single
- 41 | "if (T_IF)" '(' expr ')' . ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' . $@5 statement $@6 elseif_list else_single
+ 41 | "if (T_IF)" '(' expr ')' . ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
':' shift, and go to state 551
- $default reduce using rule 36 (@5)
+ $default reduce using rule 36 ($@5)
- @5 go to state 552
+ $@5 go to state 552
-state 449
+State 449
232 echo_expr_list: echo_expr_list ',' expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -15158,8 +15158,8 @@ state 449
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -15191,20 +15191,20 @@ state 449
$default reduce using rule 232 (echo_expr_list)
-state 450
+State 450
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" . '(' @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" . '(' $@12 expr ')' ';'
'(' shift, and go to state 553
-state 451
+State 451
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr . ')' @10 while_statement
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 44 unticked_statement: "while (T_WHILE)" '(' $@9 expr . ')' $@10 while_statement
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -15226,8 +15226,8 @@ state 451
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -15258,68 +15258,68 @@ state 451
')' shift, and go to state 554
-state 452
+State 452
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' . @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' . $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- $default reduce using rule 48 (@13)
+ $default reduce using rule 48 ($@13)
- @13 go to state 555
+ $@13 go to state 555
-state 453
+State 453
- 237 non_empty_for_expr: non_empty_for_expr ',' . @38 expr
+ 237 non_empty_for_expr: non_empty_for_expr ',' . $@38 expr
- $default reduce using rule 236 (@38)
+ $default reduce using rule 236 ($@38)
- @38 go to state 556
+ $@38 go to state 556
-state 454
+State 454
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . $@19 variable foreach_optional_arg ')' $@20 foreach_statement
- $default reduce using rule 70 (@19)
+ $default reduce using rule 70 ($@19)
- @19 go to state 557
+ $@19 go to state 557
-state 455
+State 455
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
- $default reduce using rule 67 (@17)
+ $default reduce using rule 67 ($@17)
- @17 go to state 558
+ $@17 go to state 558
-state 456
+State 456
127 declare_list: "identifier (T_STRING)" . '=' static_scalar
'=' shift, and go to state 559
-state 457
+State 457
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list . ')' declare_statement
+ 74 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list . ')' declare_statement
128 declare_list: declare_list . ',' "identifier (T_STRING)" '=' static_scalar
',' shift, and go to state 560
')' shift, and go to state 561
-state 458
+State 458
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' . @16 switch_case_list
+ 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' . $@16 switch_case_list
- $default reduce using rule 52 (@16)
+ $default reduce using rule 52 ($@16)
- @16 go to state 562
+ $@16 go to state 562
-state 459
+State 459
399 static_scalar: '+' . static_scalar
@@ -15351,7 +15351,7 @@ state 459
static_class_constant go to state 471
-state 460
+State 460
400 static_scalar: '-' . static_scalar
@@ -15383,7 +15383,7 @@ state 460
static_class_constant go to state 471
-state 461
+State 461
402 static_scalar: '[' . static_array_pair_list ']'
@@ -15419,21 +15419,21 @@ state 461
non_empty_static_array_pair_list go to state 567
-state 462
+State 462
401 static_scalar: "array (T_ARRAY)" . '(' static_array_pair_list ')'
'(' shift, and go to state 568
-state 463
+State 463
404 static_scalar: "__CLASS__ (T_CLASS_C)" .
$default reduce using rule 404 (static_scalar)
-state 464
+State 464
393 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)"
394 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)"
@@ -15442,7 +15442,7 @@ state 464
"heredoc end (T_END_HEREDOC)" shift, and go to state 207
-state 465
+State 465
361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
397 static_scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
@@ -15450,7 +15450,7 @@ state 465
"\\ (T_NS_SEPARATOR)" shift, and go to state 570
-state 466
+State 466
362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
398 static_scalar: "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -15460,7 +15460,7 @@ state 466
namespace_name go to state 571
-state 467
+State 467
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
360 class_name: namespace_name .
@@ -15472,74 +15472,74 @@ state 467
$default reduce using rule 396 (static_scalar)
-state 468
+State 468
405 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 572
-state 469
+State 469
395 static_scalar: common_scalar .
$default reduce using rule 395 (static_scalar)
-state 470
+State 470
25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
$default reduce using rule 25 (constant_declaration)
-state 471
+State 471
403 static_scalar: static_class_constant .
$default reduce using rule 403 (static_scalar)
-state 472
+State 472
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list . '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list . '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
'}' shift, and go to state 573
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 473
+State 473
23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 574
-state 474
+State 474
21 use_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" .
$default reduce using rule 21 (use_declaration)
-state 475
+State 475
18 use_declarations: use_declarations ',' use_declaration .
$default reduce using rule 18 (use_declarations)
-state 476
+State 476
178 global_var: '$' '{' expr . '}'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -15561,8 +15561,8 @@ state 476
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -15593,21 +15593,21 @@ state 476
'}' shift, and go to state 575
-state 477
+State 477
174 global_var_list: global_var_list ',' global_var .
$default reduce using rule 174 (global_var_list)
-state 478
+State 478
182 static_var_list: "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 182 (static_var_list)
-state 479
+State 479
179 static_var_list: static_var_list ',' "variable (T_VARIABLE)" .
180 | static_var_list ',' "variable (T_VARIABLE)" . '=' static_scalar
@@ -15617,7 +15617,7 @@ state 479
$default reduce using rule 179 (static_var_list)
-state 480
+State 480
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' . @54 parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -15626,7 +15626,7 @@ state 480
@54 go to state 577
-state 481
+State 481
92 unset_variables: unset_variables ',' . unset_variable
@@ -15653,83 +15653,83 @@ state 481
simple_indirect_reference go to state 113
-state 482
+State 482
66 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' . ';'
';' shift, and go to state 579
-state 483
+State 483
- 513 isset_variables: isset_variables ',' . @73 variable
+ 513 isset_variables: isset_variables ',' . $@73 variable
- $default reduce using rule 512 (@73)
+ $default reduce using rule 512 ($@73)
- @73 go to state 580
+ $@73 go to state 580
-state 484
+State 484
504 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' .
$default reduce using rule 504 (internal_functions_in_yacc)
-state 485
+State 485
505 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' .
$default reduce using rule 505 (internal_functions_in_yacc)
-state 486
+State 486
10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
$default reduce using rule 10 (top_statement)
-state 487
+State 487
- 478 assignment_list_element: "list (T_LIST)" . '(' @71 assignment_list ')'
+ 478 assignment_list_element: "list (T_LIST)" . '(' $@71 assignment_list ')'
'(' shift, and go to state 581
-state 488
+State 488
476 assignment_list_element: variable .
$default reduce using rule 476 (assignment_list_element)
-state 489
+State 489
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list . ')' '=' expr
+ 253 expr_without_variable: "list (T_LIST)" '(' $@42 assignment_list . ')' '=' expr
474 assignment_list: assignment_list . ',' assignment_list_element
',' shift, and go to state 582
')' shift, and go to state 583
-state 490
+State 490
475 assignment_list: assignment_list_element .
$default reduce using rule 475 (assignment_list)
-state 491
+State 491
328 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list ')' .
$default reduce using rule 328 (expr_without_variable)
-state 492
+State 492
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 . encaps_var_offset ']'
+ 496 encaps_var: "variable (T_VARIABLE)" '[' $@72 . encaps_var_offset ']'
"identifier (T_STRING)" shift, and go to state 584
"variable (T_VARIABLE)" shift, and go to state 585
@@ -15738,14 +15738,14 @@ state 492
encaps_var_offset go to state 587
-state 493
+State 493
497 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" .
$default reduce using rule 497 (encaps_var)
-state 494
+State 494
499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}'
@@ -15826,53 +15826,53 @@ state 494
class_constant go to state 115
-state 495
+State 495
498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' .
$default reduce using rule 498 (encaps_var)
-state 496
+State 496
500 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' .
$default reduce using rule 500 (encaps_var)
-state 497
+State 497
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' . @56 function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' . $@56 function_call_parameter_list ')'
- $default reduce using rule 345 (@56)
+ $default reduce using rule 345 ($@56)
- @56 go to state 589
+ $@56 go to state 589
-state 498
+State 498
- 3 top_statement_list: top_statement_list . @1 top_statement
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list . '}'
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list . '}'
'}' shift, and go to state 590
- $default reduce using rule 2 (@1)
+ $default reduce using rule 2 ($@1)
- @1 go to state 4
+ $@1 go to state 4
-state 499
+State 499
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 . top_statement_list '}'
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 . top_statement_list '}'
$default reduce using rule 4 (top_statement_list)
top_statement_list go to state 591
-state 500
+State 500
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 . function_call_parameter_list ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' $@57 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -15956,61 +15956,61 @@ state 500
class_constant go to state 115
-state 501
+State 501
310 expr_without_variable: '(' new_expr ')' @48 . instance_call
- '[' reduce using rule 248 (@40)
- "-> (T_OBJECT_OPERATOR)" reduce using rule 248 (@40)
+ '[' reduce using rule 248 ($@40)
+ "-> (T_OBJECT_OPERATOR)" reduce using rule 248 ($@40)
$default reduce using rule 247 (instance_call)
instance_call go to state 593
- @40 go to state 594
+ $@40 go to state 594
-state 502
+State 502
32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';'
'(' shift, and go to state 595
-state 503
+State 503
- 27 inner_statement_list: inner_statement_list @4 inner_statement .
+ 27 inner_statement_list: inner_statement_list $@4 inner_statement .
$default reduce using rule 27 (inner_statement_list)
-state 504
+State 504
29 inner_statement: statement .
$default reduce using rule 29 (inner_statement)
-state 505
+State 505
30 inner_statement: function_declaration_statement .
$default reduce using rule 30 (inner_statement)
-state 506
+State 506
31 inner_statement: class_declaration_statement .
$default reduce using rule 31 (inner_statement)
-state 507
+State 507
461 compound_variable: '$' '{' expr '}' .
$default reduce using rule 461 (compound_variable)
-state 508
+State 508
170 non_empty_function_call_parameter_list: '&' . w_variable
@@ -16037,14 +16037,14 @@ state 508
simple_indirect_reference go to state 113
-state 509
+State 509
- 344 function_call: namespace_name '(' @55 function_call_parameter_list . ')'
+ 344 function_call: namespace_name '(' $@55 function_call_parameter_list . ')'
')' shift, and go to state 597
-state 510
+State 510
166 function_call_parameter_list: non_empty_function_call_parameter_list .
171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable
@@ -16056,7 +16056,7 @@ state 510
$default reduce using rule 166 (function_call_parameter_list)
-state 511
+State 511
168 non_empty_function_call_parameter_list: expr_without_variable .
424 expr: expr_without_variable .
@@ -16066,12 +16066,12 @@ state 511
$default reduce using rule 424 (expr)
-state 512
+State 512
169 non_empty_function_call_parameter_list: variable .
254 expr_without_variable: variable . '=' expr
255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable . '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
259 | variable . "+= (T_PLUS_EQUAL)" expr
260 | variable . "-= (T_MINUS_EQUAL)" expr
261 | variable . "*= (T_MUL_EQUAL)" expr
@@ -16106,7 +16106,7 @@ state 512
$default reduce using rule 425 (r_variable)
-state 513
+State 513
24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
@@ -16138,14 +16138,14 @@ state 513
static_class_constant go to state 471
-state 514
+State 514
364 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name
"\\ (T_NS_SEPARATOR)" shift, and go to state 600
-state 515
+State 515
365 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -16154,7 +16154,7 @@ state 515
namespace_name go to state 601
-state 516
+State 516
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
363 fully_qualified_class_name: namespace_name .
@@ -16164,16 +16164,16 @@ state 516
$default reduce using rule 363 (fully_qualified_class_name)
-state 517
+State 517
109 extends_from: "extends (T_EXTENDS)" fully_qualified_class_name .
$default reduce using rule 109 (extends_from)
-state 518
+State 518
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 . implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@30 . implements_list '{' class_statement_list '}'
"implements (T_IMPLEMENTS)" shift, and go to state 602
@@ -16182,7 +16182,7 @@ state 518
implements_list go to state 603
-state 519
+State 519
112 interface_extends_list: "extends (T_EXTENDS)" . interface_list
@@ -16195,21 +16195,21 @@ state 519
fully_qualified_class_name go to state 605
-state 520
+State 520
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list . '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@31 interface_extends_list . '{' class_statement_list '}'
'{' shift, and go to state 606
-state 521
+State 521
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 . '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 . '(' parameter_list ')' '{' inner_statement_list '}'
'(' shift, and go to state 607
-state 522
+State 522
333 expr_without_variable: function is_reference '(' @53 . parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -16229,19 +16229,19 @@ state 522
fully_qualified_class_name go to state 613
-state 523
+State 523
- 450 array_function_dereference: function_call @69 '[' dim_offset . ']'
+ 450 array_function_dereference: function_call $@69 '[' dim_offset . ']'
']' shift, and go to state 614
-state 524
+State 524
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -16263,8 +16263,8 @@ state 524
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
471 variable_name: '{' expr . '}'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -16296,25 +16296,25 @@ state 524
'}' shift, and go to state 615
-state 525
+State 525
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @59 function_call_parameter_list ')'
+ 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . $@59 function_call_parameter_list ')'
- $default reduce using rule 351 (@59)
+ $default reduce using rule 351 ($@59)
- @59 go to state 616
+ $@59 go to state 616
-state 526
+State 526
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @58 function_call_parameter_list ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . $@58 function_call_parameter_list ')'
- $default reduce using rule 349 (@58)
+ $default reduce using rule 349 ($@58)
- @58 go to state 617
+ $@58 go to state 617
-state 527
+State 527
444 variable_without_objects: simple_indirect_reference reference_variable .
457 reference_variable: reference_variable . '[' dim_offset ']'
@@ -16326,13 +16326,13 @@ state 527
$default reduce using rule 444 (variable_without_objects)
-state 528
+State 528
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 279 | expr "or (T_LOGICAL_OR)" @46 expr .
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 279 | expr "or (T_LOGICAL_OR)" $@46 expr .
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -16354,8 +16354,8 @@ state 528
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"xor (T_LOGICAL_XOR)" shift, and go to state 236
"and (T_LOGICAL_AND)" shift, and go to state 237
@@ -16386,13 +16386,13 @@ state 528
$default reduce using rule 279 (expr_without_variable)
-state 529
+State 529
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
- 281 | expr "and (T_LOGICAL_AND)" @47 expr .
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
+ 281 | expr "and (T_LOGICAL_AND)" $@47 expr .
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -16414,8 +16414,8 @@ state 529
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -16444,9 +16444,9 @@ state 529
$default reduce using rule 281 (expr_without_variable)
-state 530
+State 530
- 315 expr_without_variable: expr '?' ':' @51 . expr
+ 315 expr_without_variable: expr '?' ':' $@51 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -16525,12 +16525,12 @@ state 530
class_constant go to state 115
-state 531
+State 531
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -16552,9 +16552,9 @@ state 531
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 313 | expr '?' @49 expr . ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 313 | expr '?' $@49 expr . ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -16585,13 +16585,13 @@ state 531
"instanceof (T_INSTANCEOF)" shift, and go to state 260
-state 532
+State 532
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 275 | expr "|| (T_BOOLEAN_OR)" @44 expr .
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 275 | expr "|| (T_BOOLEAN_OR)" $@44 expr .
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -16613,8 +16613,8 @@ state 532
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"&& (T_BOOLEAN_AND)" shift, and go to state 240
'|' shift, and go to state 241
@@ -16641,13 +16641,13 @@ state 532
$default reduce using rule 275 (expr_without_variable)
-state 533
+State 533
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 277 | expr "&& (T_BOOLEAN_AND)" @45 expr .
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 277 | expr "&& (T_BOOLEAN_AND)" $@45 expr .
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -16669,8 +16669,8 @@ state 533
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'|' shift, and go to state 241
'^' shift, and go to state 242
@@ -16696,9 +16696,9 @@ state 533
$default reduce using rule 277 (expr_without_variable)
-state 534
+State 534
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference @43 ctor_arguments
+ 257 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference $@43 ctor_arguments
"identifier (T_STRING)" shift, and go to state 116
"variable (T_VARIABLE)" shift, and go to state 34
@@ -16719,64 +16719,64 @@ state 534
simple_indirect_reference go to state 161
-state 535
+State 535
255 expr_without_variable: variable '=' '&' variable .
$default reduce using rule 255 (expr_without_variable)
-state 536
+State 536
- 358 function_call: variable_without_objects '(' @62 function_call_parameter_list . ')'
+ 358 function_call: variable_without_objects '(' $@62 function_call_parameter_list . ')'
')' shift, and go to state 621
-state 537
+State 537
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @61 function_call_parameter_list ')'
+ 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . $@61 function_call_parameter_list ')'
- $default reduce using rule 355 (@61)
+ $default reduce using rule 355 ($@61)
- @61 go to state 622
+ $@61 go to state 622
-state 538
+State 538
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @60 function_call_parameter_list ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . $@60 function_call_parameter_list ')'
- $default reduce using rule 353 (@60)
+ $default reduce using rule 353 ($@60)
- @60 go to state 623
+ $@60 go to state 623
-state 539
+State 539
448 array_function_dereference: array_function_dereference '[' dim_offset ']' .
$default reduce using rule 448 (array_function_dereference)
-state 540
+State 540
- 466 object_property: variable_without_objects . @70
+ 466 object_property: variable_without_objects . $@70
- $default reduce using rule 465 (@70)
+ $default reduce using rule 465 ($@70)
- @70 go to state 624
+ $@70 go to state 624
-state 541
+State 541
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property . @66 method_or_not variable_properties
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@65 object_property . $@66 method_or_not variable_properties
- $default reduce using rule 429 (@66)
+ $default reduce using rule 429 ($@66)
- @66 go to state 625
+ $@66 go to state 625
-state 542
+State 542
464 object_property: object_dim_list .
467 object_dim_list: object_dim_list . '[' dim_offset ']'
@@ -16788,42 +16788,42 @@ state 542
$default reduce using rule 464 (object_property)
-state 543
+State 543
469 object_dim_list: variable_name .
$default reduce using rule 469 (object_dim_list)
-state 544
+State 544
457 reference_variable: reference_variable '[' dim_offset ']' .
$default reduce using rule 457 (reference_variable)
-state 545
+State 545
458 reference_variable: reference_variable '{' expr '}' .
$default reduce using rule 458 (reference_variable)
-state 546
+State 546
488 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
$default reduce using rule 488 (non_empty_array_pair_list)
-state 547
+State 547
487 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable .
$default reduce using rule 487 (non_empty_array_pair_list)
-state 548
+State 548
482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr
486 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . '&' w_variable
@@ -16906,34 +16906,34 @@ state 548
class_constant go to state 115
-state 549
+State 549
382 ctor_arguments: '(' function_call_parameter_list . ')'
')' shift, and go to state 630
-state 550
+State 550
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property . @64 dynamic_class_name_variable_properties
+ 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@63 object_property . $@64 dynamic_class_name_variable_properties
- $default reduce using rule 369 (@64)
+ $default reduce using rule 369 ($@64)
- @64 go to state 631
+ $@64 go to state 631
-state 551
+State 551
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' . @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' . $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- $default reduce using rule 39 (@7)
+ $default reduce using rule 39 ($@7)
- @7 go to state 632
+ $@7 go to state 632
-state 552
+State 552
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 . statement @6 elseif_list else_single
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' $@5 . statement $@6 elseif_list else_single
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -17033,27 +17033,27 @@ state 552
class_constant go to state 115
-state 553
+State 553
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' . @12 expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" '(' . $@12 expr ')' ';'
- $default reduce using rule 46 (@12)
+ $default reduce using rule 46 ($@12)
- @12 go to state 634
+ $@12 go to state 634
-state 554
+State 554
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' . @10 while_statement
+ 44 unticked_statement: "while (T_WHILE)" '(' $@9 expr ')' . $@10 while_statement
- $default reduce using rule 43 (@10)
+ $default reduce using rule 43 ($@10)
- @10 go to state 635
+ $@10 go to state 635
-state 555
+State 555
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 . for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 . for_expr ';' $@14 for_expr ')' $@15 for_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -17136,9 +17136,9 @@ state 555
class_constant go to state 115
-state 556
+State 556
- 237 non_empty_for_expr: non_empty_for_expr ',' @38 . expr
+ 237 non_empty_for_expr: non_empty_for_expr ',' $@38 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -17217,9 +17217,9 @@ state 556
class_constant go to state 115
-state 557
+State 557
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 . variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 . variable foreach_optional_arg ')' $@20 foreach_statement
"identifier (T_STRING)" shift, and go to state 116
"variable (T_VARIABLE)" shift, and go to state 34
@@ -17243,9 +17243,9 @@ state 557
simple_indirect_reference go to state 113
-state 558
+State 558
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 . foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 . foreach_variable foreach_optional_arg ')' $@18 foreach_statement
'&' shift, and go to state 639
"identifier (T_STRING)" shift, and go to state 116
@@ -17271,7 +17271,7 @@ state 558
simple_indirect_reference go to state 113
-state 559
+State 559
127 declare_list: "identifier (T_STRING)" '=' . static_scalar
@@ -17303,16 +17303,16 @@ state 559
static_class_constant go to state 471
-state 560
+State 560
128 declare_list: declare_list ',' . "identifier (T_STRING)" '=' static_scalar
"identifier (T_STRING)" shift, and go to state 643
-state 561
+State 561
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' . declare_statement
+ 74 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' . declare_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -17414,9 +17414,9 @@ state 561
class_constant go to state 115
-state 562
+State 562
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 . switch_case_list
+ 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' $@16 . switch_case_list
':' shift, and go to state 647
'{' shift, and go to state 648
@@ -17424,21 +17424,21 @@ state 562
switch_case_list go to state 649
-state 563
+State 563
399 static_scalar: '+' static_scalar .
$default reduce using rule 399 (static_scalar)
-state 564
+State 564
400 static_scalar: '-' static_scalar .
$default reduce using rule 400 (static_scalar)
-state 565
+State 565
421 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
422 | static_scalar .
@@ -17448,14 +17448,14 @@ state 565
$default reduce using rule 422 (non_empty_static_array_pair_list)
-state 566
+State 566
402 static_scalar: '[' static_array_pair_list . ']'
']' shift, and go to state 651
-state 567
+State 567
416 static_array_pair_list: non_empty_static_array_pair_list . possible_comma
419 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
@@ -17468,7 +17468,7 @@ state 567
possible_comma go to state 653
-state 568
+State 568
401 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')'
@@ -17504,14 +17504,14 @@ state 568
non_empty_static_array_pair_list go to state 567
-state 569
+State 569
393 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)"
"heredoc end (T_END_HEREDOC)" shift, and go to state 350
-state 570
+State 570
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
397 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -17521,7 +17521,7 @@ state 570
namespace_name go to state 655
-state 571
+State 571
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -17533,35 +17533,35 @@ state 571
$default reduce using rule 398 (static_scalar)
-state 572
+State 572
405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 656
-state 573
+State 573
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' . "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' . "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
"catch (T_CATCH)" shift, and go to state 657
-state 574
+State 574
23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" .
$default reduce using rule 23 (use_declaration)
-state 575
+State 575
178 global_var: '$' '{' expr '}' .
$default reduce using rule 178 (global_var)
-state 576
+State 576
180 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' . static_scalar
@@ -17593,7 +17593,7 @@ state 576
static_class_constant go to state 471
-state 577
+State 577
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 . parameter_list ')' lexical_vars '{' inner_statement_list '}'
@@ -17613,23 +17613,23 @@ state 577
fully_qualified_class_name go to state 613
-state 578
+State 578
92 unset_variables: unset_variables ',' unset_variable .
$default reduce using rule 92 (unset_variables)
-state 579
+State 579
66 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' ';' .
$default reduce using rule 66 (unticked_statement)
-state 580
+State 580
- 513 isset_variables: isset_variables ',' @73 . variable
+ 513 isset_variables: isset_variables ',' $@73 . variable
"identifier (T_STRING)" shift, and go to state 116
"variable (T_VARIABLE)" shift, and go to state 34
@@ -17653,16 +17653,16 @@ state 580
simple_indirect_reference go to state 113
-state 581
+State 581
- 478 assignment_list_element: "list (T_LIST)" '(' . @71 assignment_list ')'
+ 478 assignment_list_element: "list (T_LIST)" '(' . $@71 assignment_list ')'
- $default reduce using rule 477 (@71)
+ $default reduce using rule 477 ($@71)
- @71 go to state 661
+ $@71 go to state 661
-state 582
+State 582
474 assignment_list: assignment_list ',' . assignment_list_element
@@ -17692,47 +17692,47 @@ state 582
assignment_list_element go to state 662
-state 583
+State 583
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' . '=' expr
+ 253 expr_without_variable: "list (T_LIST)" '(' $@42 assignment_list ')' . '=' expr
'=' shift, and go to state 663
-state 584
+State 584
501 encaps_var_offset: "identifier (T_STRING)" .
$default reduce using rule 501 (encaps_var_offset)
-state 585
+State 585
503 encaps_var_offset: "variable (T_VARIABLE)" .
$default reduce using rule 503 (encaps_var_offset)
-state 586
+State 586
502 encaps_var_offset: "number (T_NUM_STRING)" .
$default reduce using rule 502 (encaps_var_offset)
-state 587
+State 587
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset . ']'
+ 496 encaps_var: "variable (T_VARIABLE)" '[' $@72 encaps_var_offset . ']'
']' shift, and go to state 664
-state 588
+State 588
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -17754,8 +17754,8 @@ state 588
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -17787,9 +17787,9 @@ state 588
']' shift, and go to state 665
-state 589
+State 589
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 . function_call_parameter_list ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -17873,42 +17873,42 @@ state 589
class_constant go to state 115
-state 590
+State 590
- 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list '}' .
+ 15 top_statement: "namespace (T_NAMESPACE)" '{' $@3 top_statement_list '}' .
$default reduce using rule 15 (top_statement)
-state 591
+State 591
- 3 top_statement_list: top_statement_list . @1 top_statement
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list . '}'
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list . '}'
'}' shift, and go to state 667
- $default reduce using rule 2 (@1)
+ $default reduce using rule 2 ($@1)
- @1 go to state 4
+ $@1 go to state 4
-state 592
+State 592
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list . ')'
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' $@57 function_call_parameter_list . ')'
')' shift, and go to state 668
-state 593
+State 593
310 expr_without_variable: '(' new_expr ')' @48 instance_call .
$default reduce using rule 310 (expr_without_variable)
-state 594
+State 594
- 249 instance_call: @40 . chaining_instance_call
+ 249 instance_call: $@40 . chaining_instance_call
'[' shift, and go to state 669
"-> (T_OBJECT_OPERATOR)" shift, and go to state 670
@@ -17919,28 +17919,28 @@ state 594
variable_property go to state 674
-state 595
+State 595
32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';'
')' shift, and go to state 675
-state 596
+State 596
170 non_empty_function_call_parameter_list: '&' w_variable .
$default reduce using rule 170 (non_empty_function_call_parameter_list)
-state 597
+State 597
- 344 function_call: namespace_name '(' @55 function_call_parameter_list ')' .
+ 344 function_call: namespace_name '(' $@55 function_call_parameter_list ')' .
$default reduce using rule 344 (function_call)
-state 598
+State 598
171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable
172 | non_empty_function_call_parameter_list ',' . variable
@@ -18024,14 +18024,14 @@ state 598
class_constant go to state 115
-state 599
+State 599
24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
$default reduce using rule 24 (constant_declaration)
-state 600
+State 600
364 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name
@@ -18040,7 +18040,7 @@ state 600
namespace_name go to state 679
-state 601
+State 601
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
365 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -18050,7 +18050,7 @@ state 601
$default reduce using rule 365 (fully_qualified_class_name)
-state 602
+State 602
114 implements_list: "implements (T_IMPLEMENTS)" . interface_list
@@ -18063,14 +18063,14 @@ state 602
fully_qualified_class_name go to state 605
-state 603
+State 603
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list . '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@30 implements_list . '{' class_statement_list '}'
'{' shift, and go to state 681
-state 604
+State 604
112 interface_extends_list: "extends (T_EXTENDS)" interface_list .
116 interface_list: interface_list . ',' fully_qualified_class_name
@@ -18080,25 +18080,25 @@ state 604
$default reduce using rule 112 (interface_extends_list)
-state 605
+State 605
115 interface_list: fully_qualified_class_name .
$default reduce using rule 115 (interface_list)
-state 606
+State 606
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' . class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@31 interface_extends_list '{' . class_statement_list '}'
$default reduce using rule 184 (class_statement_list)
class_statement_list go to state 683
-state 607
+State 607
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' . parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' . parameter_list ')' '{' inner_statement_list '}'
"identifier (T_STRING)" shift, and go to state 116
"array (T_ARRAY)" shift, and go to state 608
@@ -18116,28 +18116,28 @@ state 607
fully_qualified_class_name go to state 613
-state 608
+State 608
163 optional_class_type: "array (T_ARRAY)" .
$default reduce using rule 163 (optional_class_type)
-state 609
+State 609
164 optional_class_type: "callable (T_CALLABLE)" .
$default reduce using rule 164 (optional_class_type)
-state 610
+State 610
333 expr_without_variable: function is_reference '(' @53 parameter_list . ')' lexical_vars '{' inner_statement_list '}'
')' shift, and go to state 685
-state 611
+State 611
152 parameter_list: non_empty_parameter_list .
158 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)"
@@ -18150,7 +18150,7 @@ state 611
$default reduce using rule 152 (parameter_list)
-state 612
+State 612
154 non_empty_parameter_list: optional_class_type . "variable (T_VARIABLE)"
155 | optional_class_type . '&' "variable (T_VARIABLE)"
@@ -18161,30 +18161,30 @@ state 612
"variable (T_VARIABLE)" shift, and go to state 688
-state 613
+State 613
165 optional_class_type: fully_qualified_class_name .
$default reduce using rule 165 (optional_class_type)
-state 614
+State 614
- 450 array_function_dereference: function_call @69 '[' dim_offset ']' .
+ 450 array_function_dereference: function_call $@69 '[' dim_offset ']' .
$default reduce using rule 450 (array_function_dereference)
-state 615
+State 615
471 variable_name: '{' expr '}' .
$default reduce using rule 471 (variable_name)
-state 616
+State 616
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 . function_call_parameter_list ')'
+ 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@59 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -18268,9 +18268,9 @@ state 616
class_constant go to state 115
-state 617
+State 617
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 . function_call_parameter_list ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@58 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -18354,12 +18354,12 @@ state 617
class_constant go to state 115
-state 618
+State 618
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -18381,9 +18381,9 @@ state 618
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
- 315 | expr '?' ':' @51 expr .
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
+ 315 | expr '?' ':' $@51 expr .
"|| (T_BOOLEAN_OR)" shift, and go to state 239
"&& (T_BOOLEAN_AND)" shift, and go to state 240
@@ -18411,34 +18411,34 @@ state 618
$default reduce using rule 315 (expr_without_variable)
-state 619
+State 619
- 313 expr_without_variable: expr '?' @49 expr ':' . @50 expr
+ 313 expr_without_variable: expr '?' $@49 expr ':' . $@50 expr
- $default reduce using rule 312 (@50)
+ $default reduce using rule 312 ($@50)
- @50 go to state 691
+ $@50 go to state 691
-state 620
+State 620
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . @43 ctor_arguments
+ 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . $@43 ctor_arguments
- $default reduce using rule 256 (@43)
+ $default reduce using rule 256 ($@43)
- @43 go to state 692
+ $@43 go to state 692
-state 621
+State 621
- 358 function_call: variable_without_objects '(' @62 function_call_parameter_list ')' .
+ 358 function_call: variable_without_objects '(' $@62 function_call_parameter_list ')' .
$default reduce using rule 358 (function_call)
-state 622
+State 622
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 . function_call_parameter_list ')'
+ 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@61 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -18522,9 +18522,9 @@ state 622
class_constant go to state 115
-state 623
+State 623
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 . function_call_parameter_list ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@60 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -18608,16 +18608,16 @@ state 623
class_constant go to state 115
-state 624
+State 624
- 466 object_property: variable_without_objects @70 .
+ 466 object_property: variable_without_objects $@70 .
$default reduce using rule 466 (object_property)
-state 625
+State 625
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 . method_or_not variable_properties
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@65 object_property $@66 . method_or_not variable_properties
'(' shift, and go to state 695
@@ -18628,7 +18628,7 @@ state 625
method_or_not go to state 698
-state 626
+State 626
467 object_dim_list: object_dim_list '[' . dim_offset ']'
@@ -18712,7 +18712,7 @@ state 626
class_constant go to state 115
-state 627
+State 627
468 object_dim_list: object_dim_list '{' . expr '}'
@@ -18793,7 +18793,7 @@ state 627
class_constant go to state 115
-state 628
+State 628
486 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable
@@ -18820,12 +18820,12 @@ state 628
simple_indirect_reference go to state 113
-state 629
+State 629
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -18847,8 +18847,8 @@ state 629
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
482 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr .
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -18881,43 +18881,43 @@ state 629
$default reduce using rule 482 (non_empty_array_pair_list)
-state 630
+State 630
382 ctor_arguments: '(' function_call_parameter_list ')' .
$default reduce using rule 382 (ctor_arguments)
-state 631
+State 631
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 . dynamic_class_name_variable_properties
+ 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@63 object_property $@64 . dynamic_class_name_variable_properties
$default reduce using rule 373 (dynamic_class_name_variable_properties)
dynamic_class_name_variable_properties go to state 702
-state 632
+State 632
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 . inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 . inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 703
-state 633
+State 633
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement . @6 elseif_list else_single
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' $@5 statement . $@6 elseif_list else_single
- $default reduce using rule 37 (@6)
+ $default reduce using rule 37 ($@6)
- @6 go to state 704
+ $@6 go to state 704
-state 634
+State 634
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 . expr ')' ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" '(' $@12 . expr ')' ';'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -18996,9 +18996,9 @@ state 634
class_constant go to state 115
-state 635
+State 635
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 . while_statement
+ 44 unticked_statement: "while (T_WHILE)" '(' $@9 expr ')' $@10 . while_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -19100,20 +19100,20 @@ state 635
class_constant go to state 115
-state 636
+State 636
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr . ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr . ';' $@14 for_expr ')' $@15 for_statement
';' shift, and go to state 709
-state 637
+State 637
- 237 non_empty_for_expr: non_empty_for_expr ',' @38 expr .
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 237 non_empty_for_expr: non_empty_for_expr ',' $@38 expr .
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -19135,8 +19135,8 @@ state 637
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -19168,9 +19168,9 @@ state 637
$default reduce using rule 237 (non_empty_for_expr)
-state 638
+State 638
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable . foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 variable . foreach_optional_arg ')' $@20 foreach_statement
"=> (T_DOUBLE_ARROW)" shift, and go to state 710
@@ -19179,7 +19179,7 @@ state 638
foreach_optional_arg go to state 711
-state 639
+State 639
120 foreach_variable: '&' . variable
@@ -19205,9 +19205,9 @@ state 639
simple_indirect_reference go to state 113
-state 640
+State 640
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable . foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable . foreach_optional_arg ')' $@18 foreach_statement
"=> (T_DOUBLE_ARROW)" shift, and go to state 710
@@ -19216,28 +19216,28 @@ state 640
foreach_optional_arg go to state 713
-state 641
+State 641
119 foreach_variable: variable .
$default reduce using rule 119 (foreach_variable)
-state 642
+State 642
127 declare_list: "identifier (T_STRING)" '=' static_scalar .
$default reduce using rule 127 (declare_list)
-state 643
+State 643
128 declare_list: declare_list ',' "identifier (T_STRING)" . '=' static_scalar
'=' shift, and go to state 714
-state 644
+State 644
126 declare_statement: ':' . inner_statement_list "enddeclare (T_ENDDECLARE)" ';'
@@ -19246,21 +19246,21 @@ state 644
inner_statement_list go to state 715
-state 645
+State 645
125 declare_statement: statement .
$default reduce using rule 125 (declare_statement)
-state 646
+State 646
- 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' declare_statement .
+ 74 unticked_statement: "declare (T_DECLARE)" $@21 '(' declare_list ')' declare_statement .
$default reduce using rule 74 (unticked_statement)
-state 647
+State 647
131 switch_case_list: ':' . case_list "endswitch (T_ENDSWITCH)" ';'
132 | ':' . ';' case_list "endswitch (T_ENDSWITCH)" ';'
@@ -19272,7 +19272,7 @@ state 647
case_list go to state 717
-state 648
+State 648
129 switch_case_list: '{' . case_list '}'
130 | '{' . ';' case_list '}'
@@ -19284,14 +19284,14 @@ state 648
case_list go to state 719
-state 649
+State 649
- 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 switch_case_list .
+ 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' $@16 switch_case_list .
$default reduce using rule 53 (unticked_statement)
-state 650
+State 650
421 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
@@ -19323,14 +19323,14 @@ state 650
static_class_constant go to state 471
-state 651
+State 651
402 static_scalar: '[' static_array_pair_list ']' .
$default reduce using rule 402 (static_scalar)
-state 652
+State 652
418 possible_comma: ',' .
419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar
@@ -19366,21 +19366,21 @@ state 652
static_class_constant go to state 471
-state 653
+State 653
416 static_array_pair_list: non_empty_static_array_pair_list possible_comma .
$default reduce using rule 416 (static_array_pair_list)
-state 654
+State 654
401 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')'
')' shift, and go to state 722
-state 655
+State 655
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -19392,44 +19392,44 @@ state 655
$default reduce using rule 397 (static_scalar)
-state 656
+State 656
405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
$default reduce using rule 405 (static_class_constant)
-state 657
+State 657
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" . '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" . '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
'(' shift, and go to state 723
-state 658
+State 658
180 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 180 (static_var_list)
-state 659
+State 659
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list . ')' lexical_vars '{' inner_statement_list '}'
')' shift, and go to state 724
-state 660
+State 660
- 513 isset_variables: isset_variables ',' @73 variable .
+ 513 isset_variables: isset_variables ',' $@73 variable .
$default reduce using rule 513 (isset_variables)
-state 661
+State 661
- 478 assignment_list_element: "list (T_LIST)" '(' @71 . assignment_list ')'
+ 478 assignment_list_element: "list (T_LIST)" '(' $@71 . assignment_list ')'
"identifier (T_STRING)" shift, and go to state 116
"variable (T_VARIABLE)" shift, and go to state 34
@@ -19458,16 +19458,16 @@ state 661
assignment_list_element go to state 490
-state 662
+State 662
474 assignment_list: assignment_list ',' assignment_list_element .
$default reduce using rule 474 (assignment_list)
-state 663
+State 663
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' . expr
+ 253 expr_without_variable: "list (T_LIST)" '(' $@42 assignment_list ')' '=' . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -19546,42 +19546,42 @@ state 663
class_constant go to state 115
-state 664
+State 664
- 496 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset ']' .
+ 496 encaps_var: "variable (T_VARIABLE)" '[' $@72 encaps_var_offset ']' .
$default reduce using rule 496 (encaps_var)
-state 665
+State 665
499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}'
'}' shift, and go to state 727
-state 666
+State 666
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list . ')'
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 function_call_parameter_list . ')'
')' shift, and go to state 728
-state 667
+State 667
- 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list '}' .
+ 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' $@2 top_statement_list '}' .
$default reduce using rule 13 (top_statement)
-state 668
+State 668
- 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list ')' .
+ 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' $@57 function_call_parameter_list ')' .
$default reduce using rule 348 (function_call)
-state 669
+State 669
242 chaining_dereference: '[' . dim_offset ']'
@@ -19665,9 +19665,9 @@ state 669
class_constant go to state 115
-state 670
+State 670
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property @67 method_or_not
+ 435 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property $@67 method_or_not
"identifier (T_STRING)" shift, and go to state 436
"variable (T_VARIABLE)" shift, and go to state 34
@@ -19683,7 +19683,7 @@ state 670
simple_indirect_reference go to state 384
-state 671
+State 671
239 chaining_method_or_property: chaining_method_or_property . variable_property
246 chaining_instance_call: chaining_method_or_property .
@@ -19695,42 +19695,42 @@ state 671
variable_property go to state 731
-state 672
+State 672
241 chaining_dereference: chaining_dereference . '[' dim_offset ']'
- 244 chaining_instance_call: chaining_dereference . @39 chaining_method_or_property
+ 244 chaining_instance_call: chaining_dereference . $@39 chaining_method_or_property
245 | chaining_dereference .
'[' shift, and go to state 732
- "-> (T_OBJECT_OPERATOR)" reduce using rule 243 (@39)
+ "-> (T_OBJECT_OPERATOR)" reduce using rule 243 ($@39)
$default reduce using rule 245 (chaining_instance_call)
- @39 go to state 733
+ $@39 go to state 733
-state 673
+State 673
- 249 instance_call: @40 chaining_instance_call .
+ 249 instance_call: $@40 chaining_instance_call .
$default reduce using rule 249 (instance_call)
-state 674
+State 674
240 chaining_method_or_property: variable_property .
$default reduce using rule 240 (chaining_method_or_property)
-state 675
+State 675
32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';'
';' shift, and go to state 734
-state 676
+State 676
173 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable
@@ -19757,7 +19757,7 @@ state 676
simple_indirect_reference go to state 113
-state 677
+State 677
171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable .
424 expr: expr_without_variable .
@@ -19767,12 +19767,12 @@ state 677
$default reduce using rule 424 (expr)
-state 678
+State 678
172 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
254 expr_without_variable: variable . '=' expr
255 | variable . '=' '&' variable
- 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments
+ 257 | variable . '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments
259 | variable . "+= (T_PLUS_EQUAL)" expr
260 | variable . "-= (T_MINUS_EQUAL)" expr
261 | variable . "*= (T_MUL_EQUAL)" expr
@@ -19807,7 +19807,7 @@ state 678
$default reduce using rule 425 (r_variable)
-state 679
+State 679
6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)"
364 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name .
@@ -19817,7 +19817,7 @@ state 679
$default reduce using rule 364 (fully_qualified_class_name)
-state 680
+State 680
114 implements_list: "implements (T_IMPLEMENTS)" interface_list .
116 interface_list: interface_list . ',' fully_qualified_class_name
@@ -19827,16 +19827,16 @@ state 680
$default reduce using rule 114 (implements_list)
-state 681
+State 681
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' . class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@30 implements_list '{' . class_statement_list '}'
$default reduce using rule 184 (class_statement_list)
class_statement_list go to state 736
-state 682
+State 682
116 interface_list: interface_list ',' . fully_qualified_class_name
@@ -19848,9 +19848,9 @@ state 682
fully_qualified_class_name go to state 737
-state 683
+State 683
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list . '}'
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@31 interface_extends_list '{' class_statement_list . '}'
183 class_statement_list: class_statement_list . class_statement
"const (T_CONST)" shift, and go to state 738
@@ -19875,14 +19875,14 @@ state 683
class_constant_declaration go to state 754
-state 684
+State 684
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list . ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' parameter_list . ')' '{' inner_statement_list '}'
')' shift, and go to state 755
-state 685
+State 685
333 expr_without_variable: function is_reference '(' @53 parameter_list ')' . lexical_vars '{' inner_statement_list '}'
@@ -19893,7 +19893,7 @@ state 685
lexical_vars go to state 757
-state 686
+State 686
158 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)"
159 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)"
@@ -19913,7 +19913,7 @@ state 686
fully_qualified_class_name go to state 613
-state 687
+State 687
155 non_empty_parameter_list: optional_class_type '&' . "variable (T_VARIABLE)"
156 | optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
@@ -19921,7 +19921,7 @@ state 687
"variable (T_VARIABLE)" shift, and go to state 759
-state 688
+State 688
154 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" .
157 | optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
@@ -19931,23 +19931,23 @@ state 688
$default reduce using rule 154 (non_empty_parameter_list)
-state 689
+State 689
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list . ')'
+ 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@59 function_call_parameter_list . ')'
')' shift, and go to state 761
-state 690
+State 690
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list . ')'
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@58 function_call_parameter_list . ')'
')' shift, and go to state 762
-state 691
+State 691
- 313 expr_without_variable: expr '?' @49 expr ':' @50 . expr
+ 313 expr_without_variable: expr '?' $@49 expr ':' $@50 . expr
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -20026,9 +20026,9 @@ state 691
class_constant go to state 115
-state 692
+State 692
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 . ctor_arguments
+ 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@43 . ctor_arguments
'(' shift, and go to state 443
@@ -20037,30 +20037,30 @@ state 692
ctor_arguments go to state 764
-state 693
+State 693
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list . ')'
+ 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@61 function_call_parameter_list . ')'
')' shift, and go to state 765
-state 694
+State 694
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list . ')'
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@60 function_call_parameter_list . ')'
')' shift, and go to state 766
-state 695
+State 695
- 439 method: '(' . @68 function_call_parameter_list ')'
+ 439 method: '(' . $@68 function_call_parameter_list ')'
- $default reduce using rule 438 (@68)
+ $default reduce using rule 438 ($@68)
- @68 go to state 767
+ $@68 go to state 767
-state 696
+State 696
436 array_method_dereference: array_method_dereference . '[' dim_offset ']'
441 method_or_not: array_method_dereference .
@@ -20070,7 +20070,7 @@ state 696
$default reduce using rule 441 (method_or_not)
-state 697
+State 697
437 array_method_dereference: method . '[' dim_offset ']'
440 method_or_not: method .
@@ -20080,28 +20080,28 @@ state 697
$default reduce using rule 440 (method_or_not)
-state 698
+State 698
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not . variable_properties
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@65 object_property $@66 method_or_not . variable_properties
$default reduce using rule 433 (variable_properties)
variable_properties go to state 770
-state 699
+State 699
467 object_dim_list: object_dim_list '[' dim_offset . ']'
']' shift, and go to state 771
-state 700
+State 700
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -20123,8 +20123,8 @@ state 700
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
468 object_dim_list: object_dim_list '{' expr . '}'
"or (T_LOGICAL_OR)" shift, and go to state 235
@@ -20156,16 +20156,16 @@ state 700
'}' shift, and go to state 772
-state 701
+State 701
486 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable .
$default reduce using rule 486 (non_empty_array_pair_list)
-state 702
+State 702
- 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties .
+ 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" $@63 object_property $@64 dynamic_class_name_variable_properties .
372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
"-> (T_OBJECT_OPERATOR)" shift, and go to state 773
@@ -20175,36 +20175,36 @@ state 702
dynamic_class_name_variable_property go to state 774
-state 703
+State 703
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list . @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list . $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';'
- "elseif (T_ELSEIF)" reduce using rule 40 (@8)
- "else (T_ELSE)" reduce using rule 40 (@8)
- "endif (T_ENDIF)" reduce using rule 40 (@8)
- $default reduce using rule 26 (@4)
+ "elseif (T_ELSEIF)" reduce using rule 40 ($@8)
+ "else (T_ELSE)" reduce using rule 40 ($@8)
+ "endif (T_ENDIF)" reduce using rule 40 ($@8)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
- @8 go to state 775
+ $@4 go to state 366
+ $@8 go to state 775
-state 704
+State 704
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 . elseif_list else_single
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' $@5 statement $@6 . elseif_list else_single
$default reduce using rule 142 (elseif_list)
elseif_list go to state 776
-state 705
+State 705
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr . ')' ';'
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" '(' $@12 expr . ')' ';'
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -20226,8 +20226,8 @@ state 705
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -20258,7 +20258,7 @@ state 705
')' shift, and go to state 777
-state 706
+State 706
141 while_statement: ':' . inner_statement_list "endwhile (T_ENDWHILE)" ';'
@@ -20267,30 +20267,30 @@ state 706
inner_statement_list go to state 778
-state 707
+State 707
140 while_statement: statement .
$default reduce using rule 140 (while_statement)
-state 708
+State 708
- 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 while_statement .
+ 44 unticked_statement: "while (T_WHILE)" '(' $@9 expr ')' $@10 while_statement .
$default reduce using rule 44 (unticked_statement)
-state 709
+State 709
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' . @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' . $@14 for_expr ')' $@15 for_statement
- $default reduce using rule 49 (@14)
+ $default reduce using rule 49 ($@14)
- @14 go to state 779
+ $@14 go to state 779
-state 710
+State 710
118 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" . foreach_variable
@@ -20318,28 +20318,28 @@ state 710
simple_indirect_reference go to state 113
-state 711
+State 711
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg . ')' @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg . ')' $@20 foreach_statement
')' shift, and go to state 781
-state 712
+State 712
120 foreach_variable: '&' variable .
$default reduce using rule 120 (foreach_variable)
-state 713
+State 713
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg . ')' @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg . ')' $@18 foreach_statement
')' shift, and go to state 782
-state 714
+State 714
128 declare_list: declare_list ',' "identifier (T_STRING)" '=' . static_scalar
@@ -20371,19 +20371,19 @@ state 714
static_class_constant go to state 471
-state 715
+State 715
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
126 declare_statement: ':' inner_statement_list . "enddeclare (T_ENDDECLARE)" ';'
"enddeclare (T_ENDDECLARE)" shift, and go to state 784
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 716
+State 716
132 switch_case_list: ':' ';' . case_list "endswitch (T_ENDSWITCH)" ';'
@@ -20392,18 +20392,18 @@ state 716
case_list go to state 785
-state 717
+State 717
131 switch_case_list: ':' case_list . "endswitch (T_ENDSWITCH)" ';'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 135 case_list: case_list . "case (T_CASE)" expr case_separator $@32 inner_statement_list
+ 137 | case_list . "default (T_DEFAULT)" case_separator $@33 inner_statement_list
"endswitch (T_ENDSWITCH)" shift, and go to state 786
"case (T_CASE)" shift, and go to state 787
"default (T_DEFAULT)" shift, and go to state 788
-state 718
+State 718
130 switch_case_list: '{' ';' . case_list '}'
@@ -20412,25 +20412,25 @@ state 718
case_list go to state 789
-state 719
+State 719
129 switch_case_list: '{' case_list . '}'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 135 case_list: case_list . "case (T_CASE)" expr case_separator $@32 inner_statement_list
+ 137 | case_list . "default (T_DEFAULT)" case_separator $@33 inner_statement_list
"case (T_CASE)" shift, and go to state 787
"default (T_DEFAULT)" shift, and go to state 788
'}' shift, and go to state 790
-state 720
+State 720
421 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
$default reduce using rule 421 (non_empty_static_array_pair_list)
-state 721
+State 721
419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar
420 | non_empty_static_array_pair_list ',' static_scalar .
@@ -20440,23 +20440,23 @@ state 721
$default reduce using rule 420 (non_empty_static_array_pair_list)
-state 722
+State 722
401 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' .
$default reduce using rule 401 (static_scalar)
-state 723
+State 723
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' . @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' . $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
- $default reduce using rule 77 (@23)
+ $default reduce using rule 77 ($@23)
- @23 go to state 792
+ $@23 go to state 792
-state 724
+State 724
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' . lexical_vars '{' inner_statement_list '}'
@@ -20467,22 +20467,22 @@ state 724
lexical_vars go to state 793
-state 725
+State 725
474 assignment_list: assignment_list . ',' assignment_list_element
- 478 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list . ')'
+ 478 assignment_list_element: "list (T_LIST)" '(' $@71 assignment_list . ')'
',' shift, and go to state 582
')' shift, and go to state 794
-state 726
+State 726
- 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' expr .
- 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 253 expr_without_variable: "list (T_LIST)" '(' $@42 assignment_list ')' '=' expr .
+ 275 | expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -20504,8 +20504,8 @@ state 726
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
'?' shift, and go to state 238
"|| (T_BOOLEAN_OR)" shift, and go to state 239
@@ -20534,44 +20534,44 @@ state 726
$default reduce using rule 253 (expr_without_variable)
-state 727
+State 727
499 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' .
$default reduce using rule 499 (encaps_var)
-state 728
+State 728
- 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' .
+ 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' $@56 function_call_parameter_list ')' .
$default reduce using rule 346 (function_call)
-state 729
+State 729
242 chaining_dereference: '[' dim_offset . ']'
']' shift, and go to state 795
-state 730
+State 730
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . @67 method_or_not
+ 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . $@67 method_or_not
- $default reduce using rule 434 (@67)
+ $default reduce using rule 434 ($@67)
- @67 go to state 796
+ $@67 go to state 796
-state 731
+State 731
239 chaining_method_or_property: chaining_method_or_property variable_property .
$default reduce using rule 239 (chaining_method_or_property)
-state 732
+State 732
241 chaining_dereference: chaining_dereference '[' . dim_offset ']'
@@ -20655,9 +20655,9 @@ state 732
class_constant go to state 115
-state 733
+State 733
- 244 chaining_instance_call: chaining_dereference @39 . chaining_method_or_property
+ 244 chaining_instance_call: chaining_dereference $@39 . chaining_method_or_property
"-> (T_OBJECT_OPERATOR)" shift, and go to state 670
@@ -20665,23 +20665,23 @@ state 733
variable_property go to state 674
-state 734
+State 734
32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' .
$default reduce using rule 32 (inner_statement)
-state 735
+State 735
173 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable .
$default reduce using rule 173 (non_empty_function_call_parameter_list)
-state 736
+State 736
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list . '}'
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@30 implements_list '{' class_statement_list . '}'
183 class_statement_list: class_statement_list . class_statement
"const (T_CONST)" shift, and go to state 738
@@ -20706,21 +20706,21 @@ state 736
class_constant_declaration go to state 754
-state 737
+State 737
116 interface_list: interface_list ',' fully_qualified_class_name .
$default reduce using rule 116 (interface_list)
-state 738
+State 738
231 class_constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar
"identifier (T_STRING)" shift, and go to state 800
-state 739
+State 739
191 trait_use_statement: "use (T_USE)" . trait_list trait_adaptations
@@ -20733,95 +20733,95 @@ state 739
fully_qualified_class_name go to state 802
-state 740
+State 740
220 member_modifier: "public (T_PUBLIC)" .
$default reduce using rule 220 (member_modifier)
-state 741
+State 741
221 member_modifier: "protected (T_PROTECTED)" .
$default reduce using rule 221 (member_modifier)
-state 742
+State 742
222 member_modifier: "private (T_PRIVATE)" .
$default reduce using rule 222 (member_modifier)
-state 743
+State 743
225 member_modifier: "final (T_FINAL)" .
$default reduce using rule 225 (member_modifier)
-state 744
+State 744
224 member_modifier: "abstract (T_ABSTRACT)" .
$default reduce using rule 224 (member_modifier)
-state 745
+State 745
223 member_modifier: "static (T_STATIC)" .
$default reduce using rule 223 (member_modifier)
-state 746
+State 746
215 variable_modifiers: "var (T_VAR)" .
$default reduce using rule 215 (variable_modifiers)
-state 747
+State 747
- 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}' .
+ 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" $@31 interface_extends_list '{' class_statement_list '}' .
$default reduce using rule 103 (unticked_class_declaration_statement)
-state 748
+State 748
183 class_statement_list: class_statement_list class_statement .
$default reduce using rule 183 (class_statement_list)
-state 749
+State 749
188 class_statement: trait_use_statement .
$default reduce using rule 188 (class_statement)
-state 750
+State 750
- 186 class_statement: variable_modifiers . @36 class_variable_declaration ';'
+ 186 class_statement: variable_modifiers . $@36 class_variable_declaration ';'
- $default reduce using rule 185 (@36)
+ $default reduce using rule 185 ($@36)
- @36 go to state 803
+ $@36 go to state 803
-state 751
+State 751
- 190 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 190 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" $@37 '(' parameter_list ')' method_body
"function (T_FUNCTION)" shift, and go to state 47
function go to state 804
-state 752
+State 752
214 variable_modifiers: non_empty_member_modifiers .
217 method_modifiers: non_empty_member_modifiers .
@@ -20840,14 +20840,14 @@ state 752
member_modifier go to state 805
-state 753
+State 753
218 non_empty_member_modifiers: member_modifier .
$default reduce using rule 218 (non_empty_member_modifiers)
-state 754
+State 754
187 class_statement: class_constant_declaration . ';'
230 class_constant_declaration: class_constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar
@@ -20856,28 +20856,28 @@ state 754
';' shift, and go to state 807
-state 755
+State 755
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' . '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' parameter_list ')' . '{' inner_statement_list '}'
'{' shift, and go to state 808
-state 756
+State 756
338 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')'
'(' shift, and go to state 809
-state 757
+State 757
333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars . '{' inner_statement_list '}'
'{' shift, and go to state 810
-state 758
+State 758
158 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)"
159 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)"
@@ -20888,7 +20888,7 @@ state 758
"variable (T_VARIABLE)" shift, and go to state 812
-state 759
+State 759
155 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" .
156 | optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
@@ -20898,7 +20898,7 @@ state 759
$default reduce using rule 155 (non_empty_parameter_list)
-state 760
+State 760
157 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
@@ -20930,26 +20930,26 @@ state 760
static_class_constant go to state 471
-state 761
+State 761
- 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')' .
+ 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@59 function_call_parameter_list ')' .
$default reduce using rule 352 (function_call)
-state 762
+State 762
- 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')' .
+ 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@58 function_call_parameter_list ')' .
$default reduce using rule 350 (function_call)
-state 763
+State 763
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -20971,9 +20971,9 @@ state 763
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 313 | expr '?' @49 expr ':' @50 expr .
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 313 | expr '?' $@49 expr ':' $@50 expr .
+ 315 | expr . '?' ':' $@51 expr
"|| (T_BOOLEAN_OR)" shift, and go to state 239
"&& (T_BOOLEAN_AND)" shift, and go to state 240
@@ -21001,30 +21001,30 @@ state 763
$default reduce using rule 313 (expr_without_variable)
-state 764
+State 764
- 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments .
+ 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference $@43 ctor_arguments .
$default reduce using rule 257 (expr_without_variable)
-state 765
+State 765
- 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')' .
+ 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' $@61 function_call_parameter_list ')' .
$default reduce using rule 356 (function_call)
-state 766
+State 766
- 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')' .
+ 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' $@60 function_call_parameter_list ')' .
$default reduce using rule 354 (function_call)
-state 767
+State 767
- 439 method: '(' @68 . function_call_parameter_list ')'
+ 439 method: '(' $@68 . function_call_parameter_list ')'
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -21108,7 +21108,7 @@ state 767
class_constant go to state 115
-state 768
+State 768
436 array_method_dereference: array_method_dereference '[' . dim_offset ']'
@@ -21192,7 +21192,7 @@ state 768
class_constant go to state 115
-state 769
+State 769
437 array_method_dereference: method '[' . dim_offset ']'
@@ -21276,9 +21276,9 @@ state 769
class_constant go to state 115
-state 770
+State 770
- 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties .
+ 430 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" $@65 object_property $@66 method_or_not variable_properties .
432 variable_properties: variable_properties . variable_property
"-> (T_OBJECT_OPERATOR)" shift, and go to state 670
@@ -21288,21 +21288,21 @@ state 770
variable_property go to state 818
-state 771
+State 771
467 object_dim_list: object_dim_list '[' dim_offset ']' .
$default reduce using rule 467 (object_dim_list)
-state 772
+State 772
468 object_dim_list: object_dim_list '{' expr '}' .
$default reduce using rule 468 (object_dim_list)
-state 773
+State 773
374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property
@@ -21320,26 +21320,26 @@ state 773
simple_indirect_reference go to state 384
-state 774
+State 774
372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property .
$default reduce using rule 372 (dynamic_class_name_variable_properties)
-state 775
+State 775
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 . new_elseif_list new_else_single "endif (T_ENDIF)" ';'
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list $@8 . new_elseif_list new_else_single "endif (T_ENDIF)" ';'
$default reduce using rule 145 (new_elseif_list)
new_elseif_list go to state 820
-state 776
+State 776
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list . else_single
- 144 elseif_list: elseif_list . "elseif (T_ELSEIF)" '(' expr ')' @34 statement
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' $@5 statement $@6 elseif_list . else_single
+ 144 elseif_list: elseif_list . "elseif (T_ELSEIF)" '(' expr ')' $@34 statement
"elseif (T_ELSEIF)" shift, and go to state 821
"else (T_ELSE)" shift, and go to state 822
@@ -21351,28 +21351,28 @@ state 776
else_single go to state 823
-state 777
+State 777
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' . ';'
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" '(' $@12 expr ')' . ';'
';' shift, and go to state 824
-state 778
+State 778
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
141 while_statement: ':' inner_statement_list . "endwhile (T_ENDWHILE)" ';'
"endwhile (T_ENDWHILE)" shift, and go to state 825
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 779
+State 779
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 . for_expr ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 . for_expr ')' $@15 for_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -21455,66 +21455,66 @@ state 779
class_constant go to state 115
-state 780
+State 780
118 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" foreach_variable .
$default reduce using rule 118 (foreach_optional_arg)
-state 781
+State 781
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' . @20 foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg ')' . $@20 foreach_statement
- $default reduce using rule 71 (@20)
+ $default reduce using rule 71 ($@20)
- @20 go to state 827
+ $@20 go to state 827
-state 782
+State 782
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' . @18 foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' . $@18 foreach_statement
- $default reduce using rule 68 (@18)
+ $default reduce using rule 68 ($@18)
- @18 go to state 828
+ $@18 go to state 828
-state 783
+State 783
128 declare_list: declare_list ',' "identifier (T_STRING)" '=' static_scalar .
$default reduce using rule 128 (declare_list)
-state 784
+State 784
126 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" . ';'
';' shift, and go to state 829
-state 785
+State 785
132 switch_case_list: ':' ';' case_list . "endswitch (T_ENDSWITCH)" ';'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 135 case_list: case_list . "case (T_CASE)" expr case_separator $@32 inner_statement_list
+ 137 | case_list . "default (T_DEFAULT)" case_separator $@33 inner_statement_list
"endswitch (T_ENDSWITCH)" shift, and go to state 830
"case (T_CASE)" shift, and go to state 787
"default (T_DEFAULT)" shift, and go to state 788
-state 786
+State 786
131 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" . ';'
';' shift, and go to state 831
-state 787
+State 787
- 135 case_list: case_list "case (T_CASE)" . expr case_separator @32 inner_statement_list
+ 135 case_list: case_list "case (T_CASE)" . expr case_separator $@32 inner_statement_list
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -21593,9 +21593,9 @@ state 787
class_constant go to state 115
-state 788
+State 788
- 137 case_list: case_list "default (T_DEFAULT)" . case_separator @33 inner_statement_list
+ 137 case_list: case_list "default (T_DEFAULT)" . case_separator $@33 inner_statement_list
':' shift, and go to state 833
';' shift, and go to state 834
@@ -21603,25 +21603,25 @@ state 788
case_separator go to state 835
-state 789
+State 789
130 switch_case_list: '{' ';' case_list . '}'
- 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list
- 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list
+ 135 case_list: case_list . "case (T_CASE)" expr case_separator $@32 inner_statement_list
+ 137 | case_list . "default (T_DEFAULT)" case_separator $@33 inner_statement_list
"case (T_CASE)" shift, and go to state 787
"default (T_DEFAULT)" shift, and go to state 788
'}' shift, and go to state 836
-state 790
+State 790
129 switch_case_list: '{' case_list '}' .
$default reduce using rule 129 (switch_case_list)
-state 791
+State 791
419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar
@@ -21653,9 +21653,9 @@ state 791
static_class_constant go to state 471
-state 792
+State 792
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 . fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 . fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
"identifier (T_STRING)" shift, and go to state 116
"namespace (T_NAMESPACE)" shift, and go to state 514
@@ -21665,30 +21665,30 @@ state 792
fully_qualified_class_name go to state 838
-state 793
+State 793
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars . '{' inner_statement_list '}'
'{' shift, and go to state 839
-state 794
+State 794
- 478 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list ')' .
+ 478 assignment_list_element: "list (T_LIST)" '(' $@71 assignment_list ')' .
$default reduce using rule 478 (assignment_list_element)
-state 795
+State 795
242 chaining_dereference: '[' dim_offset ']' .
$default reduce using rule 242 (chaining_dereference)
-state 796
+State 796
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 . method_or_not
+ 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@67 . method_or_not
'(' shift, and go to state 695
@@ -21699,17 +21699,17 @@ state 796
method_or_not go to state 840
-state 797
+State 797
241 chaining_dereference: chaining_dereference '[' dim_offset . ']'
']' shift, and go to state 841
-state 798
+State 798
239 chaining_method_or_property: chaining_method_or_property . variable_property
- 244 chaining_instance_call: chaining_dereference @39 chaining_method_or_property .
+ 244 chaining_instance_call: chaining_dereference $@39 chaining_method_or_property .
"-> (T_OBJECT_OPERATOR)" shift, and go to state 670
@@ -21718,21 +21718,21 @@ state 798
variable_property go to state 731
-state 799
+State 799
- 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}' .
+ 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from $@30 implements_list '{' class_statement_list '}' .
$default reduce using rule 101 (unticked_class_declaration_statement)
-state 800
+State 800
231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar
'=' shift, and go to state 842
-state 801
+State 801
191 trait_use_statement: "use (T_USE)" trait_list . trait_adaptations
193 trait_list: trait_list . ',' fully_qualified_class_name
@@ -21744,25 +21744,25 @@ state 801
trait_adaptations go to state 846
-state 802
+State 802
192 trait_list: fully_qualified_class_name .
$default reduce using rule 192 (trait_list)
-state 803
+State 803
- 186 class_statement: variable_modifiers @36 . class_variable_declaration ';'
+ 186 class_statement: variable_modifiers $@36 . class_variable_declaration ';'
"variable (T_VARIABLE)" shift, and go to state 847
class_variable_declaration go to state 848
-state 804
+State 804
- 190 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 190 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" $@37 '(' parameter_list ')' method_body
'&' shift, and go to state 231
@@ -21771,37 +21771,37 @@ state 804
is_reference go to state 849
-state 805
+State 805
219 non_empty_member_modifiers: non_empty_member_modifiers member_modifier .
$default reduce using rule 219 (non_empty_member_modifiers)
-state 806
+State 806
230 class_constant_declaration: class_constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar
"identifier (T_STRING)" shift, and go to state 850
-state 807
+State 807
187 class_statement: class_constant_declaration ';' .
$default reduce using rule 187 (class_statement)
-state 808
+State 808
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' . inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' parameter_list ')' '{' . inner_statement_list '}'
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 851
-state 809
+State 809
338 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')'
@@ -21811,7 +21811,7 @@ state 809
lexical_var_list go to state 854
-state 810
+State 810
333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' . inner_statement_list '}'
@@ -21820,7 +21820,7 @@ state 810
inner_statement_list go to state 855
-state 811
+State 811
159 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)"
160 | non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar
@@ -21828,7 +21828,7 @@ state 811
"variable (T_VARIABLE)" shift, and go to state 856
-state 812
+State 812
158 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" .
161 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" . '=' static_scalar
@@ -21838,7 +21838,7 @@ state 812
$default reduce using rule 158 (non_empty_parameter_list)
-state 813
+State 813
156 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
@@ -21870,52 +21870,52 @@ state 813
static_class_constant go to state 471
-state 814
+State 814
157 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 157 (non_empty_parameter_list)
-state 815
+State 815
- 439 method: '(' @68 function_call_parameter_list . ')'
+ 439 method: '(' $@68 function_call_parameter_list . ')'
')' shift, and go to state 859
-state 816
+State 816
436 array_method_dereference: array_method_dereference '[' dim_offset . ']'
']' shift, and go to state 860
-state 817
+State 817
437 array_method_dereference: method '[' dim_offset . ']'
']' shift, and go to state 861
-state 818
+State 818
432 variable_properties: variable_properties variable_property .
$default reduce using rule 432 (variable_properties)
-state 819
+State 819
374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property .
$default reduce using rule 374 (dynamic_class_name_variable_property)
-state 820
+State 820
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list . new_else_single "endif (T_ENDIF)" ';'
- 147 new_elseif_list: new_elseif_list . "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list . new_else_single "endif (T_ENDIF)" ';'
+ 147 new_elseif_list: new_elseif_list . "elseif (T_ELSEIF)" '(' expr ')' ':' $@35 inner_statement_list
"elseif (T_ELSEIF)" shift, and go to state 862
"else (T_ELSE)" shift, and go to state 863
@@ -21925,14 +21925,14 @@ state 820
new_else_single go to state 864
-state 821
+State 821
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" . '(' expr ')' @34 statement
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" . '(' expr ')' $@34 statement
'(' shift, and go to state 865
-state 822
+State 822
149 else_single: "else (T_ELSE)" . statement
@@ -22034,37 +22034,37 @@ state 822
class_constant go to state 115
-state 823
+State 823
- 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list else_single .
+ 38 unticked_statement: "if (T_IF)" '(' expr ')' $@5 statement $@6 elseif_list else_single .
$default reduce using rule 38 (unticked_statement)
-state 824
+State 824
- 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' ';' .
+ 47 unticked_statement: "do (T_DO)" $@11 statement "while (T_WHILE)" '(' $@12 expr ')' ';' .
$default reduce using rule 47 (unticked_statement)
-state 825
+State 825
141 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" . ';'
';' shift, and go to state 867
-state 826
+State 826
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr . ')' @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr . ')' $@15 for_statement
')' shift, and go to state 868
-state 827
+State 827
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 . foreach_statement
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg ')' $@20 . foreach_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -22166,9 +22166,9 @@ state 827
class_constant go to state 115
-state 828
+State 828
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 . foreach_statement
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 . foreach_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -22270,34 +22270,34 @@ state 828
class_constant go to state 115
-state 829
+State 829
126 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';' .
$default reduce using rule 126 (declare_statement)
-state 830
+State 830
132 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" . ';'
';' shift, and go to state 873
-state 831
+State 831
131 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" ';' .
$default reduce using rule 131 (switch_case_list)
-state 832
+State 832
- 135 case_list: case_list "case (T_CASE)" expr . case_separator @32 inner_statement_list
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 135 case_list: case_list "case (T_CASE)" expr . case_separator $@32 inner_statement_list
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -22319,8 +22319,8 @@ state 832
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -22354,53 +22354,53 @@ state 832
case_separator go to state 874
-state 833
+State 833
138 case_separator: ':' .
$default reduce using rule 138 (case_separator)
-state 834
+State 834
139 case_separator: ';' .
$default reduce using rule 139 (case_separator)
-state 835
+State 835
- 137 case_list: case_list "default (T_DEFAULT)" case_separator . @33 inner_statement_list
+ 137 case_list: case_list "default (T_DEFAULT)" case_separator . $@33 inner_statement_list
- $default reduce using rule 136 (@33)
+ $default reduce using rule 136 ($@33)
- @33 go to state 875
+ $@33 go to state 875
-state 836
+State 836
130 switch_case_list: '{' ';' case_list '}' .
$default reduce using rule 130 (switch_case_list)
-state 837
+State 837
419 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar .
$default reduce using rule 419 (non_empty_static_array_pair_list)
-state 838
+State 838
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name . @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name . $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
- $default reduce using rule 78 (@24)
+ $default reduce using rule 78 ($@24)
- @24 go to state 876
+ $@24 go to state 876
-state 839
+State 839
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' . inner_statement_list '}'
@@ -22409,21 +22409,21 @@ state 839
inner_statement_list go to state 877
-state 840
+State 840
- 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 method_or_not .
+ 435 variable_property: "-> (T_OBJECT_OPERATOR)" object_property $@67 method_or_not .
$default reduce using rule 435 (variable_property)
-state 841
+State 841
241 chaining_dereference: chaining_dereference '[' dim_offset ']' .
$default reduce using rule 241 (chaining_dereference)
-state 842
+State 842
231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar
@@ -22455,7 +22455,7 @@ state 842
static_class_constant go to state 471
-state 843
+State 843
193 trait_list: trait_list ',' . fully_qualified_class_name
@@ -22467,14 +22467,14 @@ state 843
fully_qualified_class_name go to state 879
-state 844
+State 844
194 trait_adaptations: ';' .
$default reduce using rule 194 (trait_adaptations)
-state 845
+State 845
195 trait_adaptations: '{' . trait_adaptation_list '}'
@@ -22495,14 +22495,14 @@ state 845
fully_qualified_class_name go to state 888
-state 846
+State 846
191 trait_use_statement: "use (T_USE)" trait_list trait_adaptations .
$default reduce using rule 191 (trait_use_statement)
-state 847
+State 847
228 class_variable_declaration: "variable (T_VARIABLE)" .
229 | "variable (T_VARIABLE)" . '=' static_scalar
@@ -22512,9 +22512,9 @@ state 847
$default reduce using rule 228 (class_variable_declaration)
-state 848
+State 848
- 186 class_statement: variable_modifiers @36 class_variable_declaration . ';'
+ 186 class_statement: variable_modifiers $@36 class_variable_declaration . ';'
226 class_variable_declaration: class_variable_declaration . ',' "variable (T_VARIABLE)"
227 | class_variable_declaration . ',' "variable (T_VARIABLE)" '=' static_scalar
@@ -22522,47 +22522,47 @@ state 848
';' shift, and go to state 891
-state 849
+State 849
- 190 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" @37 '(' parameter_list ')' method_body
+ 190 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" $@37 '(' parameter_list ')' method_body
"identifier (T_STRING)" shift, and go to state 892
-state 850
+State 850
230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar
'=' shift, and go to state 893
-state 851
+State 851
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list . '}'
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' parameter_list ')' '{' inner_statement_list . '}'
'}' shift, and go to state 894
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 852
+State 852
342 lexical_var_list: '&' . "variable (T_VARIABLE)"
"variable (T_VARIABLE)" shift, and go to state 895
-state 853
+State 853
341 lexical_var_list: "variable (T_VARIABLE)" .
$default reduce using rule 341 (lexical_var_list)
-state 854
+State 854
338 lexical_vars: "use (T_USE)" '(' lexical_var_list . ')'
339 lexical_var_list: lexical_var_list . ',' "variable (T_VARIABLE)"
@@ -22572,19 +22572,19 @@ state 854
')' shift, and go to state 897
-state 855
+State 855
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list . '}'
'}' shift, and go to state 898
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 856
+State 856
159 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" .
160 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar
@@ -22594,7 +22594,7 @@ state 856
$default reduce using rule 159 (non_empty_parameter_list)
-state 857
+State 857
161 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' . static_scalar
@@ -22626,58 +22626,58 @@ state 857
static_class_constant go to state 471
-state 858
+State 858
156 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 156 (non_empty_parameter_list)
-state 859
+State 859
- 439 method: '(' @68 function_call_parameter_list ')' .
+ 439 method: '(' $@68 function_call_parameter_list ')' .
$default reduce using rule 439 (method)
-state 860
+State 860
436 array_method_dereference: array_method_dereference '[' dim_offset ']' .
$default reduce using rule 436 (array_method_dereference)
-state 861
+State 861
437 array_method_dereference: method '[' dim_offset ']' .
$default reduce using rule 437 (array_method_dereference)
-state 862
+State 862
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . '(' expr ')' ':' @35 inner_statement_list
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . '(' expr ')' ':' $@35 inner_statement_list
'(' shift, and go to state 901
-state 863
+State 863
151 new_else_single: "else (T_ELSE)" . ':' inner_statement_list
':' shift, and go to state 902
-state 864
+State 864
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';'
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';'
"endif (T_ENDIF)" shift, and go to state 903
-state 865
+State 865
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' . expr ')' @34 statement
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' . expr ')' $@34 statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -22756,30 +22756,30 @@ state 865
class_constant go to state 115
-state 866
+State 866
149 else_single: "else (T_ELSE)" statement .
$default reduce using rule 149 (else_single)
-state 867
+State 867
141 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" ';' .
$default reduce using rule 141 (while_statement)
-state 868
+State 868
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' . @15 for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' . $@15 for_statement
- $default reduce using rule 50 (@15)
+ $default reduce using rule 50 ($@15)
- @15 go to state 905
+ $@15 go to state 905
-state 869
+State 869
124 foreach_statement: ':' . inner_statement_list "endforeach (T_ENDFOREACH)" ';'
@@ -22788,86 +22788,86 @@ state 869
inner_statement_list go to state 906
-state 870
+State 870
123 foreach_statement: statement .
$default reduce using rule 123 (foreach_statement)
-state 871
+State 871
- 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement .
+ 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" $@19 variable foreach_optional_arg ')' $@20 foreach_statement .
$default reduce using rule 72 (unticked_statement)
-state 872
+State 872
- 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement .
+ 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement .
$default reduce using rule 69 (unticked_statement)
-state 873
+State 873
132 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" ';' .
$default reduce using rule 132 (switch_case_list)
-state 874
+State 874
- 135 case_list: case_list "case (T_CASE)" expr case_separator . @32 inner_statement_list
+ 135 case_list: case_list "case (T_CASE)" expr case_separator . $@32 inner_statement_list
- $default reduce using rule 134 (@32)
+ $default reduce using rule 134 ($@32)
- @32 go to state 907
+ $@32 go to state 907
-state 875
+State 875
- 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 . inner_statement_list
+ 137 case_list: case_list "default (T_DEFAULT)" case_separator $@33 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 908
-state 876
+State 876
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 . "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 . "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
"variable (T_VARIABLE)" shift, and go to state 909
-state 877
+State 877
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list . '}'
'}' shift, and go to state 910
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 878
+State 878
231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar .
$default reduce using rule 231 (class_constant_declaration)
-state 879
+State 879
193 trait_list: trait_list ',' fully_qualified_class_name .
$default reduce using rule 193 (trait_list)
-state 880
+State 880
5 namespace_name: "identifier (T_STRING)" .
205 trait_method_reference: "identifier (T_STRING)" .
@@ -22876,14 +22876,14 @@ state 880
$default reduce using rule 5 (namespace_name)
-state 881
+State 881
195 trait_adaptations: '{' trait_adaptation_list . '}'
'}' shift, and go to state 911
-state 882
+State 882
197 trait_adaptation_list: non_empty_trait_adaptation_list .
199 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list . trait_adaptation_statement
@@ -22903,21 +22903,21 @@ state 882
fully_qualified_class_name go to state 888
-state 883
+State 883
198 non_empty_trait_adaptation_list: trait_adaptation_statement .
$default reduce using rule 198 (non_empty_trait_adaptation_list)
-state 884
+State 884
200 trait_adaptation_statement: trait_precedence . ';'
';' shift, and go to state 913
-state 885
+State 885
208 trait_alias: trait_method_reference . "as (T_AS)" trait_modifiers "identifier (T_STRING)"
209 | trait_method_reference . "as (T_AS)" member_modifier
@@ -22925,7 +22925,7 @@ state 885
"as (T_AS)" shift, and go to state 914
-state 886
+State 886
202 trait_precedence: trait_method_reference_fully_qualified . "insteadof (T_INSTEADOF)" trait_reference_list
206 trait_method_reference: trait_method_reference_fully_qualified .
@@ -22935,21 +22935,21 @@ state 886
$default reduce using rule 206 (trait_method_reference)
-state 887
+State 887
201 trait_adaptation_statement: trait_alias . ';'
';' shift, and go to state 916
-state 888
+State 888
207 trait_method_reference_fully_qualified: fully_qualified_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)"
":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 917
-state 889
+State 889
229 class_variable_declaration: "variable (T_VARIABLE)" '=' . static_scalar
@@ -22981,7 +22981,7 @@ state 889
static_class_constant go to state 471
-state 890
+State 890
226 class_variable_declaration: class_variable_declaration ',' . "variable (T_VARIABLE)"
227 | class_variable_declaration ',' . "variable (T_VARIABLE)" '=' static_scalar
@@ -22989,23 +22989,23 @@ state 890
"variable (T_VARIABLE)" shift, and go to state 919
-state 891
+State 891
- 186 class_statement: variable_modifiers @36 class_variable_declaration ';' .
+ 186 class_statement: variable_modifiers $@36 class_variable_declaration ';' .
$default reduce using rule 186 (class_statement)
-state 892
+State 892
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . @37 '(' parameter_list ')' method_body
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . $@37 '(' parameter_list ')' method_body
- $default reduce using rule 189 (@37)
+ $default reduce using rule 189 ($@37)
- @37 go to state 920
+ $@37 go to state 920
-state 893
+State 893
230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar
@@ -23037,21 +23037,21 @@ state 893
static_class_constant go to state 471
-state 894
+State 894
- 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}' .
+ 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" $@29 '(' parameter_list ')' '{' inner_statement_list '}' .
$default reduce using rule 99 (unticked_function_declaration_statement)
-state 895
+State 895
342 lexical_var_list: '&' "variable (T_VARIABLE)" .
$default reduce using rule 342 (lexical_var_list)
-state 896
+State 896
339 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)"
340 | lexical_var_list ',' . '&' "variable (T_VARIABLE)"
@@ -23060,21 +23060,21 @@ state 896
"variable (T_VARIABLE)" shift, and go to state 923
-state 897
+State 897
338 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' .
$default reduce using rule 338 (lexical_vars)
-state 898
+State 898
333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' .
$default reduce using rule 333 (expr_without_variable)
-state 899
+State 899
160 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar
@@ -23106,16 +23106,16 @@ state 899
static_class_constant go to state 471
-state 900
+State 900
161 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 161 (non_empty_parameter_list)
-state 901
+State 901
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' . expr ')' ':' @35 inner_statement_list
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' . expr ')' ':' $@35 inner_statement_list
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -23194,7 +23194,7 @@ state 901
class_constant go to state 115
-state 902
+State 902
151 new_else_single: "else (T_ELSE)" ':' . inner_statement_list
@@ -23203,20 +23203,20 @@ state 902
inner_statement_list go to state 926
-state 903
+State 903
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" . ';'
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" . ';'
';' shift, and go to state 927
-state 904
+State 904
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr . ')' @34 statement
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr . ')' $@34 statement
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -23238,8 +23238,8 @@ state 904
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -23270,9 +23270,9 @@ state 904
')' shift, and go to state 928
-state 905
+State 905
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 . for_statement
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 . for_statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -23374,77 +23374,77 @@ state 905
class_constant go to state 115
-state 906
+State 906
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
124 foreach_statement: ':' inner_statement_list . "endforeach (T_ENDFOREACH)" ';'
"endforeach (T_ENDFOREACH)" shift, and go to state 932
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 907
+State 907
- 135 case_list: case_list "case (T_CASE)" expr case_separator @32 . inner_statement_list
+ 135 case_list: case_list "case (T_CASE)" expr case_separator $@32 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 933
-state 908
+State 908
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 137 case_list: case_list "default (T_DEFAULT)" case_separator $@33 inner_statement_list .
"endswitch (T_ENDSWITCH)" reduce using rule 137 (case_list)
"case (T_CASE)" reduce using rule 137 (case_list)
"default (T_DEFAULT)" reduce using rule 137 (case_list)
'}' reduce using rule 137 (case_list)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 909
+State 909
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" . ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" . ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
')' shift, and go to state 934
-state 910
+State 910
335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' .
$default reduce using rule 335 (expr_without_variable)
-state 911
+State 911
195 trait_adaptations: '{' trait_adaptation_list '}' .
$default reduce using rule 195 (trait_adaptations)
-state 912
+State 912
199 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list trait_adaptation_statement .
$default reduce using rule 199 (non_empty_trait_adaptation_list)
-state 913
+State 913
200 trait_adaptation_statement: trait_precedence ';' .
$default reduce using rule 200 (trait_adaptation_statement)
-state 914
+State 914
208 trait_alias: trait_method_reference "as (T_AS)" . trait_modifiers "identifier (T_STRING)"
209 | trait_method_reference "as (T_AS)" . member_modifier
@@ -23462,7 +23462,7 @@ state 914
member_modifier go to state 936
-state 915
+State 915
202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" . trait_reference_list
@@ -23475,28 +23475,28 @@ state 915
fully_qualified_class_name go to state 938
-state 916
+State 916
201 trait_adaptation_statement: trait_alias ';' .
$default reduce using rule 201 (trait_adaptation_statement)
-state 917
+State 917
207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 939
-state 918
+State 918
229 class_variable_declaration: "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 229 (class_variable_declaration)
-state 919
+State 919
226 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" .
227 | class_variable_declaration ',' "variable (T_VARIABLE)" . '=' static_scalar
@@ -23506,48 +23506,48 @@ state 919
$default reduce using rule 226 (class_variable_declaration)
-state 920
+State 920
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 . '(' parameter_list ')' method_body
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@37 . '(' parameter_list ')' method_body
'(' shift, and go to state 941
-state 921
+State 921
230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar .
$default reduce using rule 230 (class_constant_declaration)
-state 922
+State 922
340 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)"
"variable (T_VARIABLE)" shift, and go to state 942
-state 923
+State 923
339 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" .
$default reduce using rule 339 (lexical_var_list)
-state 924
+State 924
160 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 160 (non_empty_parameter_list)
-state 925
+State 925
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr . ')' ':' @35 inner_statement_list
- 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr
- 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr
- 279 | expr . "or (T_LOGICAL_OR)" @46 expr
- 281 | expr . "and (T_LOGICAL_AND)" @47 expr
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr . ')' ':' $@35 inner_statement_list
+ 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" $@44 expr
+ 277 | expr . "&& (T_BOOLEAN_AND)" $@45 expr
+ 279 | expr . "or (T_LOGICAL_OR)" $@46 expr
+ 281 | expr . "and (T_LOGICAL_AND)" $@47 expr
282 | expr . "xor (T_LOGICAL_XOR)" expr
283 | expr . '|' expr
284 | expr . '&' expr
@@ -23569,8 +23569,8 @@ state 925
304 | expr . '>' expr
305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr
306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference
- 313 | expr . '?' @49 expr ':' @50 expr
- 315 | expr . '?' ':' @51 expr
+ 313 | expr . '?' $@49 expr ':' $@50 expr
+ 315 | expr . '?' ':' $@51 expr
"or (T_LOGICAL_OR)" shift, and go to state 235
"xor (T_LOGICAL_XOR)" shift, and go to state 236
@@ -23601,34 +23601,34 @@ state 925
')' shift, and go to state 943
-state 926
+State 926
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
151 new_else_single: "else (T_ELSE)" ':' inner_statement_list .
"endif (T_ENDIF)" reduce using rule 151 (new_else_single)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 927
+State 927
- 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' .
+ 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' .
$default reduce using rule 41 (unticked_statement)
-state 928
+State 928
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' . @34 statement
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' . $@34 statement
- $default reduce using rule 143 (@34)
+ $default reduce using rule 143 ($@34)
- @34 go to state 944
+ $@34 go to state 944
-state 929
+State 929
122 for_statement: ':' . inner_statement_list "endfor (T_ENDFOR)" ';'
@@ -23637,58 +23637,58 @@ state 929
inner_statement_list go to state 945
-state 930
+State 930
121 for_statement: statement .
$default reduce using rule 121 (for_statement)
-state 931
+State 931
- 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement .
+ 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement .
$default reduce using rule 51 (unticked_statement)
-state 932
+State 932
124 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" . ';'
';' shift, and go to state 946
-state 933
+State 933
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 135 case_list: case_list "case (T_CASE)" expr case_separator @32 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 135 case_list: case_list "case (T_CASE)" expr case_separator $@32 inner_statement_list .
"endswitch (T_ENDSWITCH)" reduce using rule 135 (case_list)
"case (T_CASE)" reduce using rule 135 (case_list)
"default (T_DEFAULT)" reduce using rule 135 (case_list)
'}' reduce using rule 135 (case_list)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 934
+State 934
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' . @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' . $@25 '{' inner_statement_list '}' $@26 additional_catches
- $default reduce using rule 79 (@25)
+ $default reduce using rule 79 ($@25)
- @25 go to state 947
+ $@25 go to state 947
-state 935
+State 935
208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers . "identifier (T_STRING)"
"identifier (T_STRING)" shift, and go to state 948
-state 936
+State 936
209 trait_alias: trait_method_reference "as (T_AS)" member_modifier .
211 trait_modifiers: member_modifier .
@@ -23697,7 +23697,7 @@ state 936
$default reduce using rule 209 (trait_alias)
-state 937
+State 937
202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list .
204 trait_reference_list: trait_reference_list . ',' fully_qualified_class_name
@@ -23707,21 +23707,21 @@ state 937
$default reduce using rule 202 (trait_precedence)
-state 938
+State 938
203 trait_reference_list: fully_qualified_class_name .
$default reduce using rule 203 (trait_reference_list)
-state 939
+State 939
207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" .
$default reduce using rule 207 (trait_method_reference_fully_qualified)
-state 940
+State 940
227 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' . static_scalar
@@ -23753,9 +23753,9 @@ state 940
static_class_constant go to state 471
-state 941
+State 941
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' . parameter_list ')' method_body
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@37 '(' . parameter_list ')' method_body
"identifier (T_STRING)" shift, and go to state 116
"array (T_ARRAY)" shift, and go to state 608
@@ -23773,23 +23773,23 @@ state 941
fully_qualified_class_name go to state 613
-state 942
+State 942
340 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" .
$default reduce using rule 340 (lexical_var_list)
-state 943
+State 943
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' . ':' @35 inner_statement_list
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' . ':' $@35 inner_statement_list
':' shift, and go to state 952
-state 944
+State 944
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 . statement
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' $@34 . statement
"require_once (T_REQUIRE_ONCE)" shift, and go to state 5
"require (T_REQUIRE)" shift, and go to state 6
@@ -23889,40 +23889,40 @@ state 944
class_constant go to state 115
-state 945
+State 945
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
122 for_statement: ':' inner_statement_list . "endfor (T_ENDFOR)" ';'
"endfor (T_ENDFOR)" shift, and go to state 954
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 946
+State 946
124 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';' .
$default reduce using rule 124 (foreach_statement)
-state 947
+State 947
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 . '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 . '{' inner_statement_list '}' $@26 additional_catches
'{' shift, and go to state 955
-state 948
+State 948
208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)" .
$default reduce using rule 208 (trait_alias)
-state 949
+State 949
204 trait_reference_list: trait_reference_list ',' . fully_qualified_class_name
@@ -23934,62 +23934,62 @@ state 949
fully_qualified_class_name go to state 956
-state 950
+State 950
227 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar .
$default reduce using rule 227 (class_variable_declaration)
-state 951
+State 951
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list . ')' method_body
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@37 '(' parameter_list . ')' method_body
')' shift, and go to state 957
-state 952
+State 952
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' . @35 inner_statement_list
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' . $@35 inner_statement_list
- $default reduce using rule 146 (@35)
+ $default reduce using rule 146 ($@35)
- @35 go to state 958
+ $@35 go to state 958
-state 953
+State 953
- 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 statement .
+ 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' $@34 statement .
$default reduce using rule 144 (elseif_list)
-state 954
+State 954
122 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" . ';'
';' shift, and go to state 959
-state 955
+State 955
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' . inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' . inner_statement_list '}' $@26 additional_catches
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 960
-state 956
+State 956
204 trait_reference_list: trait_reference_list ',' fully_qualified_class_name .
$default reduce using rule 204 (trait_reference_list)
-state 957
+State 957
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' . method_body
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@37 '(' parameter_list ')' . method_body
';' shift, and go to state 961
'{' shift, and go to state 962
@@ -23997,42 +23997,42 @@ state 957
method_body go to state 963
-state 958
+State 958
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 . inner_statement_list
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' $@35 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 964
-state 959
+State 959
122 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" ';' .
$default reduce using rule 122 (for_statement)
-state 960
+State 960
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list . '}' @26 additional_catches
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list . '}' $@26 additional_catches
'}' shift, and go to state 965
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 961
+State 961
212 method_body: ';' .
$default reduce using rule 212 (method_body)
-state 962
+State 962
213 method_body: '{' . inner_statement_list '}'
@@ -24041,50 +24041,50 @@ state 962
inner_statement_list go to state 966
-state 963
+State 963
- 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body .
+ 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" $@37 '(' parameter_list ')' method_body .
$default reduce using rule 190 (class_statement)
-state 964
+State 964
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' $@35 inner_statement_list .
"elseif (T_ELSEIF)" reduce using rule 147 (new_elseif_list)
"else (T_ELSE)" reduce using rule 147 (new_elseif_list)
"endif (T_ENDIF)" reduce using rule 147 (new_elseif_list)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 965
+State 965
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' . @26 additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' . $@26 additional_catches
- $default reduce using rule 80 (@26)
+ $default reduce using rule 80 ($@26)
- @26 go to state 967
+ $@26 go to state 967
-state 966
+State 966
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
213 method_body: '{' inner_statement_list . '}'
'}' shift, and go to state 968
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 967
+State 967
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 . additional_catches
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 . additional_catches
"catch (T_CATCH)" shift, and go to state 969
@@ -24095,28 +24095,28 @@ state 967
additional_catch go to state 972
-state 968
+State 968
213 method_body: '{' inner_statement_list '}' .
$default reduce using rule 213 (method_body)
-state 969
+State 969
- 90 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list '}'
'(' shift, and go to state 973
-state 970
+State 970
- 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches .
+ 81 unticked_statement: "try (T_TRY)" $@22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' $@23 fully_qualified_class_name $@24 "variable (T_VARIABLE)" ')' $@25 '{' inner_statement_list '}' $@26 additional_catches .
$default reduce using rule 81 (unticked_statement)
-state 971
+State 971
84 additional_catches: non_empty_additional_catches .
87 non_empty_additional_catches: non_empty_additional_catches . additional_catch
@@ -24128,16 +24128,16 @@ state 971
additional_catch go to state 974
-state 972
+State 972
86 non_empty_additional_catches: additional_catch .
$default reduce using rule 86 (non_empty_additional_catches)
-state 973
+State 973
- 90 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list '}'
"identifier (T_STRING)" shift, and go to state 116
"namespace (T_NAMESPACE)" shift, and go to state 514
@@ -24147,75 +24147,75 @@ state 973
fully_qualified_class_name go to state 975
-state 974
+State 974
87 non_empty_additional_catches: non_empty_additional_catches additional_catch .
$default reduce using rule 87 (non_empty_additional_catches)
-state 975
+State 975
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @27 "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list '}'
$default reduce using rule 88 (@27)
@27 go to state 976
-state 976
+State 976
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 . "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 . "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list '}'
"variable (T_VARIABLE)" shift, and go to state 977
-state 977
+State 977
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" . ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" . ')' $@28 '{' inner_statement_list '}'
')' shift, and go to state 978
-state 978
+State 978
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' . @28 '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' . $@28 '{' inner_statement_list '}'
- $default reduce using rule 89 (@28)
+ $default reduce using rule 89 ($@28)
- @28 go to state 979
+ $@28 go to state 979
-state 979
+State 979
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 . '{' inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 . '{' inner_statement_list '}'
'{' shift, and go to state 980
-state 980
+State 980
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' . inner_statement_list '}'
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 '{' . inner_statement_list '}'
$default reduce using rule 28 (inner_statement_list)
inner_statement_list go to state 981
-state 981
+State 981
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list . '}'
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list . '}'
'}' shift, and go to state 982
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 366
+ $@4 go to state 366
-state 982
+State 982
- 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}' .
+ 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' $@28 '{' inner_statement_list '}' .
$default reduce using rule 90 (additional_catch)
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 1f5d73296..bf48bb73d 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -41,17 +41,19 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
#define YYERROR_VERBOSE
#define YYSTYPE znode
-#ifdef ZTS
-# define YYPARSE_PARAM tsrm_ls
-# define YYLEX_PARAM tsrm_ls
-#endif
-
%}
%pure_parser
%expect 3
+%code requires {
+#ifdef ZTS
+# define YYPARSE_PARAM tsrm_ls
+# define YYLEX_PARAM tsrm_ls
+#endif
+}
+
%token END 0 "end of file"
%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE
%token T_INCLUDE "include (T_INCLUDE)"
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index 03cf334db..2b25ae7eb 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Mar 27 23:52:29 2013 */
+/* Generated by re2c 0.13.5 on Sun Jun 16 14:52:22 2013 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -258,6 +258,7 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
CG(heredoc) = NULL;
CG(heredoc_len) = 0;
}
+ RESET_DOC_COMMENT();
}
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
@@ -541,6 +542,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
CG(zend_lineno) = 1;
}
+ RESET_DOC_COMMENT();
CG(increment_lineno) = 0;
return SUCCESS;
}
@@ -585,7 +587,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
compiler_result = zendparse(TSRMLS_C);
zend_do_return(&retval_znode, 0 TSRMLS_CC);
CG(in_compilation) = original_in_compilation;
- if (compiler_result==1) { /* parser error */
+ if (compiler_result != 0) { /* parser error */
zend_bailout();
}
compilation_successful=1;
@@ -691,6 +693,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
zend_set_compiled_filename(filename TSRMLS_CC);
CG(zend_lineno) = 1;
CG(increment_lineno) = 0;
+ RESET_DOC_COMMENT();
return SUCCESS;
}
@@ -760,7 +763,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
SCNG(script_filtered) = NULL;
}
- if (compiler_result==1) {
+ if (compiler_result != 0) {
CG(active_op_array) = original_active_op_array;
CG(unclean_shutdown)=1;
destroy_op_array(op_array TSRMLS_CC);
@@ -1000,7 +1003,7 @@ restart:
yymore_restart:
-#line 1004 "Zend/zend_language_scanner.c"
+#line 1007 "Zend/zend_language_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -1099,7 +1102,7 @@ yyc_INITIAL:
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1792 "Zend/zend_language_scanner.l"
+#line 1795 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1159,7 +1162,7 @@ inline_html:
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
-#line 1163 "Zend/zend_language_scanner.c"
+#line 1166 "Zend/zend_language_scanner.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1177,7 +1180,7 @@ yy5:
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1780 "Zend/zend_language_scanner.l"
+#line 1783 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1189,14 +1192,14 @@ yy6:
goto inline_char_handler;
}
}
-#line 1193 "Zend/zend_language_scanner.c"
+#line 1196 "Zend/zend_language_scanner.c"
yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1757 "Zend/zend_language_scanner.l"
+#line 1760 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1208,7 +1211,7 @@ yy7:
goto inline_char_handler;
}
}
-#line 1212 "Zend/zend_language_scanner.c"
+#line 1215 "Zend/zend_language_scanner.c"
yy9:
YYDEBUG(9, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1394,7 +1397,7 @@ yy35:
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1717 "Zend/zend_language_scanner.l"
+#line 1720 "Zend/zend_language_scanner.l"
{
YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
@@ -1411,7 +1414,7 @@ yy35:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1415 "Zend/zend_language_scanner.c"
+#line 1418 "Zend/zend_language_scanner.c"
yy39:
YYDEBUG(39, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1438,7 +1441,7 @@ yy43:
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1735 "Zend/zend_language_scanner.l"
+#line 1738 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1450,13 +1453,13 @@ yy43:
goto inline_char_handler;
}
}
-#line 1454 "Zend/zend_language_scanner.c"
+#line 1457 "Zend/zend_language_scanner.c"
yy45:
YYDEBUG(45, *YYCURSOR);
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1748 "Zend/zend_language_scanner.l"
+#line 1751 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -1464,7 +1467,7 @@ yy45:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG_WITH_ECHO;
}
-#line 1468 "Zend/zend_language_scanner.c"
+#line 1471 "Zend/zend_language_scanner.c"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1491,7 +1494,7 @@ yy50:
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1770 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -1500,7 +1503,7 @@ yy51:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1504 "Zend/zend_language_scanner.c"
+#line 1507 "Zend/zend_language_scanner.c"
yy52:
YYDEBUG(52, *YYCURSOR);
++YYCURSOR;
@@ -1571,7 +1574,7 @@ yyc_ST_BACKQUOTE:
yy56:
YYDEBUG(56, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2243 "Zend/zend_language_scanner.l"
+#line 2246 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1612,7 +1615,7 @@ yy56:
zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1616 "Zend/zend_language_scanner.c"
+#line 1619 "Zend/zend_language_scanner.c"
yy57:
YYDEBUG(57, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1623,12 +1626,12 @@ yy58:
++YYCURSOR;
YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2187 "Zend/zend_language_scanner.l"
+#line 2190 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
-#line 1632 "Zend/zend_language_scanner.c"
+#line 1635 "Zend/zend_language_scanner.c"
yy60:
YYDEBUG(60, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1638,14 +1641,14 @@ yy61:
++YYCURSOR;
YYDEBUG(62, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2177 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1649 "Zend/zend_language_scanner.c"
+#line 1652 "Zend/zend_language_scanner.c"
yy63:
YYDEBUG(63, *YYCURSOR);
yyaccept = 0;
@@ -1661,24 +1664,24 @@ yy63:
yy65:
YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1877 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1671 "Zend/zend_language_scanner.c"
+#line 1674 "Zend/zend_language_scanner.c"
yy66:
YYDEBUG(66, *YYCURSOR);
++YYCURSOR;
YYDEBUG(67, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1451 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1682 "Zend/zend_language_scanner.c"
+#line 1685 "Zend/zend_language_scanner.c"
yy68:
YYDEBUG(68, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1692,7 +1695,7 @@ yy70:
++YYCURSOR;
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1869 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1700,7 +1703,7 @@ yy70:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1704 "Zend/zend_language_scanner.c"
+#line 1707 "Zend/zend_language_scanner.c"
yy72:
YYDEBUG(72, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1718,7 +1721,7 @@ yy73:
++YYCURSOR;
YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1856 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1726,7 +1729,7 @@ yy73:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1730 "Zend/zend_language_scanner.c"
+#line 1733 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
@@ -1794,7 +1797,7 @@ yy77:
yy78:
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2193 "Zend/zend_language_scanner.l"
+#line 2196 "Zend/zend_language_scanner.l"
{
if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1843,7 +1846,7 @@ double_quotes_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1847 "Zend/zend_language_scanner.c"
+#line 1850 "Zend/zend_language_scanner.c"
yy79:
YYDEBUG(79, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1854,12 +1857,12 @@ yy80:
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2182 "Zend/zend_language_scanner.l"
+#line 2185 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
}
-#line 1863 "Zend/zend_language_scanner.c"
+#line 1866 "Zend/zend_language_scanner.c"
yy82:
YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1869,14 +1872,14 @@ yy83:
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2177 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1880 "Zend/zend_language_scanner.c"
+#line 1883 "Zend/zend_language_scanner.c"
yy85:
YYDEBUG(85, *YYCURSOR);
yyaccept = 0;
@@ -1892,24 +1895,24 @@ yy85:
yy87:
YYDEBUG(87, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1877 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1902 "Zend/zend_language_scanner.c"
+#line 1905 "Zend/zend_language_scanner.c"
yy88:
YYDEBUG(88, *YYCURSOR);
++YYCURSOR;
YYDEBUG(89, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1451 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1913 "Zend/zend_language_scanner.c"
+#line 1916 "Zend/zend_language_scanner.c"
yy90:
YYDEBUG(90, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1923,7 +1926,7 @@ yy92:
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1869 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1931,7 +1934,7 @@ yy92:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1935 "Zend/zend_language_scanner.c"
+#line 1938 "Zend/zend_language_scanner.c"
yy94:
YYDEBUG(94, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1949,7 +1952,7 @@ yy95:
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1856 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1957,7 +1960,7 @@ yy95:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1961 "Zend/zend_language_scanner.c"
+#line 1964 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_END_HEREDOC:
@@ -1968,7 +1971,7 @@ yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2161 "Zend/zend_language_scanner.l"
+#line 2164 "Zend/zend_language_scanner.l"
{
YYCURSOR += CG(heredoc_len) - 1;
yyleng = CG(heredoc_len);
@@ -1980,7 +1983,7 @@ yyc_ST_END_HEREDOC:
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
}
-#line 1984 "Zend/zend_language_scanner.c"
+#line 1987 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_HEREDOC:
{
@@ -2042,7 +2045,7 @@ yy103:
yy104:
YYDEBUG(104, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2285 "Zend/zend_language_scanner.l"
+#line 2288 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -2113,7 +2116,7 @@ heredoc_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 2117 "Zend/zend_language_scanner.c"
+#line 2120 "Zend/zend_language_scanner.c"
yy105:
YYDEBUG(105, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2128,14 +2131,14 @@ yy107:
++YYCURSOR;
YYDEBUG(108, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2177 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 2139 "Zend/zend_language_scanner.c"
+#line 2142 "Zend/zend_language_scanner.c"
yy109:
YYDEBUG(109, *YYCURSOR);
yyaccept = 0;
@@ -2151,24 +2154,24 @@ yy109:
yy111:
YYDEBUG(111, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1877 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2161 "Zend/zend_language_scanner.c"
+#line 2164 "Zend/zend_language_scanner.c"
yy112:
YYDEBUG(112, *YYCURSOR);
++YYCURSOR;
YYDEBUG(113, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1451 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 2172 "Zend/zend_language_scanner.c"
+#line 2175 "Zend/zend_language_scanner.c"
yy114:
YYDEBUG(114, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2182,7 +2185,7 @@ yy116:
++YYCURSOR;
YYDEBUG(117, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1869 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2190,7 +2193,7 @@ yy116:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2194 "Zend/zend_language_scanner.c"
+#line 2197 "Zend/zend_language_scanner.c"
yy118:
YYDEBUG(118, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2208,7 +2211,7 @@ yy119:
++YYCURSOR;
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1856 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2216,7 +2219,7 @@ yy119:
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2220 "Zend/zend_language_scanner.c"
+#line 2223 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_IN_SCRIPTING:
@@ -2397,13 +2400,13 @@ yy123:
yy124:
YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1897 "Zend/zend_language_scanner.l"
+#line 1900 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 2407 "Zend/zend_language_scanner.c"
+#line 2410 "Zend/zend_language_scanner.c"
yy125:
YYDEBUG(125, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2629,11 +2632,11 @@ yy137:
yy138:
YYDEBUG(138, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1440 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
{
return yytext[0];
}
-#line 2637 "Zend/zend_language_scanner.c"
+#line 2640 "Zend/zend_language_scanner.c"
yy139:
YYDEBUG(139, *YYCURSOR);
++YYCURSOR;
@@ -2642,7 +2645,7 @@ yy139:
yy140:
YYDEBUG(140, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1171 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -2650,7 +2653,7 @@ yy140:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 2654 "Zend/zend_language_scanner.c"
+#line 2657 "Zend/zend_language_scanner.c"
yy141:
YYDEBUG(141, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2661,11 +2664,11 @@ yy142:
++YYCURSOR;
YYDEBUG(143, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1200 "Zend/zend_language_scanner.l"
+#line 1203 "Zend/zend_language_scanner.l"
{
return T_NS_SEPARATOR;
}
-#line 2669 "Zend/zend_language_scanner.c"
+#line 2672 "Zend/zend_language_scanner.c"
yy144:
YYDEBUG(144, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2893,18 +2896,18 @@ yy167:
++YYCURSOR;
YYDEBUG(168, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1448 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
-#line 2902 "Zend/zend_language_scanner.c"
+#line 2905 "Zend/zend_language_scanner.c"
yy169:
YYDEBUG(169, *YYCURSOR);
++YYCURSOR;
YYDEBUG(170, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1460 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2912,7 +2915,7 @@ yy169:
}
return '}';
}
-#line 2916 "Zend/zend_language_scanner.c"
+#line 2919 "Zend/zend_language_scanner.c"
yy171:
YYDEBUG(171, *YYCURSOR);
yyaccept = 2;
@@ -2940,7 +2943,7 @@ yy171:
yy172:
YYDEBUG(172, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1507 "Zend/zend_language_scanner.l"
+#line 1510 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -2961,7 +2964,7 @@ yy172:
zendlval->type = IS_LONG;
return T_LNUMBER;
}
-#line 2965 "Zend/zend_language_scanner.c"
+#line 2968 "Zend/zend_language_scanner.c"
yy173:
YYDEBUG(173, *YYCURSOR);
yyaccept = 2;
@@ -2989,7 +2992,7 @@ yy175:
yy176:
YYDEBUG(176, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1904 "Zend/zend_language_scanner.l"
+#line 1907 "Zend/zend_language_scanner.l"
{
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
@@ -3023,14 +3026,14 @@ yy176:
return T_COMMENT;
}
-#line 3027 "Zend/zend_language_scanner.c"
+#line 3030 "Zend/zend_language_scanner.c"
yy177:
YYDEBUG(177, *YYCURSOR);
++YYCURSOR;
yy178:
YYDEBUG(178, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1995 "Zend/zend_language_scanner.l"
+#line 1998 "Zend/zend_language_scanner.l"
{
register char *s, *t;
char *end;
@@ -3098,14 +3101,14 @@ yy178:
}
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 3102 "Zend/zend_language_scanner.c"
+#line 3105 "Zend/zend_language_scanner.c"
yy179:
YYDEBUG(179, *YYCURSOR);
++YYCURSOR;
yy180:
YYDEBUG(180, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2064 "Zend/zend_language_scanner.l"
+#line 2067 "Zend/zend_language_scanner.l"
{
int bprefix = (yytext[0] != '"') ? 1 : 0;
@@ -3146,24 +3149,24 @@ yy180:
BEGIN(ST_DOUBLE_QUOTES);
return '"';
}
-#line 3150 "Zend/zend_language_scanner.c"
+#line 3153 "Zend/zend_language_scanner.c"
yy181:
YYDEBUG(181, *YYCURSOR);
++YYCURSOR;
YYDEBUG(182, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2155 "Zend/zend_language_scanner.l"
+#line 2158 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
}
-#line 3161 "Zend/zend_language_scanner.c"
+#line 3164 "Zend/zend_language_scanner.c"
yy183:
YYDEBUG(183, *YYCURSOR);
++YYCURSOR;
YYDEBUG(184, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2413 "Zend/zend_language_scanner.l"
+#line 2416 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -3172,7 +3175,7 @@ yy183:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 3176 "Zend/zend_language_scanner.c"
+#line 3179 "Zend/zend_language_scanner.c"
yy185:
YYDEBUG(185, *YYCURSOR);
++YYCURSOR;
@@ -3199,13 +3202,13 @@ yy187:
yy189:
YYDEBUG(189, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1572 "Zend/zend_language_scanner.l"
+#line 1575 "Zend/zend_language_scanner.l"
{
zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
-#line 3209 "Zend/zend_language_scanner.c"
+#line 3212 "Zend/zend_language_scanner.c"
yy190:
YYDEBUG(190, *YYCURSOR);
yyaccept = 2;
@@ -3297,7 +3300,7 @@ yy199:
}
YYDEBUG(201, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1482 "Zend/zend_language_scanner.l"
+#line 1485 "Zend/zend_language_scanner.l"
{
char *bin = yytext + 2; /* Skip "0b" */
int len = yyleng - 2;
@@ -3322,7 +3325,7 @@ yy199:
return T_DNUMBER;
}
}
-#line 3326 "Zend/zend_language_scanner.c"
+#line 3329 "Zend/zend_language_scanner.c"
yy202:
YYDEBUG(202, *YYCURSOR);
++YYCURSOR;
@@ -3334,7 +3337,7 @@ yy202:
}
YYDEBUG(204, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1528 "Zend/zend_language_scanner.l"
+#line 1531 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
@@ -3359,7 +3362,7 @@ yy202:
return T_DNUMBER;
}
}
-#line 3363 "Zend/zend_language_scanner.c"
+#line 3366 "Zend/zend_language_scanner.c"
yy205:
YYDEBUG(205, *YYCURSOR);
++YYCURSOR;
@@ -3368,7 +3371,7 @@ yy205:
yy206:
YYDEBUG(206, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1972 "Zend/zend_language_scanner.l"
+#line 1975 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -3376,7 +3379,7 @@ yy206:
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 3380 "Zend/zend_language_scanner.c"
+#line 3383 "Zend/zend_language_scanner.c"
yy207:
YYDEBUG(207, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3410,13 +3413,13 @@ yy209:
yy211:
YYDEBUG(211, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1877 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 3420 "Zend/zend_language_scanner.c"
+#line 3423 "Zend/zend_language_scanner.c"
yy212:
YYDEBUG(212, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3430,11 +3433,11 @@ yy213:
}
YYDEBUG(214, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1428 "Zend/zend_language_scanner.l"
+#line 1431 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_XOR;
}
-#line 3438 "Zend/zend_language_scanner.c"
+#line 3441 "Zend/zend_language_scanner.c"
yy215:
YYDEBUG(215, *YYCURSOR);
++YYCURSOR;
@@ -3443,61 +3446,61 @@ yy215:
}
YYDEBUG(216, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1420 "Zend/zend_language_scanner.l"
+#line 1423 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_OR;
}
-#line 3451 "Zend/zend_language_scanner.c"
+#line 3454 "Zend/zend_language_scanner.c"
yy217:
YYDEBUG(217, *YYCURSOR);
++YYCURSOR;
YYDEBUG(218, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1408 "Zend/zend_language_scanner.l"
+#line 1411 "Zend/zend_language_scanner.l"
{
return T_XOR_EQUAL;
}
-#line 3461 "Zend/zend_language_scanner.c"
+#line 3464 "Zend/zend_language_scanner.c"
yy219:
YYDEBUG(219, *YYCURSOR);
++YYCURSOR;
YYDEBUG(220, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1412 "Zend/zend_language_scanner.l"
+#line 1415 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_OR;
}
-#line 3471 "Zend/zend_language_scanner.c"
+#line 3474 "Zend/zend_language_scanner.c"
yy221:
YYDEBUG(221, *YYCURSOR);
++YYCURSOR;
YYDEBUG(222, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1404 "Zend/zend_language_scanner.l"
+#line 1407 "Zend/zend_language_scanner.l"
{
return T_OR_EQUAL;
}
-#line 3481 "Zend/zend_language_scanner.c"
+#line 3484 "Zend/zend_language_scanner.c"
yy223:
YYDEBUG(223, *YYCURSOR);
++YYCURSOR;
YYDEBUG(224, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1416 "Zend/zend_language_scanner.l"
+#line 1419 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_AND;
}
-#line 3491 "Zend/zend_language_scanner.c"
+#line 3494 "Zend/zend_language_scanner.c"
yy225:
YYDEBUG(225, *YYCURSOR);
++YYCURSOR;
YYDEBUG(226, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1400 "Zend/zend_language_scanner.l"
+#line 1403 "Zend/zend_language_scanner.l"
{
return T_AND_EQUAL;
}
-#line 3501 "Zend/zend_language_scanner.c"
+#line 3504 "Zend/zend_language_scanner.c"
yy227:
YYDEBUG(227, *YYCURSOR);
++YYCURSOR;
@@ -3506,7 +3509,7 @@ yy227:
yy228:
YYDEBUG(228, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1981 "Zend/zend_language_scanner.l"
+#line 1984 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
@@ -3519,17 +3522,17 @@ yy228:
return yytext[0];
}
}
-#line 3523 "Zend/zend_language_scanner.c"
+#line 3526 "Zend/zend_language_scanner.c"
yy229:
YYDEBUG(229, *YYCURSOR);
++YYCURSOR;
YYDEBUG(230, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1388 "Zend/zend_language_scanner.l"
+#line 1391 "Zend/zend_language_scanner.l"
{
return T_MOD_EQUAL;
}
-#line 3533 "Zend/zend_language_scanner.c"
+#line 3536 "Zend/zend_language_scanner.c"
yy231:
YYDEBUG(231, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3560,11 +3563,11 @@ yy235:
++YYCURSOR;
YYDEBUG(236, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1384 "Zend/zend_language_scanner.l"
+#line 1387 "Zend/zend_language_scanner.l"
{
return T_CONCAT_EQUAL;
}
-#line 3568 "Zend/zend_language_scanner.c"
+#line 3571 "Zend/zend_language_scanner.c"
yy237:
YYDEBUG(237, *YYCURSOR);
yyaccept = 4;
@@ -3573,7 +3576,7 @@ yy237:
yy238:
YYDEBUG(238, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1938 "Zend/zend_language_scanner.l"
+#line 1941 "Zend/zend_language_scanner.l"
{
int doc_com;
@@ -3607,7 +3610,7 @@ yy238:
return T_COMMENT;
}
-#line 3611 "Zend/zend_language_scanner.c"
+#line 3614 "Zend/zend_language_scanner.c"
yy239:
YYDEBUG(239, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3617,11 +3620,11 @@ yy240:
++YYCURSOR;
YYDEBUG(241, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1380 "Zend/zend_language_scanner.l"
+#line 1383 "Zend/zend_language_scanner.l"
{
return T_DIV_EQUAL;
}
-#line 3625 "Zend/zend_language_scanner.c"
+#line 3628 "Zend/zend_language_scanner.c"
yy242:
YYDEBUG(242, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3644,42 +3647,42 @@ yy245:
++YYCURSOR;
YYDEBUG(246, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1376 "Zend/zend_language_scanner.l"
+#line 1379 "Zend/zend_language_scanner.l"
{
return T_MUL_EQUAL;
}
-#line 3652 "Zend/zend_language_scanner.c"
+#line 3655 "Zend/zend_language_scanner.c"
yy247:
YYDEBUG(247, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy251;
YYDEBUG(248, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1436 "Zend/zend_language_scanner.l"
+#line 1439 "Zend/zend_language_scanner.l"
{
return T_SR;
}
-#line 3663 "Zend/zend_language_scanner.c"
+#line 3666 "Zend/zend_language_scanner.c"
yy249:
YYDEBUG(249, *YYCURSOR);
++YYCURSOR;
YYDEBUG(250, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1364 "Zend/zend_language_scanner.l"
+#line 1367 "Zend/zend_language_scanner.l"
{
return T_IS_GREATER_OR_EQUAL;
}
-#line 3673 "Zend/zend_language_scanner.c"
+#line 3676 "Zend/zend_language_scanner.c"
yy251:
YYDEBUG(251, *YYCURSOR);
++YYCURSOR;
YYDEBUG(252, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1396 "Zend/zend_language_scanner.l"
+#line 1399 "Zend/zend_language_scanner.l"
{
return T_SR_EQUAL;
}
-#line 3683 "Zend/zend_language_scanner.c"
+#line 3686 "Zend/zend_language_scanner.c"
yy253:
YYDEBUG(253, *YYCURSOR);
yyaccept = 5;
@@ -3690,11 +3693,11 @@ yy253:
yy254:
YYDEBUG(254, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1432 "Zend/zend_language_scanner.l"
+#line 1435 "Zend/zend_language_scanner.l"
{
return T_SL;
}
-#line 3698 "Zend/zend_language_scanner.c"
+#line 3701 "Zend/zend_language_scanner.c"
yy255:
YYDEBUG(255, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3706,22 +3709,22 @@ yy256:
++YYCURSOR;
YYDEBUG(257, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1360 "Zend/zend_language_scanner.l"
+#line 1363 "Zend/zend_language_scanner.l"
{
return T_IS_SMALLER_OR_EQUAL;
}
-#line 3714 "Zend/zend_language_scanner.c"
+#line 3717 "Zend/zend_language_scanner.c"
yy258:
YYDEBUG(258, *YYCURSOR);
++YYCURSOR;
yy259:
YYDEBUG(259, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1356 "Zend/zend_language_scanner.l"
+#line 1359 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_EQUAL;
}
-#line 3725 "Zend/zend_language_scanner.c"
+#line 3728 "Zend/zend_language_scanner.c"
yy260:
YYDEBUG(260, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3772,11 +3775,11 @@ yy267:
++YYCURSOR;
YYDEBUG(268, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1392 "Zend/zend_language_scanner.l"
+#line 1395 "Zend/zend_language_scanner.l"
{
return T_SL_EQUAL;
}
-#line 3780 "Zend/zend_language_scanner.c"
+#line 3783 "Zend/zend_language_scanner.c"
yy269:
YYDEBUG(269, *YYCURSOR);
++YYCURSOR;
@@ -3881,7 +3884,7 @@ yy278:
yy279:
YYDEBUG(279, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2106 "Zend/zend_language_scanner.l"
+#line 2109 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3929,7 +3932,7 @@ yy279:
return T_START_HEREDOC;
}
-#line 3933 "Zend/zend_language_scanner.c"
+#line 3936 "Zend/zend_language_scanner.c"
yy280:
YYDEBUG(280, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3969,31 +3972,31 @@ yy283:
++YYCURSOR;
YYDEBUG(285, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1348 "Zend/zend_language_scanner.l"
+#line 1351 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_IDENTICAL;
}
-#line 3977 "Zend/zend_language_scanner.c"
+#line 3980 "Zend/zend_language_scanner.c"
yy286:
YYDEBUG(286, *YYCURSOR);
++YYCURSOR;
YYDEBUG(287, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1368 "Zend/zend_language_scanner.l"
+#line 1371 "Zend/zend_language_scanner.l"
{
return T_PLUS_EQUAL;
}
-#line 3987 "Zend/zend_language_scanner.c"
+#line 3990 "Zend/zend_language_scanner.c"
yy288:
YYDEBUG(288, *YYCURSOR);
++YYCURSOR;
YYDEBUG(289, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1336 "Zend/zend_language_scanner.l"
+#line 1339 "Zend/zend_language_scanner.l"
{
return T_INC;
}
-#line 3997 "Zend/zend_language_scanner.c"
+#line 4000 "Zend/zend_language_scanner.c"
yy290:
YYDEBUG(290, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4012,42 +4015,42 @@ yy292:
}
YYDEBUG(293, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1324 "Zend/zend_language_scanner.l"
+#line 1327 "Zend/zend_language_scanner.l"
{
return T_LIST;
}
-#line 4020 "Zend/zend_language_scanner.c"
+#line 4023 "Zend/zend_language_scanner.c"
yy294:
YYDEBUG(294, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy298;
YYDEBUG(295, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1352 "Zend/zend_language_scanner.l"
+#line 1355 "Zend/zend_language_scanner.l"
{
return T_IS_EQUAL;
}
-#line 4031 "Zend/zend_language_scanner.c"
+#line 4034 "Zend/zend_language_scanner.c"
yy296:
YYDEBUG(296, *YYCURSOR);
++YYCURSOR;
YYDEBUG(297, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1320 "Zend/zend_language_scanner.l"
+#line 1323 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_ARROW;
}
-#line 4041 "Zend/zend_language_scanner.c"
+#line 4044 "Zend/zend_language_scanner.c"
yy298:
YYDEBUG(298, *YYCURSOR);
++YYCURSOR;
YYDEBUG(299, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1344 "Zend/zend_language_scanner.l"
+#line 1347 "Zend/zend_language_scanner.l"
{
return T_IS_IDENTICAL;
}
-#line 4051 "Zend/zend_language_scanner.c"
+#line 4054 "Zend/zend_language_scanner.c"
yy300:
YYDEBUG(300, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4177,7 +4180,7 @@ yy316:
}
YYDEBUG(319, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1707 "Zend/zend_language_scanner.l"
+#line 1710 "Zend/zend_language_scanner.l"
{
if (CG(current_namespace)) {
*zendlval = *CG(current_namespace);
@@ -4187,7 +4190,7 @@ yy316:
}
return T_NS_C;
}
-#line 4191 "Zend/zend_language_scanner.c"
+#line 4194 "Zend/zend_language_scanner.c"
yy320:
YYDEBUG(320, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4207,7 +4210,7 @@ yy321:
}
YYDEBUG(324, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1680 "Zend/zend_language_scanner.l"
+#line 1683 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
const size_t filename_len = strlen(filename);
@@ -4234,7 +4237,7 @@ yy321:
zendlval->type = IS_STRING;
return T_DIR;
}
-#line 4238 "Zend/zend_language_scanner.c"
+#line 4241 "Zend/zend_language_scanner.c"
yy325:
YYDEBUG(325, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4259,13 +4262,13 @@ yy327:
}
YYDEBUG(330, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1662 "Zend/zend_language_scanner.l"
+#line 1665 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = CG(zend_lineno);
zendlval->type = IS_LONG;
return T_LINE;
}
-#line 4269 "Zend/zend_language_scanner.c"
+#line 4272 "Zend/zend_language_scanner.c"
yy331:
YYDEBUG(331, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4300,7 +4303,7 @@ yy335:
}
YYDEBUG(338, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1641 "Zend/zend_language_scanner.l"
+#line 1644 "Zend/zend_language_scanner.l"
{
const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
@@ -4321,7 +4324,7 @@ yy335:
zendlval->type = IS_STRING;
return T_METHOD_C;
}
-#line 4325 "Zend/zend_language_scanner.c"
+#line 4328 "Zend/zend_language_scanner.c"
yy339:
YYDEBUG(339, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4372,7 +4375,7 @@ yy346:
}
YYDEBUG(349, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1625 "Zend/zend_language_scanner.l"
+#line 1628 "Zend/zend_language_scanner.l"
{
const char *func_name = NULL;
@@ -4388,7 +4391,7 @@ yy346:
zendlval->type = IS_STRING;
return T_FUNC_C;
}
-#line 4392 "Zend/zend_language_scanner.c"
+#line 4395 "Zend/zend_language_scanner.c"
yy350:
YYDEBUG(350, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4408,7 +4411,7 @@ yy351:
}
YYDEBUG(354, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1668 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
@@ -4420,7 +4423,7 @@ yy351:
zendlval->type = IS_STRING;
return T_FILE;
}
-#line 4424 "Zend/zend_language_scanner.c"
+#line 4427 "Zend/zend_language_scanner.c"
yy355:
YYDEBUG(355, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4450,7 +4453,7 @@ yy358:
}
YYDEBUG(361, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1605 "Zend/zend_language_scanner.l"
+#line 1608 "Zend/zend_language_scanner.l"
{
const char *trait_name = NULL;
@@ -4470,7 +4473,7 @@ yy358:
return T_TRAIT_C;
}
-#line 4474 "Zend/zend_language_scanner.c"
+#line 4477 "Zend/zend_language_scanner.c"
yy362:
YYDEBUG(362, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4500,7 +4503,7 @@ yy365:
}
YYDEBUG(368, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1578 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
{
const char *class_name = NULL;
@@ -4527,7 +4530,7 @@ yy365:
}
return T_CLASS_C;
}
-#line 4531 "Zend/zend_language_scanner.c"
+#line 4534 "Zend/zend_language_scanner.c"
yy369:
YYDEBUG(369, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4589,11 +4592,11 @@ yy380:
}
YYDEBUG(381, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1288 "Zend/zend_language_scanner.l"
+#line 1291 "Zend/zend_language_scanner.l"
{
return T_HALT_COMPILER;
}
-#line 4597 "Zend/zend_language_scanner.c"
+#line 4600 "Zend/zend_language_scanner.c"
yy382:
YYDEBUG(382, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4613,11 +4616,11 @@ yy384:
}
YYDEBUG(385, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1268 "Zend/zend_language_scanner.l"
+#line 1271 "Zend/zend_language_scanner.l"
{
return T_USE;
}
-#line 4621 "Zend/zend_language_scanner.c"
+#line 4624 "Zend/zend_language_scanner.c"
yy386:
YYDEBUG(386, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4636,11 +4639,11 @@ yy388:
}
YYDEBUG(389, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1316 "Zend/zend_language_scanner.l"
+#line 1319 "Zend/zend_language_scanner.l"
{
return T_UNSET;
}
-#line 4644 "Zend/zend_language_scanner.c"
+#line 4647 "Zend/zend_language_scanner.c"
yy390:
YYDEBUG(390, *YYCURSOR);
++YYCURSOR;
@@ -4812,11 +4815,11 @@ yy405:
++YYCURSOR;
YYDEBUG(407, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1216 "Zend/zend_language_scanner.l"
+#line 1219 "Zend/zend_language_scanner.l"
{
return T_INT_CAST;
}
-#line 4820 "Zend/zend_language_scanner.c"
+#line 4823 "Zend/zend_language_scanner.c"
yy408:
YYDEBUG(408, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4860,11 +4863,11 @@ yy413:
++YYCURSOR;
YYDEBUG(416, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1220 "Zend/zend_language_scanner.l"
+#line 1223 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_CAST;
}
-#line 4868 "Zend/zend_language_scanner.c"
+#line 4871 "Zend/zend_language_scanner.c"
yy417:
YYDEBUG(417, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4934,11 +4937,11 @@ yy427:
++YYCURSOR;
YYDEBUG(430, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1224 "Zend/zend_language_scanner.l"
+#line 1227 "Zend/zend_language_scanner.l"
{
return T_STRING_CAST;
}
-#line 4942 "Zend/zend_language_scanner.c"
+#line 4945 "Zend/zend_language_scanner.c"
yy431:
YYDEBUG(431, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4971,11 +4974,11 @@ yy434:
++YYCURSOR;
YYDEBUG(437, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1228 "Zend/zend_language_scanner.l"
+#line 1231 "Zend/zend_language_scanner.l"
{
return T_ARRAY_CAST;
}
-#line 4979 "Zend/zend_language_scanner.c"
+#line 4982 "Zend/zend_language_scanner.c"
yy438:
YYDEBUG(438, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5013,11 +5016,11 @@ yy442:
++YYCURSOR;
YYDEBUG(445, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1232 "Zend/zend_language_scanner.l"
+#line 1235 "Zend/zend_language_scanner.l"
{
return T_OBJECT_CAST;
}
-#line 5021 "Zend/zend_language_scanner.c"
+#line 5024 "Zend/zend_language_scanner.c"
yy446:
YYDEBUG(446, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5058,11 +5061,11 @@ yy451:
++YYCURSOR;
YYDEBUG(453, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1236 "Zend/zend_language_scanner.l"
+#line 1239 "Zend/zend_language_scanner.l"
{
return T_BOOL_CAST;
}
-#line 5066 "Zend/zend_language_scanner.c"
+#line 5069 "Zend/zend_language_scanner.c"
yy454:
YYDEBUG(454, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5122,11 +5125,11 @@ yy462:
++YYCURSOR;
YYDEBUG(465, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1240 "Zend/zend_language_scanner.l"
+#line 1243 "Zend/zend_language_scanner.l"
{
return T_UNSET_CAST;
}
-#line 5130 "Zend/zend_language_scanner.c"
+#line 5133 "Zend/zend_language_scanner.c"
yy466:
YYDEBUG(466, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5140,11 +5143,11 @@ yy467:
}
YYDEBUG(468, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1212 "Zend/zend_language_scanner.l"
+#line 1215 "Zend/zend_language_scanner.l"
{
return T_VAR;
}
-#line 5148 "Zend/zend_language_scanner.c"
+#line 5151 "Zend/zend_language_scanner.c"
yy469:
YYDEBUG(469, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5164,11 +5167,11 @@ yy471:
}
YYDEBUG(472, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1204 "Zend/zend_language_scanner.l"
+#line 1207 "Zend/zend_language_scanner.l"
{
return T_NEW;
}
-#line 5172 "Zend/zend_language_scanner.c"
+#line 5175 "Zend/zend_language_scanner.c"
yy473:
YYDEBUG(473, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5207,21 +5210,21 @@ yy479:
}
YYDEBUG(480, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1264 "Zend/zend_language_scanner.l"
+#line 1267 "Zend/zend_language_scanner.l"
{
return T_NAMESPACE;
}
-#line 5215 "Zend/zend_language_scanner.c"
+#line 5218 "Zend/zend_language_scanner.c"
yy481:
YYDEBUG(481, *YYCURSOR);
++YYCURSOR;
YYDEBUG(482, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1196 "Zend/zend_language_scanner.l"
+#line 1199 "Zend/zend_language_scanner.l"
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 5225 "Zend/zend_language_scanner.c"
+#line 5228 "Zend/zend_language_scanner.c"
yy483:
YYDEBUG(483, *YYCURSOR);
++YYCURSOR;
@@ -5243,32 +5246,32 @@ yy485:
++YYCURSOR;
YYDEBUG(486, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1372 "Zend/zend_language_scanner.l"
+#line 1375 "Zend/zend_language_scanner.l"
{
return T_MINUS_EQUAL;
}
-#line 5251 "Zend/zend_language_scanner.c"
+#line 5254 "Zend/zend_language_scanner.c"
yy487:
YYDEBUG(487, *YYCURSOR);
++YYCURSOR;
YYDEBUG(488, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1340 "Zend/zend_language_scanner.l"
+#line 1343 "Zend/zend_language_scanner.l"
{
return T_DEC;
}
-#line 5261 "Zend/zend_language_scanner.c"
+#line 5264 "Zend/zend_language_scanner.c"
yy489:
YYDEBUG(489, *YYCURSOR);
++YYCURSOR;
YYDEBUG(490, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1166 "Zend/zend_language_scanner.l"
+#line 1169 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
-#line 5272 "Zend/zend_language_scanner.c"
+#line 5275 "Zend/zend_language_scanner.c"
yy491:
YYDEBUG(491, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5313,11 +5316,11 @@ yy496:
}
YYDEBUG(497, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1312 "Zend/zend_language_scanner.l"
+#line 1315 "Zend/zend_language_scanner.l"
{
return T_PUBLIC;
}
-#line 5321 "Zend/zend_language_scanner.c"
+#line 5324 "Zend/zend_language_scanner.c"
yy498:
YYDEBUG(498, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5372,11 +5375,11 @@ yy505:
}
YYDEBUG(506, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1308 "Zend/zend_language_scanner.l"
+#line 1311 "Zend/zend_language_scanner.l"
{
return T_PROTECTED;
}
-#line 5380 "Zend/zend_language_scanner.c"
+#line 5383 "Zend/zend_language_scanner.c"
yy507:
YYDEBUG(507, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5406,11 +5409,11 @@ yy511:
}
YYDEBUG(512, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1304 "Zend/zend_language_scanner.l"
+#line 1307 "Zend/zend_language_scanner.l"
{
return T_PRIVATE;
}
-#line 5414 "Zend/zend_language_scanner.c"
+#line 5417 "Zend/zend_language_scanner.c"
yy513:
YYDEBUG(513, *YYCURSOR);
++YYCURSOR;
@@ -5419,11 +5422,11 @@ yy513:
}
YYDEBUG(514, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1142 "Zend/zend_language_scanner.l"
+#line 1145 "Zend/zend_language_scanner.l"
{
return T_PRINT;
}
-#line 5427 "Zend/zend_language_scanner.c"
+#line 5430 "Zend/zend_language_scanner.c"
yy515:
YYDEBUG(515, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5448,11 +5451,11 @@ yy518:
}
YYDEBUG(519, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1134 "Zend/zend_language_scanner.l"
+#line 1137 "Zend/zend_language_scanner.l"
{
return T_GOTO;
}
-#line 5456 "Zend/zend_language_scanner.c"
+#line 5459 "Zend/zend_language_scanner.c"
yy520:
YYDEBUG(520, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5476,11 +5479,11 @@ yy523:
}
YYDEBUG(524, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1276 "Zend/zend_language_scanner.l"
+#line 1279 "Zend/zend_language_scanner.l"
{
return T_GLOBAL;
}
-#line 5484 "Zend/zend_language_scanner.c"
+#line 5487 "Zend/zend_language_scanner.c"
yy525:
YYDEBUG(525, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5517,11 +5520,11 @@ yy531:
}
YYDEBUG(532, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1126 "Zend/zend_language_scanner.l"
+#line 1129 "Zend/zend_language_scanner.l"
{
return T_BREAK;
}
-#line 5525 "Zend/zend_language_scanner.c"
+#line 5528 "Zend/zend_language_scanner.c"
yy533:
YYDEBUG(533, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5561,11 +5564,11 @@ yy539:
}
YYDEBUG(540, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1110 "Zend/zend_language_scanner.l"
+#line 1113 "Zend/zend_language_scanner.l"
{
return T_SWITCH;
}
-#line 5569 "Zend/zend_language_scanner.c"
+#line 5572 "Zend/zend_language_scanner.c"
yy541:
YYDEBUG(541, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5589,11 +5592,11 @@ yy544:
}
YYDEBUG(545, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1292 "Zend/zend_language_scanner.l"
+#line 1295 "Zend/zend_language_scanner.l"
{
return T_STATIC;
}
-#line 5597 "Zend/zend_language_scanner.c"
+#line 5600 "Zend/zend_language_scanner.c"
yy546:
YYDEBUG(546, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5620,11 +5623,11 @@ yy549:
}
YYDEBUG(550, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1106 "Zend/zend_language_scanner.l"
+#line 1109 "Zend/zend_language_scanner.l"
{
return T_AS;
}
-#line 5628 "Zend/zend_language_scanner.c"
+#line 5631 "Zend/zend_language_scanner.c"
yy551:
YYDEBUG(551, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5643,11 +5646,11 @@ yy553:
}
YYDEBUG(554, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1328 "Zend/zend_language_scanner.l"
+#line 1331 "Zend/zend_language_scanner.l"
{
return T_ARRAY;
}
-#line 5651 "Zend/zend_language_scanner.c"
+#line 5654 "Zend/zend_language_scanner.c"
yy555:
YYDEBUG(555, *YYCURSOR);
++YYCURSOR;
@@ -5656,11 +5659,11 @@ yy555:
}
YYDEBUG(556, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1424 "Zend/zend_language_scanner.l"
+#line 1427 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_AND;
}
-#line 5664 "Zend/zend_language_scanner.c"
+#line 5667 "Zend/zend_language_scanner.c"
yy557:
YYDEBUG(557, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5694,11 +5697,11 @@ yy562:
}
YYDEBUG(563, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1296 "Zend/zend_language_scanner.l"
+#line 1299 "Zend/zend_language_scanner.l"
{
return T_ABSTRACT;
}
-#line 5702 "Zend/zend_language_scanner.c"
+#line 5705 "Zend/zend_language_scanner.c"
yy564:
YYDEBUG(564, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5722,11 +5725,11 @@ yy567:
}
YYDEBUG(568, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1066 "Zend/zend_language_scanner.l"
+#line 1069 "Zend/zend_language_scanner.l"
{
return T_WHILE;
}
-#line 5730 "Zend/zend_language_scanner.c"
+#line 5733 "Zend/zend_language_scanner.c"
yy569:
YYDEBUG(569, *YYCURSOR);
++YYCURSOR;
@@ -5735,11 +5738,11 @@ yy569:
}
YYDEBUG(570, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1050 "Zend/zend_language_scanner.l"
+#line 1053 "Zend/zend_language_scanner.l"
{
return T_IF;
}
-#line 5743 "Zend/zend_language_scanner.c"
+#line 5746 "Zend/zend_language_scanner.c"
yy571:
YYDEBUG(571, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5791,11 +5794,11 @@ yy576:
}
YYDEBUG(577, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1280 "Zend/zend_language_scanner.l"
+#line 1283 "Zend/zend_language_scanner.l"
{
return T_ISSET;
}
-#line 5799 "Zend/zend_language_scanner.c"
+#line 5802 "Zend/zend_language_scanner.c"
yy578:
YYDEBUG(578, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5849,11 +5852,11 @@ yy584:
yy585:
YYDEBUG(585, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1248 "Zend/zend_language_scanner.l"
+#line 1251 "Zend/zend_language_scanner.l"
{
return T_INCLUDE;
}
-#line 5857 "Zend/zend_language_scanner.c"
+#line 5860 "Zend/zend_language_scanner.c"
yy586:
YYDEBUG(586, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5882,11 +5885,11 @@ yy590:
}
YYDEBUG(591, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1252 "Zend/zend_language_scanner.l"
+#line 1255 "Zend/zend_language_scanner.l"
{
return T_INCLUDE_ONCE;
}
-#line 5890 "Zend/zend_language_scanner.c"
+#line 5893 "Zend/zend_language_scanner.c"
yy592:
YYDEBUG(592, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5920,11 +5923,11 @@ yy597:
}
YYDEBUG(598, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1150 "Zend/zend_language_scanner.l"
+#line 1153 "Zend/zend_language_scanner.l"
{
return T_INTERFACE;
}
-#line 5928 "Zend/zend_language_scanner.c"
+#line 5931 "Zend/zend_language_scanner.c"
yy599:
YYDEBUG(599, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5974,11 +5977,11 @@ yy605:
}
YYDEBUG(606, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1272 "Zend/zend_language_scanner.l"
+#line 1275 "Zend/zend_language_scanner.l"
{
return T_INSTEADOF;
}
-#line 5982 "Zend/zend_language_scanner.c"
+#line 5985 "Zend/zend_language_scanner.c"
yy607:
YYDEBUG(607, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6007,11 +6010,11 @@ yy611:
}
YYDEBUG(612, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1102 "Zend/zend_language_scanner.l"
+#line 1105 "Zend/zend_language_scanner.l"
{
return T_INSTANCEOF;
}
-#line 6015 "Zend/zend_language_scanner.c"
+#line 6018 "Zend/zend_language_scanner.c"
yy613:
YYDEBUG(613, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6055,11 +6058,11 @@ yy620:
}
YYDEBUG(621, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1162 "Zend/zend_language_scanner.l"
+#line 1165 "Zend/zend_language_scanner.l"
{
return T_IMPLEMENTS;
}
-#line 6063 "Zend/zend_language_scanner.c"
+#line 6066 "Zend/zend_language_scanner.c"
yy622:
YYDEBUG(622, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6087,11 +6090,11 @@ yy623:
}
YYDEBUG(625, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1038 "Zend/zend_language_scanner.l"
+#line 1041 "Zend/zend_language_scanner.l"
{
return T_TRY;
}
-#line 6095 "Zend/zend_language_scanner.c"
+#line 6098 "Zend/zend_language_scanner.c"
yy626:
YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6110,11 +6113,11 @@ yy628:
}
YYDEBUG(629, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1154 "Zend/zend_language_scanner.l"
+#line 1157 "Zend/zend_language_scanner.l"
{
return T_TRAIT;
}
-#line 6118 "Zend/zend_language_scanner.c"
+#line 6121 "Zend/zend_language_scanner.c"
yy630:
YYDEBUG(630, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6133,11 +6136,11 @@ yy632:
}
YYDEBUG(633, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1046 "Zend/zend_language_scanner.l"
+#line 1049 "Zend/zend_language_scanner.l"
{
return T_THROW;
}
-#line 6141 "Zend/zend_language_scanner.c"
+#line 6144 "Zend/zend_language_scanner.c"
yy634:
YYDEBUG(634, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6198,11 +6201,11 @@ yy640:
yy641:
YYDEBUG(641, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1256 "Zend/zend_language_scanner.l"
+#line 1259 "Zend/zend_language_scanner.l"
{
return T_REQUIRE;
}
-#line 6206 "Zend/zend_language_scanner.c"
+#line 6209 "Zend/zend_language_scanner.c"
yy642:
YYDEBUG(642, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6231,11 +6234,11 @@ yy646:
}
YYDEBUG(647, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1260 "Zend/zend_language_scanner.l"
+#line 1263 "Zend/zend_language_scanner.l"
{
return T_REQUIRE_ONCE;
}
-#line 6239 "Zend/zend_language_scanner.c"
+#line 6242 "Zend/zend_language_scanner.c"
yy648:
YYDEBUG(648, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6254,11 +6257,11 @@ yy650:
}
YYDEBUG(651, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1034 "Zend/zend_language_scanner.l"
+#line 1037 "Zend/zend_language_scanner.l"
{
return T_RETURN;
}
-#line 6262 "Zend/zend_language_scanner.c"
+#line 6265 "Zend/zend_language_scanner.c"
yy652:
YYDEBUG(652, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6348,11 +6351,11 @@ yy661:
}
YYDEBUG(662, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1130 "Zend/zend_language_scanner.l"
+#line 1133 "Zend/zend_language_scanner.l"
{
return T_CONTINUE;
}
-#line 6356 "Zend/zend_language_scanner.c"
+#line 6359 "Zend/zend_language_scanner.c"
yy663:
YYDEBUG(663, *YYCURSOR);
++YYCURSOR;
@@ -6361,11 +6364,11 @@ yy663:
}
YYDEBUG(664, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1030 "Zend/zend_language_scanner.l"
+#line 1033 "Zend/zend_language_scanner.l"
{
return T_CONST;
}
-#line 6369 "Zend/zend_language_scanner.c"
+#line 6372 "Zend/zend_language_scanner.c"
yy665:
YYDEBUG(665, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6390,11 +6393,11 @@ yy668:
}
YYDEBUG(669, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1208 "Zend/zend_language_scanner.l"
+#line 1211 "Zend/zend_language_scanner.l"
{
return T_CLONE;
}
-#line 6398 "Zend/zend_language_scanner.c"
+#line 6401 "Zend/zend_language_scanner.c"
yy670:
YYDEBUG(670, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6408,11 +6411,11 @@ yy671:
}
YYDEBUG(672, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1146 "Zend/zend_language_scanner.l"
+#line 1149 "Zend/zend_language_scanner.l"
{
return T_CLASS;
}
-#line 6416 "Zend/zend_language_scanner.c"
+#line 6419 "Zend/zend_language_scanner.c"
yy673:
YYDEBUG(673, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6458,11 +6461,11 @@ yy680:
}
YYDEBUG(681, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1332 "Zend/zend_language_scanner.l"
+#line 1335 "Zend/zend_language_scanner.l"
{
return T_CALLABLE;
}
-#line 6466 "Zend/zend_language_scanner.c"
+#line 6469 "Zend/zend_language_scanner.c"
yy682:
YYDEBUG(682, *YYCURSOR);
++YYCURSOR;
@@ -6471,11 +6474,11 @@ yy682:
}
YYDEBUG(683, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1118 "Zend/zend_language_scanner.l"
+#line 1121 "Zend/zend_language_scanner.l"
{
return T_CASE;
}
-#line 6479 "Zend/zend_language_scanner.c"
+#line 6482 "Zend/zend_language_scanner.c"
yy684:
YYDEBUG(684, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6489,11 +6492,11 @@ yy685:
}
YYDEBUG(686, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1042 "Zend/zend_language_scanner.l"
+#line 1045 "Zend/zend_language_scanner.l"
{
return T_CATCH;
}
-#line 6497 "Zend/zend_language_scanner.c"
+#line 6500 "Zend/zend_language_scanner.c"
yy687:
YYDEBUG(687, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6544,11 +6547,11 @@ yy695:
}
YYDEBUG(696, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1026 "Zend/zend_language_scanner.l"
+#line 1029 "Zend/zend_language_scanner.l"
{
return T_FUNCTION;
}
-#line 6552 "Zend/zend_language_scanner.c"
+#line 6555 "Zend/zend_language_scanner.c"
yy697:
YYDEBUG(697, *YYCURSOR);
++YYCURSOR;
@@ -6572,11 +6575,11 @@ yy697:
yy698:
YYDEBUG(698, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1078 "Zend/zend_language_scanner.l"
+#line 1081 "Zend/zend_language_scanner.l"
{
return T_FOR;
}
-#line 6580 "Zend/zend_language_scanner.c"
+#line 6583 "Zend/zend_language_scanner.c"
yy699:
YYDEBUG(699, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6600,11 +6603,11 @@ yy702:
}
YYDEBUG(703, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1086 "Zend/zend_language_scanner.l"
+#line 1089 "Zend/zend_language_scanner.l"
{
return T_FOREACH;
}
-#line 6608 "Zend/zend_language_scanner.c"
+#line 6611 "Zend/zend_language_scanner.c"
yy704:
YYDEBUG(704, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6623,11 +6626,11 @@ yy706:
}
YYDEBUG(707, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1300 "Zend/zend_language_scanner.l"
+#line 1303 "Zend/zend_language_scanner.l"
{
return T_FINAL;
}
-#line 6631 "Zend/zend_language_scanner.c"
+#line 6634 "Zend/zend_language_scanner.c"
yy708:
YYDEBUG(708, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6658,11 +6661,11 @@ yy710:
}
YYDEBUG(711, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1074 "Zend/zend_language_scanner.l"
+#line 1077 "Zend/zend_language_scanner.l"
{
return T_DO;
}
-#line 6666 "Zend/zend_language_scanner.c"
+#line 6669 "Zend/zend_language_scanner.c"
yy712:
YYDEBUG(712, *YYCURSOR);
++YYCURSOR;
@@ -6671,11 +6674,11 @@ yy712:
}
YYDEBUG(713, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1022 "Zend/zend_language_scanner.l"
+#line 1025 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6679 "Zend/zend_language_scanner.c"
+#line 6682 "Zend/zend_language_scanner.c"
yy714:
YYDEBUG(714, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6710,11 +6713,11 @@ yy719:
}
YYDEBUG(720, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1122 "Zend/zend_language_scanner.l"
+#line 1125 "Zend/zend_language_scanner.l"
{
return T_DEFAULT;
}
-#line 6718 "Zend/zend_language_scanner.c"
+#line 6721 "Zend/zend_language_scanner.c"
yy721:
YYDEBUG(721, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6738,11 +6741,11 @@ yy724:
}
YYDEBUG(725, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1094 "Zend/zend_language_scanner.l"
+#line 1097 "Zend/zend_language_scanner.l"
{
return T_DECLARE;
}
-#line 6746 "Zend/zend_language_scanner.c"
+#line 6749 "Zend/zend_language_scanner.c"
yy726:
YYDEBUG(726, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6822,11 +6825,11 @@ yy737:
}
YYDEBUG(738, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
+#line 1161 "Zend/zend_language_scanner.l"
{
return T_EXTENDS;
}
-#line 6830 "Zend/zend_language_scanner.c"
+#line 6833 "Zend/zend_language_scanner.c"
yy739:
YYDEBUG(739, *YYCURSOR);
++YYCURSOR;
@@ -6835,11 +6838,11 @@ yy739:
}
YYDEBUG(740, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1018 "Zend/zend_language_scanner.l"
+#line 1021 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6843 "Zend/zend_language_scanner.c"
+#line 6846 "Zend/zend_language_scanner.c"
yy741:
YYDEBUG(741, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6853,11 +6856,11 @@ yy742:
}
YYDEBUG(743, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1244 "Zend/zend_language_scanner.l"
+#line 1247 "Zend/zend_language_scanner.l"
{
return T_EVAL;
}
-#line 6861 "Zend/zend_language_scanner.c"
+#line 6864 "Zend/zend_language_scanner.c"
yy744:
YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6927,11 +6930,11 @@ yy753:
}
YYDEBUG(754, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1070 "Zend/zend_language_scanner.l"
+#line 1073 "Zend/zend_language_scanner.l"
{
return T_ENDWHILE;
}
-#line 6935 "Zend/zend_language_scanner.c"
+#line 6938 "Zend/zend_language_scanner.c"
yy755:
YYDEBUG(755, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6960,11 +6963,11 @@ yy759:
}
YYDEBUG(760, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1114 "Zend/zend_language_scanner.l"
+#line 1117 "Zend/zend_language_scanner.l"
{
return T_ENDSWITCH;
}
-#line 6968 "Zend/zend_language_scanner.c"
+#line 6971 "Zend/zend_language_scanner.c"
yy761:
YYDEBUG(761, *YYCURSOR);
++YYCURSOR;
@@ -6973,11 +6976,11 @@ yy761:
}
YYDEBUG(762, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1058 "Zend/zend_language_scanner.l"
+#line 1061 "Zend/zend_language_scanner.l"
{
return T_ENDIF;
}
-#line 6981 "Zend/zend_language_scanner.c"
+#line 6984 "Zend/zend_language_scanner.c"
yy763:
YYDEBUG(763, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7006,11 +7009,11 @@ yy764:
yy765:
YYDEBUG(765, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1082 "Zend/zend_language_scanner.l"
+#line 1085 "Zend/zend_language_scanner.l"
{
return T_ENDFOR;
}
-#line 7014 "Zend/zend_language_scanner.c"
+#line 7017 "Zend/zend_language_scanner.c"
yy766:
YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7034,11 +7037,11 @@ yy769:
}
YYDEBUG(770, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1090 "Zend/zend_language_scanner.l"
+#line 1093 "Zend/zend_language_scanner.l"
{
return T_ENDFOREACH;
}
-#line 7042 "Zend/zend_language_scanner.c"
+#line 7045 "Zend/zend_language_scanner.c"
yy771:
YYDEBUG(771, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7072,11 +7075,11 @@ yy776:
}
YYDEBUG(777, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1098 "Zend/zend_language_scanner.l"
+#line 1101 "Zend/zend_language_scanner.l"
{
return T_ENDDECLARE;
}
-#line 7080 "Zend/zend_language_scanner.c"
+#line 7083 "Zend/zend_language_scanner.c"
yy778:
YYDEBUG(778, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7095,11 +7098,11 @@ yy780:
}
YYDEBUG(781, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1284 "Zend/zend_language_scanner.l"
+#line 1287 "Zend/zend_language_scanner.l"
{
return T_EMPTY;
}
-#line 7103 "Zend/zend_language_scanner.c"
+#line 7106 "Zend/zend_language_scanner.c"
yy782:
YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7128,11 +7131,11 @@ yy783:
yy784:
YYDEBUG(784, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1062 "Zend/zend_language_scanner.l"
+#line 1065 "Zend/zend_language_scanner.l"
{
return T_ELSE;
}
-#line 7136 "Zend/zend_language_scanner.c"
+#line 7139 "Zend/zend_language_scanner.c"
yy785:
YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7146,11 +7149,11 @@ yy786:
}
YYDEBUG(787, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1054 "Zend/zend_language_scanner.l"
+#line 1057 "Zend/zend_language_scanner.l"
{
return T_ELSEIF;
}
-#line 7154 "Zend/zend_language_scanner.c"
+#line 7157 "Zend/zend_language_scanner.c"
yy788:
YYDEBUG(788, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7164,11 +7167,11 @@ yy789:
}
YYDEBUG(790, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1138 "Zend/zend_language_scanner.l"
+#line 1141 "Zend/zend_language_scanner.l"
{
return T_ECHO;
}
-#line 7172 "Zend/zend_language_scanner.c"
+#line 7175 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7241,7 +7244,7 @@ yy793:
yy794:
YYDEBUG(794, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1171 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -7249,7 +7252,7 @@ yy794:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 7253 "Zend/zend_language_scanner.c"
+#line 7256 "Zend/zend_language_scanner.c"
yy795:
YYDEBUG(795, *YYCURSOR);
++YYCURSOR;
@@ -7257,13 +7260,13 @@ yy795:
yy796:
YYDEBUG(796, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1190 "Zend/zend_language_scanner.l"
+#line 1193 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 7267 "Zend/zend_language_scanner.c"
+#line 7270 "Zend/zend_language_scanner.c"
yy797:
YYDEBUG(797, *YYCURSOR);
++YYCURSOR;
@@ -7272,14 +7275,14 @@ yy797:
yy798:
YYDEBUG(798, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1183 "Zend/zend_language_scanner.l"
+#line 1186 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7283 "Zend/zend_language_scanner.c"
+#line 7286 "Zend/zend_language_scanner.c"
yy799:
YYDEBUG(799, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7300,11 +7303,11 @@ yy802:
++YYCURSOR;
YYDEBUG(803, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1179 "Zend/zend_language_scanner.l"
+#line 1182 "Zend/zend_language_scanner.l"
{
return T_OBJECT_OPERATOR;
}
-#line 7308 "Zend/zend_language_scanner.c"
+#line 7311 "Zend/zend_language_scanner.c"
yy804:
YYDEBUG(804, *YYCURSOR);
++YYCURSOR;
@@ -7374,7 +7377,7 @@ yy808:
yy809:
YYDEBUG(809, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1466 "Zend/zend_language_scanner.l"
+#line 1469 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
@@ -7382,20 +7385,20 @@ yy809:
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
-#line 7386 "Zend/zend_language_scanner.c"
+#line 7389 "Zend/zend_language_scanner.c"
yy810:
YYDEBUG(810, *YYCURSOR);
++YYCURSOR;
YYDEBUG(811, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1475 "Zend/zend_language_scanner.l"
+#line 1478 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 7399 "Zend/zend_language_scanner.c"
+#line 7402 "Zend/zend_language_scanner.c"
yy812:
YYDEBUG(812, *YYCURSOR);
++YYCURSOR;
@@ -7417,7 +7420,7 @@ yyc_ST_NOWDOC:
++YYCURSOR;
YYDEBUG(817, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2357 "Zend/zend_language_scanner.l"
+#line 2360 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -7472,7 +7475,7 @@ nowdoc_scan_done:
HANDLE_NEWLINES(yytext, yyleng - newline);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7476 "Zend/zend_language_scanner.c"
+#line 7479 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
@@ -7579,7 +7582,7 @@ yy820:
yy821:
YYDEBUG(821, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1553 "Zend/zend_language_scanner.l"
+#line 1556 "Zend/zend_language_scanner.l"
{ /* Offset could be treated as a long */
if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
zendlval->value.lval = strtol(yytext, NULL, 10);
@@ -7591,7 +7594,7 @@ yy821:
}
return T_NUM_STRING;
}
-#line 7595 "Zend/zend_language_scanner.c"
+#line 7598 "Zend/zend_language_scanner.c"
yy822:
YYDEBUG(822, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7611,23 +7614,23 @@ yy823:
yy824:
YYDEBUG(824, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1885 "Zend/zend_language_scanner.l"
+#line 1888 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 7620 "Zend/zend_language_scanner.c"
+#line 7623 "Zend/zend_language_scanner.c"
yy825:
YYDEBUG(825, *YYCURSOR);
++YYCURSOR;
YYDEBUG(826, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1880 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 7631 "Zend/zend_language_scanner.c"
+#line 7634 "Zend/zend_language_scanner.c"
yy827:
YYDEBUG(827, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7637,14 +7640,14 @@ yy828:
++YYCURSOR;
YYDEBUG(829, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1890 "Zend/zend_language_scanner.l"
+#line 1893 "Zend/zend_language_scanner.l"
{
/* Invalid rule to return a more explicit parse error with proper line number */
yyless(0);
yy_pop_state(TSRMLS_C);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7648 "Zend/zend_language_scanner.c"
+#line 7651 "Zend/zend_language_scanner.c"
yy830:
YYDEBUG(830, *YYCURSOR);
++YYCURSOR;
@@ -7653,19 +7656,19 @@ yy830:
yy831:
YYDEBUG(831, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1897 "Zend/zend_language_scanner.l"
+#line 1900 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7663 "Zend/zend_language_scanner.c"
+#line 7666 "Zend/zend_language_scanner.c"
yy832:
YYDEBUG(832, *YYCURSOR);
++YYCURSOR;
YYDEBUG(833, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2413 "Zend/zend_language_scanner.l"
+#line 2416 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -7674,7 +7677,7 @@ yy832:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 7678 "Zend/zend_language_scanner.c"
+#line 7681 "Zend/zend_language_scanner.c"
yy834:
YYDEBUG(834, *YYCURSOR);
++YYCURSOR;
@@ -7710,13 +7713,13 @@ yy836:
yy838:
YYDEBUG(838, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1877 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 7720 "Zend/zend_language_scanner.c"
+#line 7723 "Zend/zend_language_scanner.c"
yy839:
YYDEBUG(839, *YYCURSOR);
++YYCURSOR;
@@ -7756,14 +7759,14 @@ yy844:
yy846:
YYDEBUG(846, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1565 "Zend/zend_language_scanner.l"
+#line 1568 "Zend/zend_language_scanner.l"
{ /* Offset must be treated as a string */
zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
return T_NUM_STRING;
}
-#line 7767 "Zend/zend_language_scanner.c"
+#line 7770 "Zend/zend_language_scanner.c"
yy847:
YYDEBUG(847, *YYCURSOR);
++YYCURSOR;
@@ -7786,6 +7789,6 @@ yy849:
goto yy846;
}
}
-#line 2422 "Zend/zend_language_scanner.l"
+#line 2425 "Zend/zend_language_scanner.l"
}
diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h
index 826ad7aba..704547825 100644
--- a/Zend/zend_language_scanner.h
+++ b/Zend/zend_language_scanner.h
@@ -44,7 +44,7 @@ typedef struct _zend_lex_state {
unsigned char *script_filtered;
size_t script_filtered_size;
- /* input/ouput filters */
+ /* input/output filters */
zend_encoding_filter input_filter;
zend_encoding_filter output_filter;
const zend_encoding *script_encoding;
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 97c938ebf..e70a3e1dc 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -256,6 +256,7 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
CG(heredoc) = NULL;
CG(heredoc_len) = 0;
}
+ RESET_DOC_COMMENT();
}
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
@@ -539,6 +540,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
CG(zend_lineno) = 1;
}
+ RESET_DOC_COMMENT();
CG(increment_lineno) = 0;
return SUCCESS;
}
@@ -583,7 +585,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
compiler_result = zendparse(TSRMLS_C);
zend_do_return(&retval_znode, 0 TSRMLS_CC);
CG(in_compilation) = original_in_compilation;
- if (compiler_result==1) { /* parser error */
+ if (compiler_result != 0) { /* parser error */
zend_bailout();
}
compilation_successful=1;
@@ -689,6 +691,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
zend_set_compiled_filename(filename TSRMLS_CC);
CG(zend_lineno) = 1;
CG(increment_lineno) = 0;
+ RESET_DOC_COMMENT();
return SUCCESS;
}
@@ -758,7 +761,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
SCNG(script_filtered) = NULL;
}
- if (compiler_result==1) {
+ if (compiler_result != 0) {
CG(active_op_array) = original_active_op_array;
CG(unclean_shutdown)=1;
destroy_op_array(op_array TSRMLS_CC);
diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h
index 2e9b5c653..5c30d3dd9 100644
--- a/Zend/zend_language_scanner_defs.h
+++ b/Zend/zend_language_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Mar 27 23:52:29 2013 */
+/* Generated by re2c 0.13.5 on Sun Jun 16 14:52:22 2013 */
#line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE {
diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h
index c3c9657f3..092d3cd0b 100644
--- a/Zend/zend_multiply.h
+++ b/Zend/zend_multiply.h
@@ -35,8 +35,8 @@
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
long __tmpvar; \
- __asm__ ("imulq %3,%0\n" \
- "adcq $0,%1" \
+ __asm__ ("imul %3,%0\n" \
+ "adc $0,%1" \
: "=r"(__tmpvar),"=r"(usedval) \
: "0"(a), "r"(b), "1"(0)); \
if (usedval) (dval) = (double) (a) * (double) (b); \
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index cc45d35ec..c2bb056a9 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -1278,6 +1278,14 @@ ZEND_API zval **zend_std_get_static_property(zend_class_entry *ce, const char *p
}
}
+ if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL) ||
+ UNEXPECTED(CE_STATIC_MEMBERS(ce)[property_info->offset] == NULL)) {
+ if (!silent) {
+ zend_error_noreturn(E_ERROR, "Access to undeclared static property: %s::$%s", ce->name, property_name);
+ }
+ return NULL;
+ }
+
return &CE_STATIC_MEMBERS(ce)[property_info->offset];
}
/* }}} */
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c
index 1fe5d0c19..b5dd48f79 100644
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@ -57,6 +57,11 @@ ZEND_API void zend_objects_store_call_destructors(zend_objects_store *objects TS
obj->dtor(obj->object, i TSRMLS_CC);
obj = &objects->object_buckets[i].bucket.obj;
obj->refcount--;
+
+ if (obj->refcount == 0) {
+ /* in case gc_collect_cycle is triggered before free_storage */
+ GC_REMOVE_ZOBJ_FROM_BUFFER(obj);
+ }
}
}
}
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index e673f0197..695b651a8 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -162,8 +162,9 @@ static inline void cleanup_user_class_data(zend_class_entry *ce TSRMLS_DC)
for (i = 0; i < ce->default_static_members_count; i++) {
if (ce->static_members_table[i]) {
- zval_ptr_dtor(&ce->static_members_table[i]);
+ zval *p = ce->static_members_table[i];
ce->static_members_table[i] = NULL;
+ zval_ptr_dtor(&p);
}
}
ce->static_members_table = NULL;
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 594f1f105..474f978a3 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1475,7 +1475,7 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {
/* If both are objects sharing the same comparision handler then use is */
if (Z_OBJ_HANDLER_P(op1,compare_objects) == Z_OBJ_HANDLER_P(op2,compare_objects)) {
if (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)) {
- /* object handles are identical, apprently this is the same object */
+ /* object handles are identical, apparently this is the same object */
ZVAL_LONG(result, 0);
return SUCCESS;
}
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index eed65e3e2..f6c6e6ac5 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2229,9 +2229,11 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -2414,9 +2416,11 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
if (Z_TYPE_PP(obj) == IS_STRING) {
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(obj));
}
EX(called_scope) = ce;
EX(object) = NULL;
@@ -2684,6 +2688,8 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
if (!RETURN_VALUE_USED(opline)) {
zval_ptr_dtor(&ret->var.ptr);
}
+ } else if (RETURN_VALUE_USED(opline)) {
+ EX_T(opline->result.var).var.ptr = NULL;
}
} else if (fbc->type == ZEND_USER_FUNCTION) {
EX(original_return_value) = EG(return_value_ptr_ptr);
@@ -2904,9 +2910,12 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
zend_error(E_NOTICE, "Only variable references should be returned by reference");
if (EG(return_value_ptr_ptr)) {
- retval_ptr = *retval_ptr_ptr;
- *EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ zval *ret;
+
+ ALLOC_ZVAL(ret);
+ INIT_PZVAL_COPY(ret, *retval_ptr_ptr);
+ zval_copy_ctor(ret);
+ *EG(return_value_ptr_ptr) = ret;
}
break;
}
@@ -2975,7 +2984,7 @@ ZEND_VM_HANDLER(107, ZEND_CATCH, CONST, CV)
#ifdef HAVE_DTRACE
if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) {
- DTRACE_EXCEPTION_CAUGHT(ce->name);
+ DTRACE_EXCEPTION_CAUGHT((char *)ce->name);
}
#endif /* HAVE_DTRACE */
@@ -3266,7 +3275,6 @@ ZEND_VM_HANDLER(50, ZEND_BRK, ANY, CONST)
SAVE_OPLINE();
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
- FREE_OP2();
ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
}
@@ -3278,7 +3286,6 @@ ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST)
SAVE_OPLINE();
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
- FREE_OP2();
ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
}
@@ -3498,9 +3505,11 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -3887,15 +3896,17 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (OP1_TYPE != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) {
zval_ptr_dtor(&varname);
}
FREE_OP1();
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 18b3f4772..64d4320f9 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -648,6 +648,8 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
if (!RETURN_VALUE_USED(opline)) {
zval_ptr_dtor(&ret->var.ptr);
}
+ } else if (RETURN_VALUE_USED(opline)) {
+ EX_T(opline->result.var).var.ptr = NULL;
}
} else if (fbc->type == ZEND_USER_FUNCTION) {
EX(original_return_value) = EG(return_value_ptr_ptr);
@@ -1272,9 +1274,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
if (Z_TYPE_PP(obj) == IS_STRING) {
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(obj));
}
EX(called_scope) = ce;
EX(object) = NULL;
@@ -1389,7 +1393,6 @@ static int ZEND_FASTCALL ZEND_BRK_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
-
ZEND_VM_JMP(EX(op_array)->opcodes + el->brk);
}
@@ -1401,7 +1404,6 @@ static int ZEND_FASTCALL ZEND_CONT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num,
EX(op_array), EX_Ts() TSRMLS_CC);
-
ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
}
@@ -1578,9 +1580,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
if (Z_TYPE_PP(obj) == IS_STRING) {
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(obj));
}
EX(called_scope) = ce;
EX(object) = NULL;
@@ -1746,9 +1750,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
if (Z_TYPE_PP(obj) == IS_STRING) {
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(obj));
}
EX(called_scope) = ce;
EX(object) = NULL;
@@ -1947,9 +1953,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
if (Z_TYPE_PP(obj) == IS_STRING) {
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(obj));
}
EX(called_scope) = ce;
EX(object) = NULL;
@@ -2316,9 +2324,12 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
zend_error(E_NOTICE, "Only variable references should be returned by reference");
if (EG(return_value_ptr_ptr)) {
- retval_ptr = *retval_ptr_ptr;
- *EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ zval *ret;
+
+ ALLOC_ZVAL(ret);
+ INIT_PZVAL_COPY(ret, *retval_ptr_ptr);
+ zval_copy_ctor(ret);
+ *EG(return_value_ptr_ptr) = ret;
}
break;
}
@@ -3419,9 +3430,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -3588,9 +3601,11 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -3772,15 +3787,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HA
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_CONST != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_CONST == IS_VAR || IS_CONST == IS_CV) {
zval_ptr_dtor(&varname);
}
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -4221,9 +4238,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -4895,9 +4914,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -5157,15 +5178,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HAND
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_CONST != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_CONST == IS_VAR || IS_CONST == IS_CV) {
zval_ptr_dtor(&varname);
}
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -5454,9 +5477,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -5698,15 +5723,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_H
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_CONST != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_CONST == IS_VAR || IS_CONST == IS_CV) {
zval_ptr_dtor(&varname);
}
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -6125,9 +6152,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -6250,7 +6279,7 @@ static int ZEND_FASTCALL ZEND_CATCH_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_A
#ifdef HAVE_DTRACE
if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) {
- DTRACE_EXCEPTION_CAUGHT(ce->name);
+ DTRACE_EXCEPTION_CAUGHT((char *)ce->name);
}
#endif /* HAVE_DTRACE */
@@ -6717,9 +6746,12 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
zend_error(E_NOTICE, "Only variable references should be returned by reference");
if (EG(return_value_ptr_ptr)) {
- retval_ptr = *retval_ptr_ptr;
- *EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ zval *ret;
+
+ ALLOC_ZVAL(ret);
+ INIT_PZVAL_COPY(ret, *retval_ptr_ptr);
+ zval_copy_ctor(ret);
+ *EG(return_value_ptr_ptr) = ret;
}
break;
}
@@ -8134,15 +8166,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HAND
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_TMP_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
zval_dtor(free_op1.var);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -9479,15 +9513,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLE
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_TMP_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
zval_dtor(free_op1.var);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -9904,15 +9940,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HAN
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_TMP_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
zval_dtor(free_op1.var);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -11023,9 +11061,12 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
zend_error(E_NOTICE, "Only variable references should be returned by reference");
if (EG(return_value_ptr_ptr)) {
- retval_ptr = *retval_ptr_ptr;
- *EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ zval *ret;
+
+ ALLOC_ZVAL(ret);
+ INIT_PZVAL_COPY(ret, *retval_ptr_ptr);
+ zval_copy_ctor(ret);
+ *EG(return_value_ptr_ptr) = ret;
}
break;
}
@@ -13492,9 +13533,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -13661,9 +13704,11 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -13845,15 +13890,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -15662,9 +15709,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -17799,9 +17848,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -18061,15 +18112,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -19075,9 +19128,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -19319,15 +19374,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -20912,9 +20969,11 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -22414,9 +22473,11 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
ce = CACHED_PTR(opline->op1.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC);
+ if (UNEXPECTED(EG(exception) != NULL)) {
+ HANDLE_EXCEPTION();
+ }
if (UNEXPECTED(ce == NULL)) {
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv));
}
CACHE_PTR(opline->op1.literal->cache_slot, ce);
}
@@ -26978,9 +27039,12 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
zend_error(E_NOTICE, "Only variable references should be returned by reference");
if (EG(return_value_ptr_ptr)) {
- retval_ptr = *retval_ptr_ptr;
- *EG(return_value_ptr_ptr) = retval_ptr;
- Z_ADDREF_P(retval_ptr);
+ zval *ret;
+
+ ALLOC_ZVAL(ret);
+ INIT_PZVAL_COPY(ret, *retval_ptr_ptr);
+ zval_copy_ctor(ret);
+ *EG(return_value_ptr_ptr) = ret;
}
break;
}
@@ -29424,15 +29488,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_CV != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_CV == IS_VAR || IS_CV == IS_CV) {
zval_ptr_dtor(&varname);
}
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -33381,15 +33447,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_CV != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_CV == IS_VAR || IS_CV == IS_CV) {
zval_ptr_dtor(&varname);
}
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
@@ -34517,15 +34585,17 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAND
ce = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
- if (UNEXPECTED(ce == NULL)) {
+ if (UNEXPECTED(EG(exception) != NULL)) {
if (IS_CV != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
} else if (IS_CV == IS_VAR || IS_CV == IS_CV) {
zval_ptr_dtor(&varname);
}
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ HANDLE_EXCEPTION();
+ }
+ if (UNEXPECTED(ce == NULL)) {
+ zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv));
}
CACHE_PTR(opline->op2.literal->cache_slot, ce);
}
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 97dc0e8be..d2f51925d 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -1417,7 +1417,7 @@ for ($i = 1; $i < $argc; $i++) {
// Disabling code for old-style executor
define("ZEND_VM_OLD_EXECUTOR", 1);
} else if ($argv[$i] == "--with-lines") {
- // Enabling debuging using original zend_vm_def.h
+ // Enabling debugging using original zend_vm_def.h
define("ZEND_VM_LINES", 1);
} else if ($argv[$i] == "--help") {
usage();