summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
Diffstat (limited to 'Zend')
-rw-r--r--Zend/acinclude.m44
-rw-r--r--Zend/tests/bug45742.phpt2
-rw-r--r--Zend/tests/bug50816.phpt48
-rw-r--r--Zend/tests/bug53727.phpt22
-rw-r--r--Zend/tests/bug54039.phpt58
-rw-r--r--Zend/tests/bug54265.phpt17
-rw-r--r--Zend/tests/bug54268.phpt35
-rw-r--r--Zend/tests/bug54305.phpt22
-rw-r--r--Zend/tests/bug54358.phpt39
-rw-r--r--Zend/tests/bug54367.phpt24
-rw-r--r--Zend/tests/bug54372.phpt23
-rw-r--r--Zend/tests/bug54585.phpt15
-rw-r--r--Zend/tests/bug54624.phpt26
-rw-r--r--Zend/tests/bug54804.inc3
-rw-r--r--Zend/tests/bug54804.phpt11
-rw-r--r--Zend/tests/bug54910.phpt28
-rw-r--r--Zend/tests/bug55007.phpt23
-rw-r--r--Zend/tests/bug55156.phpt30
-rw-r--r--Zend/tests/bug55339.phpt31
-rw-r--r--Zend/tests/concat_001.phpt2
-rwxr-xr-xZend/tests/constants_005.phpt2
-rw-r--r--Zend/tests/function_arguments_001.phpt9
-rw-r--r--Zend/tests/function_arguments_002.phpt9
-rwxr-xr-xZend/tests/is_a.phpt2
-rw-r--r--Zend/zend.c50
-rw-r--r--Zend/zend_API.c29
-rw-r--r--Zend/zend_API.h4
-rw-r--r--Zend/zend_builtin_functions.c40
-rw-r--r--Zend/zend_closures.c4
-rw-r--r--Zend/zend_compile.c51
-rw-r--r--Zend/zend_compile.h3
-rw-r--r--Zend/zend_execute.c18
-rw-r--r--Zend/zend_execute_API.c24
-rw-r--r--Zend/zend_hash.c195
-rw-r--r--Zend/zend_ini_parser.c305
-rw-r--r--Zend/zend_ini_parser.h29
-rw-r--r--Zend/zend_ini_parser.output6
-rw-r--r--Zend/zend_language_parser.c424
-rw-r--r--Zend/zend_language_parser.h29
-rw-r--r--Zend/zend_language_parser.output2514
-rw-r--r--Zend/zend_language_parser.y8
-rw-r--r--Zend/zend_modules.h4
-rw-r--r--Zend/zend_object_handlers.c8
-rw-r--r--Zend/zend_vm_def.h138
-rw-r--r--Zend/zend_vm_execute.h594
-rw-r--r--Zend/zend_vm_gen.php6
-rw-r--r--Zend/zend_vm_opcodes.h2
47 files changed, 2843 insertions, 2127 deletions
diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4
index efd9cc97e..554858341 100644
--- a/Zend/acinclude.m4
+++ b/Zend/acinclude.m4
@@ -1,10 +1,10 @@
-dnl $Id: acinclude.m4 304193 2010-10-07 21:44:41Z felipe $
+dnl $Id: acinclude.m4 312109 2011-06-12 17:26:45Z felipe $
dnl
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"
+ 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"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
diff --git a/Zend/tests/bug45742.phpt b/Zend/tests/bug45742.phpt
index b21e09304..bde690b39 100644
--- a/Zend/tests/bug45742.phpt
+++ b/Zend/tests/bug45742.phpt
@@ -20,5 +20,5 @@ var_dump( ArrayProperty::$array );
--EXPECT--
array(1) {
[1]=>
- int(23)
+ int(42)
}
diff --git a/Zend/tests/bug50816.phpt b/Zend/tests/bug50816.phpt
new file mode 100644
index 000000000..98a89380c
--- /dev/null
+++ b/Zend/tests/bug50816.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #50816 (Using class constants in array definition fails)
+--FILE--
+<?php
+define("ONE", 1);
+define("TWO", 1);
+
+class Foo {
+ const ONE = 1;
+ const TWO = 1;
+
+ public static $mapWithConst = array(self::ONE => 'one', self::TWO => 'two',);
+
+ public static $mapWithConst1 = array(1 => 'one', self::TWO => 'two',);
+ public static $mapWithConst2 = array(self::ONE => 'one', 1 => 'two',);
+
+ public static $mapWithoutConst = array(1 => 'one', 1 => 'two',);
+}
+
+$mapWithConst = array(1 => 'one', 1 => 'two',);
+
+$mapWithoutConst = array(Foo::ONE => 'one', Foo::TWO => 'two',);
+$mapWithoutConst0 = array(1 => 'one', 1 => 'two',);
+$mapWithoutConst1 = array(ONE => 'one', 1 => 'two',);
+$mapWithoutConst2 = array(1 => 'one', TWO => 'two',);
+$mapWithoutConst3 = array(ONE => 'one', TWO => 'two',);
+
+var_dump(Foo::$mapWithConst[1]);
+var_dump(Foo::$mapWithConst1[1]);
+var_dump(Foo::$mapWithConst2[1]);
+var_dump(Foo::$mapWithoutConst[1]);
+var_dump($mapWithConst[1]);
+var_dump($mapWithoutConst[1]);
+var_dump($mapWithoutConst0[1]);
+var_dump($mapWithoutConst1[1]);
+var_dump($mapWithoutConst2[1]);
+var_dump($mapWithoutConst3[1]);
+--EXPECT--
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
+string(3) "two"
diff --git a/Zend/tests/bug53727.phpt b/Zend/tests/bug53727.phpt
new file mode 100644
index 000000000..22cd5232c
--- /dev/null
+++ b/Zend/tests/bug53727.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #53727 (Inconsistent behavior of is_subclass_of with interfaces)
+--FILE--
+<?php
+interface MyInterface {
+ const TEST_CONSTANT = true;
+}
+
+class ParentClass implements MyInterface { }
+
+class ChildClass extends ParentClass { }
+
+echo (is_subclass_of('ChildClass', 'MyInterface') ? 'true' : 'false') . "\n";
+echo (defined('ChildClass::TEST_CONSTANT') ? 'true' : 'false') . "\n";
+
+echo (is_subclass_of('ParentClass', 'MyInterface') ? 'true' : 'false') . "\n";
+echo (defined('ParentClass::TEST_CONSTANT') ? 'true' : 'false') . "\n";
+--EXPECT--
+true
+true
+true
+true
diff --git a/Zend/tests/bug54039.phpt b/Zend/tests/bug54039.phpt
new file mode 100644
index 000000000..ccdfe9430
--- /dev/null
+++ b/Zend/tests/bug54039.phpt
@@ -0,0 +1,58 @@
+--TEST--
+Bug #54039 (use() of static variables in lambda functions can break staticness)
+--FILE--
+<?php
+function test_1() {
+ static $v = 0;
+ ++$v;
+ echo "Outer function increments \$v to $v\n";
+ $f = function() use($v) {
+ echo "Inner function reckons \$v is $v\n";
+ };
+ return $f;
+}
+
+$f = test_1(); $f();
+$f = test_1(); $f();
+
+function test_2() {
+ static $v = 0;
+ $f = function() use($v) {
+ echo "Inner function reckons \$v is $v\n";
+ };
+ ++$v;
+ echo "Outer function increments \$v to $v\n";
+ return $f;
+}
+
+$f = test_2(); $f();
+$f = test_2(); $f();
+
+function test_3() {
+ static $v = "";
+ $v .= 'b';
+ echo "Outer function catenates 'b' onto \$v to give $v\n";
+ $f = function() use($v) {
+ echo "Inner function reckons \$v is $v\n";
+ };
+ $v .= 'a';
+ echo "Outer function catenates 'a' onto \$v to give $v\n";
+ return $f;
+}
+$f = test_3(); $f();
+$f = test_3(); $f();
+--EXPECT--
+Outer function increments $v to 1
+Inner function reckons $v is 1
+Outer function increments $v to 2
+Inner function reckons $v is 2
+Outer function increments $v to 1
+Inner function reckons $v is 0
+Outer function increments $v to 2
+Inner function reckons $v is 1
+Outer function catenates 'b' onto $v to give b
+Outer function catenates 'a' onto $v to give ba
+Inner function reckons $v is b
+Outer function catenates 'b' onto $v to give bab
+Outer function catenates 'a' onto $v to give baba
+Inner function reckons $v is bab
diff --git a/Zend/tests/bug54265.phpt b/Zend/tests/bug54265.phpt
new file mode 100644
index 000000000..43db028a2
--- /dev/null
+++ b/Zend/tests/bug54265.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #54265 (crash when variable gets reassigned in error handler)
+--FILE--
+<?php
+function my_errorhandler($errno,$errormsg) {
+ global $my_var;
+ $my_var = 0;
+ echo "EROOR: $errormsg\n";
+}
+set_error_handler("my_errorhandler");
+$my_var = str_repeat("A",$my_var[0]->errormsg = "xyz");
+echo "ok\n";
+?>
+--EXPECT--
+EROOR: Creating default object from empty value
+ok
+
diff --git a/Zend/tests/bug54268.phpt b/Zend/tests/bug54268.phpt
new file mode 100644
index 000000000..b544cd882
--- /dev/null
+++ b/Zend/tests/bug54268.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Bug #54268 (Double free when destroy_zend_class fails)
+--INI--
+memory_limit=8M
+--SKIPIF--
+<?php
+$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
+if ($zend_mm_enabled === "0") {
+ die("skip Zend MM disabled");
+}
+?>
+--FILE--
+<?php
+class DestructableObject
+{
+ public function __destruct()
+ {
+ DestructableObject::__destruct();
+ }
+}
+class DestructorCreator
+{
+ public function __destruct()
+ {
+ $this->test = new DestructableObject;
+ }
+}
+class Test
+{
+ public static $mystatic;
+}
+$x = new Test();
+Test::$mystatic = new DestructorCreator();
+--EXPECTF--
+Fatal error: Allowed memory size of %s bytes exhausted%s(tried to allocate %s bytes) in %s on line %d
diff --git a/Zend/tests/bug54305.phpt b/Zend/tests/bug54305.phpt
new file mode 100644
index 000000000..8e85d2be5
--- /dev/null
+++ b/Zend/tests/bug54305.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #54305 (Crash in gc_remove_zval_from_buffer)
+--FILE--
+<?php
+class TestClass {
+ public function methodWithArgs($a, $b) {
+ }
+}
+abstract class AbstractClass {
+}
+$methodWithArgs = new ReflectionMethod('TestClass', 'methodWithArgs');
+echo $methodWithArgs++;
+?>
+--EXPECTF--
+Method [ <user> public method methodWithArgs ] {
+ @@ %sbug54305.php %d - %d
+
+ - Parameters [2] {
+ Parameter #0 [ <required> $a ]
+ Parameter #1 [ <required> $b ]
+ }
+}
diff --git a/Zend/tests/bug54358.phpt b/Zend/tests/bug54358.phpt
new file mode 100644
index 000000000..faeeeacc5
--- /dev/null
+++ b/Zend/tests/bug54358.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Bug #54358 (Closure, use and reference)
+--FILE--
+<?php
+class asserter {
+ public function call($function) {
+ }
+}
+
+$asserter = new asserter();
+
+$closure = function() use ($asserter, &$function) {
+ $asserter->call($function = 'md5');
+};
+
+$closure();
+
+var_dump($function);
+
+$closure = function() use ($asserter, $function) {
+ $asserter->call($function);
+};
+
+$closure();
+
+var_dump($function);
+
+$closure = function() use ($asserter, $function) {
+ $asserter->call($function);
+};
+
+$closure();
+
+var_dump($function);
+?>
+--EXPECT--
+string(3) "md5"
+string(3) "md5"
+string(3) "md5"
diff --git a/Zend/tests/bug54367.phpt b/Zend/tests/bug54367.phpt
new file mode 100644
index 000000000..1ca6ad425
--- /dev/null
+++ b/Zend/tests/bug54367.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #54367 (Use of closure causes problem in ArrayAccess)
+--FILE--
+<?php
+class MyObjet implements ArrayAccess
+{
+ public function offsetSet($offset, $value) { }
+ public function offsetExists($offset) { }
+ public function offsetUnset($offset) { }
+
+ public function offsetGet ($offset)
+ {
+ return function ($var) use ($offset) { // here is the problem
+ var_dump($offset, $var);
+ };
+ }
+}
+
+$a = new MyObjet();
+echo $a['p']('foo');
+?>
+--EXPECT--
+string(1) "p"
+string(3) "foo"
diff --git a/Zend/tests/bug54372.phpt b/Zend/tests/bug54372.phpt
new file mode 100644
index 000000000..e2e9911f8
--- /dev/null
+++ b/Zend/tests/bug54372.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #54372 (Crash accessing global object itself returned from its __get() handle)
+--FILE--
+<?php
+class test_class
+{
+ public function __get($name)
+ {
+ return $this;
+ }
+
+ public function b()
+ {
+ echo "ok\n";
+ }
+}
+
+global $test3;
+$test3 = new test_class();
+$test3->a->b();
+?>
+--EXPECT--
+ok
diff --git a/Zend/tests/bug54585.phpt b/Zend/tests/bug54585.phpt
new file mode 100644
index 000000000..2ca11f3e6
--- /dev/null
+++ b/Zend/tests/bug54585.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #54585 (track_errors causes segfault)
+--INI--
+track_errors=On
+--FILE--
+<?php
+function testing($source) {
+ unset($source[$cos]);
+}
+testing($_GET);
+echo "ok\n";
+?>
+--EXPECTF--
+Notice: Undefined variable: cos in %sbug54585.php on line 3
+ok
diff --git a/Zend/tests/bug54624.phpt b/Zend/tests/bug54624.phpt
new file mode 100644
index 000000000..1d0c1ce87
--- /dev/null
+++ b/Zend/tests/bug54624.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Bug #54624 (class_alias and type hint)
+--FILE--
+<?php
+class A
+{
+ function foo(A $param) {
+ }
+
+}
+
+class_alias('A', 'AliasA');
+
+eval('
+ class B extends A
+ {
+ function foo(AliasA $param) {
+ }
+
+ }
+');
+
+echo "DONE\n";
+?>
+--EXPECTF--
+DONE
diff --git a/Zend/tests/bug54804.inc b/Zend/tests/bug54804.inc
new file mode 100644
index 000000000..74b7a1681
--- /dev/null
+++ b/Zend/tests/bug54804.inc
@@ -0,0 +1,3 @@
+<?php
+namespace b\c {}
+namespace b\d {}
diff --git a/Zend/tests/bug54804.phpt b/Zend/tests/bug54804.phpt
new file mode 100644
index 000000000..c68e94698
--- /dev/null
+++ b/Zend/tests/bug54804.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #54804 (__halt_compiler and imported namespaces)
+--FILE--
+<?php
+namespace a;
+require __DIR__ . '/bug54804.inc';
+echo 'DONE';
+__halt_compiler();
+?>
+--EXPECT--
+DONE
diff --git a/Zend/tests/bug54910.phpt b/Zend/tests/bug54910.phpt
new file mode 100644
index 000000000..8808cd060
--- /dev/null
+++ b/Zend/tests/bug54910.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Bug #54910 (Crash when calling call_user_func with unknown function name)
+--FILE--
+<?php
+class A {
+ public function __call($method, $args) {
+ if (stripos($method, 'get') === 0) {
+ return $this->get();
+ }
+ die("No such method - '$method'\n");
+ }
+
+ protected function get() {
+ $class = get_class($this);
+ $call = array($class, 'noSuchMethod');
+
+ if (is_callable($call)) {
+ call_user_func($call);
+ }
+ }
+}
+
+class B extends A {}
+
+$input = new B();
+echo $input->getEmail();
+--EXPECT--
+No such method - 'noSuchMethod'
diff --git a/Zend/tests/bug55007.phpt b/Zend/tests/bug55007.phpt
new file mode 100644
index 000000000..12fbf120a
--- /dev/null
+++ b/Zend/tests/bug55007.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #55007 (compiler fail after previous fail)
+--FILE--
+<?php
+
+function __autoload($classname) {
+ if ('CompileErrorClass'==$classname) eval('class CompileErrorClass { function foo() { $a[] } }');
+ if ('MyErrorHandler'==$classname) eval('class MyErrorHandler { function __construct() { print "My error handler runs.\n"; } }');
+}
+
+function shutdown() {
+ new MyErrorHandler();
+}
+
+
+register_shutdown_function('shutdown');
+
+new CompileErrorClass();
+
+?>
+--EXPECTF--
+Fatal error: Cannot use [] for reading in %s(%d) : eval()'d code on line %d
+My error handler runs.
diff --git a/Zend/tests/bug55156.phpt b/Zend/tests/bug55156.phpt
new file mode 100644
index 000000000..6c0ff768d
--- /dev/null
+++ b/Zend/tests/bug55156.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #55156 (ReflectionClass::getDocComment() returns comment even though the class has none)
+--FILE--
+<?php
+
+/** test */
+namespace foo {
+ function test() { }
+
+ $x = new \ReflectionFunction('foo\test');
+ var_dump($x->getDocComment());
+
+ /** test1 */
+ class bar { }
+
+ /** test2 */
+ class foo extends namespace\bar { }
+
+ $x = new \ReflectionClass('foo\bar');
+ var_dump($x->getDocComment());
+
+ $x = new \ReflectionClass('foo\foo');
+ var_dump($x->getDocComment());
+}
+
+?>
+--EXPECTF--
+bool(false)
+string(12) "/** test1 */"
+string(12) "/** test2 */"
diff --git a/Zend/tests/bug55339.phpt b/Zend/tests/bug55339.phpt
new file mode 100644
index 000000000..7d5ab4a78
--- /dev/null
+++ b/Zend/tests/bug55339.phpt
@@ -0,0 +1,31 @@
+--TEST--
+Bug #55339 (Segfault with allow_call_time_pass_reference = Off)
+--INI--
+allow_call_time_pass_reference=off
+--FILE--
+<?php
+function error_handler($errno, $errstr, $errfile, $errline) {
+ eval(';');
+}
+
+set_error_handler('error_handler');
+
+eval(<<<'EOF'
+function foo()
+{
+ $array = array();
+ foreach ($array as $key => $value) {
+ bar($key, &$value);
+ }
+}
+
+function bar()
+{
+
+}
+EOF
+);
+
+echo "OK\n";
+--EXPECT--
+OK
diff --git a/Zend/tests/concat_001.phpt b/Zend/tests/concat_001.phpt
index be1297655..d7bc525c4 100644
--- a/Zend/tests/concat_001.phpt
+++ b/Zend/tests/concat_001.phpt
@@ -1,5 +1,5 @@
--TEST--
-concat difffent types
+concat different types
--INI--
precision=14
--FILE--
diff --git a/Zend/tests/constants_005.phpt b/Zend/tests/constants_005.phpt
index 097be97e1..55f90fd94 100755
--- a/Zend/tests/constants_005.phpt
+++ b/Zend/tests/constants_005.phpt
@@ -1,5 +1,5 @@
--TEST--
-Persistent case insensetive and user defined constants
+Persistent case insensitive and user defined constants
--FILE--
<?php
var_dump(ZEND_THREAD_safe);
diff --git a/Zend/tests/function_arguments_001.phpt b/Zend/tests/function_arguments_001.phpt
new file mode 100644
index 000000000..bf0cd4a20
--- /dev/null
+++ b/Zend/tests/function_arguments_001.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Argument parsing error #001
+--FILE--
+<?php
+function foo($arg1 string) {}
+?>
+--EXPECTF--
+Parse error: syntax error, unexpected T_STRING, expecting ')' in %sfunction_arguments_001.php on line %d
+
diff --git a/Zend/tests/function_arguments_002.phpt b/Zend/tests/function_arguments_002.phpt
new file mode 100644
index 000000000..79dd31f33
--- /dev/null
+++ b/Zend/tests/function_arguments_002.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Argument parsing error #002
+--FILE--
+<?php
+function foo($arg1/) {}
+?>
+--EXPECTF--
+Parse error: syntax error, unexpected '/', expecting ')' in %sfunction_arguments_002.php on line %d
+
diff --git a/Zend/tests/is_a.phpt b/Zend/tests/is_a.phpt
index a074194c4..0a01eb756 100755
--- a/Zend/tests/is_a.phpt
+++ b/Zend/tests/is_a.phpt
@@ -38,6 +38,6 @@ bool(true)
bool(false)
bool(false)
bool(true)
-bool(false)
+bool(true)
AUTOLOAD 'X1'
bool(false)
diff --git a/Zend/zend.c b/Zend/zend.c
index dc7fba5f4..440b211e0 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend.c 314457 2011-08-08 03:08:59Z pierrick $ */
#include "zend.h"
#include "zend_extensions.h"
@@ -808,6 +808,7 @@ ZEND_API void _zend_bailout(char *filename, uint lineno) /* {{{ */
exit(-1);
}
CG(unclean_shutdown) = 1;
+ CG(active_class_entry) = NULL;
CG(in_compilation) = EG(in_execution) = 0;
EG(current_execute_data) = NULL;
LONGJMP(*EG(bailout), FAILURE);
@@ -820,7 +821,7 @@ void zend_append_version_info(const zend_extension *extension) /* {{{ */
char *new_info;
uint new_info_length;
- new_info_length = sizeof(" with v, by \n")
+ new_info_length = sizeof(" with v, , by \n")
+ strlen(extension->name)
+ strlen(extension->version)
+ strlen(extension->copyright)
@@ -828,10 +829,10 @@ void zend_append_version_info(const zend_extension *extension) /* {{{ */
new_info = (char *) malloc(new_info_length + 1);
- sprintf(new_info, " with %s v%s, %s, by %s\n", extension->name, extension->version, extension->copyright, extension->author);
+ snprintf(new_info, new_info_length, " with %s v%s, %s, by %s\n", extension->name, extension->version, extension->copyright, extension->author);
zend_version_info = (char *) realloc(zend_version_info, zend_version_info_length+new_info_length + 1);
- strcat(zend_version_info, new_info);
+ strncat(zend_version_info, new_info, new_info_length);
zend_version_info_length += new_info_length;
free(new_info);
}
@@ -957,6 +958,23 @@ ZEND_API int zend_get_configuration_directive(const char *name, uint name_length
}
/* }}} */
+#define SAVE_STACK(stack) do { \
+ if (CG(stack).top) { \
+ memcpy(&stack, &CG(stack), sizeof(zend_stack)); \
+ CG(stack).top = CG(stack).max = 0; \
+ CG(stack).elements = NULL; \
+ } else { \
+ stack.top = 0; \
+ } \
+ } while (0)
+
+#define RESTORE_STACK(stack) do { \
+ if (stack.top) { \
+ zend_stack_destroy(&CG(stack)); \
+ memcpy(&CG(stack), &stack, sizeof(zend_stack)); \
+ } \
+ } while (0)
+
ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
{
va_list args;
@@ -969,6 +987,14 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
zval *orig_user_error_handler;
zend_bool in_compilation;
zend_class_entry *saved_class_entry;
+ zend_stack bp_stack;
+ zend_stack function_call_stack;
+ zend_stack switch_cond_stack;
+ zend_stack foreach_copy_stack;
+ zend_stack object_stack;
+ zend_stack declare_stack;
+ zend_stack list_stack;
+ zend_stack labels_stack;
TSRMLS_FETCH();
/* Obtain relevant filename and lineno */
@@ -1096,6 +1122,14 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
if (in_compilation) {
saved_class_entry = CG(active_class_entry);
CG(active_class_entry) = NULL;
+ SAVE_STACK(bp_stack);
+ SAVE_STACK(function_call_stack);
+ SAVE_STACK(switch_cond_stack);
+ SAVE_STACK(foreach_copy_stack);
+ SAVE_STACK(object_stack);
+ SAVE_STACK(declare_stack);
+ SAVE_STACK(list_stack);
+ SAVE_STACK(labels_stack);
}
if (call_user_function_ex(CG(function_table), NULL, orig_user_error_handler, &retval, 5, params, 1, NULL TSRMLS_CC) == SUCCESS) {
@@ -1112,6 +1146,14 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
if (in_compilation) {
CG(active_class_entry) = saved_class_entry;
+ RESTORE_STACK(bp_stack);
+ RESTORE_STACK(function_call_stack);
+ RESTORE_STACK(switch_cond_stack);
+ RESTORE_STACK(foreach_copy_stack);
+ RESTORE_STACK(object_stack);
+ RESTORE_STACK(declare_stack);
+ RESTORE_STACK(list_stack);
+ RESTORE_STACK(labels_stack);
}
if (!EG(user_error_handler)) {
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 6d99c4d39..341a586e6 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.c 307424 2011-01-12 22:17:10Z felipe $ */
+/* $Id: zend_API.c 314352 2011-08-06 01:22:27Z felipe $ */
#include "zend.h"
#include "zend_execute.h"
@@ -941,6 +941,7 @@ ZEND_API int zend_parse_method_parameters_ex(int flags, int num_args TSRMLS_DC,
zend_error(E_CORE_ERROR, "%s::%s() must be derived from %s::%s",
ce->name, get_active_function_name(TSRMLS_C), Z_OBJCE_P(this_ptr)->name, get_active_function_name(TSRMLS_C));
}
+ va_end(va);
return FAILURE;
}
@@ -2082,6 +2083,22 @@ ZEND_API int zend_get_module_started(const char *module_name) /* {{{ */
}
/* }}} */
+static int clean_module_class(const zend_class_entry **ce, int *module_number TSRMLS_DC) /* {{{ */
+{
+ if ((*ce)->type == ZEND_INTERNAL_CLASS && (*ce)->module->module_number == *module_number) {
+ return ZEND_HASH_APPLY_REMOVE;
+ } else {
+ return ZEND_HASH_APPLY_KEEP;
+ }
+}
+/* }}} */
+
+static void clean_module_classes(int module_number TSRMLS_DC) /* {{{ */
+{
+ zend_hash_apply_with_argument(EG(class_table), (apply_func_arg_t) clean_module_class, (void *) &module_number TSRMLS_CC);
+}
+/* }}} */
+
void module_destructor(zend_module_entry *module) /* {{{ */
{
TSRMLS_FETCH();
@@ -2089,6 +2106,7 @@ void module_destructor(zend_module_entry *module) /* {{{ */
if (module->type == MODULE_TEMPORARY) {
zend_clean_module_rsrc_dtors(module->module_number TSRMLS_CC);
clean_module_constants(module->module_number TSRMLS_CC);
+ clean_module_classes(module->module_number TSRMLS_CC);
}
if (module->module_started && module->module_shutdown_func) {
@@ -2290,7 +2308,7 @@ ZEND_API ZEND_FUNCTION(display_disabled_function)
static zend_function_entry disabled_function[] = {
ZEND_FE(display_disabled_function, NULL)
- { NULL, NULL, NULL }
+ ZEND_FE_END
};
ZEND_API int zend_disable_function(char *function_name, uint function_name_length TSRMLS_DC) /* {{{ */
@@ -2316,7 +2334,7 @@ static zend_object_value display_disabled_class(zend_class_entry *class_type TSR
/* }}} */
static const zend_function_entry disabled_class_new[] = {
- { NULL, NULL, NULL }
+ ZEND_FE_END
};
ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC) /* {{{ */
@@ -2573,6 +2591,11 @@ get_function_via_handler:
if (fcc->function_handler) {
retval = 1;
call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0;
+ if (call_via_handler && !fcc->object_ptr && EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ instanceof_function(Z_OBJCE_P(EG(This)), fcc->calling_scope TSRMLS_CC)) {
+ fcc->object_ptr = EG(This);
+ }
}
}
}
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index 725927313..de395cd39 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_API.h 313662 2011-07-25 11:30:53Z felipe $ */
#ifndef ZEND_API_H
#define ZEND_API_H
@@ -96,6 +96,8 @@ typedef struct _zend_fcall_info_cache {
#define ZEND_NS_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0)
#define ZEND_NS_DEP_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED)
+#define ZEND_FE_END { NULL, NULL, NULL, 0, 0 }
+
#define ZEND_ARG_INFO(pass_by_ref, name) { #name, sizeof(#name)-1, NULL, 0, 0, 0, pass_by_ref, 0, 0 },
#define ZEND_ARG_PASS_INFO(pass_by_ref) { NULL, 0, NULL, 0, 0, 0, pass_by_ref, 0, 0 },
#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, sizeof(#name)-1, #classname, sizeof(#classname)-1, 0, allow_null, pass_by_ref, 0, 0 },
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index c63869852..8423ae38a 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_builtin_functions.c 307522 2011-01-16 20:39:22Z stas $ */
+/* $Id: zend_builtin_functions.c 314527 2011-08-08 14:54:50Z colder $ */
#include "zend.h"
#include "zend_API.h"
@@ -283,7 +283,7 @@ static const zend_function_entry builtin_functions[] = { /* {{{ */
ZEND_FE(gc_enabled, arginfo_zend__void)
ZEND_FE(gc_enable, arginfo_zend__void)
ZEND_FE(gc_disable, arginfo_zend__void)
- { NULL, NULL, NULL }
+ ZEND_FE_END
};
/* }}} */
@@ -822,45 +822,25 @@ static void is_a_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool only_subclass)
return;
}
- if (only_subclass && Z_TYPE_P(obj) == IS_STRING) {
+ if (Z_TYPE_P(obj) == IS_STRING) {
zend_class_entry **the_ce;
if (zend_lookup_class(Z_STRVAL_P(obj), Z_STRLEN_P(obj), &the_ce TSRMLS_CC) == FAILURE) {
- zend_error(E_WARNING, "Unknown class passed as parameter");
RETURN_FALSE;
}
instance_ce = *the_ce;
- } else if (Z_TYPE_P(obj) != IS_OBJECT) {
- RETURN_FALSE;
+ } else if (Z_TYPE_P(obj) == IS_OBJECT && HAS_CLASS_ENTRY(*obj)) {
+ instance_ce = Z_OBJCE_P(obj);
} else {
- instance_ce = NULL;
- }
-
- /* TBI!! new object handlers */
- if (Z_TYPE_P(obj) == IS_OBJECT && !HAS_CLASS_ENTRY(*obj)) {
RETURN_FALSE;
}
if (zend_lookup_class_ex(class_name, class_name_len, 0, &ce TSRMLS_CC) == FAILURE) {
retval = 0;
} else {
- if (only_subclass) {
- if (!instance_ce) {
- instance_ce = Z_OBJCE_P(obj)->parent;
- } else {
- instance_ce = instance_ce->parent;
- }
- } else {
- instance_ce = Z_OBJCE_P(obj);
- }
-
- if (!instance_ce) {
- RETURN_FALSE;
- }
-
- if (instanceof_function(instance_ce, *ce TSRMLS_CC)) {
- retval = 1;
- } else {
+ if (only_subclass && instance_ce == *ce) {
retval = 0;
+ } else {
+ retval = instanceof_function(instance_ce, *ce TSRMLS_CC);
}
}
@@ -1733,7 +1713,7 @@ ZEND_FUNCTION(create_function)
function_name[0] = '\0';
do {
- function_name_length = 1 + sprintf(function_name + 1, "lambda_%d", ++EG(lambda_count));
+ function_name_length = 1 + snprintf(function_name + 1, sizeof("lambda_")+MAX_LENGTH_OF_LONG, "lambda_%d", ++EG(lambda_count));
} while (zend_hash_add(EG(function_table), function_name, function_name_length+1, &new_function, sizeof(zend_function), NULL)==FAILURE);
zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME, sizeof(LAMBDA_TEMP_FUNCNAME));
RETURN_STRINGL(function_name, function_name_length, 0);
@@ -2067,7 +2047,7 @@ ZEND_FUNCTION(debug_print_backtrace)
ZEND_PUTS(class_name);
ZEND_PUTS(call_type);
}
- zend_printf("%s(", function_name?function_name:"main");
+ zend_printf("%s(", function_name);
if (arg_array) {
debug_print_backtrace_args(arg_array TSRMLS_CC);
zval_ptr_dtor(&arg_array);
diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c
index 32f3bb9cf..6787471c2 100644
--- a/Zend/zend_closures.c
+++ b/Zend/zend_closures.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_closures.c 308320 2011-02-14 10:52:16Z dmitry $ */
+/* $Id: zend_closures.c 310389 2011-04-20 12:59:18Z dmitry $ */
#include "zend.h"
#include "zend_API.h"
@@ -347,6 +347,7 @@ static int zval_copy_static_var(zval **p TSRMLS_DC, int num_args, va_list args,
} else if (Z_ISREF_PP(p)) {
ALLOC_INIT_ZVAL(tmp);
*tmp = **p;
+ zval_copy_ctor(tmp);
Z_SET_REFCOUNT_P(tmp, 0);
Z_UNSET_ISREF_P(tmp);
} else {
@@ -372,6 +373,7 @@ ZEND_API void zend_create_closure(zval *res, zend_function *func TSRMLS_DC) /* {
closure = (zend_closure *)zend_object_store_get_object(res TSRMLS_CC);
closure->func = *func;
+ closure->func.common.prototype = NULL;
if (closure->func.type == ZEND_USER_FUNCTION) {
if (closure->func.op_array.static_variables) {
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 4e05be7d3..c325a7e45 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.c 308443 2011-02-17 23:24:50Z felipe $ */
+/* $Id: zend_compile.c 313073 2011-07-08 16:29:33Z felipe $ */
#include <zend_language_parser.h>
#include "zend.h"
@@ -2529,7 +2529,7 @@ static void do_inherit_method(zend_function *function) /* {{{ */
}
/* }}} */
-static zend_bool zend_do_perform_implementation_check(const zend_function *fe, const zend_function *proto) /* {{{ */
+static zend_bool zend_do_perform_implementation_check(const zend_function *fe, const zend_function *proto TSRMLS_DC) /* {{{ */
{
zend_uint i;
@@ -2572,11 +2572,24 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
&& strcasecmp(fe->common.arg_info[i].class_name, proto->common.arg_info[i].class_name)!=0) {
char *colon;
- if (fe->common.type != ZEND_USER_FUNCTION ||
- strchr(proto->common.arg_info[i].class_name, '\\') != NULL ||
- (colon = zend_memrchr(fe->common.arg_info[i].class_name, '\\', fe->common.arg_info[i].class_name_len)) == NULL ||
- strcasecmp(colon+1, proto->common.arg_info[i].class_name) != 0) {
+ if (fe->common.type != ZEND_USER_FUNCTION) {
return 0;
+ } else if (strchr(proto->common.arg_info[i].class_name, '\\') != NULL ||
+ (colon = zend_memrchr(fe->common.arg_info[i].class_name, '\\', fe->common.arg_info[i].class_name_len)) == NULL ||
+ strcasecmp(colon+1, proto->common.arg_info[i].class_name) != 0) {
+ zend_class_entry **fe_ce, **proto_ce;
+ int found, found2;
+
+ found = zend_lookup_class(fe->common.arg_info[i].class_name, fe->common.arg_info[i].class_name_len, &fe_ce TSRMLS_CC);
+ found2 = zend_lookup_class(proto->common.arg_info[i].class_name, proto->common.arg_info[i].class_name_len, &proto_ce TSRMLS_CC);
+
+ /* Check for class alias */
+ if (found != SUCCESS || found2 != SUCCESS ||
+ (*fe_ce)->type == ZEND_INTERNAL_CLASS ||
+ (*proto_ce)->type == ZEND_INTERNAL_CLASS ||
+ *fe_ce != *proto_ce) {
+ return 0;
+ }
}
}
if (fe->common.arg_info[i].array_type_hint != proto->common.arg_info[i].array_type_hint) {
@@ -2668,11 +2681,11 @@ static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_f
}
if (child->common.prototype && (child->common.prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) {
- if (!zend_do_perform_implementation_check(child, child->common.prototype)) {
+ 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 that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(child->common.prototype), child->common.prototype->common.function_name);
}
} 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)) {
+ if (!zend_do_perform_implementation_check(child, parent TSRMLS_CC)) {
zend_error(E_STRICT, "Declaration of %s::%s() should be compatible with that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(parent), parent->common.function_name);
}
}
@@ -3749,6 +3762,10 @@ void zend_do_halt_compiler_register(TSRMLS_D) /* {{{ */
zend_mangle_property_name(&name, &len, haltoff, sizeof(haltoff) - 1, cfilename, clen, 0);
zend_register_long_constant(name, len+1, zend_get_scanned_file_offset(TSRMLS_C), CONST_CS, 0 TSRMLS_CC);
pefree(name, 0);
+
+ if (CG(in_namespace)) {
+ zend_do_end_namespace(TSRMLS_C);
+ }
}
/* }}} */
@@ -4897,14 +4914,12 @@ void zend_do_extended_fcall_end(TSRMLS_D) /* {{{ */
void zend_do_ticks(TSRMLS_D) /* {{{ */
{
- if (Z_LVAL(CG(declarables).ticks)) {
- zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
- opline->opcode = ZEND_TICKS;
- opline->op1.u.constant = CG(declarables).ticks;
- opline->op1.op_type = IS_CONST;
- SET_UNUSED(opline->op2);
- }
+ opline->opcode = ZEND_TICKS;
+ opline->op1.u.constant = CG(declarables).ticks;
+ opline->op1.op_type = IS_CONST;
+ SET_UNUSED(opline->op2);
}
/* }}} */
@@ -5305,6 +5320,12 @@ void zend_do_end_namespace(TSRMLS_D) /* {{{ */
efree(CG(current_import));
CG(current_import) = NULL;
}
+
+ if (CG(doc_comment)) {
+ efree(CG(doc_comment));
+ CG(doc_comment) = NULL;
+ CG(doc_comment_len) = 0;
+ }
}
/* }}} */
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index dac8b9fa0..15f24dfef 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_compile.h 312076 2011-06-12 01:43:10Z felipe $ */
#ifndef ZEND_COMPILE_H
#define ZEND_COMPILE_H
@@ -39,6 +39,7 @@
#define INC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { ((op_array)->backpatch_count++); }
#define DEC_BPC(op_array) if (op_array->fn_flags & ZEND_ACC_INTERACTIVE) { ((op_array)->backpatch_count--); }
#define HANDLE_INTERACTIVE() if (CG(active_op_array)->fn_flags & ZEND_ACC_INTERACTIVE) { execute_new_code(TSRMLS_C); }
+#define DO_TICKS() if (Z_LVAL(CG(declarables).ticks)) { zend_do_ticks(TSRMLS_C); }
#define RESET_DOC_COMMENT() \
{ \
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index e16cb3f33..7ed9274d2 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c 309328 2011-03-17 07:46:57Z johannes $ */
+/* $Id: zend_execute.c 309342 2011-03-17 11:49:18Z johannes $ */
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -536,10 +536,22 @@ static inline void zend_assign_to_object(znode *result, zval **object_ptr, zval
(Z_TYPE_P(object) == IS_BOOL && Z_LVAL_P(object) == 0) ||
(Z_TYPE_P(object) == IS_STRING && Z_STRLEN_P(object) == 0)) {
SEPARATE_ZVAL_IF_NOT_REF(object_ptr);
- zval_dtor(*object_ptr);
- object_init(*object_ptr);
object = *object_ptr;
+ Z_ADDREF_P(object);
zend_error(E_STRICT, "Creating default object from empty value");
+ if (Z_REFCOUNT_P(object) == 1) {
+ /* object was removed by error handler, nothing to assign to */
+ zval_ptr_dtor(&object);
+ if (retval) {
+ *retval = &EG(uninitialized_zval);
+ PZVAL_LOCK(*retval);
+ }
+ FREE_OP(free_value);
+ return;
+ }
+ Z_DELREF_P(object);
+ zval_dtor(object);
+ object_init(object);
} else {
zend_error(E_WARNING, "Attempt to assign property of non-object");
if (!RETURN_VALUE_UNUSED(result)) {
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 32c3fc301..547352c07 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_execute_API.c 310938 2011-05-11 06:58:33Z dmitry $ */
#include <stdio.h>
#include <signal.h>
@@ -296,7 +296,9 @@ void shutdown_executor(TSRMLS_D) /* {{{ */
zend_hash_reverse_apply(EG(function_table), (apply_func_t) zend_cleanup_function_data TSRMLS_CC);
}
zend_hash_apply(EG(class_table), (apply_func_t) zend_cleanup_class_data TSRMLS_CC);
+ } zend_end_try();
+ zend_try {
zend_vm_stack_destroy(TSRMLS_C);
zend_objects_store_free_object_storage(&EG(objects_store) TSRMLS_CC);
@@ -431,26 +433,28 @@ ZEND_API zend_bool zend_is_executing(TSRMLS_D) /* {{{ */
ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC) /* {{{ */
{
+ zval *zv = *zval_ptr;
+
#if DEBUG_ZEND>=2
printf("Reducing refcount for %x (%x): %d->%d\n", *zval_ptr, zval_ptr, Z_REFCOUNT_PP(zval_ptr), Z_REFCOUNT_PP(zval_ptr) - 1);
#endif
- Z_DELREF_PP(zval_ptr);
- if (Z_REFCOUNT_PP(zval_ptr) == 0) {
+ Z_DELREF_P(zv);
+ if (Z_REFCOUNT_P(zv) == 0) {
TSRMLS_FETCH();
- if (*zval_ptr != &EG(uninitialized_zval)) {
- GC_REMOVE_ZVAL_FROM_BUFFER(*zval_ptr);
- zval_dtor(*zval_ptr);
- efree_rel(*zval_ptr);
+ if (zv != &EG(uninitialized_zval)) {
+ GC_REMOVE_ZVAL_FROM_BUFFER(zv);
+ zval_dtor(zv);
+ efree_rel(zv);
}
} else {
TSRMLS_FETCH();
- if (Z_REFCOUNT_PP(zval_ptr) == 1) {
- Z_UNSET_ISREF_PP(zval_ptr);
+ if (Z_REFCOUNT_P(zv) == 1) {
+ Z_UNSET_ISREF_P(zv);
}
- GC_ZVAL_CHECK_POSSIBLE_ROOT(*zval_ptr);
+ GC_ZVAL_CHECK_POSSIBLE_ROOT(zv);
}
}
/* }}} */
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 1c9aa5e2c..80485001a 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_hash.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_hash.c 314482 2011-08-08 11:30:56Z pierrick $ */
#include "zend.h"
@@ -545,9 +545,15 @@ ZEND_API void zend_hash_clean(HashTable *ht)
IS_CONSISTENT(ht);
- SET_INCONSISTENT(HT_CLEANING);
-
p = ht->pListHead;
+
+ memset(ht->arBuckets, 0, ht->nTableSize*sizeof(Bucket *));
+ ht->pListHead = NULL;
+ ht->pListTail = NULL;
+ ht->nNumOfElements = 0;
+ ht->nNextFreeElement = 0;
+ ht->pInternalPointer = NULL;
+
while (p != NULL) {
q = p;
p = p->pListNext;
@@ -559,14 +565,6 @@ ZEND_API void zend_hash_clean(HashTable *ht)
}
pefree(q, ht->persistent);
}
- memset(ht->arBuckets, 0, ht->nTableSize*sizeof(Bucket *));
- ht->pListHead = NULL;
- ht->pListTail = NULL;
- ht->nNumOfElements = 0;
- ht->nNextFreeElement = 0;
- ht->pInternalPointer = NULL;
-
- SET_INCONSISTENT(HT_OK);
}
/* This function is used by the various apply() functions.
@@ -737,6 +735,7 @@ ZEND_API void zend_hash_apply_with_arguments(HashTable *ht TSRMLS_DC, apply_func
p = p->pListNext;
}
if (result & ZEND_HASH_APPLY_STOP) {
+ va_end(args);
break;
}
va_end(args);
@@ -1170,12 +1169,12 @@ ZEND_API int zend_hash_get_current_data_ex(HashTable *ht, void **pData, HashPosi
}
}
-/* This function changes key of currevt element without changing elements'
+/* This function changes key of current element without changing elements'
* order. If element with target key already exists, it will be deleted first.
*/
ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const char *str_index, uint str_length, ulong num_index, int mode, HashPosition *pos)
{
- Bucket *p;
+ Bucket *p, *q;
p = pos ? (*pos) : ht->pInternalPointer;
@@ -1188,100 +1187,124 @@ ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const
return SUCCESS;
}
- if (mode != HASH_UPDATE_KEY_ANYWAY) {
- Bucket *q = ht->arBuckets[num_index & ht->nTableMask];
- int found = 0;
-
- while (q != NULL) {
- if (q == p) {
- found = 1;
- } else if (!q->nKeyLength && q->h == num_index) {
- if (found) {
- if (mode & HASH_UPDATE_KEY_IF_BEFORE) {
- break;
- } else {
- if (p->nKeyLength) {
- zend_hash_del(ht, p->arKey, p->nKeyLength);
- } else {
- zend_hash_index_del(ht, p->h);
- }
- return FAILURE;
- }
- } else {
- if (mode & HASH_UPDATE_KEY_IF_AFTER) {
- break;
- } else {
- if (p->nKeyLength) {
- zend_hash_del(ht, p->arKey, p->nKeyLength);
- } else {
- zend_hash_index_del(ht, p->h);
- }
- return FAILURE;
- }
- }
- }
- q = q->pNext;
+ q = ht->arBuckets[num_index & ht->nTableMask];
+ while (q != NULL) {
+ if (!q->nKeyLength && q->h == num_index) {
+ break;
}
+ q = q->pNext;
}
-
- zend_hash_index_del(ht, num_index);
} else if (key_type == HASH_KEY_IS_STRING) {
+ ulong h;
+
if (p->nKeyLength == str_length &&
memcmp(p->arKey, str_index, str_length) == 0) {
return SUCCESS;
}
- if (mode != HASH_UPDATE_KEY_ANYWAY) {
- ulong h = zend_inline_hash_func(str_index, str_length);
- Bucket *q = ht->arBuckets[h & ht->nTableMask];
- int found = 0;
-
- while (q != NULL) {
- if (q == p) {
- found = 1;
- } else if (q->h == h && q->nKeyLength == str_length &&
- memcmp(q->arKey, str_index, str_length) == 0) {
- if (found) {
- if (mode & HASH_UPDATE_KEY_IF_BEFORE) {
- break;
- } else {
- if (p->nKeyLength) {
- zend_hash_del(ht, p->arKey, p->nKeyLength);
- } else {
- zend_hash_index_del(ht, p->h);
- }
- return FAILURE;
- }
- } else {
- if (mode & HASH_UPDATE_KEY_IF_AFTER) {
- break;
- } else {
- if (p->nKeyLength) {
- zend_hash_del(ht, p->arKey, p->nKeyLength);
- } else {
- zend_hash_index_del(ht, p->h);
- }
- return FAILURE;
- }
- }
- }
- q = q->pNext;
+ h = zend_inline_hash_func(str_index, str_length);
+ q = ht->arBuckets[h & ht->nTableMask];
+
+ while (q != NULL) {
+ if (q->h == h && q->nKeyLength == str_length &&
+ memcmp(q->arKey, str_index, str_length) == 0) {
+ break;
}
+ q = q->pNext;
}
-
- zend_hash_del(ht, str_index, str_length);
} else {
return FAILURE;
}
HANDLE_BLOCK_INTERRUPTIONS();
+ if (q) {
+ if (mode != HASH_UPDATE_KEY_ANYWAY) {
+ Bucket *r = p->pListLast;
+ int found = HASH_UPDATE_KEY_IF_BEFORE;
+
+ while (r) {
+ if (r == q) {
+ found = HASH_UPDATE_KEY_IF_AFTER;
+ break;
+ }
+ r = r->pListLast;
+ }
+ if (mode & found) {
+ /* delete current bucket */
+ if (p == ht->arBuckets[p->h & ht->nTableMask]) {
+ ht->arBuckets[p->h & ht->nTableMask] = p->pNext;
+ } else {
+ p->pLast->pNext = p->pNext;
+ }
+ if (p->pNext) {
+ p->pNext->pLast = p->pLast;
+ }
+ if (p->pListLast != NULL) {
+ p->pListLast->pListNext = p->pListNext;
+ } else {
+ /* Deleting the head of the list */
+ ht->pListHead = p->pListNext;
+ }
+ if (p->pListNext != NULL) {
+ p->pListNext->pListLast = p->pListLast;
+ } else {
+ ht->pListTail = p->pListLast;
+ }
+ if (ht->pInternalPointer == p) {
+ ht->pInternalPointer = p->pListNext;
+ }
+ if (ht->pDestructor) {
+ ht->pDestructor(p->pData);
+ }
+ if (p->pData != &p->pDataPtr) {
+ pefree(p->pData, ht->persistent);
+ }
+ pefree(p, ht->persistent);
+ ht->nNumOfElements--;
+ HANDLE_UNBLOCK_INTERRUPTIONS();
+ return FAILURE;
+ }
+ }
+ /* delete another bucket with the same key */
+ if (q == ht->arBuckets[q->h & ht->nTableMask]) {
+ ht->arBuckets[q->h & ht->nTableMask] = q->pNext;
+ } else {
+ q->pLast->pNext = q->pNext;
+ }
+ if (q->pNext) {
+ q->pNext->pLast = q->pLast;
+ }
+ if (q->pListLast != NULL) {
+ q->pListLast->pListNext = q->pListNext;
+ } else {
+ /* Deleting the head of the list */
+ ht->pListHead = q->pListNext;
+ }
+ if (q->pListNext != NULL) {
+ q->pListNext->pListLast = q->pListLast;
+ } else {
+ ht->pListTail = q->pListLast;
+ }
+ if (ht->pInternalPointer == q) {
+ ht->pInternalPointer = q->pListNext;
+ }
+ if (ht->pDestructor) {
+ ht->pDestructor(q->pData);
+ }
+ if (q->pData != &q->pDataPtr) {
+ pefree(q->pData, ht->persistent);
+ }
+ pefree(q, ht->persistent);
+ ht->nNumOfElements--;
+ }
+
if (p->pNext) {
p->pNext->pLast = p->pLast;
}
if (p->pLast) {
p->pLast->pNext = p->pNext;
- } else{
+ } else {
ht->arBuckets[p->h & ht->nTableMask] = p->pNext;
}
diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c
index c64d03672..337b844cd 100644
--- a/Zend/zend_ini_parser.c
+++ b/Zend/zend_ini_parser.c
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1. */
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* 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
+
+ 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 +28,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 +46,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -55,58 +54,23 @@
/* Pure parsers. */
#define YYPURE 1
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 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
-
-
+#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,6 +323,7 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
+
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -377,20 +342,59 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
# define YYTOKEN_TABLE 0
#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
-
/* Copy the second part of user declarations. */
-/* Line 216 of yacc.c. */
-
#ifdef short
# undef short
@@ -465,14 +469,14 @@ typedef short int yytype_int16;
#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
@@ -553,9 +557,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)
@@ -589,12 +593,12 @@ union yyalloc
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); \
} \
@@ -705,7 +709,7 @@ 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",
@@ -1020,17 +1024,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 +1071,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");
}
}
@@ -1348,10 +1355,8 @@ yydestruct (yymsg, yytype, yyvaluep)
break;
}
}
-
/* Prevent warnings from -Wmissing-prototypes. */
-
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -1370,10 +1375,9 @@ int yyparse ();
-
-/*----------.
-| yyparse. |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse. |
+`-------------------------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1397,74 +1401,75 @@ yyparse ()
#endif
#endif
{
- /* The look-ahead symbol. */
+/* The lookahead symbol. */
int yychar;
-/* The semantic value of the look-ahead symbol. */
+/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
-/* Number of syntax errors so far. */
-int yynerrs;
+ /* 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;
-#endif
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
-
-
-
-#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;
/* 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;
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ 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;
@@ -1494,7 +1499,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 +1506,6 @@ int yynerrs;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
-
&yystacksize);
yyss = yyss1;
@@ -1525,9 +1528,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 +1540,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 +1549,9 @@ int yynerrs;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
goto yybackup;
/*-----------.
@@ -1556,16 +1560,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)
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: "));
@@ -1597,20 +1601,16 @@ yybackup:
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;
*++yyvsp = yylval;
@@ -1891,7 +1891,6 @@ yyreduce:
break;
-/* Line 1267 of yacc.c. */
default: break;
}
@@ -1903,7 +1902,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. */
@@ -1968,7 +1966,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 +1983,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;
@@ -2042,9 +2040,6 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
*++yyvsp = yylval;
@@ -2069,7 +2064,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -2080,7 +2075,7 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
+ if (yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
/* Do not reclaim the symbols of the rule which action triggered
diff --git a/Zend/zend_ini_parser.h b/Zend/zend_ini_parser.h
index d883f9d40..1e0c9a96d 100644
--- a/Zend/zend_ini_parser.h
+++ b/Zend/zend_ini_parser.h
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1. */
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* 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
+
+ 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 +28,11 @@
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. */
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -76,10 +76,11 @@
#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
+
diff --git a/Zend/zend_ini_parser.output b/Zend/zend_ini_parser.output
index 9f7bcda21..fc6468a7f 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)
diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c
index c5ba987f2..0499ad4b6 100644
--- a/Zend/zend_language_parser.c
+++ b/Zend/zend_language_parser.c
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1. */
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* 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
+
+ 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 +28,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 +46,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -55,17 +54,93 @@
/* Pure parsers. */
#define YYPURE 1
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 1
+
/* Using locations. */
#define YYLSP_NEEDED 0
/* 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-2011 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: zend_language_parser.y 312076 2011-06-12 01:43:10Z felipe $ */
+
+/*
+ * 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 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
/* Tokens. */
@@ -327,88 +402,17 @@
-/* Copy the first part of user declarations. */
-
-
-/*
- +----------------------------------------------------------------------+
- | Zend Engine |
- +----------------------------------------------------------------------+
- | Copyright (c) 1998-2011 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: zend_language_parser.y 306939 2011-01-01 02:19:59Z felipe $ */
-
-/*
- * 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 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
-
/* Copy the second part of user declarations. */
-/* Line 216 of yacc.c. */
-
#ifdef short
# undef short
@@ -483,14 +487,14 @@ typedef short int yytype_int16;
#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
@@ -571,9 +575,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)
@@ -607,12 +611,12 @@ union yyalloc
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); \
} \
@@ -984,52 +988,53 @@ static const char *const yytname[] =
"T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM",
"T_NAMESPACE", "T_NS_C", "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",
+ "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",
+ "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", "method_body",
+ "class_statement_list", "class_statement", "$@36", "$@37", "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", "expr_without_variable", "@39", "@40",
- "@41", "@42", "@43", "@44", "@45", "@46", "@47", "@48", "@49", "@50",
- "function", "lexical_vars", "lexical_var_list", "function_call", "@51",
- "@52", "@53", "@54", "@55", "@56", "@57", "@58", "class_name",
- "fully_qualified_class_name", "class_name_reference",
- "dynamic_class_name_reference", "@59", "@60",
+ "non_empty_for_expr", "$@38", "expr_without_variable", "$@39", "$@40",
+ "$@41", "$@42", "$@43", "$@44", "$@45", "$@46", "$@47", "$@48", "$@49",
+ "@50", "function", "lexical_vars", "lexical_var_list", "function_call",
+ "$@51", "$@52", "$@53", "$@54", "$@55", "$@56", "$@57", "$@58",
+ "class_name", "fully_qualified_class_name", "class_name_reference",
+ "dynamic_class_name_reference", "$@59", "$@60",
"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", "@61", "@62",
- "variable_properties", "variable_property", "@63", "method_or_not",
- "@64", "variable_without_objects", "static_member",
+ "r_variable", "w_variable", "rw_variable", "variable", "$@61", "$@62",
+ "variable_properties", "variable_property", "$@63", "method_or_not",
+ "$@64", "variable_without_objects", "static_member",
"variable_class_name", "base_variable_with_function_calls",
"base_variable", "reference_variable", "compound_variable", "dim_offset",
- "object_property", "@65", "object_dim_list", "variable_name",
+ "object_property", "$@65", "object_dim_list", "variable_name",
"simple_indirect_reference", "assignment_list",
- "assignment_list_element", "@66", "array_pair_list",
- "non_empty_array_pair_list", "encaps_list", "encaps_var", "@67",
+ "assignment_list_element", "$@66", "array_pair_list",
+ "non_empty_array_pair_list", "encaps_list", "encaps_var", "$@67",
"encaps_var_offset", "internal_functions_in_yacc", "isset_variables",
- "@68", "class_constant", 0
+ "$@68", "class_constant", 0
};
#endif
@@ -2728,17 +2733,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");
}
@@ -2772,11 +2780,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");
}
}
@@ -3056,10 +3064,8 @@ yydestruct (yymsg, yytype, yyvaluep)
break;
}
}
-
/* Prevent warnings from -Wmissing-prototypes. */
-
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -3078,10 +3084,9 @@ int yyparse ();
-
-/*----------.
-| yyparse. |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse. |
+`-------------------------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -3105,74 +3110,75 @@ yyparse ()
#endif
#endif
{
- /* The look-ahead symbol. */
+/* The lookahead symbol. */
int yychar;
-/* The semantic value of the look-ahead symbol. */
+/* The semantic value of the lookahead 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;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- 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 thru 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;
/* 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;
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ 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;
@@ -3202,7 +3208,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
@@ -3210,7 +3215,6 @@ int yynerrs;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
-
&yystacksize);
yyss = yyss1;
@@ -3233,9 +3237,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);
@@ -3246,7 +3249,6 @@ int yynerrs;
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
-
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -3256,6 +3258,9 @@ int yynerrs;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
goto yybackup;
/*-----------.
@@ -3264,16 +3269,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)
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: "));
@@ -3305,20 +3310,16 @@ yybackup:
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;
*++yyvsp = yylval;
@@ -3484,7 +3485,7 @@ yyreduce:
case 34:
- { zend_do_ticks(TSRMLS_C); }
+ { DO_TICKS(); }
break;
case 35:
@@ -3749,12 +3750,12 @@ yyreduce:
case 95:
- { zend_do_ticks(TSRMLS_C); }
+ { DO_TICKS(); }
break;
case 96:
- { zend_do_ticks(TSRMLS_C); }
+ { DO_TICKS(); }
break;
case 97:
@@ -5431,7 +5432,6 @@ yyreduce:
break;
-/* Line 1267 of yacc.c. */
default: break;
}
@@ -5443,7 +5443,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. */
@@ -5508,7 +5507,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)
@@ -5525,7 +5524,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;
@@ -5582,9 +5581,6 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
*++yyvsp = yylval;
@@ -5609,7 +5605,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -5620,7 +5616,7 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
+ if (yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
/* Do not reclaim the symbols of the rule which action triggered
diff --git a/Zend/zend_language_parser.h b/Zend/zend_language_parser.h
index 32ff2d931..be6c758ad 100644
--- a/Zend/zend_language_parser.h
+++ b/Zend/zend_language_parser.h
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1. */
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* 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
+
+ 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 +28,11 @@
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. */
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -294,10 +294,11 @@
#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
+
diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output
index 71dcb30d5..1034fdce6 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
@@ -19,9 +19,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: T_STRING
@@ -33,13 +33,13 @@ Grammar
10 | T_HALT_COMPILER '(' ')' ';'
11 | T_NAMESPACE namespace_name ';'
- 12 @2: /* empty */
+ 12 $@2: /* empty */
- 13 top_statement: T_NAMESPACE namespace_name '{' @2 top_statement_list '}'
+ 13 top_statement: T_NAMESPACE namespace_name '{' $@2 top_statement_list '}'
- 14 @3: /* empty */
+ 14 $@3: /* empty */
- 15 top_statement: T_NAMESPACE '{' @3 top_statement_list '}'
+ 15 top_statement: T_NAMESPACE '{' $@3 top_statement_list '}'
16 | T_USE use_declarations ';'
17 | constant_declaration ';'
@@ -54,9 +54,9 @@ Grammar
24 constant_declaration: constant_declaration ',' T_STRING '=' static_scalar
25 | T_CONST 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
@@ -69,41 +69,41 @@ Grammar
35 unticked_statement: '{' inner_statement_list '}'
- 36 @5: /* empty */
+ 36 $@5: /* empty */
- 37 @6: /* empty */
+ 37 $@6: /* empty */
- 38 unticked_statement: T_IF '(' expr ')' @5 statement @6 elseif_list else_single
+ 38 unticked_statement: 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: T_IF '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
- 42 @9: /* empty */
+ 42 $@9: /* empty */
- 43 @10: /* empty */
+ 43 $@10: /* empty */
- 44 unticked_statement: T_WHILE '(' @9 expr ')' @10 while_statement
+ 44 unticked_statement: T_WHILE '(' $@9 expr ')' $@10 while_statement
- 45 @11: /* empty */
+ 45 $@11: /* empty */
- 46 @12: /* empty */
+ 46 $@12: /* empty */
- 47 unticked_statement: T_DO @11 statement T_WHILE '(' @12 expr ')' ';'
+ 47 unticked_statement: T_DO $@11 statement 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: T_FOR '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
- 52 @16: /* empty */
+ 52 $@16: /* empty */
- 53 unticked_statement: T_SWITCH '(' expr ')' @16 switch_case_list
+ 53 unticked_statement: T_SWITCH '(' expr ')' $@16 switch_case_list
54 | T_BREAK ';'
55 | T_BREAK expr ';'
56 | T_CONTINUE ';'
@@ -118,34 +118,34 @@ Grammar
65 | expr ';'
66 | T_UNSET '(' unset_variables ')' ';'
- 67 @17: /* empty */
+ 67 $@17: /* empty */
- 68 @18: /* empty */
+ 68 $@18: /* empty */
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable 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: T_FOREACH '(' expr_without_variable T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS $@19 variable foreach_optional_arg ')' $@20 foreach_statement
- 73 @21: /* empty */
+ 73 $@21: /* empty */
- 74 unticked_statement: T_DECLARE @21 '(' declare_list ')' declare_statement
+ 74 unticked_statement: 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: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
82 | T_THROW expr ';'
83 | T_GOTO T_STRING ';'
@@ -157,9 +157,9 @@ Grammar
88 @27: /* empty */
- 89 @28: /* empty */
+ 89 $@28: /* empty */
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' $@28 '{' inner_statement_list '}'
91 unset_variables: unset_variable
92 | unset_variables ',' unset_variable
@@ -173,17 +173,17 @@ Grammar
96 is_reference: /* empty */
97 | '&'
- 98 @29: /* empty */
+ 98 $@29: /* empty */
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 '(' parameter_list ')' '{' inner_statement_list '}'
- 100 @30: /* empty */
+ 100 $@30: /* empty */
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from $@30 implements_list '{' class_statement_list '}'
- 102 @31: /* empty */
+ 102 $@31: /* empty */
- 103 unticked_class_declaration_statement: interface_entry T_STRING @31 interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry T_STRING $@31 interface_extends_list '{' class_statement_list '}'
104 class_entry_type: T_CLASS
105 | T_ABSTRACT T_CLASS
@@ -228,13 +228,13 @@ Grammar
132 case_list: /* empty */
- 133 @32: /* empty */
+ 133 $@32: /* empty */
- 134 case_list: case_list T_CASE expr case_separator @32 inner_statement_list
+ 134 case_list: case_list T_CASE expr case_separator $@32 inner_statement_list
- 135 @33: /* empty */
+ 135 $@33: /* empty */
- 136 case_list: case_list T_DEFAULT case_separator @33 inner_statement_list
+ 136 case_list: case_list T_DEFAULT case_separator $@33 inner_statement_list
137 case_separator: ':'
138 | ';'
@@ -244,15 +244,15 @@ Grammar
141 elseif_list: /* empty */
- 142 @34: /* empty */
+ 142 $@34: /* empty */
- 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' @34 statement
+ 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' $@34 statement
144 new_elseif_list: /* empty */
- 145 @35: /* empty */
+ 145 $@35: /* empty */
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @35 inner_statement_list
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' $@35 inner_statement_list
147 else_single: /* empty */
148 | T_ELSE statement
@@ -301,14 +301,14 @@ Grammar
181 class_statement_list: class_statement_list class_statement
182 | /* empty */
- 183 @36: /* empty */
+ 183 $@36: /* empty */
- 184 class_statement: variable_modifiers @36 class_variable_declaration ';'
+ 184 class_statement: variable_modifiers $@36 class_variable_declaration ';'
185 | class_constant_declaration ';'
- 186 @37: /* empty */
+ 186 $@37: /* empty */
- 187 class_statement: method_modifiers function is_reference T_STRING @37 '(' parameter_list ')' method_body
+ 187 class_statement: method_modifiers function is_reference T_STRING $@37 '(' parameter_list ')' method_body
188 method_body: ';'
189 | '{' inner_statement_list '}'
@@ -343,24 +343,24 @@ Grammar
210 for_expr: /* empty */
211 | non_empty_for_expr
- 212 @38: /* empty */
+ 212 $@38: /* empty */
- 213 non_empty_for_expr: non_empty_for_expr ',' @38 expr
+ 213 non_empty_for_expr: non_empty_for_expr ',' $@38 expr
214 | expr
- 215 @39: /* empty */
+ 215 $@39: /* empty */
- 216 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' expr
+ 216 expr_without_variable: T_LIST '(' $@39 assignment_list ')' '=' expr
217 | variable '=' expr
218 | variable '=' '&' variable
- 219 @40: /* empty */
+ 219 $@40: /* empty */
- 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference $@40 ctor_arguments
- 221 @41: /* empty */
+ 221 $@41: /* empty */
- 222 expr_without_variable: T_NEW class_name_reference @41 ctor_arguments
+ 222 expr_without_variable: T_NEW class_name_reference $@41 ctor_arguments
223 | T_CLONE expr
224 | variable T_PLUS_EQUAL expr
225 | variable T_MINUS_EQUAL expr
@@ -378,21 +378,21 @@ Grammar
237 | rw_variable T_DEC
238 | T_DEC rw_variable
- 239 @42: /* empty */
+ 239 $@42: /* empty */
- 240 expr_without_variable: expr T_BOOLEAN_OR @42 expr
+ 240 expr_without_variable: expr T_BOOLEAN_OR $@42 expr
- 241 @43: /* empty */
+ 241 $@43: /* empty */
- 242 expr_without_variable: expr T_BOOLEAN_AND @43 expr
+ 242 expr_without_variable: expr T_BOOLEAN_AND $@43 expr
- 243 @44: /* empty */
+ 243 $@44: /* empty */
- 244 expr_without_variable: expr T_LOGICAL_OR @44 expr
+ 244 expr_without_variable: expr T_LOGICAL_OR $@44 expr
- 245 @45: /* empty */
+ 245 $@45: /* empty */
- 246 expr_without_variable: expr T_LOGICAL_AND @45 expr
+ 246 expr_without_variable: expr T_LOGICAL_AND $@45 expr
247 | expr T_LOGICAL_XOR expr
248 | expr '|' expr
249 | expr '&' expr
@@ -420,15 +420,15 @@ Grammar
271 | expr T_INSTANCEOF class_name_reference
272 | '(' expr ')'
- 273 @46: /* empty */
+ 273 $@46: /* empty */
- 274 @47: /* empty */
+ 274 $@47: /* empty */
- 275 expr_without_variable: expr '?' @46 expr ':' @47 expr
+ 275 expr_without_variable: expr '?' $@46 expr ':' $@47 expr
- 276 @48: /* empty */
+ 276 $@48: /* empty */
- 277 expr_without_variable: expr '?' ':' @48 expr
+ 277 expr_without_variable: expr '?' ':' $@48 expr
278 | internal_functions_in_yacc
279 | T_INT_CAST expr
280 | T_DOUBLE_CAST expr
@@ -439,9 +439,9 @@ Grammar
285 | T_UNSET_CAST expr
286 | T_EXIT exit_expr
- 287 @49: /* empty */
+ 287 $@49: /* empty */
- 288 expr_without_variable: '@' @49 expr
+ 288 expr_without_variable: '@' $@49 expr
289 | scalar
290 | T_ARRAY '(' array_pair_list ')'
291 | '`' backticks_expr '`'
@@ -461,37 +461,37 @@ Grammar
300 | T_VARIABLE
301 | '&' T_VARIABLE
- 302 @51: /* empty */
+ 302 $@51: /* empty */
- 303 function_call: namespace_name '(' @51 function_call_parameter_list ')'
+ 303 function_call: namespace_name '(' $@51 function_call_parameter_list ')'
- 304 @52: /* empty */
+ 304 $@52: /* empty */
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' $@52 function_call_parameter_list ')'
- 306 @53: /* empty */
+ 306 $@53: /* empty */
- 307 function_call: T_NS_SEPARATOR namespace_name '(' @53 function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR namespace_name '(' $@53 function_call_parameter_list ')'
- 308 @54: /* empty */
+ 308 $@54: /* empty */
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @54 function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@54 function_call_parameter_list ')'
- 310 @55: /* empty */
+ 310 $@55: /* empty */
- 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @55 function_call_parameter_list ')'
+ 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@55 function_call_parameter_list ')'
- 312 @56: /* empty */
+ 312 $@56: /* empty */
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @56 function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@56 function_call_parameter_list ')'
- 314 @57: /* empty */
+ 314 $@57: /* empty */
- 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @57 function_call_parameter_list ')'
+ 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@57 function_call_parameter_list ')'
- 316 @58: /* empty */
+ 316 $@58: /* empty */
- 317 function_call: variable_without_objects '(' @58 function_call_parameter_list ')'
+ 317 function_call: variable_without_objects '(' $@58 function_call_parameter_list ')'
318 class_name: T_STATIC
319 | namespace_name
@@ -505,11 +505,11 @@ Grammar
325 class_name_reference: class_name
326 | dynamic_class_name_reference
- 327 @59: /* empty */
+ 327 $@59: /* empty */
- 328 @60: /* empty */
+ 328 $@60: /* empty */
- 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @59 object_property @60 dynamic_class_name_variable_properties
+ 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR $@59 object_property $@60 dynamic_class_name_variable_properties
330 | base_variable
331 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property
@@ -581,23 +581,23 @@ Grammar
383 rw_variable: variable
- 384 @61: /* empty */
+ 384 $@61: /* empty */
- 385 @62: /* empty */
+ 385 $@62: /* empty */
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @61 object_property @62 method_or_not variable_properties
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR $@61 object_property $@62 method_or_not variable_properties
387 | base_variable_with_function_calls
388 variable_properties: variable_properties variable_property
389 | /* empty */
- 390 @63: /* empty */
+ 390 $@63: /* empty */
- 391 variable_property: T_OBJECT_OPERATOR object_property @63 method_or_not
+ 391 variable_property: T_OBJECT_OPERATOR object_property $@63 method_or_not
- 392 @64: /* empty */
+ 392 $@64: /* empty */
- 393 method_or_not: '(' @64 function_call_parameter_list ')'
+ 393 method_or_not: '(' $@64 function_call_parameter_list ')'
394 | /* empty */
395 variable_without_objects: reference_variable
@@ -627,9 +627,9 @@ Grammar
412 object_property: object_dim_list
- 413 @65: /* empty */
+ 413 $@65: /* empty */
- 414 object_property: variable_without_objects @65
+ 414 object_property: variable_without_objects $@65
415 object_dim_list: object_dim_list '[' dim_offset ']'
416 | object_dim_list '{' expr '}'
@@ -646,9 +646,9 @@ Grammar
424 assignment_list_element: variable
- 425 @66: /* empty */
+ 425 $@66: /* empty */
- 426 assignment_list_element: T_LIST '(' @66 assignment_list ')'
+ 426 assignment_list_element: T_LIST '(' $@66 assignment_list ')'
427 | /* empty */
428 array_pair_list: /* empty */
@@ -670,9 +670,9 @@ Grammar
442 encaps_var: T_VARIABLE
- 443 @67: /* empty */
+ 443 $@67: /* empty */
- 444 encaps_var: T_VARIABLE '[' @67 encaps_var_offset ']'
+ 444 encaps_var: T_VARIABLE '[' $@67 encaps_var_offset ']'
445 | T_VARIABLE T_OBJECT_OPERATOR T_STRING
446 | T_DOLLAR_OPEN_CURLY_BRACES expr '}'
447 | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'
@@ -692,9 +692,9 @@ Grammar
459 isset_variables: variable
- 460 @68: /* empty */
+ 460 $@68: /* empty */
- 461 isset_variables: isset_variables ',' @68 variable
+ 461 isset_variables: isset_variables ',' $@68 variable
462 class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
463 | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
@@ -877,16 +877,16 @@ start (155)
on left: 1, on right: 0
top_statement_list (156)
on left: 3 4, on right: 1 3 13 15
-@1 (157)
+$@1 (157)
on left: 2, on right: 3
namespace_name (158)
on left: 5 6, on right: 6 11 13 20 21 22 23 303 305 307 319 320
321 322 323 324 355 356 357 365 366 367
top_statement (159)
on left: 7 8 9 10 11 13 15 16 17, on right: 3
-@2 (160)
+$@2 (160)
on left: 12, on right: 13
-@3 (161)
+$@3 (161)
on left: 14, on right: 15
use_declarations (162)
on left: 18 19, on right: 16 18
@@ -897,7 +897,7 @@ constant_declaration (164)
inner_statement_list (165)
on left: 27 28, on right: 27 35 41 81 90 99 121 123 125 134 136
140 146 150 189 294
-@4 (166)
+$@4 (166)
on left: 26, on right: 27
inner_statement (167)
on left: 29 30 31 32, on right: 27
@@ -906,49 +906,49 @@ statement (168)
unticked_statement (169)
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 (170)
+$@5 (170)
on left: 36, on right: 38
-@6 (171)
+$@6 (171)
on left: 37, on right: 38
-@7 (172)
+$@7 (172)
on left: 39, on right: 41
-@8 (173)
+$@8 (173)
on left: 40, on right: 41
-@9 (174)
+$@9 (174)
on left: 42, on right: 44
-@10 (175)
+$@10 (175)
on left: 43, on right: 44
-@11 (176)
+$@11 (176)
on left: 45, on right: 47
-@12 (177)
+$@12 (177)
on left: 46, on right: 47
-@13 (178)
+$@13 (178)
on left: 48, on right: 51
-@14 (179)
+$@14 (179)
on left: 49, on right: 51
-@15 (180)
+$@15 (180)
on left: 50, on right: 51
-@16 (181)
+$@16 (181)
on left: 52, on right: 53
-@17 (182)
+$@17 (182)
on left: 67, on right: 69
-@18 (183)
+$@18 (183)
on left: 68, on right: 69
-@19 (184)
+$@19 (184)
on left: 70, on right: 72
-@20 (185)
+$@20 (185)
on left: 71, on right: 72
-@21 (186)
+$@21 (186)
on left: 73, on right: 74
-@22 (187)
+$@22 (187)
on left: 76, on right: 81
-@23 (188)
+$@23 (188)
on left: 77, on right: 81
-@24 (189)
+$@24 (189)
on left: 78, on right: 81
-@25 (190)
+$@25 (190)
on left: 79, on right: 81
-@26 (191)
+$@26 (191)
on left: 80, on right: 81
additional_catches (192)
on left: 84 85, on right: 81
@@ -958,7 +958,7 @@ additional_catch (194)
on left: 90, on right: 86 87
@27 (195)
on left: 88, on right: 90
-@28 (196)
+$@28 (196)
on left: 89, on right: 90
unset_variables (197)
on left: 91 92, on right: 66 92
@@ -972,13 +972,13 @@ is_reference (201)
on left: 96 97, on right: 99 187 294
unticked_function_declaration_statement (202)
on left: 99, on right: 94
-@29 (203)
+$@29 (203)
on left: 98, on right: 99
unticked_class_declaration_statement (204)
on left: 101 103, on right: 95
-@30 (205)
+$@30 (205)
on left: 100, on right: 101
-@31 (206)
+$@31 (206)
on left: 102, on right: 103
class_entry_type (207)
on left: 104 105 106, on right: 101
@@ -1008,9 +1008,9 @@ switch_case_list (219)
on left: 128 129 130 131, on right: 53
case_list (220)
on left: 132 134 136, on right: 128 129 130 131 134 136
-@32 (221)
+$@32 (221)
on left: 133, on right: 134
-@33 (222)
+$@33 (222)
on left: 135, on right: 136
case_separator (223)
on left: 137 138, on right: 134 136
@@ -1018,11 +1018,11 @@ while_statement (224)
on left: 139 140, on right: 44
elseif_list (225)
on left: 141 143, on right: 38 143
-@34 (226)
+$@34 (226)
on left: 142, on right: 143
new_elseif_list (227)
on left: 144 146, on right: 41 146
-@35 (228)
+$@35 (228)
on left: 145, on right: 146
else_single (229)
on left: 147 148, on right: 38
@@ -1050,9 +1050,9 @@ class_statement_list (239)
on left: 181 182, on right: 101 103 181
class_statement (240)
on left: 184 185 187, on right: 181
-@36 (241)
+$@36 (241)
on left: 183, on right: 184
-@37 (242)
+$@37 (242)
on left: 186, on right: 187
method_body (243)
on left: 188 189, on right: 187
@@ -1074,7 +1074,7 @@ for_expr (251)
on left: 210 211, on right: 51
non_empty_for_expr (252)
on left: 213 214, on right: 211 213
-@38 (253)
+$@38 (253)
on left: 212, on right: 213
expr_without_variable (254)
on left: 216 217 218 220 222 223 224 225 226 227 228 229 230 231
@@ -1082,27 +1082,27 @@ expr_without_variable (254)
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
268 269 270 271 272 275 277 278 279 280 281 282 283 284 285 286
288 289 290 291 292 294, on right: 59 72 166 169 380
-@39 (255)
+$@39 (255)
on left: 215, on right: 216
-@40 (256)
+$@40 (256)
on left: 219, on right: 220
-@41 (257)
+$@41 (257)
on left: 221, on right: 222
-@42 (258)
+$@42 (258)
on left: 239, on right: 240
-@43 (259)
+$@43 (259)
on left: 241, on right: 242
-@44 (260)
+$@44 (260)
on left: 243, on right: 244
-@45 (261)
+$@45 (261)
on left: 245, on right: 246
-@46 (262)
+$@46 (262)
on left: 273, on right: 275
-@47 (263)
+$@47 (263)
on left: 274, on right: 275
-@48 (264)
+$@48 (264)
on left: 276, on right: 277
-@49 (265)
+$@49 (265)
on left: 287, on right: 288
@50 (266)
on left: 293, on right: 294
@@ -1114,21 +1114,21 @@ lexical_var_list (269)
on left: 298 299 300 301, on right: 297 298 299
function_call (270)
on left: 303 305 307 309 311 313 315 317, on right: 401
-@51 (271)
+$@51 (271)
on left: 302, on right: 303
-@52 (272)
+$@52 (272)
on left: 304, on right: 305
-@53 (273)
+$@53 (273)
on left: 306, on right: 307
-@54 (274)
+$@54 (274)
on left: 308, on right: 309
-@55 (275)
+$@55 (275)
on left: 310, on right: 311
-@56 (276)
+$@56 (276)
on left: 312, on right: 313
-@57 (277)
+$@57 (277)
on left: 314, on right: 315
-@58 (278)
+$@58 (278)
on left: 316, on right: 317
class_name (279)
on left: 318 319 320 321, on right: 309 311 325 362 397 462
@@ -1138,9 +1138,9 @@ class_name_reference (281)
on left: 325 326, on right: 220 222 271
dynamic_class_name_reference (282)
on left: 329 330, on right: 326
-@59 (283)
+$@59 (283)
on left: 327, on right: 329
-@60 (284)
+$@60 (284)
on left: 328, on right: 329
dynamic_class_name_variable_properties (285)
on left: 331 332, on right: 329 331
@@ -1153,8 +1153,8 @@ backticks_expr (288)
ctor_arguments (289)
on left: 340 341, on right: 220 222
common_scalar (290)
- on left: 342 343 344 345 346 347 348 349 350 351 352 353,
- on right: 354 368
+ on left: 342 343 344 345 346 347 348 349 350 351 352 353, on right:
+ 354 368
static_scalar (291)
on left: 354 355 356 357 358 359 360 361, on right: 24 25 126 127
155 156 159 160 178 180 203 205 206 207 358 359 375 376 377 378
@@ -1185,19 +1185,19 @@ variable (301)
on left: 386 387, on right: 60 69 72 93 118 119 167 170 217 218
220 224 225 226 227 228 229 230 231 232 233 234 381 382 383 424
448 453 459 461
-@61 (302)
+$@61 (302)
on left: 384, on right: 386
-@62 (303)
+$@62 (303)
on left: 385, on right: 386
variable_properties (304)
on left: 388 389, on right: 386 388
variable_property (305)
on left: 391, on right: 388
-@63 (306)
+$@63 (306)
on left: 390, on right: 391
method_or_not (307)
on left: 393 394, on right: 386 391
-@64 (308)
+$@64 (308)
on left: 392, on right: 393
variable_without_objects (309)
on left: 395 396, on right: 311 315 317 397 398 414
@@ -1217,7 +1217,7 @@ dim_offset (316)
on left: 410 411, on right: 405 415
object_property (317)
on left: 412 414, on right: 329 333 386 391
-@65 (318)
+$@65 (318)
on left: 413, on right: 414
object_dim_list (319)
on left: 415 416 417, on right: 412 415 416
@@ -1229,7 +1229,7 @@ assignment_list (322)
on left: 422 423, on right: 216 422 426
assignment_list_element (323)
on left: 424 426 427, on right: 422 423
-@66 (324)
+$@66 (324)
on left: 425, on right: 426
array_pair_list (325)
on left: 428 429, on right: 290
@@ -1240,7 +1240,7 @@ encaps_list (327)
on left: 438 439 440 441, on right: 339 369 370 438 439
encaps_var (328)
on left: 442 444 445 446 447 448, on right: 438 440 441
-@67 (329)
+$@67 (329)
on left: 443, on right: 444
encaps_var_offset (330)
on left: 449 450 451, on right: 444
@@ -1248,7 +1248,7 @@ internal_functions_in_yacc (331)
on left: 452 453 454 455 456 457 458, on right: 278
isset_variables (332)
on left: 459 461, on right: 452 461
-@68 (333)
+$@68 (333)
on left: 460, on right: 461
class_constant (334)
on left: 462 463, on right: 364
@@ -1274,12 +1274,12 @@ state 1
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 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
@@ -1291,7 +1291,7 @@ state 3
state 4
- 3 top_statement_list: top_statement_list @1 . top_statement
+ 3 top_statement_list: top_statement_list $@1 . top_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -2104,11 +2104,11 @@ state 14
state 15
- 288 expr_without_variable: '@' . @49 expr
+ 288 expr_without_variable: '@' . $@49 expr
- $default reduce using rule 287 (@49)
+ $default reduce using rule 287 ($@49)
- @49 go to state 125
+ $@49 go to state 125
state 16
@@ -2781,7 +2781,7 @@ state 25
state 26
- 222 expr_without_variable: T_NEW . class_name_reference @41 ctor_arguments
+ 222 expr_without_variable: T_NEW . class_name_reference $@41 ctor_arguments
T_STRING shift, and go to state 111
T_VARIABLE shift, and go to state 33
@@ -2815,8 +2815,8 @@ state 27
state 28
- 38 unticked_statement: T_IF . '(' expr ')' @5 statement @6 elseif_list else_single
- 41 | T_IF . '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
+ 38 unticked_statement: T_IF . '(' expr ')' $@5 statement $@6 elseif_list else_single
+ 41 | T_IF . '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
'(' shift, and go to state 154
@@ -2953,47 +2953,47 @@ state 36
state 37
- 47 unticked_statement: T_DO . @11 statement T_WHILE '(' @12 expr ')' ';'
+ 47 unticked_statement: T_DO . $@11 statement T_WHILE '(' $@12 expr ')' ';'
- $default reduce using rule 45 (@11)
+ $default reduce using rule 45 ($@11)
- @11 go to state 158
+ $@11 go to state 158
state 38
- 44 unticked_statement: T_WHILE . '(' @9 expr ')' @10 while_statement
+ 44 unticked_statement: T_WHILE . '(' $@9 expr ')' $@10 while_statement
'(' shift, and go to state 159
state 39
- 51 unticked_statement: T_FOR . '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR . '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
'(' shift, and go to state 160
state 40
- 69 unticked_statement: T_FOREACH . '(' variable T_AS @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 72 | T_FOREACH . '(' expr_without_variable T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 69 unticked_statement: T_FOREACH . '(' variable T_AS $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 72 | T_FOREACH . '(' expr_without_variable T_AS $@19 variable foreach_optional_arg ')' $@20 foreach_statement
'(' shift, and go to state 161
state 41
- 74 unticked_statement: T_DECLARE . @21 '(' declare_list ')' declare_statement
+ 74 unticked_statement: T_DECLARE . $@21 '(' declare_list ')' declare_statement
- $default reduce using rule 73 (@21)
+ $default reduce using rule 73 ($@21)
- @21 go to state 162
+ $@21 go to state 162
state 42
- 53 unticked_statement: T_SWITCH . '(' expr ')' @16 switch_case_list
+ 53 unticked_statement: T_SWITCH . '(' expr ')' $@16 switch_case_list
'(' shift, and go to state 163
@@ -3259,11 +3259,11 @@ state 48
state 49
- 81 unticked_statement: T_TRY . @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY . $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 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 174
+ $@22 go to state 174
state 50
@@ -3436,7 +3436,7 @@ state 61
state 62
- 216 expr_without_variable: T_LIST . '(' @39 assignment_list ')' '=' expr
+ 216 expr_without_variable: T_LIST . '(' $@39 assignment_list ')' '=' expr
'(' shift, and go to state 192
@@ -3502,9 +3502,9 @@ state 69
state 70
11 top_statement: T_NAMESPACE . namespace_name ';'
- 13 | T_NAMESPACE . namespace_name '{' @2 top_statement_list '}'
- 15 | T_NAMESPACE . '{' @3 top_statement_list '}'
- 305 function_call: T_NAMESPACE . T_NS_SEPARATOR namespace_name '(' @52 function_call_parameter_list ')'
+ 13 | T_NAMESPACE . namespace_name '{' $@2 top_statement_list '}'
+ 15 | T_NAMESPACE . '{' $@3 top_statement_list '}'
+ 305 function_call: T_NAMESPACE . T_NS_SEPARATOR namespace_name '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE . T_NS_SEPARATOR namespace_name
366 scalar: T_NAMESPACE . T_NS_SEPARATOR namespace_name
@@ -3531,7 +3531,7 @@ state 72
state 73
- 307 function_call: T_NS_SEPARATOR . namespace_name '(' @53 function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR . namespace_name '(' $@53 function_call_parameter_list ')'
321 class_name: T_NS_SEPARATOR . namespace_name
367 scalar: T_NS_SEPARATOR . namespace_name
@@ -3675,7 +3675,7 @@ state 79
state 80
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
- 303 function_call: namespace_name . '(' @51 function_call_parameter_list ')'
+ 303 function_call: namespace_name . '(' $@51 function_call_parameter_list ')'
319 class_name: namespace_name .
365 scalar: namespace_name .
@@ -3688,7 +3688,7 @@ state 80
state 81
- 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)
@@ -3746,14 +3746,14 @@ state 88
state 89
- 101 unticked_class_declaration_statement: class_entry_type . T_STRING extends_from @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type . T_STRING extends_from $@30 implements_list '{' class_statement_list '}'
T_STRING shift, and go to state 217
state 90
- 103 unticked_class_declaration_statement: interface_entry . T_STRING @31 interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry . T_STRING $@31 interface_extends_list '{' class_statement_list '}'
T_STRING shift, and go to state 218
@@ -3767,7 +3767,7 @@ state 91
state 92
- 99 unticked_function_declaration_statement: function . is_reference T_STRING @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function . is_reference T_STRING $@29 '(' parameter_list ')' '{' inner_statement_list '}'
294 expr_without_variable: function . is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}'
'&' shift, and go to state 219
@@ -3786,8 +3786,8 @@ state 93
state 94
- 309 function_call: class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @54 function_call_parameter_list ')'
- 311 | class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @55 function_call_parameter_list ')'
+ 309 function_call: class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@54 function_call_parameter_list ')'
+ 311 | class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@55 function_call_parameter_list ')'
397 static_member: class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
462 class_constant: class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING
@@ -3811,10 +3811,10 @@ state 96
state 97
65 unticked_statement: expr . ';'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -3836,8 +3836,8 @@ state 97
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -3888,7 +3888,7 @@ state 100
217 expr_without_variable: variable . '=' expr
218 | variable . '=' '&' variable
- 220 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable . '=' '&' T_NEW class_name_reference $@40 ctor_arguments
224 | variable . T_PLUS_EQUAL expr
225 | variable . T_MINUS_EQUAL expr
226 | variable . T_MUL_EQUAL expr
@@ -3923,7 +3923,7 @@ state 100
state 101
- 317 function_call: variable_without_objects . '(' @58 function_call_parameter_list ')'
+ 317 function_call: variable_without_objects . '(' $@58 function_call_parameter_list ')'
'(' shift, and go to state 263
@@ -3937,8 +3937,8 @@ state 102
state 103
- 313 function_call: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @56 function_call_parameter_list ')'
- 315 | variable_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @57 function_call_parameter_list ')'
+ 313 function_call: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@56 function_call_parameter_list ')'
+ 315 | variable_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@57 function_call_parameter_list ')'
398 static_member: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
463 class_constant: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING
@@ -3947,7 +3947,7 @@ state 103
state 104
- 386 variable: base_variable_with_function_calls . T_OBJECT_OPERATOR @61 object_property @62 method_or_not variable_properties
+ 386 variable: base_variable_with_function_calls . T_OBJECT_OPERATOR $@61 object_property $@62 method_or_not variable_properties
387 | base_variable_with_function_calls .
T_OBJECT_OPERATOR shift, and go to state 265
@@ -4028,7 +4028,7 @@ state 112
state 113
- 305 function_call: T_NAMESPACE . T_NS_SEPARATOR namespace_name '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE . T_NS_SEPARATOR namespace_name '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE . T_NS_SEPARATOR namespace_name
366 scalar: T_NAMESPACE . T_NS_SEPARATOR namespace_name
@@ -4048,10 +4048,10 @@ state 114
state 115
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4073,8 +4073,8 @@ state 115
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
458 internal_functions_in_yacc: T_REQUIRE_ONCE expr .
T_LOGICAL_OR shift, and go to state 222
@@ -4109,10 +4109,10 @@ state 115
state 116
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4134,8 +4134,8 @@ state 116
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
457 internal_functions_in_yacc: T_REQUIRE expr .
T_LOGICAL_OR shift, and go to state 222
@@ -4247,10 +4247,10 @@ state 117
state 118
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4272,8 +4272,8 @@ state 118
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
455 internal_functions_in_yacc: T_INCLUDE_ONCE expr .
T_LOGICAL_OR shift, and go to state 222
@@ -4308,10 +4308,10 @@ state 118
state 119
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4333,8 +4333,8 @@ state 119
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
454 internal_functions_in_yacc: T_INCLUDE expr .
T_LOGICAL_OR shift, and go to state 222
@@ -4369,10 +4369,10 @@ state 119
state 120
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4394,8 +4394,8 @@ state 120
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
292 | T_PRINT expr .
'?' shift, and go to state 225
@@ -4427,10 +4427,10 @@ state 120
state 121
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4453,18 +4453,18 @@ state 121
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
$default reduce using rule 259 (expr_without_variable)
state 122
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4487,18 +4487,18 @@ state 122
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
$default reduce using rule 260 (expr_without_variable)
state 123
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4521,8 +4521,8 @@ state 123
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_INSTANCEOF shift, and go to state 247
@@ -4531,10 +4531,10 @@ state 123
state 124
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4557,15 +4557,15 @@ state 124
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
$default reduce using rule 262 (expr_without_variable)
state 125
- 288 expr_without_variable: '@' @49 . expr
+ 288 expr_without_variable: '@' $@49 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -4642,10 +4642,10 @@ state 125
state 126
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4667,8 +4667,8 @@ state 126
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
285 | T_UNSET_CAST expr .
$default reduce using rule 285 (expr_without_variable)
@@ -4676,10 +4676,10 @@ state 126
state 127
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4701,8 +4701,8 @@ state 127
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
284 | T_BOOL_CAST expr .
$default reduce using rule 284 (expr_without_variable)
@@ -4710,10 +4710,10 @@ state 127
state 128
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4735,8 +4735,8 @@ state 128
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
283 | T_OBJECT_CAST expr .
$default reduce using rule 283 (expr_without_variable)
@@ -4744,10 +4744,10 @@ state 128
state 129
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4769,8 +4769,8 @@ state 129
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
282 | T_ARRAY_CAST expr .
$default reduce using rule 282 (expr_without_variable)
@@ -4778,10 +4778,10 @@ state 129
state 130
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4803,8 +4803,8 @@ state 130
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
281 | T_STRING_CAST expr .
$default reduce using rule 281 (expr_without_variable)
@@ -4812,10 +4812,10 @@ state 130
state 131
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4837,8 +4837,8 @@ state 131
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
280 | T_DOUBLE_CAST expr .
$default reduce using rule 280 (expr_without_variable)
@@ -4846,10 +4846,10 @@ state 131
state 132
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4871,8 +4871,8 @@ state 132
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
279 | T_INT_CAST expr .
$default reduce using rule 279 (expr_without_variable)
@@ -4880,7 +4880,7 @@ state 132
state 133
- 305 function_call: T_NAMESPACE . T_NS_SEPARATOR namespace_name '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE . T_NS_SEPARATOR namespace_name '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE . T_NS_SEPARATOR namespace_name
T_NS_SEPARATOR shift, and go to state 273
@@ -4888,7 +4888,7 @@ state 133
state 134
- 307 function_call: T_NS_SEPARATOR . namespace_name '(' @53 function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR . namespace_name '(' $@53 function_call_parameter_list ')'
321 class_name: T_NS_SEPARATOR . namespace_name
T_STRING shift, and go to state 111
@@ -4899,7 +4899,7 @@ state 134
state 135
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
- 303 function_call: namespace_name . '(' @51 function_call_parameter_list ')'
+ 303 function_call: namespace_name . '(' $@51 function_call_parameter_list ')'
319 class_name: namespace_name .
T_NS_SEPARATOR shift, and go to state 213
@@ -4910,8 +4910,8 @@ state 135
state 136
- 309 function_call: class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @54 function_call_parameter_list ')'
- 311 | class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @55 function_call_parameter_list ')'
+ 309 function_call: class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@54 function_call_parameter_list ')'
+ 311 | class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@55 function_call_parameter_list ')'
397 static_member: class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 275
@@ -4933,8 +4933,8 @@ state 138
state 139
- 313 function_call: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @56 function_call_parameter_list ')'
- 315 | variable_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @57 function_call_parameter_list ')'
+ 313 function_call: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@56 function_call_parameter_list ')'
+ 315 | variable_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@57 function_call_parameter_list ')'
398 static_member: variable_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 276
@@ -4950,10 +4950,10 @@ state 140
state 141
223 expr_without_variable: T_CLONE expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -4975,8 +4975,8 @@ state 141
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
$default reduce using rule 223 (expr_without_variable)
@@ -5019,11 +5019,11 @@ state 145
state 146
- 222 expr_without_variable: T_NEW class_name_reference . @41 ctor_arguments
+ 222 expr_without_variable: T_NEW class_name_reference . $@41 ctor_arguments
- $default reduce using rule 221 (@41)
+ $default reduce using rule 221 ($@41)
- @41 go to state 280
+ $@41 go to state 280
state 147
@@ -5042,7 +5042,7 @@ state 148
state 149
- 329 dynamic_class_name_reference: base_variable . T_OBJECT_OPERATOR @59 object_property @60 dynamic_class_name_variable_properties
+ 329 dynamic_class_name_reference: base_variable . T_OBJECT_OPERATOR $@59 object_property $@60 dynamic_class_name_variable_properties
330 | base_variable .
T_OBJECT_OPERATOR shift, and go to state 282
@@ -5164,8 +5164,8 @@ state 153
state 154
- 38 unticked_statement: T_IF '(' . expr ')' @5 statement @6 elseif_list else_single
- 41 | T_IF '(' . expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
+ 38 unticked_statement: T_IF '(' . expr ')' $@5 statement $@6 elseif_list else_single
+ 41 | T_IF '(' . expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5259,10 +5259,10 @@ state 156
state 157
209 echo_expr_list: expr .
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -5284,8 +5284,8 @@ state 157
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -5319,7 +5319,7 @@ state 157
state 158
- 47 unticked_statement: T_DO @11 . statement T_WHILE '(' @12 expr ')' ';'
+ 47 unticked_statement: T_DO $@11 . statement T_WHILE '(' $@12 expr ')' ';'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5417,16 +5417,16 @@ state 158
state 159
- 44 unticked_statement: T_WHILE '(' . @9 expr ')' @10 while_statement
+ 44 unticked_statement: T_WHILE '(' . $@9 expr ')' $@10 while_statement
- $default reduce using rule 42 (@9)
+ $default reduce using rule 42 ($@9)
- @9 go to state 290
+ $@9 go to state 290
state 160
- 51 unticked_statement: T_FOR '(' . for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' . for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5507,8 +5507,8 @@ state 160
state 161
- 69 unticked_statement: T_FOREACH '(' . variable T_AS @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
- 72 | T_FOREACH '(' . expr_without_variable T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' . variable T_AS $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
+ 72 | T_FOREACH '(' . expr_without_variable T_AS $@19 variable foreach_optional_arg ')' $@20 foreach_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5585,14 +5585,14 @@ state 161
state 162
- 74 unticked_statement: T_DECLARE @21 . '(' declare_list ')' declare_statement
+ 74 unticked_statement: T_DECLARE $@21 . '(' declare_list ')' declare_statement
'(' shift, and go to state 296
state 163
- 53 unticked_statement: T_SWITCH '(' . expr ')' @16 switch_case_list
+ 53 unticked_statement: T_SWITCH '(' . expr ')' $@16 switch_case_list
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -5677,10 +5677,10 @@ state 164
state 165
55 unticked_statement: T_BREAK expr . ';'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -5702,8 +5702,8 @@ state 165
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -5744,10 +5744,10 @@ state 166
state 167
57 unticked_statement: T_CONTINUE expr . ';'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -5769,8 +5769,8 @@ state 167
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -5834,10 +5834,10 @@ state 171
state 172
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -5859,8 +5859,8 @@ state 172
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -5895,7 +5895,7 @@ state 173
60 unticked_statement: T_RETURN variable . ';'
217 expr_without_variable: variable . '=' expr
218 | variable . '=' '&' variable
- 220 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable . '=' '&' T_NEW class_name_reference $@40 ctor_arguments
224 | variable . T_PLUS_EQUAL expr
225 | variable . T_MINUS_EQUAL expr
226 | variable . T_MUL_EQUAL expr
@@ -5931,7 +5931,7 @@ state 173
state 174
- 81 unticked_statement: T_TRY @22 . '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 . '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
'{' shift, and go to state 304
@@ -5939,10 +5939,10 @@ state 174
state 175
82 unticked_statement: T_THROW expr . ';'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -5964,8 +5964,8 @@ state 175
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -6206,11 +6206,11 @@ state 191
state 192
- 216 expr_without_variable: T_LIST '(' . @39 assignment_list ')' '=' expr
+ 216 expr_without_variable: T_LIST '(' . $@39 assignment_list ')' '=' expr
- $default reduce using rule 215 (@39)
+ $default reduce using rule 215 ($@39)
- @39 go to state 325
+ $@39 go to state 325
state 193
@@ -6298,7 +6298,7 @@ state 193
state 194
442 encaps_var: T_VARIABLE .
- 444 | T_VARIABLE . '[' @67 encaps_var_offset ']'
+ 444 | T_VARIABLE . '[' $@67 encaps_var_offset ']'
445 | T_VARIABLE . T_OBJECT_OPERATOR T_STRING
'[' shift, and go to state 330
@@ -6454,7 +6454,7 @@ state 200
state 201
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR . namespace_name '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR . namespace_name '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE T_NS_SEPARATOR . namespace_name
366 scalar: T_NAMESPACE T_NS_SEPARATOR . namespace_name
@@ -6465,18 +6465,18 @@ state 201
state 202
- 15 top_statement: T_NAMESPACE '{' . @3 top_statement_list '}'
+ 15 top_statement: T_NAMESPACE '{' . $@3 top_statement_list '}'
- $default reduce using rule 14 (@3)
+ $default reduce using rule 14 ($@3)
- @3 go to state 341
+ $@3 go to state 341
state 203
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
11 top_statement: T_NAMESPACE namespace_name . ';'
- 13 | T_NAMESPACE namespace_name . '{' @2 top_statement_list '}'
+ 13 | T_NAMESPACE namespace_name . '{' $@2 top_statement_list '}'
T_NS_SEPARATOR shift, and go to state 213
';' shift, and go to state 342
@@ -6486,7 +6486,7 @@ state 203
state 204
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
- 307 function_call: T_NS_SEPARATOR namespace_name . '(' @53 function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR namespace_name . '(' $@53 function_call_parameter_list ')'
321 class_name: T_NS_SEPARATOR namespace_name .
367 scalar: T_NS_SEPARATOR namespace_name .
@@ -6499,10 +6499,10 @@ state 204
state 205
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -6525,8 +6525,8 @@ state 205
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
272 | '(' expr . ')'
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -6559,14 +6559,14 @@ state 205
state 206
- 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 346
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 207
@@ -6718,11 +6718,11 @@ state 213
state 214
- 303 function_call: namespace_name '(' . @51 function_call_parameter_list ')'
+ 303 function_call: namespace_name '(' . $@51 function_call_parameter_list ')'
- $default reduce using rule 302 (@51)
+ $default reduce using rule 302 ($@51)
- @51 go to state 352
+ $@51 go to state 352
state 215
@@ -6741,7 +6741,7 @@ state 216
state 217
- 101 unticked_class_declaration_statement: class_entry_type T_STRING . extends_from @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING . extends_from $@30 implements_list '{' class_statement_list '}'
T_EXTENDS shift, and go to state 354
@@ -6752,11 +6752,11 @@ state 217
state 218
- 103 unticked_class_declaration_statement: interface_entry T_STRING . @31 interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry 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 356
+ $@31 go to state 356
state 219
@@ -6768,7 +6768,7 @@ state 219
state 220
- 99 unticked_function_declaration_statement: function is_reference . T_STRING @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference . T_STRING $@29 '(' parameter_list ')' '{' inner_statement_list '}'
294 expr_without_variable: function is_reference . '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}'
T_STRING shift, and go to state 357
@@ -6777,8 +6777,8 @@ state 220
state 221
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @54 function_call_parameter_list ')'
- 311 | class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @55 function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' $@54 function_call_parameter_list ')'
+ 311 | class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' $@55 function_call_parameter_list ')'
397 static_member: class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
462 class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING
@@ -6794,11 +6794,11 @@ state 221
state 222
- 244 expr_without_variable: expr T_LOGICAL_OR . @44 expr
+ 244 expr_without_variable: expr T_LOGICAL_OR . $@44 expr
- $default reduce using rule 243 (@44)
+ $default reduce using rule 243 ($@44)
- @44 go to state 363
+ $@44 go to state 363
state 223
@@ -6880,41 +6880,41 @@ state 223
state 224
- 246 expr_without_variable: expr T_LOGICAL_AND . @45 expr
+ 246 expr_without_variable: expr T_LOGICAL_AND . $@45 expr
- $default reduce using rule 245 (@45)
+ $default reduce using rule 245 ($@45)
- @45 go to state 365
+ $@45 go to state 365
state 225
- 275 expr_without_variable: expr '?' . @46 expr ':' @47 expr
- 277 | expr '?' . ':' @48 expr
+ 275 expr_without_variable: expr '?' . $@46 expr ':' $@47 expr
+ 277 | expr '?' . ':' $@48 expr
':' shift, and go to state 366
- $default reduce using rule 273 (@46)
+ $default reduce using rule 273 ($@46)
- @46 go to state 367
+ $@46 go to state 367
state 226
- 240 expr_without_variable: expr T_BOOLEAN_OR . @42 expr
+ 240 expr_without_variable: expr T_BOOLEAN_OR . $@42 expr
- $default reduce using rule 239 (@42)
+ $default reduce using rule 239 ($@42)
- @42 go to state 368
+ $@42 go to state 368
state 227
- 242 expr_without_variable: expr T_BOOLEAN_AND . @43 expr
+ 242 expr_without_variable: expr T_BOOLEAN_AND . $@43 expr
- $default reduce using rule 241 (@43)
+ $default reduce using rule 241 ($@43)
- @43 go to state 369
+ $@43 go to state 369
state 228
@@ -8428,7 +8428,7 @@ state 251
217 expr_without_variable: variable '=' . expr
218 | variable '=' . '&' variable
- 220 | variable '=' . '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable '=' . '&' T_NEW class_name_reference $@40 ctor_arguments
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -9353,17 +9353,17 @@ state 262
state 263
- 317 function_call: variable_without_objects '(' . @58 function_call_parameter_list ')'
+ 317 function_call: variable_without_objects '(' . $@58 function_call_parameter_list ')'
- $default reduce using rule 316 (@58)
+ $default reduce using rule 316 ($@58)
- @58 go to state 403
+ $@58 go to state 403
state 264
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @56 function_call_parameter_list ')'
- 315 | variable_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @57 function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' $@56 function_call_parameter_list ')'
+ 315 | variable_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' $@57 function_call_parameter_list ')'
398 static_member: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
463 class_constant: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING
@@ -9379,11 +9379,11 @@ state 264
state 265
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR . @61 object_property @62 method_or_not variable_properties
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR . $@61 object_property $@62 method_or_not variable_properties
- $default reduce using rule 384 (@61)
+ $default reduce using rule 384 ($@61)
- @61 go to state 406
+ $@61 go to state 406
state 266
@@ -9576,10 +9576,10 @@ state 270
state 271
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -9601,8 +9601,8 @@ state 271
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
456 internal_functions_in_yacc: T_EVAL '(' expr . ')'
T_LOGICAL_OR shift, and go to state 222
@@ -9636,10 +9636,10 @@ state 271
state 272
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -9661,16 +9661,16 @@ state 272
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
- 288 | '@' @49 expr .
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
+ 288 | '@' $@49 expr .
$default reduce using rule 288 (expr_without_variable)
state 273
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR . namespace_name '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR . namespace_name '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE T_NS_SEPARATOR . namespace_name
T_STRING shift, and go to state 111
@@ -9681,7 +9681,7 @@ state 273
state 274
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
- 307 function_call: T_NS_SEPARATOR namespace_name . '(' @53 function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR namespace_name . '(' $@53 function_call_parameter_list ')'
321 class_name: T_NS_SEPARATOR namespace_name .
T_NS_SEPARATOR shift, and go to state 213
@@ -9692,8 +9692,8 @@ state 274
state 275
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @54 function_call_parameter_list ')'
- 311 | class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @55 function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' $@54 function_call_parameter_list ')'
+ 311 | class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' $@55 function_call_parameter_list ')'
397 static_member: class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
T_STRING shift, and go to state 412
@@ -9708,8 +9708,8 @@ state 275
state 276
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @56 function_call_parameter_list ')'
- 315 | variable_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @57 function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' $@56 function_call_parameter_list ')'
+ 315 | variable_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' $@57 function_call_parameter_list ')'
398 static_member: variable_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects
T_STRING shift, and go to state 413
@@ -9756,7 +9756,7 @@ state 279
state 280
- 222 expr_without_variable: T_NEW class_name_reference @41 . ctor_arguments
+ 222 expr_without_variable: T_NEW class_name_reference $@41 . ctor_arguments
'(' shift, and go to state 416
@@ -9780,11 +9780,11 @@ state 281
state 282
- 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR . @59 object_property @60 dynamic_class_name_variable_properties
+ 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR . $@59 object_property $@60 dynamic_class_name_variable_properties
- $default reduce using rule 327 (@59)
+ $default reduce using rule 327 ($@59)
- @59 go to state 419
+ $@59 go to state 419
state 283
@@ -9808,10 +9808,10 @@ state 284
state 285
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -9833,8 +9833,8 @@ state 285
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
336 exit_expr: '(' expr . ')'
T_LOGICAL_OR shift, and go to state 222
@@ -9868,12 +9868,12 @@ state 285
state 286
- 38 unticked_statement: T_IF '(' expr . ')' @5 statement @6 elseif_list else_single
- 41 | T_IF '(' expr . ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 38 unticked_statement: T_IF '(' expr . ')' $@5 statement $@6 elseif_list else_single
+ 41 | T_IF '(' expr . ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -9895,8 +9895,8 @@ state 286
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -10013,14 +10013,14 @@ state 288
state 289
- 47 unticked_statement: T_DO @11 statement . T_WHILE '(' @12 expr ')' ';'
+ 47 unticked_statement: T_DO $@11 statement . T_WHILE '(' $@12 expr ')' ';'
T_WHILE shift, and go to state 423
state 290
- 44 unticked_statement: T_WHILE '(' @9 . expr ')' @10 while_statement
+ 44 unticked_statement: T_WHILE '(' $@9 . expr ')' $@10 while_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -10097,7 +10097,7 @@ state 290
state 291
- 51 unticked_statement: T_FOR '(' for_expr . ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' for_expr . ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement
';' shift, and go to state 425
@@ -10105,7 +10105,7 @@ state 291
state 292
211 for_expr: non_empty_for_expr .
- 213 non_empty_for_expr: non_empty_for_expr . ',' @38 expr
+ 213 non_empty_for_expr: non_empty_for_expr . ',' $@38 expr
',' shift, and go to state 426
@@ -10115,10 +10115,10 @@ state 292
state 293
214 non_empty_for_expr: expr .
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -10140,8 +10140,8 @@ state 293
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -10175,7 +10175,7 @@ state 293
state 294
- 72 unticked_statement: T_FOREACH '(' expr_without_variable . T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable . T_AS $@19 variable foreach_optional_arg ')' $@20 foreach_statement
380 expr: expr_without_variable .
T_AS shift, and go to state 427
@@ -10185,10 +10185,10 @@ state 294
state 295
- 69 unticked_statement: T_FOREACH '(' variable . T_AS @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable . T_AS $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement
217 expr_without_variable: variable . '=' expr
218 | variable . '=' '&' variable
- 220 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable . '=' '&' T_NEW class_name_reference $@40 ctor_arguments
224 | variable . T_PLUS_EQUAL expr
225 | variable . T_MINUS_EQUAL expr
226 | variable . T_MUL_EQUAL expr
@@ -10224,7 +10224,7 @@ state 295
state 296
- 74 unticked_statement: T_DECLARE @21 '(' . declare_list ')' declare_statement
+ 74 unticked_statement: T_DECLARE $@21 '(' . declare_list ')' declare_statement
T_STRING shift, and go to state 429
@@ -10233,11 +10233,11 @@ state 296
state 297
- 53 unticked_statement: T_SWITCH '(' expr . ')' @16 switch_case_list
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 53 unticked_statement: T_SWITCH '(' expr . ')' $@16 switch_case_list
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -10259,8 +10259,8 @@ state 297
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -10358,7 +10358,7 @@ state 303
state 304
- 81 unticked_statement: T_TRY @22 '{' . inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' . inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
$default reduce using rule 28 (inner_statement_list)
@@ -10595,7 +10595,7 @@ state 321
state 322
452 internal_functions_in_yacc: T_ISSET '(' isset_variables . ')'
- 461 isset_variables: isset_variables . ',' @68 variable
+ 461 isset_variables: isset_variables . ',' $@68 variable
',' shift, and go to state 453
')' shift, and go to state 454
@@ -10617,7 +10617,7 @@ state 324
state 325
- 216 expr_without_variable: T_LIST '(' @39 . assignment_list ')' '=' expr
+ 216 expr_without_variable: T_LIST '(' $@39 . assignment_list ')' '=' expr
T_STRING shift, and go to state 111
T_VARIABLE shift, and go to state 33
@@ -10673,10 +10673,10 @@ state 326
state 327
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -10698,8 +10698,8 @@ state 327
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
432 non_empty_array_pair_list: expr . T_DOUBLE_ARROW expr
433 | expr .
436 | expr . T_DOUBLE_ARROW '&' w_variable
@@ -10759,11 +10759,11 @@ state 329
state 330
- 444 encaps_var: T_VARIABLE '[' . @67 encaps_var_offset ']'
+ 444 encaps_var: T_VARIABLE '[' . $@67 encaps_var_offset ']'
- $default reduce using rule 443 (@67)
+ $default reduce using rule 443 ($@67)
- @67 go to state 467
+ $@67 go to state 467
state 331
@@ -10799,10 +10799,10 @@ state 334
state 335
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -10824,8 +10824,8 @@ state 335
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
446 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr . '}'
T_LOGICAL_OR shift, and go to state 222
@@ -10888,7 +10888,7 @@ state 339
state 340
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name . '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name . '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE T_NS_SEPARATOR namespace_name .
366 scalar: T_NAMESPACE T_NS_SEPARATOR namespace_name .
@@ -10901,7 +10901,7 @@ state 340
state 341
- 15 top_statement: T_NAMESPACE '{' @3 . top_statement_list '}'
+ 15 top_statement: T_NAMESPACE '{' $@3 . top_statement_list '}'
$default reduce using rule 4 (top_statement_list)
@@ -10917,20 +10917,20 @@ state 342
state 343
- 13 top_statement: T_NAMESPACE namespace_name '{' . @2 top_statement_list '}'
+ 13 top_statement: T_NAMESPACE namespace_name '{' . $@2 top_statement_list '}'
- $default reduce using rule 12 (@2)
+ $default reduce using rule 12 ($@2)
- @2 go to state 474
+ $@2 go to state 474
state 344
- 307 function_call: T_NS_SEPARATOR namespace_name '(' . @53 function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR namespace_name '(' . $@53 function_call_parameter_list ')'
- $default reduce using rule 306 (@53)
+ $default reduce using rule 306 ($@53)
- @53 go to state 475
+ $@53 go to state 475
state 345
@@ -10949,7 +10949,7 @@ state 346
state 347
- 27 inner_statement_list: inner_statement_list @4 . inner_statement
+ 27 inner_statement_list: inner_statement_list $@4 . inner_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11059,10 +11059,10 @@ state 347
state 348
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -11084,8 +11084,8 @@ state 348
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
409 compound_variable: '$' '{' expr . '}'
T_LOGICAL_OR shift, and go to state 222
@@ -11140,7 +11140,7 @@ state 351
state 352
- 303 function_call: namespace_name '(' @51 . function_call_parameter_list ')'
+ 303 function_call: namespace_name '(' $@51 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11241,16 +11241,16 @@ state 354
state 355
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from . @30 implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type 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 492
+ $@30 go to state 492
state 356
- 103 unticked_class_declaration_statement: interface_entry T_STRING @31 . interface_extends_list '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry T_STRING $@31 . interface_extends_list '{' class_statement_list '}'
T_EXTENDS shift, and go to state 493
@@ -11261,11 +11261,11 @@ state 356
state 357
- 99 unticked_function_declaration_statement: function is_reference T_STRING . @29 '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING . $@29 '(' parameter_list ')' '{' inner_statement_list '}'
- $default reduce using rule 98 (@29)
+ $default reduce using rule 98 ($@29)
- @29 go to state 495
+ $@29 go to state 495
state 358
@@ -11279,7 +11279,7 @@ state 358
state 359
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @54 function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' $@54 function_call_parameter_list ')'
462 class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING .
'(' shift, and go to state 497
@@ -11289,7 +11289,7 @@ state 359
state 360
- 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' @55 function_call_parameter_list ')'
+ 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' $@55 function_call_parameter_list ')'
397 static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects .
'(' shift, and go to state 498
@@ -11323,7 +11323,7 @@ state 362
state 363
- 244 expr_without_variable: expr T_LOGICAL_OR @44 . expr
+ 244 expr_without_variable: expr T_LOGICAL_OR $@44 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11400,10 +11400,10 @@ state 363
state 364
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
247 | expr T_LOGICAL_XOR expr .
248 | expr . '|' expr
@@ -11426,8 +11426,8 @@ state 364
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_AND shift, and go to state 224
'?' shift, and go to state 225
@@ -11459,7 +11459,7 @@ state 364
state 365
- 246 expr_without_variable: expr T_LOGICAL_AND @45 . expr
+ 246 expr_without_variable: expr T_LOGICAL_AND $@45 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11536,16 +11536,16 @@ state 365
state 366
- 277 expr_without_variable: expr '?' ':' . @48 expr
+ 277 expr_without_variable: expr '?' ':' . $@48 expr
- $default reduce using rule 276 (@48)
+ $default reduce using rule 276 ($@48)
- @48 go to state 502
+ $@48 go to state 502
state 367
- 275 expr_without_variable: expr '?' @46 . expr ':' @47 expr
+ 275 expr_without_variable: expr '?' $@46 . expr ':' $@47 expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11622,7 +11622,7 @@ state 367
state 368
- 240 expr_without_variable: expr T_BOOLEAN_OR @42 . expr
+ 240 expr_without_variable: expr T_BOOLEAN_OR $@42 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11699,7 +11699,7 @@ state 368
state 369
- 242 expr_without_variable: expr T_BOOLEAN_AND @43 . expr
+ 242 expr_without_variable: expr T_BOOLEAN_AND $@43 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -11776,10 +11776,10 @@ state 369
state 370
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
248 | expr '|' expr .
@@ -11802,8 +11802,8 @@ state 370
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'^' shift, and go to state 229
'&' shift, and go to state 230
@@ -11830,10 +11830,10 @@ state 370
state 371
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -11856,8 +11856,8 @@ state 371
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'&' shift, and go to state 230
T_IS_NOT_IDENTICAL shift, and go to state 231
@@ -11883,10 +11883,10 @@ state 371
state 372
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -11909,8 +11909,8 @@ state 372
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_IS_NOT_IDENTICAL shift, and go to state 231
T_IS_IDENTICAL shift, and go to state 232
@@ -11935,10 +11935,10 @@ state 372
state 373
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -11961,8 +11961,8 @@ state 373
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'<' shift, and go to state 235
'>' shift, and go to state 236
@@ -11988,10 +11988,10 @@ state 373
state 374
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12014,8 +12014,8 @@ state 374
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'<' shift, and go to state 235
'>' shift, and go to state 236
@@ -12041,10 +12041,10 @@ state 374
state 375
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12067,8 +12067,8 @@ state 375
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'<' shift, and go to state 235
'>' shift, and go to state 236
@@ -12094,10 +12094,10 @@ state 375
state 376
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12120,8 +12120,8 @@ state 376
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'<' shift, and go to state 235
'>' shift, and go to state 236
@@ -12147,10 +12147,10 @@ state 376
state 377
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12173,8 +12173,8 @@ state 377
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_SR shift, and go to state 239
T_SL shift, and go to state 240
@@ -12196,10 +12196,10 @@ state 377
state 378
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12222,8 +12222,8 @@ state 378
269 | expr '>' expr .
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_SR shift, and go to state 239
T_SL shift, and go to state 240
@@ -12245,10 +12245,10 @@ state 378
state 379
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12271,8 +12271,8 @@ state 379
270 | expr . T_IS_GREATER_OR_EQUAL expr
270 | expr T_IS_GREATER_OR_EQUAL expr .
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_SR shift, and go to state 239
T_SL shift, and go to state 240
@@ -12294,10 +12294,10 @@ state 379
state 380
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12320,8 +12320,8 @@ state 380
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_SR shift, and go to state 239
T_SL shift, and go to state 240
@@ -12343,10 +12343,10 @@ state 380
state 381
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12369,8 +12369,8 @@ state 381
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'+' shift, and go to state 241
'-' shift, and go to state 242
@@ -12385,10 +12385,10 @@ state 381
state 382
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12411,8 +12411,8 @@ state 382
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'+' shift, and go to state 241
'-' shift, and go to state 242
@@ -12427,10 +12427,10 @@ state 382
state 383
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12453,8 +12453,8 @@ state 383
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'*' shift, and go to state 244
'/' shift, and go to state 245
@@ -12466,10 +12466,10 @@ state 383
state 384
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12492,8 +12492,8 @@ state 384
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'*' shift, and go to state 244
'/' shift, and go to state 245
@@ -12505,10 +12505,10 @@ state 384
state 385
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12531,8 +12531,8 @@ state 385
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'*' shift, and go to state 244
'/' shift, and go to state 245
@@ -12544,10 +12544,10 @@ state 385
state 386
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12570,8 +12570,8 @@ state 386
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_INSTANCEOF shift, and go to state 247
@@ -12580,10 +12580,10 @@ state 386
state 387
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12606,8 +12606,8 @@ state 387
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_INSTANCEOF shift, and go to state 247
@@ -12616,10 +12616,10 @@ state 387
state 388
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12642,8 +12642,8 @@ state 388
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_INSTANCEOF shift, and go to state 247
@@ -12660,7 +12660,7 @@ state 389
state 390
218 expr_without_variable: variable '=' '&' . variable
- 220 | variable '=' '&' . T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable '=' '&' . T_NEW class_name_reference $@40 ctor_arguments
T_NEW shift, and go to state 506
T_STRING shift, and go to state 111
@@ -12687,10 +12687,10 @@ state 390
state 391
217 expr_without_variable: variable '=' expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12712,8 +12712,8 @@ state 391
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -12745,10 +12745,10 @@ state 391
state 392
234 expr_without_variable: variable T_SR_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12770,8 +12770,8 @@ state 392
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -12803,10 +12803,10 @@ state 392
state 393
233 expr_without_variable: variable T_SL_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12828,8 +12828,8 @@ state 393
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -12861,10 +12861,10 @@ state 393
state 394
232 expr_without_variable: variable T_XOR_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12886,8 +12886,8 @@ state 394
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -12919,10 +12919,10 @@ state 394
state 395
231 expr_without_variable: variable T_OR_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -12944,8 +12944,8 @@ state 395
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -12977,10 +12977,10 @@ state 395
state 396
230 expr_without_variable: variable T_AND_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13002,8 +13002,8 @@ state 396
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13035,10 +13035,10 @@ state 396
state 397
229 expr_without_variable: variable T_MOD_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13060,8 +13060,8 @@ state 397
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13093,10 +13093,10 @@ state 397
state 398
228 expr_without_variable: variable T_CONCAT_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13118,8 +13118,8 @@ state 398
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13151,10 +13151,10 @@ state 398
state 399
227 expr_without_variable: variable T_DIV_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13176,8 +13176,8 @@ state 399
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13209,10 +13209,10 @@ state 399
state 400
226 expr_without_variable: variable T_MUL_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13234,8 +13234,8 @@ state 400
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13267,10 +13267,10 @@ state 400
state 401
225 expr_without_variable: variable T_MINUS_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13292,8 +13292,8 @@ state 401
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13325,10 +13325,10 @@ state 401
state 402
224 expr_without_variable: variable T_PLUS_EQUAL expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13350,8 +13350,8 @@ state 402
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -13382,7 +13382,7 @@ state 402
state 403
- 317 function_call: variable_without_objects '(' @58 . function_call_parameter_list ')'
+ 317 function_call: variable_without_objects '(' $@58 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -13464,7 +13464,7 @@ state 403
state 404
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @56 function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' $@56 function_call_parameter_list ')'
463 class_constant: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING .
'(' shift, and go to state 509
@@ -13474,7 +13474,7 @@ state 404
state 405
- 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' @57 function_call_parameter_list ')'
+ 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' $@57 function_call_parameter_list ')'
398 static_member: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects .
'(' shift, and go to state 510
@@ -13484,7 +13484,7 @@ state 405
state 406
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @61 . object_property @62 method_or_not variable_properties
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR $@61 . object_property $@62 method_or_not variable_properties
T_STRING shift, and go to state 511
T_VARIABLE shift, and go to state 33
@@ -13502,10 +13502,10 @@ state 406
state 407
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13527,8 +13527,8 @@ state 407
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
411 dim_offset: expr .
T_LOGICAL_OR shift, and go to state 222
@@ -13570,10 +13570,10 @@ state 408
state 409
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13595,8 +13595,8 @@ state 409
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
406 reference_variable: reference_variable '{' expr . '}'
T_LOGICAL_OR shift, and go to state 222
@@ -13638,7 +13638,7 @@ state 410
state 411
6 namespace_name: namespace_name . T_NS_SEPARATOR T_STRING
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name . '(' @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name . '(' $@52 function_call_parameter_list ')'
320 class_name: T_NAMESPACE T_NS_SEPARATOR namespace_name .
T_NS_SEPARATOR shift, and go to state 213
@@ -13649,14 +13649,14 @@ state 411
state 412
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @54 function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' $@54 function_call_parameter_list ')'
'(' shift, and go to state 497
state 413
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @56 function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' $@56 function_call_parameter_list ')'
'(' shift, and go to state 509
@@ -13762,7 +13762,7 @@ state 416
state 417
- 222 expr_without_variable: T_NEW class_name_reference @41 ctor_arguments .
+ 222 expr_without_variable: T_NEW class_name_reference $@41 ctor_arguments .
$default reduce using rule 222 (expr_without_variable)
@@ -13776,7 +13776,7 @@ state 418
state 419
- 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @59 . object_property @60 dynamic_class_name_variable_properties
+ 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR $@59 . object_property $@60 dynamic_class_name_variable_properties
T_STRING shift, and go to state 511
T_VARIABLE shift, and go to state 33
@@ -13801,23 +13801,23 @@ state 420
state 421
- 38 unticked_statement: T_IF '(' expr ')' . @5 statement @6 elseif_list else_single
- 41 | T_IF '(' expr ')' . ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
+ 38 unticked_statement: T_IF '(' expr ')' . $@5 statement $@6 elseif_list else_single
+ 41 | T_IF '(' expr ')' . ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
':' shift, and go to state 521
- $default reduce using rule 36 (@5)
+ $default reduce using rule 36 ($@5)
- @5 go to state 522
+ $@5 go to state 522
state 422
208 echo_expr_list: echo_expr_list ',' expr .
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13839,8 +13839,8 @@ state 422
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -13874,18 +13874,18 @@ state 422
state 423
- 47 unticked_statement: T_DO @11 statement T_WHILE . '(' @12 expr ')' ';'
+ 47 unticked_statement: T_DO $@11 statement T_WHILE . '(' $@12 expr ')' ';'
'(' shift, and go to state 523
state 424
- 44 unticked_statement: T_WHILE '(' @9 expr . ')' @10 while_statement
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 44 unticked_statement: T_WHILE '(' $@9 expr . ')' $@10 while_statement
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -13907,8 +13907,8 @@ state 424
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -13941,38 +13941,38 @@ state 424
state 425
- 51 unticked_statement: T_FOR '(' for_expr ';' . @13 for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: 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 525
+ $@13 go to state 525
state 426
- 213 non_empty_for_expr: non_empty_for_expr ',' . @38 expr
+ 213 non_empty_for_expr: non_empty_for_expr ',' . $@38 expr
- $default reduce using rule 212 (@38)
+ $default reduce using rule 212 ($@38)
- @38 go to state 526
+ $@38 go to state 526
state 427
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS . @19 variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable 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 527
+ $@19 go to state 527
state 428
- 69 unticked_statement: T_FOREACH '(' variable T_AS . @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable 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 528
+ $@17 go to state 528
state 429
@@ -13984,7 +13984,7 @@ state 429
state 430
- 74 unticked_statement: T_DECLARE @21 '(' declare_list . ')' declare_statement
+ 74 unticked_statement: T_DECLARE $@21 '(' declare_list . ')' declare_statement
127 declare_list: declare_list . ',' T_STRING '=' static_scalar
',' shift, and go to state 530
@@ -13993,11 +13993,11 @@ state 430
state 431
- 53 unticked_statement: T_SWITCH '(' expr ')' . @16 switch_case_list
+ 53 unticked_statement: T_SWITCH '(' expr ')' . $@16 switch_case_list
- $default reduce using rule 52 (@16)
+ $default reduce using rule 52 ($@16)
- @16 go to state 532
+ $@16 go to state 532
state 432
@@ -14136,14 +14136,14 @@ state 442
state 443
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list . '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list . '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
'}' shift, and go to state 540
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 444
@@ -14170,10 +14170,10 @@ state 446
state 447
176 global_var: '$' '{' expr . '}'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -14195,8 +14195,8 @@ state 447
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -14286,11 +14286,11 @@ state 452
state 453
- 461 isset_variables: isset_variables ',' . @68 variable
+ 461 isset_variables: isset_variables ',' . $@68 variable
- $default reduce using rule 460 (@68)
+ $default reduce using rule 460 ($@68)
- @68 go to state 546
+ $@68 go to state 546
state 454
@@ -14316,7 +14316,7 @@ state 456
state 457
- 426 assignment_list_element: T_LIST . '(' @66 assignment_list ')'
+ 426 assignment_list_element: T_LIST . '(' $@66 assignment_list ')'
'(' shift, and go to state 547
@@ -14330,7 +14330,7 @@ state 458
state 459
- 216 expr_without_variable: T_LIST '(' @39 assignment_list . ')' '=' expr
+ 216 expr_without_variable: T_LIST '(' $@39 assignment_list . ')' '=' expr
422 assignment_list: assignment_list . ',' assignment_list_element
',' shift, and go to state 548
@@ -14537,7 +14537,7 @@ state 466
state 467
- 444 encaps_var: T_VARIABLE '[' @67 . encaps_var_offset ']'
+ 444 encaps_var: T_VARIABLE '[' $@67 . encaps_var_offset ']'
T_STRING shift, and go to state 554
T_VARIABLE shift, and go to state 555
@@ -14646,28 +14646,28 @@ state 471
state 472
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' . @52 function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' . $@52 function_call_parameter_list ')'
- $default reduce using rule 304 (@52)
+ $default reduce using rule 304 ($@52)
- @52 go to state 559
+ $@52 go to state 559
state 473
- 3 top_statement_list: top_statement_list . @1 top_statement
- 15 top_statement: T_NAMESPACE '{' @3 top_statement_list . '}'
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 15 top_statement: T_NAMESPACE '{' $@3 top_statement_list . '}'
'}' shift, and go to state 560
- $default reduce using rule 2 (@1)
+ $default reduce using rule 2 ($@1)
- @1 go to state 4
+ $@1 go to state 4
state 474
- 13 top_statement: T_NAMESPACE namespace_name '{' @2 . top_statement_list '}'
+ 13 top_statement: T_NAMESPACE namespace_name '{' $@2 . top_statement_list '}'
$default reduce using rule 4 (top_statement_list)
@@ -14676,7 +14676,7 @@ state 474
state 475
- 307 function_call: T_NS_SEPARATOR namespace_name '(' @53 . function_call_parameter_list ')'
+ 307 function_call: T_NS_SEPARATOR namespace_name '(' $@53 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -14765,7 +14765,7 @@ state 476
state 477
- 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)
@@ -14826,7 +14826,7 @@ state 482
state 483
- 303 function_call: namespace_name '(' @51 function_call_parameter_list . ')'
+ 303 function_call: namespace_name '(' $@51 function_call_parameter_list . ')'
')' shift, and go to state 565
@@ -14858,7 +14858,7 @@ state 486
167 non_empty_function_call_parameter_list: variable .
217 expr_without_variable: variable . '=' expr
218 | variable . '=' '&' variable
- 220 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable . '=' '&' T_NEW class_name_reference $@40 ctor_arguments
224 | variable . T_PLUS_EQUAL expr
225 | variable . T_MINUS_EQUAL expr
226 | variable . T_MUL_EQUAL expr
@@ -14958,7 +14958,7 @@ state 491
state 492
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @30 . implements_list '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from $@30 . implements_list '{' class_statement_list '}'
T_IMPLEMENTS shift, and go to state 570
@@ -14982,14 +14982,14 @@ state 493
state 494
- 103 unticked_class_declaration_statement: interface_entry T_STRING @31 interface_extends_list . '{' class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry T_STRING $@31 interface_extends_list . '{' class_statement_list '}'
'{' shift, and go to state 574
state 495
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 . '(' parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 . '(' parameter_list ')' '{' inner_statement_list '}'
'(' shift, and go to state 575
@@ -15015,20 +15015,20 @@ state 496
state 497
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . @54 function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . $@54 function_call_parameter_list ')'
- $default reduce using rule 308 (@54)
+ $default reduce using rule 308 ($@54)
- @54 go to state 581
+ $@54 go to state 581
state 498
- 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . @55 function_call_parameter_list ')'
+ 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . $@55 function_call_parameter_list ')'
- $default reduce using rule 310 (@55)
+ $default reduce using rule 310 ($@55)
- @55 go to state 582
+ $@55 go to state 582
state 499
@@ -15045,11 +15045,11 @@ state 499
state 500
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 244 | expr T_LOGICAL_OR @44 expr .
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 244 | expr T_LOGICAL_OR $@44 expr .
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -15071,8 +15071,8 @@ state 500
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_XOR shift, and go to state 223
T_LOGICAL_AND shift, and go to state 224
@@ -15105,11 +15105,11 @@ state 500
state 501
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
- 246 | expr T_LOGICAL_AND @45 expr .
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
+ 246 | expr T_LOGICAL_AND $@45 expr .
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -15131,8 +15131,8 @@ state 501
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -15163,7 +15163,7 @@ state 501
state 502
- 277 expr_without_variable: expr '?' ':' @48 . expr
+ 277 expr_without_variable: expr '?' ':' $@48 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15240,10 +15240,10 @@ state 502
state 503
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -15265,9 +15265,9 @@ state 503
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 275 | expr '?' @46 expr . ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 275 | expr '?' $@46 expr . ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -15300,11 +15300,11 @@ state 503
state 504
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 240 | expr T_BOOLEAN_OR @42 expr .
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 240 | expr T_BOOLEAN_OR $@42 expr .
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -15326,8 +15326,8 @@ state 504
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_BOOLEAN_AND shift, and go to state 227
'|' shift, and go to state 228
@@ -15356,11 +15356,11 @@ state 504
state 505
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 242 | expr T_BOOLEAN_AND @43 expr .
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 242 | expr T_BOOLEAN_AND $@43 expr .
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -15382,8 +15382,8 @@ state 505
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'|' shift, and go to state 228
'^' shift, and go to state 229
@@ -15411,7 +15411,7 @@ state 505
state 506
- 220 expr_without_variable: variable '=' '&' T_NEW . class_name_reference @40 ctor_arguments
+ 220 expr_without_variable: variable '=' '&' T_NEW . class_name_reference $@40 ctor_arguments
T_STRING shift, and go to state 111
T_VARIABLE shift, and go to state 33
@@ -15441,27 +15441,27 @@ state 507
state 508
- 317 function_call: variable_without_objects '(' @58 function_call_parameter_list . ')'
+ 317 function_call: variable_without_objects '(' $@58 function_call_parameter_list . ')'
')' shift, and go to state 586
state 509
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . @56 function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . $@56 function_call_parameter_list ')'
- $default reduce using rule 312 (@56)
+ $default reduce using rule 312 ($@56)
- @56 go to state 587
+ $@56 go to state 587
state 510
- 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . @57 function_call_parameter_list ')'
+ 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . $@57 function_call_parameter_list ')'
- $default reduce using rule 314 (@57)
+ $default reduce using rule 314 ($@57)
- @57 go to state 588
+ $@57 go to state 588
state 511
@@ -15550,20 +15550,20 @@ state 512
state 513
- 414 object_property: variable_without_objects . @65
+ 414 object_property: variable_without_objects . $@65
- $default reduce using rule 413 (@65)
+ $default reduce using rule 413 ($@65)
- @65 go to state 590
+ $@65 go to state 590
state 514
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @61 object_property . @62 method_or_not variable_properties
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR $@61 object_property . $@62 method_or_not variable_properties
- $default reduce using rule 385 (@62)
+ $default reduce using rule 385 ($@62)
- @62 go to state 591
+ $@62 go to state 591
state 515
@@ -15608,25 +15608,25 @@ state 519
state 520
- 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @59 object_property . @60 dynamic_class_name_variable_properties
+ 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR $@59 object_property . $@60 dynamic_class_name_variable_properties
- $default reduce using rule 328 (@60)
+ $default reduce using rule 328 ($@60)
- @60 go to state 595
+ $@60 go to state 595
state 521
- 41 unticked_statement: T_IF '(' expr ')' ':' . @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
+ 41 unticked_statement: T_IF '(' expr ')' ':' . $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
- $default reduce using rule 39 (@7)
+ $default reduce using rule 39 ($@7)
- @7 go to state 596
+ $@7 go to state 596
state 522
- 38 unticked_statement: T_IF '(' expr ')' @5 . statement @6 elseif_list else_single
+ 38 unticked_statement: T_IF '(' expr ')' $@5 . statement $@6 elseif_list else_single
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15724,25 +15724,25 @@ state 522
state 523
- 47 unticked_statement: T_DO @11 statement T_WHILE '(' . @12 expr ')' ';'
+ 47 unticked_statement: T_DO $@11 statement T_WHILE '(' . $@12 expr ')' ';'
- $default reduce using rule 46 (@12)
+ $default reduce using rule 46 ($@12)
- @12 go to state 598
+ $@12 go to state 598
state 524
- 44 unticked_statement: T_WHILE '(' @9 expr ')' . @10 while_statement
+ 44 unticked_statement: T_WHILE '(' $@9 expr ')' . $@10 while_statement
- $default reduce using rule 43 (@10)
+ $default reduce using rule 43 ($@10)
- @10 go to state 599
+ $@10 go to state 599
state 525
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 . for_expr ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 . for_expr ';' $@14 for_expr ')' $@15 for_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15823,7 +15823,7 @@ state 525
state 526
- 213 non_empty_for_expr: non_empty_for_expr ',' @38 . expr
+ 213 non_empty_for_expr: non_empty_for_expr ',' $@38 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -15900,7 +15900,7 @@ state 526
state 527
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @19 . variable foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS $@19 . variable foreach_optional_arg ')' $@20 foreach_statement
T_STRING shift, and go to state 111
T_VARIABLE shift, and go to state 33
@@ -15925,7 +15925,7 @@ state 527
state 528
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 . foreach_variable foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable T_AS $@17 . foreach_variable foreach_optional_arg ')' $@18 foreach_statement
'&' shift, and go to state 603
T_STRING shift, and go to state 111
@@ -15989,7 +15989,7 @@ state 530
state 531
- 74 unticked_statement: T_DECLARE @21 '(' declare_list ')' . declare_statement
+ 74 unticked_statement: T_DECLARE $@21 '(' declare_list ')' . declare_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -16089,7 +16089,7 @@ state 531
state 532
- 53 unticked_statement: T_SWITCH '(' expr ')' @16 . switch_case_list
+ 53 unticked_statement: T_SWITCH '(' expr ')' $@16 . switch_case_list
':' shift, and go to state 611
'{' shift, and go to state 612
@@ -16183,7 +16183,7 @@ state 539
state 540
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' . T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' . T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
T_CATCH shift, and go to state 619
@@ -16248,7 +16248,7 @@ state 545
state 546
- 461 isset_variables: isset_variables ',' @68 . variable
+ 461 isset_variables: isset_variables ',' $@68 . variable
T_STRING shift, and go to state 111
T_VARIABLE shift, and go to state 33
@@ -16273,11 +16273,11 @@ state 546
state 547
- 426 assignment_list_element: T_LIST '(' . @66 assignment_list ')'
+ 426 assignment_list_element: T_LIST '(' . $@66 assignment_list ')'
- $default reduce using rule 425 (@66)
+ $default reduce using rule 425 ($@66)
- @66 go to state 622
+ $@66 go to state 622
state 548
@@ -16311,7 +16311,7 @@ state 548
state 549
- 216 expr_without_variable: T_LIST '(' @39 assignment_list ')' . '=' expr
+ 216 expr_without_variable: T_LIST '(' $@39 assignment_list ')' . '=' expr
'=' shift, and go to state 624
@@ -16344,10 +16344,10 @@ state 550
state 551
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -16369,8 +16369,8 @@ state 551
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
432 non_empty_array_pair_list: expr T_DOUBLE_ARROW expr .
T_LOGICAL_OR shift, and go to state 222
@@ -16431,10 +16431,10 @@ state 552
state 553
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -16456,8 +16456,8 @@ state 553
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
430 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW expr
431 | non_empty_array_pair_list ',' expr .
434 | non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW '&' w_variable
@@ -16516,17 +16516,17 @@ state 556
state 557
- 444 encaps_var: T_VARIABLE '[' @67 encaps_var_offset . ']'
+ 444 encaps_var: T_VARIABLE '[' $@67 encaps_var_offset . ']'
']' shift, and go to state 628
state 558
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -16548,8 +16548,8 @@ state 558
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
447 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr . ']' '}'
T_LOGICAL_OR shift, and go to state 222
@@ -16583,7 +16583,7 @@ state 558
state 559
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' @52 . function_call_parameter_list ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' $@52 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -16665,26 +16665,26 @@ state 559
state 560
- 15 top_statement: T_NAMESPACE '{' @3 top_statement_list '}' .
+ 15 top_statement: T_NAMESPACE '{' $@3 top_statement_list '}' .
$default reduce using rule 15 (top_statement)
state 561
- 3 top_statement_list: top_statement_list . @1 top_statement
- 13 top_statement: T_NAMESPACE namespace_name '{' @2 top_statement_list . '}'
+ 3 top_statement_list: top_statement_list . $@1 top_statement
+ 13 top_statement: T_NAMESPACE namespace_name '{' $@2 top_statement_list . '}'
'}' shift, and go to state 631
- $default reduce using rule 2 (@1)
+ $default reduce using rule 2 ($@1)
- @1 go to state 4
+ $@1 go to state 4
state 562
- 307 function_call: T_NS_SEPARATOR namespace_name '(' @53 function_call_parameter_list . ')'
+ 307 function_call: T_NS_SEPARATOR namespace_name '(' $@53 function_call_parameter_list . ')'
')' shift, and go to state 632
@@ -16705,7 +16705,7 @@ state 564
state 565
- 303 function_call: namespace_name '(' @51 function_call_parameter_list ')' .
+ 303 function_call: namespace_name '(' $@51 function_call_parameter_list ')' .
$default reduce using rule 303 (function_call)
@@ -16831,7 +16831,7 @@ state 570
state 571
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @30 implements_list . '{' class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from $@30 implements_list . '{' class_statement_list '}'
'{' shift, and go to state 639
@@ -16855,7 +16855,7 @@ state 573
state 574
- 103 unticked_class_declaration_statement: interface_entry T_STRING @31 interface_extends_list '{' . class_statement_list '}'
+ 103 unticked_class_declaration_statement: interface_entry T_STRING $@31 interface_extends_list '{' . class_statement_list '}'
$default reduce using rule 182 (class_statement_list)
@@ -16864,7 +16864,7 @@ state 574
state 575
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 '(' . parameter_list ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 '(' . parameter_list ')' '{' inner_statement_list '}'
T_STRING shift, and go to state 111
T_ARRAY shift, and go to state 576
@@ -16928,7 +16928,7 @@ state 580
state 581
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @54 . function_call_parameter_list ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@54 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17010,7 +17010,7 @@ state 581
state 582
- 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @55 . function_call_parameter_list ')'
+ 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@55 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17092,10 +17092,10 @@ state 582
state 583
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -17117,9 +17117,9 @@ state 583
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
- 277 | expr '?' ':' @48 expr .
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
+ 277 | expr '?' ':' $@48 expr .
T_BOOLEAN_OR shift, and go to state 226
T_BOOLEAN_AND shift, and go to state 227
@@ -17149,32 +17149,32 @@ state 583
state 584
- 275 expr_without_variable: expr '?' @46 expr ':' . @47 expr
+ 275 expr_without_variable: expr '?' $@46 expr ':' . $@47 expr
- $default reduce using rule 274 (@47)
+ $default reduce using rule 274 ($@47)
- @47 go to state 649
+ $@47 go to state 649
state 585
- 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference . @40 ctor_arguments
+ 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference . $@40 ctor_arguments
- $default reduce using rule 219 (@40)
+ $default reduce using rule 219 ($@40)
- @40 go to state 650
+ $@40 go to state 650
state 586
- 317 function_call: variable_without_objects '(' @58 function_call_parameter_list ')' .
+ 317 function_call: variable_without_objects '(' $@58 function_call_parameter_list ')' .
$default reduce using rule 317 (function_call)
state 587
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @56 . function_call_parameter_list ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@56 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17256,7 +17256,7 @@ state 587
state 588
- 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @57 . function_call_parameter_list ')'
+ 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@57 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17338,10 +17338,10 @@ state 588
state 589
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -17363,8 +17363,8 @@ state 589
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
419 variable_name: '{' expr . '}'
T_LOGICAL_OR shift, and go to state 222
@@ -17398,14 +17398,14 @@ state 589
state 590
- 414 object_property: variable_without_objects @65 .
+ 414 object_property: variable_without_objects $@65 .
$default reduce using rule 414 (object_property)
state 591
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @61 object_property @62 . method_or_not variable_properties
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR $@61 object_property $@62 . method_or_not variable_properties
'(' shift, and go to state 654
@@ -17580,7 +17580,7 @@ state 594
state 595
- 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @59 object_property @60 . dynamic_class_name_variable_properties
+ 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR $@59 object_property $@60 . dynamic_class_name_variable_properties
$default reduce using rule 332 (dynamic_class_name_variable_properties)
@@ -17589,7 +17589,7 @@ state 595
state 596
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 . inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';'
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 . inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';'
$default reduce using rule 28 (inner_statement_list)
@@ -17598,16 +17598,16 @@ state 596
state 597
- 38 unticked_statement: T_IF '(' expr ')' @5 statement . @6 elseif_list else_single
+ 38 unticked_statement: 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 660
+ $@6 go to state 660
state 598
- 47 unticked_statement: T_DO @11 statement T_WHILE '(' @12 . expr ')' ';'
+ 47 unticked_statement: T_DO $@11 statement T_WHILE '(' $@12 . expr ')' ';'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17684,7 +17684,7 @@ state 598
state 599
- 44 unticked_statement: T_WHILE '(' @9 expr ')' @10 . while_statement
+ 44 unticked_statement: T_WHILE '(' $@9 expr ')' $@10 . while_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -17784,18 +17784,18 @@ state 599
state 600
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr . ';' @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 for_expr . ';' $@14 for_expr ')' $@15 for_statement
';' shift, and go to state 665
state 601
- 213 non_empty_for_expr: non_empty_for_expr ',' @38 expr .
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 213 non_empty_for_expr: non_empty_for_expr ',' $@38 expr .
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -17817,8 +17817,8 @@ state 601
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -17852,7 +17852,7 @@ state 601
state 602
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @19 variable . foreach_optional_arg ')' @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS $@19 variable . foreach_optional_arg ')' $@20 foreach_statement
T_DOUBLE_ARROW shift, and go to state 666
@@ -17888,7 +17888,7 @@ state 603
state 604
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 foreach_variable . foreach_optional_arg ')' @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable T_AS $@17 foreach_variable . foreach_optional_arg ')' $@18 foreach_statement
T_DOUBLE_ARROW shift, and go to state 666
@@ -17936,7 +17936,7 @@ state 609
state 610
- 74 unticked_statement: T_DECLARE @21 '(' declare_list ')' declare_statement .
+ 74 unticked_statement: T_DECLARE $@21 '(' declare_list ')' declare_statement .
$default reduce using rule 74 (unticked_statement)
@@ -17967,7 +17967,7 @@ state 612
state 613
- 53 unticked_statement: T_SWITCH '(' expr ')' @16 switch_case_list .
+ 53 unticked_statement: T_SWITCH '(' expr ')' $@16 switch_case_list .
$default reduce using rule 53 (unticked_statement)
@@ -18023,7 +18023,7 @@ state 618
state 619
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH . '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH . '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
'(' shift, and go to state 680
@@ -18037,14 +18037,14 @@ state 620
state 621
- 461 isset_variables: isset_variables ',' @68 variable .
+ 461 isset_variables: isset_variables ',' $@68 variable .
$default reduce using rule 461 (isset_variables)
state 622
- 426 assignment_list_element: T_LIST '(' @66 . assignment_list ')'
+ 426 assignment_list_element: T_LIST '(' $@66 . assignment_list ')'
T_STRING shift, and go to state 111
T_VARIABLE shift, and go to state 33
@@ -18081,7 +18081,7 @@ state 623
state 624
- 216 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' . expr
+ 216 expr_without_variable: T_LIST '(' $@39 assignment_list ')' '=' . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -18251,7 +18251,7 @@ state 627
state 628
- 444 encaps_var: T_VARIABLE '[' @67 encaps_var_offset ']' .
+ 444 encaps_var: T_VARIABLE '[' $@67 encaps_var_offset ']' .
$default reduce using rule 444 (encaps_var)
@@ -18265,21 +18265,21 @@ state 629
state 630
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' @52 function_call_parameter_list . ')'
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' $@52 function_call_parameter_list . ')'
')' shift, and go to state 686
state 631
- 13 top_statement: T_NAMESPACE namespace_name '{' @2 top_statement_list '}' .
+ 13 top_statement: T_NAMESPACE namespace_name '{' $@2 top_statement_list '}' .
$default reduce using rule 13 (top_statement)
state 632
- 307 function_call: T_NS_SEPARATOR namespace_name '(' @53 function_call_parameter_list ')' .
+ 307 function_call: T_NS_SEPARATOR namespace_name '(' $@53 function_call_parameter_list ')' .
$default reduce using rule 307 (function_call)
@@ -18332,7 +18332,7 @@ state 636
170 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable .
217 expr_without_variable: variable . '=' expr
218 | variable . '=' '&' variable
- 220 | variable . '=' '&' T_NEW class_name_reference @40 ctor_arguments
+ 220 | variable . '=' '&' T_NEW class_name_reference $@40 ctor_arguments
224 | variable . T_PLUS_EQUAL expr
225 | variable . T_MINUS_EQUAL expr
226 | variable . T_MUL_EQUAL expr
@@ -18389,7 +18389,7 @@ state 638
state 639
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @30 implements_list '{' . class_statement_list '}'
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from $@30 implements_list '{' . class_statement_list '}'
$default reduce using rule 182 (class_statement_list)
@@ -18410,7 +18410,7 @@ state 640
state 641
- 103 unticked_class_declaration_statement: interface_entry T_STRING @31 interface_extends_list '{' class_statement_list . '}'
+ 103 unticked_class_declaration_statement: interface_entry T_STRING $@31 interface_extends_list '{' class_statement_list . '}'
181 class_statement_list: class_statement_list . class_statement
T_CONST shift, and go to state 691
@@ -18435,7 +18435,7 @@ state 641
state 642
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 '(' parameter_list . ')' '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 '(' parameter_list . ')' '{' inner_statement_list '}'
')' shift, and go to state 706
@@ -18490,21 +18490,21 @@ state 646
state 647
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @54 function_call_parameter_list . ')'
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@54 function_call_parameter_list . ')'
')' shift, and go to state 712
state 648
- 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @55 function_call_parameter_list . ')'
+ 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@55 function_call_parameter_list . ')'
')' shift, and go to state 713
state 649
- 275 expr_without_variable: expr '?' @46 expr ':' @47 . expr
+ 275 expr_without_variable: expr '?' $@46 expr ':' $@47 . expr
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -18581,7 +18581,7 @@ state 649
state 650
- 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 . ctor_arguments
+ 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference $@40 . ctor_arguments
'(' shift, and go to state 416
@@ -18592,14 +18592,14 @@ state 650
state 651
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @56 function_call_parameter_list . ')'
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@56 function_call_parameter_list . ')'
')' shift, and go to state 716
state 652
- 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @57 function_call_parameter_list . ')'
+ 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@57 function_call_parameter_list . ')'
')' shift, and go to state 717
@@ -18613,16 +18613,16 @@ state 653
state 654
- 393 method_or_not: '(' . @64 function_call_parameter_list ')'
+ 393 method_or_not: '(' . $@64 function_call_parameter_list ')'
- $default reduce using rule 392 (@64)
+ $default reduce using rule 392 ($@64)
- @64 go to state 718
+ $@64 go to state 718
state 655
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @61 object_property @62 method_or_not . variable_properties
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR $@61 object_property $@62 method_or_not . variable_properties
$default reduce using rule 389 (variable_properties)
@@ -18638,10 +18638,10 @@ state 656
state 657
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -18663,8 +18663,8 @@ state 657
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
416 object_dim_list: object_dim_list '{' expr . '}'
T_LOGICAL_OR shift, and go to state 222
@@ -18698,7 +18698,7 @@ state 657
state 658
- 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @59 object_property @60 dynamic_class_name_variable_properties .
+ 329 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR $@59 object_property $@60 dynamic_class_name_variable_properties .
331 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property
T_OBJECT_OPERATOR shift, and go to state 722
@@ -18710,21 +18710,21 @@ state 658
state 659
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 inner_statement_list . @8 new_elseif_list new_else_single T_ENDIF ';'
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list . $@8 new_elseif_list new_else_single T_ENDIF ';'
- T_ELSEIF reduce using rule 40 (@8)
- T_ELSE reduce using rule 40 (@8)
- T_ENDIF reduce using rule 40 (@8)
- $default reduce using rule 26 (@4)
+ T_ELSEIF reduce using rule 40 ($@8)
+ T_ELSE reduce using rule 40 ($@8)
+ T_ENDIF reduce using rule 40 ($@8)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
- @8 go to state 724
+ $@4 go to state 347
+ $@8 go to state 724
state 660
- 38 unticked_statement: T_IF '(' expr ')' @5 statement @6 . elseif_list else_single
+ 38 unticked_statement: T_IF '(' expr ')' $@5 statement $@6 . elseif_list else_single
$default reduce using rule 141 (elseif_list)
@@ -18733,11 +18733,11 @@ state 660
state 661
- 47 unticked_statement: T_DO @11 statement T_WHILE '(' @12 expr . ')' ';'
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 47 unticked_statement: T_DO $@11 statement T_WHILE '(' $@12 expr . ')' ';'
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -18759,8 +18759,8 @@ state 661
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -18809,18 +18809,18 @@ state 663
state 664
- 44 unticked_statement: T_WHILE '(' @9 expr ')' @10 while_statement .
+ 44 unticked_statement: T_WHILE '(' $@9 expr ')' $@10 while_statement .
$default reduce using rule 44 (unticked_statement)
state 665
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr ';' . @14 for_expr ')' @15 for_statement
+ 51 unticked_statement: 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 728
+ $@14 go to state 728
state 666
@@ -18852,7 +18852,7 @@ state 666
state 667
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @19 variable foreach_optional_arg . ')' @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS $@19 variable foreach_optional_arg . ')' $@20 foreach_statement
')' shift, and go to state 730
@@ -18866,7 +18866,7 @@ state 668
state 669
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 foreach_variable foreach_optional_arg . ')' @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable T_AS $@17 foreach_variable foreach_optional_arg . ')' $@18 foreach_statement
')' shift, and go to state 731
@@ -18903,14 +18903,14 @@ state 670
state 671
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
125 declare_statement: ':' inner_statement_list . T_ENDDECLARE ';'
T_ENDDECLARE shift, and go to state 733
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 672
@@ -18925,8 +18925,8 @@ state 672
state 673
130 switch_case_list: ':' case_list . T_ENDSWITCH ';'
- 134 case_list: case_list . T_CASE expr case_separator @32 inner_statement_list
- 136 | case_list . T_DEFAULT case_separator @33 inner_statement_list
+ 134 case_list: case_list . T_CASE expr case_separator $@32 inner_statement_list
+ 136 | case_list . T_DEFAULT case_separator $@33 inner_statement_list
T_ENDSWITCH shift, and go to state 735
T_CASE shift, and go to state 736
@@ -18945,8 +18945,8 @@ state 674
state 675
128 switch_case_list: '{' case_list . '}'
- 134 case_list: case_list . T_CASE expr case_separator @32 inner_statement_list
- 136 | case_list . T_DEFAULT case_separator @33 inner_statement_list
+ 134 case_list: case_list . T_CASE expr case_separator $@32 inner_statement_list
+ 136 | case_list . T_DEFAULT case_separator $@33 inner_statement_list
T_CASE shift, and go to state 736
T_DEFAULT shift, and go to state 737
@@ -19033,17 +19033,17 @@ state 679
state 680
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' . @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' . $@23 fully_qualified_class_name $@24 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 742
+ $@23 go to state 742
state 681
422 assignment_list: assignment_list . ',' assignment_list_element
- 426 assignment_list_element: T_LIST '(' @66 assignment_list . ')'
+ 426 assignment_list_element: T_LIST '(' $@66 assignment_list . ')'
',' shift, and go to state 548
')' shift, and go to state 743
@@ -19051,11 +19051,11 @@ state 681
state 682
- 216 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' expr .
- 240 | expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 216 expr_without_variable: T_LIST '(' $@39 assignment_list ')' '=' expr .
+ 240 | expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -19077,8 +19077,8 @@ state 682
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
'?' shift, and go to state 225
T_BOOLEAN_OR shift, and go to state 226
@@ -19135,10 +19135,10 @@ state 683
state 684
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -19160,8 +19160,8 @@ state 684
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
430 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr .
T_LOGICAL_OR shift, and go to state 222
@@ -19203,7 +19203,7 @@ state 685
state 686
- 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' @52 function_call_parameter_list ')' .
+ 305 function_call: T_NAMESPACE T_NS_SEPARATOR namespace_name '(' $@52 function_call_parameter_list ')' .
$default reduce using rule 305 (function_call)
@@ -19224,7 +19224,7 @@ state 688
state 689
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @30 implements_list '{' class_statement_list . '}'
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from $@30 implements_list '{' class_statement_list . '}'
181 class_statement_list: class_statement_list . class_statement
T_CONST shift, and go to state 691
@@ -19312,7 +19312,7 @@ state 698
state 699
- 103 unticked_class_declaration_statement: interface_entry T_STRING @31 interface_extends_list '{' class_statement_list '}' .
+ 103 unticked_class_declaration_statement: interface_entry T_STRING $@31 interface_extends_list '{' class_statement_list '}' .
$default reduce using rule 103 (unticked_class_declaration_statement)
@@ -19326,16 +19326,16 @@ state 700
state 701
- 184 class_statement: variable_modifiers . @36 class_variable_declaration ';'
+ 184 class_statement: variable_modifiers . $@36 class_variable_declaration ';'
- $default reduce using rule 183 (@36)
+ $default reduce using rule 183 ($@36)
- @36 go to state 747
+ $@36 go to state 747
state 702
- 187 class_statement: method_modifiers . function is_reference T_STRING @37 '(' parameter_list ')' method_body
+ 187 class_statement: method_modifiers . function is_reference T_STRING $@37 '(' parameter_list ')' method_body
T_FUNCTION shift, and go to state 46
@@ -19379,7 +19379,7 @@ state 705
state 706
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 '(' parameter_list ')' . '{' inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 '(' parameter_list ')' . '{' inner_statement_list '}'
'{' shift, and go to state 752
@@ -19451,24 +19451,24 @@ state 711
state 712
- 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @54 function_call_parameter_list ')' .
+ 309 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@54 function_call_parameter_list ')' .
$default reduce using rule 309 (function_call)
state 713
- 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @55 function_call_parameter_list ')' .
+ 311 function_call: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@55 function_call_parameter_list ')' .
$default reduce using rule 311 (function_call)
state 714
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -19490,9 +19490,9 @@ state 714
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 275 | expr '?' @46 expr ':' @47 expr .
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 275 | expr '?' $@46 expr ':' $@47 expr .
+ 277 | expr . '?' ':' $@48 expr
T_BOOLEAN_OR shift, and go to state 226
T_BOOLEAN_AND shift, and go to state 227
@@ -19522,28 +19522,28 @@ state 714
state 715
- 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 ctor_arguments .
+ 220 expr_without_variable: variable '=' '&' T_NEW class_name_reference $@40 ctor_arguments .
$default reduce using rule 220 (expr_without_variable)
state 716
- 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @56 function_call_parameter_list ')' .
+ 313 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' $@56 function_call_parameter_list ')' .
$default reduce using rule 313 (function_call)
state 717
- 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @57 function_call_parameter_list ')' .
+ 315 function_call: variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' $@57 function_call_parameter_list ')' .
$default reduce using rule 315 (function_call)
state 718
- 393 method_or_not: '(' @64 . function_call_parameter_list ')'
+ 393 method_or_not: '(' $@64 . function_call_parameter_list ')'
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -19625,7 +19625,7 @@ state 718
state 719
- 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @61 object_property @62 method_or_not variable_properties .
+ 386 variable: base_variable_with_function_calls T_OBJECT_OPERATOR $@61 object_property $@62 method_or_not variable_properties .
388 variable_properties: variable_properties . variable_property
T_OBJECT_OPERATOR shift, and go to state 760
@@ -19676,7 +19676,7 @@ state 723
state 724
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 inner_statement_list @8 . new_elseif_list new_else_single T_ENDIF ';'
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list $@8 . new_elseif_list new_else_single T_ENDIF ';'
$default reduce using rule 144 (new_elseif_list)
@@ -19685,8 +19685,8 @@ state 724
state 725
- 38 unticked_statement: T_IF '(' expr ')' @5 statement @6 elseif_list . else_single
- 143 elseif_list: elseif_list . T_ELSEIF '(' expr ')' @34 statement
+ 38 unticked_statement: T_IF '(' expr ')' $@5 statement $@6 elseif_list . else_single
+ 143 elseif_list: elseif_list . T_ELSEIF '(' expr ')' $@34 statement
T_ELSEIF shift, and go to state 764
T_ELSE shift, and go to state 765
@@ -19700,26 +19700,26 @@ state 725
state 726
- 47 unticked_statement: T_DO @11 statement T_WHILE '(' @12 expr ')' . ';'
+ 47 unticked_statement: T_DO $@11 statement T_WHILE '(' $@12 expr ')' . ';'
';' shift, and go to state 767
state 727
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
140 while_statement: ':' inner_statement_list . T_ENDWHILE ';'
T_ENDWHILE shift, and go to state 768
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 728
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr ';' @14 . for_expr ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 for_expr ';' $@14 . for_expr ')' $@15 for_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -19807,20 +19807,20 @@ state 729
state 730
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @19 variable foreach_optional_arg ')' . @20 foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable 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 770
+ $@20 go to state 770
state 731
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 foreach_variable foreach_optional_arg ')' . @18 foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable 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 771
+ $@18 go to state 771
state 732
@@ -19840,8 +19840,8 @@ state 733
state 734
131 switch_case_list: ':' ';' case_list . T_ENDSWITCH ';'
- 134 case_list: case_list . T_CASE expr case_separator @32 inner_statement_list
- 136 | case_list . T_DEFAULT case_separator @33 inner_statement_list
+ 134 case_list: case_list . T_CASE expr case_separator $@32 inner_statement_list
+ 136 | case_list . T_DEFAULT case_separator $@33 inner_statement_list
T_ENDSWITCH shift, and go to state 773
T_CASE shift, and go to state 736
@@ -19857,7 +19857,7 @@ state 735
state 736
- 134 case_list: case_list T_CASE . expr case_separator @32 inner_statement_list
+ 134 case_list: case_list T_CASE . expr case_separator $@32 inner_statement_list
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -19934,7 +19934,7 @@ state 736
state 737
- 136 case_list: case_list T_DEFAULT . case_separator @33 inner_statement_list
+ 136 case_list: case_list T_DEFAULT . case_separator $@33 inner_statement_list
':' shift, and go to state 776
';' shift, and go to state 777
@@ -19945,8 +19945,8 @@ state 737
state 738
129 switch_case_list: '{' ';' case_list . '}'
- 134 case_list: case_list . T_CASE expr case_separator @32 inner_statement_list
- 136 | case_list . T_DEFAULT case_separator @33 inner_statement_list
+ 134 case_list: case_list . T_CASE expr case_separator $@32 inner_statement_list
+ 136 | case_list . T_DEFAULT case_separator $@33 inner_statement_list
T_CASE shift, and go to state 736
T_DEFAULT shift, and go to state 737
@@ -19979,7 +19979,7 @@ state 741
state 742
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 . fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 . fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
T_STRING shift, and go to state 111
T_NAMESPACE shift, and go to state 488
@@ -19991,7 +19991,7 @@ state 742
state 743
- 426 assignment_list_element: T_LIST '(' @66 assignment_list ')' .
+ 426 assignment_list_element: T_LIST '(' $@66 assignment_list ')' .
$default reduce using rule 426 (assignment_list_element)
@@ -20005,7 +20005,7 @@ state 744
state 745
- 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @30 implements_list '{' class_statement_list '}' .
+ 101 unticked_class_declaration_statement: class_entry_type T_STRING extends_from $@30 implements_list '{' class_statement_list '}' .
$default reduce using rule 101 (unticked_class_declaration_statement)
@@ -20019,7 +20019,7 @@ state 746
state 747
- 184 class_statement: variable_modifiers @36 . class_variable_declaration ';'
+ 184 class_statement: variable_modifiers $@36 . class_variable_declaration ';'
T_VARIABLE shift, and go to state 783
@@ -20028,7 +20028,7 @@ state 747
state 748
- 187 class_statement: method_modifiers function . is_reference T_STRING @37 '(' parameter_list ')' method_body
+ 187 class_statement: method_modifiers function . is_reference T_STRING $@37 '(' parameter_list ')' method_body
'&' shift, and go to state 219
@@ -20060,7 +20060,7 @@ state 751
state 752
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 '(' parameter_list ')' '{' . inner_statement_list '}'
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 '(' parameter_list ')' '{' . inner_statement_list '}'
$default reduce using rule 28 (inner_statement_list)
@@ -20143,14 +20143,14 @@ state 758
state 759
- 393 method_or_not: '(' @64 function_call_parameter_list . ')'
+ 393 method_or_not: '(' $@64 function_call_parameter_list . ')'
')' shift, and go to state 795
state 760
- 391 variable_property: T_OBJECT_OPERATOR . object_property @63 method_or_not
+ 391 variable_property: T_OBJECT_OPERATOR . object_property $@63 method_or_not
T_STRING shift, and go to state 511
T_VARIABLE shift, and go to state 33
@@ -20182,8 +20182,8 @@ state 762
state 763
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list . new_else_single T_ENDIF ';'
- 146 new_elseif_list: new_elseif_list . T_ELSEIF '(' expr ')' ':' @35 inner_statement_list
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list . new_else_single T_ENDIF ';'
+ 146 new_elseif_list: new_elseif_list . T_ELSEIF '(' expr ')' ':' $@35 inner_statement_list
T_ELSEIF shift, and go to state 797
T_ELSE shift, and go to state 798
@@ -20195,7 +20195,7 @@ state 763
state 764
- 143 elseif_list: elseif_list T_ELSEIF . '(' expr ')' @34 statement
+ 143 elseif_list: elseif_list T_ELSEIF . '(' expr ')' $@34 statement
'(' shift, and go to state 800
@@ -20300,14 +20300,14 @@ state 765
state 766
- 38 unticked_statement: T_IF '(' expr ')' @5 statement @6 elseif_list else_single .
+ 38 unticked_statement: T_IF '(' expr ')' $@5 statement $@6 elseif_list else_single .
$default reduce using rule 38 (unticked_statement)
state 767
- 47 unticked_statement: T_DO @11 statement T_WHILE '(' @12 expr ')' ';' .
+ 47 unticked_statement: T_DO $@11 statement T_WHILE '(' $@12 expr ')' ';' .
$default reduce using rule 47 (unticked_statement)
@@ -20321,14 +20321,14 @@ state 768
state 769
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr ';' @14 for_expr . ')' @15 for_statement
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 for_expr ';' $@14 for_expr . ')' $@15 for_statement
')' shift, and go to state 803
state 770
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @19 variable foreach_optional_arg ')' @20 . foreach_statement
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS $@19 variable foreach_optional_arg ')' $@20 . foreach_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -20428,7 +20428,7 @@ state 770
state 771
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 foreach_variable foreach_optional_arg ')' @18 . foreach_statement
+ 69 unticked_statement: T_FOREACH '(' variable T_AS $@17 foreach_variable foreach_optional_arg ')' $@18 . foreach_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -20549,11 +20549,11 @@ state 774
state 775
- 134 case_list: case_list T_CASE expr . case_separator @32 inner_statement_list
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 134 case_list: case_list T_CASE expr . case_separator $@32 inner_statement_list
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -20575,8 +20575,8 @@ state 775
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -20626,11 +20626,11 @@ state 777
state 778
- 136 case_list: case_list T_DEFAULT case_separator . @33 inner_statement_list
+ 136 case_list: case_list T_DEFAULT case_separator . $@33 inner_statement_list
- $default reduce using rule 135 (@33)
+ $default reduce using rule 135 ($@33)
- @33 go to state 810
+ $@33 go to state 810
state 779
@@ -20672,11 +20672,11 @@ state 780
state 781
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name . @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name . $@24 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 812
+ $@24 go to state 812
state 782
@@ -20721,7 +20721,7 @@ state 783
state 784
- 184 class_statement: variable_modifiers @36 class_variable_declaration . ';'
+ 184 class_statement: variable_modifiers $@36 class_variable_declaration . ';'
202 class_variable_declaration: class_variable_declaration . ',' T_VARIABLE
203 | class_variable_declaration . ',' T_VARIABLE '=' static_scalar
@@ -20731,7 +20731,7 @@ state 784
state 785
- 187 class_statement: method_modifiers function is_reference . T_STRING @37 '(' parameter_list ')' method_body
+ 187 class_statement: method_modifiers function is_reference . T_STRING $@37 '(' parameter_list ')' method_body
T_STRING shift, and go to state 817
@@ -20745,14 +20745,14 @@ state 786
state 787
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 99 unticked_function_declaration_statement: function is_reference 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 T_STRING $@29 '(' parameter_list ')' '{' inner_statement_list . '}'
'}' shift, and go to state 819
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 788
@@ -20781,14 +20781,14 @@ state 790
state 791
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
294 expr_without_variable: function is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list . '}'
'}' shift, and go to state 823
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 792
@@ -20840,23 +20840,23 @@ state 794
state 795
- 393 method_or_not: '(' @64 function_call_parameter_list ')' .
+ 393 method_or_not: '(' $@64 function_call_parameter_list ')' .
$default reduce using rule 393 (method_or_not)
state 796
- 391 variable_property: T_OBJECT_OPERATOR object_property . @63 method_or_not
+ 391 variable_property: T_OBJECT_OPERATOR object_property . $@63 method_or_not
- $default reduce using rule 390 (@63)
+ $default reduce using rule 390 ($@63)
- @63 go to state 826
+ $@63 go to state 826
state 797
- 146 new_elseif_list: new_elseif_list T_ELSEIF . '(' expr ')' ':' @35 inner_statement_list
+ 146 new_elseif_list: new_elseif_list T_ELSEIF . '(' expr ')' ':' $@35 inner_statement_list
'(' shift, and go to state 827
@@ -20870,14 +20870,14 @@ state 798
state 799
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single . T_ENDIF ';'
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single . T_ENDIF ';'
T_ENDIF shift, and go to state 829
state 800
- 143 elseif_list: elseif_list T_ELSEIF '(' . expr ')' @34 statement
+ 143 elseif_list: elseif_list T_ELSEIF '(' . expr ')' $@34 statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -20968,11 +20968,11 @@ state 802
state 803
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' . @15 for_statement
+ 51 unticked_statement: 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 831
+ $@15 go to state 831
state 804
@@ -20993,14 +20993,14 @@ state 805
state 806
- 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @19 variable foreach_optional_arg ')' @20 foreach_statement .
+ 72 unticked_statement: T_FOREACH '(' expr_without_variable T_AS $@19 variable foreach_optional_arg ')' $@20 foreach_statement .
$default reduce using rule 72 (unticked_statement)
state 807
- 69 unticked_statement: T_FOREACH '(' variable T_AS @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement .
+ 69 unticked_statement: T_FOREACH '(' variable T_AS $@17 foreach_variable foreach_optional_arg ')' $@18 foreach_statement .
$default reduce using rule 69 (unticked_statement)
@@ -21014,16 +21014,16 @@ state 808
state 809
- 134 case_list: case_list T_CASE expr case_separator . @32 inner_statement_list
+ 134 case_list: case_list T_CASE expr case_separator . $@32 inner_statement_list
- $default reduce using rule 133 (@32)
+ $default reduce using rule 133 ($@32)
- @32 go to state 833
+ $@32 go to state 833
state 810
- 136 case_list: case_list T_DEFAULT case_separator @33 . inner_statement_list
+ 136 case_list: case_list T_DEFAULT case_separator $@33 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
@@ -21039,7 +21039,7 @@ state 811
state 812
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 . T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 . T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
T_VARIABLE shift, and go to state 835
@@ -21091,18 +21091,18 @@ state 815
state 816
- 184 class_statement: variable_modifiers @36 class_variable_declaration ';' .
+ 184 class_statement: variable_modifiers $@36 class_variable_declaration ';' .
$default reduce using rule 184 (class_statement)
state 817
- 187 class_statement: method_modifiers function is_reference T_STRING . @37 '(' parameter_list ')' method_body
+ 187 class_statement: method_modifiers function is_reference T_STRING . $@37 '(' parameter_list ')' method_body
- $default reduce using rule 186 (@37)
+ $default reduce using rule 186 ($@37)
- @37 go to state 838
+ $@37 go to state 838
state 818
@@ -21137,7 +21137,7 @@ state 818
state 819
- 99 unticked_function_declaration_statement: function is_reference T_STRING @29 '(' parameter_list ')' '{' inner_statement_list '}' .
+ 99 unticked_function_declaration_statement: function is_reference T_STRING $@29 '(' parameter_list ')' '{' inner_statement_list '}' .
$default reduce using rule 99 (unticked_function_declaration_statement)
@@ -21211,7 +21211,7 @@ state 825
state 826
- 391 variable_property: T_OBJECT_OPERATOR object_property @63 . method_or_not
+ 391 variable_property: T_OBJECT_OPERATOR object_property $@63 . method_or_not
'(' shift, and go to state 654
@@ -21222,7 +21222,7 @@ state 826
state 827
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' . expr ')' ':' @35 inner_statement_list
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' . expr ')' ':' $@35 inner_statement_list
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -21308,18 +21308,18 @@ state 828
state 829
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF . ';'
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF . ';'
';' shift, and go to state 846
state 830
- 143 elseif_list: elseif_list T_ELSEIF '(' expr . ')' @34 statement
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 143 elseif_list: elseif_list T_ELSEIF '(' expr . ')' $@34 statement
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -21341,8 +21341,8 @@ state 830
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -21375,7 +21375,7 @@ state 830
state 831
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 . for_statement
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 . for_statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -21475,19 +21475,19 @@ state 831
state 832
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
123 foreach_statement: ':' inner_statement_list . T_ENDFOREACH ';'
T_ENDFOREACH shift, and go to state 851
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 833
- 134 case_list: case_list T_CASE expr case_separator @32 . inner_statement_list
+ 134 case_list: case_list T_CASE expr case_separator $@32 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
@@ -21496,21 +21496,21 @@ state 833
state 834
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 136 case_list: case_list T_DEFAULT case_separator @33 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 136 case_list: case_list T_DEFAULT case_separator $@33 inner_statement_list .
T_ENDSWITCH reduce using rule 136 (case_list)
T_CASE reduce using rule 136 (case_list)
T_DEFAULT reduce using rule 136 (case_list)
'}' reduce using rule 136 (case_list)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 835
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE . ')' @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE . ')' $@25 '{' inner_statement_list '}' $@26 additional_catches
')' shift, and go to state 853
@@ -21534,7 +21534,7 @@ state 837
state 838
- 187 class_statement: method_modifiers function is_reference T_STRING @37 . '(' parameter_list ')' method_body
+ 187 class_statement: method_modifiers function is_reference T_STRING $@37 . '(' parameter_list ')' method_body
'(' shift, and go to state 855
@@ -21569,18 +21569,18 @@ state 842
state 843
- 391 variable_property: T_OBJECT_OPERATOR object_property @63 method_or_not .
+ 391 variable_property: T_OBJECT_OPERATOR object_property $@63 method_or_not .
$default reduce using rule 391 (variable_property)
state 844
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr . ')' ':' @35 inner_statement_list
- 240 expr_without_variable: expr . T_BOOLEAN_OR @42 expr
- 242 | expr . T_BOOLEAN_AND @43 expr
- 244 | expr . T_LOGICAL_OR @44 expr
- 246 | expr . T_LOGICAL_AND @45 expr
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr . ')' ':' $@35 inner_statement_list
+ 240 expr_without_variable: expr . T_BOOLEAN_OR $@42 expr
+ 242 | expr . T_BOOLEAN_AND $@43 expr
+ 244 | expr . T_LOGICAL_OR $@44 expr
+ 246 | expr . T_LOGICAL_AND $@45 expr
247 | expr . T_LOGICAL_XOR expr
248 | expr . '|' expr
249 | expr . '&' expr
@@ -21602,8 +21602,8 @@ state 844
269 | expr . '>' expr
270 | expr . T_IS_GREATER_OR_EQUAL expr
271 | expr . T_INSTANCEOF class_name_reference
- 275 | expr . '?' @46 expr ':' @47 expr
- 277 | expr . '?' ':' @48 expr
+ 275 | expr . '?' $@46 expr ':' $@47 expr
+ 277 | expr . '?' ':' $@48 expr
T_LOGICAL_OR shift, and go to state 222
T_LOGICAL_XOR shift, and go to state 223
@@ -21636,29 +21636,29 @@ state 844
state 845
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
150 new_else_single: T_ELSE ':' inner_statement_list .
T_ENDIF reduce using rule 150 (new_else_single)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 846
- 41 unticked_statement: T_IF '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single T_ENDIF ';' .
+ 41 unticked_statement: T_IF '(' expr ')' ':' $@7 inner_statement_list $@8 new_elseif_list new_else_single T_ENDIF ';' .
$default reduce using rule 41 (unticked_statement)
state 847
- 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' . @34 statement
+ 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' . $@34 statement
- $default reduce using rule 142 (@34)
+ $default reduce using rule 142 ($@34)
- @34 go to state 858
+ $@34 go to state 858
state 848
@@ -21679,7 +21679,7 @@ state 849
state 850
- 51 unticked_statement: T_FOR '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement .
+ 51 unticked_statement: T_FOR '(' for_expr ';' $@13 for_expr ';' $@14 for_expr ')' $@15 for_statement .
$default reduce using rule 51 (unticked_statement)
@@ -21693,25 +21693,25 @@ state 851
state 852
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 134 case_list: case_list T_CASE expr case_separator @32 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 134 case_list: case_list T_CASE expr case_separator $@32 inner_statement_list .
T_ENDSWITCH reduce using rule 134 (case_list)
T_CASE reduce using rule 134 (case_list)
T_DEFAULT reduce using rule 134 (case_list)
'}' reduce using rule 134 (case_list)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 853
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' . @25 '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 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 861
+ $@25 go to state 861
state 854
@@ -21746,7 +21746,7 @@ state 854
state 855
- 187 class_statement: method_modifiers function is_reference T_STRING @37 '(' . parameter_list ')' method_body
+ 187 class_statement: method_modifiers function is_reference T_STRING $@37 '(' . parameter_list ')' method_body
T_STRING shift, and go to state 111
T_ARRAY shift, and go to state 576
@@ -21772,14 +21772,14 @@ state 856
state 857
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' . ':' @35 inner_statement_list
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' . ':' $@35 inner_statement_list
':' shift, and go to state 864
state 858
- 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' @34 . statement
+ 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' $@34 . statement
T_REQUIRE_ONCE shift, and go to state 5
T_REQUIRE shift, and go to state 6
@@ -21877,14 +21877,14 @@ state 858
state 859
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
121 for_statement: ':' inner_statement_list . T_ENDFOR ';'
T_ENDFOR shift, and go to state 866
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 860
@@ -21896,7 +21896,7 @@ state 860
state 861
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 . '{' inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 . '{' inner_statement_list '}' $@26 additional_catches
'{' shift, and go to state 867
@@ -21910,23 +21910,23 @@ state 862
state 863
- 187 class_statement: method_modifiers function is_reference T_STRING @37 '(' parameter_list . ')' method_body
+ 187 class_statement: method_modifiers function is_reference T_STRING $@37 '(' parameter_list . ')' method_body
')' shift, and go to state 868
state 864
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' . @35 inner_statement_list
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' . $@35 inner_statement_list
- $default reduce using rule 145 (@35)
+ $default reduce using rule 145 ($@35)
- @35 go to state 869
+ $@35 go to state 869
state 865
- 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' @34 statement .
+ 143 elseif_list: elseif_list T_ELSEIF '(' expr ')' $@34 statement .
$default reduce using rule 143 (elseif_list)
@@ -21940,7 +21940,7 @@ state 866
state 867
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' . inner_statement_list '}' @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' . inner_statement_list '}' $@26 additional_catches
$default reduce using rule 28 (inner_statement_list)
@@ -21949,7 +21949,7 @@ state 867
state 868
- 187 class_statement: method_modifiers function is_reference T_STRING @37 '(' parameter_list ')' . method_body
+ 187 class_statement: method_modifiers function is_reference T_STRING $@37 '(' parameter_list ')' . method_body
';' shift, and go to state 872
'{' shift, and go to state 873
@@ -21959,7 +21959,7 @@ state 868
state 869
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @35 . inner_statement_list
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' $@35 . inner_statement_list
$default reduce using rule 28 (inner_statement_list)
@@ -21975,14 +21975,14 @@ state 870
state 871
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list . '}' @26 additional_catches
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list . '}' $@26 additional_catches
'}' shift, and go to state 876
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 872
@@ -22003,48 +22003,48 @@ state 873
state 874
- 187 class_statement: method_modifiers function is_reference T_STRING @37 '(' parameter_list ')' method_body .
+ 187 class_statement: method_modifiers function is_reference T_STRING $@37 '(' parameter_list ')' method_body .
$default reduce using rule 187 (class_statement)
state 875
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @35 inner_statement_list .
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 146 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' $@35 inner_statement_list .
T_ELSEIF reduce using rule 146 (new_elseif_list)
T_ELSE reduce using rule 146 (new_elseif_list)
T_ENDIF reduce using rule 146 (new_elseif_list)
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 876
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' . @26 additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 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 878
+ $@26 go to state 878
state 877
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
189 method_body: '{' inner_statement_list . '}'
'}' shift, and go to state 879
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 878
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 . additional_catches
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 . additional_catches
T_CATCH shift, and go to state 880
@@ -22064,14 +22064,14 @@ state 879
state 880
- 90 additional_catch: T_CATCH . '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH . '(' fully_qualified_class_name @27 T_VARIABLE ')' $@28 '{' inner_statement_list '}'
'(' shift, and go to state 884
state 881
- 81 unticked_statement: T_TRY @22 '{' inner_statement_list '}' T_CATCH '(' @23 fully_qualified_class_name @24 T_VARIABLE ')' @25 '{' inner_statement_list '}' @26 additional_catches .
+ 81 unticked_statement: T_TRY $@22 '{' inner_statement_list '}' T_CATCH '(' $@23 fully_qualified_class_name $@24 T_VARIABLE ')' $@25 '{' inner_statement_list '}' $@26 additional_catches .
$default reduce using rule 81 (unticked_statement)
@@ -22097,7 +22097,7 @@ state 883
state 884
- 90 additional_catch: T_CATCH '(' . fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' . fully_qualified_class_name @27 T_VARIABLE ')' $@28 '{' inner_statement_list '}'
T_STRING shift, and go to state 111
T_NAMESPACE shift, and go to state 488
@@ -22116,7 +22116,7 @@ state 885
state 886
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name . @27 T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name . @27 T_VARIABLE ')' $@28 '{' inner_statement_list '}'
$default reduce using rule 88 (@27)
@@ -22125,37 +22125,37 @@ state 886
state 887
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 . T_VARIABLE ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 . T_VARIABLE ')' $@28 '{' inner_statement_list '}'
T_VARIABLE shift, and go to state 888
state 888
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE . ')' @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE . ')' $@28 '{' inner_statement_list '}'
')' shift, and go to state 889
state 889
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' . @28 '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' . $@28 '{' inner_statement_list '}'
- $default reduce using rule 89 (@28)
+ $default reduce using rule 89 ($@28)
- @28 go to state 890
+ $@28 go to state 890
state 890
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 . '{' inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' $@28 . '{' inner_statement_list '}'
'{' shift, and go to state 891
state 891
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' . inner_statement_list '}'
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' $@28 '{' . inner_statement_list '}'
$default reduce using rule 28 (inner_statement_list)
@@ -22164,18 +22164,18 @@ state 891
state 892
- 27 inner_statement_list: inner_statement_list . @4 inner_statement
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list . '}'
+ 27 inner_statement_list: inner_statement_list . $@4 inner_statement
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' $@28 '{' inner_statement_list . '}'
'}' shift, and go to state 893
- $default reduce using rule 26 (@4)
+ $default reduce using rule 26 ($@4)
- @4 go to state 347
+ $@4 go to state 347
state 893
- 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 T_VARIABLE ')' @28 '{' inner_statement_list '}' .
+ 90 additional_catch: T_CATCH '(' fully_qualified_class_name @27 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 b43841d6f..1753e9794 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_parser.y 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_language_parser.y 312076 2011-06-12 01:43:10Z felipe $ */
/*
* LALR shift/reduce conflicts and how they are resolved:
@@ -211,7 +211,7 @@ inner_statement:
statement:
- unticked_statement { zend_do_ticks(TSRMLS_C); }
+ unticked_statement { DO_TICKS(); }
| T_STRING ':' { zend_do_label(&$1 TSRMLS_CC); }
;
@@ -291,11 +291,11 @@ unset_variable:
;
function_declaration_statement:
- unticked_function_declaration_statement { zend_do_ticks(TSRMLS_C); }
+ unticked_function_declaration_statement { DO_TICKS(); }
;
class_declaration_statement:
- unticked_class_declaration_statement { zend_do_ticks(TSRMLS_C); }
+ unticked_class_declaration_statement { DO_TICKS(); }
;
diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h
index 3ca4344ce..4c7e477bb 100644
--- a/Zend/zend_modules.h
+++ b/Zend/zend_modules.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_modules.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_modules.h 314376 2011-08-06 14:47:44Z felipe $ */
#ifndef MODULES_H
#define MODULES_H
@@ -113,6 +113,8 @@ struct _zend_module_entry {
#define ZEND_MOD_CONFLICTS(name) ZEND_MOD_CONFLICTS_EX(name, NULL, NULL)
#define ZEND_MOD_OPTIONAL(name) ZEND_MOD_OPTIONAL_EX(name, NULL, NULL)
+#define ZEND_MOD_END { NULL, NULL, NULL, 0 }
+
struct _zend_module_dep {
const char *name; /* module name */
const char *rel; /* version relationship: NULL (exists), lt|le|eq|ge|gt (to given version) */
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index 866fae180..8571d72d0 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_object_handlers.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: zend_object_handlers.c 310009 2011-04-07 13:35:27Z dmitry $ */
#include "zend.h"
#include "zend_globals.h"
@@ -374,7 +374,11 @@ zval *zend_std_read_property(zval *object, zval *member, int type TSRMLS_DC) /*
} else {
retval = &EG(uninitialized_zval_ptr);
}
- zval_ptr_dtor(&object);
+ if (EXPECTED(*retval != object)) {
+ zval_ptr_dtor(&object);
+ } else {
+ Z_DELREF_P(object);
+ }
} else {
if (zobj->ce->__get && guard && guard->in_get == 1) {
if (Z_STRVAL_P(member)[0] == '\0') {
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index c09b8a0fb..2b0cbdb73 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_vm_def.h 309300 2011-03-16 11:14:33Z dmitry $ */
+/* $Id: zend_vm_def.h 313129 2011-07-11 10:31:49Z dmitry $ */
/* If you change this file, please regenerate the zend_vm_execute.h and
* zend_vm_opcodes.h files by running:
@@ -900,10 +900,16 @@ ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMP|VAR|CV, ANY)
zval *z = GET_OP1_ZVAL_PTR(BP_VAR_R);
if (OP1_TYPE != IS_CONST &&
- Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL &&
- zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
- zend_print_variable(&z_copy);
- zval_dtor(&z_copy);
+ Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) {
+ if (OP1_TYPE == IS_TMP_VAR) {
+ INIT_PZVAL(z);
+ }
+ if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
+ zend_print_variable(&z_copy);
+ zval_dtor(&z_copy);
+ } else {
+ zend_print_variable(z);
+ }
} else {
zend_print_variable(z);
}
@@ -2087,14 +2093,20 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
} else {
function_name = GET_OP2_ZVAL_PTR(BP_VAR_R);
- if (OP2_TYPE != IS_CONST &&
+ if (OP2_TYPE != IS_CONST && OP2_TYPE != IS_TMP_VAR &&
Z_TYPE_P(function_name) == IS_OBJECT &&
Z_OBJ_HANDLER_P(function_name, get_closure) &&
Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) {
if (EX(object)) {
Z_ADDREF_P(EX(object));
}
- FREE_OP2();
+ if (OP2_TYPE == IS_VAR && OP2_FREE &&
+ EX(fbc)->common.fn_flags & ZEND_ACC_CLOSURE) {
+ /* Delay closure destruction until its invocation */
+ EX(fbc)->common.prototype = (zend_function*)function_name;
+ } else {
+ FREE_OP2();
+ }
ZEND_VM_NEXT_OPCODE();
}
@@ -2159,6 +2171,10 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
}
}
+ if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
+ zval_ptr_dtor((zval**)&op_array->prototype);
+ }
+
nested = EX(nested);
zend_vm_stack_free(execute_data TSRMLS_CC);
@@ -3219,59 +3235,67 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
}
return_value_used = RETURN_VALUE_USED(opline);
+
+ if (Z_LVAL(opline->op2.u.constant) != ZEND_EVAL && strlen(Z_STRVAL_P(inc_filename)) != Z_STRLEN_P(inc_filename)) {
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE || Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
+ } else {
+ switch (Z_LVAL(opline->op2.u.constant)) {
+ case ZEND_INCLUDE_ONCE:
+ case ZEND_REQUIRE_ONCE: {
+ zend_file_handle file_handle;
+ char *resolved_path;
+
+ resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
+ if (resolved_path) {
+ failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
+ } else {
+ resolved_path = Z_STRVAL_P(inc_filename);
+ }
- switch (Z_LVAL(opline->op2.u.constant)) {
- case ZEND_INCLUDE_ONCE:
- case ZEND_REQUIRE_ONCE: {
- zend_file_handle file_handle;
- char *resolved_path;
-
- resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
- if (resolved_path) {
- failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
- } else {
- resolved_path = Z_STRVAL_P(inc_filename);
- }
-
- if (failure_retval) {
- /* do nothing, file already included */
- } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
+ if (failure_retval) {
+ /* do nothing, file already included */
+ } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
- if (!file_handle.opened_path) {
- file_handle.opened_path = estrdup(resolved_path);
- }
+ if (!file_handle.opened_path) {
+ file_handle.opened_path = estrdup(resolved_path);
+ }
- if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
- new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
- zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
+ new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
+ zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ } else {
+ zend_file_handle_dtor(&file_handle TSRMLS_CC);
+ failure_retval=1;
+ }
} else {
- zend_file_handle_dtor(&file_handle TSRMLS_CC);
- failure_retval=1;
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
}
- } else {
- if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
- } else {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ if (resolved_path != Z_STRVAL_P(inc_filename)) {
+ efree(resolved_path);
}
}
- if (resolved_path != Z_STRVAL_P(inc_filename)) {
- efree(resolved_path);
- }
- }
- break;
- case ZEND_INCLUDE:
- case ZEND_REQUIRE:
- new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
- break;
- case ZEND_EVAL: {
- char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
+ break;
+ case ZEND_INCLUDE:
+ case ZEND_REQUIRE:
+ new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
+ break;
+ case ZEND_EVAL: {
+ char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
- new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
- efree(eval_desc);
- }
- break;
- EMPTY_SWITCH_DEFAULT_CASE()
+ new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
+ efree(eval_desc);
+ }
+ break;
+ EMPTY_SWITCH_DEFAULT_CASE()
+ }
}
if (inc_filename==&tmp_inc_filename) {
zval_dtor(&tmp_inc_filename);
@@ -3420,12 +3444,14 @@ ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
zend_op *opline = EX(opline);
zend_free_op free_op1, free_op2;
zval **container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_UNSET);
- zval *offset = GET_OP2_ZVAL_PTR(BP_VAR_R);
+ zval *offset;
+
+ if (OP1_TYPE == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = GET_OP2_ZVAL_PTR(BP_VAR_R);
if (OP1_TYPE != IS_VAR || container) {
- if (OP1_TYPE == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 7e377902b..3892c8a9e 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2011 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 |
@@ -163,6 +163,10 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
}
}
+ if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
+ zval_ptr_dtor((zval**)&op_array->prototype);
+ }
+
nested = EX(nested);
zend_vm_stack_free(execute_data TSRMLS_CC);
@@ -750,14 +754,20 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
} else {
function_name = &opline->op2.u.constant;
- if (IS_CONST != IS_CONST &&
+ if (IS_CONST != IS_CONST && IS_CONST != IS_TMP_VAR &&
Z_TYPE_P(function_name) == IS_OBJECT &&
Z_OBJ_HANDLER_P(function_name, get_closure) &&
Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) {
if (EX(object)) {
Z_ADDREF_P(EX(object));
}
+ if (IS_CONST == IS_VAR && 0 &&
+ EX(fbc)->common.fn_flags & ZEND_ACC_CLOSURE) {
+ /* Delay closure destruction until its invocation */
+ EX(fbc)->common.prototype = (zend_function*)function_name;
+ } else {
+ }
ZEND_VM_NEXT_OPCODE();
}
@@ -944,14 +954,20 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
} else {
function_name = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
- if (IS_TMP_VAR != IS_CONST &&
+ if (IS_TMP_VAR != IS_CONST && IS_TMP_VAR != IS_TMP_VAR &&
Z_TYPE_P(function_name) == IS_OBJECT &&
Z_OBJ_HANDLER_P(function_name, get_closure) &&
Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) {
if (EX(object)) {
Z_ADDREF_P(EX(object));
}
- zval_dtor(free_op2.var);
+ if (IS_TMP_VAR == IS_VAR && 1 &&
+ EX(fbc)->common.fn_flags & ZEND_ACC_CLOSURE) {
+ /* Delay closure destruction until its invocation */
+ EX(fbc)->common.prototype = (zend_function*)function_name;
+ } else {
+ zval_dtor(free_op2.var);
+ }
ZEND_VM_NEXT_OPCODE();
}
@@ -1045,14 +1061,20 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
} else {
function_name = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
- if (IS_VAR != IS_CONST &&
+ if (IS_VAR != IS_CONST && IS_VAR != IS_TMP_VAR &&
Z_TYPE_P(function_name) == IS_OBJECT &&
Z_OBJ_HANDLER_P(function_name, get_closure) &&
Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) {
if (EX(object)) {
Z_ADDREF_P(EX(object));
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (IS_VAR == IS_VAR && (free_op2.var != NULL) &&
+ EX(fbc)->common.fn_flags & ZEND_ACC_CLOSURE) {
+ /* Delay closure destruction until its invocation */
+ EX(fbc)->common.prototype = (zend_function*)function_name;
+ } else {
+ if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ }
ZEND_VM_NEXT_OPCODE();
}
@@ -1169,14 +1191,20 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
} else {
function_name = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
- if (IS_CV != IS_CONST &&
+ if (IS_CV != IS_CONST && IS_CV != IS_TMP_VAR &&
Z_TYPE_P(function_name) == IS_OBJECT &&
Z_OBJ_HANDLER_P(function_name, get_closure) &&
Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) {
if (EX(object)) {
Z_ADDREF_P(EX(object));
}
+ if (IS_CV == IS_VAR && 0 &&
+ EX(fbc)->common.fn_flags & ZEND_ACC_CLOSURE) {
+ /* Delay closure destruction until its invocation */
+ EX(fbc)->common.prototype = (zend_function*)function_name;
+ } else {
+ }
ZEND_VM_NEXT_OPCODE();
}
@@ -1296,10 +1324,16 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval *z = &opline->op1.u.constant;
if (IS_CONST != IS_CONST &&
- Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL &&
- zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
- zend_print_variable(&z_copy);
- zval_dtor(&z_copy);
+ Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) {
+ if (IS_CONST == IS_TMP_VAR) {
+ INIT_PZVAL(z);
+ }
+ if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
+ zend_print_variable(&z_copy);
+ zval_dtor(&z_copy);
+ } else {
+ zend_print_variable(z);
+ }
} else {
zend_print_variable(z);
}
@@ -1880,58 +1914,66 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
return_value_used = RETURN_VALUE_USED(opline);
- switch (Z_LVAL(opline->op2.u.constant)) {
- case ZEND_INCLUDE_ONCE:
- case ZEND_REQUIRE_ONCE: {
- zend_file_handle file_handle;
- char *resolved_path;
+ if (Z_LVAL(opline->op2.u.constant) != ZEND_EVAL && strlen(Z_STRVAL_P(inc_filename)) != Z_STRLEN_P(inc_filename)) {
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE || Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
+ } else {
+ switch (Z_LVAL(opline->op2.u.constant)) {
+ case ZEND_INCLUDE_ONCE:
+ case ZEND_REQUIRE_ONCE: {
+ zend_file_handle file_handle;
+ char *resolved_path;
- resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
- if (resolved_path) {
- failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
- } else {
- resolved_path = Z_STRVAL_P(inc_filename);
- }
+ resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
+ if (resolved_path) {
+ failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
+ } else {
+ resolved_path = Z_STRVAL_P(inc_filename);
+ }
- if (failure_retval) {
- /* do nothing, file already included */
- } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
+ if (failure_retval) {
+ /* do nothing, file already included */
+ } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
- if (!file_handle.opened_path) {
- file_handle.opened_path = estrdup(resolved_path);
- }
+ if (!file_handle.opened_path) {
+ file_handle.opened_path = estrdup(resolved_path);
+ }
- if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
- new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
- zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
+ new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
+ zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ } else {
+ zend_file_handle_dtor(&file_handle TSRMLS_CC);
+ failure_retval=1;
+ }
} else {
- zend_file_handle_dtor(&file_handle TSRMLS_CC);
- failure_retval=1;
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
}
- } else {
- if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
- } else {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ if (resolved_path != Z_STRVAL_P(inc_filename)) {
+ efree(resolved_path);
}
}
- if (resolved_path != Z_STRVAL_P(inc_filename)) {
- efree(resolved_path);
- }
- }
- break;
- case ZEND_INCLUDE:
- case ZEND_REQUIRE:
- new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
- break;
- case ZEND_EVAL: {
- char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
+ break;
+ case ZEND_INCLUDE:
+ case ZEND_REQUIRE:
+ new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
+ break;
+ case ZEND_EVAL: {
+ char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
- new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
- efree(eval_desc);
- }
- break;
- EMPTY_SWITCH_DEFAULT_CASE()
+ new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
+ efree(eval_desc);
+ }
+ break;
+ EMPTY_SWITCH_DEFAULT_CASE()
+ }
}
if (inc_filename==&tmp_inc_filename) {
zval_dtor(&tmp_inc_filename);
@@ -4578,10 +4620,16 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval *z = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
if (IS_TMP_VAR != IS_CONST &&
- Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL &&
- zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
- zend_print_variable(&z_copy);
- zval_dtor(&z_copy);
+ Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) {
+ if (IS_TMP_VAR == IS_TMP_VAR) {
+ INIT_PZVAL(z);
+ }
+ if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
+ zend_print_variable(&z_copy);
+ zval_dtor(&z_copy);
+ } else {
+ zend_print_variable(z);
+ }
} else {
zend_print_variable(z);
}
@@ -5154,58 +5202,66 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
return_value_used = RETURN_VALUE_USED(opline);
- switch (Z_LVAL(opline->op2.u.constant)) {
- case ZEND_INCLUDE_ONCE:
- case ZEND_REQUIRE_ONCE: {
- zend_file_handle file_handle;
- char *resolved_path;
+ if (Z_LVAL(opline->op2.u.constant) != ZEND_EVAL && strlen(Z_STRVAL_P(inc_filename)) != Z_STRLEN_P(inc_filename)) {
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE || Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
+ } else {
+ switch (Z_LVAL(opline->op2.u.constant)) {
+ case ZEND_INCLUDE_ONCE:
+ case ZEND_REQUIRE_ONCE: {
+ zend_file_handle file_handle;
+ char *resolved_path;
- resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
- if (resolved_path) {
- failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
- } else {
- resolved_path = Z_STRVAL_P(inc_filename);
- }
+ resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
+ if (resolved_path) {
+ failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
+ } else {
+ resolved_path = Z_STRVAL_P(inc_filename);
+ }
- if (failure_retval) {
- /* do nothing, file already included */
- } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
+ if (failure_retval) {
+ /* do nothing, file already included */
+ } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
- if (!file_handle.opened_path) {
- file_handle.opened_path = estrdup(resolved_path);
- }
+ if (!file_handle.opened_path) {
+ file_handle.opened_path = estrdup(resolved_path);
+ }
- if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
- new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
- zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
+ new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
+ zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ } else {
+ zend_file_handle_dtor(&file_handle TSRMLS_CC);
+ failure_retval=1;
+ }
} else {
- zend_file_handle_dtor(&file_handle TSRMLS_CC);
- failure_retval=1;
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
}
- } else {
- if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
- } else {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ if (resolved_path != Z_STRVAL_P(inc_filename)) {
+ efree(resolved_path);
}
}
- if (resolved_path != Z_STRVAL_P(inc_filename)) {
- efree(resolved_path);
- }
- }
- break;
- case ZEND_INCLUDE:
- case ZEND_REQUIRE:
- new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
- break;
- case ZEND_EVAL: {
- char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
+ break;
+ case ZEND_INCLUDE:
+ case ZEND_REQUIRE:
+ new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
+ break;
+ case ZEND_EVAL: {
+ char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
- new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
- efree(eval_desc);
- }
- break;
- EMPTY_SWITCH_DEFAULT_CASE()
+ new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
+ efree(eval_desc);
+ }
+ break;
+ EMPTY_SWITCH_DEFAULT_CASE()
+ }
}
if (inc_filename==&tmp_inc_filename) {
zval_dtor(&tmp_inc_filename);
@@ -7826,10 +7882,16 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval *z = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
if (IS_VAR != IS_CONST &&
- Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL &&
- zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
- zend_print_variable(&z_copy);
- zval_dtor(&z_copy);
+ Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) {
+ if (IS_VAR == IS_TMP_VAR) {
+ INIT_PZVAL(z);
+ }
+ if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
+ zend_print_variable(&z_copy);
+ zval_dtor(&z_copy);
+ } else {
+ zend_print_variable(z);
+ }
} else {
zend_print_variable(z);
}
@@ -8523,58 +8585,66 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
return_value_used = RETURN_VALUE_USED(opline);
- switch (Z_LVAL(opline->op2.u.constant)) {
- case ZEND_INCLUDE_ONCE:
- case ZEND_REQUIRE_ONCE: {
- zend_file_handle file_handle;
- char *resolved_path;
+ if (Z_LVAL(opline->op2.u.constant) != ZEND_EVAL && strlen(Z_STRVAL_P(inc_filename)) != Z_STRLEN_P(inc_filename)) {
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE || Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
+ } else {
+ switch (Z_LVAL(opline->op2.u.constant)) {
+ case ZEND_INCLUDE_ONCE:
+ case ZEND_REQUIRE_ONCE: {
+ zend_file_handle file_handle;
+ char *resolved_path;
- resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
- if (resolved_path) {
- failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
- } else {
- resolved_path = Z_STRVAL_P(inc_filename);
- }
+ resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
+ if (resolved_path) {
+ failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
+ } else {
+ resolved_path = Z_STRVAL_P(inc_filename);
+ }
- if (failure_retval) {
- /* do nothing, file already included */
- } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
+ if (failure_retval) {
+ /* do nothing, file already included */
+ } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
- if (!file_handle.opened_path) {
- file_handle.opened_path = estrdup(resolved_path);
- }
+ if (!file_handle.opened_path) {
+ file_handle.opened_path = estrdup(resolved_path);
+ }
- if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
- new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
- zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
+ new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
+ zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ } else {
+ zend_file_handle_dtor(&file_handle TSRMLS_CC);
+ failure_retval=1;
+ }
} else {
- zend_file_handle_dtor(&file_handle TSRMLS_CC);
- failure_retval=1;
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
}
- } else {
- if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
- } else {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ if (resolved_path != Z_STRVAL_P(inc_filename)) {
+ efree(resolved_path);
}
}
- if (resolved_path != Z_STRVAL_P(inc_filename)) {
- efree(resolved_path);
- }
- }
- break;
- case ZEND_INCLUDE:
- case ZEND_REQUIRE:
- new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
- break;
- case ZEND_EVAL: {
- char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
+ break;
+ case ZEND_INCLUDE:
+ case ZEND_REQUIRE:
+ new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
+ break;
+ case ZEND_EVAL: {
+ char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
- new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
- efree(eval_desc);
- }
- break;
- EMPTY_SWITCH_DEFAULT_CASE()
+ new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
+ efree(eval_desc);
+ }
+ break;
+ EMPTY_SWITCH_DEFAULT_CASE()
+ }
}
if (inc_filename==&tmp_inc_filename) {
zval_dtor(&tmp_inc_filename);
@@ -10697,12 +10767,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
zend_op *opline = EX(opline);
zend_free_op free_op1;
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- zval *offset = &opline->op2.u.constant;
+ zval *offset;
+
+ if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = &opline->op2.u.constant;
if (IS_VAR != IS_VAR || container) {
- if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -12446,12 +12518,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
zend_op *opline = EX(opline);
zend_free_op free_op1, free_op2;
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
+ zval *offset;
+
+ if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
if (IS_VAR != IS_VAR || container) {
- if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -14246,12 +14320,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
zend_op *opline = EX(opline);
zend_free_op free_op1, free_op2;
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
+ zval *offset;
+
+ if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
if (IS_VAR != IS_VAR || container) {
- if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -16632,12 +16708,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
zend_op *opline = EX(opline);
zend_free_op free_op1;
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
- zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
+ zval *offset;
+
+ if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
if (IS_VAR != IS_VAR || container) {
- if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -17824,12 +17902,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_H
zend_op *opline = EX(opline);
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- zval *offset = &opline->op2.u.constant;
+ zval *offset;
+
+ if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = &opline->op2.u.constant;
if (IS_UNUSED != IS_VAR || container) {
- if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -18881,12 +18961,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
zend_op *opline = EX(opline);
zend_free_op free_op2;
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
+ zval *offset;
+
+ if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
if (IS_UNUSED != IS_VAR || container) {
- if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -19938,12 +20020,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
zend_op *opline = EX(opline);
zend_free_op free_op2;
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
+ zval *offset;
+
+ if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
if (IS_UNUSED != IS_VAR || container) {
- if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -21254,12 +21338,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HAND
zend_op *opline = EX(opline);
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
- zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
+ zval *offset;
+
+ if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
if (IS_UNUSED != IS_VAR || container) {
- if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -21699,10 +21785,16 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval *z = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
if (IS_CV != IS_CONST &&
- Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL &&
- zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
- zend_print_variable(&z_copy);
- zval_dtor(&z_copy);
+ Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) {
+ if (IS_CV == IS_TMP_VAR) {
+ INIT_PZVAL(z);
+ }
+ if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
+ zend_print_variable(&z_copy);
+ zval_dtor(&z_copy);
+ } else {
+ zend_print_variable(z);
+ }
} else {
zend_print_variable(z);
}
@@ -22385,58 +22477,66 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
return_value_used = RETURN_VALUE_USED(opline);
- switch (Z_LVAL(opline->op2.u.constant)) {
- case ZEND_INCLUDE_ONCE:
- case ZEND_REQUIRE_ONCE: {
- zend_file_handle file_handle;
- char *resolved_path;
+ if (Z_LVAL(opline->op2.u.constant) != ZEND_EVAL && strlen(Z_STRVAL_P(inc_filename)) != Z_STRLEN_P(inc_filename)) {
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE || Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
+ } else {
+ switch (Z_LVAL(opline->op2.u.constant)) {
+ case ZEND_INCLUDE_ONCE:
+ case ZEND_REQUIRE_ONCE: {
+ zend_file_handle file_handle;
+ char *resolved_path;
- resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
- if (resolved_path) {
- failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
- } else {
- resolved_path = Z_STRVAL_P(inc_filename);
- }
+ resolved_path = zend_resolve_path(Z_STRVAL_P(inc_filename), Z_STRLEN_P(inc_filename) TSRMLS_CC);
+ if (resolved_path) {
+ failure_retval = zend_hash_exists(&EG(included_files), resolved_path, strlen(resolved_path)+1);
+ } else {
+ resolved_path = Z_STRVAL_P(inc_filename);
+ }
- if (failure_retval) {
- /* do nothing, file already included */
- } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
+ if (failure_retval) {
+ /* do nothing, file already included */
+ } else if (SUCCESS == zend_stream_open(resolved_path, &file_handle TSRMLS_CC)) {
- if (!file_handle.opened_path) {
- file_handle.opened_path = estrdup(resolved_path);
- }
+ if (!file_handle.opened_path) {
+ file_handle.opened_path = estrdup(resolved_path);
+ }
- if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
- new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
- zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ if (zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1)==SUCCESS) {
+ new_op_array = zend_compile_file(&file_handle, (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
+ zend_destroy_file_handle(&file_handle TSRMLS_CC);
+ } else {
+ zend_file_handle_dtor(&file_handle TSRMLS_CC);
+ failure_retval=1;
+ }
} else {
- zend_file_handle_dtor(&file_handle TSRMLS_CC);
- failure_retval=1;
+ if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ }
}
- } else {
- if (Z_LVAL(opline->op2.u.constant)==ZEND_INCLUDE_ONCE) {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
- } else {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, Z_STRVAL_P(inc_filename) TSRMLS_CC);
+ if (resolved_path != Z_STRVAL_P(inc_filename)) {
+ efree(resolved_path);
}
}
- if (resolved_path != Z_STRVAL_P(inc_filename)) {
- efree(resolved_path);
- }
- }
- break;
- case ZEND_INCLUDE:
- case ZEND_REQUIRE:
- new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
- break;
- case ZEND_EVAL: {
- char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
+ break;
+ case ZEND_INCLUDE:
+ case ZEND_REQUIRE:
+ new_op_array = compile_filename(Z_LVAL(opline->op2.u.constant), inc_filename TSRMLS_CC);
+ break;
+ case ZEND_EVAL: {
+ char *eval_desc = zend_make_compiled_string_description("eval()'d code" TSRMLS_CC);
- new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
- efree(eval_desc);
- }
- break;
- EMPTY_SWITCH_DEFAULT_CASE()
+ new_op_array = zend_compile_string(inc_filename, eval_desc TSRMLS_CC);
+ efree(eval_desc);
+ }
+ break;
+ EMPTY_SWITCH_DEFAULT_CASE()
+ }
}
if (inc_filename==&tmp_inc_filename) {
zval_dtor(&tmp_inc_filename);
@@ -24252,12 +24352,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
zend_op *opline = EX(opline);
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
- zval *offset = &opline->op2.u.constant;
+ zval *offset;
+
+ if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = &opline->op2.u.constant;
if (IS_CV != IS_VAR || container) {
- if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -25892,12 +25994,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
zend_op *opline = EX(opline);
zend_free_op free_op2;
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
- zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
+ zval *offset;
+
+ if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
if (IS_CV != IS_VAR || container) {
- if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -27582,12 +27686,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
zend_op *opline = EX(opline);
zend_free_op free_op2;
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
- zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
+ zval *offset;
+
+ if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
if (IS_CV != IS_VAR || container) {
- if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
@@ -29759,12 +29865,14 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_
zend_op *opline = EX(opline);
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
- zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
+ zval *offset;
+
+ if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(container);
+ }
+ offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
if (IS_CV != IS_VAR || container) {
- if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
- }
switch (Z_TYPE_PP(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_PP(container);
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 0481b3fd0..537e13966 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2011 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 |
@@ -16,7 +16,7 @@
| Authors: Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
- $Id: zend_vm_gen.php 300264 2010-06-07 23:04:30Z felipe $
+ $Id: zend_vm_gen.php 313107 2011-07-10 13:05:32Z felipe $
*/
$header_text = <<< DATA
@@ -24,7 +24,7 @@ $header_text = <<< DATA
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2011 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 |
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index d048a8576..f36e3b567 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2011 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 |