diff options
author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:39:08 -0400 |
---|---|---|
committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:39:08 -0400 |
commit | 993e1866df547532a05ab6db76c9ff5aefc9a3df (patch) | |
tree | 169d3bde0974235d3cde164786ef6f381a4749a7 /Zend | |
parent | 1f589a2bd44ba835ad1b009a5d83abd453724829 (diff) | |
download | php-993e1866df547532a05ab6db76c9ff5aefc9a3df.tar.gz |
Imported Upstream version 5.2.6upstream/5.2.6
Diffstat (limited to 'Zend')
115 files changed, 4357 insertions, 3331 deletions
diff --git a/Zend/FlexLexer.h b/Zend/FlexLexer.h index ecaa70e71..614fdeda0 100644 --- a/Zend/FlexLexer.h +++ b/Zend/FlexLexer.h @@ -1,4 +1,4 @@ -// $Header: /repository/ZendEngine2/FlexLexer.h,v 1.4 2000/07/03 00:55:36 sascha Exp $ +// $Header: /repository/ZendEngine2/Attic/FlexLexer.h,v 1.4 2000/07/03 00:55:36 sascha Exp $ // FlexLexer.h -- define interfaces for lexical analyzer classes generated // by flex diff --git a/Zend/acconfig.h b/Zend/acconfig.h index b423f1025..c136e59b0 100644 --- a/Zend/acconfig.h +++ b/Zend/acconfig.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: acconfig.h,v 1.40.2.1.2.1 2007/01/01 09:35:45 sebastian Exp $ */ +/* $Id: acconfig.h,v 1.40.2.1.2.2 2007/12/31 07:20:02 sebastian Exp $ */ #define ZEND_API #define ZEND_DLEXPORT diff --git a/Zend/flex.skl b/Zend/flex.skl index d3039ce38..9c9bbda3c 100644 --- a/Zend/flex.skl +++ b/Zend/flex.skl @@ -1,7 +1,7 @@ /* A Lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /repository/ZendEngine2/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $ + * $Header: /repository/ZendEngine2/Attic/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $ * vim:ft=lex: */ diff --git a/Zend/tests/bug29674.phpt b/Zend/tests/bug29674.phpt index aef91f406..30c23faa0 100755 --- a/Zend/tests/bug29674.phpt +++ b/Zend/tests/bug29674.phpt @@ -33,7 +33,7 @@ $obj->printVars(); ===BASE=== string(4) "Base" -Notice: Undefined property: BaseClass::$private_child in %sbug29674.php on line %d +Notice: Undefined property: BaseClass::$private_child in %sbug29674.php on line %d NULL ===CHILD=== string(4) "Base" diff --git a/Zend/tests/bug29689.phpt b/Zend/tests/bug29689.phpt index 74dabc159..12b343008 100644 --- a/Zend/tests/bug29689.phpt +++ b/Zend/tests/bug29689.phpt @@ -52,7 +52,7 @@ $baz->printFoo(); --EXPECTF-- foo: foo foo2 bar: bar -Notice: Undefined property: bar::$foo2 in %s on line %d +Notice: Undefined property: bar::$foo2 in %s on line %d ---baz-- foo: foo foo2 diff --git a/Zend/tests/bug30922.phpt b/Zend/tests/bug30922.phpt index c78dd3a37..f4e437e49 100644 --- a/Zend/tests/bug30922.phpt +++ b/Zend/tests/bug30922.phpt @@ -10,4 +10,4 @@ var_dump($a instanceOf A); echo "ok\n";
?>
--EXPECTF--
-Fatal error: Interface RecurisiveFooFar cannot not implement itself in %sbug30922.php on line %d
+Fatal error: Interface RecurisiveFooFar cannot implement itself in %sbug30922.php on line %d
diff --git a/Zend/tests/bug38469.phpt b/Zend/tests/bug38469.phpt new file mode 100644 index 000000000..8c3031ae0 --- /dev/null +++ b/Zend/tests/bug38469.phpt @@ -0,0 +1,28 @@ +--TEST--
+Bug #38469 Unexpected creation of cycle
+--FILE--
+<?php
+$a = array();
+$a[0] = $a;
+var_dump($a);
+$b = array(array());
+$b[0][0] = $b;
+var_dump($b);
+?>
+--EXPECT--
+array(1) {
+ [0]=>
+ array(0) {
+ }
+}
+array(1) {
+ [0]=>
+ array(1) {
+ [0]=>
+ array(1) {
+ [0]=>
+ array(0) {
+ }
+ }
+ }
+}
diff --git a/Zend/tests/bug41919.phpt b/Zend/tests/bug41919.phpt index 127eb97bc..3ba9ae0ec 100644 --- a/Zend/tests/bug41919.phpt +++ b/Zend/tests/bug41919.phpt @@ -8,5 +8,4 @@ $foo[3]->bar[1] = "bang"; echo "ok\n"; ?> --EXPECTF-- -Warning: Cannot use string offset as an array in %s/bug41919.php on line %d -ok +Fatal error: Cannot use string offset as an object in %s/bug41919.php on line %d diff --git a/Zend/tests/bug42937.phpt b/Zend/tests/bug42937.phpt new file mode 100755 index 000000000..875f0d922 --- /dev/null +++ b/Zend/tests/bug42937.phpt @@ -0,0 +1,40 @@ +--TEST-- +Bug #42937 (__call() method not invoked when methods are called on parent from child class) +--FILE-- +<?php +class A { + function __call($strMethod, $arrArgs) { + echo "$strMethod\n"; + } +} + +class C { + function __call($strMethod, $arrArgs) { + echo "$strMethod\n"; + } +} + +class B extends A { + function test() { + self::test1(); + parent::test2(); + A::test3(); + B::test4(); + C::test5(); + } +} + +$a = new A(); +$a->test(); + +$b = new B(); +$b->test(); +?> +--EXPECTF-- +test +test1 +test2 +test3 +test4 + +Fatal error: Call to undefined method C::test5() in %sbug42937.php on line 20 diff --git a/Zend/tests/bug43128.phpt b/Zend/tests/bug43128.phpt new file mode 100755 index 000000000..4ee676a0a --- /dev/null +++ b/Zend/tests/bug43128.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #43128 Very long class name causes segfault +--FILE-- +<?php + +$a = str_repeat("a", 10 * 1024 * 1024); + +eval("class $a {}"); + +# call_user_func($a); // Warning +# $a->$a(); // Fatal error + +if ($a instanceof $a); // Segmentation fault +new $a; // Segmentation fault +echo "ok\n"; +--EXPECT-- +ok diff --git a/Zend/tests/bug43175.phpt b/Zend/tests/bug43175.phpt new file mode 100755 index 000000000..3bf6befc1 --- /dev/null +++ b/Zend/tests/bug43175.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #43175 (__destruct() throwing an exception with __call() causes segfault) +--FILE-- +<?php + +class foobar { + public function __destruct() { + throw new Exception(); + } + public function __call($m, $a) { + return $this; + } +} +function foobar() { + return new foobar(); +} +try { + foobar()->unknown(); +} catch (Exception $e) { + echo "__call via traditional factory should be caught\n"; +} +?> +--EXPECT-- +__call via traditional factory should be caught diff --git a/Zend/tests/bug43201.phpt b/Zend/tests/bug43201.phpt new file mode 100755 index 000000000..89e1b6672 --- /dev/null +++ b/Zend/tests/bug43201.phpt @@ -0,0 +1,54 @@ +--TEST-- +Bug #43201 (Crash on using unitialized vals and __get/__set) +--FILE-- +<?php +class Foo { + function __get($k) { + return null; + } + function __set($k, $v) { + $this->$k = $v; + } +} + +$c = new Foo(); + +$c->arr[0]["k"] = 1; +$c->arr[0]["k2"] = $ref; +for($cnt=0;$cnt<6;$cnt++) { + $ref = chop($undef); + $c->arr[$cnt]["k2"] = $ref; +} +echo "ok\n"; +?> +--EXPECTF-- +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 13 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 14 + +Notice: Undefined variable: ref in %sbug43201.php on line 14 + +Notice: Undefined variable: undef in %sbug43201.php on line 16 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 17 + +Notice: Undefined variable: undef in %sbug43201.php on line 16 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 17 + +Notice: Undefined variable: undef in %sbug43201.php on line 16 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 17 + +Notice: Undefined variable: undef in %sbug43201.php on line 16 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 17 + +Notice: Undefined variable: undef in %sbug43201.php on line 16 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 17 + +Notice: Undefined variable: undef in %sbug43201.php on line 16 + +Notice: Indirect modification of overloaded property Foo::$arr has no effect in %sbug43201.php on line 17 +ok diff --git a/Zend/tests/bug43450.phpt b/Zend/tests/bug43450.phpt new file mode 100644 index 000000000..c55b4f722 --- /dev/null +++ b/Zend/tests/bug43450.phpt @@ -0,0 +1,35 @@ +--TEST--
+Bug #43450 (Memory leak on some functions with implicit object __toString() call)
+--SKIPIF--
+<?php if (!function_exists('memory_get_usage')) die('memory_get_usage() not installed'); ?>
+--FILE--
+<?php
+error_reporting(E_ALL|E_STRICT);
+
+class Foo
+{
+ public function __toString()
+ {
+ return __CLASS__;
+ }
+}
+
+$num_repeats = 100000;
+
+$start = (memory_get_usage() / 1024) + 16;
+for ($i=1;$i<$num_repeats;$i++)
+{
+ $foo = new Foo();
+ md5($foo);
+}
+$end = memory_get_peak_usage() / 1024;
+
+if ($start < $end) {
+ echo 'FAIL';
+} else {
+ echo 'PASS';
+}
+
+?>
+--EXPECT--
+PASS
diff --git a/Zend/tests/bug43483.phpt b/Zend/tests/bug43483.phpt new file mode 100644 index 000000000..0cfbfe878 --- /dev/null +++ b/Zend/tests/bug43483.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #43483 (get_class_methods() does not list all visible methods) +--FILE-- +<?php +class C { + public static function test() { + D::prot(); + print_r(get_class_methods("D")); + } +} +class D extends C { + protected static function prot() { + echo "Successfully called D::prot().\n"; + } +} +D::test(); +?> +--EXPECT-- +Successfully called D::prot(). +Array +( + [0] => prot + [1] => test +) diff --git a/Zend/tests/bug43703.phpt b/Zend/tests/bug43703.phpt new file mode 100644 index 000000000..de4f8a89f --- /dev/null +++ b/Zend/tests/bug43703.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #43703 (Signature compatibility check broken) +--FILE-- +<?php +class JoinPoint +{ +} + +abstract class Pointcut +{ + abstract public function evaluate(JoinPoint $joinPoint); +} + +class Read extends Pointcut +{ + public function evaluate(Joinpoint $joinPoint) + { + } +} +?> +DONE +--EXPECT-- +DONE diff --git a/Zend/tests/bug44069.phpt b/Zend/tests/bug44069.phpt new file mode 100644 index 000000000..75beaafed --- /dev/null +++ b/Zend/tests/bug44069.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #44069 (Huge memory usage with concatenation using . instead of .=) +--FILE-- +<?php +$array = array(); +$newstring = ""; +$string = str_repeat('This is a teststring.', 50); +for($i = 1; $i <= 2000; $i++) +{ +// $newstring .= $string; //This uses an expected amount of mem. + $newstring = $newstring . $string; //This uses very much mem. + + for($j = 1; $j <= 10; $j++) + { + $array[] = 'test'; + } +} +echo "ok\n"; +?> +--EXPECT-- +ok diff --git a/Zend/tests/bug44141.phpt b/Zend/tests/bug44141.phpt new file mode 100644 index 000000000..1a9ee892b --- /dev/null +++ b/Zend/tests/bug44141.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #44141 (private parent constructor callable through static function) +--FILE-- +<?php +class X +{ + public $x; + private function __construct($x) + { + $this->x = $x; + } +} + +class Y extends X +{ + static public function cheat($x) + { + return new Y($x); + } +} + +$y = Y::cheat(5); +echo $y->x, PHP_EOL; +--EXPECTF-- +Fatal error: Call to private X::__construct() from context 'Y' in %sbug44141.php on line 15 diff --git a/Zend/tests/bug44184.phpt b/Zend/tests/bug44184.phpt new file mode 100644 index 000000000..7f277acc7 --- /dev/null +++ b/Zend/tests/bug44184.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #44184 (Double free of loop-variable on exception) +--FILE-- +<?php +function foo() { + $x = array(1,2,3); + foreach ($x as $a) { + while (1) { + throw new Exception(); + } + return; + } +} +try { + foo(); +} catch (Exception $ex) { + echo "ok\n"; +} +?> +--EXPECT-- +ok diff --git a/Zend/tests/clone_uncloneable.phpt b/Zend/tests/clone_uncloneable.phpt new file mode 100644 index 000000000..c991d1060 --- /dev/null +++ b/Zend/tests/clone_uncloneable.phpt @@ -0,0 +1,20 @@ +--TEST-- +cloning uncloneable object +--SKIPIF-- +<?php if (!extension_loaded("xsl")) die("skip xsl extension is missing");?> +--INI-- +zend.ze1_compatibility_mode=1 +--FILE-- +<?php + +$new = &new XSLTProcessor(); +var_dump($new); + +echo "Done\n"; +?> +--EXPECTF-- +Strict Standards: Assigning the return value of new by reference is deprecated in %s on line %d + +Strict Standards: Implicit cloning object of class 'XSLTProcessor' because of 'zend.ze1_compatibility_mode' in %s on line %d + +Fatal error: Trying to clone uncloneable object of class XSLTProcessor in Unknown on line 0 diff --git a/Zend/tests/errmsg_038.phpt b/Zend/tests/errmsg_038.phpt index fdab803ba..2927e945f 100644 --- a/Zend/tests/errmsg_038.phpt +++ b/Zend/tests/errmsg_038.phpt @@ -10,4 +10,4 @@ class test { echo "Done\n"; ?> --EXPECTF-- -Fatal error: Cannot declare property test::$var final, the final modifier is allowed only for methods in %s on line %d +Fatal error: Cannot declare property test::$var final, the final modifier is allowed only for methods and classes in %s on line %d diff --git a/Zend/tests/indexing_001.phpt b/Zend/tests/indexing_001.phpt new file mode 100644 index 000000000..83c2c8d52 --- /dev/null +++ b/Zend/tests/indexing_001.phpt @@ -0,0 +1,212 @@ +--TEST-- +Indexing - various special cases. +--FILE-- +<?php +echo "*** Indexing - Testing value assignment with key ***\n"; +$array=array(1); +$testvalues=array(null, 0, 1, true, false,'',' ',0.1,array()); + +foreach ($testvalues as $testvalue) { + $testvalue['foo']=$array; + var_dump ($testvalue); +} +echo "\n*** Indexing - Testing reference assignment with key ***\n"; + +$testvalues=array(null, 0, 1, true, false,'',0.1,array()); + +foreach ($testvalues as $testvalue) { + $testvalue['foo']=&$array; + var_dump ($testvalue); +} +echo "*** Indexing - Testing value assignment no key ***\n"; +$array=array(1); +$testvalues=array(null, 0, 1, true, false,'',0.1,array()); + +foreach ($testvalues as $testvalue) { + $testvalue[]=$array; + var_dump ($testvalue); +} +echo "\n*** Indexing - Testing reference assignment no key ***\n"; + +$testvalues=array(null, 0, 1, true, false,'',0.1,array()); + +foreach ($testvalues as $testvalue) { + $testvalue[]=&$array; + var_dump ($testvalue); +} + + +echo "\nDone"; +?> +--EXPECTF-- +*** Indexing - Testing value assignment with key *** +array(1) { + ["foo"]=> + array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +int(0) + +Warning: Cannot use a scalar value as an array in %s on line %d +int(1) + +Warning: Cannot use a scalar value as an array in %s on line %d +bool(true) +array(1) { + ["foo"]=> + array(1) { + [0]=> + int(1) + } +} +array(1) { + ["foo"]=> + array(1) { + [0]=> + int(1) + } +} + +Notice: Array to string conversion in %s on line %d +string(1) "A" + +Warning: Cannot use a scalar value as an array in %s on line %d +float(0.1) +array(1) { + ["foo"]=> + array(1) { + [0]=> + int(1) + } +} + +*** Indexing - Testing reference assignment with key *** +array(1) { + ["foo"]=> + &array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +int(0) + +Warning: Cannot use a scalar value as an array in %s on line %d +int(1) + +Warning: Cannot use a scalar value as an array in %s on line %d +bool(true) +array(1) { + ["foo"]=> + &array(1) { + [0]=> + int(1) + } +} +array(1) { + ["foo"]=> + &array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +float(0.1) +array(1) { + ["foo"]=> + &array(1) { + [0]=> + int(1) + } +} +*** Indexing - Testing value assignment no key *** +array(1) { + [0]=> + array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +int(0) + +Warning: Cannot use a scalar value as an array in %s on line %d +int(1) + +Warning: Cannot use a scalar value as an array in %s on line %d +bool(true) +array(1) { + [0]=> + array(1) { + [0]=> + int(1) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +float(0.1) +array(1) { + [0]=> + array(1) { + [0]=> + int(1) + } +} + +*** Indexing - Testing reference assignment no key *** +array(1) { + [0]=> + &array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +int(0) + +Warning: Cannot use a scalar value as an array in %s on line %d +int(1) + +Warning: Cannot use a scalar value as an array in %s on line %d +bool(true) +array(1) { + [0]=> + &array(1) { + [0]=> + int(1) + } +} +array(1) { + [0]=> + &array(1) { + [0]=> + int(1) + } +} + +Warning: Cannot use a scalar value as an array in %s on line %d +float(0.1) +array(1) { + [0]=> + &array(1) { + [0]=> + int(1) + } +} + +Done
\ No newline at end of file diff --git a/Zend/tests/multibyte/multibyte_encoding_001.phpt b/Zend/tests/multibyte/multibyte_encoding_001.phpt new file mode 100755 index 000000000..19b6064cf --- /dev/null +++ b/Zend/tests/multibyte/multibyte_encoding_001.phpt @@ -0,0 +1,23 @@ +--TEST-- +Zend Multibyte and ShiftJIS +--SKIPIF-- +<?php +if (!in_array("detect_unicode", array_keys(ini_get_all()))) { + die("skip Requires configure --enable-zend-multibyte option"); +} +if (!extension_loaded("mbstring")) { + die("skip Requires mbstring extension"); +} +?> +--INI-- +mbstring.internal_encoding=SJIS +--FILE-- +<?php +declare(encoding='Shift_JIS'); +$s = "•\"; // 0x95+0x5c in script, not somewhere else " +printf("%x:%x\n", ord($s[0]), ord($s[1])); +?> +===DONE=== +--EXPECT-- +95:5c +===DONE=== diff --git a/Zend/tests/multibyte/multibyte_encoding_002.phpt b/Zend/tests/multibyte/multibyte_encoding_002.phpt new file mode 100755 index 000000000..813222d82 --- /dev/null +++ b/Zend/tests/multibyte/multibyte_encoding_002.phpt @@ -0,0 +1,21 @@ +--TEST-- +Zend Multibyte and UTF-8 BOM +--SKIPIF-- +<?php +if (!in_array("detect_unicode", array_keys(ini_get_all()))) { + die("skip Requires configure --enable-zend-multibyte option"); +} +if (!extension_loaded("mbstring")) { + die("skip Requires mbstring extension"); +} +?> +--INI-- +mbstring.internal_encoding=iso-8859-1 +--FILE-- +<?php +print "Hello World\n"; +?> +===DONE=== +--EXPECT-- +Hello World +===DONE=== diff --git a/Zend/tests/multibyte/multibyte_encoding_003.phpt b/Zend/tests/multibyte/multibyte_encoding_003.phpt Binary files differnew file mode 100755 index 000000000..19b29f209 --- /dev/null +++ b/Zend/tests/multibyte/multibyte_encoding_003.phpt diff --git a/Zend/zend.c b/Zend/zend.c index 96e717d8b..7546dcc21 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c,v 1.308.2.12.2.35 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend.c,v 1.308.2.12.2.36 2007/12/31 07:20:02 sebastian Exp $ */ #include "zend.h" #include "zend_extensions.h" @@ -101,7 +101,7 @@ ZEND_API zval zval_used_for_init; /* True global variable */ /* version information */ static char *zend_version_info; static uint zend_version_info_length; -#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2007 Zend Technologies\n" +#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2008 Zend Technologies\n" #define PRINT_ZVAL_INDENT 4 diff --git a/Zend/zend.h b/Zend/zend.h index a8c2f56c1..d498a56bd 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.h,v 1.293.2.11.2.9 2007/07/23 16:17:10 jani Exp $ */ +/* $Id: zend.h,v 1.293.2.11.2.11 2008/02/15 07:44:45 dmitry Exp $ */ #ifndef ZEND_H #define ZEND_H @@ -181,9 +181,21 @@ char *alloca (); #if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(ZEND_WIN32)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN) # define do_alloca(p) alloca(p) # define free_alloca(p) +# define ZEND_ALLOCA_MAX_SIZE (32 * 1024) +# define ALLOCA_FLAG(name) \ + zend_bool name; +# define do_alloca_with_limit_ex(size, limit, use_heap) \ + ((use_heap = ((size) > (limit))) ? emalloc(size) : alloca(size)) +# define do_alloca_with_limit(size, use_heap) \ + do_alloca_with_limit_ex(size, ZEND_ALLOCA_MAX_SIZE, use_heap) +# define free_alloca_with_limit(p, use_heap) \ + do { if (use_heap) efree(p); } while (0) #else # define do_alloca(p) emalloc(p) # define free_alloca(p) efree(p) +# define ALLOCA_FLAG(name) +# define do_alloca_with_limit(p, use_heap) emalloc(p) +# define free_alloca_with_limit(p, use_heap) efree(p) #endif #if ZEND_DEBUG diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 1634b63e4..1f1e8c839 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.c,v 1.296.2.27.2.34 2007/08/31 12:36:13 tony2001 Exp $ */ +/* $Id: zend_API.c,v 1.296.2.27.2.38 2008/03/06 17:28:47 tony2001 Exp $ */ #include "zend.h" #include "zend_execute.h" @@ -168,9 +168,15 @@ ZEND_API int _zend_get_parameters_array_ex(int param_count, zval ***argument_arr *value_ptr = **value; INIT_PZVAL(value_ptr); zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); + + if (Z_OBJ_HANDLER_PP(value, clone_obj) == NULL) { + zend_error(E_CORE_ERROR, "Trying to clone uncloneable object of class %s", class_name); + } + if(!dup) { efree(class_name); } + value_ptr->value.obj = Z_OBJ_HANDLER_PP(value, clone_obj)(*value TSRMLS_CC); zval_ptr_dtor(value); *value = value_ptr; @@ -1700,7 +1706,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr if (!(scope->ce_flags & ZEND_ACC_INTERFACE)) { /* Since the class is not an interface it needs to be declared as a abstract class. */ /* Since here we are handling internal functions only we can add the keyword flag. */ - /* This time we set the flag for the keyword 'abstratc'. */ + /* This time we set the flag for the keyword 'abstract'. */ scope->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; } } @@ -1723,11 +1729,10 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr } } fname_len = strlen(ptr->fname); - lowercase_name = do_alloca(fname_len+1); - zend_str_tolower_copy(lowercase_name, ptr->fname, fname_len); + lowercase_name = zend_str_tolower_dup(ptr->fname, fname_len); if (zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)®_function) == FAILURE) { unload=1; - free_alloca(lowercase_name); + efree(lowercase_name); break; } if (scope) { @@ -1767,7 +1772,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr } ptr++; count++; - free_alloca(lowercase_name); + efree(lowercase_name); } if (unload) { /* before unloading, display all remaining bad function in the module */ if (scope) { diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 713889ead..e214ff48e 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.h,v 1.207.2.8.2.8 2007/04/16 08:09:54 dmitry Exp $ */ +/* $Id: zend_API.h,v 1.207.2.8.2.9 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_API_H #define ZEND_API_H diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index d0dc0035d..2b5a0716d 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_alloc.c,v 1.144.2.3.2.44 2007/10/25 07:30:29 dmitry Exp $ */ +/* $Id: zend_alloc.c,v 1.144.2.3.2.47 2008/02/14 14:46:48 dmitry Exp $ */ #include "zend.h" #include "zend_alloc.h" @@ -649,10 +649,15 @@ static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_ static inline unsigned int zend_mm_high_bit(size_t _size) { #if defined(__GNUC__) && defined(i386) - unsigned int n; + unsigned int n; __asm__("bsrl %1,%0\n\t" : "=r" (n) : "rm" (_size)); return n; +#elif defined(__GNUC__) && defined(__x86_64__) + unsigned long n; + + __asm__("bsrq %1,%0\n\t" : "=r" (n) : "rm" (_size)); + return (unsigned int)n; #elif defined(_MSC_VER) && defined(_M_IX86) __asm { bsr eax, _size @@ -670,10 +675,15 @@ static inline unsigned int zend_mm_high_bit(size_t _size) static inline unsigned int zend_mm_low_bit(size_t _size) { #if defined(__GNUC__) && defined(i386) - unsigned int n; + unsigned int n; __asm__("bsfl %1,%0\n\t" : "=r" (n) : "rm" (_size)); return n; +#elif defined(__GNUC__) && defined(__x86_64__) + unsigned long n; + + __asm__("bsfq %1,%0\n\t" : "=r" (n) : "rm" (_size)); + return (unsigned int)n; #elif defined(_MSC_VER) && defined(_M_IX86) __asm { bsf eax, _size @@ -1737,6 +1747,7 @@ static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D size_t remaining_size; size_t segment_size; zend_mm_segment *segment; + int keep_rest = 0; if (EXPECTED(ZEND_MM_SMALL_SIZE(true_size))) { size_t index = ZEND_MM_BUCKET_INDEX(true_size); @@ -1805,6 +1816,7 @@ static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D segment must have header "size" and trailer "guard" block */ segment_size = true_size + ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE; segment_size = (segment_size + (heap->block_size-1)) & ~(heap->block_size-1); + keep_rest = 1; } else { segment_size = heap->block_size; } @@ -1884,7 +1896,11 @@ zend_mm_finished_searching_for_block: ZEND_MM_BLOCK(new_free_block, ZEND_MM_FREE_BLOCK, remaining_size); /* add the new free block to the free list */ - zend_mm_add_to_free_list(heap, new_free_block); + if (EXPECTED(!keep_rest)) { + zend_mm_add_to_free_list(heap, new_free_block); + } else { + zend_mm_add_to_rest_list(heap, new_free_block); + } } ZEND_MM_SET_DEBUG_INFO(best_fit, size, 1, 1); @@ -2300,10 +2316,10 @@ ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_ static inline size_t safe_address(size_t nmemb, size_t size, size_t offset) { size_t res = nmemb; - unsigned long overflow ; + unsigned long overflow = 0; - __asm__ ("mull %3\n\taddl %4,%0\n\tadcl $0,%1" - : "=a"(res), "=d" (overflow) + __asm__ ("mull %3\n\taddl %4,%0\n\tadcl %1,%1" + : "=&a"(res), "=&d" (overflow) : "%0"(res), "rm"(size), "rm"(offset)); @@ -2315,6 +2331,26 @@ static inline size_t safe_address(size_t nmemb, size_t size, size_t offset) return res; } +#elif defined(__GNUC__) && defined(__x86_64__) + +static inline size_t safe_address(size_t nmemb, size_t size, size_t offset) +{ + size_t res = nmemb; + unsigned long overflow = 0; + + __asm__ ("mulq %3\n\taddq %4,%0\n\tadcq %1,%1" + : "=&a"(res), "=&d" (overflow) + : "%0"(res), + "rm"(size), + "rm"(offset)); + + if (UNEXPECTED(overflow)) { + zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu * %zu + %zu)", nmemb, size, offset); + return 0; + } + return res; +} + #else static inline size_t safe_address(size_t nmemb, size_t size, size_t offset) diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index 6225f7f6c..a13eba959 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_alloc.h,v 1.63.2.2.2.12 2007/03/20 06:46:48 dmitry Exp $ */ +/* $Id: zend_alloc.h,v 1.63.2.2.2.13 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_ALLOC_H #define ZEND_ALLOC_H diff --git a/Zend/zend_arg_defs.c b/Zend/zend_arg_defs.c index 090490f9b..0993348da 100644 --- a/Zend/zend_arg_defs.c +++ b/Zend/zend_arg_defs.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_arg_defs.c,v 1.2.2.2.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_arg_defs.c,v 1.2.2.2.2.3 2007/12/31 07:20:02 sebastian Exp $ */ ZEND_BEGIN_ARG_INFO(first_arg_force_ref, 0) ZEND_ARG_PASS_INFO(1) diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index b05ec7eff..17c7efb1d 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.25 2007/08/30 07:43:21 sebastian Exp $ */ +/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.29 2008/02/21 15:14:12 dmitry Exp $ */ #include "zend.h" #include "zend_API.h" @@ -867,7 +867,7 @@ ZEND_FUNCTION(get_class_methods) if ((mptr->common.fn_flags & ZEND_ACC_PUBLIC) || (EG(scope) && (((mptr->common.fn_flags & ZEND_ACC_PROTECTED) && - instanceof_function(EG(scope), mptr->common.scope TSRMLS_CC)) + zend_check_protected(mptr->common.scope, EG(scope))) || ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) && EG(scope) == mptr->common.scope)))) { char *key; @@ -1013,19 +1013,20 @@ ZEND_FUNCTION(class_exists) char *class_name, *lc_name; zend_class_entry **ce; int class_name_len; - zend_bool autoload = 1; int found; + zend_bool autoload = 1; + ALLOCA_FLAG(use_heap) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &class_name, &class_name_len, &autoload) == FAILURE) { return; } if (!autoload) { - lc_name = do_alloca(class_name_len + 1); + lc_name = do_alloca_with_limit(class_name_len + 1, use_heap); zend_str_tolower_copy(lc_name, class_name, class_name_len); found = zend_hash_find(EG(class_table), lc_name, class_name_len+1, (void **) &ce); - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); RETURN_BOOL(found == SUCCESS && !((*ce)->ce_flags & ZEND_ACC_INTERFACE)); } @@ -1044,19 +1045,20 @@ ZEND_FUNCTION(interface_exists) char *iface_name, *lc_name; zend_class_entry **ce; int iface_name_len; - zend_bool autoload = 1; int found; + zend_bool autoload = 1; + ALLOCA_FLAG(use_heap) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &iface_name, &iface_name_len, &autoload) == FAILURE) { return; } if (!autoload) { - lc_name = do_alloca(iface_name_len + 1); + lc_name = do_alloca_with_limit(iface_name_len + 1, use_heap); zend_str_tolower_copy(lc_name, iface_name, iface_name_len); found = zend_hash_find(EG(class_table), lc_name, iface_name_len+1, (void **) &ce); - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); RETURN_BOOL(found == SUCCESS && (*ce)->ce_flags & ZEND_ACC_INTERFACE); } @@ -1216,6 +1218,7 @@ ZEND_FUNCTION(set_error_handler) had_orig_error_handler = 1; *return_value = *EG(user_error_handler); zval_copy_ctor(return_value); + INIT_PZVAL(return_value); zend_stack_push(&EG(user_error_handlers_error_reporting), &EG(user_error_handler_error_reporting), sizeof(EG(user_error_handler_error_reporting))); zend_ptr_stack_push(&EG(user_error_handlers), EG(user_error_handler)); } @@ -1230,6 +1233,7 @@ ZEND_FUNCTION(set_error_handler) EG(user_error_handler_error_reporting) = (int)error_type; *EG(user_error_handler) = *error_handler; zval_copy_ctor(EG(user_error_handler)); + INIT_PZVAL(EG(user_error_handler)); if (!had_orig_error_handler) { RETURN_NULL(); diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h index 0a2222ab8..6e1d836ea 100644 --- a/Zend/zend_builtin_functions.h +++ b/Zend/zend_builtin_functions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_builtin_functions.h,v 1.17.2.2.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_builtin_functions.h,v 1.17.2.2.2.2 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_BUILTIN_FUNCTIONS_H #define ZEND_BUILTIN_FUNCTIONS_H diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index befd6d1ff..137d79a76 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.c,v 1.647.2.27.2.41 2007/09/20 14:11:31 jani Exp $ */ +/* $Id: zend_compile.c,v 1.647.2.27.2.48 2008/02/20 12:04:49 dmitry Exp $ */ #include <zend_language_parser.h> #include "zend.h" @@ -541,8 +541,39 @@ static zend_bool opline_is_fetch_this(zend_op *opline TSRMLS_DC) void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC) { - int last_op_number = get_next_op_number(CG(active_op_array)); - zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); + int last_op_number; + zend_op *opline; + + if (value->op_type == IS_CV) { + zend_llist *fetch_list_ptr; + + zend_stack_top(&CG(bp_stack), (void **) &fetch_list_ptr); + if (fetch_list_ptr && fetch_list_ptr->head) { + opline = (zend_op *)fetch_list_ptr->head->data; + + if (opline->opcode == ZEND_FETCH_DIM_W && + opline->op1.op_type == IS_CV && + opline->op1.u.var == value->u.var) { + + opline = get_next_op(CG(active_op_array) TSRMLS_CC); + opline->opcode = ZEND_FETCH_R; + opline->result.op_type = IS_VAR; + opline->result.u.EA.type = 0; + opline->result.u.var = get_temporary_variable(CG(active_op_array)); + opline->op1.op_type = IS_CONST; + ZVAL_STRINGL(&opline->op1.u.constant, + CG(active_op_array)->vars[value->u.var].name, + CG(active_op_array)->vars[value->u.var].name_len, 1); + SET_UNUSED(opline->op2); + value = &opline->result; + } + } + } + + zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); + + last_op_number = get_next_op_number(CG(active_op_array)); + opline = get_next_op(CG(active_op_array) TSRMLS_CC); if (variable->op_type == IS_VAR) { int n = 0; @@ -654,8 +685,14 @@ static inline void do_begin_loop(TSRMLS_D) } -static inline void do_end_loop(int cont_addr TSRMLS_DC) +static inline void do_end_loop(int cont_addr, int has_loop_var TSRMLS_DC) { + if (!has_loop_var) { + /* The start fileld is used to free temporary variables in case of exceptions. + * We won't try to free something of we don't have loop variable. + */ + CG(active_op_array)->brk_cont_array[CG(active_op_array)->current_brk_cont].start = -1; + } CG(active_op_array)->brk_cont_array[CG(active_op_array)->current_brk_cont].cont = cont_addr; CG(active_op_array)->brk_cont_array[CG(active_op_array)->current_brk_cont].brk = get_next_op_number(CG(active_op_array)); CG(active_op_array)->current_brk_cont = CG(active_op_array)->brk_cont_array[CG(active_op_array)->current_brk_cont].parent; @@ -690,7 +727,7 @@ void zend_do_while_end(znode *while_token, znode *close_bracket_token TSRMLS_DC) /* update while's conditional jmp */ CG(active_op_array)->opcodes[close_bracket_token->u.opline_num].op2.u.opline_num = get_next_op_number(CG(active_op_array)); - do_end_loop(while_token->u.opline_num TSRMLS_CC); + do_end_loop(while_token->u.opline_num, 0 TSRMLS_CC); DEC_BPC(CG(active_op_array)); } @@ -734,7 +771,7 @@ void zend_do_for_end(znode *second_semicolon_token TSRMLS_DC) SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); - do_end_loop(second_semicolon_token->u.opline_num+1 TSRMLS_CC); + do_end_loop(second_semicolon_token->u.opline_num+1, 0 TSRMLS_CC); DEC_BPC(CG(active_op_array)); } @@ -1069,6 +1106,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n zend_uint fn_flags; char *lcname; zend_bool orig_interactive; + ALLOCA_FLAG(use_heap) if (is_method) { if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) { @@ -1129,7 +1167,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n } if (!(CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE)) { - short_class_name = do_alloca(short_class_name_length + 1); + short_class_name = do_alloca_with_limit(short_class_name_length + 1, use_heap); zend_str_tolower_copy(short_class_name, CG(active_class_entry)->name, short_class_name_length); /* Improve after RC: cache the lowercase class name */ @@ -1163,7 +1201,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n } else if (!(fn_flags & ZEND_ACC_STATIC)) { CG(active_op_array)->fn_flags |= ZEND_ACC_ALLOW_STATIC; } - free_alloca(short_class_name); + free_alloca_with_limit(short_class_name, use_heap); } efree(lcname); @@ -1990,7 +2028,7 @@ static zend_bool zend_do_perform_implementation_check(zend_function *fe, zend_fu return 0; } if (fe->common.arg_info[i].class_name - && strcmp(fe->common.arg_info[i].class_name, proto->common.arg_info[i].class_name)!=0) { + && strcasecmp(fe->common.arg_info[i].class_name, proto->common.arg_info[i].class_name)!=0) { return 0; } if (fe->common.arg_info[i].array_type_hint != proto->common.arg_info[i].array_type_hint) { @@ -2191,7 +2229,7 @@ static inline void do_implement_interface(zend_class_entry *ce, zend_class_entry zend_error(E_CORE_ERROR, "Class %s could not implement interface %s", ce->name, iface->name); } if (ce == iface) { - zend_error(E_ERROR, "Interface %s cannot not implement itself", ce->name); + zend_error(E_ERROR, "Interface %s cannot implement itself", ce->name); } } @@ -2614,7 +2652,7 @@ void zend_do_do_while_end(znode *do_token, znode *expr_open_bracket, znode *expr opline->op2.u.opline_num = do_token->u.opline_num; SET_UNUSED(opline->op2); - do_end_loop(expr_open_bracket->u.opline_num TSRMLS_CC); + do_end_loop(expr_open_bracket->u.opline_num, 0 TSRMLS_CC); DEC_BPC(CG(active_op_array)); } @@ -3005,7 +3043,7 @@ void zend_do_declare_property(znode *var_name, znode *value, zend_uint access_ty } if (access_type & ZEND_ACC_FINAL) { - zend_error(E_COMPILE_ERROR, "Cannot declare property %s::$%s final, the final modifier is allowed only for methods", + zend_error(E_COMPILE_ERROR, "Cannot declare property %s::$%s final, the final modifier is allowed only for methods and classes", CG(active_class_entry)->name, var_name->u.constant.value.str.val); } @@ -3420,8 +3458,6 @@ void zend_do_list_end(znode *result, znode *expr TSRMLS_DC) zend_llist_element *dimension; zend_op *opline; znode last_container; - int last_op_number; - zend_op *last_op; le = CG(list_llist).head; while (le) { @@ -3461,9 +3497,6 @@ void zend_do_list_end(znode *result, znode *expr TSRMLS_DC) } ((list_llist_element *) le->data)->value = last_container; zend_llist_destroy(&((list_llist_element *) le->data)->dimensions); - zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); - last_op_number = get_next_op_number(CG(active_op_array))-1; - last_op = &CG(active_op_array)->opcodes[last_op_number]; zend_do_assign(result, &((list_llist_element *) le->data)->var, &((list_llist_element *) le->data)->value TSRMLS_CC); zend_do_free(result TSRMLS_CC); le = le->next; @@ -3824,9 +3857,9 @@ void zend_do_foreach_cont(znode *foreach_token, znode *open_brackets_token, znod value_node = opline->result; - zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); if (assign_by_ref) { /* Mark FE_FETCH as IS_VAR as it holds the data directly as a value */ + zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(NULL, value, &value_node TSRMLS_CC); } else { zend_do_assign(&dummy, value, &value_node TSRMLS_CC); @@ -3836,7 +3869,6 @@ void zend_do_foreach_cont(znode *foreach_token, znode *open_brackets_token, znod if (key->op_type != IS_UNUSED) { znode key_node; - zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); opline = &CG(active_op_array)->opcodes[as_token->u.opline_num+1]; opline->result.op_type = IS_TMP_VAR; opline->result.u.EA.type = 0; @@ -3865,7 +3897,7 @@ void zend_do_foreach_end(znode *foreach_token, znode *as_token TSRMLS_DC) CG(active_op_array)->opcodes[foreach_token->u.opline_num].op2.u.opline_num = get_next_op_number(CG(active_op_array)); /* FE_RESET */ CG(active_op_array)->opcodes[as_token->u.opline_num].op2.u.opline_num = get_next_op_number(CG(active_op_array)); /* FE_FETCH */ - do_end_loop(as_token->u.opline_num TSRMLS_CC); + do_end_loop(as_token->u.opline_num, 1 TSRMLS_CC); zend_stack_top(&CG(foreach_copy_stack), (void **) &container_ptr); generate_free_foreach_copy(container_ptr TSRMLS_CC); diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 9966e7500..2d567f8ae 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.h,v 1.316.2.8.2.12 2007/05/18 13:12:04 dmitry Exp $ */ +/* $Id: zend_compile.h,v 1.316.2.8.2.13 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H diff --git a/Zend/zend_config.nw.h b/Zend/zend_config.nw.h index 2f6cab90f..7ef9dea79 100644 --- a/Zend/zend_config.nw.h +++ b/Zend/zend_config.nw.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_config.nw.h,v 1.8.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_config.nw.h,v 1.8.2.1.2.2 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_CONFIG_NW_H #define ZEND_CONFIG_NW_H diff --git a/Zend/zend_config.w32.h b/Zend/zend_config.w32.h index 13edf5a45..ffc016c83 100644 --- a/Zend/zend_config.w32.h +++ b/Zend/zend_config.w32.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_config.w32.h,v 1.39.2.2.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_config.w32.h,v 1.39.2.2.2.3 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_CONFIG_W32_H #define ZEND_CONFIG_W32_H diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index e0e118424..b0114f8cb 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_constants.c,v 1.71.2.5.2.7 2007/07/27 16:29:11 dmitry Exp $ */ +/* $Id: zend_constants.c,v 1.71.2.5.2.9 2008/02/19 12:00:36 dmitry Exp $ */ #include "zend.h" #include "zend_constants.h" @@ -274,6 +274,7 @@ ZEND_API int zend_get_constant_ex(char *name, uint name_len, zval *result, zend_ zval_update_constant_ex(ret_constant, (void*)1, *ce TSRMLS_CC); *result = **ret_constant; zval_copy_ctor(result); + INIT_PZVAL(result); } return retval; diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h index 04beefcf7..c55fe0b38 100644 --- a/Zend/zend_constants.h +++ b/Zend/zend_constants.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_constants.h,v 1.31.2.2.2.3 2007/08/02 23:54:19 stas Exp $ */ +/* $Id: zend_constants.h,v 1.31.2.2.2.4 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_CONSTANTS_H #define ZEND_CONSTANTS_H diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c index 3139e035d..e3d258adf 100644 --- a/Zend/zend_default_classes.c +++ b/Zend/zend_default_classes.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_default_classes.c,v 1.59.2.2.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_default_classes.c,v 1.59.2.2.2.2 2007/12/31 07:20:02 sebastian Exp $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_dynamic_array.c b/Zend/zend_dynamic_array.c index 402e0724f..f335054d2 100644 --- a/Zend/zend_dynamic_array.c +++ b/Zend/zend_dynamic_array.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_dynamic_array.c,v 1.13.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_dynamic_array.c,v 1.13.2.1.2.2 2007/12/31 07:20:02 sebastian Exp $ */ #include "zend.h" diff --git a/Zend/zend_dynamic_array.h b/Zend/zend_dynamic_array.h index 17ecfe3f2..e7b0bcc26 100644 --- a/Zend/zend_dynamic_array.h +++ b/Zend/zend_dynamic_array.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_dynamic_array.h,v 1.14.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_dynamic_array.h,v 1.14.2.1.2.2 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_DYNAMIC_ARRAY_H #define ZEND_DYNAMIC_ARRAY_H diff --git a/Zend/zend_errors.h b/Zend/zend_errors.h index 224b0a29d..5f547aef2 100644 --- a/Zend/zend_errors.h +++ b/Zend/zend_errors.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_errors.h,v 1.18.2.1.2.5 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_errors.h,v 1.18.2.1.2.6 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_ERRORS_H #define ZEND_ERRORS_H diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index aed98e04c..612bd3b77 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_exceptions.c,v 1.79.2.6.2.9 2007/05/30 16:32:02 tony2001 Exp $ */ +/* $Id: zend_exceptions.c,v 1.79.2.6.2.10 2007/12/31 07:20:02 sebastian Exp $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h index 683bd502a..b2bfa47b2 100644 --- a/Zend/zend_exceptions.h +++ b/Zend/zend_exceptions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_exceptions.h,v 1.21.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_exceptions.h,v 1.21.2.1.2.3 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_EXCEPTIONS_H #define ZEND_EXCEPTIONS_H diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index eb4616fba..4b97cd41f 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.716.2.12.2.24 2007/07/19 15:29:30 jani Exp $ */ +/* $Id: zend_execute.c,v 1.716.2.12.2.28 2008/03/04 11:48:53 dmitry Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -645,7 +645,13 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 if (((int)T->str_offset.offset < 0)) { zend_error(E_WARNING, "Illegal string offset: %d", T->str_offset.offset); - break; + if (!RETURN_VALUE_UNUSED(result)) { + T(result->u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr); + PZVAL_LOCK(*T(result->u.var).var.ptr_ptr); + AI_USE_PTR(T(result->u.var).var); + } + FREE_OP_VAR_PTR(free_op1); + return; } if (T->str_offset.offset >= Z_STRLEN_P(T->str_offset.str)) { zend_uint i; @@ -665,7 +671,7 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 if (Z_TYPE_P(value)!=IS_STRING) { tmp = *value; - if (op2->op_type & (IS_VAR|IS_CV)) { + if (op2->op_type != IS_TMP_VAR) { zval_copy_ctor(&tmp); } convert_to_string(&tmp); @@ -674,16 +680,13 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 Z_STRVAL_P(T->str_offset.str)[T->str_offset.offset] = Z_STRVAL_P(final_value)[0]; - if (op2->op_type == IS_TMP_VAR) { - if (final_value == &T(op2->u.var).tmp_var) { - /* we can safely free final_value here - * because separation is done only - * in case op2->op_type == IS_VAR */ - STR_FREE(Z_STRVAL_P(final_value)); - } - } if (final_value == &tmp) { zval_dtor(final_value); + } else if (op2->op_type == IS_TMP_VAR) { + /* we can safely free final_value here + * because separation is done only + * in case op2->op_type == IS_VAR */ + STR_FREE(Z_STRVAL_P(final_value)); } /* * the value of an assignment to a string offset is undefined @@ -692,11 +695,11 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 } while (0); /* zval_ptr_dtor(&T->str_offset.str); Nuke this line if it doesn't cause a leak */ -/* T(result->u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr); */ if (!RETURN_VALUE_UNUSED(result)) { - T(result->u.var).var.ptr_ptr = &value; - PZVAL_LOCK(*T(result->u.var).var.ptr_ptr); - AI_USE_PTR(T(result->u.var).var); + T(result->u.var).var.ptr_ptr = &T(result->u.var).var.ptr; + ALLOC_ZVAL(T(result->u.var).var.ptr); + INIT_PZVAL(T(result->u.var).var.ptr); + ZVAL_STRINGL(T(result->u.var).var.ptr, Z_STRVAL_P(T->str_offset.str)+T->str_offset.offset, 1, 1); } FREE_OP_VAR_PTR(free_op1); return; @@ -736,18 +739,12 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 zend_uint refcount = variable_ptr->refcount; zval garbage; - if (type != IS_TMP_VAR) { - value->refcount++; - } garbage = *variable_ptr; *variable_ptr = *value; variable_ptr->refcount = refcount; variable_ptr->is_ref = 1; zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); variable_ptr->value.obj = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - if (type != IS_TMP_VAR) { - value->refcount--; - } zendi_zval_dtor(garbage); } } else { @@ -775,16 +772,12 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 zend_uint refcount = variable_ptr->refcount; zval garbage; - if (type!=IS_TMP_VAR) { - value->refcount++; - } garbage = *variable_ptr; *variable_ptr = *value; variable_ptr->refcount = refcount; variable_ptr->is_ref = 1; if (type!=IS_TMP_VAR) { zendi_zval_copy_ctor(*variable_ptr); - value->refcount--; } zendi_zval_dtor(garbage); } @@ -1234,12 +1227,7 @@ static void zend_fetch_property_address(temp_variable *result, zval **container_ zval *container; if (!container_ptr) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - if (result) { - result->var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(*result->var.ptr_ptr); - } - return; + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } container = *container_ptr; diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 67058e26d..9b0b83655 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.h,v 1.84.2.4.2.8 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_execute.h,v 1.84.2.4.2.9 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_EXECUTE_H #define ZEND_EXECUTE_H diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 35c630f01..5470218b4 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute_API.c,v 1.331.2.20.2.24 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_execute_API.c,v 1.331.2.20.2.27 2008/03/04 11:46:09 dmitry Exp $ */ #include <stdio.h> #include <signal.h> @@ -452,6 +452,19 @@ ZEND_API int zend_is_true(zval *op) #define IS_CONSTANT_VISITED(p) (Z_TYPE_P(p) & IS_VISITED_CONSTANT) #define MARK_CONSTANT_VISITED(p) Z_TYPE_P(p) |= IS_VISITED_CONSTANT +static void zval_deep_copy(zval **p) +{ + zval *value; + + ALLOC_ZVAL(value); + *value = **p; + Z_TYPE_P(value) &= ~IS_CONSTANT_INDEX; + zval_copy_ctor(value); + Z_TYPE_P(value) = Z_TYPE_PP(p); + INIT_PZVAL(value); + *p = value; +} + ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *scope TSRMLS_DC) { zval *p = *pp; @@ -503,6 +516,16 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco p = *pp; Z_TYPE_P(p) = IS_ARRAY; + if (!inline_change) { + zval *tmp; + HashTable *tmp_ht = NULL; + + ALLOC_HASHTABLE(tmp_ht); + zend_hash_init(tmp_ht, zend_hash_num_elements(Z_ARRVAL_P(p)), NULL, ZVAL_PTR_DTOR, 0); + zend_hash_copy(tmp_ht, Z_ARRVAL_P(p), (copy_ctor_func_t) zval_deep_copy, (void *) &tmp, sizeof(zval *)); + Z_ARRVAL_P(p) = tmp_ht; + } + /* First go over the array and see if there are any constant indices */ zend_hash_internal_pointer_reset(Z_ARRVAL_P(p)); while (zend_hash_get_current_data(Z_ARRVAL_P(p), (void **) &element)==SUCCESS) { @@ -1034,19 +1057,20 @@ ZEND_API int zend_lookup_class_ex(char *name, int name_length, int use_autoload, int retval; char *lc_name; zval *exception; - char dummy = 1; zend_fcall_info fcall_info; zend_fcall_info_cache fcall_cache; + char dummy = 1; + ALLOCA_FLAG(use_heap) if (name == NULL || !name_length) { return FAILURE; } - lc_name = do_alloca(name_length + 1); + lc_name = do_alloca_with_limit(name_length + 1, use_heap); zend_str_tolower_copy(lc_name, name, name_length); if (zend_hash_find(EG(class_table), lc_name, name_length+1, (void **) ce) == SUCCESS) { - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); return SUCCESS; } @@ -1054,7 +1078,7 @@ ZEND_API int zend_lookup_class_ex(char *name, int name_length, int use_autoload, * (doesn't impact fuctionality of __autoload() */ if (!use_autoload || zend_is_compiling(TSRMLS_C)) { - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); return FAILURE; } @@ -1064,7 +1088,7 @@ ZEND_API int zend_lookup_class_ex(char *name, int name_length, int use_autoload, } if (zend_hash_add(EG(in_autoload), lc_name, name_length+1, (void**)&dummy, sizeof(char), NULL) == FAILURE) { - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); return FAILURE; } @@ -1102,12 +1126,12 @@ ZEND_API int zend_lookup_class_ex(char *name, int name_length, int use_autoload, if (retval == FAILURE) { EG(exception) = exception; - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); return FAILURE; } if (EG(exception) && exception) { - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); zend_error(E_ERROR, "Function %s(%s) threw an exception of type '%s'", ZEND_AUTOLOAD_FUNC_NAME, name, Z_OBJCE_P(EG(exception))->name); return FAILURE; } @@ -1119,7 +1143,7 @@ ZEND_API int zend_lookup_class_ex(char *name, int name_length, int use_autoload, } retval = zend_hash_find(EG(class_table), lc_name, name_length + 1, (void **) ce); - free_alloca(lc_name); + free_alloca_with_limit(lc_name, use_heap); return retval; } diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index 0dc99afbf..2add51c21 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_extensions.c,v 1.48.2.1.2.3 2007/09/18 09:24:04 jani Exp $ */ +/* $Id: zend_extensions.c,v 1.48.2.1.2.4 2007/12/31 07:20:02 sebastian Exp $ */ #include "zend_extensions.h" diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index 84a8c0ef7..24923f220 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_extensions.h,v 1.67.2.3.2.3 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_extensions.h,v 1.67.2.3.2.4 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_EXTENSIONS_H #define ZEND_EXTENSIONS_H diff --git a/Zend/zend_fast_cache.h b/Zend/zend_fast_cache.h index 885d17432..6da941d00 100644 --- a/Zend/zend_fast_cache.h +++ b/Zend/zend_fast_cache.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_fast_cache.h,v 1.21.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_fast_cache.h,v 1.21.2.1.2.3 2007/12/31 07:20:02 sebastian Exp $ */ #if 0 #ifndef ZEND_FAST_CACHE_H #define ZEND_FAST_CACHE_H diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index 1371ac763..d5e5cd59e 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals.h,v 1.141.2.3.2.7 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_globals.h,v 1.141.2.3.2.8 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_GLOBALS_H #define ZEND_GLOBALS_H diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h index 129400863..b0892afef 100644 --- a/Zend/zend_globals_macros.h +++ b/Zend/zend_globals_macros.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals_macros.h,v 1.22.2.1.2.4 2007/02/16 08:54:17 dmitry Exp $ */ +/* $Id: zend_globals_macros.h,v 1.22.2.1.2.5 2007/12/31 07:20:02 sebastian Exp $ */ #ifndef ZEND_GLOBALS_MACROS_H #define ZEND_GLOBALS_MACROS_H diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 61bf56ad0..f3297ca5d 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_hash.c,v 1.121.2.4.2.8 2007/07/24 18:28:39 dmitry Exp $ */ +/* $Id: zend_hash.c,v 1.121.2.4.2.9 2007/12/31 07:20:02 sebastian Exp $ */ #include "zend.h" diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index f110663bd..2e1cf9d20 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_hash.h,v 1.78.2.2.2.2 2007/01/10 15:58:07 dmitry Exp $ */ +/* $Id: zend_hash.h,v 1.78.2.2.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_HASH_H #define ZEND_HASH_H diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c index 2e5613bef..4371cdb5c 100644 --- a/Zend/zend_highlight.c +++ b/Zend/zend_highlight.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_highlight.c,v 1.49.2.3.2.2 2007/09/26 15:43:58 iliaa Exp $ */ +/* $Id: zend_highlight.c,v 1.49.2.3.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include <zend_language_parser.h> diff --git a/Zend/zend_highlight.h b/Zend/zend_highlight.h index 805220b6a..a9c83484a 100644 --- a/Zend/zend_highlight.h +++ b/Zend/zend_highlight.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_highlight.h,v 1.25.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_highlight.h,v 1.25.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_HIGHLIGHT_H #define ZEND_HIGHLIGHT_H diff --git a/Zend/zend_indent.c b/Zend/zend_indent.c index 5b2340fd5..ad551602b 100644 --- a/Zend/zend_indent.c +++ b/Zend/zend_indent.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_indent.c,v 1.24.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_indent.c,v 1.24.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ /* This indenter doesn't really work, it's here for no particular reason. */ diff --git a/Zend/zend_indent.h b/Zend/zend_indent.h index 9c720e4c9..21b5d89d8 100644 --- a/Zend/zend_indent.h +++ b/Zend/zend_indent.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_indent.h,v 1.17.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_indent.h,v 1.17.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_INDENT_H #define ZEND_INDENT_H diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index 80db6f96d..13b8e38e3 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini.c,v 1.39.2.2.2.25 2007/10/01 15:00:15 iliaa Exp $ */ +/* $Id: zend_ini.c,v 1.39.2.2.2.27 2008/03/13 15:56:21 iliaa Exp $ */ #include "zend.h" #include "zend_qsort.h" @@ -63,6 +63,9 @@ static int zend_restore_ini_entry_cb(zend_ini_entry *ini_entry, int stage TSRMLS ini_entry->modified = 0; ini_entry->orig_value = NULL; ini_entry->orig_value_length = 0; + if (ini_entry->modifiable >= (1 << 3)) { + ini_entry->modifiable >>= 3; + } } return 0; } @@ -244,6 +247,7 @@ ZEND_API int zend_alter_ini_entry_ex(char *name, uint name_length, char *new_val { zend_ini_entry *ini_entry; char *duplicate; + zend_bool modifiable; zend_bool modified; TSRMLS_FETCH(); @@ -251,8 +255,12 @@ ZEND_API int zend_alter_ini_entry_ex(char *name, uint name_length, char *new_val return FAILURE; } + modifiable = ini_entry->modifiable; + modified = ini_entry->modified; + if (stage == ZEND_INI_STAGE_ACTIVATE && modify_type == ZEND_INI_SYSTEM) { - ini_entry->modifiable = ZEND_INI_SYSTEM; + /* only touch lower bits */ + ini_entry->modifiable = (ini_entry->modifiable & (ZEND_INI_ALL << 3)) | ZEND_INI_SYSTEM; } if (!force_change) { @@ -261,8 +269,6 @@ ZEND_API int zend_alter_ini_entry_ex(char *name, uint name_length, char *new_val } } - modified = ini_entry->modified; - if (!EG(modified_ini_directives)) { ALLOC_HASHTABLE(EG(modified_ini_directives)); zend_hash_init(EG(modified_ini_directives), 8, NULL, NULL, 0); @@ -270,6 +276,8 @@ ZEND_API int zend_alter_ini_entry_ex(char *name, uint name_length, char *new_val if (!modified) { ini_entry->orig_value = ini_entry->value; ini_entry->orig_value_length = ini_entry->value_length; + /* store orginial value in the upper bits */ + ini_entry->modifiable = (modifiable << 3) | ini_entry->modifiable; ini_entry->modified = 1; zend_hash_add(EG(modified_ini_directives), name, name_length, &ini_entry, sizeof(zend_ini_entry*), NULL); } diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h index a39aca45e..ca7acaccf 100644 --- a/Zend/zend_ini.h +++ b/Zend/zend_ini.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini.h,v 1.34.2.1.2.6 2007/09/07 09:55:37 jani Exp $ */ +/* $Id: zend_ini.h,v 1.34.2.1.2.7 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_INI_H #define ZEND_INI_H diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c index c759a37aa..a156b2480 100644 --- a/Zend/zend_ini_parser.c +++ b/Zend/zend_ini_parser.c @@ -102,7 +102,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -116,7 +116,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y,v 1.41.2.2.2.2 2007/07/23 16:17:10 jani Exp $ */ +/* $Id: zend_ini_parser.y,v 1.41.2.2.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #define DEBUG_CFG_PARSER 0 #include "zend.h" diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index a11d9114b..e20e5b07d 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y,v 1.41.2.2.2.2 2007/07/23 16:17:10 jani Exp $ */ +/* $Id: zend_ini_parser.y,v 1.41.2.2.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #define DEBUG_CFG_PARSER 0 #include "zend.h" diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index b0baf4b6a..57f018cee 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -18,7 +18,7 @@ /* A Lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /repository/ZendEngine2/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $ + * $Header: /repository/ZendEngine2/Attic/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $ * vim:ft=lex: */ diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h index ed849c70b..35650f0bd 100644 --- a/Zend/zend_ini_scanner.h +++ b/Zend/zend_ini_scanner.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.h,v 1.14.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_ini_scanner.h,v 1.14.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef _ZEND_INI_SCANNER_H #define _ZEND_INI_SCANNER_H diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index 1c8259b24..eb8cb64a1 100755 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_interfaces.c,v 1.33.2.4.2.6 2007/05/30 16:32:02 tony2001 Exp $ */ +/* $Id: zend_interfaces.c,v 1.33.2.4.2.7 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h index 94464c50f..bb7e00c2a 100755 --- a/Zend/zend_interfaces.h +++ b/Zend/zend_interfaces.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_interfaces.h,v 1.11.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_interfaces.h,v 1.11.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_INTERFACES_H #define ZEND_INTERFACES_H diff --git a/Zend/zend_istdiostream.h b/Zend/zend_istdiostream.h index a06fa97be..0a7c08ffd 100644 --- a/Zend/zend_istdiostream.h +++ b/Zend/zend_istdiostream.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_istdiostream.h,v 1.6.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_istdiostream.h,v 1.6.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef _ZEND_STDIOSTREAM #define _ZEND_STDIOSTREAM diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c index 8ea7ca8ca..d3f25f47e 100755 --- a/Zend/zend_iterators.c +++ b/Zend/zend_iterators.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_iterators.c,v 1.12.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_iterators.c,v 1.12.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h index adb3fcc19..46b812255 100755 --- a/Zend/zend_iterators.h +++ b/Zend/zend_iterators.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_iterators.h,v 1.10.2.1.2.2 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_iterators.h,v 1.10.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ /* These iterators were designed to operate within the foreach() * structures provided by the engine, but could be extended for use diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c index 414b511ff..a9f46ff2a 100644 --- a/Zend/zend_language_parser.c +++ b/Zend/zend_language_parser.c @@ -339,7 +339,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y,v 1.160.2.4.2.8 2007/08/13 21:16:57 stas Exp $ */ +/* $Id: zend_language_parser.y,v 1.160.2.4.2.10 2008/03/10 14:54:47 felipe Exp $ */ /* * LALR shift/reduce conflicts and how they are resolved: @@ -613,16 +613,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 4099 +#define YYLAST 3964 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 149 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 168 +#define YYNNTS 166 /* YYNRULES -- Number of rules. */ -#define YYNRULES 412 +#define YYNRULES 410 /* YYNRULES -- Number of states. */ -#define YYNSTATES 773 +#define YYNSTATES 771 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -712,15 +712,15 @@ static const yytype_uint16 yyprhs[] = 997, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, 1019, 1021, 1024, 1027, 1032, 1034, 1038, 1040, 1042, 1044, 1046, 1050, 1054, 1055, 1058, 1059, 1061, 1067, 1071, 1075, - 1077, 1079, 1081, 1083, 1084, 1087, 1088, 1091, 1092, 1093, - 1101, 1103, 1106, 1107, 1108, 1113, 1114, 1119, 1120, 1122, - 1125, 1129, 1131, 1133, 1135, 1138, 1140, 1145, 1150, 1152, - 1154, 1159, 1160, 1162, 1164, 1165, 1168, 1173, 1178, 1180, - 1182, 1186, 1188, 1191, 1195, 1197, 1199, 1200, 1206, 1207, - 1208, 1211, 1217, 1221, 1225, 1227, 1234, 1239, 1244, 1247, - 1250, 1253, 1254, 1256, 1257, 1263, 1267, 1271, 1278, 1282, - 1284, 1286, 1288, 1293, 1298, 1301, 1304, 1309, 1312, 1315, - 1317, 1318, 1323 + 1077, 1079, 1081, 1083, 1085, 1087, 1088, 1089, 1097, 1099, + 1102, 1103, 1104, 1109, 1110, 1115, 1116, 1118, 1121, 1125, + 1127, 1129, 1131, 1134, 1136, 1141, 1146, 1148, 1150, 1155, + 1156, 1158, 1160, 1161, 1164, 1169, 1174, 1176, 1178, 1182, + 1184, 1187, 1191, 1193, 1195, 1196, 1202, 1203, 1204, 1207, + 1213, 1217, 1221, 1223, 1230, 1235, 1240, 1243, 1246, 1249, + 1250, 1252, 1253, 1259, 1263, 1267, 1274, 1278, 1280, 1282, + 1284, 1289, 1294, 1297, 1300, 1305, 1308, 1311, 1313, 1314, + 1319 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -740,19 +740,19 @@ static const yytype_int16 yyrhs[] = -1, 91, 140, 278, 141, 170, 210, -1, 95, 142, -1, 95, 278, 142, -1, 96, 142, -1, 96, 278, 142, -1, 99, 142, -1, 99, 246, 142, -1, 99, - 284, 142, -1, 104, 227, 142, -1, 110, 229, 142, + 282, 142, -1, 104, 227, 142, -1, 110, 229, 142, -1, 80, 242, 142, -1, 75, -1, 278, 142, -1, 103, 188, 142, -1, 112, 140, 186, 141, 142, -1, - -1, -1, 86, 140, 284, 90, 171, 205, 204, 141, + -1, -1, 86, 140, 282, 90, 171, 205, 204, 141, 172, 207, -1, -1, -1, 86, 140, 246, 90, 173, - 284, 204, 141, 174, 207, -1, -1, 88, 175, 140, + 282, 204, 141, 174, 207, -1, -1, 88, 175, 140, 209, 141, 208, -1, 142, -1, -1, -1, -1, -1, -1, 100, 176, 143, 154, 144, 101, 140, 177, 262, 178, 73, 141, 179, 143, 154, 144, 180, 181, -1, 102, 278, 142, -1, 182, -1, -1, 183, -1, 182, 183, -1, -1, -1, 101, 140, 262, 184, 73, 141, 185, 143, 154, 144, -1, 187, -1, 186, 8, 187, - -1, 284, -1, 79, -1, 140, 79, 141, -1, 192, + -1, 282, -1, 79, -1, 140, 79, 141, -1, 192, -1, 195, -1, -1, 31, -1, -1, -1, 97, 193, 191, 71, 194, 140, 222, 141, 143, 154, 144, -1, -1, 198, 71, 199, 196, 202, 143, 230, 144, -1, @@ -760,7 +760,7 @@ static const yytype_int16 yyrhs[] = -1, 109, 116, -1, 108, 116, -1, -1, 118, 262, -1, 117, -1, -1, 118, 203, -1, -1, 119, 203, -1, 262, -1, 203, 8, 262, -1, -1, 121, 205, - -1, 284, -1, 31, 284, -1, 157, -1, 26, 154, + -1, 282, -1, 31, 282, -1, 157, -1, 26, 154, 85, 142, -1, 157, -1, 26, 154, 87, 142, -1, 157, -1, 26, 154, 89, 142, -1, 71, 13, 272, -1, 209, 8, 71, 13, 272, -1, 143, 211, 144, @@ -777,8 +777,8 @@ static const yytype_int16 yyrhs[] = 223, 8, 224, 31, 73, -1, 223, 8, 224, 31, 73, 13, 272, -1, 223, 8, 224, 73, 13, 272, -1, -1, 71, -1, 123, -1, 226, -1, -1, 246, - -1, 284, -1, 31, 280, -1, 226, 8, 246, -1, - 226, 8, 284, -1, 226, 8, 31, 280, -1, 227, + -1, 282, -1, 31, 280, -1, 226, 8, 246, -1, + 226, 8, 282, -1, 226, 8, 31, 280, -1, 227, 8, 228, -1, 228, -1, 73, -1, 145, 279, -1, 145, 143, 278, 144, -1, 229, 8, 73, -1, 229, 8, 73, 13, 272, -1, 73, -1, 73, 13, 272, @@ -792,16 +792,16 @@ static const yytype_int16 yyrhs[] = 13, 272, -1, 241, 8, 71, 13, 272, -1, 98, 71, 13, 272, -1, 242, 8, 278, -1, 278, -1, -1, 244, -1, -1, 244, 8, 245, 278, -1, 278, - -1, -1, 122, 140, 247, 304, 141, 13, 278, -1, - 284, 13, 278, -1, 284, 13, 31, 284, -1, -1, - 284, 13, 31, 63, 263, 248, 270, -1, -1, 63, - 263, 249, 270, -1, 62, 278, -1, 284, 24, 278, - -1, 284, 23, 278, -1, 284, 22, 278, -1, 284, - 21, 278, -1, 284, 20, 278, -1, 284, 19, 278, - -1, 284, 18, 278, -1, 284, 17, 278, -1, 284, - 16, 278, -1, 284, 15, 278, -1, 284, 14, 278, - -1, 282, 60, -1, 60, 282, -1, 282, 59, -1, - 59, 282, -1, -1, 278, 27, 250, 278, -1, -1, + -1, -1, 122, 140, 247, 302, 141, 13, 278, -1, + 282, 13, 278, -1, 282, 13, 31, 282, -1, -1, + 282, 13, 31, 63, 263, 248, 270, -1, -1, 63, + 263, 249, 270, -1, 62, 278, -1, 282, 24, 278, + -1, 282, 23, 278, -1, 282, 22, 278, -1, 282, + 21, 278, -1, 282, 20, 278, -1, 282, 19, 278, + -1, 282, 18, 278, -1, 282, 17, 278, -1, 282, + 16, 278, -1, 282, 15, 278, -1, 282, 14, 278, + -1, 281, 60, -1, 60, 281, -1, 281, 59, -1, + 59, 281, -1, -1, 278, 27, 250, 278, -1, -1, 278, 28, 251, 278, -1, -1, 278, 9, 252, 278, -1, -1, 278, 11, 253, 278, -1, 278, 10, 278, -1, 278, 29, 278, -1, 278, 31, 278, -1, 278, @@ -814,51 +814,51 @@ static const yytype_int16 yyrhs[] = 34, 278, -1, 278, 36, 278, -1, 278, 39, 278, -1, 278, 37, 278, -1, 278, 38, 278, -1, 278, 49, 263, -1, 140, 278, 141, -1, -1, -1, 278, - 25, 254, 278, 26, 255, 278, -1, 313, -1, 58, + 25, 254, 278, 26, 255, 278, -1, 311, -1, 58, 278, -1, 57, 278, -1, 56, 278, -1, 55, 278, -1, 54, 278, -1, 53, 278, -1, 52, 278, -1, 64, 269, -1, -1, 51, 256, 278, -1, 274, -1, - 123, 140, 307, 141, -1, 146, 309, 146, -1, 12, + 123, 140, 305, 141, -1, 146, 307, 146, -1, 12, 278, -1, -1, 71, 140, 258, 225, 141, -1, -1, 262, 139, 71, 140, 259, 225, 141, -1, -1, 262, - 139, 292, 140, 260, 225, 141, -1, -1, 292, 140, + 139, 290, 140, 260, 225, 141, -1, -1, 290, 140, 261, 225, 141, -1, 71, -1, 71, -1, 264, -1, - -1, -1, 295, 120, 265, 299, 266, 267, -1, 295, - -1, 267, 268, -1, -1, 120, 299, -1, -1, 140, + -1, -1, 293, 120, 265, 297, 266, 267, -1, 293, + -1, 267, 268, -1, -1, 120, 297, -1, -1, 140, 141, -1, 140, 278, 141, -1, -1, 140, 225, 141, -1, 69, -1, 70, -1, 79, -1, 127, -1, 128, -1, 124, -1, 125, -1, 126, -1, 271, -1, 71, -1, 42, 272, -1, 43, 272, -1, 123, 140, 275, 141, -1, 273, -1, 71, 139, 71, -1, 71, -1, - 72, -1, 316, -1, 271, -1, 147, 309, 147, -1, - 135, 309, 136, -1, -1, 277, 276, -1, -1, 8, + 72, -1, 314, -1, 271, -1, 147, 307, 147, -1, + 135, 307, 136, -1, -1, 277, 276, -1, -1, 8, -1, 277, 8, 272, 121, 272, -1, 277, 8, 272, -1, 272, 121, 272, -1, 272, -1, 279, -1, 246, - -1, 284, -1, -1, 284, 281, -1, -1, 284, 283, - -1, -1, -1, 294, 120, 285, 299, 286, 290, 287, - -1, 294, -1, 287, 288, -1, -1, -1, 120, 299, - 289, 290, -1, -1, 140, 291, 225, 141, -1, -1, - 296, -1, 303, 296, -1, 262, 139, 292, -1, 295, - -1, 257, -1, 296, -1, 303, 296, -1, 293, -1, - 296, 61, 298, 148, -1, 296, 143, 278, 144, -1, - 297, -1, 73, -1, 145, 143, 278, 144, -1, -1, - 278, -1, 301, -1, -1, 292, 300, -1, 301, 61, - 298, 148, -1, 301, 143, 278, 144, -1, 302, -1, - 71, -1, 143, 278, 144, -1, 145, -1, 303, 145, - -1, 304, 8, 305, -1, 305, -1, 284, -1, -1, - 122, 140, 306, 304, 141, -1, -1, -1, 308, 276, - -1, 308, 8, 278, 121, 278, -1, 308, 8, 278, - -1, 278, 121, 278, -1, 278, -1, 308, 8, 278, - 121, 31, 280, -1, 308, 8, 31, 280, -1, 278, - 121, 31, 280, -1, 31, 280, -1, 309, 310, -1, - 309, 78, -1, -1, 73, -1, -1, 73, 61, 311, - 312, 148, -1, 73, 120, 71, -1, 137, 278, 144, - -1, 137, 72, 61, 278, 148, 144, -1, 138, 284, - 144, -1, 71, -1, 74, -1, 73, -1, 113, 140, - 314, 141, -1, 114, 140, 284, 141, -1, 7, 278, - -1, 6, 278, -1, 5, 140, 278, 141, -1, 4, - 278, -1, 3, 278, -1, 284, -1, -1, 314, 8, - 315, 284, -1, 262, 139, 71, -1 + -1, 282, -1, 282, -1, 282, -1, -1, -1, 292, + 120, 283, 297, 284, 288, 285, -1, 292, -1, 285, + 286, -1, -1, -1, 120, 297, 287, 288, -1, -1, + 140, 289, 225, 141, -1, -1, 294, -1, 301, 294, + -1, 262, 139, 290, -1, 293, -1, 257, -1, 294, + -1, 301, 294, -1, 291, -1, 294, 61, 296, 148, + -1, 294, 143, 278, 144, -1, 295, -1, 73, -1, + 145, 143, 278, 144, -1, -1, 278, -1, 299, -1, + -1, 290, 298, -1, 299, 61, 296, 148, -1, 299, + 143, 278, 144, -1, 300, -1, 71, -1, 143, 278, + 144, -1, 145, -1, 301, 145, -1, 302, 8, 303, + -1, 303, -1, 282, -1, -1, 122, 140, 304, 302, + 141, -1, -1, -1, 306, 276, -1, 306, 8, 278, + 121, 278, -1, 306, 8, 278, -1, 278, 121, 278, + -1, 278, -1, 306, 8, 278, 121, 31, 280, -1, + 306, 8, 31, 280, -1, 278, 121, 31, 280, -1, + 31, 280, -1, 307, 308, -1, 307, 78, -1, -1, + 73, -1, -1, 73, 61, 309, 310, 148, -1, 73, + 120, 71, -1, 137, 278, 144, -1, 137, 72, 61, + 278, 148, 144, -1, 138, 282, 144, -1, 71, -1, + 74, -1, 73, -1, 113, 140, 312, 141, -1, 114, + 140, 282, 141, -1, 7, 278, -1, 6, 278, -1, + 5, 140, 278, 141, -1, 4, 278, -1, 3, 278, + -1, 282, -1, -1, 312, 8, 313, 282, -1, 262, + 139, 71, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -897,15 +897,15 @@ static const yytype_uint16 yyrline[] = 675, 680, 681, 682, 683, 684, 685, 686, 687, 692, 693, 694, 695, 696, 697, 701, 705, 706, 707, 708, 709, 710, 715, 716, 719, 721, 725, 726, 727, 728, - 732, 733, 738, 743, 743, 748, 748, 753, 754, 753, - 756, 760, 761, 766, 766, 770, 770, 774, 778, 779, - 783, 788, 789, 794, 795, 796, 800, 801, 802, 807, - 808, 812, 813, 818, 819, 819, 823, 824, 825, 829, - 830, 834, 835, 839, 840, 845, 846, 846, 847, 852, - 853, 857, 858, 859, 860, 861, 862, 863, 864, 868, - 869, 870, 877, 878, 878, 879, 880, 881, 882, 887, - 888, 889, 894, 895, 896, 897, 898, 899, 900, 904, - 905, 905, 909 + 732, 733, 738, 743, 748, 753, 754, 753, 756, 760, + 761, 766, 766, 770, 770, 774, 778, 779, 783, 788, + 789, 794, 795, 796, 800, 801, 802, 807, 808, 812, + 813, 818, 819, 819, 823, 824, 825, 829, 830, 834, + 835, 839, 840, 845, 846, 846, 847, 852, 853, 857, + 858, 859, 860, 861, 862, 863, 864, 868, 869, 870, + 877, 878, 878, 879, 880, 881, 882, 887, 888, 889, + 894, 895, 896, 897, 898, 899, 900, 904, 905, 905, + 909 }; #endif @@ -976,17 +976,17 @@ static const char *const yytname[] = "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", - "@55", "rw_variable", "@56", "variable", "@57", "@58", - "variable_properties", "variable_property", "@59", "method_or_not", - "@60", "variable_without_objects", "static_member", + "rw_variable", "variable", "@55", "@56", "variable_properties", + "variable_property", "@57", "method_or_not", "@58", + "variable_without_objects", "static_member", "base_variable_with_function_calls", "base_variable", "reference_variable", "compound_variable", "dim_offset", - "object_property", "@61", "object_dim_list", "variable_name", + "object_property", "@59", "object_dim_list", "variable_name", "simple_indirect_reference", "assignment_list", - "assignment_list_element", "@62", "array_pair_list", - "non_empty_array_pair_list", "encaps_list", "encaps_var", "@63", + "assignment_list_element", "@60", "array_pair_list", + "non_empty_array_pair_list", "encaps_list", "encaps_var", "@61", "encaps_var_offset", "internal_functions_in_yacc", "isset_variables", - "@64", "class_constant", 0 + "@62", "class_constant", 0 }; #endif @@ -1049,15 +1049,15 @@ static const yytype_uint16 yyr1[] = 270, 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, 272, 273, 274, 274, 274, 274, 274, 274, 275, 275, 276, 276, 277, 277, 277, 277, - 278, 278, 279, 281, 280, 283, 282, 285, 286, 284, - 284, 287, 287, 289, 288, 291, 290, 290, 292, 292, - 293, 294, 294, 295, 295, 295, 296, 296, 296, 297, - 297, 298, 298, 299, 300, 299, 301, 301, 301, 302, - 302, 303, 303, 304, 304, 305, 306, 305, 305, 307, - 307, 308, 308, 308, 308, 308, 308, 308, 308, 309, - 309, 309, 310, 311, 310, 310, 310, 310, 310, 312, - 312, 312, 313, 313, 313, 313, 313, 313, 313, 314, - 315, 314, 316 + 278, 278, 279, 280, 281, 283, 284, 282, 282, 285, + 285, 287, 286, 289, 288, 288, 290, 290, 291, 292, + 292, 293, 293, 293, 294, 294, 294, 295, 295, 296, + 296, 297, 298, 297, 299, 299, 299, 300, 300, 301, + 301, 302, 302, 303, 304, 303, 303, 305, 305, 306, + 306, 306, 306, 306, 306, 306, 306, 307, 307, 307, + 308, 309, 308, 308, 308, 308, 308, 310, 310, 310, + 311, 311, 311, 311, 311, 311, 311, 312, 313, 312, + 314 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1096,15 +1096,15 @@ static const yytype_uint8 yyr2[] = 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 1, 3, 1, 1, 1, 1, 3, 3, 0, 2, 0, 1, 5, 3, 3, 1, - 1, 1, 1, 0, 2, 0, 2, 0, 0, 7, - 1, 2, 0, 0, 4, 0, 4, 0, 1, 2, - 3, 1, 1, 1, 2, 1, 4, 4, 1, 1, - 4, 0, 1, 1, 0, 2, 4, 4, 1, 1, - 3, 1, 2, 3, 1, 1, 0, 5, 0, 0, - 2, 5, 3, 3, 1, 6, 4, 4, 2, 2, - 2, 0, 1, 0, 5, 3, 3, 6, 3, 1, - 1, 1, 4, 4, 2, 2, 4, 2, 2, 1, - 0, 4, 3 + 1, 1, 1, 1, 1, 0, 0, 7, 1, 2, + 0, 0, 4, 0, 4, 0, 1, 2, 3, 1, + 1, 1, 2, 1, 4, 4, 1, 1, 4, 0, + 1, 1, 0, 2, 4, 4, 1, 1, 3, 1, + 2, 3, 1, 1, 0, 5, 0, 0, 2, 5, + 3, 3, 1, 6, 4, 4, 2, 2, 2, 0, + 1, 0, 5, 3, 3, 6, 3, 1, 1, 1, + 4, 4, 2, 2, 4, 2, 2, 1, 0, 4, + 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1115,990 +1115,984 @@ static const yytype_uint16 yydefact[] = 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 301, - 302, 316, 317, 359, 47, 303, 0, 28, 0, 0, + 302, 316, 317, 357, 47, 303, 0, 28, 0, 0, 0, 57, 0, 0, 0, 83, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 95, - 0, 0, 306, 307, 308, 304, 305, 391, 0, 59, - 12, 371, 391, 391, 4, 6, 17, 7, 8, 79, - 80, 0, 0, 331, 352, 0, 319, 274, 0, 330, - 0, 332, 0, 355, 340, 351, 353, 358, 0, 263, - 318, 408, 407, 0, 405, 404, 277, 246, 247, 248, + 0, 0, 306, 307, 308, 304, 305, 389, 0, 59, + 12, 369, 389, 389, 4, 6, 17, 7, 8, 79, + 80, 0, 0, 331, 350, 0, 319, 274, 0, 330, + 0, 332, 0, 353, 338, 349, 351, 356, 0, 263, + 318, 406, 405, 0, 403, 402, 277, 246, 247, 248, 249, 0, 270, 269, 268, 267, 266, 265, 264, 286, - 0, 225, 335, 223, 210, 287, 0, 208, 288, 292, - 353, 0, 0, 271, 0, 278, 0, 196, 0, 25, + 0, 225, 334, 223, 210, 287, 0, 208, 288, 292, + 351, 0, 0, 271, 0, 278, 0, 196, 0, 25, 197, 0, 0, 0, 37, 0, 39, 0, 81, 41, 331, 0, 332, 0, 0, 77, 0, 0, 160, 0, 0, 159, 92, 91, 165, 0, 0, 0, 0, 0, - 202, 379, 0, 0, 10, 0, 0, 0, 93, 88, + 202, 377, 0, 0, 10, 0, 0, 0, 93, 88, 0, 230, 0, 232, 260, 226, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 224, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 284, 337, 361, 0, 372, 354, 0, - 273, 0, 0, 299, 289, 354, 297, 0, 0, 151, - 0, 46, 0, 0, 0, 198, 201, 331, 332, 0, - 0, 38, 40, 82, 0, 42, 43, 12, 66, 0, - 49, 0, 161, 332, 0, 44, 0, 0, 45, 0, - 74, 76, 409, 0, 0, 0, 378, 0, 384, 0, - 324, 392, 390, 321, 0, 0, 389, 259, 18, 0, - 0, 276, 320, 0, 86, 96, 412, 350, 348, 0, - 0, 234, 0, 0, 0, 0, 235, 237, 236, 251, - 250, 253, 252, 254, 256, 257, 255, 245, 244, 239, - 240, 238, 241, 242, 243, 258, 0, 204, 221, 220, - 219, 218, 217, 216, 215, 214, 213, 212, 211, 151, - 0, 362, 0, 0, 406, 0, 350, 151, 209, 0, - 298, 19, 0, 0, 150, 331, 332, 195, 0, 0, - 31, 199, 54, 51, 0, 0, 35, 84, 10, 78, - 0, 158, 0, 0, 310, 0, 309, 166, 314, 163, - 0, 0, 410, 402, 403, 9, 0, 375, 0, 374, - 388, 333, 0, 275, 325, 380, 393, 0, 317, 0, - 0, 0, 11, 13, 14, 15, 360, 286, 94, 98, - 0, 0, 280, 282, 349, 231, 233, 0, 227, 229, - 0, 205, 0, 369, 0, 364, 338, 363, 368, 356, - 357, 0, 290, 22, 0, 154, 279, 0, 29, 26, - 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 162, 311, 312, 0, 322, 0, 75, 50, 0, 376, - 378, 0, 334, 0, 383, 0, 382, 0, 395, 0, - 396, 398, 0, 0, 0, 97, 100, 168, 151, 151, - 261, 206, 285, 0, 365, 347, 361, 0, 300, 294, - 12, 20, 0, 331, 332, 0, 0, 0, 200, 102, - 0, 102, 104, 112, 0, 12, 110, 58, 118, 118, - 36, 147, 0, 315, 329, 0, 324, 164, 411, 378, - 373, 0, 387, 386, 0, 399, 401, 400, 0, 0, - 0, 99, 168, 0, 179, 0, 0, 0, 299, 370, - 345, 342, 0, 0, 291, 10, 127, 157, 0, 12, - 125, 27, 32, 0, 0, 105, 0, 0, 10, 118, - 0, 118, 0, 148, 149, 0, 137, 0, 61, 0, - 313, 325, 323, 0, 203, 0, 381, 394, 0, 16, - 179, 101, 0, 183, 184, 185, 188, 187, 186, 178, - 89, 167, 169, 0, 177, 181, 0, 281, 283, 262, - 207, 151, 339, 366, 367, 0, 293, 130, 133, 0, - 10, 197, 103, 55, 52, 113, 0, 0, 0, 0, - 0, 0, 114, 0, 147, 0, 139, 0, 328, 327, - 377, 385, 397, 87, 0, 0, 172, 182, 0, 171, - 0, 0, 341, 295, 135, 0, 0, 21, 30, 0, - 0, 0, 0, 111, 0, 116, 0, 123, 124, 121, - 115, 12, 0, 140, 0, 62, 0, 0, 191, 0, - 81, 0, 346, 343, 0, 0, 0, 0, 134, 126, - 33, 12, 108, 56, 53, 117, 119, 12, 10, 0, - 143, 0, 142, 0, 326, 194, 0, 0, 170, 0, - 0, 347, 0, 12, 0, 0, 0, 10, 12, 10, - 85, 144, 0, 141, 0, 192, 189, 173, 193, 344, - 0, 10, 24, 128, 12, 106, 34, 0, 10, 0, - 146, 63, 0, 0, 0, 0, 10, 109, 145, 0, - 190, 147, 131, 129, 0, 12, 0, 12, 107, 10, - 0, 10, 64, 175, 12, 174, 68, 10, 0, 65, - 67, 69, 176, 0, 70, 71, 0, 0, 72, 0, - 12, 10, 73 + 0, 0, 284, 335, 359, 0, 370, 352, 0, 273, + 0, 0, 299, 289, 352, 297, 0, 0, 151, 0, + 46, 0, 0, 0, 198, 201, 331, 332, 0, 0, + 38, 40, 82, 0, 42, 43, 12, 66, 0, 49, + 0, 161, 332, 0, 44, 0, 0, 45, 0, 74, + 76, 407, 0, 0, 0, 376, 0, 382, 0, 324, + 390, 388, 321, 0, 0, 387, 259, 18, 0, 0, + 276, 320, 0, 86, 96, 410, 348, 346, 0, 0, + 234, 0, 0, 0, 0, 235, 237, 236, 251, 250, + 253, 252, 254, 256, 257, 255, 245, 244, 239, 240, + 238, 241, 242, 243, 258, 0, 204, 221, 220, 219, + 218, 217, 216, 215, 214, 213, 212, 211, 151, 0, + 360, 0, 0, 404, 0, 348, 151, 209, 0, 298, + 19, 0, 0, 150, 331, 332, 195, 0, 0, 31, + 199, 54, 51, 0, 0, 35, 84, 10, 78, 0, + 158, 0, 0, 310, 0, 309, 166, 314, 163, 0, + 0, 408, 400, 401, 9, 0, 373, 0, 372, 386, + 333, 0, 275, 325, 378, 391, 0, 317, 0, 0, + 0, 11, 13, 14, 15, 358, 286, 94, 98, 0, + 0, 280, 282, 347, 231, 233, 0, 227, 229, 0, + 205, 0, 367, 0, 362, 336, 361, 366, 354, 355, + 0, 290, 22, 0, 154, 279, 0, 29, 26, 197, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, + 311, 312, 0, 322, 0, 75, 50, 0, 374, 376, + 0, 0, 381, 0, 380, 0, 393, 0, 394, 396, + 0, 0, 0, 97, 100, 168, 151, 151, 261, 206, + 285, 0, 363, 345, 359, 0, 300, 294, 12, 20, + 0, 331, 332, 0, 0, 0, 200, 102, 0, 102, + 104, 112, 0, 12, 110, 58, 118, 118, 36, 147, + 0, 315, 329, 0, 324, 164, 409, 376, 371, 0, + 385, 384, 0, 397, 399, 398, 0, 0, 0, 99, + 168, 0, 179, 0, 0, 0, 299, 368, 343, 340, + 0, 0, 291, 10, 127, 157, 0, 12, 125, 27, + 32, 0, 0, 105, 0, 0, 10, 118, 0, 118, + 0, 148, 149, 0, 137, 0, 61, 0, 313, 325, + 323, 0, 203, 0, 379, 392, 0, 16, 179, 101, + 0, 183, 184, 185, 188, 187, 186, 178, 89, 167, + 169, 0, 177, 181, 0, 281, 283, 262, 207, 151, + 337, 364, 365, 0, 293, 130, 133, 0, 10, 197, + 103, 55, 52, 113, 0, 0, 0, 0, 0, 0, + 114, 0, 147, 0, 139, 0, 328, 327, 375, 383, + 395, 87, 0, 0, 172, 182, 0, 171, 0, 0, + 339, 295, 135, 0, 0, 21, 30, 0, 0, 0, + 0, 111, 0, 116, 0, 123, 124, 121, 115, 12, + 0, 140, 0, 62, 0, 0, 191, 0, 81, 0, + 344, 341, 0, 0, 0, 0, 134, 126, 33, 12, + 108, 56, 53, 117, 119, 12, 10, 0, 143, 0, + 142, 0, 326, 194, 0, 0, 170, 0, 0, 345, + 0, 12, 0, 0, 0, 10, 12, 10, 85, 144, + 0, 141, 0, 192, 189, 173, 193, 342, 0, 10, + 24, 128, 12, 106, 34, 0, 10, 0, 146, 63, + 0, 0, 0, 0, 10, 109, 145, 0, 190, 147, + 131, 129, 0, 12, 0, 12, 107, 10, 0, 10, + 64, 175, 12, 174, 68, 10, 0, 65, 67, 69, + 176, 0, 70, 71, 0, 0, 72, 0, 12, 10, + 73 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 4, 74, 174, 289, 402, 682, 76, - 434, 546, 490, 607, 243, 496, 138, 495, 440, 611, - 706, 447, 443, 652, 442, 651, 142, 153, 627, 693, - 739, 756, 759, 760, 761, 766, 769, 269, 270, 157, - 77, 78, 254, 79, 148, 448, 80, 409, 295, 81, - 294, 82, 411, 474, 475, 554, 501, 726, 683, 507, - 365, 510, 560, 708, 687, 659, 551, 608, 735, 644, - 747, 647, 676, 565, 566, 567, 353, 354, 160, 161, - 165, 534, 591, 635, 670, 733, 755, 592, 593, 594, - 595, 669, 596, 136, 244, 245, 441, 83, 276, 538, - 233, 304, 305, 300, 302, 303, 537, 111, 84, 239, - 478, 479, 339, 85, 127, 128, 349, 489, 544, 606, - 133, 348, 86, 377, 378, 87, 515, 395, 516, 88, - 89, 390, 462, 90, 222, 91, 340, 485, 602, 642, - 701, 541, 601, 92, 93, 94, 95, 96, 97, 342, - 426, 484, 427, 428, 98, 388, 389, 519, 279, 280, - 172, 286, 467, 528, 99, 273, 458, 100 + -1, 1, 2, 4, 74, 174, 288, 401, 680, 76, + 433, 544, 488, 605, 242, 494, 138, 493, 439, 609, + 704, 446, 442, 650, 441, 649, 142, 153, 625, 691, + 737, 754, 757, 758, 759, 764, 767, 268, 269, 157, + 77, 78, 253, 79, 148, 447, 80, 408, 294, 81, + 293, 82, 410, 472, 473, 552, 499, 724, 681, 505, + 364, 508, 558, 706, 685, 657, 549, 606, 733, 642, + 745, 645, 674, 563, 564, 565, 352, 353, 160, 161, + 165, 532, 589, 633, 668, 731, 753, 590, 591, 592, + 593, 667, 594, 136, 243, 244, 440, 83, 275, 536, + 232, 303, 304, 299, 301, 302, 535, 111, 84, 238, + 476, 477, 338, 85, 127, 128, 348, 487, 542, 604, + 133, 347, 86, 376, 377, 87, 513, 394, 514, 88, + 89, 389, 90, 91, 339, 483, 600, 640, 699, 539, + 599, 92, 93, 94, 95, 96, 97, 341, 425, 482, + 426, 427, 98, 387, 388, 517, 278, 279, 172, 285, + 465, 526, 99, 272, 457, 100 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -456 +#define YYPACT_NINF -433 static const yytype_int16 yypact[] = { - -456, 63, 66, -456, 842, 2902, 2902, -68, 2902, 2902, - 2902, 2902, 2902, 2902, 2902, -456, 2902, 2902, 2902, 2902, - 2902, 2902, 2902, 25, 25, 2902, 28, -54, -52, -456, - -456, 45, -456, -456, -456, -456, 2902, -456, -50, 31, - 51, -456, 57, 1724, 1850, -456, 1976, -456, 2902, 12, - 49, 129, 139, 208, 119, 149, 161, 164, -456, -456, - 166, 174, -456, -456, -456, -456, -456, -456, 2902, -456, - -456, 179, -456, -456, -456, -456, -456, -456, -456, -456, - -456, 257, 266, -456, -456, 207, -456, -456, 3302, -456, - 189, 985, 210, -456, 232, -456, -33, -456, 99, -456, - -456, 3973, 3973, 2902, 3973, 3973, 2155, -456, -456, 302, - -456, 2902, -456, -456, -456, -456, -456, -456, -456, 213, - 216, -456, -456, -456, -456, 219, 220, -456, -456, 242, - -46, 99, 2102, -456, 2902, -456, -3, 3973, 1598, -456, - 2902, 2902, 221, 2902, -456, 3343, -456, 3384, 332, -456, - 222, 3973, 504, 223, 3425, -456, 286, 225, -456, -22, - 0, -456, -456, -456, 356, 4, 25, 25, 25, 233, - -456, 2202, -20, 3466, 229, 2902, 120, 52, 270, -456, - 29, -456, 2902, -456, -456, -456, -456, 2902, 2902, 2902, - 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, - 2902, 2902, 2902, 2902, 2902, 2902, 28, -456, -456, -456, - 2302, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, - 2902, 2902, -456, -456, -456, 2902, 2902, 179, -5, 3507, - -456, 42, 122, 249, -456, -46, -456, 3548, 3589, 2402, - 2902, -456, 309, 2902, 248, 384, 3973, 303, 739, 323, - 3630, -456, -456, -456, 324, -456, -456, -456, -456, 258, - -456, 2902, -456, -456, 49, -456, 546, 325, -456, 10, - -456, -456, -456, 13, 260, 261, 41, 25, 3835, 263, - 394, 80, -456, -456, 3002, 25, -456, -456, -456, 968, - 1906, -456, -456, 335, -456, 289, 268, 269, -46, 99, - 2902, 4050, 2902, 2902, 2902, 2902, 1590, 1715, 1840, 1966, - 1966, 1966, 1966, 1085, 1085, 1085, 1085, 241, 241, 247, - 247, 247, 302, 302, 302, -456, -11, 2155, 2155, 2155, - 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2402, - 22, 3973, 262, 2032, -456, 268, -456, 2402, -456, 22, - -456, 385, 25, 271, 406, 15, 60, 3973, 283, 3671, - -456, -456, -456, -456, 418, 17, -456, -456, 288, -456, - 3058, -456, 546, 546, 294, 298, -456, -456, -456, 421, - 25, 297, -456, -456, -456, -456, 301, -456, 36, -456, - -456, -456, 2502, -456, 2602, -456, -456, 380, 391, 3125, - 311, 317, -456, -456, -456, -456, -456, -456, -456, 337, - 335, 321, -456, -456, -46, 4013, 2155, 3932, 2354, 833, - 28, -456, 318, -456, 2902, -456, -456, -6, -456, -456, - -456, 327, -456, -456, 1598, -456, -456, 2702, -456, -456, - 2902, 2902, 25, 14, 546, 389, 1094, -15, 326, 364, - -456, -456, -456, 399, 546, 546, -456, -456, 25, -456, - 41, 458, -456, 25, 3973, 25, 3876, 95, -456, 2902, - -456, -456, 331, 335, 330, 470, -456, -456, 2402, 2402, - -456, -456, -456, 3176, -456, 339, 2902, 2902, -456, -456, - -456, -456, 25, 39, 362, 2902, 1220, 340, 3973, 360, - 25, 360, -456, -456, 472, -456, -456, -456, 344, 345, - -456, -12, 348, -456, 368, 350, 484, -456, -456, 41, - -456, 2902, -456, -456, 2802, -456, -456, -456, 346, 1780, - 351, 470, -456, 335, 319, 354, 361, 2902, 249, -456, - -456, -456, 349, 3217, 381, 206, -456, -456, 3712, -456, - -456, -456, -456, 14, 363, -456, 365, 546, 416, -456, - 224, -456, 112, -456, -456, 370, 505, 19, -456, 546, - -456, 546, -456, 40, 2155, 25, 3973, -456, 371, -456, - 501, -456, 438, -456, -456, -456, -456, -456, -456, -456, - -456, -456, -456, 417, 203, -456, 5, -456, -456, 2255, - -456, 2402, 409, -456, -456, 22, -456, -456, 202, 392, - 448, 2902, -456, -456, -456, -456, 393, 250, 395, 2902, - -16, 158, -456, 390, 34, 463, 526, 335, -456, 419, - -456, -456, -456, -456, 528, 471, -456, -456, 475, -456, - 402, 22, -456, -456, 231, 408, 1598, -456, -456, 407, - 410, 1346, 1346, -456, 411, -456, 3261, -456, -456, -456, - -456, -456, 30, 537, 546, -456, 546, 546, 544, 8, - 332, 547, -456, -456, 422, 535, 499, 2902, -456, -456, - -456, -456, -456, -456, -456, -456, -456, -456, 427, 500, - 559, 546, -456, 503, -456, -456, 546, 506, -456, 507, - 546, 339, 2902, -456, 432, 3753, 1472, 490, -456, 183, - -456, 567, 546, -456, 440, -456, 569, -456, -456, -456, - 3794, 515, -456, -456, -456, -456, -456, 444, 186, 546, - -456, -456, 546, 447, 564, 1598, 509, -456, -456, 449, - -456, -12, -456, -456, 453, -456, 450, -456, -456, 456, - 177, 267, -456, -456, -456, -456, 496, 469, 462, -456, - 496, -456, -456, 335, -456, -456, 541, 477, -456, 476, - -456, 479, -456 + -433, 70, 83, -433, 789, 2849, 2849, -74, 2849, 2849, + 2849, 2849, 2849, 2849, 2849, -433, 2849, 2849, 2849, 2849, + 2849, 2849, 2849, 29, 29, 2849, 41, -55, -29, -433, + -433, -31, -433, -433, -433, -433, 2849, -433, -25, -20, + 45, -433, 49, 1671, 1797, -433, 1923, -433, 2849, -30, + 15, -27, 54, 107, 62, 102, 104, 106, -433, -433, + 111, 119, -433, -433, -433, -433, -433, -433, 2849, -433, + -433, 53, -433, -433, -433, -433, -433, -433, -433, -433, + -433, 200, 203, -433, -433, 138, -433, -433, 3166, -433, + 46, 1058, 152, -433, 178, -433, 25, -433, 22, -433, + -433, 3838, 3838, 2849, 3838, 3838, 2102, -433, -433, 254, + -433, 2849, -433, -433, -433, -433, -433, -433, -433, 165, + 177, -433, -433, -433, -433, 188, 201, -433, -433, 211, + -50, 22, 2049, -433, 2849, -433, 5, 3838, 1545, -433, + 2849, 2849, 202, 2849, -433, 3208, -433, 3249, 324, -433, + 215, 3838, 58, 217, 3290, -433, 279, 219, -433, -6, + 7, -433, -433, -433, 346, 9, 29, 29, 29, 222, + -433, 2149, 172, 3331, 223, 2849, 197, -34, 247, -433, + 117, -433, 2849, -433, -433, -433, -433, 2849, 2849, 2849, + 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, + 2849, 2849, 2849, 2849, 2849, 2849, 41, -433, -433, -433, + 2249, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, + 2849, 2849, -433, -433, 2849, 2849, 53, 26, 3372, -433, + 121, 56, 226, -433, -50, -433, 3413, 3454, 2349, 2849, + -433, 286, 2849, 240, 375, 3838, 294, 932, 314, 3495, + -433, -433, -433, 316, -433, -433, -433, -433, 250, -433, + 2849, -433, -433, 15, -433, 628, 315, -433, 0, -433, + -433, -433, 34, 251, 261, -15, 29, 3700, 253, 381, + -51, -433, -433, 2949, 29, -433, -433, -433, 915, 779, + -433, -433, 322, -433, 287, 266, 268, -50, 22, 2849, + 3915, 2849, 2849, 2849, 2849, 1537, 1662, 1787, 1913, 1913, + 1913, 1913, 1158, 1158, 1158, 1158, 355, 355, 248, 248, + 248, 254, 254, 254, -433, -10, 2102, 2102, 2102, 2102, + 2102, 2102, 2102, 2102, 2102, 2102, 2102, 2102, 2349, 50, + 3838, 262, 1727, -433, 266, -433, 2349, -433, 50, -433, + 385, 29, 272, 406, 35, 356, 3838, 277, 3536, -433, + -433, -433, -433, 407, 37, -433, -433, 278, -433, 1853, + -433, 628, 628, 284, 285, -433, -433, -433, 413, 29, + 291, -433, -433, -433, -433, 289, -433, 38, -433, -433, + -433, 2449, -433, 2549, -433, -433, 357, 369, 1979, 297, + 305, -433, -433, -433, -433, -433, -433, -433, 327, 322, + 310, -433, -433, -50, 3878, 2102, 3797, 2301, 2400, 41, + -433, 313, -433, 2849, -433, -433, -21, -433, -433, -433, + 317, -433, -433, 1545, -433, -433, 2649, -433, -433, 2849, + 2849, 29, 19, 628, 386, 1041, -12, 319, 361, -433, + -433, -433, 393, 628, 628, -433, -433, 29, -433, -15, + 452, 29, 3838, 29, 3741, 194, -433, 2849, -433, -433, + 325, 322, 326, 460, -433, -433, 2349, 2349, -433, -433, + -433, 3005, -433, 330, 2849, 2849, -433, -433, -433, -433, + 29, 40, 636, 2849, 1167, 329, 3838, 351, 29, 351, + -433, -433, 461, -433, -433, -433, 331, 334, -433, 30, + 339, -433, 360, 341, 476, -433, -433, -15, -433, 2849, + -433, -433, 2749, -433, -433, -433, 337, 545, 345, 460, + -433, 322, 604, 347, 348, 2849, 226, -433, -433, -433, + 342, 3072, 371, 31, -433, -433, 3577, -433, -433, -433, + -433, 19, 354, -433, 358, 628, 409, -433, 252, -433, + 170, -433, -433, 362, 496, 65, -433, 628, -433, 628, + -433, 43, 2102, 29, 3838, -433, 366, -433, 832, -433, + 434, -433, -433, -433, -433, -433, -433, -433, -433, -433, + -433, 414, 216, -433, 10, -433, -433, 2202, -433, 2349, + 392, -433, -433, 50, -433, -433, 190, 364, 430, 2849, + -433, -433, -433, -433, 372, 259, 374, 2849, -17, 192, + -433, 376, 23, 444, 505, 322, -433, 399, -433, -433, + -433, -433, 509, 451, -433, -433, 456, -433, 388, 50, + -433, -433, 221, 390, 1545, -433, -433, 389, 391, 1293, + 1293, -433, 394, -433, 3125, -433, -433, -433, -433, -433, + 85, 521, 628, -433, 628, 628, 524, 12, 324, 526, + -433, -433, 400, 515, 474, 2849, -433, -433, -433, -433, + -433, -433, -433, -433, -433, -433, 404, 470, 536, 628, + -433, 479, -433, -433, 628, 484, -433, 489, 628, 330, + 2849, -433, 419, 3618, 1419, 475, -433, 186, -433, 550, + 628, -433, 423, -433, 552, -433, -433, -433, 3659, 498, + -433, -433, -433, -433, -433, 426, 189, 628, -433, -433, + 628, 431, 567, 1545, 510, -433, -433, 454, -433, 30, + -433, -433, 457, -433, 462, -433, -433, 463, 158, 66, + -433, -433, -433, -433, 497, 465, 464, -433, 497, -433, + -433, 322, -433, -433, 528, 469, -433, 468, -433, 472, + -433 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -456, -456, -456, -456, -456, -149, -456, -456, 2, -456, - -456, -456, -456, -456, -456, -456, -456, -456, -456, -456, - -456, -456, -456, -456, -456, -456, -456, -456, -456, -456, - -456, -456, -456, -456, -140, -456, -456, -456, 244, -456, - 338, 341, -44, -456, -456, -456, -456, -456, -456, -456, - -456, -456, -456, -456, 155, 128, 78, -456, -19, -456, - -456, -456, -455, -456, -456, -21, -456, -456, -456, -456, - -456, -456, -456, -105, -456, 18, -330, -456, -456, 374, - -456, 109, -456, -456, -456, -456, -456, -456, -456, -456, - 50, -456, -456, -456, -436, -456, -456, -32, -456, -456, - -456, -456, -456, -456, -456, -456, -456, -456, -456, -456, - -456, -456, -456, -23, -170, -456, -456, -456, -456, -456, - -456, 105, -1, 111, -456, -456, -456, 133, -456, 21, - 491, -332, -456, 316, -456, 308, -456, -456, -456, -456, - -456, -49, -456, -161, -456, -456, -24, -4, -456, 165, - -342, -456, -456, -456, -2, 134, 194, -456, -456, -456, - 276, -456, -456, -456, -456, -456, -456, -456 + -433, -433, -433, -433, -433, -199, -433, -433, 2, -433, + -433, -433, -433, -433, -433, -433, -433, -433, -433, -433, + -433, -433, -433, -433, -433, -433, -433, -433, -433, -433, + -433, -433, -433, -433, -153, -433, -433, -433, 227, -433, + 332, 335, -56, -433, -433, -433, -433, -433, -433, -433, + -433, -433, -433, -433, 142, 115, 67, -433, -33, -433, + -433, -433, -310, -433, -433, -35, -433, -433, -433, -433, + -433, -433, -433, -117, -433, 4, -315, -433, -433, 365, + -433, 94, -433, -433, -433, -433, -433, -433, -433, -433, + 39, -433, -433, -433, -432, -433, -433, 1, -433, -433, + -433, -433, -433, -433, -433, -433, -433, -433, -433, -433, + -433, -433, -433, -23, -194, -433, -433, -433, -433, -433, + -433, 99, -22, 72, -433, -433, -433, 116, -433, 16, + 477, -335, 288, 283, -433, -433, -433, -433, -433, -62, + -433, -176, -433, -433, -24, -7, -433, 154, -343, -433, + -433, -433, 42, 130, 204, -433, -433, -433, 265, -433, + -433, -433, -433, -433, -433, -433 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -350 +#define YYTABLE_NINF -348 static const yytype_int16 yytable[] = { - 120, 120, 129, 126, 497, 240, 75, 432, 264, 422, - 657, 508, 267, 638, 150, 225, 697, 431, 380, 297, - 435, 382, 130, -152, 131, 445, 101, 102, 225, 104, - 105, 106, 107, 108, 109, 110, 325, 112, 113, 114, - 115, 116, 117, 118, 460, 500, 124, -155, 460, 119, - 625, 33, 420, 281, 562, 486, 225, 137, 282, 563, - 119, 689, 33, 3, 145, 147, -2, 151, -153, 154, - 297, 346, 103, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 119, 132, 33, 134, 173, - 139, 155, 626, 423, 228, 33, 119, 226, 33, 125, - 296, 33, 33, 690, 617, 563, 621, -348, 368, 247, - 226, 564, 119, 345, 33, 33, 283, 284, 285, -335, - -335, 261, 158, 71, 229, 281, 658, 235, 509, -138, - 282, 522, 230, 523, 71, -349, 120, 487, 226, 241, - 242, 396, 265, 120, 120, 120, 268, 639, 535, 536, - 698, 381, 156, 237, 383, 238, -152, 564, 446, 71, - 547, 246, 151, 386, 250, 424, 525, 71, 526, 527, - 71, 140, 33, 71, 71, 650, 298, 461, 299, 425, - -155, 630, 129, 126, -286, 135, 71, 71, 425, 284, - 285, 141, 278, 281, 159, 33, 290, 143, 282, 292, - 397, -153, 130, 301, 131, 619, 620, 355, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 298, 298, 299, - 299, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 631, 227, 162, 341, 343, 208, 209, - 481, 619, 620, 120, 120, 163, 622, 284, 285, 166, - 151, 357, 120, 643, 359, 376, 291, 71, 645, 646, - 408, 640, -23, -23, -23, -122, -122, -122, -120, -120, - -120, 164, 370, 200, 201, 202, 203, 204, 205, 167, - 206, 403, 203, 204, 205, 414, 206, 674, 675, 673, - -180, 168, 660, 120, 169, 399, 170, 355, 583, 584, - 585, 586, 587, 588, 171, 355, 618, 619, 620, 753, - 754, 415, 175, 416, 417, 418, 419, -122, 178, 120, - -120, 122, 122, -132, -132, -132, 298, 179, 299, 121, - 123, 545, 654, 619, 620, 298, 180, 299, 176, 177, - 223, 206, 224, 135, 152, 231, 558, 120, -286, 232, - 151, 249, 234, 253, 255, 259, 257, 260, 151, 266, - -156, 376, 376, 288, 275, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 476, 293, 347, - 360, 358, 361, 362, 364, 367, 129, 126, 379, 369, - 610, 384, 394, 385, 393, 493, 407, 410, 412, 413, - 429, 433, 436, 464, 437, 466, 130, 582, 131, 120, - 120, -335, -335, 438, 583, 584, 585, 586, 587, 588, - 589, 444, 449, 453, 455, 120, 491, 120, 454, 457, - 120, 459, 120, 376, 425, 483, 355, 355, 506, 248, - 476, 468, 469, 376, 376, 471, 473, 472, 151, 482, - 504, 246, 498, 590, 477, 512, 511, 263, 488, 120, - 513, 521, 530, 532, 271, 272, 274, 120, 533, 540, - 425, 553, 552, 451, 452, 557, 559, 561, 568, 569, - 529, 570, 571, 579, 577, 597, 120, 603, 550, 151, - 151, 605, 598, -156, 613, 616, 614, 341, 543, 634, - 581, 623, 688, 624, 636, 632, 548, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 641, - 120, 649, 707, 661, 648, 653, 663, 655, 709, 664, - 666, 667, 574, 672, 668, 576, 671, 356, 677, 679, - 691, 680, 120, 685, 721, 503, 376, 696, 599, 728, - 700, 703, 702, -335, -335, 514, 517, 704, 376, 355, - 376, 710, 712, 711, 722, 736, 714, 727, 717, 716, - 729, 731, 732, -136, 387, 391, 737, 741, 372, 373, - 742, 750, 745, 400, 744, 748, 749, 758, 751, 582, - 752, 298, 763, 299, 665, 757, 583, 584, 585, 586, - 587, 588, 589, 762, 767, 29, 30, 374, 768, 770, - 764, 771, 151, 772, 456, 35, 699, 404, 531, 556, - 405, 612, 246, 684, 421, 686, 746, 298, 371, 299, - 656, 580, 662, 600, 637, 633, 256, 356, 678, 572, - 262, 542, 719, 573, 520, 356, 0, 0, 0, 0, - 391, 0, 0, 376, 0, 376, 376, 0, 615, 375, - 62, 63, 64, 65, 66, 0, 0, 0, 0, 0, - 628, 0, 629, 0, 0, 0, 0, 0, 271, 0, - 376, 0, 0, 0, 0, 376, 0, 0, 705, 376, - 0, 0, 0, 0, 0, 0, 0, 0, 725, 0, - 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 720, 0, 0, 0, 0, 376, 0, - 0, 376, 0, 0, 0, 0, 0, 743, 0, 0, - 765, 0, 0, 0, 0, 494, 0, 0, 0, 0, - 499, 502, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 0, 0, 518, 0, 387, 0, - 0, 391, 0, 391, 0, 692, 0, 694, 695, 0, - 0, 0, 0, 0, 0, 0, 356, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -335, -335, - 391, 0, 713, 0, 0, 0, 0, 715, 555, 0, - 0, 718, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 730, 0, 0, 0, 387, 0, 363, + 120, 120, 129, 126, 296, 431, 75, 495, 379, 655, + 395, 224, 324, 239, 506, 263, 434, 266, 636, 130, + 695, 101, 102, 421, 104, 105, 106, 107, 108, 109, + 110, 430, 112, 113, 114, 115, 116, 117, 118, 280, + 484, 124, 381, -152, 281, 444, 459, 150, -155, 155, + 498, 459, 137, 419, 296, 345, 119, 367, 33, 145, + 147, 119, 151, 33, 154, 119, 103, 33, 131, 396, + 3, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, -2, 173, 132, 224, 224, 158, 162, + 119, 227, 33, 225, 561, 33, 623, -23, -23, -23, + 119, 561, 33, 283, 284, 208, 209, 385, -286, 135, + 156, 134, 125, 291, 33, 139, 687, -334, -334, 228, + 140, 422, 485, 33, 234, 656, 520, 229, 521, 33, + 71, 507, -132, -132, -132, 71, 120, 260, 624, 71, + 241, 380, 246, 120, 120, 120, 562, 240, 236, 264, + 237, 267, 637, 562, 696, 545, 245, 151, 688, 249, + 159, 533, 534, 424, 71, -346, -347, 226, 225, 225, + 163, -138, 424, 297, 71, 382, -152, 648, 445, 460, + 164, -155, 129, 126, 628, 141, 71, 277, 295, 143, + 33, 289, 344, 423, 33, 71, 175, 560, 300, 130, + 255, 71, 166, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 298, 297, 297, 479, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 629, 354, + 340, 342, 167, 375, 168, 280, 169, 615, 131, 619, + 281, 170, 120, 120, 151, 356, 643, 644, 358, 171, + 641, 120, 71, 617, 618, 523, 71, 524, 525, 407, + 280, 178, 298, 298, 179, 281, 369, 180, -122, -122, + -122, -120, -120, -120, 638, 617, 618, 672, 673, 543, + 402, 413, 222, 203, 204, 205, 671, 206, 223, 398, + 751, 752, 120, 206, 556, 135, 122, 122, 282, 283, + 284, 121, 123, -180, 620, 414, 230, 415, 416, 417, + 418, 581, 582, 583, 584, 585, 586, -286, 120, 152, + -122, 233, 297, -120, 283, 284, 658, 176, 177, 354, + 231, 297, 248, 290, 616, 617, 618, 354, 608, 375, + 375, 652, 617, 618, 151, 252, 120, 254, 258, 265, + 256, 259, 151, 274, -153, 292, 346, 287, 357, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 298, 359, 360, 361, 363, 474, 366, 378, 393, + 298, 368, 383, 406, 392, 129, 126, 200, 201, 202, + 203, 204, 205, 384, 206, 409, 411, 462, 412, 464, + 428, 432, 130, 435, 436, -334, -334, 437, 120, 120, + 443, 375, 448, 452, 247, 453, 454, 424, 466, 458, + 467, 375, 375, 456, 120, 489, 120, 491, 120, 481, + 120, 469, 262, 450, 451, 470, 471, 504, 474, 270, + 271, 273, 151, 475, 480, 245, 496, 502, 486, 509, + 686, 131, 510, 424, 511, 519, 528, 120, 531, 530, + 538, 550, 551, 557, 555, 120, 559, 354, 354, 566, + 705, 567, 568, 527, 569, 575, 707, 577, 595, 596, + 601, 603, 151, 151, 120, 611, 548, -153, 614, 612, + 340, 541, 719, 621, 622, 632, 646, 726, 579, 546, + 630, 634, 639, 647, 651, 501, 653, 661, 662, 659, + 664, 355, 665, 734, 666, 512, 515, 669, 120, 670, + 675, 677, 678, 375, 689, 572, 683, 694, 574, 698, + 700, 701, 702, 709, 747, 375, 749, 375, 708, 710, + 120, 597, 712, 755, 181, 182, 183, 714, 386, 390, + 715, 720, 725, 727, 729, 730, -136, 399, 735, 769, + 184, 739, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 740, 206, 742, 297, 743, 756, 746, + 354, 765, 663, 748, 761, 762, 455, 750, 420, 760, + 766, 768, 697, 529, 554, 151, 770, 682, 610, 684, + 403, 355, 744, 404, 578, 245, 660, 613, 370, 355, + 570, 635, 297, 654, 390, 598, 261, 717, 540, 626, + 375, 627, 375, 375, -156, 298, 676, 571, 0, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 0, 270, 518, 0, 0, 0, 375, 0, 0, + 371, 372, 375, 0, 0, 0, 375, 0, 0, 0, + 0, 298, 0, 0, 0, 0, 0, 0, 375, 0, + 0, 703, 0, 576, 0, -334, -334, 29, 30, 373, + 0, 0, 580, 0, 0, 375, 723, 35, 375, 581, + 582, 583, 584, 585, 586, 587, 718, 0, 0, 492, + 0, 0, 0, 0, 497, 500, 0, 0, 0, 0, + 0, 0, 0, 0, 690, 741, 692, 693, 763, 0, + 516, 0, 386, 0, 390, 0, 390, 0, 588, 0, + 0, 374, 62, 63, 64, 65, 66, 0, 0, 355, + 355, 711, 0, 0, 0, 0, 713, 0, 0, 0, + 716, 0, 0, 390, 0, 0, 0, -156, 0, 0, + 0, 553, 728, 0, 0, 0, 0, 0, 181, 182, + 183, 0, 5, 6, 7, 8, 9, 0, 0, 736, + 386, 10, 738, 0, 184, 0, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 0, 206, 0, + 0, 11, 12, 0, 500, 0, 0, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 28, 0, 390, 0, 29, 30, + 31, 32, 33, 0, 34, 0, 0, 0, 35, 36, + 37, 38, 0, 39, 0, 40, 0, 41, 0, 0, + 42, 0, 355, 0, 43, 44, 45, 0, 46, 47, + 0, 48, 49, 50, 0, 0, 0, 51, 52, 53, + 0, 54, 55, 56, 57, 58, 59, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 5, 6, + 7, 8, 9, 405, 67, 0, 0, 10, 0, 68, + 580, 69, 70, 0, 71, 72, 73, 581, 582, 583, + 584, 585, 586, 587, 0, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 11, 12, 0, + 0, 0, 0, 13, 0, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 631, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, -334, -334, 0, 35, 36, 37, 38, 0, 39, + 0, 40, 0, 41, 0, 0, 42, 0, 0, 0, + 43, 44, 45, 0, 46, 47, 0, 48, 49, 50, + 0, 0, 362, 51, 52, 53, 0, 54, 55, 56, + 400, 58, 59, 0, 0, 0, 0, 60, 61, 62, + 63, 64, 65, 66, 5, 6, 7, 8, 9, 0, + 67, 0, 0, 10, 0, 68, 0, 69, 70, 0, + 71, 72, 73, 0, 0, 0, 0, 503, 0, 0, + 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 11, 12, 0, 0, 0, 0, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 0, 25, 26, 27, 28, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 34, -334, -334, 0, + 35, 36, 37, 38, 0, 39, 0, 40, 0, 41, + 0, 0, 42, 0, 0, 0, 43, 44, 0, 0, + 46, 47, 0, 48, 49, 50, 0, 0, 0, 0, + 0, 53, 0, 54, 55, 56, 0, 0, 0, 0, + 0, 0, 0, 60, 61, 62, 63, 64, 65, 66, + 5, 6, 7, 8, 9, 0, 67, 0, 0, 10, + 0, 68, 0, 69, 70, 0, 71, 72, 73, 0, + 0, 0, 0, 547, -348, -348, -348, -348, 198, 199, + 200, 201, 202, 203, 204, 205, 0, 206, 0, 11, + 12, 0, 0, 0, 0, 13, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 0, 25, + 26, 27, 28, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 34, 0, 0, 0, 35, 36, 37, 38, + 0, 39, 0, 40, 0, 41, 0, 0, 42, 0, + 0, 0, 43, 44, 0, 0, 46, 47, 0, 48, + 49, 50, 0, 0, 0, 0, 0, 53, 0, 54, + 55, 56, 0, 0, 0, 0, 0, 0, 0, 60, + 61, 62, 63, 64, 65, 66, 5, 6, 7, 8, + 9, 0, 67, 0, 0, 10, 0, 68, 0, 69, + 70, 0, 71, 72, 73, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 738, 0, 0, 740, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, - 0, 502, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 0, 206, 391, 11, 12, 0, 0, 0, 0, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 28, 0, 356, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 0, 39, 0, 40, 0, - 41, 0, 0, 42, 0, 0, 0, 43, 44, 45, - 0, 46, 47, 0, 48, 49, 50, 0, 0, 0, - 51, 52, 53, 0, 54, 55, 56, 57, 58, 59, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 5, 6, 7, 8, 9, 0, 67, 0, 0, - 10, 0, 68, 0, 69, 70, 0, 71, 72, 73, - 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 11, 12, 0, 0, 0, 0, 13, 0, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, - 25, 26, 27, 28, 0, 0, 0, 29, 30, 31, - 32, 33, 0, 34, -335, -335, 0, 35, 36, 37, - 38, 0, 39, 0, 40, 0, 41, 0, 0, 42, - 0, 0, 0, 43, 44, 45, 0, 46, 47, 0, - 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, - 54, 55, 56, 401, 58, 59, 0, 0, 0, 0, - 60, 61, 62, 63, 64, 65, 66, 5, 6, 7, - 8, 9, 0, 67, 0, 0, 10, 0, 68, 0, - 69, 70, 0, 71, 72, 73, 0, 0, 0, 0, - 505, -350, -350, -350, -350, 198, 199, 200, 201, 202, - 203, 204, 205, 0, 206, 0, 11, 12, 0, 0, - 0, 0, 13, 0, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 0, 25, 26, 27, 28, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 34, - 0, 0, 0, 35, 36, 37, 38, 0, 39, 0, - 40, 0, 41, 0, 0, 42, 0, 0, 0, 43, - 44, 0, 0, 46, 47, 0, 48, 49, 50, 0, - 0, 0, 0, 0, 53, 0, 54, 55, 56, 0, - 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, - 64, 65, 66, 5, 6, 7, 8, 9, 0, 67, - 0, 0, 10, 0, 68, 0, 69, 70, 0, 71, - 72, 73, 0, 0, 0, 0, 549, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, + 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 0, 25, 26, 27, 28, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 34, 0, + 0, 0, 35, 36, 37, 38, 0, 39, 0, 40, + 0, 41, 0, 0, 42, 0, 0, 0, 43, 44, + 0, 0, 46, 47, 0, 48, 49, 50, 0, 0, + 0, 0, 0, 53, 0, 54, 55, 56, 0, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 65, 66, 5, 6, 7, 8, 9, 0, 67, 0, + 0, 10, 0, 68, 0, 69, 70, 0, 71, 72, + 73, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 0, 25, 26, 27, 28, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 34, 0, 0, 0, 35, - 36, 37, 38, 0, 39, 0, 40, 0, 41, 0, - 0, 42, 0, 0, 0, 43, 44, 0, 0, 46, - 47, 0, 48, 49, 50, 0, 0, 0, 0, 0, - 53, 0, 54, 55, 56, 0, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 65, 66, 5, - 6, 7, 8, 9, 0, 67, 0, 0, 10, 0, - 68, 0, 69, 70, 0, 71, 72, 73, 0, 0, - 0, 0, 681, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 0, 0, 0, 0, 13, 0, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 0, 25, 26, - 27, 28, 0, 0, 0, 29, 30, 31, 32, 33, - 0, 34, 0, 0, 0, 35, 36, 37, 38, 0, - 39, 0, 40, 0, 41, 0, 0, 42, 0, 0, - 0, 43, 44, 0, 0, 46, 47, 0, 48, 49, - 50, 0, 0, 0, 0, 0, 53, 0, 54, 55, - 56, 0, 0, 0, 0, 0, 0, 0, 60, 61, - 62, 63, 64, 65, 66, 5, 6, 7, 8, 9, - 0, 67, 0, 0, 10, 0, 68, 0, 69, 70, - 0, 71, 72, 73, 0, 0, 0, 0, 724, 0, + 0, 11, 12, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 28, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 34, 0, 0, 0, 35, 36, + 37, 38, 0, 39, 0, 40, 0, 41, 0, 0, + 42, 0, 0, 0, 43, 44, 0, 0, 46, 47, + 0, 48, 49, 50, 0, 0, 0, 0, 0, 53, + 0, 54, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 5, 6, + 7, 8, 9, 0, 67, 0, 0, 10, 0, 68, + 0, 69, 70, 0, 71, 72, 73, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 0, 206, 11, 12, 0, + 0, 0, 0, 13, 0, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 0, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, 0, 0, 0, 35, 36, 37, 38, 0, 39, + 0, 40, 0, 41, 0, 0, 42, 0, 0, 0, + 43, 44, 0, 0, 46, 47, 0, 48, 49, 50, + 0, 0, 0, 0, 0, 53, 0, 54, 55, 56, + 0, 0, 0, 0, 0, 0, 0, 60, 61, 62, + 63, 64, 65, 66, 5, 6, 7, 8, 9, 0, + 67, 0, 0, 10, 0, 68, 0, 69, 70, 0, + 71, 72, 73, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 0, 206, 0, 11, 12, 0, 0, 0, 0, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 0, 25, 26, 27, 181, 182, 183, 0, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 35, 0, 184, 0, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 0, 206, 0, 0, 0, + 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, + 0, 0, 0, 60, 61, 62, 63, 64, 65, 66, + 5, 6, 7, 8, 9, 0, 67, 0, 0, 10, + 0, 68, 0, 144, 0, 0, 71, 72, 73, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 0, 206, 0, 0, 11, + 12, 0, 0, 0, 0, 13, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 0, 25, + 26, 27, 181, 182, 183, 0, 29, 30, 31, 32, + 33, 429, 0, 0, 0, 0, 35, 0, 184, 0, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 0, 206, 0, 0, 0, 0, 0, 0, 0, + 55, 56, 0, 0, 0, 0, 0, 0, 0, 60, + 61, 62, 63, 64, 65, 66, 5, 6, 7, 8, + 9, 0, 67, 0, 0, 10, 0, 68, 0, 146, + 0, 0, 71, 72, 73, -348, -348, -348, -348, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 0, 206, 0, 0, 11, 12, 0, 0, 0, + 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 0, 25, 26, 27, 181, 182, + 183, 0, 29, 30, 31, 32, 33, 449, 0, 0, + 0, 0, 35, 0, 184, 0, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 0, 206, 0, + 0, 0, 0, 0, 0, 0, 55, 56, 0, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 65, 66, 5, 6, 7, 8, 9, 0, 67, 0, + 0, 10, 0, 68, 0, 149, 0, 0, 71, 72, + 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 28, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 0, 39, 0, 40, 0, - 41, 0, 0, 42, 0, 0, 0, 43, 44, 0, - 0, 46, 47, 0, 48, 49, 50, 0, 0, 0, - 0, 0, 53, 0, 54, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 5, 6, 7, 8, 9, 0, 67, 0, 0, - 10, 0, 68, 0, 69, 70, 0, 71, 72, 73, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, - 11, 12, 0, 0, 0, 0, 13, 0, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, - 25, 26, 27, 28, 0, 0, 0, 29, 30, 31, - 32, 33, 0, 34, 0, 0, 0, 35, 36, 37, - 38, 0, 39, 0, 40, 0, 41, 0, 0, 42, - 0, 0, 0, 43, 44, 0, 0, 46, 47, 0, - 48, 49, 50, 0, 0, 0, 0, 0, 53, 0, - 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, - 60, 61, 62, 63, 64, 65, 66, 5, 6, 7, - 8, 9, 0, 67, 0, 0, 10, 0, 68, 0, - 69, 70, 0, 71, 72, 73, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 0, 206, 0, 11, 12, 0, 0, - 0, 0, 13, 0, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 0, 25, 26, 27, 181, - 182, 183, 0, 29, 30, 31, 32, 33, 0, 0, - 0, 0, 0, 35, 0, 184, 0, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, - 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, - 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, - 64, 65, 66, 5, 6, 7, 8, 9, 0, 67, - 0, 0, 10, 0, 68, 0, 144, 0, 0, 71, - 72, 73, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, - 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 0, 25, 26, 27, 181, 182, 183, 0, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 578, 35, - 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 0, 206, 0, 0, 0, 0, - 0, 0, 0, 55, 56, 0, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 65, 66, 5, - 6, 7, 8, 9, 0, 67, 0, 0, 10, 0, - 68, 0, 146, 0, 0, 71, 72, 73, -350, -350, - -350, -350, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 0, 206, 0, 0, 11, 12, - 0, 0, 0, 0, 13, 0, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 0, 25, 26, - 27, 181, 182, 183, 0, 29, 30, 31, 32, 33, - 406, 0, 0, 0, 0, 35, 0, 184, 0, 185, + 0, 11, 12, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 468, 0, 0, 0, 184, 35, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 0, 206, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 276, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 235, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 0, 206, 0, 0, 0, 0, 0, 0, 0, 55, - 56, 0, 0, 0, 0, 0, 0, 0, 60, 61, - 62, 63, 64, 65, 66, 5, 6, 7, 8, 9, - 0, 67, 0, 0, 10, 0, 68, 0, 149, 0, - 0, 71, 72, 73, 0, 0, 0, 0, 0, 0, + 0, 206, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 325, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, + 206, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 351, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, + 0, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 461, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 430, 0, 0, 0, - 184, 35, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 0, 206, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 277, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 236, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 0, 206, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 326, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 0, 206, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 352, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 463, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 463, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 465, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 492, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 490, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 575, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 0, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 573, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 0, 0, 0, 0, 67, 0, 0, - 0, 0, 68, 0, 11, 12, 0, 71, 72, 73, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 25, 26, 27, 181, 182, 183, - 0, 29, 30, 31, 398, 33, 0, 0, 0, 0, - 0, 35, 0, 184, 0, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 0, 206, 0, 0, - 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, - 0, 0, 0, 0, 60, 61, 62, 63, 64, 65, - 66, 0, 0, 0, 181, 182, 183, 67, 0, 0, - 0, 0, 68, 0, 0, 0, 0, 71, 72, 73, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 0, 10, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 0, 68, + 0, 11, 12, 0, 71, 72, 73, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 25, 26, 27, 181, 182, 183, 0, 29, 30, + 31, 397, 33, 0, 0, 0, 0, 0, 35, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 181, 182, 183, 0, 0, + 0, 0, 55, 56, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 0, 181, 182, 183, 67, 0, 0, 0, 0, 68, + 0, 0, 0, 0, 71, 72, 73, 184, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 182, 183, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, + 184, 655, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 450, 185, 186, 187, 188, 189, 190, 191, + 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, + 202, 203, 204, 205, 0, 206, 602, 181, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 0, 206, 0, 0, 470, + 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, + 183, 0, 0, 0, 0, 0, 0, 656, 0, 0, + 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, + 182, 183, 0, 0, 0, 0, 0, 0, 207, 0, + 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 657, 185, 186, + 250, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, 0, 0, 0, - 539, 0, 0, 0, 0, 0, 0, 184, 0, 185, + 0, 251, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, 0, 0, - 0, 604, 0, 0, 0, 0, 0, 0, 184, 0, + 0, 0, 257, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, 0, - 0, 0, 0, 658, 0, 0, 0, 0, 0, 184, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, - 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, + 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, - 0, 0, 0, 0, 0, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, 0, - 0, 0, 0, 0, 0, 0, 252, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, + 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, 182, - 183, 0, 0, 0, 0, 0, 0, 287, 0, 0, + 183, 0, 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 181, - 182, 183, 0, 0, 0, 0, 0, 0, 344, 0, + 182, 183, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, - 181, 182, 183, 0, 0, 0, 0, 0, 0, 350, + 181, 182, 183, 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, - 206, 181, 182, 183, 0, 0, 0, 0, 0, 0, - 351, 0, 0, 0, 0, 0, 0, 184, 0, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 0, 206, 181, 182, 183, 0, 0, 0, 0, 0, - 0, 366, 0, 0, 0, 0, 0, 0, 184, 0, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 0, 206, 181, 182, 183, 0, 0, 0, 0, - 0, 0, 439, 0, 0, 0, 0, 0, 0, 184, - 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 0, 206, 181, 182, 183, 0, 0, 0, - 0, 0, 0, 609, 0, 0, 0, 0, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 732, 0, 0, 0, 0, 0, 181, 182, 183, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 391, 184, 478, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 0, 206, 181, 182, 183, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 522, 184, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 0, 206, 182, 183, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 183, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 0, 206, 181, 182, 183, 0, 0, - 0, 0, 0, 0, 723, 0, 0, 0, 0, 0, - 0, 184, 0, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 0, 206, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, - 0, 181, 182, 183, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 392, 184, 480, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 0, 206, 181, 182, 183, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 524, 184, 0, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 0, 206, 182, 183, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 183, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 184, 0, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 0, 206 + 203, 204, 205, 0, 206 }; static const yytype_int16 yycheck[] = { - 23, 24, 26, 26, 440, 8, 4, 349, 8, 339, - 26, 26, 8, 8, 46, 61, 8, 347, 8, 180, - 352, 8, 26, 8, 26, 8, 5, 6, 61, 8, - 9, 10, 11, 12, 13, 14, 206, 16, 17, 18, - 19, 20, 21, 22, 8, 31, 25, 8, 8, 71, - 31, 73, 63, 73, 509, 61, 61, 36, 78, 71, - 71, 31, 73, 0, 43, 44, 0, 46, 8, 48, - 231, 232, 140, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 71, 140, 73, 140, 68, - 140, 79, 73, 71, 98, 73, 71, 143, 73, 71, - 71, 73, 73, 73, 559, 71, 561, 140, 257, 141, - 143, 123, 71, 71, 73, 73, 136, 137, 138, 59, - 60, 143, 73, 145, 103, 73, 142, 131, 143, 141, - 78, 463, 111, 465, 145, 140, 159, 143, 143, 142, - 138, 61, 142, 166, 167, 168, 142, 142, 478, 479, - 142, 141, 140, 132, 141, 134, 141, 123, 141, 145, - 492, 140, 141, 122, 143, 143, 71, 145, 73, 74, - 145, 140, 73, 145, 145, 611, 180, 141, 180, 340, - 141, 141, 206, 206, 139, 140, 145, 145, 349, 137, - 138, 140, 171, 73, 145, 73, 175, 140, 78, 147, - 120, 141, 206, 182, 206, 93, 94, 239, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 231, 232, 231, - 232, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 575, 145, 116, 225, 226, 59, 60, - 420, 93, 94, 276, 277, 116, 144, 137, 138, 140, - 239, 240, 285, 605, 243, 266, 146, 145, 66, 67, - 293, 601, 66, 67, 68, 92, 93, 94, 92, 93, - 94, 73, 261, 42, 43, 44, 45, 46, 47, 140, - 49, 289, 45, 46, 47, 299, 49, 66, 67, 641, - 97, 140, 144, 326, 140, 284, 140, 339, 105, 106, - 107, 108, 109, 110, 140, 347, 92, 93, 94, 142, - 143, 300, 143, 302, 303, 304, 305, 144, 71, 352, - 144, 23, 24, 66, 67, 68, 340, 71, 340, 23, - 24, 490, 92, 93, 94, 349, 139, 349, 72, 73, - 140, 49, 120, 140, 46, 139, 505, 380, 139, 139, - 339, 140, 120, 31, 142, 79, 143, 142, 347, 13, - 8, 372, 373, 144, 141, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 410, 118, 140, - 142, 82, 8, 90, 71, 71, 420, 420, 73, 141, - 549, 141, 8, 142, 141, 437, 71, 118, 140, 140, - 148, 26, 141, 392, 8, 394, 420, 98, 420, 442, - 443, 59, 60, 140, 105, 106, 107, 108, 109, 110, - 111, 13, 144, 139, 13, 458, 434, 460, 140, 142, - 463, 140, 465, 444, 605, 424, 478, 479, 446, 141, - 473, 71, 61, 454, 455, 144, 119, 140, 437, 141, - 71, 440, 441, 144, 143, 101, 140, 159, 141, 492, - 71, 13, 141, 143, 166, 167, 168, 500, 8, 140, - 641, 121, 142, 372, 373, 13, 142, 142, 140, 121, - 469, 141, 8, 142, 148, 141, 519, 148, 496, 478, - 479, 120, 141, 141, 141, 89, 141, 486, 487, 71, - 533, 141, 661, 8, 97, 144, 495, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 120, - 553, 83, 681, 143, 142, 142, 73, 142, 687, 13, - 121, 13, 521, 141, 73, 524, 71, 239, 140, 142, - 13, 141, 575, 142, 703, 444, 557, 13, 537, 708, - 13, 26, 140, 59, 60, 454, 455, 68, 569, 601, - 571, 144, 13, 73, 142, 724, 73, 87, 71, 73, - 13, 141, 13, 68, 276, 277, 142, 140, 42, 43, - 26, 141, 143, 285, 85, 142, 745, 101, 747, 98, - 144, 605, 140, 605, 627, 754, 105, 106, 107, 108, - 109, 110, 111, 144, 73, 69, 70, 71, 141, 143, - 760, 770, 601, 144, 380, 79, 670, 289, 473, 501, - 289, 553, 611, 652, 326, 656, 741, 641, 264, 641, - 619, 532, 624, 538, 594, 144, 142, 339, 646, 516, - 159, 486, 701, 519, 460, 347, -1, -1, -1, -1, - 352, -1, -1, 664, -1, 666, 667, -1, 557, 123, - 124, 125, 126, 127, 128, -1, -1, -1, -1, -1, - 569, -1, 571, -1, -1, -1, -1, -1, 380, -1, - 691, -1, -1, -1, -1, 696, -1, -1, 677, 700, - -1, -1, -1, -1, -1, -1, -1, -1, 706, -1, - -1, 712, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 702, -1, -1, -1, -1, 729, -1, - -1, 732, -1, -1, -1, -1, -1, 735, -1, -1, - 763, -1, -1, -1, -1, 437, -1, -1, -1, -1, - 442, 443, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, -1, -1, 458, -1, 460, -1, - -1, 463, -1, 465, -1, 664, -1, 666, 667, -1, - -1, -1, -1, -1, -1, -1, 478, 479, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 492, -1, 691, -1, -1, -1, -1, 696, 500, -1, - -1, 700, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 712, -1, -1, -1, 519, -1, 90, + 23, 24, 26, 26, 180, 348, 4, 439, 8, 26, + 61, 61, 206, 8, 26, 8, 351, 8, 8, 26, + 8, 5, 6, 338, 8, 9, 10, 11, 12, 13, + 14, 346, 16, 17, 18, 19, 20, 21, 22, 73, + 61, 25, 8, 8, 78, 8, 8, 46, 8, 79, + 31, 8, 36, 63, 230, 231, 71, 256, 73, 43, + 44, 71, 46, 73, 48, 71, 140, 73, 26, 120, + 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 0, 68, 140, 61, 61, 73, 116, + 71, 98, 73, 143, 71, 73, 31, 66, 67, 68, + 71, 71, 73, 137, 138, 59, 60, 122, 139, 140, + 140, 140, 71, 147, 73, 140, 31, 59, 60, 103, + 140, 71, 143, 73, 131, 142, 461, 111, 463, 73, + 145, 143, 66, 67, 68, 145, 159, 143, 73, 145, + 138, 141, 141, 166, 167, 168, 123, 142, 132, 142, + 134, 142, 142, 123, 142, 490, 140, 141, 73, 143, + 145, 476, 477, 339, 145, 140, 140, 145, 143, 143, + 116, 141, 348, 180, 145, 141, 141, 609, 141, 141, + 73, 141, 206, 206, 141, 140, 145, 171, 71, 140, + 73, 175, 71, 143, 73, 145, 143, 507, 182, 206, + 142, 145, 140, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 180, 230, 231, 419, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 573, 238, + 224, 225, 140, 265, 140, 73, 140, 557, 206, 559, + 78, 140, 275, 276, 238, 239, 66, 67, 242, 140, + 603, 284, 145, 93, 94, 71, 145, 73, 74, 292, + 73, 71, 230, 231, 71, 78, 260, 139, 92, 93, + 94, 92, 93, 94, 599, 93, 94, 66, 67, 488, + 288, 298, 140, 45, 46, 47, 639, 49, 120, 283, + 142, 143, 325, 49, 503, 140, 23, 24, 136, 137, + 138, 23, 24, 97, 144, 299, 139, 301, 302, 303, + 304, 105, 106, 107, 108, 109, 110, 139, 351, 46, + 144, 120, 339, 144, 137, 138, 144, 72, 73, 338, + 139, 348, 140, 146, 92, 93, 94, 346, 547, 371, + 372, 92, 93, 94, 338, 31, 379, 142, 79, 13, + 143, 142, 346, 141, 8, 118, 140, 144, 82, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 339, 142, 8, 90, 71, 409, 71, 73, 8, + 348, 141, 141, 71, 141, 419, 419, 42, 43, 44, + 45, 46, 47, 142, 49, 118, 140, 391, 140, 393, + 148, 26, 419, 141, 8, 59, 60, 140, 441, 442, + 13, 443, 144, 139, 141, 140, 13, 603, 71, 140, + 61, 453, 454, 142, 457, 433, 459, 436, 461, 423, + 463, 144, 159, 371, 372, 140, 119, 445, 471, 166, + 167, 168, 436, 143, 141, 439, 440, 71, 141, 140, + 659, 419, 101, 639, 71, 13, 141, 490, 8, 143, + 140, 142, 121, 142, 13, 498, 142, 476, 477, 140, + 679, 121, 141, 467, 8, 148, 685, 142, 141, 141, + 148, 120, 476, 477, 517, 141, 494, 141, 89, 141, + 484, 485, 701, 141, 8, 71, 142, 706, 531, 493, + 144, 97, 120, 83, 142, 443, 142, 73, 13, 143, + 121, 238, 13, 722, 73, 453, 454, 71, 551, 141, + 140, 142, 141, 555, 13, 519, 142, 13, 522, 13, + 140, 26, 68, 73, 743, 567, 745, 569, 144, 13, + 573, 535, 73, 752, 9, 10, 11, 73, 275, 276, + 71, 142, 87, 13, 141, 13, 68, 284, 142, 768, + 25, 140, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 26, 49, 85, 603, 143, 101, 142, + 599, 73, 625, 141, 140, 758, 379, 144, 325, 144, + 141, 143, 668, 471, 499, 599, 144, 650, 551, 654, + 288, 338, 739, 288, 530, 609, 622, 555, 263, 346, + 514, 592, 639, 617, 351, 536, 159, 699, 484, 567, + 662, 569, 664, 665, 8, 603, 644, 517, -1, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, -1, 379, 459, -1, -1, -1, 689, -1, -1, + 42, 43, 694, -1, -1, -1, 698, -1, -1, -1, + -1, 639, -1, -1, -1, -1, -1, -1, 710, -1, + -1, 675, -1, 148, -1, 59, 60, 69, 70, 71, + -1, -1, 98, -1, -1, 727, 704, 79, 730, 105, + 106, 107, 108, 109, 110, 111, 700, -1, -1, 436, + -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, + -1, -1, -1, -1, 662, 733, 664, 665, 761, -1, + 457, -1, 459, -1, 461, -1, 463, -1, 144, -1, + -1, 123, 124, 125, 126, 127, 128, -1, -1, 476, + 477, 689, -1, -1, -1, -1, 694, -1, -1, -1, + 698, -1, -1, 490, -1, -1, -1, 141, -1, -1, + -1, 498, 710, -1, -1, -1, -1, -1, 9, 10, + 11, -1, 3, 4, 5, 6, 7, -1, -1, 727, + 517, 12, 730, -1, 25, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, + -1, 42, 43, -1, 551, -1, -1, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, 65, -1, 573, -1, 69, 70, + 71, 72, 73, -1, 75, -1, -1, -1, 79, 80, + 81, 82, -1, 84, -1, 86, -1, 88, -1, -1, + 91, -1, 599, -1, 95, 96, 97, -1, 99, 100, + -1, 102, 103, 104, -1, -1, -1, 108, 109, 110, + -1, 112, 113, 114, 115, 116, 117, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, 3, 4, + 5, 6, 7, 144, 135, -1, -1, 12, -1, 140, + 98, 142, 143, -1, 145, 146, 147, 105, 106, 107, + 108, 109, 110, 111, -1, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 42, 43, -1, + -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 144, 62, 63, 64, + 65, -1, -1, -1, 69, 70, 71, 72, 73, -1, + 75, 59, 60, -1, 79, 80, 81, 82, -1, 84, + -1, 86, -1, 88, -1, -1, 91, -1, -1, -1, + 95, 96, 97, -1, 99, 100, -1, 102, 103, 104, + -1, -1, 90, 108, 109, 110, -1, 112, 113, 114, + 115, 116, 117, -1, -1, -1, -1, 122, 123, 124, + 125, 126, 127, 128, 3, 4, 5, 6, 7, -1, + 135, -1, -1, 12, -1, 140, -1, 142, 143, -1, + 145, 146, 147, -1, -1, -1, -1, 26, -1, -1, + -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 42, 43, -1, -1, -1, -1, 48, + -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, -1, -1, -1, + 69, 70, 71, 72, 73, -1, 75, 59, 60, -1, + 79, 80, 81, 82, -1, 84, -1, 86, -1, 88, + -1, -1, 91, -1, -1, -1, 95, 96, -1, -1, + 99, 100, -1, 102, 103, 104, -1, -1, -1, -1, + -1, 110, -1, 112, 113, 114, -1, -1, -1, -1, + -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, + 3, 4, 5, 6, 7, -1, 135, -1, -1, 12, + -1, 140, -1, 142, 143, -1, 145, 146, 147, -1, + -1, -1, -1, 26, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, -1, 49, -1, 42, + 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, + 73, -1, 75, -1, -1, -1, 79, 80, 81, 82, + -1, 84, -1, 86, -1, 88, -1, -1, 91, -1, + -1, -1, 95, 96, -1, -1, 99, 100, -1, 102, + 103, 104, -1, -1, -1, -1, -1, 110, -1, 112, + 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, + 123, 124, 125, 126, 127, 128, 3, 4, 5, 6, + 7, -1, 135, -1, -1, 12, -1, 140, -1, 142, + 143, -1, 145, 146, 147, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 729, -1, -1, 732, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, - -1, 553, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, -1, 49, 575, 42, 43, -1, -1, -1, -1, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, 65, -1, 601, - -1, 69, 70, 71, 72, 73, -1, 75, -1, -1, - -1, 79, 80, 81, 82, -1, 84, -1, 86, -1, - 88, -1, -1, 91, -1, -1, -1, 95, 96, 97, - -1, 99, 100, -1, 102, 103, 104, -1, -1, -1, - 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, 3, 4, 5, 6, 7, -1, 135, -1, -1, - 12, -1, 140, -1, 142, 143, -1, 145, 146, 147, - -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, - 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, - 72, 73, -1, 75, 59, 60, -1, 79, 80, 81, - 82, -1, 84, -1, 86, -1, 88, -1, -1, 91, - -1, -1, -1, 95, 96, 97, -1, 99, 100, -1, - 102, 103, 104, -1, -1, -1, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, - 122, 123, 124, 125, 126, 127, 128, 3, 4, 5, - 6, 7, -1, 135, -1, -1, 12, -1, 140, -1, - 142, 143, -1, 145, 146, 147, -1, -1, -1, -1, - 26, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, -1, 49, -1, 42, 43, -1, -1, - -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, - -1, -1, -1, 69, 70, 71, 72, 73, -1, 75, - -1, -1, -1, 79, 80, 81, 82, -1, 84, -1, - 86, -1, 88, -1, -1, 91, -1, -1, -1, 95, - 96, -1, -1, 99, 100, -1, 102, 103, 104, -1, - -1, -1, -1, -1, 110, -1, 112, 113, 114, -1, - -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, - 126, 127, 128, 3, 4, 5, 6, 7, -1, 135, - -1, -1, 12, -1, 140, -1, 142, 143, -1, 145, - 146, 147, -1, -1, -1, -1, 26, -1, -1, -1, + -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, + -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, -1, + -1, -1, 69, 70, 71, 72, 73, -1, 75, -1, + -1, -1, 79, 80, 81, 82, -1, 84, -1, 86, + -1, 88, -1, -1, 91, -1, -1, -1, 95, 96, + -1, -1, 99, 100, -1, 102, 103, 104, -1, -1, + -1, -1, -1, 110, -1, 112, 113, 114, -1, -1, + -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, + 127, 128, 3, 4, 5, 6, 7, -1, 135, -1, + -1, 12, -1, 140, -1, 142, 143, -1, 145, 146, + 147, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, -1, 62, 63, 64, 65, -1, -1, -1, 69, - 70, 71, 72, 73, -1, 75, -1, -1, -1, 79, - 80, 81, 82, -1, 84, -1, 86, -1, 88, -1, - -1, 91, -1, -1, -1, 95, 96, -1, -1, 99, - 100, -1, 102, 103, 104, -1, -1, -1, -1, -1, - 110, -1, 112, 113, 114, -1, -1, -1, -1, -1, - -1, -1, 122, 123, 124, 125, 126, 127, 128, 3, - 4, 5, 6, 7, -1, 135, -1, -1, 12, -1, - 140, -1, 142, 143, -1, 145, 146, 147, -1, -1, - -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, - -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, -1, -1, -1, 69, 70, 71, 72, 73, - -1, 75, -1, -1, -1, 79, 80, 81, 82, -1, - 84, -1, 86, -1, 88, -1, -1, 91, -1, -1, - -1, 95, 96, -1, -1, 99, 100, -1, 102, 103, - 104, -1, -1, -1, -1, -1, 110, -1, 112, 113, - 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, - 124, 125, 126, 127, 128, 3, 4, 5, 6, 7, - -1, 135, -1, -1, 12, -1, 140, -1, 142, 143, - -1, 145, 146, 147, -1, -1, -1, -1, 26, -1, + -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, 65, -1, -1, -1, 69, 70, + 71, 72, 73, -1, 75, -1, -1, -1, 79, 80, + 81, 82, -1, 84, -1, 86, -1, 88, -1, -1, + 91, -1, -1, -1, 95, 96, -1, -1, 99, 100, + -1, 102, 103, 104, -1, -1, -1, -1, -1, 110, + -1, 112, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, 3, 4, + 5, 6, 7, -1, 135, -1, -1, 12, -1, 140, + -1, 142, 143, -1, 145, 146, 147, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, 49, 42, 43, -1, + -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, -1, -1, -1, 69, 70, 71, 72, 73, -1, + 75, -1, -1, -1, 79, 80, 81, 82, -1, 84, + -1, 86, -1, 88, -1, -1, 91, -1, -1, -1, + 95, 96, -1, -1, 99, 100, -1, 102, 103, 104, + -1, -1, -1, -1, -1, 110, -1, 112, 113, 114, + -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, + 125, 126, 127, 128, 3, 4, 5, 6, 7, -1, + 135, -1, -1, 12, -1, 140, -1, 142, 143, -1, + 145, 146, 147, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + -1, 49, -1, 42, 43, -1, -1, -1, -1, 48, + -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 9, 10, 11, -1, + 69, 70, 71, 72, 73, -1, -1, -1, -1, -1, + 79, -1, 25, -1, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, + -1, -1, -1, -1, 113, 114, -1, -1, -1, -1, + -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, + 3, 4, 5, 6, 7, -1, 135, -1, -1, 12, + -1, 140, -1, 142, -1, -1, 145, 146, 147, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, 49, -1, -1, 42, + 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 9, 10, 11, -1, 69, 70, 71, 72, + 73, 144, -1, -1, -1, -1, 79, -1, 25, -1, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, -1, 49, -1, -1, -1, -1, -1, -1, -1, + 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, + 123, 124, 125, 126, 127, 128, 3, 4, 5, 6, + 7, -1, 135, -1, -1, 12, -1, 140, -1, 142, + -1, -1, 145, 146, 147, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, -1, 49, -1, -1, 42, 43, -1, -1, -1, + -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 9, 10, + 11, -1, 69, 70, 71, 72, 73, 144, -1, -1, + -1, -1, 79, -1, 25, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, + -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, + -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, + 127, 128, 3, 4, 5, 6, 7, -1, 135, -1, + -1, 12, -1, 140, -1, 142, -1, -1, 145, 146, + 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, -1, -1, -1, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, 65, -1, -1, - -1, 69, 70, 71, 72, 73, -1, 75, -1, -1, - -1, 79, 80, 81, 82, -1, 84, -1, 86, -1, - 88, -1, -1, 91, -1, -1, -1, 95, 96, -1, - -1, 99, 100, -1, 102, 103, 104, -1, -1, -1, - -1, -1, 110, -1, 112, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, 3, 4, 5, 6, 7, -1, 135, -1, -1, - 12, -1, 140, -1, 142, 143, -1, 145, 146, 147, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, - 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, - 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, - 72, 73, -1, 75, -1, -1, -1, 79, 80, 81, - 82, -1, 84, -1, 86, -1, 88, -1, -1, 91, - -1, -1, -1, 95, 96, -1, -1, 99, 100, -1, - 102, 103, 104, -1, -1, -1, -1, -1, 110, -1, - 112, 113, 114, -1, -1, -1, -1, -1, -1, -1, - 122, 123, 124, 125, 126, 127, 128, 3, 4, 5, - 6, 7, -1, 135, -1, -1, 12, -1, 140, -1, - 142, 143, -1, 145, 146, 147, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, -1, 49, -1, 42, 43, -1, -1, - -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, -1, 62, 63, 64, 9, - 10, 11, -1, 69, 70, 71, 72, 73, -1, -1, - -1, -1, -1, 79, -1, 25, -1, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, - -1, -1, -1, -1, -1, -1, -1, 113, 114, -1, - -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, - 126, 127, 128, 3, 4, 5, 6, 7, -1, 135, - -1, -1, 12, -1, 140, -1, 142, -1, -1, 145, - 146, 147, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, - -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, -1, 62, 63, 64, 9, 10, 11, -1, 69, - 70, 71, 72, 73, -1, -1, -1, -1, 148, 79, - -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, - -1, -1, -1, 113, 114, -1, -1, -1, -1, -1, - -1, -1, 122, 123, 124, 125, 126, 127, 128, 3, - 4, 5, 6, 7, -1, 135, -1, -1, 12, -1, - 140, -1, 142, -1, -1, 145, 146, 147, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, 49, -1, -1, 42, 43, - -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 9, 10, 11, -1, 69, 70, 71, 72, 73, - 144, -1, -1, -1, -1, 79, -1, 25, -1, 27, + -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, 144, -1, -1, -1, 25, 79, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + -1, 49, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + 141, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - -1, 49, -1, -1, -1, -1, -1, -1, -1, 113, - 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, - 124, 125, 126, 127, 128, 3, 4, 5, 6, 7, - -1, 135, -1, -1, 12, -1, 140, -1, 142, -1, - -1, 145, 146, 147, -1, -1, -1, -1, -1, -1, + -1, 49, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, + 49, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, + -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, -1, -1, -1, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, 144, -1, -1, -1, - 25, 79, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, -1, 49, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, 141, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, -1, 49, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, -1, 49, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, 31, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + 31, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - -1, -1, -1, -1, 12, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, -1, -1, -1, 135, -1, -1, - -1, -1, 140, -1, 42, 43, -1, 145, 146, 147, - 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, 9, 10, 11, - -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, - -1, 79, -1, 25, -1, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, - -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - 128, -1, -1, -1, 9, 10, 11, 135, -1, -1, - -1, -1, 140, -1, -1, -1, -1, 145, 146, 147, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + -1, 12, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, 140, + -1, 42, 43, -1, 145, 146, 147, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, 9, 10, 11, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, + -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, + -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, + -1, 9, 10, 11, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, 145, 146, 147, 25, -1, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 144, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 144, 27, 28, 29, 30, 31, 32, 33, + -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, + 44, 45, 46, 47, -1, 49, 144, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, -1, 49, -1, -1, 144, + -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, + 11, -1, -1, -1, -1, -1, -1, 142, -1, -1, + -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, + 10, 11, -1, -1, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, + 142, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, - 144, -1, -1, -1, -1, -1, -1, 25, -1, 27, + -1, 142, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, - -1, 144, -1, -1, -1, -1, -1, -1, 25, -1, + -1, -1, 142, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, 25, + -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, - -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, + -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, - -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, + -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, @@ -2114,44 +2108,24 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, - 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, - 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, - -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, - -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, - -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, - -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, + 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 141, -1, -1, -1, -1, -1, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 121, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, 25, -1, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, -1, 49, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 11, 49, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, - -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, - -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, - -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 121, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 121, 25, -1, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, -1, 49, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 11, 49, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, 49 + 45, 46, 47, -1, 49 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2167,75 +2141,75 @@ static const yytype_uint16 yystos[] = 122, 123, 124, 125, 126, 127, 128, 135, 140, 142, 143, 145, 146, 147, 153, 157, 158, 189, 190, 192, 195, 198, 200, 246, 257, 262, 271, 274, 278, 279, - 282, 284, 292, 293, 294, 295, 296, 297, 303, 313, - 316, 278, 278, 140, 278, 278, 278, 278, 278, 278, + 281, 282, 290, 291, 292, 293, 294, 295, 301, 311, + 314, 278, 278, 140, 278, 278, 278, 278, 278, 278, 278, 256, 278, 278, 278, 278, 278, 278, 278, 71, - 262, 282, 284, 282, 278, 71, 262, 263, 264, 295, - 296, 303, 140, 269, 140, 140, 242, 278, 165, 140, + 262, 281, 282, 281, 278, 71, 262, 263, 264, 293, + 294, 301, 140, 269, 140, 140, 242, 278, 165, 140, 140, 140, 175, 140, 142, 278, 142, 278, 193, 142, - 246, 278, 284, 176, 278, 79, 140, 188, 73, 145, + 246, 278, 282, 176, 278, 79, 140, 188, 73, 145, 227, 228, 116, 116, 73, 229, 140, 140, 140, 140, - 140, 140, 309, 278, 154, 143, 309, 309, 71, 71, + 140, 140, 307, 278, 154, 143, 307, 307, 71, 71, 139, 9, 10, 11, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 142, 59, 60, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 283, 140, 120, 61, 143, 145, 296, 278, - 278, 139, 139, 249, 120, 296, 141, 278, 278, 258, - 8, 142, 157, 163, 243, 244, 278, 246, 284, 140, - 278, 142, 142, 31, 191, 142, 142, 143, 142, 79, - 142, 143, 279, 284, 8, 142, 13, 8, 142, 186, - 187, 284, 284, 314, 284, 141, 247, 31, 278, 307, - 308, 73, 78, 136, 137, 138, 310, 141, 144, 155, - 278, 146, 147, 118, 199, 197, 71, 292, 296, 303, - 252, 278, 253, 254, 250, 251, 278, 278, 278, 278, + 23, 24, 140, 120, 61, 143, 145, 294, 278, 278, + 139, 139, 249, 120, 294, 141, 278, 278, 258, 8, + 142, 157, 163, 243, 244, 278, 246, 282, 140, 278, + 142, 142, 31, 191, 142, 142, 143, 142, 79, 142, + 143, 279, 282, 8, 142, 13, 8, 142, 186, 187, + 282, 282, 312, 282, 141, 247, 31, 278, 305, 306, + 73, 78, 136, 137, 138, 308, 141, 144, 155, 278, + 146, 147, 118, 199, 197, 71, 290, 294, 301, 252, + 278, 253, 254, 250, 251, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 263, 31, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 261, - 285, 278, 298, 278, 141, 71, 292, 140, 270, 265, - 141, 141, 31, 225, 226, 246, 284, 278, 82, 278, - 142, 8, 90, 90, 71, 209, 141, 71, 154, 141, - 278, 228, 42, 43, 71, 123, 271, 272, 273, 73, - 8, 141, 8, 141, 141, 142, 122, 284, 304, 305, - 280, 284, 121, 141, 8, 276, 61, 120, 72, 278, - 284, 115, 156, 157, 189, 190, 144, 71, 262, 196, - 118, 201, 140, 140, 296, 278, 278, 278, 278, 278, - 63, 284, 225, 71, 143, 292, 299, 301, 302, 148, - 144, 225, 299, 26, 159, 280, 141, 8, 140, 141, - 167, 245, 173, 171, 13, 8, 141, 170, 194, 144, - 144, 272, 272, 139, 140, 13, 187, 142, 315, 140, - 8, 141, 281, 31, 278, 31, 278, 311, 71, 61, - 144, 144, 140, 119, 202, 203, 262, 143, 259, 260, - 26, 263, 141, 278, 300, 286, 61, 143, 141, 266, - 161, 157, 31, 246, 284, 166, 164, 243, 278, 284, - 31, 205, 284, 272, 71, 26, 157, 208, 26, 143, - 210, 140, 101, 71, 272, 275, 277, 272, 284, 306, - 305, 13, 280, 280, 121, 71, 73, 74, 312, 278, - 141, 203, 143, 8, 230, 225, 225, 255, 248, 144, - 140, 290, 298, 278, 267, 154, 160, 280, 278, 26, - 157, 215, 142, 121, 204, 284, 204, 13, 154, 142, - 211, 142, 211, 71, 123, 222, 223, 224, 140, 121, - 141, 8, 276, 304, 278, 31, 278, 148, 148, 142, - 230, 262, 98, 105, 106, 107, 108, 109, 110, 111, - 144, 231, 236, 237, 238, 239, 241, 141, 141, 278, - 270, 291, 287, 148, 144, 120, 268, 162, 216, 141, - 154, 168, 205, 141, 141, 272, 89, 211, 92, 93, - 94, 211, 144, 141, 8, 31, 73, 177, 272, 272, - 141, 280, 144, 144, 71, 232, 97, 239, 8, 142, - 225, 120, 288, 299, 218, 66, 67, 220, 142, 83, - 243, 174, 172, 142, 92, 142, 278, 26, 142, 214, - 144, 143, 224, 73, 13, 262, 121, 13, 73, 240, - 233, 71, 141, 299, 66, 67, 221, 140, 157, 142, - 141, 26, 157, 207, 207, 142, 214, 213, 154, 31, - 73, 13, 272, 178, 272, 272, 13, 8, 142, 191, - 13, 289, 140, 26, 68, 278, 169, 154, 212, 154, - 144, 73, 13, 272, 73, 272, 73, 71, 272, 290, - 278, 154, 142, 141, 26, 157, 206, 87, 154, 13, - 272, 141, 13, 234, 141, 217, 154, 142, 272, 179, - 272, 140, 26, 157, 85, 143, 222, 219, 142, 154, - 141, 154, 144, 142, 143, 235, 180, 154, 101, 181, - 182, 183, 144, 140, 183, 262, 184, 73, 141, 185, - 143, 154, 144 + 278, 278, 278, 278, 263, 31, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 261, 283, + 278, 296, 278, 141, 71, 290, 140, 270, 265, 141, + 141, 31, 225, 226, 246, 282, 278, 82, 278, 142, + 8, 90, 90, 71, 209, 141, 71, 154, 141, 278, + 228, 42, 43, 71, 123, 271, 272, 273, 73, 8, + 141, 8, 141, 141, 142, 122, 282, 302, 303, 280, + 282, 121, 141, 8, 276, 61, 120, 72, 278, 282, + 115, 156, 157, 189, 190, 144, 71, 262, 196, 118, + 201, 140, 140, 294, 278, 278, 278, 278, 278, 63, + 282, 225, 71, 143, 290, 297, 299, 300, 148, 144, + 225, 297, 26, 159, 280, 141, 8, 140, 141, 167, + 245, 173, 171, 13, 8, 141, 170, 194, 144, 144, + 272, 272, 139, 140, 13, 187, 142, 313, 140, 8, + 141, 31, 278, 31, 278, 309, 71, 61, 144, 144, + 140, 119, 202, 203, 262, 143, 259, 260, 26, 263, + 141, 278, 298, 284, 61, 143, 141, 266, 161, 157, + 31, 246, 282, 166, 164, 243, 278, 282, 31, 205, + 282, 272, 71, 26, 157, 208, 26, 143, 210, 140, + 101, 71, 272, 275, 277, 272, 282, 304, 303, 13, + 280, 280, 121, 71, 73, 74, 310, 278, 141, 203, + 143, 8, 230, 225, 225, 255, 248, 144, 140, 288, + 296, 278, 267, 154, 160, 280, 278, 26, 157, 215, + 142, 121, 204, 282, 204, 13, 154, 142, 211, 142, + 211, 71, 123, 222, 223, 224, 140, 121, 141, 8, + 276, 302, 278, 31, 278, 148, 148, 142, 230, 262, + 98, 105, 106, 107, 108, 109, 110, 111, 144, 231, + 236, 237, 238, 239, 241, 141, 141, 278, 270, 289, + 285, 148, 144, 120, 268, 162, 216, 141, 154, 168, + 205, 141, 141, 272, 89, 211, 92, 93, 94, 211, + 144, 141, 8, 31, 73, 177, 272, 272, 141, 280, + 144, 144, 71, 232, 97, 239, 8, 142, 225, 120, + 286, 297, 218, 66, 67, 220, 142, 83, 243, 174, + 172, 142, 92, 142, 278, 26, 142, 214, 144, 143, + 224, 73, 13, 262, 121, 13, 73, 240, 233, 71, + 141, 297, 66, 67, 221, 140, 157, 142, 141, 26, + 157, 207, 207, 142, 214, 213, 154, 31, 73, 13, + 272, 178, 272, 272, 13, 8, 142, 191, 13, 287, + 140, 26, 68, 278, 169, 154, 212, 154, 144, 73, + 13, 272, 73, 272, 73, 71, 272, 288, 278, 154, + 142, 141, 26, 157, 206, 87, 154, 13, 272, 141, + 13, 234, 141, 217, 154, 142, 272, 179, 272, 140, + 26, 157, 85, 143, 222, 219, 142, 154, 141, 154, + 144, 142, 143, 235, 180, 154, 101, 181, 182, 183, + 144, 140, 183, 262, 184, 73, 141, 185, 143, 154, + 144 }; #define yyerrok (yyerrstatus = 0) @@ -3856,7 +3830,7 @@ yyreduce: case 204: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 205: @@ -4481,391 +4455,383 @@ yyreduce: case 333: - { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); } + { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); + zend_check_writable_variable(&(yyvsp[(1) - (1)])); } break; case 334: - { zend_check_writable_variable(&(yyvsp[(1) - (2)])); } + { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); + zend_check_writable_variable(&(yyvsp[(1) - (1)])); } break; case 335: - { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); } - break; - - case 336: - - { zend_check_writable_variable(&(yyvsp[(1) - (2)])); } - break; - - case 337: - { zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); } break; - case 338: + case 336: { zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); } break; - case 339: + case 337: { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = (yyvsp[(1) - (7)]).u.EA.type | ((yyvsp[(7) - (7)]).u.EA.type ? (yyvsp[(7) - (7)]).u.EA.type : (yyvsp[(6) - (7)]).u.EA.type); } break; - case 340: + case 338: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 341: + case 339: { (yyval).u.EA.type = (yyvsp[(2) - (2)]).u.EA.type; } break; - case 342: + case 340: { (yyval).u.EA.type = 0; } break; - case 343: + case 341: { zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 344: + case 342: { (yyval).u.EA.type = (yyvsp[(4) - (4)]).u.EA.type; } break; - case 345: + case 343: { zend_do_pop_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); zend_do_begin_method_call(&(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 346: + case 344: { zend_do_end_function_call(&(yyvsp[(1) - (4)]), &(yyval), &(yyvsp[(3) - (4)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_push_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_METHOD_CALL; } break; - case 347: + case 345: { zend_do_declare_implicit_property(TSRMLS_C); (yyval).u.EA.type = ZEND_PARSED_MEMBER; } break; - case 348: + case 346: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 349: + case 347: { zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 350: + case 348: { (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); } break; - case 351: + case 349: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 352: + case 350: { zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_FUNCTION_CALL; } break; - case 353: + case 351: { (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; } break; - case 354: + case 352: { zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; } break; - case 355: + case 353: { (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_STATIC_MEMBER; } break; - case 356: + case 354: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 357: + case 355: { fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 358: + case 356: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); } break; - case 359: + case 357: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 360: + case 358: { (yyval) = (yyvsp[(3) - (4)]); } break; - case 361: + case 359: { (yyval).op_type = IS_UNUSED; } break; - case 362: + case 360: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 363: + case 361: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 364: + case 362: { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); } break; - case 365: + case 363: { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[(1) - (2)]) TSRMLS_CC);} break; - case 366: + case 364: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 367: + case 365: { fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 368: + case 366: { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[(1) - (1)]) TSRMLS_CC);} break; - case 369: + case 367: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 370: + case 368: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 371: + case 369: { Z_LVAL((yyval).u.constant) = 1; } break; - case 372: + case 370: { Z_LVAL((yyval).u.constant)++; } break; - case 375: + case 373: { zend_do_add_list_element(&(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 376: + case 374: { zend_do_new_list_begin(TSRMLS_C); } break; - case 377: + case 375: { zend_do_new_list_end(TSRMLS_C); } break; - case 378: + case 376: { zend_do_add_list_element(NULL TSRMLS_CC); } break; - case 379: + case 377: { zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); } break; - case 380: + case 378: { (yyval) = (yyvsp[(1) - (2)]); } break; - case 381: + case 379: { zend_do_add_array_element(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); } break; - case 382: + case 380: { zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); } break; - case 383: + case 381: { zend_do_init_array(&(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); } break; - case 384: + case 382: { zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); } break; - case 385: + case 383: { zend_do_add_array_element(&(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 1 TSRMLS_CC); } break; - case 386: + case 384: { zend_do_add_array_element(&(yyval), &(yyvsp[(4) - (4)]), NULL, 1 TSRMLS_CC); } break; - case 387: + case 385: { zend_do_init_array(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 1 TSRMLS_CC); } break; - case 388: + case 386: { zend_do_init_array(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); } break; - case 389: + case 387: { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 390: + case 388: { zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 391: + case 389: { zend_do_init_string(&(yyval) TSRMLS_CC); } break; - case 392: + case 390: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); } break; - case 393: + case 391: { zend_do_begin_variable_parse(TSRMLS_C); } break; - case 394: + case 392: { fetch_array_begin(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); } break; - case 395: + case 393: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyvsp[(2) - (3)]), &(yyvsp[(1) - (3)]), 1 TSRMLS_CC); zend_do_fetch_property(&(yyval), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; - case 396: + case 394: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(2) - (3)]), 1 TSRMLS_CC); } break; - case 397: + case 395: { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&(yyval), &(yyvsp[(2) - (6)]), &(yyvsp[(4) - (6)]) TSRMLS_CC); } break; - case 398: + case 396: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 399: + case 397: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 400: + case 398: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 401: + case 399: { fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); } break; - case 402: + case 400: { (yyval) = (yyvsp[(3) - (4)]); } break; - case 403: + case 401: { zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 404: + case 402: { zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 405: + case 403: { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 406: + case 404: { zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 407: + case 405: { zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 408: + case 406: { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 409: + case 407: { zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 410: + case 408: { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 411: + case 409: { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &tmp, &(yyvsp[(2) - (4)]) TSRMLS_CC); } break; - case 412: + case 410: { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT TSRMLS_CC); } break; diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output index 976ef398e..4478aca0f 100644 --- a/Zend/zend_language_parser.output +++ b/Zend/zend_language_parser.output @@ -10,7 +10,7 @@ Terminals which are not used T_WHITESPACE -State 608 conflicts: 2 shift/reduce +State 606 conflicts: 2 shift/reduce Grammar @@ -505,126 +505,122 @@ Grammar 331 r_variable: variable - 332 @55: /* empty */ + 332 w_variable: variable - 333 w_variable: variable @55 + 333 rw_variable: variable - 334 @56: /* empty */ + 334 @55: /* empty */ - 335 rw_variable: variable @56 + 335 @56: /* empty */ - 336 @57: /* empty */ + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @55 object_property @56 method_or_not variable_properties + 337 | base_variable_with_function_calls - 337 @58: /* empty */ + 338 variable_properties: variable_properties variable_property + 339 | /* empty */ - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 method_or_not variable_properties - 339 | base_variable_with_function_calls + 340 @57: /* empty */ - 340 variable_properties: variable_properties variable_property - 341 | /* empty */ + 341 variable_property: T_OBJECT_OPERATOR object_property @57 method_or_not - 342 @59: /* empty */ + 342 @58: /* empty */ - 343 variable_property: T_OBJECT_OPERATOR object_property @59 method_or_not + 343 method_or_not: '(' @58 function_call_parameter_list ')' + 344 | /* empty */ - 344 @60: /* empty */ + 345 variable_without_objects: reference_variable + 346 | simple_indirect_reference reference_variable - 345 method_or_not: '(' @60 function_call_parameter_list ')' - 346 | /* empty */ + 347 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects - 347 variable_without_objects: reference_variable - 348 | simple_indirect_reference reference_variable + 348 base_variable_with_function_calls: base_variable + 349 | function_call - 349 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects + 350 base_variable: reference_variable + 351 | simple_indirect_reference reference_variable + 352 | static_member - 350 base_variable_with_function_calls: base_variable - 351 | function_call + 353 reference_variable: reference_variable '[' dim_offset ']' + 354 | reference_variable '{' expr '}' + 355 | compound_variable - 352 base_variable: reference_variable - 353 | simple_indirect_reference reference_variable - 354 | static_member + 356 compound_variable: T_VARIABLE + 357 | '$' '{' expr '}' - 355 reference_variable: reference_variable '[' dim_offset ']' - 356 | reference_variable '{' expr '}' - 357 | compound_variable + 358 dim_offset: /* empty */ + 359 | expr - 358 compound_variable: T_VARIABLE - 359 | '$' '{' expr '}' + 360 object_property: object_dim_list - 360 dim_offset: /* empty */ - 361 | expr + 361 @59: /* empty */ - 362 object_property: object_dim_list + 362 object_property: variable_without_objects @59 - 363 @61: /* empty */ + 363 object_dim_list: object_dim_list '[' dim_offset ']' + 364 | object_dim_list '{' expr '}' + 365 | variable_name - 364 object_property: variable_without_objects @61 + 366 variable_name: T_STRING + 367 | '{' expr '}' - 365 object_dim_list: object_dim_list '[' dim_offset ']' - 366 | object_dim_list '{' expr '}' - 367 | variable_name + 368 simple_indirect_reference: '$' + 369 | simple_indirect_reference '$' - 368 variable_name: T_STRING - 369 | '{' expr '}' + 370 assignment_list: assignment_list ',' assignment_list_element + 371 | assignment_list_element - 370 simple_indirect_reference: '$' - 371 | simple_indirect_reference '$' + 372 assignment_list_element: variable - 372 assignment_list: assignment_list ',' assignment_list_element - 373 | assignment_list_element + 373 @60: /* empty */ - 374 assignment_list_element: variable + 374 assignment_list_element: T_LIST '(' @60 assignment_list ')' + 375 | /* empty */ - 375 @62: /* empty */ + 376 array_pair_list: /* empty */ + 377 | non_empty_array_pair_list possible_comma - 376 assignment_list_element: T_LIST '(' @62 assignment_list ')' - 377 | /* empty */ + 378 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr + 379 | non_empty_array_pair_list ',' expr + 380 | expr T_DOUBLE_ARROW expr + 381 | expr + 382 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable + 383 | non_empty_array_pair_list ',' '&' w_variable + 384 | expr T_DOUBLE_ARROW '&' w_variable + 385 | '&' w_variable - 378 array_pair_list: /* empty */ - 379 | non_empty_array_pair_list possible_comma + 386 encaps_list: encaps_list encaps_var + 387 | encaps_list T_ENCAPSED_AND_WHITESPACE + 388 | /* empty */ - 380 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr - 381 | non_empty_array_pair_list ',' expr - 382 | expr T_DOUBLE_ARROW expr - 383 | expr - 384 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable - 385 | non_empty_array_pair_list ',' '&' w_variable - 386 | expr T_DOUBLE_ARROW '&' w_variable - 387 | '&' w_variable + 389 encaps_var: T_VARIABLE - 388 encaps_list: encaps_list encaps_var - 389 | encaps_list T_ENCAPSED_AND_WHITESPACE - 390 | /* empty */ + 390 @61: /* empty */ - 391 encaps_var: T_VARIABLE + 391 encaps_var: T_VARIABLE '[' @61 encaps_var_offset ']' + 392 | T_VARIABLE T_OBJECT_OPERATOR T_STRING + 393 | T_DOLLAR_OPEN_CURLY_BRACES expr '}' + 394 | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' + 395 | T_CURLY_OPEN variable '}' - 392 @63: /* empty */ + 396 encaps_var_offset: T_STRING + 397 | T_NUM_STRING + 398 | T_VARIABLE - 393 encaps_var: T_VARIABLE '[' @63 encaps_var_offset ']' - 394 | T_VARIABLE T_OBJECT_OPERATOR T_STRING - 395 | T_DOLLAR_OPEN_CURLY_BRACES expr '}' - 396 | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - 397 | T_CURLY_OPEN variable '}' + 399 internal_functions_in_yacc: T_ISSET '(' isset_variables ')' + 400 | T_EMPTY '(' variable ')' + 401 | T_INCLUDE expr + 402 | T_INCLUDE_ONCE expr + 403 | T_EVAL '(' expr ')' + 404 | T_REQUIRE expr + 405 | T_REQUIRE_ONCE expr - 398 encaps_var_offset: T_STRING - 399 | T_NUM_STRING - 400 | T_VARIABLE + 406 isset_variables: variable - 401 internal_functions_in_yacc: T_ISSET '(' isset_variables ')' - 402 | T_EMPTY '(' variable ')' - 403 | T_INCLUDE expr - 404 | T_INCLUDE_ONCE expr - 405 | T_EVAL '(' expr ')' - 406 | T_REQUIRE expr - 407 | T_REQUIRE_ONCE expr + 407 @62: /* empty */ - 408 isset_variables: variable + 408 isset_variables: isset_variables ',' @62 variable - 409 @64: /* empty */ - - 410 isset_variables: isset_variables ',' @64 variable - - 411 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING + 409 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING Terminals, with rules where they appear @@ -632,17 +628,17 @@ Terminals, with rules where they appear $end (0) 0 '!' (33) 247 '"' (34) 319 -'$' (36) 160 161 359 370 371 +'$' (36) 160 161 357 368 369 '%' (37) 242 -'&' (38) 81 104 139 140 143 144 153 156 204 206 235 384 385 386 387 +'&' (38) 81 104 139 140 143 144 153 156 204 206 235 382 383 384 385 '(' (40) 8 15 20 23 26 29 33 35 49 52 55 57 64 72 77 84 128 131 173 - 202 258 274 278 280 282 284 296 297 299 312 345 376 401 402 405 + 202 258 274 278 280 282 284 296 297 299 312 343 374 399 400 403 ')' (41) 8 15 20 23 26 29 33 35 49 52 55 57 64 72 77 84 128 131 173 - 202 258 274 278 280 282 284 296 297 299 312 345 376 401 402 405 + 202 258 274 278 280 282 284 296 297 299 312 343 374 399 400 403 '*' (42) 240 '+' (43) 238 245 310 ',' (44) 74 100 112 142 143 144 145 154 155 156 157 162 163 188 189 - 192 194 199 324 325 326 372 380 381 384 385 410 + 192 194 199 324 325 326 370 378 379 382 383 408 '-' (45) 239 246 311 '.' (46) 237 '/' (47) 241 @@ -655,21 +651,21 @@ $end (0) 0 '>' (62) 255 '?' (63) 261 '@' (64) 272 -'[' (91) 355 365 393 396 -']' (93) 355 365 393 396 +'[' (91) 353 363 391 394 +']' (93) 353 363 391 394 '^' (94) 236 '`' (96) 275 -'{' (123) 17 64 72 84 86 88 113 114 161 175 356 359 366 369 +'{' (123) 17 64 72 84 86 88 113 114 161 175 354 357 364 367 '|' (124) 234 -'}' (125) 17 64 72 84 86 88 113 114 161 175 356 359 366 369 395 396 - 397 +'}' (125) 17 64 72 84 86 88 113 114 161 175 354 357 364 367 393 394 + 395 '~' (126) 248 error (256) -T_REQUIRE_ONCE (258) 407 -T_REQUIRE (259) 406 -T_EVAL (260) 405 -T_INCLUDE_ONCE (261) 404 -T_INCLUDE (262) 403 +T_REQUIRE_ONCE (258) 405 +T_REQUIRE (259) 404 +T_EVAL (260) 403 +T_INCLUDE_ONCE (261) 402 +T_INCLUDE (262) 401 T_LOGICAL_OR (263) 230 T_LOGICAL_XOR (264) 233 T_LOGICAL_AND (265) 232 @@ -715,15 +711,15 @@ T_ENDIF (304) 23 T_LNUMBER (305) 300 T_DNUMBER (306) 301 T_STRING (307) 84 86 88 111 112 147 173 192 193 278 280 285 286 309 - 314 315 368 394 398 411 -T_STRING_VARNAME (308) 316 396 + 314 315 366 392 396 409 +T_STRING_VARNAME (308) 316 394 T_VARIABLE (309) 64 72 138 139 140 141 142 143 144 145 159 162 163 - 164 165 188 189 190 191 358 391 393 394 400 -T_NUM_STRING (310) 399 + 164 165 188 189 190 191 356 389 391 392 398 +T_NUM_STRING (310) 397 T_INLINE_HTML (311) 46 T_CHARACTER (312) T_BAD_CHARACTER (313) -T_ENCAPSED_AND_WHITESPACE (314) 389 +T_ENCAPSED_AND_WHITESPACE (314) 387 T_CONSTANT_ENCAPSED_STRING (315) 76 77 302 T_ECHO (316) 45 T_DO (317) 29 @@ -758,16 +754,16 @@ T_ABSTRACT (345) 90 186 T_STATIC (346) 44 185 T_VAR (347) 177 T_UNSET (348) 49 -T_ISSET (349) 401 -T_EMPTY (350) 402 +T_ISSET (349) 399 +T_EMPTY (350) 400 T_HALT_COMPILER (351) 8 15 T_CLASS (352) 89 90 91 T_INTERFACE (353) 94 T_EXTENDS (354) 93 96 T_IMPLEMENTS (355) 98 -T_OBJECT_OPERATOR (356) 290 294 338 343 394 -T_DOUBLE_ARROW (357) 102 325 327 380 382 384 386 -T_LIST (358) 202 376 +T_OBJECT_OPERATOR (356) 290 294 336 341 392 +T_DOUBLE_ARROW (357) 102 325 327 378 380 382 384 +T_LIST (358) 202 374 T_ARRAY (359) 148 274 312 T_CLASS_C (360) 305 T_METHOD_C (361) 306 @@ -782,9 +778,9 @@ T_CLOSE_TAG (369) T_WHITESPACE (370) T_START_HEREDOC (371) 320 T_END_HEREDOC (372) 320 -T_DOLLAR_OPEN_CURLY_BRACES (373) 395 396 -T_CURLY_OPEN (374) 397 -T_PAAMAYIM_NEKUDOTAYIM (375) 280 282 314 349 411 +T_DOLLAR_OPEN_CURLY_BRACES (373) 393 394 +T_CURLY_OPEN (374) 395 +T_PAAMAYIM_NEKUDOTAYIM (375) 280 282 314 347 409 Nonterminals, with rules where they appear @@ -945,7 +941,7 @@ non_empty_parameter_list (223) optional_class_type (224) on left: 146 147 148, on right: 138 139 140 141 142 143 144 145 function_call_parameter_list (225) - on left: 149 150, on right: 278 280 282 284 299 345 + on left: 149 150, on right: 278 280 282 284 299 343 non_empty_function_call_parameter_list (226) on left: 151 152 153 154 155 156, on right: 149 154 155 156 global_var_list (227) @@ -1013,7 +1009,7 @@ expr_without_variable (246) @48 (256) on left: 271, on right: 272 function_call (257) - on left: 278 280 282 284, on right: 351 + on left: 278 280 282 284, on right: 349 @49 (258) on left: 277, on right: 278 @50 (259) @@ -1023,7 +1019,7 @@ function_call (257) @52 (261) on left: 283, on right: 284 fully_qualified_class_name (262) - on left: 285, on right: 64 72 93 99 100 280 282 349 411 + on left: 285, on right: 64 72 93 99 100 280 282 347 409 class_name_reference (263) on left: 286 287, on right: 206 208 257 dynamic_class_name_reference (264) @@ -1052,7 +1048,7 @@ scalar (274) static_array_pair_list (275) on left: 321 322, on right: 312 possible_comma (276) - on left: 323 324, on right: 322 379 + on left: 323 324, on right: 322 377 non_empty_static_array_pair_list (277) on left: 325 326 327 328, on right: 322 325 326 expr (278) @@ -1060,87 +1056,83 @@ expr (278) 131 161 194 195 199 200 202 203 209 210 211 212 213 214 215 216 217 218 219 220 226 228 230 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257 258 261 263 264 265 266 267 268 269 272 276 297 356 359 361 - 366 369 380 381 382 383 384 386 395 396 403 404 405 406 407 + 257 258 261 263 264 265 266 267 268 269 272 276 297 354 357 359 + 364 367 378 379 380 381 382 384 393 394 401 402 403 404 405 r_variable (279) on left: 331, on right: 160 329 w_variable (280) - on left: 333, on right: 153 156 384 385 386 387 -@55 (281) - on left: 332, on right: 333 -rw_variable (282) - on left: 335, on right: 221 222 223 224 -@56 (283) - on left: 334, on right: 335 -variable (284) - on left: 338 339, on right: 42 52 55 75 103 104 152 155 203 204 - 206 210 211 212 213 214 215 216 217 218 219 220 331 333 335 374 - 397 402 408 410 -@57 (285) - on left: 336, on right: 338 -@58 (286) - on left: 337, on right: 338 -variable_properties (287) - on left: 340 341, on right: 338 340 -variable_property (288) - on left: 343, on right: 340 -@59 (289) + on left: 332, on right: 153 156 382 383 384 385 +rw_variable (281) + on left: 333, on right: 221 222 223 224 +variable (282) + on left: 336 337, on right: 42 52 55 75 103 104 152 155 203 204 + 206 210 211 212 213 214 215 216 217 218 219 220 331 332 333 372 + 395 400 406 408 +@55 (283) + on left: 334, on right: 336 +@56 (284) + on left: 335, on right: 336 +variable_properties (285) + on left: 338 339, on right: 336 338 +variable_property (286) + on left: 341, on right: 338 +@57 (287) + on left: 340, on right: 341 +method_or_not (288) + on left: 343 344, on right: 336 341 +@58 (289) on left: 342, on right: 343 -method_or_not (290) - on left: 345 346, on right: 338 343 -@60 (291) - on left: 344, on right: 345 -variable_without_objects (292) - on left: 347 348, on right: 282 284 349 364 -static_member (293) - on left: 349, on right: 354 -base_variable_with_function_calls (294) - on left: 350 351, on right: 338 339 -base_variable (295) - on left: 352 353 354, on right: 290 291 350 -reference_variable (296) - on left: 355 356 357, on right: 347 348 352 353 355 356 -compound_variable (297) - on left: 358 359, on right: 357 -dim_offset (298) - on left: 360 361, on right: 355 365 -object_property (299) - on left: 362 364, on right: 290 294 338 343 -@61 (300) - on left: 363, on right: 364 -object_dim_list (301) - on left: 365 366 367, on right: 362 365 366 -variable_name (302) - on left: 368 369, on right: 367 -simple_indirect_reference (303) - on left: 370 371, on right: 348 353 371 -assignment_list (304) - on left: 372 373, on right: 202 372 376 -assignment_list_element (305) - on left: 374 376 377, on right: 372 373 -@62 (306) - on left: 375, on right: 376 -array_pair_list (307) - on left: 378 379, on right: 274 -non_empty_array_pair_list (308) - on left: 380 381 382 383 384 385 386 387, on right: 379 380 381 - 384 385 -encaps_list (309) - on left: 388 389 390, on right: 275 319 320 388 389 -encaps_var (310) - on left: 391 393 394 395 396 397, on right: 388 -@63 (311) - on left: 392, on right: 393 -encaps_var_offset (312) - on left: 398 399 400, on right: 393 -internal_functions_in_yacc (313) - on left: 401 402 403 404 405 406 407, on right: 262 -isset_variables (314) - on left: 408 410, on right: 401 410 -@64 (315) - on left: 409, on right: 410 -class_constant (316) - on left: 411, on right: 317 +variable_without_objects (290) + on left: 345 346, on right: 282 284 347 362 +static_member (291) + on left: 347, on right: 352 +base_variable_with_function_calls (292) + on left: 348 349, on right: 336 337 +base_variable (293) + on left: 350 351 352, on right: 290 291 348 +reference_variable (294) + on left: 353 354 355, on right: 345 346 350 351 353 354 +compound_variable (295) + on left: 356 357, on right: 355 +dim_offset (296) + on left: 358 359, on right: 353 363 +object_property (297) + on left: 360 362, on right: 290 294 336 341 +@59 (298) + on left: 361, on right: 362 +object_dim_list (299) + on left: 363 364 365, on right: 360 363 364 +variable_name (300) + on left: 366 367, on right: 365 +simple_indirect_reference (301) + on left: 368 369, on right: 346 351 369 +assignment_list (302) + on left: 370 371, on right: 202 370 374 +assignment_list_element (303) + on left: 372 374 375, on right: 370 371 +@60 (304) + on left: 373, on right: 374 +array_pair_list (305) + on left: 376 377, on right: 274 +non_empty_array_pair_list (306) + on left: 378 379 380 381 382 383 384 385, on right: 377 378 379 + 382 383 +encaps_list (307) + on left: 386 387 388, on right: 275 319 320 386 387 +encaps_var (308) + on left: 389 391 392 393 394 395, on right: 386 +@61 (309) + on left: 390, on right: 391 +encaps_var_offset (310) + on left: 396 397 398, on right: 391 +internal_functions_in_yacc (311) + on left: 399 400 401 402 403 404 405, on right: 262 +isset_variables (312) + on left: 406 408, on right: 399 408 +@62 (313) + on left: 407, on right: 408 +class_constant (314) + on left: 409, on right: 317 state 0 @@ -1283,7 +1275,7 @@ state 4 state 5 - 407 internal_functions_in_yacc: T_REQUIRE_ONCE . expr + 405 internal_functions_in_yacc: T_REQUIRE_ONCE . expr T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -1351,7 +1343,7 @@ state 5 state 6 - 406 internal_functions_in_yacc: T_REQUIRE . expr + 404 internal_functions_in_yacc: T_REQUIRE . expr T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -1419,14 +1411,14 @@ state 6 state 7 - 405 internal_functions_in_yacc: T_EVAL . '(' expr ')' + 403 internal_functions_in_yacc: T_EVAL . '(' expr ')' '(' shift, and go to state 103 state 8 - 404 internal_functions_in_yacc: T_INCLUDE_ONCE . expr + 402 internal_functions_in_yacc: T_INCLUDE_ONCE . expr T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -1494,7 +1486,7 @@ state 8 state 9 - 403 internal_functions_in_yacc: T_INCLUDE . expr + 401 internal_functions_in_yacc: T_INCLUDE . expr T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -2567,9 +2559,9 @@ state 32 state 33 - 358 compound_variable: T_VARIABLE . + 356 compound_variable: T_VARIABLE . - $default reduce using rule 358 (compound_variable) + $default reduce using rule 356 (compound_variable) state 34 @@ -3052,14 +3044,14 @@ state 54 state 55 - 401 internal_functions_in_yacc: T_ISSET . '(' isset_variables ')' + 399 internal_functions_in_yacc: T_ISSET . '(' isset_variables ')' '(' shift, and go to state 167 state 56 - 402 internal_functions_in_yacc: T_EMPTY . '(' variable ')' + 400 internal_functions_in_yacc: T_EMPTY . '(' variable ')' '(' shift, and go to state 168 @@ -3138,7 +3130,7 @@ state 67 320 scalar: T_START_HEREDOC . encaps_list T_END_HEREDOC - $default reduce using rule 390 (encaps_list) + $default reduce using rule 388 (encaps_list) encaps_list go to state 172 @@ -3229,19 +3221,19 @@ state 70 state 71 - 359 compound_variable: '$' . '{' expr '}' - 370 simple_indirect_reference: '$' . + 357 compound_variable: '$' . '{' expr '}' + 368 simple_indirect_reference: '$' . '{' shift, and go to state 175 - $default reduce using rule 370 (simple_indirect_reference) + $default reduce using rule 368 (simple_indirect_reference) state 72 275 expr_without_variable: '`' . encaps_list '`' - $default reduce using rule 390 (encaps_list) + $default reduce using rule 388 (encaps_list) encaps_list go to state 176 @@ -3250,7 +3242,7 @@ state 73 319 scalar: '"' . encaps_list '"' - $default reduce using rule 390 (encaps_list) + $default reduce using rule 388 (encaps_list) encaps_list go to state 177 @@ -3327,17 +3319,17 @@ state 83 state 84 - 351 base_variable_with_function_calls: function_call . + 349 base_variable_with_function_calls: function_call . - $default reduce using rule 351 (base_variable_with_function_calls) + $default reduce using rule 349 (base_variable_with_function_calls) state 85 280 function_call: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')' 282 | fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')' - 349 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects - 411 class_constant: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING + 347 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects + 409 class_constant: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 180 @@ -3448,7 +3440,7 @@ state 91 219 | variable . T_SL_EQUAL expr 220 | variable . T_SR_EQUAL expr 331 r_variable: variable . - 335 rw_variable: variable . @56 + 333 rw_variable: variable . '=' shift, and go to state 210 T_SR_EQUAL shift, and go to state 211 @@ -3463,75 +3455,73 @@ state 91 T_MINUS_EQUAL shift, and go to state 220 T_PLUS_EQUAL shift, and go to state 221 - T_DEC reduce using rule 334 (@56) - T_INC reduce using rule 334 (@56) + T_DEC reduce using rule 333 (rw_variable) + T_INC reduce using rule 333 (rw_variable) $default reduce using rule 331 (r_variable) - @56 go to state 222 - state 92 284 function_call: variable_without_objects . '(' @52 function_call_parameter_list ')' - '(' shift, and go to state 223 + '(' shift, and go to state 222 state 93 - 354 base_variable: static_member . + 352 base_variable: static_member . - $default reduce using rule 354 (base_variable) + $default reduce using rule 352 (base_variable) state 94 - 338 variable: base_variable_with_function_calls . T_OBJECT_OPERATOR @57 object_property @58 method_or_not variable_properties - 339 | base_variable_with_function_calls . + 336 variable: base_variable_with_function_calls . T_OBJECT_OPERATOR @55 object_property @56 method_or_not variable_properties + 337 | base_variable_with_function_calls . - T_OBJECT_OPERATOR shift, and go to state 224 + T_OBJECT_OPERATOR shift, and go to state 223 - $default reduce using rule 339 (variable) + $default reduce using rule 337 (variable) state 95 - 350 base_variable_with_function_calls: base_variable . + 348 base_variable_with_function_calls: base_variable . - $default reduce using rule 350 (base_variable_with_function_calls) + $default reduce using rule 348 (base_variable_with_function_calls) state 96 - 347 variable_without_objects: reference_variable . - 352 base_variable: reference_variable . - 355 reference_variable: reference_variable . '[' dim_offset ']' - 356 | reference_variable . '{' expr '}' + 345 variable_without_objects: reference_variable . + 350 base_variable: reference_variable . + 353 reference_variable: reference_variable . '[' dim_offset ']' + 354 | reference_variable . '{' expr '}' - '[' shift, and go to state 225 - '{' shift, and go to state 226 + '[' shift, and go to state 224 + '{' shift, and go to state 225 - '(' reduce using rule 347 (variable_without_objects) - $default reduce using rule 352 (base_variable) + '(' reduce using rule 345 (variable_without_objects) + $default reduce using rule 350 (base_variable) state 97 - 357 reference_variable: compound_variable . + 355 reference_variable: compound_variable . - $default reduce using rule 357 (reference_variable) + $default reduce using rule 355 (reference_variable) state 98 - 348 variable_without_objects: simple_indirect_reference . reference_variable - 353 base_variable: simple_indirect_reference . reference_variable - 371 simple_indirect_reference: simple_indirect_reference . '$' + 346 variable_without_objects: simple_indirect_reference . reference_variable + 351 base_variable: simple_indirect_reference . reference_variable + 369 simple_indirect_reference: simple_indirect_reference . '$' T_VARIABLE shift, and go to state 33 - '$' shift, and go to state 227 + '$' shift, and go to state 226 - reference_variable go to state 228 + reference_variable go to state 227 compound_variable go to state 97 @@ -3577,7 +3567,7 @@ state 101 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 407 internal_functions_in_yacc: T_REQUIRE_ONCE expr . + 405 internal_functions_in_yacc: T_REQUIRE_ONCE expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -3606,7 +3596,7 @@ state 101 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 407 (internal_functions_in_yacc) + $default reduce using rule 405 (internal_functions_in_yacc) state 102 @@ -3637,7 +3627,7 @@ state 102 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 406 internal_functions_in_yacc: T_REQUIRE expr . + 404 internal_functions_in_yacc: T_REQUIRE expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -3666,12 +3656,12 @@ state 102 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 406 (internal_functions_in_yacc) + $default reduce using rule 404 (internal_functions_in_yacc) state 103 - 405 internal_functions_in_yacc: T_EVAL '(' . expr ')' + 403 internal_functions_in_yacc: T_EVAL '(' . expr ')' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -3722,7 +3712,7 @@ state 103 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 229 + expr go to state 228 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -3765,7 +3755,7 @@ state 104 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 404 internal_functions_in_yacc: T_INCLUDE_ONCE expr . + 402 internal_functions_in_yacc: T_INCLUDE_ONCE expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -3794,7 +3784,7 @@ state 104 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 404 (internal_functions_in_yacc) + $default reduce using rule 402 (internal_functions_in_yacc) state 105 @@ -3825,7 +3815,7 @@ state 105 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 403 internal_functions_in_yacc: T_INCLUDE expr . + 401 internal_functions_in_yacc: T_INCLUDE expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -3854,7 +3844,7 @@ state 105 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 403 (internal_functions_in_yacc) + $default reduce using rule 401 (internal_functions_in_yacc) state 106 @@ -4101,7 +4091,7 @@ state 111 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 230 + expr go to state 229 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -4361,9 +4351,9 @@ state 120 280 function_call: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')' 282 | fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')' - 349 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects + 347 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects - T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 231 + T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 230 state 121 @@ -4375,11 +4365,9 @@ state 121 state 122 - 335 rw_variable: variable . @56 + 333 rw_variable: variable . - $default reduce using rule 334 (@56) - - @56 go to state 222 + $default reduce using rule 333 (rw_variable) state 123 @@ -4433,9 +4421,9 @@ state 125 state 126 - 349 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects + 347 static_member: fully_qualified_class_name . T_PAAMAYIM_NEKUDOTAYIM variable_without_objects - T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 232 + T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 231 state 127 @@ -4444,7 +4432,7 @@ state 127 $default reduce using rule 207 (@41) - @41 go to state 233 + @41 go to state 232 state 128 @@ -4459,32 +4447,32 @@ state 129 290 dynamic_class_name_reference: base_variable . T_OBJECT_OPERATOR @53 object_property @54 dynamic_class_name_variable_properties 291 | base_variable . - T_OBJECT_OPERATOR shift, and go to state 234 + T_OBJECT_OPERATOR shift, and go to state 233 $default reduce using rule 291 (dynamic_class_name_reference) state 130 - 352 base_variable: reference_variable . - 355 reference_variable: reference_variable . '[' dim_offset ']' - 356 | reference_variable . '{' expr '}' + 350 base_variable: reference_variable . + 353 reference_variable: reference_variable . '[' dim_offset ']' + 354 | reference_variable . '{' expr '}' - '[' shift, and go to state 225 - '{' shift, and go to state 226 + '[' shift, and go to state 224 + '{' shift, and go to state 225 - $default reduce using rule 352 (base_variable) + $default reduce using rule 350 (base_variable) state 131 - 353 base_variable: simple_indirect_reference . reference_variable - 371 simple_indirect_reference: simple_indirect_reference . '$' + 351 base_variable: simple_indirect_reference . reference_variable + 369 simple_indirect_reference: simple_indirect_reference . '$' T_VARIABLE shift, and go to state 33 - '$' shift, and go to state 227 + '$' shift, and go to state 226 - reference_variable go to state 235 + reference_variable go to state 234 compound_variable go to state 97 @@ -4533,7 +4521,7 @@ state 132 T_FILE shift, and go to state 66 T_START_HEREDOC shift, and go to state 67 '(' shift, and go to state 68 - ')' shift, and go to state 236 + ')' shift, and go to state 235 '$' shift, and go to state 71 '`' shift, and go to state 72 '"' shift, and go to state 73 @@ -4543,7 +4531,7 @@ state 132 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 237 + expr go to state 236 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -4619,7 +4607,7 @@ state 134 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 238 + expr go to state 237 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -4640,7 +4628,7 @@ state 135 $default reduce using rule 277 (@49) - @49 go to state 239 + @49 go to state 238 state 136 @@ -4648,8 +4636,8 @@ state 136 45 unticked_statement: T_ECHO echo_expr_list . ';' 194 echo_expr_list: echo_expr_list . ',' expr - ',' shift, and go to state 240 - ';' shift, and go to state 241 + ',' shift, and go to state 239 + ';' shift, and go to state 240 state 137 @@ -4780,7 +4768,7 @@ state 138 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 242 + statement go to state 241 unticked_statement go to state 76 expr_without_variable go to state 83 function_call go to state 84 @@ -4808,7 +4796,7 @@ state 139 $default reduce using rule 24 (@7) - @7 go to state 243 + @7 go to state 242 state 140 @@ -4861,14 +4849,14 @@ state 140 $default reduce using rule 196 (for_expr) - for_expr go to state 244 - non_empty_for_expr go to state 245 + for_expr go to state 243 + non_empty_for_expr go to state 244 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 246 + expr go to state 245 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -4932,7 +4920,7 @@ state 141 '`' shift, and go to state 72 '"' shift, and go to state 73 - expr_without_variable go to state 247 + expr_without_variable go to state 246 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -4940,7 +4928,7 @@ state 141 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 248 + variable go to state 247 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -4956,7 +4944,7 @@ state 142 57 unticked_statement: T_DECLARE @19 . '(' declare_list ')' declare_statement - '(' shift, and go to state 249 + '(' shift, and go to state 248 state 143 @@ -5012,7 +5000,7 @@ state 143 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 250 + expr go to state 249 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -5090,7 +5078,7 @@ state 145 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ';' shift, and go to state 251 + ';' shift, and go to state 250 state 146 @@ -5156,18 +5144,18 @@ state 147 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ';' shift, and go to state 252 + ';' shift, and go to state 251 state 148 84 unticked_function_declaration_statement: T_FUNCTION @27 . is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}' - '&' shift, and go to state 253 + '&' shift, and go to state 252 $default reduce using rule 80 (is_reference) - is_reference go to state 254 + is_reference go to state 253 state 149 @@ -5182,7 +5170,7 @@ state 150 41 unticked_statement: T_RETURN expr_without_variable . ';' 330 expr: expr_without_variable . - ';' shift, and go to state 255 + ';' shift, and go to state 254 $default reduce using rule 330 (expr) @@ -5262,7 +5250,7 @@ state 152 219 | variable . T_SL_EQUAL expr 220 | variable . T_SR_EQUAL expr 331 r_variable: variable . - 335 rw_variable: variable . @56 + 333 rw_variable: variable . '=' shift, and go to state 210 T_SR_EQUAL shift, and go to state 211 @@ -5276,20 +5264,18 @@ state 152 T_MUL_EQUAL shift, and go to state 219 T_MINUS_EQUAL shift, and go to state 220 T_PLUS_EQUAL shift, and go to state 221 - ';' shift, and go to state 256 + ';' shift, and go to state 255 - T_DEC reduce using rule 334 (@56) - T_INC reduce using rule 334 (@56) + T_DEC reduce using rule 333 (rw_variable) + T_INC reduce using rule 333 (rw_variable) $default reduce using rule 331 (r_variable) - @56 go to state 222 - state 153 64 unticked_statement: T_TRY @20 . '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches - '{' shift, and go to state 257 + '{' shift, and go to state 256 state 154 @@ -5348,7 +5334,7 @@ state 154 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ';' shift, and go to state 258 + ';' shift, and go to state 257 state 155 @@ -5362,14 +5348,14 @@ state 156 77 use_filename: '(' . T_CONSTANT_ENCAPSED_STRING ')' - T_CONSTANT_ENCAPSED_STRING shift, and go to state 259 + T_CONSTANT_ENCAPSED_STRING shift, and go to state 258 state 157 48 unticked_statement: T_USE use_filename . ';' - ';' shift, and go to state 260 + ';' shift, and go to state 259 state 158 @@ -5386,13 +5372,13 @@ state 159 T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 - '{' shift, and go to state 261 + '{' shift, and go to state 260 '$' shift, and go to state 71 function_call go to state 84 fully_qualified_class_name go to state 120 - r_variable go to state 262 - variable go to state 263 + r_variable go to state 261 + variable go to state 262 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -5407,8 +5393,8 @@ state 160 43 unticked_statement: T_GLOBAL global_var_list . ';' 157 global_var_list: global_var_list . ',' global_var - ',' shift, and go to state 264 - ';' shift, and go to state 265 + ',' shift, and go to state 263 + ';' shift, and go to state 264 state 161 @@ -5437,7 +5423,7 @@ state 164 164 static_var_list: T_VARIABLE . 165 | T_VARIABLE . '=' static_scalar - '=' shift, and go to state 266 + '=' shift, and go to state 265 $default reduce using rule 164 (static_var_list) @@ -5448,8 +5434,8 @@ state 165 162 static_var_list: static_var_list . ',' T_VARIABLE 163 | static_var_list . ',' T_VARIABLE '=' static_scalar - ',' shift, and go to state 267 - ';' shift, and go to state 268 + ',' shift, and go to state 266 + ';' shift, and go to state 267 state 166 @@ -5460,11 +5446,11 @@ state 166 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - unset_variables go to state 269 - unset_variable go to state 270 + unset_variables go to state 268 + unset_variable go to state 269 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 271 + variable go to state 270 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -5476,7 +5462,7 @@ state 166 state 167 - 401 internal_functions_in_yacc: T_ISSET '(' . isset_variables ')' + 399 internal_functions_in_yacc: T_ISSET '(' . isset_variables ')' T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -5484,7 +5470,7 @@ state 167 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 272 + variable go to state 271 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -5492,12 +5478,12 @@ state 167 reference_variable go to state 96 compound_variable go to state 97 simple_indirect_reference go to state 98 - isset_variables go to state 273 + isset_variables go to state 272 state 168 - 402 internal_functions_in_yacc: T_EMPTY '(' . variable ')' + 400 internal_functions_in_yacc: T_EMPTY '(' . variable ')' T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -5505,7 +5491,7 @@ state 168 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 274 + variable go to state 273 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -5519,7 +5505,7 @@ state 169 8 top_statement: T_HALT_COMPILER '(' . ')' ';' - ')' shift, and go to state 275 + ')' shift, and go to state 274 state 170 @@ -5528,7 +5514,7 @@ state 170 $default reduce using rule 201 (@39) - @39 go to state 276 + @39 go to state 275 state 171 @@ -5541,7 +5527,7 @@ state 171 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 277 + '&' shift, and go to state 276 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -5580,14 +5566,14 @@ state 171 '`' shift, and go to state 72 '"' shift, and go to state 73 - $default reduce using rule 378 (array_pair_list) + $default reduce using rule 376 (array_pair_list) expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 278 + expr go to state 277 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -5598,8 +5584,8 @@ state 171 reference_variable go to state 96 compound_variable go to state 97 simple_indirect_reference go to state 98 - array_pair_list go to state 279 - non_empty_array_pair_list go to state 280 + array_pair_list go to state 278 + non_empty_array_pair_list go to state 279 internal_functions_in_yacc go to state 99 class_constant go to state 100 @@ -5607,16 +5593,16 @@ state 171 state 172 320 scalar: T_START_HEREDOC encaps_list . T_END_HEREDOC - 388 encaps_list: encaps_list . encaps_var - 389 | encaps_list . T_ENCAPSED_AND_WHITESPACE + 386 encaps_list: encaps_list . encaps_var + 387 | encaps_list . T_ENCAPSED_AND_WHITESPACE - T_VARIABLE shift, and go to state 281 - T_ENCAPSED_AND_WHITESPACE shift, and go to state 282 - T_END_HEREDOC shift, and go to state 283 - T_DOLLAR_OPEN_CURLY_BRACES shift, and go to state 284 - T_CURLY_OPEN shift, and go to state 285 + T_VARIABLE shift, and go to state 280 + T_ENCAPSED_AND_WHITESPACE shift, and go to state 281 + T_END_HEREDOC shift, and go to state 282 + T_DOLLAR_OPEN_CURLY_BRACES shift, and go to state 283 + T_CURLY_OPEN shift, and go to state 284 - encaps_var go to state 286 + encaps_var go to state 285 state 173 @@ -5675,7 +5661,7 @@ state 173 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 287 + ')' shift, and go to state 286 state 174 @@ -5683,16 +5669,16 @@ state 174 10 inner_statement_list: inner_statement_list . @2 inner_statement 17 unticked_statement: '{' inner_statement_list . '}' - '}' shift, and go to state 288 + '}' shift, and go to state 287 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 state 175 - 359 compound_variable: '$' '{' . expr '}' + 357 compound_variable: '$' '{' . expr '}' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -5743,7 +5729,7 @@ state 175 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 290 + expr go to state 289 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -5761,42 +5747,42 @@ state 175 state 176 275 expr_without_variable: '`' encaps_list . '`' - 388 encaps_list: encaps_list . encaps_var - 389 | encaps_list . T_ENCAPSED_AND_WHITESPACE + 386 encaps_list: encaps_list . encaps_var + 387 | encaps_list . T_ENCAPSED_AND_WHITESPACE - T_VARIABLE shift, and go to state 281 - T_ENCAPSED_AND_WHITESPACE shift, and go to state 282 - T_DOLLAR_OPEN_CURLY_BRACES shift, and go to state 284 - T_CURLY_OPEN shift, and go to state 285 - '`' shift, and go to state 291 + T_VARIABLE shift, and go to state 280 + T_ENCAPSED_AND_WHITESPACE shift, and go to state 281 + T_DOLLAR_OPEN_CURLY_BRACES shift, and go to state 283 + T_CURLY_OPEN shift, and go to state 284 + '`' shift, and go to state 290 - encaps_var go to state 286 + encaps_var go to state 285 state 177 319 scalar: '"' encaps_list . '"' - 388 encaps_list: encaps_list . encaps_var - 389 | encaps_list . T_ENCAPSED_AND_WHITESPACE + 386 encaps_list: encaps_list . encaps_var + 387 | encaps_list . T_ENCAPSED_AND_WHITESPACE - T_VARIABLE shift, and go to state 281 - T_ENCAPSED_AND_WHITESPACE shift, and go to state 282 - T_DOLLAR_OPEN_CURLY_BRACES shift, and go to state 284 - T_CURLY_OPEN shift, and go to state 285 - '"' shift, and go to state 292 + T_VARIABLE shift, and go to state 280 + T_ENCAPSED_AND_WHITESPACE shift, and go to state 281 + T_DOLLAR_OPEN_CURLY_BRACES shift, and go to state 283 + T_CURLY_OPEN shift, and go to state 284 + '"' shift, and go to state 291 - encaps_var go to state 286 + encaps_var go to state 285 state 178 86 unticked_class_declaration_statement: class_entry_type T_STRING . extends_from @29 implements_list '{' class_statement_list '}' - T_EXTENDS shift, and go to state 293 + T_EXTENDS shift, and go to state 292 $default reduce using rule 92 (extends_from) - extends_from go to state 294 + extends_from go to state 293 state 179 @@ -5805,24 +5791,24 @@ state 179 $default reduce using rule 87 (@30) - @30 go to state 295 + @30 go to state 294 state 180 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @50 function_call_parameter_list ')' 282 | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @51 function_call_parameter_list ')' - 349 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects - 411 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING + 347 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects + 409 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING - T_STRING shift, and go to state 296 + T_STRING shift, and go to state 295 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - variable_without_objects go to state 297 - reference_variable go to state 298 + variable_without_objects go to state 296 + reference_variable go to state 297 compound_variable go to state 97 - simple_indirect_reference go to state 299 + simple_indirect_reference go to state 298 state 181 @@ -5831,7 +5817,7 @@ state 181 $default reduce using rule 229 (@44) - @44 go to state 300 + @44 go to state 299 state 182 @@ -5887,7 +5873,7 @@ state 182 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 301 + expr go to state 300 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -5908,7 +5894,7 @@ state 183 $default reduce using rule 231 (@45) - @45 go to state 302 + @45 go to state 301 state 184 @@ -5917,7 +5903,7 @@ state 184 $default reduce using rule 259 (@46) - @46 go to state 303 + @46 go to state 302 state 185 @@ -5926,7 +5912,7 @@ state 185 $default reduce using rule 225 (@42) - @42 go to state 304 + @42 go to state 303 state 186 @@ -5935,7 +5921,7 @@ state 186 $default reduce using rule 227 (@43) - @43 go to state 305 + @43 go to state 304 state 187 @@ -5991,7 +5977,7 @@ state 187 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 306 + expr go to state 305 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6059,7 +6045,7 @@ state 188 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 307 + expr go to state 306 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6127,7 +6113,7 @@ state 189 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 308 + expr go to state 307 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6195,7 +6181,7 @@ state 190 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 309 + expr go to state 308 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6263,7 +6249,7 @@ state 191 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 310 + expr go to state 309 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6331,7 +6317,7 @@ state 192 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 311 + expr go to state 310 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6399,7 +6385,7 @@ state 193 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 312 + expr go to state 311 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6467,7 +6453,7 @@ state 194 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 313 + expr go to state 312 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6535,7 +6521,7 @@ state 195 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 314 + expr go to state 313 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6603,7 +6589,7 @@ state 196 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 315 + expr go to state 314 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6671,7 +6657,7 @@ state 197 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 316 + expr go to state 315 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6739,7 +6725,7 @@ state 198 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 317 + expr go to state 316 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6807,7 +6793,7 @@ state 199 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 318 + expr go to state 317 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6875,7 +6861,7 @@ state 200 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 319 + expr go to state 318 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -6943,7 +6929,7 @@ state 201 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 320 + expr go to state 319 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7011,7 +6997,7 @@ state 202 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 321 + expr go to state 320 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7079,7 +7065,7 @@ state 203 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 322 + expr go to state 321 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7147,7 +7133,7 @@ state 204 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 323 + expr go to state 322 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7215,7 +7201,7 @@ state 205 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 324 + expr go to state 323 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7239,7 +7225,7 @@ state 206 '$' shift, and go to state 71 fully_qualified_class_name go to state 126 - class_name_reference go to state 325 + class_name_reference go to state 324 dynamic_class_name_reference go to state 128 static_member go to state 93 base_variable go to state 129 @@ -7281,7 +7267,7 @@ state 210 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 326 + '&' shift, and go to state 325 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -7325,7 +7311,7 @@ state 210 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 327 + expr go to state 326 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7393,7 +7379,7 @@ state 211 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 328 + expr go to state 327 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7461,7 +7447,7 @@ state 212 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 329 + expr go to state 328 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7529,7 +7515,7 @@ state 213 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 330 + expr go to state 329 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7597,7 +7583,7 @@ state 214 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 331 + expr go to state 330 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7665,7 +7651,7 @@ state 215 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 332 + expr go to state 331 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7733,7 +7719,7 @@ state 216 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 333 + expr go to state 332 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7801,7 +7787,7 @@ state 217 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 334 + expr go to state 333 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7869,7 +7855,7 @@ state 218 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 335 + expr go to state 334 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -7937,7 +7923,7 @@ state 219 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 336 + expr go to state 335 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8005,7 +7991,7 @@ state 220 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 337 + expr go to state 336 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8073,7 +8059,7 @@ state 221 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 338 + expr go to state 337 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8090,32 +8076,25 @@ state 221 state 222 - 335 rw_variable: variable @56 . - - $default reduce using rule 335 (rw_variable) - - -state 223 - 284 function_call: variable_without_objects '(' . @52 function_call_parameter_list ')' $default reduce using rule 283 (@52) - @52 go to state 339 + @52 go to state 338 -state 224 +state 223 - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR . @57 object_property @58 method_or_not variable_properties + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR . @55 object_property @56 method_or_not variable_properties - $default reduce using rule 336 (@57) + $default reduce using rule 334 (@55) - @57 go to state 340 + @55 go to state 339 -state 225 +state 224 - 355 reference_variable: reference_variable '[' . dim_offset ']' + 353 reference_variable: reference_variable '[' . dim_offset ']' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -8161,14 +8140,14 @@ state 225 '`' shift, and go to state 72 '"' shift, and go to state 73 - $default reduce using rule 360 (dim_offset) + $default reduce using rule 358 (dim_offset) expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 341 + expr go to state 340 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8178,15 +8157,15 @@ state 225 base_variable go to state 95 reference_variable go to state 96 compound_variable go to state 97 - dim_offset go to state 342 + dim_offset go to state 341 simple_indirect_reference go to state 98 internal_functions_in_yacc go to state 99 class_constant go to state 100 -state 226 +state 225 - 356 reference_variable: reference_variable '{' . expr '}' + 354 reference_variable: reference_variable '{' . expr '}' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -8237,7 +8216,7 @@ state 226 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 343 + expr go to state 342 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8252,31 +8231,31 @@ state 226 class_constant go to state 100 -state 227 +state 226 - 359 compound_variable: '$' . '{' expr '}' - 371 simple_indirect_reference: simple_indirect_reference '$' . + 357 compound_variable: '$' . '{' expr '}' + 369 simple_indirect_reference: simple_indirect_reference '$' . '{' shift, and go to state 175 - $default reduce using rule 371 (simple_indirect_reference) + $default reduce using rule 369 (simple_indirect_reference) -state 228 +state 227 - 348 variable_without_objects: simple_indirect_reference reference_variable . - 353 base_variable: simple_indirect_reference reference_variable . - 355 reference_variable: reference_variable . '[' dim_offset ']' - 356 | reference_variable . '{' expr '}' + 346 variable_without_objects: simple_indirect_reference reference_variable . + 351 base_variable: simple_indirect_reference reference_variable . + 353 reference_variable: reference_variable . '[' dim_offset ']' + 354 | reference_variable . '{' expr '}' - '[' shift, and go to state 225 - '{' shift, and go to state 226 + '[' shift, and go to state 224 + '{' shift, and go to state 225 - '(' reduce using rule 348 (variable_without_objects) - $default reduce using rule 353 (base_variable) + '(' reduce using rule 346 (variable_without_objects) + $default reduce using rule 351 (base_variable) -state 229 +state 228 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -8304,7 +8283,7 @@ state 229 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 405 internal_functions_in_yacc: T_EVAL '(' expr . ')' + 403 internal_functions_in_yacc: T_EVAL '(' expr . ')' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -8332,10 +8311,10 @@ state 229 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 344 + ')' shift, and go to state 343 -state 230 +state 229 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -8368,75 +8347,75 @@ state 230 $default reduce using rule 272 (expr_without_variable) -state 231 +state 230 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . T_STRING '(' @50 function_call_parameter_list ')' 282 | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects '(' @51 function_call_parameter_list ')' - 349 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects + 347 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects - T_STRING shift, and go to state 345 + T_STRING shift, and go to state 344 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - variable_without_objects go to state 297 - reference_variable go to state 298 + variable_without_objects go to state 296 + reference_variable go to state 297 compound_variable go to state 97 - simple_indirect_reference go to state 299 + simple_indirect_reference go to state 298 -state 232 +state 231 - 349 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects + 347 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM . variable_without_objects T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - variable_without_objects go to state 346 - reference_variable go to state 298 + variable_without_objects go to state 345 + reference_variable go to state 297 compound_variable go to state 97 - simple_indirect_reference go to state 299 + simple_indirect_reference go to state 298 -state 233 +state 232 208 expr_without_variable: T_NEW class_name_reference @41 . ctor_arguments - '(' shift, and go to state 347 + '(' shift, and go to state 346 $default reduce using rule 298 (ctor_arguments) - ctor_arguments go to state 348 + ctor_arguments go to state 347 -state 234 +state 233 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR . @53 object_property @54 dynamic_class_name_variable_properties $default reduce using rule 288 (@53) - @53 go to state 349 + @53 go to state 348 -state 235 +state 234 - 353 base_variable: simple_indirect_reference reference_variable . - 355 reference_variable: reference_variable . '[' dim_offset ']' - 356 | reference_variable . '{' expr '}' + 351 base_variable: simple_indirect_reference reference_variable . + 353 reference_variable: reference_variable . '[' dim_offset ']' + 354 | reference_variable . '{' expr '}' - '[' shift, and go to state 225 - '{' shift, and go to state 226 + '[' shift, and go to state 224 + '{' shift, and go to state 225 - $default reduce using rule 353 (base_variable) + $default reduce using rule 351 (base_variable) -state 236 +state 235 296 exit_expr: '(' ')' . $default reduce using rule 296 (exit_expr) -state 237 +state 236 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -8492,10 +8471,10 @@ state 237 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 350 + ')' shift, and go to state 349 -state 238 +state 237 20 unticked_statement: T_IF '(' expr . ')' @3 statement @4 elseif_list else_single 23 | T_IF '(' expr . ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';' @@ -8552,10 +8531,10 @@ state 238 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 351 + ')' shift, and go to state 350 -state 239 +state 238 278 function_call: T_STRING '(' @49 . function_call_parameter_list ')' @@ -8565,7 +8544,7 @@ state 239 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 352 + '&' shift, and go to state 351 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -8606,9 +8585,9 @@ state 239 $default reduce using rule 150 (function_call_parameter_list) - function_call_parameter_list go to state 353 - non_empty_function_call_parameter_list go to state 354 - expr_without_variable go to state 355 + function_call_parameter_list go to state 352 + non_empty_function_call_parameter_list go to state 353 + expr_without_variable go to state 354 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -8616,7 +8595,7 @@ state 239 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 356 + variable go to state 355 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -8628,7 +8607,7 @@ state 239 class_constant go to state 100 -state 240 +state 239 194 echo_expr_list: echo_expr_list ',' . expr @@ -8681,7 +8660,7 @@ state 240 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 357 + expr go to state 356 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8696,21 +8675,21 @@ state 240 class_constant go to state 100 -state 241 +state 240 45 unticked_statement: T_ECHO echo_expr_list ';' . $default reduce using rule 45 (unticked_statement) -state 242 +state 241 29 unticked_statement: T_DO @9 statement . T_WHILE '(' @10 expr ')' ';' - T_WHILE shift, and go to state 358 + T_WHILE shift, and go to state 357 -state 243 +state 242 26 unticked_statement: T_WHILE '(' @7 . expr ')' @8 while_statement @@ -8763,7 +8742,7 @@ state 243 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 359 + expr go to state 358 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -8778,24 +8757,24 @@ state 243 class_constant go to state 100 -state 244 +state 243 33 unticked_statement: T_FOR '(' for_expr . ';' @11 for_expr ';' @12 for_expr ')' @13 for_statement - ';' shift, and go to state 360 + ';' shift, and go to state 359 -state 245 +state 244 197 for_expr: non_empty_for_expr . 199 non_empty_for_expr: non_empty_for_expr . ',' @38 expr - ',' shift, and go to state 361 + ',' shift, and go to state 360 $default reduce using rule 197 (for_expr) -state 246 +state 245 200 non_empty_for_expr: expr . 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -8855,17 +8834,17 @@ state 246 $default reduce using rule 200 (non_empty_for_expr) -state 247 +state 246 55 unticked_statement: T_FOREACH '(' expr_without_variable . T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement 330 expr: expr_without_variable . - T_AS shift, and go to state 362 + T_AS shift, and go to state 361 $default reduce using rule 330 (expr) -state 248 +state 247 52 unticked_statement: T_FOREACH '(' variable . T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement 203 expr_without_variable: variable . '=' expr @@ -8883,7 +8862,7 @@ state 248 219 | variable . T_SL_EQUAL expr 220 | variable . T_SR_EQUAL expr 331 r_variable: variable . - 335 rw_variable: variable . @56 + 333 rw_variable: variable . '=' shift, and go to state 210 T_SR_EQUAL shift, and go to state 211 @@ -8897,25 +8876,23 @@ state 248 T_MUL_EQUAL shift, and go to state 219 T_MINUS_EQUAL shift, and go to state 220 T_PLUS_EQUAL shift, and go to state 221 - T_AS shift, and go to state 363 + T_AS shift, and go to state 362 - T_DEC reduce using rule 334 (@56) - T_INC reduce using rule 334 (@56) + T_DEC reduce using rule 333 (rw_variable) + T_INC reduce using rule 333 (rw_variable) $default reduce using rule 331 (r_variable) - @56 go to state 222 - -state 249 +state 248 57 unticked_statement: T_DECLARE @19 '(' . declare_list ')' declare_statement - T_STRING shift, and go to state 364 + T_STRING shift, and go to state 363 - declare_list go to state 365 + declare_list go to state 364 -state 250 +state 249 35 unticked_statement: T_SWITCH '(' expr . ')' @14 switch_case_list 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -8971,82 +8948,82 @@ state 250 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 366 + ')' shift, and go to state 365 -state 251 +state 250 37 unticked_statement: T_BREAK expr ';' . $default reduce using rule 37 (unticked_statement) -state 252 +state 251 39 unticked_statement: T_CONTINUE expr ';' . $default reduce using rule 39 (unticked_statement) -state 253 +state 252 81 is_reference: '&' . $default reduce using rule 81 (is_reference) -state 254 +state 253 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference . T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}' - T_STRING shift, and go to state 367 + T_STRING shift, and go to state 366 -state 255 +state 254 41 unticked_statement: T_RETURN expr_without_variable ';' . $default reduce using rule 41 (unticked_statement) -state 256 +state 255 42 unticked_statement: T_RETURN variable ';' . $default reduce using rule 42 (unticked_statement) -state 257 +state 256 64 unticked_statement: T_TRY @20 '{' . inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 368 + inner_statement_list go to state 367 -state 258 +state 257 65 unticked_statement: T_THROW expr ';' . $default reduce using rule 65 (unticked_statement) -state 259 +state 258 77 use_filename: '(' T_CONSTANT_ENCAPSED_STRING . ')' - ')' shift, and go to state 369 + ')' shift, and go to state 368 -state 260 +state 259 48 unticked_statement: T_USE use_filename ';' . $default reduce using rule 48 (unticked_statement) -state 261 +state 260 161 global_var: '$' '{' . expr '}' @@ -9099,7 +9076,7 @@ state 261 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 370 + expr go to state 369 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -9114,141 +9091,141 @@ state 261 class_constant go to state 100 -state 262 +state 261 160 global_var: '$' r_variable . $default reduce using rule 160 (global_var) -state 263 +state 262 331 r_variable: variable . $default reduce using rule 331 (r_variable) -state 264 +state 263 157 global_var_list: global_var_list ',' . global_var T_VARIABLE shift, and go to state 158 '$' shift, and go to state 159 - global_var go to state 371 + global_var go to state 370 -state 265 +state 264 43 unticked_statement: T_GLOBAL global_var_list ';' . $default reduce using rule 43 (unticked_statement) -state 266 +state 265 165 static_var_list: T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 377 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 376 + static_class_constant go to state 377 -state 267 +state 266 162 static_var_list: static_var_list ',' . T_VARIABLE 163 | static_var_list ',' . T_VARIABLE '=' static_scalar - T_VARIABLE shift, and go to state 379 + T_VARIABLE shift, and go to state 378 -state 268 +state 267 44 unticked_statement: T_STATIC static_var_list ';' . $default reduce using rule 44 (unticked_statement) -state 269 +state 268 49 unticked_statement: T_UNSET '(' unset_variables . ')' ';' 74 unset_variables: unset_variables . ',' unset_variable - ',' shift, and go to state 380 - ')' shift, and go to state 381 + ',' shift, and go to state 379 + ')' shift, and go to state 380 -state 270 +state 269 73 unset_variables: unset_variable . $default reduce using rule 73 (unset_variables) -state 271 +state 270 75 unset_variable: variable . $default reduce using rule 75 (unset_variable) -state 272 +state 271 - 408 isset_variables: variable . + 406 isset_variables: variable . - $default reduce using rule 408 (isset_variables) + $default reduce using rule 406 (isset_variables) -state 273 +state 272 - 401 internal_functions_in_yacc: T_ISSET '(' isset_variables . ')' - 410 isset_variables: isset_variables . ',' @64 variable + 399 internal_functions_in_yacc: T_ISSET '(' isset_variables . ')' + 408 isset_variables: isset_variables . ',' @62 variable - ',' shift, and go to state 382 - ')' shift, and go to state 383 + ',' shift, and go to state 381 + ')' shift, and go to state 382 -state 274 +state 273 - 402 internal_functions_in_yacc: T_EMPTY '(' variable . ')' + 400 internal_functions_in_yacc: T_EMPTY '(' variable . ')' - ')' shift, and go to state 384 + ')' shift, and go to state 383 -state 275 +state 274 8 top_statement: T_HALT_COMPILER '(' ')' . ';' - ';' shift, and go to state 385 + ';' shift, and go to state 384 -state 276 +state 275 202 expr_without_variable: T_LIST '(' @39 . assignment_list ')' '=' expr T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 - T_LIST shift, and go to state 386 + T_LIST shift, and go to state 385 '$' shift, and go to state 71 - $default reduce using rule 377 (assignment_list_element) + $default reduce using rule 375 (assignment_list_element) function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 387 + variable go to state 386 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -9256,13 +9233,13 @@ state 276 reference_variable go to state 96 compound_variable go to state 97 simple_indirect_reference go to state 98 - assignment_list go to state 388 - assignment_list_element go to state 389 + assignment_list go to state 387 + assignment_list_element go to state 388 -state 277 +state 276 - 387 non_empty_array_pair_list: '&' . w_variable + 385 non_empty_array_pair_list: '&' . w_variable T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -9270,8 +9247,8 @@ state 277 function_call go to state 84 fully_qualified_class_name go to state 120 - w_variable go to state 390 - variable go to state 391 + w_variable go to state 389 + variable go to state 390 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -9281,7 +9258,7 @@ state 277 simple_indirect_reference go to state 98 -state 278 +state 277 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -9309,9 +9286,9 @@ state 278 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 382 non_empty_array_pair_list: expr . T_DOUBLE_ARROW expr - 383 | expr . - 386 | expr . T_DOUBLE_ARROW '&' w_variable + 380 non_empty_array_pair_list: expr . T_DOUBLE_ARROW expr + 381 | expr . + 384 | expr . T_DOUBLE_ARROW '&' w_variable T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -9339,63 +9316,63 @@ state 278 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - T_DOUBLE_ARROW shift, and go to state 392 + T_DOUBLE_ARROW shift, and go to state 391 - $default reduce using rule 383 (non_empty_array_pair_list) + $default reduce using rule 381 (non_empty_array_pair_list) -state 279 +state 278 274 expr_without_variable: T_ARRAY '(' array_pair_list . ')' - ')' shift, and go to state 393 + ')' shift, and go to state 392 -state 280 +state 279 - 379 array_pair_list: non_empty_array_pair_list . possible_comma - 380 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW expr - 381 | non_empty_array_pair_list . ',' expr - 384 | non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW '&' w_variable - 385 | non_empty_array_pair_list . ',' '&' w_variable + 377 array_pair_list: non_empty_array_pair_list . possible_comma + 378 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW expr + 379 | non_empty_array_pair_list . ',' expr + 382 | non_empty_array_pair_list . ',' expr T_DOUBLE_ARROW '&' w_variable + 383 | non_empty_array_pair_list . ',' '&' w_variable - ',' shift, and go to state 394 + ',' shift, and go to state 393 $default reduce using rule 323 (possible_comma) - possible_comma go to state 395 + possible_comma go to state 394 -state 281 +state 280 - 391 encaps_var: T_VARIABLE . - 393 | T_VARIABLE . '[' @63 encaps_var_offset ']' - 394 | T_VARIABLE . T_OBJECT_OPERATOR T_STRING + 389 encaps_var: T_VARIABLE . + 391 | T_VARIABLE . '[' @61 encaps_var_offset ']' + 392 | T_VARIABLE . T_OBJECT_OPERATOR T_STRING - '[' shift, and go to state 396 - T_OBJECT_OPERATOR shift, and go to state 397 + '[' shift, and go to state 395 + T_OBJECT_OPERATOR shift, and go to state 396 - $default reduce using rule 391 (encaps_var) + $default reduce using rule 389 (encaps_var) -state 282 +state 281 - 389 encaps_list: encaps_list T_ENCAPSED_AND_WHITESPACE . + 387 encaps_list: encaps_list T_ENCAPSED_AND_WHITESPACE . - $default reduce using rule 389 (encaps_list) + $default reduce using rule 387 (encaps_list) -state 283 +state 282 320 scalar: T_START_HEREDOC encaps_list T_END_HEREDOC . $default reduce using rule 320 (scalar) -state 284 +state 283 - 395 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES . expr '}' - 396 | T_DOLLAR_OPEN_CURLY_BRACES . T_STRING_VARNAME '[' expr ']' '}' + 393 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES . expr '}' + 394 | T_DOLLAR_OPEN_CURLY_BRACES . T_STRING_VARNAME '[' expr ']' '}' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -9423,7 +9400,7 @@ state 284 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 T_STRING shift, and go to state 31 - T_STRING_VARNAME shift, and go to state 398 + T_STRING_VARNAME shift, and go to state 397 T_VARIABLE shift, and go to state 33 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 T_ISSET shift, and go to state 55 @@ -9446,7 +9423,7 @@ state 284 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 399 + expr go to state 398 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -9461,9 +9438,9 @@ state 284 class_constant go to state 100 -state 285 +state 284 - 397 encaps_var: T_CURLY_OPEN . variable '}' + 395 encaps_var: T_CURLY_OPEN . variable '}' T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -9471,7 +9448,7 @@ state 285 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 400 + variable go to state 399 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -9481,28 +9458,28 @@ state 285 simple_indirect_reference go to state 98 -state 286 +state 285 - 388 encaps_list: encaps_list encaps_var . + 386 encaps_list: encaps_list encaps_var . - $default reduce using rule 388 (encaps_list) + $default reduce using rule 386 (encaps_list) -state 287 +state 286 258 expr_without_variable: '(' expr ')' . $default reduce using rule 258 (expr_without_variable) -state 288 +state 287 17 unticked_statement: '{' inner_statement_list '}' . $default reduce using rule 17 (unticked_statement) -state 289 +state 288 10 inner_statement_list: inner_statement_list @2 . inner_statement @@ -9558,7 +9535,7 @@ state 289 T_UNSET shift, and go to state 54 T_ISSET shift, and go to state 55 T_EMPTY shift, and go to state 56 - T_HALT_COMPILER shift, and go to state 401 + T_HALT_COMPILER shift, and go to state 400 T_CLASS shift, and go to state 58 T_INTERFACE shift, and go to state 59 T_LIST shift, and go to state 60 @@ -9576,11 +9553,11 @@ state 289 '`' shift, and go to state 72 '"' shift, and go to state 73 - inner_statement go to state 402 - statement go to state 403 + inner_statement go to state 401 + statement go to state 402 unticked_statement go to state 76 - function_declaration_statement go to state 404 - class_declaration_statement go to state 405 + function_declaration_statement go to state 403 + class_declaration_statement go to state 404 unticked_function_declaration_statement go to state 79 unticked_class_declaration_statement go to state 80 class_entry_type go to state 81 @@ -9605,7 +9582,7 @@ state 289 class_constant go to state 100 -state 290 +state 289 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -9633,7 +9610,7 @@ state 290 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 359 compound_variable: '$' '{' expr . '}' + 357 compound_variable: '$' '{' expr . '}' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -9661,97 +9638,97 @@ state 290 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - '}' shift, and go to state 406 + '}' shift, and go to state 405 -state 291 +state 290 275 expr_without_variable: '`' encaps_list '`' . $default reduce using rule 275 (expr_without_variable) -state 292 +state 291 319 scalar: '"' encaps_list '"' . $default reduce using rule 319 (scalar) -state 293 +state 292 93 extends_from: T_EXTENDS . fully_qualified_class_name - T_STRING shift, and go to state 407 + T_STRING shift, and go to state 406 - fully_qualified_class_name go to state 408 + fully_qualified_class_name go to state 407 -state 294 +state 293 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from . @29 implements_list '{' class_statement_list '}' $default reduce using rule 85 (@29) - @29 go to state 409 + @29 go to state 408 -state 295 +state 294 88 unticked_class_declaration_statement: interface_entry T_STRING @30 . interface_extends_list '{' class_statement_list '}' - T_EXTENDS shift, and go to state 410 + T_EXTENDS shift, and go to state 409 $default reduce using rule 95 (interface_extends_list) - interface_extends_list go to state 411 + interface_extends_list go to state 410 -state 296 +state 295 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @50 function_call_parameter_list ')' - 411 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . + 409 class_constant: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . - '(' shift, and go to state 412 + '(' shift, and go to state 411 - $default reduce using rule 411 (class_constant) + $default reduce using rule 409 (class_constant) -state 297 +state 296 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . '(' @51 function_call_parameter_list ')' - 349 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . + 347 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . - '(' shift, and go to state 413 + '(' shift, and go to state 412 - $default reduce using rule 349 (static_member) + $default reduce using rule 347 (static_member) -state 298 +state 297 - 347 variable_without_objects: reference_variable . - 355 reference_variable: reference_variable . '[' dim_offset ']' - 356 | reference_variable . '{' expr '}' + 345 variable_without_objects: reference_variable . + 353 reference_variable: reference_variable . '[' dim_offset ']' + 354 | reference_variable . '{' expr '}' - '[' shift, and go to state 225 - '{' shift, and go to state 226 + '[' shift, and go to state 224 + '{' shift, and go to state 225 - $default reduce using rule 347 (variable_without_objects) + $default reduce using rule 345 (variable_without_objects) -state 299 +state 298 - 348 variable_without_objects: simple_indirect_reference . reference_variable - 371 simple_indirect_reference: simple_indirect_reference . '$' + 346 variable_without_objects: simple_indirect_reference . reference_variable + 369 simple_indirect_reference: simple_indirect_reference . '$' T_VARIABLE shift, and go to state 33 - '$' shift, and go to state 227 + '$' shift, and go to state 226 - reference_variable go to state 414 + reference_variable go to state 413 compound_variable go to state 97 -state 300 +state 299 230 expr_without_variable: expr T_LOGICAL_OR @44 . expr @@ -9804,7 +9781,7 @@ state 300 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 415 + expr go to state 414 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -9819,7 +9796,7 @@ state 300 class_constant go to state 100 -state 301 +state 300 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -9877,7 +9854,7 @@ state 301 $default reduce using rule 233 (expr_without_variable) -state 302 +state 301 232 expr_without_variable: expr T_LOGICAL_AND @45 . expr @@ -9930,7 +9907,7 @@ state 302 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 416 + expr go to state 415 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -9945,7 +9922,7 @@ state 302 class_constant go to state 100 -state 303 +state 302 261 expr_without_variable: expr '?' @46 . expr ':' @47 expr @@ -9998,7 +9975,7 @@ state 303 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 417 + expr go to state 416 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -10013,7 +9990,7 @@ state 303 class_constant go to state 100 -state 304 +state 303 226 expr_without_variable: expr T_BOOLEAN_OR @42 . expr @@ -10066,7 +10043,7 @@ state 304 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 418 + expr go to state 417 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -10081,7 +10058,7 @@ state 304 class_constant go to state 100 -state 305 +state 304 228 expr_without_variable: expr T_BOOLEAN_AND @43 . expr @@ -10134,7 +10111,7 @@ state 305 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 419 + expr go to state 418 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -10149,7 +10126,7 @@ state 305 class_constant go to state 100 -state 306 +state 305 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10202,7 +10179,7 @@ state 306 $default reduce using rule 234 (expr_without_variable) -state 307 +state 306 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10254,7 +10231,7 @@ state 307 $default reduce using rule 236 (expr_without_variable) -state 308 +state 307 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10305,7 +10282,7 @@ state 308 $default reduce using rule 235 (expr_without_variable) -state 309 +state 308 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10357,7 +10334,7 @@ state 309 $default reduce using rule 250 (expr_without_variable) -state 310 +state 309 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10409,7 +10386,7 @@ state 310 $default reduce using rule 249 (expr_without_variable) -state 311 +state 310 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10461,7 +10438,7 @@ state 311 $default reduce using rule 252 (expr_without_variable) -state 312 +state 311 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10513,7 +10490,7 @@ state 312 $default reduce using rule 251 (expr_without_variable) -state 313 +state 312 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10561,7 +10538,7 @@ state 313 $default reduce using rule 253 (expr_without_variable) -state 314 +state 313 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10609,7 +10586,7 @@ state 314 $default reduce using rule 255 (expr_without_variable) -state 315 +state 314 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10657,7 +10634,7 @@ state 315 $default reduce using rule 256 (expr_without_variable) -state 316 +state 315 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10705,7 +10682,7 @@ state 316 $default reduce using rule 254 (expr_without_variable) -state 317 +state 316 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10746,7 +10723,7 @@ state 317 $default reduce using rule 244 (expr_without_variable) -state 318 +state 317 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10787,7 +10764,7 @@ state 318 $default reduce using rule 243 (expr_without_variable) -state 319 +state 318 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10825,7 +10802,7 @@ state 319 $default reduce using rule 238 (expr_without_variable) -state 320 +state 319 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10863,7 +10840,7 @@ state 320 $default reduce using rule 239 (expr_without_variable) -state 321 +state 320 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10901,7 +10878,7 @@ state 321 $default reduce using rule 237 (expr_without_variable) -state 322 +state 321 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10936,7 +10913,7 @@ state 322 $default reduce using rule 240 (expr_without_variable) -state 323 +state 322 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -10971,7 +10948,7 @@ state 323 $default reduce using rule 241 (expr_without_variable) -state 324 +state 323 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -11006,26 +10983,26 @@ state 324 $default reduce using rule 242 (expr_without_variable) -state 325 +state 324 257 expr_without_variable: expr T_INSTANCEOF class_name_reference . $default reduce using rule 257 (expr_without_variable) -state 326 +state 325 204 expr_without_variable: variable '=' '&' . variable 206 | variable '=' '&' . T_NEW class_name_reference @40 ctor_arguments - T_NEW shift, and go to state 420 + T_NEW shift, and go to state 419 T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 421 + variable go to state 420 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -11035,7 +11012,7 @@ state 326 simple_indirect_reference go to state 98 -state 327 +state 326 203 expr_without_variable: variable '=' expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11092,7 +11069,7 @@ state 327 $default reduce using rule 203 (expr_without_variable) -state 328 +state 327 220 expr_without_variable: variable T_SR_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11149,7 +11126,7 @@ state 328 $default reduce using rule 220 (expr_without_variable) -state 329 +state 328 219 expr_without_variable: variable T_SL_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11206,7 +11183,7 @@ state 329 $default reduce using rule 219 (expr_without_variable) -state 330 +state 329 218 expr_without_variable: variable T_XOR_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11263,7 +11240,7 @@ state 330 $default reduce using rule 218 (expr_without_variable) -state 331 +state 330 217 expr_without_variable: variable T_OR_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11320,7 +11297,7 @@ state 331 $default reduce using rule 217 (expr_without_variable) -state 332 +state 331 216 expr_without_variable: variable T_AND_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11377,7 +11354,7 @@ state 332 $default reduce using rule 216 (expr_without_variable) -state 333 +state 332 215 expr_without_variable: variable T_MOD_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11434,7 +11411,7 @@ state 333 $default reduce using rule 215 (expr_without_variable) -state 334 +state 333 214 expr_without_variable: variable T_CONCAT_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11491,7 +11468,7 @@ state 334 $default reduce using rule 214 (expr_without_variable) -state 335 +state 334 213 expr_without_variable: variable T_DIV_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11548,7 +11525,7 @@ state 335 $default reduce using rule 213 (expr_without_variable) -state 336 +state 335 212 expr_without_variable: variable T_MUL_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11605,7 +11582,7 @@ state 336 $default reduce using rule 212 (expr_without_variable) -state 337 +state 336 211 expr_without_variable: variable T_MINUS_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11662,7 +11639,7 @@ state 337 $default reduce using rule 211 (expr_without_variable) -state 338 +state 337 210 expr_without_variable: variable T_PLUS_EQUAL expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -11719,7 +11696,7 @@ state 338 $default reduce using rule 210 (expr_without_variable) -state 339 +state 338 284 function_call: variable_without_objects '(' @52 . function_call_parameter_list ')' @@ -11729,7 +11706,7 @@ state 339 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 352 + '&' shift, and go to state 351 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -11770,9 +11747,9 @@ state 339 $default reduce using rule 150 (function_call_parameter_list) - function_call_parameter_list go to state 422 - non_empty_function_call_parameter_list go to state 354 - expr_without_variable go to state 355 + function_call_parameter_list go to state 421 + non_empty_function_call_parameter_list go to state 353 + expr_without_variable go to state 354 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -11780,7 +11757,7 @@ state 339 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 356 + variable go to state 355 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -11792,25 +11769,25 @@ state 339 class_constant go to state 100 -state 340 +state 339 - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 . object_property @58 method_or_not variable_properties + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @55 . object_property @56 method_or_not variable_properties - T_STRING shift, and go to state 423 + T_STRING shift, and go to state 422 T_VARIABLE shift, and go to state 33 - '{' shift, and go to state 424 + '{' shift, and go to state 423 '$' shift, and go to state 71 - variable_without_objects go to state 425 - reference_variable go to state 298 + variable_without_objects go to state 424 + reference_variable go to state 297 compound_variable go to state 97 - object_property go to state 426 - object_dim_list go to state 427 - variable_name go to state 428 - simple_indirect_reference go to state 299 + object_property go to state 425 + object_dim_list go to state 426 + variable_name go to state 427 + simple_indirect_reference go to state 298 -state 341 +state 340 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -11838,7 +11815,7 @@ state 341 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 361 dim_offset: expr . + 359 dim_offset: expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -11867,17 +11844,17 @@ state 341 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 361 (dim_offset) + $default reduce using rule 359 (dim_offset) -state 342 +state 341 - 355 reference_variable: reference_variable '[' dim_offset . ']' + 353 reference_variable: reference_variable '[' dim_offset . ']' - ']' shift, and go to state 429 + ']' shift, and go to state 428 -state 343 +state 342 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -11905,7 +11882,7 @@ state 343 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 356 reference_variable: reference_variable '{' expr . '}' + 354 reference_variable: reference_variable '{' expr . '}' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -11933,31 +11910,31 @@ state 343 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - '}' shift, and go to state 430 + '}' shift, and go to state 429 -state 344 +state 343 - 405 internal_functions_in_yacc: T_EVAL '(' expr ')' . + 403 internal_functions_in_yacc: T_EVAL '(' expr ')' . - $default reduce using rule 405 (internal_functions_in_yacc) + $default reduce using rule 403 (internal_functions_in_yacc) -state 345 +state 344 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING . '(' @50 function_call_parameter_list ')' - '(' shift, and go to state 412 + '(' shift, and go to state 411 -state 346 +state 345 - 349 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . + 347 static_member: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects . - $default reduce using rule 349 (static_member) + $default reduce using rule 347 (static_member) -state 347 +state 346 299 ctor_arguments: '(' . function_call_parameter_list ')' @@ -11967,7 +11944,7 @@ state 347 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 352 + '&' shift, and go to state 351 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -12008,9 +11985,9 @@ state 347 $default reduce using rule 150 (function_call_parameter_list) - function_call_parameter_list go to state 431 - non_empty_function_call_parameter_list go to state 354 - expr_without_variable go to state 355 + function_call_parameter_list go to state 430 + non_empty_function_call_parameter_list go to state 353 + expr_without_variable go to state 354 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -12018,7 +11995,7 @@ state 347 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 356 + variable go to state 355 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -12030,51 +12007,51 @@ state 347 class_constant go to state 100 -state 348 +state 347 208 expr_without_variable: T_NEW class_name_reference @41 ctor_arguments . $default reduce using rule 208 (expr_without_variable) -state 349 +state 348 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 . object_property @54 dynamic_class_name_variable_properties - T_STRING shift, and go to state 423 + T_STRING shift, and go to state 422 T_VARIABLE shift, and go to state 33 - '{' shift, and go to state 424 + '{' shift, and go to state 423 '$' shift, and go to state 71 - variable_without_objects go to state 425 - reference_variable go to state 298 + variable_without_objects go to state 424 + reference_variable go to state 297 compound_variable go to state 97 - object_property go to state 432 - object_dim_list go to state 427 - variable_name go to state 428 - simple_indirect_reference go to state 299 + object_property go to state 431 + object_dim_list go to state 426 + variable_name go to state 427 + simple_indirect_reference go to state 298 -state 350 +state 349 297 exit_expr: '(' expr ')' . $default reduce using rule 297 (exit_expr) -state 351 +state 350 20 unticked_statement: T_IF '(' expr ')' . @3 statement @4 elseif_list else_single 23 | T_IF '(' expr ')' . ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';' - ':' shift, and go to state 433 + ':' shift, and go to state 432 $default reduce using rule 18 (@3) - @3 go to state 434 + @3 go to state 433 -state 352 +state 351 153 non_empty_function_call_parameter_list: '&' . w_variable @@ -12084,8 +12061,8 @@ state 352 function_call go to state 84 fully_qualified_class_name go to state 120 - w_variable go to state 435 - variable go to state 391 + w_variable go to state 434 + variable go to state 390 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -12095,26 +12072,26 @@ state 352 simple_indirect_reference go to state 98 -state 353 +state 352 278 function_call: T_STRING '(' @49 function_call_parameter_list . ')' - ')' shift, and go to state 436 + ')' shift, and go to state 435 -state 354 +state 353 149 function_call_parameter_list: non_empty_function_call_parameter_list . 154 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable 155 | non_empty_function_call_parameter_list . ',' variable 156 | non_empty_function_call_parameter_list . ',' '&' w_variable - ',' shift, and go to state 437 + ',' shift, and go to state 436 $default reduce using rule 149 (function_call_parameter_list) -state 355 +state 354 151 non_empty_function_call_parameter_list: expr_without_variable . 330 expr: expr_without_variable . @@ -12124,7 +12101,7 @@ state 355 $default reduce using rule 330 (expr) -state 356 +state 355 152 non_empty_function_call_parameter_list: variable . 203 expr_without_variable: variable . '=' expr @@ -12142,7 +12119,7 @@ state 356 219 | variable . T_SL_EQUAL expr 220 | variable . T_SR_EQUAL expr 331 r_variable: variable . - 335 rw_variable: variable . @56 + 333 rw_variable: variable . '=' shift, and go to state 210 T_SR_EQUAL shift, and go to state 211 @@ -12158,15 +12135,13 @@ state 356 T_PLUS_EQUAL shift, and go to state 221 ',' reduce using rule 152 (non_empty_function_call_parameter_list) - T_DEC reduce using rule 334 (@56) - T_INC reduce using rule 334 (@56) + T_DEC reduce using rule 333 (rw_variable) + T_INC reduce using rule 333 (rw_variable) ')' reduce using rule 152 (non_empty_function_call_parameter_list) $default reduce using rule 331 (r_variable) - @56 go to state 222 - -state 357 +state 356 194 echo_expr_list: echo_expr_list ',' expr . 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -12226,14 +12201,14 @@ state 357 $default reduce using rule 194 (echo_expr_list) -state 358 +state 357 29 unticked_statement: T_DO @9 statement T_WHILE . '(' @10 expr ')' ';' - '(' shift, and go to state 438 + '(' shift, and go to state 437 -state 359 +state 358 26 unticked_statement: T_WHILE '(' @7 expr . ')' @8 while_statement 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -12289,99 +12264,99 @@ state 359 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 439 + ')' shift, and go to state 438 -state 360 +state 359 33 unticked_statement: T_FOR '(' for_expr ';' . @11 for_expr ';' @12 for_expr ')' @13 for_statement $default reduce using rule 30 (@11) - @11 go to state 440 + @11 go to state 439 -state 361 +state 360 199 non_empty_for_expr: non_empty_for_expr ',' . @38 expr $default reduce using rule 198 (@38) - @38 go to state 441 + @38 go to state 440 -state 362 +state 361 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS . @17 variable foreach_optional_arg ')' @18 foreach_statement $default reduce using rule 53 (@17) - @17 go to state 442 + @17 go to state 441 -state 363 +state 362 52 unticked_statement: T_FOREACH '(' variable T_AS . @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement $default reduce using rule 50 (@15) - @15 go to state 443 + @15 go to state 442 -state 364 +state 363 111 declare_list: T_STRING . '=' static_scalar - '=' shift, and go to state 444 + '=' shift, and go to state 443 -state 365 +state 364 57 unticked_statement: T_DECLARE @19 '(' declare_list . ')' declare_statement 112 declare_list: declare_list . ',' T_STRING '=' static_scalar - ',' shift, and go to state 445 - ')' shift, and go to state 446 + ',' shift, and go to state 444 + ')' shift, and go to state 445 -state 366 +state 365 35 unticked_statement: T_SWITCH '(' expr ')' . @14 switch_case_list $default reduce using rule 34 (@14) - @14 go to state 447 + @14 go to state 446 -state 367 +state 366 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING . @28 '(' parameter_list ')' '{' inner_statement_list '}' $default reduce using rule 83 (@28) - @28 go to state 448 + @28 go to state 447 -state 368 +state 367 10 inner_statement_list: inner_statement_list . @2 inner_statement 64 unticked_statement: T_TRY @20 '{' inner_statement_list . '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches - '}' shift, and go to state 449 + '}' shift, and go to state 448 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 369 +state 368 77 use_filename: '(' T_CONSTANT_ENCAPSED_STRING ')' . $default reduce using rule 77 (use_filename) -state 370 +state 369 161 global_var: '$' '{' expr . '}' 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -12437,109 +12412,109 @@ state 370 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - '}' shift, and go to state 450 + '}' shift, and go to state 449 -state 371 +state 370 157 global_var_list: global_var_list ',' global_var . $default reduce using rule 157 (global_var_list) -state 372 +state 371 310 static_scalar: '+' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 451 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 450 + static_class_constant go to state 377 -state 373 +state 372 311 static_scalar: '-' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 452 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 451 + static_class_constant go to state 377 -state 374 +state 373 309 static_scalar: T_STRING . 314 static_class_constant: T_STRING . T_PAAMAYIM_NEKUDOTAYIM T_STRING - T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 453 + T_PAAMAYIM_NEKUDOTAYIM shift, and go to state 452 $default reduce using rule 309 (static_scalar) -state 375 +state 374 312 static_scalar: T_ARRAY . '(' static_array_pair_list ')' - '(' shift, and go to state 454 + '(' shift, and go to state 453 -state 376 +state 375 308 static_scalar: common_scalar . $default reduce using rule 308 (static_scalar) -state 377 +state 376 165 static_var_list: T_VARIABLE '=' static_scalar . $default reduce using rule 165 (static_var_list) -state 378 +state 377 313 static_scalar: static_class_constant . $default reduce using rule 313 (static_scalar) -state 379 +state 378 162 static_var_list: static_var_list ',' T_VARIABLE . 163 | static_var_list ',' T_VARIABLE . '=' static_scalar - '=' shift, and go to state 455 + '=' shift, and go to state 454 $default reduce using rule 162 (static_var_list) -state 380 +state 379 74 unset_variables: unset_variables ',' . unset_variable @@ -12547,10 +12522,10 @@ state 380 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - unset_variable go to state 456 + unset_variable go to state 455 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 271 + variable go to state 270 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -12560,93 +12535,91 @@ state 380 simple_indirect_reference go to state 98 -state 381 +state 380 49 unticked_statement: T_UNSET '(' unset_variables ')' . ';' - ';' shift, and go to state 457 + ';' shift, and go to state 456 -state 382 +state 381 - 410 isset_variables: isset_variables ',' . @64 variable + 408 isset_variables: isset_variables ',' . @62 variable - $default reduce using rule 409 (@64) + $default reduce using rule 407 (@62) - @64 go to state 458 + @62 go to state 457 + + +state 382 + + 399 internal_functions_in_yacc: T_ISSET '(' isset_variables ')' . + + $default reduce using rule 399 (internal_functions_in_yacc) state 383 - 401 internal_functions_in_yacc: T_ISSET '(' isset_variables ')' . + 400 internal_functions_in_yacc: T_EMPTY '(' variable ')' . - $default reduce using rule 401 (internal_functions_in_yacc) + $default reduce using rule 400 (internal_functions_in_yacc) state 384 - 402 internal_functions_in_yacc: T_EMPTY '(' variable ')' . + 8 top_statement: T_HALT_COMPILER '(' ')' ';' . - $default reduce using rule 402 (internal_functions_in_yacc) + $default reduce using rule 8 (top_statement) state 385 - 8 top_statement: T_HALT_COMPILER '(' ')' ';' . + 374 assignment_list_element: T_LIST . '(' @60 assignment_list ')' - $default reduce using rule 8 (top_statement) + '(' shift, and go to state 458 state 386 - 376 assignment_list_element: T_LIST . '(' @62 assignment_list ')' + 372 assignment_list_element: variable . - '(' shift, and go to state 459 + $default reduce using rule 372 (assignment_list_element) state 387 - 374 assignment_list_element: variable . + 202 expr_without_variable: T_LIST '(' @39 assignment_list . ')' '=' expr + 370 assignment_list: assignment_list . ',' assignment_list_element - $default reduce using rule 374 (assignment_list_element) + ',' shift, and go to state 459 + ')' shift, and go to state 460 state 388 - 202 expr_without_variable: T_LIST '(' @39 assignment_list . ')' '=' expr - 372 assignment_list: assignment_list . ',' assignment_list_element + 371 assignment_list: assignment_list_element . - ',' shift, and go to state 460 - ')' shift, and go to state 461 + $default reduce using rule 371 (assignment_list) state 389 - 373 assignment_list: assignment_list_element . + 385 non_empty_array_pair_list: '&' w_variable . - $default reduce using rule 373 (assignment_list) + $default reduce using rule 385 (non_empty_array_pair_list) state 390 - 387 non_empty_array_pair_list: '&' w_variable . + 332 w_variable: variable . - $default reduce using rule 387 (non_empty_array_pair_list) + $default reduce using rule 332 (w_variable) state 391 - 333 w_variable: variable . @55 - - $default reduce using rule 332 (@55) - - @55 go to state 462 - - -state 392 - - 382 non_empty_array_pair_list: expr T_DOUBLE_ARROW . expr - 386 | expr T_DOUBLE_ARROW . '&' w_variable + 380 non_empty_array_pair_list: expr T_DOUBLE_ARROW . expr + 384 | expr T_DOUBLE_ARROW . '&' w_variable T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -12654,7 +12627,7 @@ state 392 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 463 + '&' shift, and go to state 461 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -12698,7 +12671,7 @@ state 392 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 464 + expr go to state 462 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -12713,20 +12686,20 @@ state 392 class_constant go to state 100 -state 393 +state 392 274 expr_without_variable: T_ARRAY '(' array_pair_list ')' . $default reduce using rule 274 (expr_without_variable) -state 394 +state 393 324 possible_comma: ',' . - 380 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW expr - 381 | non_empty_array_pair_list ',' . expr - 384 | non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW '&' w_variable - 385 | non_empty_array_pair_list ',' . '&' w_variable + 378 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW expr + 379 | non_empty_array_pair_list ',' . expr + 382 | non_empty_array_pair_list ',' . expr T_DOUBLE_ARROW '&' w_variable + 383 | non_empty_array_pair_list ',' . '&' w_variable T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -12734,7 +12707,7 @@ state 394 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 465 + '&' shift, and go to state 463 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -12780,7 +12753,7 @@ state 394 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 466 + expr go to state 464 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -12795,40 +12768,40 @@ state 394 class_constant go to state 100 -state 395 +state 394 - 379 array_pair_list: non_empty_array_pair_list possible_comma . + 377 array_pair_list: non_empty_array_pair_list possible_comma . - $default reduce using rule 379 (array_pair_list) + $default reduce using rule 377 (array_pair_list) -state 396 +state 395 - 393 encaps_var: T_VARIABLE '[' . @63 encaps_var_offset ']' + 391 encaps_var: T_VARIABLE '[' . @61 encaps_var_offset ']' - $default reduce using rule 392 (@63) + $default reduce using rule 390 (@61) - @63 go to state 467 + @61 go to state 465 -state 397 +state 396 - 394 encaps_var: T_VARIABLE T_OBJECT_OPERATOR . T_STRING + 392 encaps_var: T_VARIABLE T_OBJECT_OPERATOR . T_STRING - T_STRING shift, and go to state 468 + T_STRING shift, and go to state 466 -state 398 +state 397 316 scalar: T_STRING_VARNAME . - 396 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME . '[' expr ']' '}' + 394 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME . '[' expr ']' '}' - '[' shift, and go to state 469 + '[' shift, and go to state 467 $default reduce using rule 316 (scalar) -state 399 +state 398 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -12856,7 +12829,7 @@ state 399 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 395 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr . '}' + 393 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr . '}' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -12884,131 +12857,131 @@ state 399 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - '}' shift, and go to state 470 + '}' shift, and go to state 468 -state 400 +state 399 - 397 encaps_var: T_CURLY_OPEN variable . '}' + 395 encaps_var: T_CURLY_OPEN variable . '}' - '}' shift, and go to state 471 + '}' shift, and go to state 469 -state 401 +state 400 15 inner_statement: T_HALT_COMPILER . '(' ')' ';' - '(' shift, and go to state 472 + '(' shift, and go to state 470 -state 402 +state 401 10 inner_statement_list: inner_statement_list @2 inner_statement . $default reduce using rule 10 (inner_statement_list) -state 403 +state 402 12 inner_statement: statement . $default reduce using rule 12 (inner_statement) -state 404 +state 403 13 inner_statement: function_declaration_statement . $default reduce using rule 13 (inner_statement) -state 405 +state 404 14 inner_statement: class_declaration_statement . $default reduce using rule 14 (inner_statement) -state 406 +state 405 - 359 compound_variable: '$' '{' expr '}' . + 357 compound_variable: '$' '{' expr '}' . - $default reduce using rule 359 (compound_variable) + $default reduce using rule 357 (compound_variable) -state 407 +state 406 285 fully_qualified_class_name: T_STRING . $default reduce using rule 285 (fully_qualified_class_name) -state 408 +state 407 93 extends_from: T_EXTENDS fully_qualified_class_name . $default reduce using rule 93 (extends_from) -state 409 +state 408 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 . implements_list '{' class_statement_list '}' - T_IMPLEMENTS shift, and go to state 473 + T_IMPLEMENTS shift, and go to state 471 $default reduce using rule 97 (implements_list) - implements_list go to state 474 + implements_list go to state 472 -state 410 +state 409 96 interface_extends_list: T_EXTENDS . interface_list - T_STRING shift, and go to state 407 + T_STRING shift, and go to state 406 - interface_list go to state 475 - fully_qualified_class_name go to state 476 + interface_list go to state 473 + fully_qualified_class_name go to state 474 -state 411 +state 410 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list . '{' class_statement_list '}' - '{' shift, and go to state 477 + '{' shift, and go to state 475 -state 412 +state 411 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' . @50 function_call_parameter_list ')' $default reduce using rule 279 (@50) - @50 go to state 478 + @50 go to state 476 -state 413 +state 412 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' . @51 function_call_parameter_list ')' $default reduce using rule 281 (@51) - @51 go to state 479 + @51 go to state 477 -state 414 +state 413 - 348 variable_without_objects: simple_indirect_reference reference_variable . - 355 reference_variable: reference_variable . '[' dim_offset ']' - 356 | reference_variable . '{' expr '}' + 346 variable_without_objects: simple_indirect_reference reference_variable . + 353 reference_variable: reference_variable . '[' dim_offset ']' + 354 | reference_variable . '{' expr '}' - '[' shift, and go to state 225 - '{' shift, and go to state 226 + '[' shift, and go to state 224 + '{' shift, and go to state 225 - $default reduce using rule 348 (variable_without_objects) + $default reduce using rule 346 (variable_without_objects) -state 415 +state 414 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -13067,7 +13040,7 @@ state 415 $default reduce using rule 230 (expr_without_variable) -state 416 +state 415 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -13124,7 +13097,7 @@ state 416 $default reduce using rule 232 (expr_without_variable) -state 417 +state 416 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -13158,7 +13131,7 @@ state 417 T_LOGICAL_XOR shift, and go to state 182 T_LOGICAL_AND shift, and go to state 183 '?' shift, and go to state 184 - ':' shift, and go to state 480 + ':' shift, and go to state 478 T_BOOLEAN_OR shift, and go to state 185 T_BOOLEAN_AND shift, and go to state 186 '|' shift, and go to state 187 @@ -13183,7 +13156,7 @@ state 417 T_INSTANCEOF shift, and go to state 206 -state 418 +state 417 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 226 | expr T_BOOLEAN_OR @42 expr . @@ -13238,7 +13211,7 @@ state 418 $default reduce using rule 226 (expr_without_variable) -state 419 +state 418 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -13292,7 +13265,7 @@ state 419 $default reduce using rule 228 (expr_without_variable) -state 420 +state 419 206 expr_without_variable: variable '=' '&' T_NEW . class_name_reference @40 ctor_arguments @@ -13301,7 +13274,7 @@ state 420 '$' shift, and go to state 71 fully_qualified_class_name go to state 126 - class_name_reference go to state 481 + class_name_reference go to state 479 dynamic_class_name_reference go to state 128 static_member go to state 93 base_variable go to state 129 @@ -13310,30 +13283,30 @@ state 420 simple_indirect_reference go to state 131 -state 421 +state 420 204 expr_without_variable: variable '=' '&' variable . $default reduce using rule 204 (expr_without_variable) -state 422 +state 421 284 function_call: variable_without_objects '(' @52 function_call_parameter_list . ')' - ')' shift, and go to state 482 + ')' shift, and go to state 480 -state 423 +state 422 - 368 variable_name: T_STRING . + 366 variable_name: T_STRING . - $default reduce using rule 368 (variable_name) + $default reduce using rule 366 (variable_name) -state 424 +state 423 - 369 variable_name: '{' . expr '}' + 367 variable_name: '{' . expr '}' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -13384,7 +13357,7 @@ state 424 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 483 + expr go to state 481 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -13399,83 +13372,83 @@ state 424 class_constant go to state 100 +state 424 + + 362 object_property: variable_without_objects . @59 + + $default reduce using rule 361 (@59) + + @59 go to state 482 + + state 425 - 364 object_property: variable_without_objects . @61 + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @55 object_property . @56 method_or_not variable_properties - $default reduce using rule 363 (@61) + $default reduce using rule 335 (@56) - @61 go to state 484 + @56 go to state 483 state 426 - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property . @58 method_or_not variable_properties + 360 object_property: object_dim_list . + 363 object_dim_list: object_dim_list . '[' dim_offset ']' + 364 | object_dim_list . '{' expr '}' - $default reduce using rule 337 (@58) + '[' shift, and go to state 484 + '{' shift, and go to state 485 - @58 go to state 485 + $default reduce using rule 360 (object_property) state 427 - 362 object_property: object_dim_list . - 365 object_dim_list: object_dim_list . '[' dim_offset ']' - 366 | object_dim_list . '{' expr '}' + 365 object_dim_list: variable_name . - '[' shift, and go to state 486 - '{' shift, and go to state 487 - - $default reduce using rule 362 (object_property) + $default reduce using rule 365 (object_dim_list) state 428 - 367 object_dim_list: variable_name . + 353 reference_variable: reference_variable '[' dim_offset ']' . - $default reduce using rule 367 (object_dim_list) + $default reduce using rule 353 (reference_variable) state 429 - 355 reference_variable: reference_variable '[' dim_offset ']' . + 354 reference_variable: reference_variable '{' expr '}' . - $default reduce using rule 355 (reference_variable) + $default reduce using rule 354 (reference_variable) state 430 - 356 reference_variable: reference_variable '{' expr '}' . - - $default reduce using rule 356 (reference_variable) - - -state 431 - 299 ctor_arguments: '(' function_call_parameter_list . ')' - ')' shift, and go to state 488 + ')' shift, and go to state 486 -state 432 +state 431 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property . @54 dynamic_class_name_variable_properties $default reduce using rule 289 (@54) - @54 go to state 489 + @54 go to state 487 -state 433 +state 432 23 unticked_statement: T_IF '(' expr ')' ':' . @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';' $default reduce using rule 21 (@5) - @5 go to state 490 + @5 go to state 488 -state 434 +state 433 20 unticked_statement: T_IF '(' expr ')' @3 . statement @4 elseif_list else_single @@ -13543,7 +13516,7 @@ state 434 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 491 + statement go to state 489 unticked_statement go to state 76 expr_without_variable go to state 83 function_call go to state 84 @@ -13565,21 +13538,21 @@ state 434 class_constant go to state 100 -state 435 +state 434 153 non_empty_function_call_parameter_list: '&' w_variable . $default reduce using rule 153 (non_empty_function_call_parameter_list) -state 436 +state 435 278 function_call: T_STRING '(' @49 function_call_parameter_list ')' . $default reduce using rule 278 (function_call) -state 437 +state 436 154 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable 155 | non_empty_function_call_parameter_list ',' . variable @@ -13591,7 +13564,7 @@ state 437 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 492 + '&' shift, and go to state 490 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -13630,7 +13603,7 @@ state 437 '`' shift, and go to state 72 '"' shift, and go to state 73 - expr_without_variable go to state 493 + expr_without_variable go to state 491 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -13638,7 +13611,7 @@ state 437 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 494 + variable go to state 492 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -13650,25 +13623,25 @@ state 437 class_constant go to state 100 -state 438 +state 437 29 unticked_statement: T_DO @9 statement T_WHILE '(' . @10 expr ')' ';' $default reduce using rule 28 (@10) - @10 go to state 495 + @10 go to state 493 -state 439 +state 438 26 unticked_statement: T_WHILE '(' @7 expr ')' . @8 while_statement $default reduce using rule 25 (@8) - @8 go to state 496 + @8 go to state 494 -state 440 +state 439 33 unticked_statement: T_FOR '(' for_expr ';' @11 . for_expr ';' @12 for_expr ')' @13 for_statement @@ -13718,14 +13691,14 @@ state 440 $default reduce using rule 196 (for_expr) - for_expr go to state 497 - non_empty_for_expr go to state 245 + for_expr go to state 495 + non_empty_for_expr go to state 244 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 246 + expr go to state 245 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -13740,7 +13713,7 @@ state 440 class_constant go to state 100 -state 441 +state 440 199 non_empty_for_expr: non_empty_for_expr ',' @38 . expr @@ -13793,7 +13766,7 @@ state 441 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 498 + expr go to state 496 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -13808,7 +13781,7 @@ state 441 class_constant go to state 100 -state 442 +state 441 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 . variable foreach_optional_arg ')' @18 foreach_statement @@ -13818,7 +13791,7 @@ state 442 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 499 + variable go to state 497 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -13828,19 +13801,19 @@ state 442 simple_indirect_reference go to state 98 -state 443 +state 442 52 unticked_statement: T_FOREACH '(' variable T_AS @15 . foreach_variable foreach_optional_arg ')' @16 foreach_statement - '&' shift, and go to state 500 + '&' shift, and go to state 498 T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - foreach_variable go to state 501 + foreach_variable go to state 499 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 502 + variable go to state 500 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -13850,36 +13823,36 @@ state 443 simple_indirect_reference go to state 98 -state 444 +state 443 111 declare_list: T_STRING '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 503 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 501 + static_class_constant go to state 377 -state 445 +state 444 112 declare_list: declare_list ',' . T_STRING '=' static_scalar - T_STRING shift, and go to state 504 + T_STRING shift, and go to state 502 -state 446 +state 445 57 unticked_statement: T_DECLARE @19 '(' declare_list ')' . declare_statement @@ -13889,7 +13862,7 @@ state 446 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - ':' shift, and go to state 505 + ':' shift, and go to state 503 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -13948,9 +13921,9 @@ state 446 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 506 + statement go to state 504 unticked_statement go to state 76 - declare_statement go to state 507 + declare_statement go to state 505 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 @@ -13971,69 +13944,69 @@ state 446 class_constant go to state 100 -state 447 +state 446 35 unticked_statement: T_SWITCH '(' expr ')' @14 . switch_case_list - ':' shift, and go to state 508 - '{' shift, and go to state 509 + ':' shift, and go to state 506 + '{' shift, and go to state 507 - switch_case_list go to state 510 + switch_case_list go to state 508 -state 448 +state 447 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 . '(' parameter_list ')' '{' inner_statement_list '}' - '(' shift, and go to state 511 + '(' shift, and go to state 509 -state 449 +state 448 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' . T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches - T_CATCH shift, and go to state 512 + T_CATCH shift, and go to state 510 -state 450 +state 449 161 global_var: '$' '{' expr '}' . $default reduce using rule 161 (global_var) -state 451 +state 450 310 static_scalar: '+' static_scalar . $default reduce using rule 310 (static_scalar) -state 452 +state 451 311 static_scalar: '-' static_scalar . $default reduce using rule 311 (static_scalar) -state 453 +state 452 314 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM . T_STRING - T_STRING shift, and go to state 513 + T_STRING shift, and go to state 511 -state 454 +state 453 312 static_scalar: T_ARRAY '(' . static_array_pair_list ')' - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 @@ -14042,52 +14015,52 @@ state 454 $default reduce using rule 321 (static_array_pair_list) - common_scalar go to state 376 - static_scalar go to state 514 - static_class_constant go to state 378 - static_array_pair_list go to state 515 - non_empty_static_array_pair_list go to state 516 + common_scalar go to state 375 + static_scalar go to state 512 + static_class_constant go to state 377 + static_array_pair_list go to state 513 + non_empty_static_array_pair_list go to state 514 -state 455 +state 454 163 static_var_list: static_var_list ',' T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 517 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 515 + static_class_constant go to state 377 -state 456 +state 455 74 unset_variables: unset_variables ',' unset_variable . $default reduce using rule 74 (unset_variables) -state 457 +state 456 49 unticked_statement: T_UNSET '(' unset_variables ')' ';' . $default reduce using rule 49 (unticked_statement) -state 458 +state 457 - 410 isset_variables: isset_variables ',' @64 . variable + 408 isset_variables: isset_variables ',' @62 . variable T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -14095,7 +14068,7 @@ state 458 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 518 + variable go to state 516 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14105,29 +14078,29 @@ state 458 simple_indirect_reference go to state 98 -state 459 +state 458 - 376 assignment_list_element: T_LIST '(' . @62 assignment_list ')' + 374 assignment_list_element: T_LIST '(' . @60 assignment_list ')' - $default reduce using rule 375 (@62) + $default reduce using rule 373 (@60) - @62 go to state 519 + @60 go to state 517 -state 460 +state 459 - 372 assignment_list: assignment_list ',' . assignment_list_element + 370 assignment_list: assignment_list ',' . assignment_list_element T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 - T_LIST shift, and go to state 386 + T_LIST shift, and go to state 385 '$' shift, and go to state 71 - $default reduce using rule 377 (assignment_list_element) + $default reduce using rule 375 (assignment_list_element) function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 387 + variable go to state 386 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14135,26 +14108,19 @@ state 460 reference_variable go to state 96 compound_variable go to state 97 simple_indirect_reference go to state 98 - assignment_list_element go to state 520 + assignment_list_element go to state 518 -state 461 +state 460 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' . '=' expr - '=' shift, and go to state 521 - - -state 462 - - 333 w_variable: variable @55 . - - $default reduce using rule 333 (w_variable) + '=' shift, and go to state 519 -state 463 +state 461 - 386 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' . w_variable + 384 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' . w_variable T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -14162,8 +14128,8 @@ state 463 function_call go to state 84 fully_qualified_class_name go to state 120 - w_variable go to state 522 - variable go to state 391 + w_variable go to state 520 + variable go to state 390 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14173,7 +14139,7 @@ state 463 simple_indirect_reference go to state 98 -state 464 +state 462 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -14201,7 +14167,7 @@ state 464 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 382 non_empty_array_pair_list: expr T_DOUBLE_ARROW expr . + 380 non_empty_array_pair_list: expr T_DOUBLE_ARROW expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -14230,12 +14196,12 @@ state 464 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 382 (non_empty_array_pair_list) + $default reduce using rule 380 (non_empty_array_pair_list) -state 465 +state 463 - 385 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable + 383 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -14243,8 +14209,8 @@ state 465 function_call go to state 84 fully_qualified_class_name go to state 120 - w_variable go to state 523 - variable go to state 391 + w_variable go to state 521 + variable go to state 390 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14254,7 +14220,7 @@ state 465 simple_indirect_reference go to state 98 -state 466 +state 464 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -14282,9 +14248,9 @@ state 466 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 380 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW expr - 381 | non_empty_array_pair_list ',' expr . - 384 | non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW '&' w_variable + 378 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW expr + 379 | non_empty_array_pair_list ',' expr . + 382 | non_empty_array_pair_list ',' expr . T_DOUBLE_ARROW '&' w_variable T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -14312,32 +14278,32 @@ state 466 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - T_DOUBLE_ARROW shift, and go to state 524 + T_DOUBLE_ARROW shift, and go to state 522 - $default reduce using rule 381 (non_empty_array_pair_list) + $default reduce using rule 379 (non_empty_array_pair_list) -state 467 +state 465 - 393 encaps_var: T_VARIABLE '[' @63 . encaps_var_offset ']' + 391 encaps_var: T_VARIABLE '[' @61 . encaps_var_offset ']' - T_STRING shift, and go to state 525 - T_VARIABLE shift, and go to state 526 - T_NUM_STRING shift, and go to state 527 + T_STRING shift, and go to state 523 + T_VARIABLE shift, and go to state 524 + T_NUM_STRING shift, and go to state 525 - encaps_var_offset go to state 528 + encaps_var_offset go to state 526 -state 468 +state 466 - 394 encaps_var: T_VARIABLE T_OBJECT_OPERATOR T_STRING . + 392 encaps_var: T_VARIABLE T_OBJECT_OPERATOR T_STRING . - $default reduce using rule 394 (encaps_var) + $default reduce using rule 392 (encaps_var) -state 469 +state 467 - 396 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' . expr ']' '}' + 394 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' . expr ']' '}' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -14388,7 +14354,7 @@ state 469 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 529 + expr go to state 527 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -14403,71 +14369,71 @@ state 469 class_constant go to state 100 -state 470 +state 468 - 395 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr '}' . + 393 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES expr '}' . - $default reduce using rule 395 (encaps_var) + $default reduce using rule 393 (encaps_var) -state 471 +state 469 - 397 encaps_var: T_CURLY_OPEN variable '}' . + 395 encaps_var: T_CURLY_OPEN variable '}' . - $default reduce using rule 397 (encaps_var) + $default reduce using rule 395 (encaps_var) -state 472 +state 470 15 inner_statement: T_HALT_COMPILER '(' . ')' ';' - ')' shift, and go to state 530 + ')' shift, and go to state 528 -state 473 +state 471 98 implements_list: T_IMPLEMENTS . interface_list - T_STRING shift, and go to state 407 + T_STRING shift, and go to state 406 - interface_list go to state 531 - fully_qualified_class_name go to state 476 + interface_list go to state 529 + fully_qualified_class_name go to state 474 -state 474 +state 472 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list . '{' class_statement_list '}' - '{' shift, and go to state 532 + '{' shift, and go to state 530 -state 475 +state 473 96 interface_extends_list: T_EXTENDS interface_list . 100 interface_list: interface_list . ',' fully_qualified_class_name - ',' shift, and go to state 533 + ',' shift, and go to state 531 $default reduce using rule 96 (interface_extends_list) -state 476 +state 474 99 interface_list: fully_qualified_class_name . $default reduce using rule 99 (interface_list) -state 477 +state 475 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' . class_statement_list '}' $default reduce using rule 167 (class_statement_list) - class_statement_list go to state 534 + class_statement_list go to state 532 -state 478 +state 476 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 . function_call_parameter_list ')' @@ -14477,7 +14443,7 @@ state 478 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 352 + '&' shift, and go to state 351 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -14518,9 +14484,9 @@ state 478 $default reduce using rule 150 (function_call_parameter_list) - function_call_parameter_list go to state 535 - non_empty_function_call_parameter_list go to state 354 - expr_without_variable go to state 355 + function_call_parameter_list go to state 533 + non_empty_function_call_parameter_list go to state 353 + expr_without_variable go to state 354 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -14528,7 +14494,7 @@ state 478 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 356 + variable go to state 355 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14540,7 +14506,7 @@ state 478 class_constant go to state 100 -state 479 +state 477 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 . function_call_parameter_list ')' @@ -14550,7 +14516,7 @@ state 479 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 352 + '&' shift, and go to state 351 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -14591,9 +14557,9 @@ state 479 $default reduce using rule 150 (function_call_parameter_list) - function_call_parameter_list go to state 536 - non_empty_function_call_parameter_list go to state 354 - expr_without_variable go to state 355 + function_call_parameter_list go to state 534 + non_empty_function_call_parameter_list go to state 353 + expr_without_variable go to state 354 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -14601,7 +14567,7 @@ state 479 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 356 + variable go to state 355 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14613,32 +14579,32 @@ state 479 class_constant go to state 100 -state 480 +state 478 261 expr_without_variable: expr '?' @46 expr ':' . @47 expr $default reduce using rule 260 (@47) - @47 go to state 537 + @47 go to state 535 -state 481 +state 479 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference . @40 ctor_arguments $default reduce using rule 205 (@40) - @40 go to state 538 + @40 go to state 536 -state 482 +state 480 284 function_call: variable_without_objects '(' @52 function_call_parameter_list ')' . $default reduce using rule 284 (function_call) -state 483 +state 481 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -14666,7 +14632,7 @@ state 483 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 369 variable_name: '{' expr . '}' + 367 variable_name: '{' expr . '}' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -14694,30 +14660,30 @@ state 483 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - '}' shift, and go to state 539 + '}' shift, and go to state 537 -state 484 +state 482 - 364 object_property: variable_without_objects @61 . + 362 object_property: variable_without_objects @59 . - $default reduce using rule 364 (object_property) + $default reduce using rule 362 (object_property) -state 485 +state 483 - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 . method_or_not variable_properties + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @55 object_property @56 . method_or_not variable_properties - '(' shift, and go to state 540 + '(' shift, and go to state 538 - $default reduce using rule 346 (method_or_not) + $default reduce using rule 344 (method_or_not) - method_or_not go to state 541 + method_or_not go to state 539 -state 486 +state 484 - 365 object_dim_list: object_dim_list '[' . dim_offset ']' + 363 object_dim_list: object_dim_list '[' . dim_offset ']' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -14763,14 +14729,14 @@ state 486 '`' shift, and go to state 72 '"' shift, and go to state 73 - $default reduce using rule 360 (dim_offset) + $default reduce using rule 358 (dim_offset) expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 341 + expr go to state 340 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -14780,15 +14746,15 @@ state 486 base_variable go to state 95 reference_variable go to state 96 compound_variable go to state 97 - dim_offset go to state 542 + dim_offset go to state 540 simple_indirect_reference go to state 98 internal_functions_in_yacc go to state 99 class_constant go to state 100 -state 487 +state 485 - 366 object_dim_list: object_dim_list '{' . expr '}' + 364 object_dim_list: object_dim_list '{' . expr '}' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -14839,7 +14805,7 @@ state 487 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 543 + expr go to state 541 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -14854,41 +14820,41 @@ state 487 class_constant go to state 100 -state 488 +state 486 299 ctor_arguments: '(' function_call_parameter_list ')' . $default reduce using rule 299 (ctor_arguments) -state 489 +state 487 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property @54 . dynamic_class_name_variable_properties $default reduce using rule 293 (dynamic_class_name_variable_properties) - dynamic_class_name_variable_properties go to state 544 + dynamic_class_name_variable_properties go to state 542 -state 490 +state 488 23 unticked_statement: T_IF '(' expr ')' ':' @5 . inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 545 + inner_statement_list go to state 543 -state 491 +state 489 20 unticked_statement: T_IF '(' expr ')' @3 statement . @4 elseif_list else_single $default reduce using rule 19 (@4) - @4 go to state 546 + @4 go to state 544 -state 492 +state 490 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable @@ -14898,8 +14864,8 @@ state 492 function_call go to state 84 fully_qualified_class_name go to state 120 - w_variable go to state 547 - variable go to state 391 + w_variable go to state 545 + variable go to state 390 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -14909,7 +14875,7 @@ state 492 simple_indirect_reference go to state 98 -state 493 +state 491 154 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable . 330 expr: expr_without_variable . @@ -14919,7 +14885,7 @@ state 493 $default reduce using rule 330 (expr) -state 494 +state 492 155 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable . 203 expr_without_variable: variable . '=' expr @@ -14937,7 +14903,7 @@ state 494 219 | variable . T_SL_EQUAL expr 220 | variable . T_SR_EQUAL expr 331 r_variable: variable . - 335 rw_variable: variable . @56 + 333 rw_variable: variable . '=' shift, and go to state 210 T_SR_EQUAL shift, and go to state 211 @@ -14953,15 +14919,13 @@ state 494 T_PLUS_EQUAL shift, and go to state 221 ',' reduce using rule 155 (non_empty_function_call_parameter_list) - T_DEC reduce using rule 334 (@56) - T_INC reduce using rule 334 (@56) + T_DEC reduce using rule 333 (rw_variable) + T_INC reduce using rule 333 (rw_variable) ')' reduce using rule 155 (non_empty_function_call_parameter_list) $default reduce using rule 331 (r_variable) - @56 go to state 222 - -state 495 +state 493 29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 . expr ')' ';' @@ -15014,7 +14978,7 @@ state 495 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 548 + expr go to state 546 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -15029,7 +14993,7 @@ state 495 class_constant go to state 100 -state 496 +state 494 26 unticked_statement: T_WHILE '(' @7 expr ')' @8 . while_statement @@ -15039,7 +15003,7 @@ state 496 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - ':' shift, and go to state 549 + ':' shift, and go to state 547 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -15098,9 +15062,9 @@ state 496 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 550 + statement go to state 548 unticked_statement go to state 76 - while_statement go to state 551 + while_statement go to state 549 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 @@ -15121,14 +15085,14 @@ state 496 class_constant go to state 100 -state 497 +state 495 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr . ';' @12 for_expr ')' @13 for_statement - ';' shift, and go to state 552 + ';' shift, and go to state 550 -state 498 +state 496 199 non_empty_for_expr: non_empty_for_expr ',' @38 expr . 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -15188,18 +15152,18 @@ state 498 $default reduce using rule 199 (non_empty_for_expr) -state 499 +state 497 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable . foreach_optional_arg ')' @18 foreach_statement - T_DOUBLE_ARROW shift, and go to state 553 + T_DOUBLE_ARROW shift, and go to state 551 $default reduce using rule 101 (foreach_optional_arg) - foreach_optional_arg go to state 554 + foreach_optional_arg go to state 552 -state 500 +state 498 104 foreach_variable: '&' . variable @@ -15209,7 +15173,7 @@ state 500 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 555 + variable go to state 553 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -15219,179 +15183,179 @@ state 500 simple_indirect_reference go to state 98 -state 501 +state 499 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable . foreach_optional_arg ')' @16 foreach_statement - T_DOUBLE_ARROW shift, and go to state 553 + T_DOUBLE_ARROW shift, and go to state 551 $default reduce using rule 101 (foreach_optional_arg) - foreach_optional_arg go to state 556 + foreach_optional_arg go to state 554 -state 502 +state 500 103 foreach_variable: variable . $default reduce using rule 103 (foreach_variable) -state 503 +state 501 111 declare_list: T_STRING '=' static_scalar . $default reduce using rule 111 (declare_list) -state 504 +state 502 112 declare_list: declare_list ',' T_STRING . '=' static_scalar - '=' shift, and go to state 557 + '=' shift, and go to state 555 -state 505 +state 503 110 declare_statement: ':' . inner_statement_list T_ENDDECLARE ';' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 558 + inner_statement_list go to state 556 -state 506 +state 504 109 declare_statement: statement . $default reduce using rule 109 (declare_statement) -state 507 +state 505 57 unticked_statement: T_DECLARE @19 '(' declare_list ')' declare_statement . $default reduce using rule 57 (unticked_statement) -state 508 +state 506 115 switch_case_list: ':' . case_list T_ENDSWITCH ';' 116 | ':' . ';' case_list T_ENDSWITCH ';' - ';' shift, and go to state 559 + ';' shift, and go to state 557 $default reduce using rule 117 (case_list) - case_list go to state 560 + case_list go to state 558 -state 509 +state 507 113 switch_case_list: '{' . case_list '}' 114 | '{' . ';' case_list '}' - ';' shift, and go to state 561 + ';' shift, and go to state 559 $default reduce using rule 117 (case_list) - case_list go to state 562 + case_list go to state 560 -state 510 +state 508 35 unticked_statement: T_SWITCH '(' expr ')' @14 switch_case_list . $default reduce using rule 35 (unticked_statement) -state 511 +state 509 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' . parameter_list ')' '{' inner_statement_list '}' - T_STRING shift, and go to state 563 - T_ARRAY shift, and go to state 564 + T_STRING shift, and go to state 561 + T_ARRAY shift, and go to state 562 ')' reduce using rule 137 (parameter_list) $default reduce using rule 146 (optional_class_type) - parameter_list go to state 565 - non_empty_parameter_list go to state 566 - optional_class_type go to state 567 + parameter_list go to state 563 + non_empty_parameter_list go to state 564 + optional_class_type go to state 565 -state 512 +state 510 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH . '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches - '(' shift, and go to state 568 + '(' shift, and go to state 566 -state 513 +state 511 314 static_class_constant: T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING . $default reduce using rule 314 (static_class_constant) -state 514 +state 512 327 non_empty_static_array_pair_list: static_scalar . T_DOUBLE_ARROW static_scalar 328 | static_scalar . - T_DOUBLE_ARROW shift, and go to state 569 + T_DOUBLE_ARROW shift, and go to state 567 $default reduce using rule 328 (non_empty_static_array_pair_list) -state 515 +state 513 312 static_scalar: T_ARRAY '(' static_array_pair_list . ')' - ')' shift, and go to state 570 + ')' shift, and go to state 568 -state 516 +state 514 322 static_array_pair_list: non_empty_static_array_pair_list . possible_comma 325 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar T_DOUBLE_ARROW static_scalar 326 | non_empty_static_array_pair_list . ',' static_scalar - ',' shift, and go to state 571 + ',' shift, and go to state 569 $default reduce using rule 323 (possible_comma) - possible_comma go to state 572 + possible_comma go to state 570 -state 517 +state 515 163 static_var_list: static_var_list ',' T_VARIABLE '=' static_scalar . $default reduce using rule 163 (static_var_list) -state 518 +state 516 - 410 isset_variables: isset_variables ',' @64 variable . + 408 isset_variables: isset_variables ',' @62 variable . - $default reduce using rule 410 (isset_variables) + $default reduce using rule 408 (isset_variables) -state 519 +state 517 - 376 assignment_list_element: T_LIST '(' @62 . assignment_list ')' + 374 assignment_list_element: T_LIST '(' @60 . assignment_list ')' T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 - T_LIST shift, and go to state 386 + T_LIST shift, and go to state 385 '$' shift, and go to state 71 - $default reduce using rule 377 (assignment_list_element) + $default reduce using rule 375 (assignment_list_element) function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 387 + variable go to state 386 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -15399,18 +15363,18 @@ state 519 reference_variable go to state 96 compound_variable go to state 97 simple_indirect_reference go to state 98 - assignment_list go to state 573 - assignment_list_element go to state 389 + assignment_list go to state 571 + assignment_list_element go to state 388 -state 520 +state 518 - 372 assignment_list: assignment_list ',' assignment_list_element . + 370 assignment_list: assignment_list ',' assignment_list_element . - $default reduce using rule 372 (assignment_list) + $default reduce using rule 370 (assignment_list) -state 521 +state 519 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' . expr @@ -15463,7 +15427,7 @@ state 521 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 574 + expr go to state 572 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -15478,24 +15442,24 @@ state 521 class_constant go to state 100 -state 522 +state 520 - 386 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' w_variable . + 384 non_empty_array_pair_list: expr T_DOUBLE_ARROW '&' w_variable . - $default reduce using rule 386 (non_empty_array_pair_list) + $default reduce using rule 384 (non_empty_array_pair_list) -state 523 +state 521 - 385 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable . + 383 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable . - $default reduce using rule 385 (non_empty_array_pair_list) + $default reduce using rule 383 (non_empty_array_pair_list) -state 524 +state 522 - 380 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . expr - 384 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . '&' w_variable + 378 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . expr + 382 | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW . '&' w_variable T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -15503,7 +15467,7 @@ state 524 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 575 + '&' shift, and go to state 573 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -15547,7 +15511,7 @@ state 524 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 576 + expr go to state 574 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -15562,35 +15526,35 @@ state 524 class_constant go to state 100 -state 525 +state 523 - 398 encaps_var_offset: T_STRING . + 396 encaps_var_offset: T_STRING . - $default reduce using rule 398 (encaps_var_offset) + $default reduce using rule 396 (encaps_var_offset) -state 526 +state 524 - 400 encaps_var_offset: T_VARIABLE . + 398 encaps_var_offset: T_VARIABLE . - $default reduce using rule 400 (encaps_var_offset) + $default reduce using rule 398 (encaps_var_offset) -state 527 +state 525 - 399 encaps_var_offset: T_NUM_STRING . + 397 encaps_var_offset: T_NUM_STRING . - $default reduce using rule 399 (encaps_var_offset) + $default reduce using rule 397 (encaps_var_offset) -state 528 +state 526 - 393 encaps_var: T_VARIABLE '[' @63 encaps_var_offset . ']' + 391 encaps_var: T_VARIABLE '[' @61 encaps_var_offset . ']' - ']' shift, and go to state 577 + ']' shift, and go to state 575 -state 529 +state 527 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -15618,7 +15582,7 @@ state 529 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 396 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr . ']' '}' + 394 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr . ']' '}' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -15646,84 +15610,84 @@ state 529 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ']' shift, and go to state 578 + ']' shift, and go to state 576 -state 530 +state 528 15 inner_statement: T_HALT_COMPILER '(' ')' . ';' - ';' shift, and go to state 579 + ';' shift, and go to state 577 -state 531 +state 529 98 implements_list: T_IMPLEMENTS interface_list . 100 interface_list: interface_list . ',' fully_qualified_class_name - ',' shift, and go to state 533 + ',' shift, and go to state 531 $default reduce using rule 98 (implements_list) -state 532 +state 530 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' . class_statement_list '}' $default reduce using rule 167 (class_statement_list) - class_statement_list go to state 580 + class_statement_list go to state 578 -state 533 +state 531 100 interface_list: interface_list ',' . fully_qualified_class_name - T_STRING shift, and go to state 407 + T_STRING shift, and go to state 406 - fully_qualified_class_name go to state 581 + fully_qualified_class_name go to state 579 -state 534 +state 532 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' class_statement_list . '}' 166 class_statement_list: class_statement_list . class_statement - T_CONST shift, and go to state 582 - T_PUBLIC shift, and go to state 583 - T_PROTECTED shift, and go to state 584 - T_PRIVATE shift, and go to state 585 - T_FINAL shift, and go to state 586 - T_ABSTRACT shift, and go to state 587 - T_STATIC shift, and go to state 588 - T_VAR shift, and go to state 589 - '}' shift, and go to state 590 + T_CONST shift, and go to state 580 + T_PUBLIC shift, and go to state 581 + T_PROTECTED shift, and go to state 582 + T_PRIVATE shift, and go to state 583 + T_FINAL shift, and go to state 584 + T_ABSTRACT shift, and go to state 585 + T_STATIC shift, and go to state 586 + T_VAR shift, and go to state 587 + '}' shift, and go to state 588 $default reduce using rule 178 (method_modifiers) - class_statement go to state 591 - variable_modifiers go to state 592 - method_modifiers go to state 593 - non_empty_member_modifiers go to state 594 - member_modifier go to state 595 - class_constant_declaration go to state 596 + class_statement go to state 589 + variable_modifiers go to state 590 + method_modifiers go to state 591 + non_empty_member_modifiers go to state 592 + member_modifier go to state 593 + class_constant_declaration go to state 594 -state 535 +state 533 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list . ')' - ')' shift, and go to state 597 + ')' shift, and go to state 595 -state 536 +state 534 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list . ')' - ')' shift, and go to state 598 + ')' shift, and go to state 596 -state 537 +state 535 261 expr_without_variable: expr '?' @46 expr ':' @47 . expr @@ -15776,7 +15740,7 @@ state 537 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 599 + expr go to state 597 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -15791,50 +15755,50 @@ state 537 class_constant go to state 100 -state 538 +state 536 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 . ctor_arguments - '(' shift, and go to state 347 + '(' shift, and go to state 346 $default reduce using rule 298 (ctor_arguments) - ctor_arguments go to state 600 + ctor_arguments go to state 598 -state 539 +state 537 - 369 variable_name: '{' expr '}' . + 367 variable_name: '{' expr '}' . - $default reduce using rule 369 (variable_name) + $default reduce using rule 367 (variable_name) -state 540 +state 538 - 345 method_or_not: '(' . @60 function_call_parameter_list ')' + 343 method_or_not: '(' . @58 function_call_parameter_list ')' - $default reduce using rule 344 (@60) + $default reduce using rule 342 (@58) - @60 go to state 601 + @58 go to state 599 -state 541 +state 539 - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 method_or_not . variable_properties + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @55 object_property @56 method_or_not . variable_properties - $default reduce using rule 341 (variable_properties) + $default reduce using rule 339 (variable_properties) - variable_properties go to state 602 + variable_properties go to state 600 -state 542 +state 540 - 365 object_dim_list: object_dim_list '[' dim_offset . ']' + 363 object_dim_list: object_dim_list '[' dim_offset . ']' - ']' shift, and go to state 603 + ']' shift, and go to state 601 -state 543 +state 541 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -15862,7 +15826,7 @@ state 543 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 366 object_dim_list: object_dim_list '{' expr . '}' + 364 object_dim_list: object_dim_list '{' expr . '}' T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -15890,22 +15854,22 @@ state 543 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - '}' shift, and go to state 604 + '}' shift, and go to state 602 -state 544 +state 542 290 dynamic_class_name_reference: base_variable T_OBJECT_OPERATOR @53 object_property @54 dynamic_class_name_variable_properties . 292 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property - T_OBJECT_OPERATOR shift, and go to state 605 + T_OBJECT_OPERATOR shift, and go to state 603 $default reduce using rule 290 (dynamic_class_name_reference) - dynamic_class_name_variable_property go to state 606 + dynamic_class_name_variable_property go to state 604 -state 545 +state 543 10 inner_statement_list: inner_statement_list . @2 inner_statement 23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list . @6 new_elseif_list new_else_single T_ENDIF ';' @@ -15915,27 +15879,27 @@ state 545 T_ENDIF reduce using rule 22 (@6) $default reduce using rule 9 (@2) - @2 go to state 289 - @6 go to state 607 + @2 go to state 288 + @6 go to state 605 -state 546 +state 544 20 unticked_statement: T_IF '(' expr ')' @3 statement @4 . elseif_list else_single $default reduce using rule 126 (elseif_list) - elseif_list go to state 608 + elseif_list go to state 606 -state 547 +state 545 156 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable . $default reduce using rule 156 (non_empty_function_call_parameter_list) -state 548 +state 546 29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 expr . ')' ';' 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -15991,54 +15955,54 @@ state 548 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 609 + ')' shift, and go to state 607 -state 549 +state 547 125 while_statement: ':' . inner_statement_list T_ENDWHILE ';' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 610 + inner_statement_list go to state 608 -state 550 +state 548 124 while_statement: statement . $default reduce using rule 124 (while_statement) -state 551 +state 549 26 unticked_statement: T_WHILE '(' @7 expr ')' @8 while_statement . $default reduce using rule 26 (unticked_statement) -state 552 +state 550 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' . @12 for_expr ')' @13 for_statement $default reduce using rule 31 (@12) - @12 go to state 611 + @12 go to state 609 -state 553 +state 551 102 foreach_optional_arg: T_DOUBLE_ARROW . foreach_variable - '&' shift, and go to state 500 + '&' shift, and go to state 498 T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 '$' shift, and go to state 71 - foreach_variable go to state 612 + foreach_variable go to state 610 function_call go to state 84 fully_qualified_class_name go to state 120 - variable go to state 502 + variable go to state 500 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -16048,123 +16012,123 @@ state 553 simple_indirect_reference go to state 98 -state 554 +state 552 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg . ')' @18 foreach_statement - ')' shift, and go to state 613 + ')' shift, and go to state 611 -state 555 +state 553 104 foreach_variable: '&' variable . $default reduce using rule 104 (foreach_variable) -state 556 +state 554 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg . ')' @16 foreach_statement - ')' shift, and go to state 614 + ')' shift, and go to state 612 -state 557 +state 555 112 declare_list: declare_list ',' T_STRING '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 615 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 613 + static_class_constant go to state 377 -state 558 +state 556 10 inner_statement_list: inner_statement_list . @2 inner_statement 110 declare_statement: ':' inner_statement_list . T_ENDDECLARE ';' - T_ENDDECLARE shift, and go to state 616 + T_ENDDECLARE shift, and go to state 614 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 559 +state 557 116 switch_case_list: ':' ';' . case_list T_ENDSWITCH ';' $default reduce using rule 117 (case_list) - case_list go to state 617 + case_list go to state 615 -state 560 +state 558 115 switch_case_list: ':' case_list . T_ENDSWITCH ';' 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list - T_ENDSWITCH shift, and go to state 618 - T_CASE shift, and go to state 619 - T_DEFAULT shift, and go to state 620 + T_ENDSWITCH shift, and go to state 616 + T_CASE shift, and go to state 617 + T_DEFAULT shift, and go to state 618 -state 561 +state 559 114 switch_case_list: '{' ';' . case_list '}' $default reduce using rule 117 (case_list) - case_list go to state 621 + case_list go to state 619 -state 562 +state 560 113 switch_case_list: '{' case_list . '}' 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list - T_CASE shift, and go to state 619 - T_DEFAULT shift, and go to state 620 - '}' shift, and go to state 622 + T_CASE shift, and go to state 617 + T_DEFAULT shift, and go to state 618 + '}' shift, and go to state 620 -state 563 +state 561 147 optional_class_type: T_STRING . $default reduce using rule 147 (optional_class_type) -state 564 +state 562 148 optional_class_type: T_ARRAY . $default reduce using rule 148 (optional_class_type) -state 565 +state 563 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list . ')' '{' inner_statement_list '}' - ')' shift, and go to state 623 + ')' shift, and go to state 621 -state 566 +state 564 136 parameter_list: non_empty_parameter_list . 142 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type T_VARIABLE @@ -16172,73 +16136,73 @@ state 566 144 | non_empty_parameter_list . ',' optional_class_type '&' T_VARIABLE '=' static_scalar 145 | non_empty_parameter_list . ',' optional_class_type T_VARIABLE '=' static_scalar - ',' shift, and go to state 624 + ',' shift, and go to state 622 $default reduce using rule 136 (parameter_list) -state 567 +state 565 138 non_empty_parameter_list: optional_class_type . T_VARIABLE 139 | optional_class_type . '&' T_VARIABLE 140 | optional_class_type . '&' T_VARIABLE '=' static_scalar 141 | optional_class_type . T_VARIABLE '=' static_scalar - '&' shift, and go to state 625 - T_VARIABLE shift, and go to state 626 + '&' shift, and go to state 623 + T_VARIABLE shift, and go to state 624 -state 568 +state 566 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' . @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches $default reduce using rule 60 (@21) - @21 go to state 627 + @21 go to state 625 -state 569 +state 567 327 non_empty_static_array_pair_list: static_scalar T_DOUBLE_ARROW . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 628 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 626 + static_class_constant go to state 377 -state 570 +state 568 312 static_scalar: T_ARRAY '(' static_array_pair_list ')' . $default reduce using rule 312 (static_scalar) -state 571 +state 569 324 possible_comma: ',' . 325 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar T_DOUBLE_ARROW static_scalar 326 | non_empty_static_array_pair_list ',' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 @@ -16247,28 +16211,28 @@ state 571 $default reduce using rule 324 (possible_comma) - common_scalar go to state 376 - static_scalar go to state 629 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 627 + static_class_constant go to state 377 -state 572 +state 570 322 static_array_pair_list: non_empty_static_array_pair_list possible_comma . $default reduce using rule 322 (static_array_pair_list) -state 573 +state 571 - 372 assignment_list: assignment_list . ',' assignment_list_element - 376 assignment_list_element: T_LIST '(' @62 assignment_list . ')' + 370 assignment_list: assignment_list . ',' assignment_list_element + 374 assignment_list_element: T_LIST '(' @60 assignment_list . ')' - ',' shift, and go to state 460 - ')' shift, and go to state 630 + ',' shift, and go to state 459 + ')' shift, and go to state 628 -state 574 +state 572 202 expr_without_variable: T_LIST '(' @39 assignment_list ')' '=' expr . 226 | expr . T_BOOLEAN_OR @42 expr @@ -16325,9 +16289,9 @@ state 574 $default reduce using rule 202 (expr_without_variable) -state 575 +state 573 - 384 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' . w_variable + 382 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' . w_variable T_STRING shift, and go to state 119 T_VARIABLE shift, and go to state 33 @@ -16335,8 +16299,8 @@ state 575 function_call go to state 84 fully_qualified_class_name go to state 120 - w_variable go to state 631 - variable go to state 391 + w_variable go to state 629 + variable go to state 390 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -16346,7 +16310,7 @@ state 575 simple_indirect_reference go to state 98 -state 576 +state 574 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -16374,7 +16338,7 @@ state 576 256 | expr . T_IS_GREATER_OR_EQUAL expr 257 | expr . T_INSTANCEOF class_name_reference 261 | expr . '?' @46 expr ':' @47 expr - 380 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr . + 378 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr . T_LOGICAL_OR shift, and go to state 181 T_LOGICAL_XOR shift, and go to state 182 @@ -16403,198 +16367,198 @@ state 576 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - $default reduce using rule 380 (non_empty_array_pair_list) + $default reduce using rule 378 (non_empty_array_pair_list) -state 577 +state 575 - 393 encaps_var: T_VARIABLE '[' @63 encaps_var_offset ']' . + 391 encaps_var: T_VARIABLE '[' @61 encaps_var_offset ']' . - $default reduce using rule 393 (encaps_var) + $default reduce using rule 391 (encaps_var) -state 578 +state 576 - 396 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' . '}' + 394 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' . '}' - '}' shift, and go to state 632 + '}' shift, and go to state 630 -state 579 +state 577 15 inner_statement: T_HALT_COMPILER '(' ')' ';' . $default reduce using rule 15 (inner_statement) -state 580 +state 578 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' class_statement_list . '}' 166 class_statement_list: class_statement_list . class_statement - T_CONST shift, and go to state 582 - T_PUBLIC shift, and go to state 583 - T_PROTECTED shift, and go to state 584 - T_PRIVATE shift, and go to state 585 - T_FINAL shift, and go to state 586 - T_ABSTRACT shift, and go to state 587 - T_STATIC shift, and go to state 588 - T_VAR shift, and go to state 589 - '}' shift, and go to state 633 + T_CONST shift, and go to state 580 + T_PUBLIC shift, and go to state 581 + T_PROTECTED shift, and go to state 582 + T_PRIVATE shift, and go to state 583 + T_FINAL shift, and go to state 584 + T_ABSTRACT shift, and go to state 585 + T_STATIC shift, and go to state 586 + T_VAR shift, and go to state 587 + '}' shift, and go to state 631 $default reduce using rule 178 (method_modifiers) - class_statement go to state 591 - variable_modifiers go to state 592 - method_modifiers go to state 593 - non_empty_member_modifiers go to state 594 - member_modifier go to state 595 - class_constant_declaration go to state 596 + class_statement go to state 589 + variable_modifiers go to state 590 + method_modifiers go to state 591 + non_empty_member_modifiers go to state 592 + member_modifier go to state 593 + class_constant_declaration go to state 594 -state 581 +state 579 100 interface_list: interface_list ',' fully_qualified_class_name . $default reduce using rule 100 (interface_list) -state 582 +state 580 193 class_constant_declaration: T_CONST . T_STRING '=' static_scalar - T_STRING shift, and go to state 634 + T_STRING shift, and go to state 632 -state 583 +state 581 182 member_modifier: T_PUBLIC . $default reduce using rule 182 (member_modifier) -state 584 +state 582 183 member_modifier: T_PROTECTED . $default reduce using rule 183 (member_modifier) -state 585 +state 583 184 member_modifier: T_PRIVATE . $default reduce using rule 184 (member_modifier) -state 586 +state 584 187 member_modifier: T_FINAL . $default reduce using rule 187 (member_modifier) -state 587 +state 585 186 member_modifier: T_ABSTRACT . $default reduce using rule 186 (member_modifier) -state 588 +state 586 185 member_modifier: T_STATIC . $default reduce using rule 185 (member_modifier) -state 589 +state 587 177 variable_modifiers: T_VAR . $default reduce using rule 177 (variable_modifiers) -state 590 +state 588 88 unticked_class_declaration_statement: interface_entry T_STRING @30 interface_extends_list '{' class_statement_list '}' . $default reduce using rule 88 (unticked_class_declaration_statement) -state 591 +state 589 166 class_statement_list: class_statement_list class_statement . $default reduce using rule 166 (class_statement_list) -state 592 +state 590 169 class_statement: variable_modifiers . @35 class_variable_declaration ';' $default reduce using rule 168 (@35) - @35 go to state 635 + @35 go to state 633 -state 593 +state 591 173 class_statement: method_modifiers . T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' method_body - T_FUNCTION shift, and go to state 636 + T_FUNCTION shift, and go to state 634 -state 594 +state 592 176 variable_modifiers: non_empty_member_modifiers . 179 method_modifiers: non_empty_member_modifiers . 181 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier - T_PUBLIC shift, and go to state 583 - T_PROTECTED shift, and go to state 584 - T_PRIVATE shift, and go to state 585 - T_FINAL shift, and go to state 586 - T_ABSTRACT shift, and go to state 587 - T_STATIC shift, and go to state 588 + T_PUBLIC shift, and go to state 581 + T_PROTECTED shift, and go to state 582 + T_PRIVATE shift, and go to state 583 + T_FINAL shift, and go to state 584 + T_ABSTRACT shift, and go to state 585 + T_STATIC shift, and go to state 586 T_FUNCTION reduce using rule 179 (method_modifiers) $default reduce using rule 176 (variable_modifiers) - member_modifier go to state 637 + member_modifier go to state 635 -state 595 +state 593 180 non_empty_member_modifiers: member_modifier . $default reduce using rule 180 (non_empty_member_modifiers) -state 596 +state 594 170 class_statement: class_constant_declaration . ';' 192 class_constant_declaration: class_constant_declaration . ',' T_STRING '=' static_scalar - ',' shift, and go to state 638 - ';' shift, and go to state 639 + ',' shift, and go to state 636 + ';' shift, and go to state 637 -state 597 +state 595 280 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' @50 function_call_parameter_list ')' . $default reduce using rule 280 (function_call) -state 598 +state 596 282 function_call: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects '(' @51 function_call_parameter_list ')' . $default reduce using rule 282 (function_call) -state 599 +state 597 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr 228 | expr . T_BOOLEAN_AND @43 expr @@ -16650,16 +16614,16 @@ state 599 $default reduce using rule 261 (expr_without_variable) -state 600 +state 598 206 expr_without_variable: variable '=' '&' T_NEW class_name_reference @40 ctor_arguments . $default reduce using rule 206 (expr_without_variable) -state 601 +state 599 - 345 method_or_not: '(' @60 . function_call_parameter_list ')' + 343 method_or_not: '(' @58 . function_call_parameter_list ')' T_REQUIRE_ONCE shift, and go to state 5 T_REQUIRE shift, and go to state 6 @@ -16667,7 +16631,7 @@ state 601 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - '&' shift, and go to state 352 + '&' shift, and go to state 351 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -16708,9 +16672,9 @@ state 601 $default reduce using rule 150 (function_call_parameter_list) - function_call_parameter_list go to state 640 - non_empty_function_call_parameter_list go to state 354 - expr_without_variable go to state 355 + function_call_parameter_list go to state 638 + non_empty_function_call_parameter_list go to state 353 + expr_without_variable go to state 354 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 @@ -16718,7 +16682,7 @@ state 601 expr go to state 151 r_variable go to state 89 rw_variable go to state 90 - variable go to state 356 + variable go to state 355 variable_without_objects go to state 92 static_member go to state 93 base_variable_with_function_calls go to state 94 @@ -16730,101 +16694,101 @@ state 601 class_constant go to state 100 -state 602 +state 600 - 338 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @57 object_property @58 method_or_not variable_properties . - 340 variable_properties: variable_properties . variable_property + 336 variable: base_variable_with_function_calls T_OBJECT_OPERATOR @55 object_property @56 method_or_not variable_properties . + 338 variable_properties: variable_properties . variable_property - T_OBJECT_OPERATOR shift, and go to state 641 + T_OBJECT_OPERATOR shift, and go to state 639 - $default reduce using rule 338 (variable) + $default reduce using rule 336 (variable) - variable_property go to state 642 + variable_property go to state 640 -state 603 +state 601 - 365 object_dim_list: object_dim_list '[' dim_offset ']' . + 363 object_dim_list: object_dim_list '[' dim_offset ']' . - $default reduce using rule 365 (object_dim_list) + $default reduce using rule 363 (object_dim_list) -state 604 +state 602 - 366 object_dim_list: object_dim_list '{' expr '}' . + 364 object_dim_list: object_dim_list '{' expr '}' . - $default reduce using rule 366 (object_dim_list) + $default reduce using rule 364 (object_dim_list) -state 605 +state 603 294 dynamic_class_name_variable_property: T_OBJECT_OPERATOR . object_property - T_STRING shift, and go to state 423 + T_STRING shift, and go to state 422 T_VARIABLE shift, and go to state 33 - '{' shift, and go to state 424 + '{' shift, and go to state 423 '$' shift, and go to state 71 - variable_without_objects go to state 425 - reference_variable go to state 298 + variable_without_objects go to state 424 + reference_variable go to state 297 compound_variable go to state 97 - object_property go to state 643 - object_dim_list go to state 427 - variable_name go to state 428 - simple_indirect_reference go to state 299 + object_property go to state 641 + object_dim_list go to state 426 + variable_name go to state 427 + simple_indirect_reference go to state 298 -state 606 +state 604 292 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property . $default reduce using rule 292 (dynamic_class_name_variable_properties) -state 607 +state 605 23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 . new_elseif_list new_else_single T_ENDIF ';' $default reduce using rule 129 (new_elseif_list) - new_elseif_list go to state 644 + new_elseif_list go to state 642 -state 608 +state 606 20 unticked_statement: T_IF '(' expr ')' @3 statement @4 elseif_list . else_single 128 elseif_list: elseif_list . T_ELSEIF '(' expr ')' @33 statement - T_ELSEIF shift, and go to state 645 - T_ELSE shift, and go to state 646 + T_ELSEIF shift, and go to state 643 + T_ELSE shift, and go to state 644 T_ELSEIF [reduce using rule 132 (else_single)] T_ELSE [reduce using rule 132 (else_single)] $default reduce using rule 132 (else_single) - else_single go to state 647 + else_single go to state 645 -state 609 +state 607 29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 expr ')' . ';' - ';' shift, and go to state 648 + ';' shift, and go to state 646 -state 610 +state 608 10 inner_statement_list: inner_statement_list . @2 inner_statement 125 while_statement: ':' inner_statement_list . T_ENDWHILE ';' - T_ENDWHILE shift, and go to state 649 + T_ENDWHILE shift, and go to state 647 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 611 +state 609 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 . for_expr ')' @13 for_statement @@ -16874,14 +16838,14 @@ state 611 $default reduce using rule 196 (for_expr) - for_expr go to state 650 - non_empty_for_expr go to state 245 + for_expr go to state 648 + non_empty_for_expr go to state 244 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 246 + expr go to state 245 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -16896,64 +16860,64 @@ state 611 class_constant go to state 100 -state 612 +state 610 102 foreach_optional_arg: T_DOUBLE_ARROW foreach_variable . $default reduce using rule 102 (foreach_optional_arg) -state 613 +state 611 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' . @18 foreach_statement $default reduce using rule 54 (@18) - @18 go to state 651 + @18 go to state 649 -state 614 +state 612 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' . @16 foreach_statement $default reduce using rule 51 (@16) - @16 go to state 652 + @16 go to state 650 -state 615 +state 613 112 declare_list: declare_list ',' T_STRING '=' static_scalar . $default reduce using rule 112 (declare_list) -state 616 +state 614 110 declare_statement: ':' inner_statement_list T_ENDDECLARE . ';' - ';' shift, and go to state 653 + ';' shift, and go to state 651 -state 617 +state 615 116 switch_case_list: ':' ';' case_list . T_ENDSWITCH ';' 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list - T_ENDSWITCH shift, and go to state 654 - T_CASE shift, and go to state 619 - T_DEFAULT shift, and go to state 620 + T_ENDSWITCH shift, and go to state 652 + T_CASE shift, and go to state 617 + T_DEFAULT shift, and go to state 618 -state 618 +state 616 115 switch_case_list: ':' case_list T_ENDSWITCH . ';' - ';' shift, and go to state 655 + ';' shift, and go to state 653 -state 619 +state 617 119 case_list: case_list T_CASE . expr case_separator @31 inner_statement_list @@ -17006,7 +16970,7 @@ state 619 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 656 + expr go to state 654 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -17021,234 +16985,234 @@ state 619 class_constant go to state 100 -state 620 +state 618 121 case_list: case_list T_DEFAULT . case_separator @32 inner_statement_list - ':' shift, and go to state 657 - ';' shift, and go to state 658 + ':' shift, and go to state 655 + ';' shift, and go to state 656 - case_separator go to state 659 + case_separator go to state 657 -state 621 +state 619 114 switch_case_list: '{' ';' case_list . '}' 119 case_list: case_list . T_CASE expr case_separator @31 inner_statement_list 121 | case_list . T_DEFAULT case_separator @32 inner_statement_list - T_CASE shift, and go to state 619 - T_DEFAULT shift, and go to state 620 - '}' shift, and go to state 660 + T_CASE shift, and go to state 617 + T_DEFAULT shift, and go to state 618 + '}' shift, and go to state 658 -state 622 +state 620 113 switch_case_list: '{' case_list '}' . $default reduce using rule 113 (switch_case_list) -state 623 +state 621 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' . '{' inner_statement_list '}' - '{' shift, and go to state 661 + '{' shift, and go to state 659 -state 624 +state 622 142 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type T_VARIABLE 143 | non_empty_parameter_list ',' . optional_class_type '&' T_VARIABLE 144 | non_empty_parameter_list ',' . optional_class_type '&' T_VARIABLE '=' static_scalar 145 | non_empty_parameter_list ',' . optional_class_type T_VARIABLE '=' static_scalar - T_STRING shift, and go to state 563 - T_ARRAY shift, and go to state 564 + T_STRING shift, and go to state 561 + T_ARRAY shift, and go to state 562 $default reduce using rule 146 (optional_class_type) - optional_class_type go to state 662 + optional_class_type go to state 660 -state 625 +state 623 139 non_empty_parameter_list: optional_class_type '&' . T_VARIABLE 140 | optional_class_type '&' . T_VARIABLE '=' static_scalar - T_VARIABLE shift, and go to state 663 + T_VARIABLE shift, and go to state 661 -state 626 +state 624 138 non_empty_parameter_list: optional_class_type T_VARIABLE . 141 | optional_class_type T_VARIABLE . '=' static_scalar - '=' shift, and go to state 664 + '=' shift, and go to state 662 $default reduce using rule 138 (non_empty_parameter_list) -state 627 +state 625 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 . fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches - T_STRING shift, and go to state 407 + T_STRING shift, and go to state 406 - fully_qualified_class_name go to state 665 + fully_qualified_class_name go to state 663 -state 628 +state 626 327 non_empty_static_array_pair_list: static_scalar T_DOUBLE_ARROW static_scalar . $default reduce using rule 327 (non_empty_static_array_pair_list) -state 629 +state 627 325 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . T_DOUBLE_ARROW static_scalar 326 | non_empty_static_array_pair_list ',' static_scalar . - T_DOUBLE_ARROW shift, and go to state 666 + T_DOUBLE_ARROW shift, and go to state 664 $default reduce using rule 326 (non_empty_static_array_pair_list) -state 630 +state 628 - 376 assignment_list_element: T_LIST '(' @62 assignment_list ')' . + 374 assignment_list_element: T_LIST '(' @60 assignment_list ')' . - $default reduce using rule 376 (assignment_list_element) + $default reduce using rule 374 (assignment_list_element) -state 631 +state 629 - 384 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable . + 382 non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable . - $default reduce using rule 384 (non_empty_array_pair_list) + $default reduce using rule 382 (non_empty_array_pair_list) -state 632 +state 630 - 396 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' . + 394 encaps_var: T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' . - $default reduce using rule 396 (encaps_var) + $default reduce using rule 394 (encaps_var) -state 633 +state 631 86 unticked_class_declaration_statement: class_entry_type T_STRING extends_from @29 implements_list '{' class_statement_list '}' . $default reduce using rule 86 (unticked_class_declaration_statement) -state 634 +state 632 193 class_constant_declaration: T_CONST T_STRING . '=' static_scalar - '=' shift, and go to state 667 + '=' shift, and go to state 665 -state 635 +state 633 169 class_statement: variable_modifiers @35 . class_variable_declaration ';' - T_VARIABLE shift, and go to state 668 + T_VARIABLE shift, and go to state 666 - class_variable_declaration go to state 669 + class_variable_declaration go to state 667 -state 636 +state 634 173 class_statement: method_modifiers T_FUNCTION . @36 is_reference T_STRING @37 '(' parameter_list ')' method_body $default reduce using rule 171 (@36) - @36 go to state 670 + @36 go to state 668 -state 637 +state 635 181 non_empty_member_modifiers: non_empty_member_modifiers member_modifier . $default reduce using rule 181 (non_empty_member_modifiers) -state 638 +state 636 192 class_constant_declaration: class_constant_declaration ',' . T_STRING '=' static_scalar - T_STRING shift, and go to state 671 + T_STRING shift, and go to state 669 -state 639 +state 637 170 class_statement: class_constant_declaration ';' . $default reduce using rule 170 (class_statement) -state 640 +state 638 - 345 method_or_not: '(' @60 function_call_parameter_list . ')' + 343 method_or_not: '(' @58 function_call_parameter_list . ')' - ')' shift, and go to state 672 + ')' shift, and go to state 670 -state 641 +state 639 - 343 variable_property: T_OBJECT_OPERATOR . object_property @59 method_or_not + 341 variable_property: T_OBJECT_OPERATOR . object_property @57 method_or_not - T_STRING shift, and go to state 423 + T_STRING shift, and go to state 422 T_VARIABLE shift, and go to state 33 - '{' shift, and go to state 424 + '{' shift, and go to state 423 '$' shift, and go to state 71 - variable_without_objects go to state 425 - reference_variable go to state 298 + variable_without_objects go to state 424 + reference_variable go to state 297 compound_variable go to state 97 - object_property go to state 673 - object_dim_list go to state 427 - variable_name go to state 428 - simple_indirect_reference go to state 299 + object_property go to state 671 + object_dim_list go to state 426 + variable_name go to state 427 + simple_indirect_reference go to state 298 -state 642 +state 640 - 340 variable_properties: variable_properties variable_property . + 338 variable_properties: variable_properties variable_property . - $default reduce using rule 340 (variable_properties) + $default reduce using rule 338 (variable_properties) -state 643 +state 641 294 dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property . $default reduce using rule 294 (dynamic_class_name_variable_property) -state 644 +state 642 23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list . new_else_single T_ENDIF ';' 131 new_elseif_list: new_elseif_list . T_ELSEIF '(' expr ')' ':' @34 inner_statement_list - T_ELSEIF shift, and go to state 674 - T_ELSE shift, and go to state 675 + T_ELSEIF shift, and go to state 672 + T_ELSE shift, and go to state 673 $default reduce using rule 134 (new_else_single) - new_else_single go to state 676 + new_else_single go to state 674 -state 645 +state 643 128 elseif_list: elseif_list T_ELSEIF . '(' expr ')' @33 statement - '(' shift, and go to state 677 + '(' shift, and go to state 675 -state 646 +state 644 133 else_single: T_ELSE . statement @@ -17316,7 +17280,7 @@ state 646 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 678 + statement go to state 676 unticked_statement go to state 76 expr_without_variable go to state 83 function_call go to state 84 @@ -17338,35 +17302,35 @@ state 646 class_constant go to state 100 -state 647 +state 645 20 unticked_statement: T_IF '(' expr ')' @3 statement @4 elseif_list else_single . $default reduce using rule 20 (unticked_statement) -state 648 +state 646 29 unticked_statement: T_DO @9 statement T_WHILE '(' @10 expr ')' ';' . $default reduce using rule 29 (unticked_statement) -state 649 +state 647 125 while_statement: ':' inner_statement_list T_ENDWHILE . ';' - ';' shift, and go to state 679 + ';' shift, and go to state 677 -state 650 +state 648 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr . ')' @13 for_statement - ')' shift, and go to state 680 + ')' shift, and go to state 678 -state 651 +state 649 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 . foreach_statement @@ -17376,7 +17340,7 @@ state 651 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - ':' shift, and go to state 681 + ':' shift, and go to state 679 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -17435,9 +17399,9 @@ state 651 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 682 + statement go to state 680 unticked_statement go to state 76 - foreach_statement go to state 683 + foreach_statement go to state 681 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 @@ -17458,7 +17422,7 @@ state 651 class_constant go to state 100 -state 652 +state 650 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 . foreach_statement @@ -17468,7 +17432,7 @@ state 652 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - ':' shift, and go to state 681 + ':' shift, and go to state 679 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -17527,9 +17491,9 @@ state 652 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 682 + statement go to state 680 unticked_statement go to state 76 - foreach_statement go to state 684 + foreach_statement go to state 682 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 @@ -17550,28 +17514,28 @@ state 652 class_constant go to state 100 -state 653 +state 651 110 declare_statement: ':' inner_statement_list T_ENDDECLARE ';' . $default reduce using rule 110 (declare_statement) -state 654 +state 652 116 switch_case_list: ':' ';' case_list T_ENDSWITCH . ';' - ';' shift, and go to state 685 + ';' shift, and go to state 683 -state 655 +state 653 115 switch_case_list: ':' case_list T_ENDSWITCH ';' . $default reduce using rule 115 (switch_case_list) -state 656 +state 654 119 case_list: case_list T_CASE expr . case_separator @31 inner_statement_list 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -17605,7 +17569,7 @@ state 656 T_LOGICAL_XOR shift, and go to state 182 T_LOGICAL_AND shift, and go to state 183 '?' shift, and go to state 184 - ':' shift, and go to state 657 + ':' shift, and go to state 655 T_BOOLEAN_OR shift, and go to state 185 T_BOOLEAN_AND shift, and go to state 186 '|' shift, and go to state 187 @@ -17628,222 +17592,222 @@ state 656 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ';' shift, and go to state 658 + ';' shift, and go to state 656 - case_separator go to state 686 + case_separator go to state 684 -state 657 +state 655 122 case_separator: ':' . $default reduce using rule 122 (case_separator) -state 658 +state 656 123 case_separator: ';' . $default reduce using rule 123 (case_separator) -state 659 +state 657 121 case_list: case_list T_DEFAULT case_separator . @32 inner_statement_list $default reduce using rule 120 (@32) - @32 go to state 687 + @32 go to state 685 -state 660 +state 658 114 switch_case_list: '{' ';' case_list '}' . $default reduce using rule 114 (switch_case_list) -state 661 +state 659 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' . inner_statement_list '}' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 688 + inner_statement_list go to state 686 -state 662 +state 660 142 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . T_VARIABLE 143 | non_empty_parameter_list ',' optional_class_type . '&' T_VARIABLE 144 | non_empty_parameter_list ',' optional_class_type . '&' T_VARIABLE '=' static_scalar 145 | non_empty_parameter_list ',' optional_class_type . T_VARIABLE '=' static_scalar - '&' shift, and go to state 689 - T_VARIABLE shift, and go to state 690 + '&' shift, and go to state 687 + T_VARIABLE shift, and go to state 688 -state 663 +state 661 139 non_empty_parameter_list: optional_class_type '&' T_VARIABLE . 140 | optional_class_type '&' T_VARIABLE . '=' static_scalar - '=' shift, and go to state 691 + '=' shift, and go to state 689 $default reduce using rule 139 (non_empty_parameter_list) -state 664 +state 662 141 non_empty_parameter_list: optional_class_type T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 692 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 690 + static_class_constant go to state 377 -state 665 +state 663 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name . @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches $default reduce using rule 61 (@22) - @22 go to state 693 + @22 go to state 691 -state 666 +state 664 325 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 694 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 692 + static_class_constant go to state 377 -state 667 +state 665 193 class_constant_declaration: T_CONST T_STRING '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 695 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 693 + static_class_constant go to state 377 -state 668 +state 666 190 class_variable_declaration: T_VARIABLE . 191 | T_VARIABLE . '=' static_scalar - '=' shift, and go to state 696 + '=' shift, and go to state 694 $default reduce using rule 190 (class_variable_declaration) -state 669 +state 667 169 class_statement: variable_modifiers @35 class_variable_declaration . ';' 188 class_variable_declaration: class_variable_declaration . ',' T_VARIABLE 189 | class_variable_declaration . ',' T_VARIABLE '=' static_scalar - ',' shift, and go to state 697 - ';' shift, and go to state 698 + ',' shift, and go to state 695 + ';' shift, and go to state 696 -state 670 +state 668 173 class_statement: method_modifiers T_FUNCTION @36 . is_reference T_STRING @37 '(' parameter_list ')' method_body - '&' shift, and go to state 253 + '&' shift, and go to state 252 $default reduce using rule 80 (is_reference) - is_reference go to state 699 + is_reference go to state 697 -state 671 +state 669 192 class_constant_declaration: class_constant_declaration ',' T_STRING . '=' static_scalar - '=' shift, and go to state 700 + '=' shift, and go to state 698 -state 672 +state 670 - 345 method_or_not: '(' @60 function_call_parameter_list ')' . + 343 method_or_not: '(' @58 function_call_parameter_list ')' . - $default reduce using rule 345 (method_or_not) + $default reduce using rule 343 (method_or_not) -state 673 +state 671 - 343 variable_property: T_OBJECT_OPERATOR object_property . @59 method_or_not + 341 variable_property: T_OBJECT_OPERATOR object_property . @57 method_or_not - $default reduce using rule 342 (@59) + $default reduce using rule 340 (@57) - @59 go to state 701 + @57 go to state 699 -state 674 +state 672 131 new_elseif_list: new_elseif_list T_ELSEIF . '(' expr ')' ':' @34 inner_statement_list - '(' shift, and go to state 702 + '(' shift, and go to state 700 -state 675 +state 673 135 new_else_single: T_ELSE . ':' inner_statement_list - ':' shift, and go to state 703 + ':' shift, and go to state 701 -state 676 +state 674 23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single . T_ENDIF ';' - T_ENDIF shift, and go to state 704 + T_ENDIF shift, and go to state 702 -state 677 +state 675 128 elseif_list: elseif_list T_ELSEIF '(' . expr ')' @33 statement @@ -17896,7 +17860,7 @@ state 677 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 705 + expr go to state 703 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -17911,242 +17875,242 @@ state 677 class_constant go to state 100 -state 678 +state 676 133 else_single: T_ELSE statement . $default reduce using rule 133 (else_single) -state 679 +state 677 125 while_statement: ':' inner_statement_list T_ENDWHILE ';' . $default reduce using rule 125 (while_statement) -state 680 +state 678 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr ')' . @13 for_statement $default reduce using rule 32 (@13) - @13 go to state 706 + @13 go to state 704 -state 681 +state 679 108 foreach_statement: ':' . inner_statement_list T_ENDFOREACH ';' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 707 + inner_statement_list go to state 705 -state 682 +state 680 107 foreach_statement: statement . $default reduce using rule 107 (foreach_statement) -state 683 +state 681 55 unticked_statement: T_FOREACH '(' expr_without_variable T_AS @17 variable foreach_optional_arg ')' @18 foreach_statement . $default reduce using rule 55 (unticked_statement) -state 684 +state 682 52 unticked_statement: T_FOREACH '(' variable T_AS @15 foreach_variable foreach_optional_arg ')' @16 foreach_statement . $default reduce using rule 52 (unticked_statement) -state 685 +state 683 116 switch_case_list: ':' ';' case_list T_ENDSWITCH ';' . $default reduce using rule 116 (switch_case_list) -state 686 +state 684 119 case_list: case_list T_CASE expr case_separator . @31 inner_statement_list $default reduce using rule 118 (@31) - @31 go to state 708 + @31 go to state 706 -state 687 +state 685 121 case_list: case_list T_DEFAULT case_separator @32 . inner_statement_list $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 709 + inner_statement_list go to state 707 -state 688 +state 686 10 inner_statement_list: inner_statement_list . @2 inner_statement 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list . '}' - '}' shift, and go to state 710 + '}' shift, and go to state 708 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 689 +state 687 143 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . T_VARIABLE 144 | non_empty_parameter_list ',' optional_class_type '&' . T_VARIABLE '=' static_scalar - T_VARIABLE shift, and go to state 711 + T_VARIABLE shift, and go to state 709 -state 690 +state 688 142 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE . 145 | non_empty_parameter_list ',' optional_class_type T_VARIABLE . '=' static_scalar - '=' shift, and go to state 712 + '=' shift, and go to state 710 $default reduce using rule 142 (non_empty_parameter_list) -state 691 +state 689 140 non_empty_parameter_list: optional_class_type '&' T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 713 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 711 + static_class_constant go to state 377 -state 692 +state 690 141 non_empty_parameter_list: optional_class_type T_VARIABLE '=' static_scalar . $default reduce using rule 141 (non_empty_parameter_list) -state 693 +state 691 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 . T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches - T_VARIABLE shift, and go to state 714 + T_VARIABLE shift, and go to state 712 -state 694 +state 692 325 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar . $default reduce using rule 325 (non_empty_static_array_pair_list) -state 695 +state 693 193 class_constant_declaration: T_CONST T_STRING '=' static_scalar . $default reduce using rule 193 (class_constant_declaration) -state 696 +state 694 191 class_variable_declaration: T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 715 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 713 + static_class_constant go to state 377 -state 697 +state 695 188 class_variable_declaration: class_variable_declaration ',' . T_VARIABLE 189 | class_variable_declaration ',' . T_VARIABLE '=' static_scalar - T_VARIABLE shift, and go to state 716 + T_VARIABLE shift, and go to state 714 -state 698 +state 696 169 class_statement: variable_modifiers @35 class_variable_declaration ';' . $default reduce using rule 169 (class_statement) -state 699 +state 697 173 class_statement: method_modifiers T_FUNCTION @36 is_reference . T_STRING @37 '(' parameter_list ')' method_body - T_STRING shift, and go to state 717 + T_STRING shift, and go to state 715 -state 700 +state 698 192 class_constant_declaration: class_constant_declaration ',' T_STRING '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 718 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 716 + static_class_constant go to state 377 -state 701 +state 699 - 343 variable_property: T_OBJECT_OPERATOR object_property @59 . method_or_not + 341 variable_property: T_OBJECT_OPERATOR object_property @57 . method_or_not - '(' shift, and go to state 540 + '(' shift, and go to state 538 - $default reduce using rule 346 (method_or_not) + $default reduce using rule 344 (method_or_not) - method_or_not go to state 719 + method_or_not go to state 717 -state 702 +state 700 131 new_elseif_list: new_elseif_list T_ELSEIF '(' . expr ')' ':' @34 inner_statement_list @@ -18199,7 +18163,7 @@ state 702 fully_qualified_class_name go to state 85 common_scalar go to state 86 scalar go to state 87 - expr go to state 720 + expr go to state 718 r_variable go to state 89 rw_variable go to state 90 variable go to state 91 @@ -18214,23 +18178,23 @@ state 702 class_constant go to state 100 -state 703 +state 701 135 new_else_single: T_ELSE ':' . inner_statement_list $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 721 + inner_statement_list go to state 719 -state 704 +state 702 23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF . ';' - ';' shift, and go to state 722 + ';' shift, and go to state 720 -state 705 +state 703 128 elseif_list: elseif_list T_ELSEIF '(' expr . ')' @33 statement 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -18286,10 +18250,10 @@ state 705 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 723 + ')' shift, and go to state 721 -state 706 +state 704 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr ')' @13 . for_statement @@ -18299,7 +18263,7 @@ state 706 T_INCLUDE_ONCE shift, and go to state 8 T_INCLUDE shift, and go to state 9 T_PRINT shift, and go to state 10 - ':' shift, and go to state 724 + ':' shift, and go to state 722 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -18358,9 +18322,9 @@ state 706 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 725 + statement go to state 723 unticked_statement go to state 76 - for_statement go to state 726 + for_statement go to state 724 expr_without_variable go to state 83 function_call go to state 84 fully_qualified_class_name go to state 85 @@ -18381,28 +18345,28 @@ state 706 class_constant go to state 100 -state 707 +state 705 10 inner_statement_list: inner_statement_list . @2 inner_statement 108 foreach_statement: ':' inner_statement_list . T_ENDFOREACH ';' - T_ENDFOREACH shift, and go to state 727 + T_ENDFOREACH shift, and go to state 725 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 708 +state 706 119 case_list: case_list T_CASE expr case_separator @31 . inner_statement_list $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 728 + inner_statement_list go to state 726 -state 709 +state 707 10 inner_statement_list: inner_statement_list . @2 inner_statement 121 case_list: case_list T_DEFAULT case_separator @32 inner_statement_list . @@ -18413,103 +18377,103 @@ state 709 '}' reduce using rule 121 (case_list) $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 710 +state 708 84 unticked_function_declaration_statement: T_FUNCTION @27 is_reference T_STRING @28 '(' parameter_list ')' '{' inner_statement_list '}' . $default reduce using rule 84 (unticked_function_declaration_statement) -state 711 +state 709 143 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE . 144 | non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE . '=' static_scalar - '=' shift, and go to state 729 + '=' shift, and go to state 727 $default reduce using rule 143 (non_empty_parameter_list) -state 712 +state 710 145 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 730 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 728 + static_class_constant go to state 377 -state 713 +state 711 140 non_empty_parameter_list: optional_class_type '&' T_VARIABLE '=' static_scalar . $default reduce using rule 140 (non_empty_parameter_list) -state 714 +state 712 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE . ')' @23 '{' inner_statement_list '}' @24 additional_catches - ')' shift, and go to state 731 + ')' shift, and go to state 729 -state 715 +state 713 191 class_variable_declaration: T_VARIABLE '=' static_scalar . $default reduce using rule 191 (class_variable_declaration) -state 716 +state 714 188 class_variable_declaration: class_variable_declaration ',' T_VARIABLE . 189 | class_variable_declaration ',' T_VARIABLE . '=' static_scalar - '=' shift, and go to state 732 + '=' shift, and go to state 730 $default reduce using rule 188 (class_variable_declaration) -state 717 +state 715 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING . @37 '(' parameter_list ')' method_body $default reduce using rule 172 (@37) - @37 go to state 733 + @37 go to state 731 -state 718 +state 716 192 class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar . $default reduce using rule 192 (class_constant_declaration) -state 719 +state 717 - 343 variable_property: T_OBJECT_OPERATOR object_property @59 method_or_not . + 341 variable_property: T_OBJECT_OPERATOR object_property @57 method_or_not . - $default reduce using rule 343 (variable_property) + $default reduce using rule 341 (variable_property) -state 720 +state 718 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr . ')' ':' @34 inner_statement_list 226 expr_without_variable: expr . T_BOOLEAN_OR @42 expr @@ -18565,10 +18529,10 @@ state 720 '/' shift, and go to state 204 '%' shift, and go to state 205 T_INSTANCEOF shift, and go to state 206 - ')' shift, and go to state 734 + ')' shift, and go to state 732 -state 721 +state 719 10 inner_statement_list: inner_statement_list . @2 inner_statement 135 new_else_single: T_ELSE ':' inner_statement_list . @@ -18576,56 +18540,56 @@ state 721 T_ENDIF reduce using rule 135 (new_else_single) $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 722 +state 720 23 unticked_statement: T_IF '(' expr ')' ':' @5 inner_statement_list @6 new_elseif_list new_else_single T_ENDIF ';' . $default reduce using rule 23 (unticked_statement) -state 723 +state 721 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' . @33 statement $default reduce using rule 127 (@33) - @33 go to state 735 + @33 go to state 733 -state 724 +state 722 106 for_statement: ':' . inner_statement_list T_ENDFOR ';' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 736 + inner_statement_list go to state 734 -state 725 +state 723 105 for_statement: statement . $default reduce using rule 105 (for_statement) -state 726 +state 724 33 unticked_statement: T_FOR '(' for_expr ';' @11 for_expr ';' @12 for_expr ')' @13 for_statement . $default reduce using rule 33 (unticked_statement) -state 727 +state 725 108 foreach_statement: ':' inner_statement_list T_ENDFOREACH . ';' - ';' shift, and go to state 737 + ';' shift, and go to state 735 -state 728 +state 726 10 inner_statement_list: inner_statement_list . @2 inner_statement 119 case_list: case_list T_CASE expr case_separator @31 inner_statement_list . @@ -18636,84 +18600,84 @@ state 728 '}' reduce using rule 119 (case_list) $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 729 +state 727 144 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 738 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 736 + static_class_constant go to state 377 -state 730 +state 728 145 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type T_VARIABLE '=' static_scalar . $default reduce using rule 145 (non_empty_parameter_list) -state 731 +state 729 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' . @23 '{' inner_statement_list '}' @24 additional_catches $default reduce using rule 62 (@23) - @23 go to state 739 + @23 go to state 737 -state 732 +state 730 189 class_variable_declaration: class_variable_declaration ',' T_VARIABLE '=' . static_scalar - '+' shift, and go to state 372 - '-' shift, and go to state 373 + '+' shift, and go to state 371 + '-' shift, and go to state 372 T_LNUMBER shift, and go to state 29 T_DNUMBER shift, and go to state 30 - T_STRING shift, and go to state 374 + T_STRING shift, and go to state 373 T_CONSTANT_ENCAPSED_STRING shift, and go to state 35 - T_ARRAY shift, and go to state 375 + T_ARRAY shift, and go to state 374 T_CLASS_C shift, and go to state 62 T_METHOD_C shift, and go to state 63 T_FUNC_C shift, and go to state 64 T_LINE shift, and go to state 65 T_FILE shift, and go to state 66 - common_scalar go to state 376 - static_scalar go to state 740 - static_class_constant go to state 378 + common_scalar go to state 375 + static_scalar go to state 738 + static_class_constant go to state 377 -state 733 +state 731 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 . '(' parameter_list ')' method_body - '(' shift, and go to state 741 + '(' shift, and go to state 739 -state 734 +state 732 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' . ':' @34 inner_statement_list - ':' shift, and go to state 742 + ':' shift, and go to state 740 -state 735 +state 733 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' @33 . statement @@ -18781,7 +18745,7 @@ state 735 '`' shift, and go to state 72 '"' shift, and go to state 73 - statement go to state 743 + statement go to state 741 unticked_statement go to state 76 expr_without_variable go to state 83 function_call go to state 84 @@ -18803,139 +18767,139 @@ state 735 class_constant go to state 100 -state 736 +state 734 10 inner_statement_list: inner_statement_list . @2 inner_statement 106 for_statement: ':' inner_statement_list . T_ENDFOR ';' - T_ENDFOR shift, and go to state 744 + T_ENDFOR shift, and go to state 742 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 737 +state 735 108 foreach_statement: ':' inner_statement_list T_ENDFOREACH ';' . $default reduce using rule 108 (foreach_statement) -state 738 +state 736 144 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' T_VARIABLE '=' static_scalar . $default reduce using rule 144 (non_empty_parameter_list) -state 739 +state 737 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 . '{' inner_statement_list '}' @24 additional_catches - '{' shift, and go to state 745 + '{' shift, and go to state 743 -state 740 +state 738 189 class_variable_declaration: class_variable_declaration ',' T_VARIABLE '=' static_scalar . $default reduce using rule 189 (class_variable_declaration) -state 741 +state 739 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' . parameter_list ')' method_body - T_STRING shift, and go to state 563 - T_ARRAY shift, and go to state 564 + T_STRING shift, and go to state 561 + T_ARRAY shift, and go to state 562 ')' reduce using rule 137 (parameter_list) $default reduce using rule 146 (optional_class_type) - parameter_list go to state 746 - non_empty_parameter_list go to state 566 - optional_class_type go to state 567 + parameter_list go to state 744 + non_empty_parameter_list go to state 564 + optional_class_type go to state 565 -state 742 +state 740 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' . @34 inner_statement_list $default reduce using rule 130 (@34) - @34 go to state 747 + @34 go to state 745 -state 743 +state 741 128 elseif_list: elseif_list T_ELSEIF '(' expr ')' @33 statement . $default reduce using rule 128 (elseif_list) -state 744 +state 742 106 for_statement: ':' inner_statement_list T_ENDFOR . ';' - ';' shift, and go to state 748 + ';' shift, and go to state 746 -state 745 +state 743 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' . inner_statement_list '}' @24 additional_catches $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 749 + inner_statement_list go to state 747 -state 746 +state 744 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list . ')' method_body - ')' shift, and go to state 750 + ')' shift, and go to state 748 -state 747 +state 745 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @34 . inner_statement_list $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 751 + inner_statement_list go to state 749 -state 748 +state 746 106 for_statement: ':' inner_statement_list T_ENDFOR ';' . $default reduce using rule 106 (for_statement) -state 749 +state 747 10 inner_statement_list: inner_statement_list . @2 inner_statement 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list . '}' @24 additional_catches - '}' shift, and go to state 752 + '}' shift, and go to state 750 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 750 +state 748 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' . method_body - ';' shift, and go to state 753 - '{' shift, and go to state 754 + ';' shift, and go to state 751 + '{' shift, and go to state 752 - method_body go to state 755 + method_body go to state 753 -state 751 +state 749 10 inner_statement_list: inner_statement_list . @2 inner_statement 131 new_elseif_list: new_elseif_list T_ELSEIF '(' expr ')' ':' @34 inner_statement_list . @@ -18945,183 +18909,183 @@ state 751 T_ENDIF reduce using rule 131 (new_elseif_list) $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 752 +state 750 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' . @24 additional_catches $default reduce using rule 63 (@24) - @24 go to state 756 + @24 go to state 754 -state 753 +state 751 174 method_body: ';' . $default reduce using rule 174 (method_body) -state 754 +state 752 175 method_body: '{' . inner_statement_list '}' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 757 + inner_statement_list go to state 755 -state 755 +state 753 173 class_statement: method_modifiers T_FUNCTION @36 is_reference T_STRING @37 '(' parameter_list ')' method_body . $default reduce using rule 173 (class_statement) -state 756 +state 754 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 . additional_catches - T_CATCH shift, and go to state 758 + T_CATCH shift, and go to state 756 $default reduce using rule 67 (additional_catches) - additional_catches go to state 759 - non_empty_additional_catches go to state 760 - additional_catch go to state 761 + additional_catches go to state 757 + non_empty_additional_catches go to state 758 + additional_catch go to state 759 -state 757 +state 755 10 inner_statement_list: inner_statement_list . @2 inner_statement 175 method_body: '{' inner_statement_list . '}' - '}' shift, and go to state 762 + '}' shift, and go to state 760 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 758 +state 756 72 additional_catch: T_CATCH . '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}' - '(' shift, and go to state 763 + '(' shift, and go to state 761 -state 759 +state 757 64 unticked_statement: T_TRY @20 '{' inner_statement_list '}' T_CATCH '(' @21 fully_qualified_class_name @22 T_VARIABLE ')' @23 '{' inner_statement_list '}' @24 additional_catches . $default reduce using rule 64 (unticked_statement) -state 760 +state 758 66 additional_catches: non_empty_additional_catches . 69 non_empty_additional_catches: non_empty_additional_catches . additional_catch - T_CATCH shift, and go to state 758 + T_CATCH shift, and go to state 756 $default reduce using rule 66 (additional_catches) - additional_catch go to state 764 + additional_catch go to state 762 -state 761 +state 759 68 non_empty_additional_catches: additional_catch . $default reduce using rule 68 (non_empty_additional_catches) -state 762 +state 760 175 method_body: '{' inner_statement_list '}' . $default reduce using rule 175 (method_body) -state 763 +state 761 72 additional_catch: T_CATCH '(' . fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}' - T_STRING shift, and go to state 407 + T_STRING shift, and go to state 406 - fully_qualified_class_name go to state 765 + fully_qualified_class_name go to state 763 -state 764 +state 762 69 non_empty_additional_catches: non_empty_additional_catches additional_catch . $default reduce using rule 69 (non_empty_additional_catches) -state 765 +state 763 72 additional_catch: T_CATCH '(' fully_qualified_class_name . @25 T_VARIABLE ')' @26 '{' inner_statement_list '}' $default reduce using rule 70 (@25) - @25 go to state 766 + @25 go to state 764 -state 766 +state 764 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 . T_VARIABLE ')' @26 '{' inner_statement_list '}' - T_VARIABLE shift, and go to state 767 + T_VARIABLE shift, and go to state 765 -state 767 +state 765 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE . ')' @26 '{' inner_statement_list '}' - ')' shift, and go to state 768 + ')' shift, and go to state 766 -state 768 +state 766 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' . @26 '{' inner_statement_list '}' $default reduce using rule 71 (@26) - @26 go to state 769 + @26 go to state 767 -state 769 +state 767 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 . '{' inner_statement_list '}' - '{' shift, and go to state 770 + '{' shift, and go to state 768 -state 770 +state 768 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' . inner_statement_list '}' $default reduce using rule 11 (inner_statement_list) - inner_statement_list go to state 771 + inner_statement_list go to state 769 -state 771 +state 769 10 inner_statement_list: inner_statement_list . @2 inner_statement 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list . '}' - '}' shift, and go to state 772 + '}' shift, and go to state 770 $default reduce using rule 9 (@2) - @2 go to state 289 + @2 go to state 288 -state 772 +state 770 72 additional_catch: T_CATCH '(' fully_qualified_class_name @25 T_VARIABLE ')' @26 '{' inner_statement_list '}' . diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index c15cda994..aa01fdaf4 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y,v 1.160.2.4.2.8 2007/08/13 21:16:57 stas Exp $ */ +/* $Id: zend_language_parser.y,v 1.160.2.4.2.10 2008/03/10 14:54:47 felipe Exp $ */ /* * LALR shift/reduce conflicts and how they are resolved: @@ -551,7 +551,7 @@ non_empty_for_expr: expr_without_variable: T_LIST '(' { zend_do_list_init(TSRMLS_C); } assignment_list ')' '=' expr { zend_do_list_end(&$$, &$7 TSRMLS_CC); } - | variable '=' expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&$$, &$1, &$3 TSRMLS_CC); } + | variable '=' expr { zend_check_writable_variable(&$1); zend_do_assign(&$$, &$1, &$3 TSRMLS_CC); } | variable '=' '&' variable { zend_check_writable_variable(&$1); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&$$, &$1, &$4 TSRMLS_CC); } | variable '=' '&' T_NEW class_name_reference { zend_error(E_STRICT, "Assigning the return value of new by reference is deprecated"); zend_check_writable_variable(&$1); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&$4, &$5 TSRMLS_CC); } ctor_arguments { zend_do_end_new_object(&$3, &$4, &$7 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&$$, &$1, &$3 TSRMLS_CC); } | T_NEW class_name_reference { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&$1, &$2 TSRMLS_CC); } ctor_arguments { zend_do_end_new_object(&$$, &$1, &$4 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} @@ -740,13 +740,13 @@ r_variable: w_variable: - variable { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); $$ = $1; } - { zend_check_writable_variable(&$1); } + variable { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); $$ = $1; + zend_check_writable_variable(&$1); } ; rw_variable: - variable { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); $$ = $1; } - { zend_check_writable_variable(&$1); } + variable { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); $$ = $1; + zend_check_writable_variable(&$1); } ; variable: diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 99a873a8f..e2627d800 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -18,7 +18,7 @@ /* A Lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /repository/ZendEngine2/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $ + * $Header: /repository/ZendEngine2/Attic/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $ * vim:ft=lex: */ @@ -3031,7 +3031,7 @@ char *yytext; +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13 2007/09/09 16:33:34 iliaa Exp $ */ +/* $Id: zend_language_scanner.l,v 1.131.2.11.2.15 2008/04/09 21:40:13 scottmac Exp $ */ #define yyleng SCNG(yy_leng) #define yytext SCNG(yy_text) @@ -3743,7 +3743,7 @@ ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, si /* TODO: support widechars */ - for (n = 0; n < sizeof(buf) && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) { + for (n = 0; n < len && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) { buf[n] = (char)c; } if (c == '\n') { @@ -3751,8 +3751,8 @@ ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, si } SCNG(script_org_size) = n; - SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1); - memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n); + SCNG(script_org) = (char*)emalloc(SCNG(script_org_size) + 1); + memcpy(SCNG(script_org), buf, n); return n; } @@ -3769,29 +3769,18 @@ ZEND_API int zend_multibyte_read_script(TSRMLS_D) SCNG(script_org) = NULL; SCNG(script_org_size) = 0; - for (;;) { - n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC); - if (n <= 0) { - break; - } - + for (; (n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC)) > 0; ) { SCNG(script_org_size) += n; - if (SCNG(script_org)) { - SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size)+1); - } else { - SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1); - } - memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n); + SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size)); + memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n); } if (n < 0) { return -1; } - if (!SCNG(script_org)) { - SCNG(script_org) = emalloc(SCNG(script_org_size)+1); - } - *(SCNG(script_org)+SCNG(script_org_size)) = (char)NULL; + SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1); + *(SCNG(script_org)+SCNG(script_org_size)) = '\0'; return 0; } @@ -5469,8 +5458,13 @@ YY_RULE_SETUP if (yyleng > CG(heredoc_len) && !memcmp(end - CG(heredoc_len), CG(heredoc), CG(heredoc_len))) { int len = yyleng - CG(heredoc_len) - 2; /* 2 for newline before and after label */ - if (len > 0 && yytext[len - 1] == '\r' && yytext[len] == '\n') { - len--; + /* May have matched fooLABEL; make sure there's a newline before it */ + if (yytext[len] != '\n') { + if (yytext[len] != '\r') { + goto wrong_label; + } + } else if (len > 0 && yytext[len - 1] == '\r') { + len--; /* Windows newline */ } /* Go back before last label char, to match in ST_END_HEREDOC state */ @@ -5487,6 +5481,7 @@ YY_RULE_SETUP } else { /* Go back to end of label, so the next match works correctly in case of * a variable or another label at the beginning of the next line */ +wrong_label: yyless(yyleng - 1); yymore(); } diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h index e8ce560fc..024bc279d 100644 --- a/Zend/zend_language_scanner.h +++ b/Zend/zend_language_scanner.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.h,v 1.19.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_language_scanner.h,v 1.19.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_SCANNER_H #define ZEND_SCANNER_H diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 047ac6ef3..55ff5af08 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13 2007/09/09 16:33:34 iliaa Exp $ */ +/* $Id: zend_language_scanner.l,v 1.131.2.11.2.15 2008/04/09 21:40:13 scottmac Exp $ */ #define yyleng SCNG(yy_leng) #define yytext SCNG(yy_text) @@ -723,7 +723,7 @@ ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, si /* TODO: support widechars */ - for (n = 0; n < sizeof(buf) && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) { + for (n = 0; n < len && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) { buf[n] = (char)c; } if (c == '\n') { @@ -731,8 +731,8 @@ ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, si } SCNG(script_org_size) = n; - SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1); - memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n); + SCNG(script_org) = (char*)emalloc(SCNG(script_org_size) + 1); + memcpy(SCNG(script_org), buf, n); return n; } @@ -749,29 +749,18 @@ ZEND_API int zend_multibyte_read_script(TSRMLS_D) SCNG(script_org) = NULL; SCNG(script_org_size) = 0; - for (;;) { - n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC); - if (n <= 0) { - break; - } - + for (; (n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC)) > 0; ) { SCNG(script_org_size) += n; - if (SCNG(script_org)) { - SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size)+1); - } else { - SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1); - } - memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n); + SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size)); + memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n); } if (n < 0) { return -1; } - if (!SCNG(script_org)) { - SCNG(script_org) = emalloc(SCNG(script_org_size)+1); - } - *(SCNG(script_org)+SCNG(script_org_size)) = (char)NULL; + SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1); + *(SCNG(script_org)+SCNG(script_org_size)) = '\0'; return 0; } @@ -1930,8 +1919,13 @@ HEREDOC_CHARS ("{"*([^$\n\r\\{]|("\\"[^\n\r]))|{HEREDOC_LITERAL_DOLLAR}|({ if (yyleng > CG(heredoc_len) && !memcmp(end - CG(heredoc_len), CG(heredoc), CG(heredoc_len))) { int len = yyleng - CG(heredoc_len) - 2; /* 2 for newline before and after label */ - if (len > 0 && yytext[len - 1] == '\r' && yytext[len] == '\n') { - len--; + /* May have matched fooLABEL; make sure there's a newline before it */ + if (yytext[len] != '\n') { + if (yytext[len] != '\r') { + goto wrong_label; + } + } else if (len > 0 && yytext[len - 1] == '\r') { + len--; /* Windows newline */ } /* Go back before last label char, to match in ST_END_HEREDOC state */ @@ -1948,6 +1942,7 @@ HEREDOC_CHARS ("{"*([^$\n\r\\{]|("\\"[^\n\r]))|{HEREDOC_LITERAL_DOLLAR}|({ } else { /* Go back to end of label, so the next match works correctly in case of * a variable or another label at the beginning of the next line */ +wrong_label: yyless(yyleng - 1); yymore(); } diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 805b14ea3..4a3fa5189 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_list.c,v 1.66.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_list.c,v 1.66.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ /* resource lists */ diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 176c7dcdb..9446ee595 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_list.h,v 1.48.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_list.h,v 1.48.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_LIST_H #define ZEND_LIST_H diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index 8e4f5a8d0..6a2e29179 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_llist.c,v 1.35.2.1.2.2 2007/02/16 08:33:28 dmitry Exp $ */ +/* $Id: zend_llist.c,v 1.35.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_llist.h" diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index 7854297e8..126a7896c 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_llist.h,v 1.33.2.1.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_llist.h,v 1.33.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_LLIST_H #define ZEND_LLIST_H diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index 8531c9676..3c6d1f1d2 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_modules.h,v 1.67.2.3.2.4 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_modules.h,v 1.67.2.3.2.5 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef MODULES_H #define MODULES_H diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c index e5114797e..eae80315a 100644 --- a/Zend/zend_multibyte.c +++ b/Zend/zend_multibyte.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multibyte.c,v 1.4.2.4.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_multibyte.c,v 1.4.2.4.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_multibyte.h b/Zend/zend_multibyte.h index 57cbbe7cd..7b364743c 100644 --- a/Zend/zend_multibyte.h +++ b/Zend/zend_multibyte.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multibyte.h,v 1.3.2.3.2.1 2007/01/01 09:35:46 sebastian Exp $ */ +/* $Id: zend_multibyte.h,v 1.3.2.3.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_MULTIBYTE_H #define ZEND_MULTIBYTE_H diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h index 1a4d1553b..790eca2cc 100644 --- a/Zend/zend_multiply.h +++ b/Zend/zend_multiply.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multiply.h,v 1.10.2.1.2.2 2007/04/10 10:57:35 sniper Exp $ */ +/* $Id: zend_multiply.h,v 1.10.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #if defined(__i386__) && defined(__GNUC__) diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 18e1b5569..221dbbe37 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_object_handlers.c,v 1.135.2.6.2.22 2007/07/24 11:39:55 dmitry Exp $ */ +/* $Id: zend_object_handlers.c,v 1.135.2.6.2.28 2008/02/21 13:55:22 dmitry Exp $ */ #include "zend.h" #include "zend_globals.h" @@ -354,7 +354,7 @@ zval *zend_std_read_property(zval *object, zval *member, int type TSRMLS_DC) } } else { if (!silent) { - zend_error(E_NOTICE,"Undefined property: %s::$%s", zobj->ce->name, Z_STRVAL_P(member)); + zend_error(E_NOTICE,"Undefined property: %s::$%s", zobj->ce->name, Z_STRVAL_P(member)); } retval = &EG(uninitialized_zval_ptr); } @@ -758,14 +758,15 @@ static union _zend_function *zend_std_get_method(zval **object_ptr, char *method zend_function *fbc; char *lc_method_name; zval *object = *object_ptr; + ALLOCA_FLAG(use_heap) - lc_method_name = do_alloca(method_len+1); + lc_method_name = do_alloca_with_limit(method_len+1, use_heap); /* Create a zend_copy_str_tolower(dest, src, src_length); */ zend_str_tolower_copy(lc_method_name, method_name, method_len); zobj = Z_OBJ_P(object); if (zend_hash_find(&zobj->ce->function_table, lc_method_name, method_len+1, (void **)&fbc) == FAILURE) { - free_alloca(lc_method_name); + free_alloca_with_limit(lc_method_name, use_heap); if (zobj->ce->__call) { zend_internal_function *call_user_call = emalloc(sizeof(zend_internal_function)); call_user_call->type = ZEND_INTERNAL_FUNCTION; @@ -820,7 +821,7 @@ static union _zend_function *zend_std_get_method(zval **object_ptr, char *method } } - free_alloca(lc_method_name); + free_alloca_with_limit(lc_method_name, use_heap); return fbc; } @@ -831,12 +832,32 @@ ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, char *f zend_function *fbc; if (zend_hash_find(&ce->function_table, function_name_strval, function_name_strlen+1, (void **) &fbc)==FAILURE) { - char *class_name = ce->name; + if (ce->__call && + EG(This) && + Z_OBJ_HT_P(EG(This))->get_class_entry && + instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) { + zend_internal_function *call_user_call = emalloc(sizeof(zend_internal_function)); + + call_user_call->type = ZEND_INTERNAL_FUNCTION; + call_user_call->module = ce->module; + call_user_call->handler = zend_std_call_user_call; + call_user_call->arg_info = NULL; + call_user_call->num_args = 0; + call_user_call->scope = ce; + call_user_call->fn_flags = 0; + call_user_call->function_name = estrndup(function_name_strval, function_name_strlen); + call_user_call->pass_rest_by_reference = 0; + call_user_call->return_reference = ZEND_RETURN_VALUE; - if (!class_name) { - class_name = ""; + return (union _zend_function *)call_user_call; + } else { + char *class_name = ce->name; + + if (!class_name) { + class_name = ""; + } + zend_error(E_ERROR, "Call to undefined method %s::%s()", class_name, function_name_strval); } - zend_error(E_ERROR, "Call to undefined method %s::%s()", class_name, function_name_strval); } if (fbc->op_array.fn_flags & ZEND_ACC_PUBLIC) { /* No further checks necessary, most common case */ @@ -897,7 +918,7 @@ ZEND_API zval **zend_std_get_static_property(zend_class_entry *ce, char *propert if (silent) { return NULL; } else { - zend_error(E_ERROR, "Access to undeclared static property: %s::$%s", ce->name, property_name); + zend_error(E_ERROR, "Access to undeclared static property: %s::$%s", ce->name, property_name); } } @@ -923,7 +944,7 @@ ZEND_API union _zend_function *zend_std_get_constructor(zval *object TSRMLS_DC) } else if (constructor->op_array.fn_flags & ZEND_ACC_PRIVATE) { /* Ensure that if we're calling a private function, we're allowed to do so. */ - if (Z_OBJ_HANDLER_P(object, get_class_entry)(object TSRMLS_CC) != EG(scope)) { + if (constructor->common.scope != EG(scope)) { if (EG(scope)) { zend_error(E_ERROR, "Call to private %s::%s() from context '%s'", constructor->common.scope->name, constructor->common.function_name, EG(scope)->name); } else { @@ -1085,6 +1106,9 @@ ZEND_API int zend_std_cast_object_tostring(zval *readobj, zval *writeobj, int ty } if (Z_TYPE_P(retval) == IS_STRING) { INIT_PZVAL(writeobj); + if (readobj == writeobj) { + zval_dtor(readobj); + } ZVAL_ZVAL(writeobj, retval, 1, 1); if (Z_TYPE_P(writeobj) != type) { convert_to_explicit_type(writeobj, type); @@ -1093,6 +1117,9 @@ ZEND_API int zend_std_cast_object_tostring(zval *readobj, zval *writeobj, int ty } else { zval_ptr_dtor(&retval); INIT_PZVAL(writeobj); + if (readobj == writeobj) { + zval_dtor(readobj); + } ZVAL_EMPTY_STRING(writeobj); zend_error(E_RECOVERABLE_ERROR, "Method %s::__toString() must return a string value", ce->name); return SUCCESS; @@ -1107,15 +1134,23 @@ ZEND_API int zend_std_cast_object_tostring(zval *readobj, zval *writeobj, int ty ce = Z_OBJCE_P(readobj); zend_error(E_NOTICE, "Object of class %s could not be converted to int", ce->name); INIT_PZVAL(writeobj); + if (readobj == writeobj) { + zval_dtor(readobj); + } ZVAL_LONG(writeobj, 1); return SUCCESS; case IS_DOUBLE: ce = Z_OBJCE_P(readobj); zend_error(E_NOTICE, "Object of class %s could not be converted to double", ce->name); INIT_PZVAL(writeobj); + if (readobj == writeobj) { + zval_dtor(readobj); + } ZVAL_DOUBLE(writeobj, 1); return SUCCESS; default: + INIT_PZVAL(writeobj); + Z_TYPE_P(writeobj) = IS_NULL; break; } return FAILURE; diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h index bb17045fd..5fd5a4f1f 100644 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_object_handlers.h,v 1.47.2.2.2.5 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_object_handlers.h,v 1.47.2.2.2.6 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_OBJECT_HANDLERS_H #define ZEND_OBJECT_HANDLERS_H diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index fdccf4a7d..5bee77363 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.c,v 1.56.2.3.2.6 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_objects.c,v 1.56.2.3.2.7 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h index 91f646418..a598ef4e5 100644 --- a/Zend/zend_objects.h +++ b/Zend/zend_objects.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.h,v 1.25.2.2.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_objects.h,v 1.25.2.2.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_OBJECTS_H #define ZEND_OBJECTS_H diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 22998c559..c0d8444af 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects_API.c,v 1.47.2.6.2.6 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_objects_API.c,v 1.47.2.6.2.7 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h index 90c02d599..bbb26a269 100644 --- a/Zend/zend_objects_API.h +++ b/Zend/zend_objects_API.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects_API.h,v 1.20.2.1.2.4 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_objects_API.h,v 1.20.2.1.2.5 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_OBJECTS_API_H #define ZEND_OBJECTS_API_H diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index ff9a3fb3d..21ab11614 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_opcode.c,v 1.110.2.6.2.3 2007/04/16 08:09:55 dmitry Exp $ */ +/* $Id: zend_opcode.c,v 1.110.2.6.2.5 2007/12/31 07:20:03 sebastian Exp $ */ #include <stdio.h> @@ -101,6 +101,8 @@ void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_siz op_array->fn_flags = CG(interactive)?ZEND_ACC_INTERACTIVE:0; + memset(op_array->reserved, 0, ZEND_MAX_RESERVED_RESOURCES * sizeof(void*)); + zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_ctor_handler, op_array TSRMLS_CC); } diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 4491eca41..d0c6e4f41 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.c,v 1.208.2.4.2.23 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_operators.c,v 1.208.2.4.2.24 2007/12/31 07:20:03 sebastian Exp $ */ #include <ctype.h> diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 95908e803..a1783c901 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.h,v 1.94.2.4.2.10 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_operators.h,v 1.94.2.4.2.11 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_OPERATORS_H #define ZEND_OPERATORS_H diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c index b0d2ed7f0..62e43fc34 100644 --- a/Zend/zend_ptr_stack.c +++ b/Zend/zend_ptr_stack.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ptr_stack.c,v 1.23.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_ptr_stack.c,v 1.23.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_ptr_stack.h" diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h index 178278b14..a24e817bb 100644 --- a/Zend/zend_ptr_stack.h +++ b/Zend/zend_ptr_stack.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ptr_stack.h,v 1.22.2.2.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_ptr_stack.h,v 1.22.2.2.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_PTR_STACK_H #define ZEND_PTR_STACK_H diff --git a/Zend/zend_qsort.c b/Zend/zend_qsort.c index e186837da..da42b8ae3 100644 --- a/Zend/zend_qsort.c +++ b/Zend/zend_qsort.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_qsort.c,v 1.8.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_qsort.c,v 1.8.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" diff --git a/Zend/zend_qsort.h b/Zend/zend_qsort.h index b0ae89791..89bf7e1ef 100644 --- a/Zend/zend_qsort.h +++ b/Zend/zend_qsort.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_qsort.h,v 1.8.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_qsort.h,v 1.8.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_QSORT_H #define ZEND_QSORT_H diff --git a/Zend/zend_sprintf.c b/Zend/zend_sprintf.c index e15ac02b2..1545e51f3 100644 --- a/Zend/zend_sprintf.c +++ b/Zend/zend_sprintf.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_sprintf.c,v 1.16.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_sprintf.c,v 1.16.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include <stdio.h> diff --git a/Zend/zend_stack.c b/Zend/zend_stack.c index f2892042a..53767e5aa 100644 --- a/Zend/zend_stack.c +++ b/Zend/zend_stack.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stack.c,v 1.16.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_stack.c,v 1.16.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_stack.h" diff --git a/Zend/zend_stack.h b/Zend/zend_stack.h index 61e4226aa..5040f277c 100644 --- a/Zend/zend_stack.h +++ b/Zend/zend_stack.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stack.h,v 1.19.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_stack.h,v 1.19.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_STACK_H #define ZEND_STACK_H diff --git a/Zend/zend_static_allocator.c b/Zend/zend_static_allocator.c index 6eaec24f5..ac91ab059 100644 --- a/Zend/zend_static_allocator.c +++ b/Zend/zend_static_allocator.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_static_allocator.c,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_static_allocator.c,v 1.13.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend_static_allocator.h" diff --git a/Zend/zend_static_allocator.h b/Zend/zend_static_allocator.h index a053ca887..f01d9bcee 100644 --- a/Zend/zend_static_allocator.h +++ b/Zend/zend_static_allocator.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_static_allocator.h,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_static_allocator.h,v 1.13.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_STATIC_ALLOCATOR_H #define ZEND_STATIC_ALLOCATOR_H diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 0fbb91554..3b1113a17 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stream.c,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_stream.c,v 1.13.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h index 42367b2bd..df5774489 100644 --- a/Zend/zend_stream.h +++ b/Zend/zend_stream.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stream.h,v 1.8.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_stream.h,v 1.8.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_STREAM_H #define ZEND_STREAM_H diff --git a/Zend/zend_strtod.h b/Zend/zend_strtod.h index 249b63a39..1569c916f 100644 --- a/Zend/zend_strtod.h +++ b/Zend/zend_strtod.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_strtod.h,v 1.3.2.1.2.4 2007/04/22 21:33:10 tony2001 Exp $ */ +/* $Id: zend_strtod.h,v 1.3.2.1.2.5 2007/12/31 07:20:03 sebastian Exp $ */ /* This is a header file for the strtod implementation by David M. Gay which * can be found in zend_strtod.c */ diff --git a/Zend/zend_ts_hash.c b/Zend/zend_ts_hash.c index 3f54629ef..c4daeb99e 100644 --- a/Zend/zend_ts_hash.c +++ b/Zend/zend_ts_hash.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.c,v 1.14.2.1.2.2 2007/05/11 12:21:26 tony2001 Exp $ */ +/* $Id: zend_ts_hash.c,v 1.14.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #include "zend.h" #include "zend_ts_hash.h" diff --git a/Zend/zend_ts_hash.h b/Zend/zend_ts_hash.h index d63400796..8c5a01154 100644 --- a/Zend/zend_ts_hash.h +++ b/Zend/zend_ts_hash.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.h,v 1.13.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_ts_hash.h,v 1.13.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_TS_HASH_H #define ZEND_TS_HASH_H diff --git a/Zend/zend_types.h b/Zend/zend_types.h index c7c0b9717..9b1cc606b 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_types.h,v 1.6.2.2.2.3 2007/04/17 06:26:31 dmitry Exp $ */ +/* $Id: zend_types.h,v 1.6.2.2.2.4 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_TYPES_H #define ZEND_TYPES_H diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index 9a2c374ec..499e46bb6 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_variables.c,v 1.62.2.1.2.2 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_variables.c,v 1.62.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #include <stdio.h> #include "zend.h" diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h index ccebc3b96..6a8fc90a1 100644 --- a/Zend/zend_variables.h +++ b/Zend/zend_variables.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_variables.h,v 1.34.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_variables.h,v 1.34.2.1.2.2 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_VARIABLES_H #define ZEND_VARIABLES_H diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h index 4d6bdc08f..ac6ef6233 100644 --- a/Zend/zend_vm.h +++ b/Zend/zend_vm.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm.h,v 1.7.2.1.2.2 2007/07/21 00:35:14 jani Exp $ */ +/* $Id: zend_vm.h,v 1.7.2.1.2.3 2007/12/31 07:20:03 sebastian Exp $ */ #ifndef ZEND_VM_H #define ZEND_VM_H diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index dcff366a7..f29970a49 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm_def.h,v 1.59.2.29.2.51 2007/10/04 23:23:41 iliaa Exp $ */ +/* $Id: zend_vm_def.h,v 1.59.2.29.2.56 2008/03/04 11:46:09 dmitry Exp $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -1064,6 +1064,10 @@ ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMP|VAR|UNUSED|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); ZEND_VM_NEXT_OPCODE(); @@ -1081,6 +1085,10 @@ ZEND_VM_HANDLER(87, ZEND_FETCH_DIM_RW, VAR|CV, CONST|TMP|VAR|UNUSED|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); ZEND_VM_NEXT_OPCODE(); @@ -1115,6 +1123,10 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, CONST|TMP|VAR|UNUSED|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); ZEND_VM_NEXT_OPCODE(); @@ -1143,6 +1155,10 @@ ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMP|VAR|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -1249,6 +1265,10 @@ ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|CV, CONST|TMP|VAR|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); ZEND_VM_NEXT_OPCODE(); @@ -1273,6 +1293,10 @@ ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|CV, CONST|TMP|VAR|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); ZEND_VM_NEXT_OPCODE(); @@ -1305,6 +1329,10 @@ ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, VAR|UNUSED|CV, CONST|TMP|VAR|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); ZEND_VM_NEXT_OPCODE(); @@ -1338,6 +1366,10 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMP|VAR|CV) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } FREE_OP1_VAR_PTR(); @@ -1995,6 +2027,8 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) } } + EX(function_state).function = (zend_function *) EX(op_array); + EG(function_state_ptr) = &EX(function_state); ctor_opline = (zend_op*)zend_ptr_stack_pop(&EG(arg_types_stack)); if (EG(This)) { @@ -2017,8 +2051,6 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) } zend_ptr_stack_2_pop(&EG(arg_types_stack), (void**)&EX(object), (void**)&EX(fbc)); - EX(function_state).function = (zend_function *) EX(op_array); - EG(function_state_ptr) = &EX(function_state); zend_ptr_stack_clear_multiple(TSRMLS_C); if (EG(exception)) { @@ -2371,9 +2403,6 @@ ZEND_VM_HANDLER(64, ZEND_RECV_INIT, ANY, CONST) ALLOC_ZVAL(default_value); *default_value = opline->op2.u.constant; - if (Z_TYPE(opline->op2.u.constant)==IS_CONSTANT_ARRAY) { - zval_copy_ctor(default_value); - } default_value->refcount=1; zval_update_constant(&default_value, 0 TSRMLS_CC); default_value->refcount=0; @@ -3794,11 +3823,12 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY) } for (i=0; i<EX(op_array)->last_brk_cont; i++) { - if (EX(op_array)->brk_cont_array[i].start > op_num) { + if (EX(op_array)->brk_cont_array[i].start < 0) { + continue; + } else if (EX(op_array)->brk_cont_array[i].start > op_num) { /* further blocks will not be relevant... */ break; - } - if (op_num < EX(op_array)->brk_cont_array[i].brk) { + } else if (op_num < EX(op_array)->brk_cont_array[i].brk) { if (!catched || catch_op_num >= EX(op_array)->brk_cont_array[i].brk) { zend_op *brk_opline = &EX(op_array)->opcodes[EX(op_array)->brk_cont_array[i].brk]; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 8ce7ef972..79e1a1067 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | @@ -280,6 +280,8 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) } } + EX(function_state).function = (zend_function *) EX(op_array); + EG(function_state_ptr) = &EX(function_state); ctor_opline = (zend_op*)zend_ptr_stack_pop(&EG(arg_types_stack)); if (EG(This)) { @@ -302,8 +304,6 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) } zend_ptr_stack_2_pop(&EG(arg_types_stack), (void**)&EX(object), (void**)&EX(fbc)); - EX(function_state).function = (zend_function *) EX(op_array); - EG(function_state_ptr) = &EX(function_state); zend_ptr_stack_clear_multiple(TSRMLS_C); if (EG(exception)) { @@ -566,11 +566,12 @@ static int ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } for (i=0; i<EX(op_array)->last_brk_cont; i++) { - if (EX(op_array)->brk_cont_array[i].start > op_num) { + if (EX(op_array)->brk_cont_array[i].start < 0) { + continue; + } else if (EX(op_array)->brk_cont_array[i].start > op_num) { /* further blocks will not be relevant... */ break; - } - if (op_num < EX(op_array)->brk_cont_array[i].brk) { + } else if (op_num < EX(op_array)->brk_cont_array[i].brk) { if (!catched || catch_op_num >= EX(op_array)->brk_cont_array[i].brk) { zend_op *brk_opline = &EX(op_array)->opcodes[EX(op_array)->brk_cont_array[i].brk]; @@ -776,9 +777,6 @@ static int ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ALLOC_ZVAL(default_value); *default_value = opline->op2.u.constant; - if (Z_TYPE(opline->op2.u.constant)==IS_CONSTANT_ARRAY) { - zval_copy_ctor(default_value); - } default_value->refcount=1; zval_update_constant(&default_value, 0 TSRMLS_CC); default_value->refcount=0; @@ -8955,6 +8953,10 @@ static int ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -8972,6 +8974,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -9006,6 +9012,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -9034,6 +9044,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -9140,6 +9154,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -9164,6 +9182,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -9196,6 +9218,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -9229,6 +9255,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; @@ -10440,6 +10470,10 @@ static int ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -10457,6 +10491,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -10491,6 +10529,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -10519,6 +10561,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -10625,6 +10671,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -10649,6 +10699,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -10681,6 +10735,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -10714,6 +10772,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; @@ -11928,6 +11990,10 @@ static int ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -11945,6 +12011,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -11979,6 +12049,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -12007,6 +12081,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -12113,6 +12191,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -12137,6 +12219,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -12169,6 +12255,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -12202,6 +12292,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; @@ -13019,6 +13113,10 @@ static int ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -13036,6 +13134,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -13058,6 +13160,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_A READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -13888,6 +13994,10 @@ static int ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -13905,6 +14015,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -13939,6 +14053,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -13967,6 +14085,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -14073,6 +14195,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -14097,6 +14223,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -14129,6 +14259,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; ZEND_VM_NEXT_OPCODE(); @@ -14162,6 +14296,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; @@ -15313,6 +15451,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -15337,6 +15479,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -15369,6 +15515,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -15402,6 +15552,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -16321,6 +16475,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -16345,6 +16503,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -16377,6 +16539,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_A READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -16410,6 +16576,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -17285,6 +17455,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -17309,6 +17483,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -17341,6 +17519,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_A READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -17374,6 +17556,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -18514,6 +18700,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -18538,6 +18728,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -18570,6 +18764,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_AR READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -18603,6 +18801,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -20878,6 +21080,10 @@ static int ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -20895,6 +21101,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -20929,6 +21139,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -20957,6 +21171,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -21062,6 +21280,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -21086,6 +21308,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -21118,6 +21344,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -21151,6 +21381,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -22355,6 +22589,10 @@ static int ZEND_FETCH_DIM_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -22372,6 +22610,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -22406,6 +22648,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -22434,6 +22680,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -22539,6 +22789,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -22563,6 +22817,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -22595,6 +22853,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -22628,6 +22890,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -23835,6 +24101,10 @@ static int ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -23852,6 +24122,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -23886,6 +24160,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -23914,6 +24192,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -24019,6 +24301,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -24043,6 +24329,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -24075,6 +24365,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -24108,6 +24402,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); @@ -24917,6 +25215,10 @@ static int ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -24934,6 +25236,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -24956,6 +25262,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_AR READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -25785,6 +26095,10 @@ static int ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -25802,6 +26116,10 @@ static int ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -25836,6 +26154,10 @@ static int ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -25864,6 +26186,10 @@ static int ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } if (EX_T(opline->result.u.var).var.ptr_ptr == NULL) { @@ -25969,6 +26295,10 @@ static int ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -25993,6 +26323,10 @@ static int ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -26025,6 +26359,10 @@ static int ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } ZEND_VM_NEXT_OPCODE(); @@ -26058,6 +26396,10 @@ static int ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) READY_TO_DESTROY(free_op1.var) && !RETURN_VALUE_UNUSED(&opline->result)) { AI_USE_PTR(EX_T(opline->result.u.var).var); + if (!PZVAL_IS_REF(*EX_T(opline->result.u.var).var.ptr_ptr) && + ZVAL_REFCOUNT(*EX_T(opline->result.u.var).var.ptr_ptr) > 2) { + SEPARATE_ZVAL(EX_T(opline->result.u.var).var.ptr_ptr); + } } PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr, &free_res); diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index 062ac3915..57244bfc3 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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,v 1.12.2.5.2.4 2007/01/09 11:53:08 dmitry Exp $ + $Id: zend_vm_gen.php,v 1.12.2.5.2.5 2007/12/31 07:25:08 sebastian Exp $ */ $header_text = <<< DATA @@ -24,7 +24,7 @@ $header_text = <<< DATA +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 230e11097..e8fbd535a 100644 --- a/Zend/zend_vm_opcodes.h +++ b/Zend/zend_vm_opcodes.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2008 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 | |