diff options
Diffstat (limited to 'Zend')
166 files changed, 16090 insertions, 13763 deletions
diff --git a/Zend/tests/argument_restriction_006.phpt b/Zend/tests/argument_restriction_006.phpt new file mode 100644 index 000000000..948fc304c --- /dev/null +++ b/Zend/tests/argument_restriction_006.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #60174 (Notice when array in method prototype error) +--FILE-- +<?php +Abstract Class Base { + public function test($foo, $extra = array("test")) { + } +} + +class Sub extends Base { + public function test($foo, $extra) { + } +} +?> +--EXPECTF-- +Strict Standards: Declaration of Sub::test() should be compatible with Base::test($foo, $extra = Array) in %sargument_restriction_006.php on line %d diff --git a/Zend/tests/bug31098.phpt b/Zend/tests/bug31098.phpt index 3038636ba..23cec9bbf 100644 --- a/Zend/tests/bug31098.phpt +++ b/Zend/tests/bug31098.phpt @@ -17,7 +17,7 @@ var_dump(isset($a['b'])); $simpleString = "Bogus String Text"; echo isset($simpleString->wrong)?"bug\n":"ok\n"; -echo isset($simpleString["wrong"])?"ok\n":"bug\n"; +echo isset($simpleString["wrong"])?"bug\n":"ok\n"; echo isset($simpleString[-1])?"bug\n":"ok\n"; echo isset($simpleString[0])?"ok\n":"bug\n"; echo isset($simpleString["0"])?"ok\n":"bug\n"; @@ -34,8 +34,8 @@ bool(false) bool(false) bool(false) bool(false) -bool(true) -bool(true) +bool(false) +bool(false) ok ok ok @@ -44,8 +44,12 @@ ok ok ok -Notice: Trying to get property of non-object in %sbug31098.php on line %d -ok +Notice: Trying to get property of non-object in %s on line %d ok + +Warning: Illegal string offset 'wrong' in %s on line %d ok ok + +Warning: Illegal string offset 'wrong' in %s on line %d +ok
\ No newline at end of file diff --git a/Zend/tests/bug39018.phpt b/Zend/tests/bug39018.phpt index 1c67eb298..e1968ad04 100644 --- a/Zend/tests/bug39018.phpt +++ b/Zend/tests/bug39018.phpt @@ -6,7 +6,7 @@ Bug #39018 (Error control operator '@' fails to suppress "Uninitialized string o error_reporting(E_ALL); $a = 'foo'; -$a[11111111111]; +$a[111111111111111111111]; $a = ''; @@ -62,31 +62,42 @@ print "\nDone\n"; ?> --EXPECTF-- +Notice: String offset cast occured in %s on line %d -Notice: Uninitialized string offset: %i in %s on line 6 +Notice: Uninitialized string offset: 0 in %s on line %d -Notice: Uninitialized string offset: 0 in %s on line 10 +Notice: Uninitialized string offset: 0 in %s on line %d -Notice: Uninitialized string offset: 0 in %s on line 12 +Notice: String offset cast occured in %s on line %d -Notice: Uninitialized string offset: %i in %s on line 14 +Notice: Uninitialized string offset: %i in %s on line %d -Notice: Uninitialized string offset: %i in %s on line 16 +Notice: String offset cast occured in %s on line %d -Notice: Uninitialized string offset: 0 in %s on line 18 +Notice: Uninitialized string offset: %i in %s on line %d -Notice: Uninitialized string offset: 4 in %s on line 28 +Notice: Uninitialized string offset: 0 in %s on line %d -Notice: Uninitialized string offset: 4 in %s on line 34 +Notice: Uninitialized string offset: 4 in %s on line %d -Notice: Uninitialized string offset: 4 in %s on line 38 +Notice: Uninitialized string offset: 4 in %s on line %d -Notice: Uninitialized string offset: 4 in %s on line 42 +Notice: Uninitialized string offset: 4 in %s on line %d -Notice: Uninitialized string offset: 4 in %s on line 46 +Notice: Uninitialized string offset: 4 in %s on line %d -Notice: Uninitialized string offset: 12 in %s on line 50 +Notice: Uninitialized string offset: 4 in %s on line %d -Notice: Uninitialized string offset: 12 in %s on line 52 +Notice: String offset cast occured in %s on line %d + +Notice: Uninitialized string offset: 12 in %s on line %d + +Notice: String offset cast occured in %s on line %d + +Notice: Uninitialized string offset: 12 in %s on line %d + +Notice: String offset cast occured in %s on line %d + +Notice: String offset cast occured in %s on line %d b Done diff --git a/Zend/tests/bug39304.phpt b/Zend/tests/bug39304.phpt index ea068df75..8303b8257 100755 --- a/Zend/tests/bug39304.phpt +++ b/Zend/tests/bug39304.phpt @@ -7,10 +7,10 @@ Bug #39304 (Segmentation fault with list unpacking of string offset) echo "I am alive"; ?> --EXPECTF-- -Notice: Uninitialized string offset: 0 in %sbug39304.php on line 3 +Notice: Uninitialized string offset: 0 in %sbug39304.php on line %d -Notice: Uninitialized string offset: 1 in %sbug39304.php on line 3 +Notice: Uninitialized string offset: 1 in %sbug39304.php on line %d -Notice: Uninitialized string offset: 0 in %sbug39304.php on line 3 +Notice: Uninitialized string offset: 0 in %sbug39304.php on line %d I am alive diff --git a/Zend/tests/bug39304_2_4.phpt b/Zend/tests/bug39304_2_4.phpt index e4863d6fc..b0e6ddc72 100644 --- a/Zend/tests/bug39304_2_4.phpt +++ b/Zend/tests/bug39304_2_4.phpt @@ -9,10 +9,10 @@ Bug #39304 (Segmentation fault with list unpacking of string offset) var_dump($a,$b); ?> --EXPECTF-- -Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line 3 +Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line %d -Notice: Uninitialized string offset: 1 in %sbug39304_2_4.php on line 3 +Notice: Uninitialized string offset: 1 in %sbug39304_2_4.php on line %d -Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line 3 +Notice: Uninitialized string offset: 0 in %sbug39304_2_4.php on line %d string(0) "" string(0) "" diff --git a/Zend/tests/bug43200.phpt b/Zend/tests/bug43200.phpt new file mode 100644 index 000000000..24a8bbb1d --- /dev/null +++ b/Zend/tests/bug43200.phpt @@ -0,0 +1,51 @@ +--TEST-- +Bug #43200 (Interface implementation / inheritence not possible in abstract classes) +--FILE-- +<?php + +interface a { + function foo(); + function bar(); +} +interface b { + function foo(); +} + +abstract class c { + function bar() { } +} + +class x extends c implements a, b { + function foo() { } +} + +ReflectionClass::export('x'); + +?> +--EXPECTF-- +Class [ <user> class x extends c implements a, b ] { + @@ %s 15-17 + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [0] { + } + + - Methods [2] { + Method [ <user, prototype b> public method foo ] { + @@ %s 16 - 16 + } + + Method [ <user, inherits c, prototype a> public method bar ] { + @@ %s 12 - 12 + } + } +} + diff --git a/Zend/tests/bug43200_2.phpt b/Zend/tests/bug43200_2.phpt new file mode 100644 index 000000000..5efc5facf --- /dev/null +++ b/Zend/tests/bug43200_2.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #43200.2 (Interface implementation / inheritence not possible in abstract classes) +--FILE-- +<?php + +interface A { + function foo(); +} + +abstract class B implements A { + abstract public function foo(); +} + +class C extends B { + public function foo() { + echo 'works'; + } +} + +$o = new C(); +$o->foo(); + +?> +--EXPECTF-- +works diff --git a/Zend/tests/bug54262.phpt b/Zend/tests/bug54262.phpt index 1b9d3513c..17a6ea638 100644 --- a/Zend/tests/bug54262.phpt +++ b/Zend/tests/bug54262.phpt @@ -9,7 +9,7 @@ $simpleString["wrong"] = "f"; echo "ok\n"; ?> --EXPECTF-- -bool(true) +bool(false) Warning: Attempt to modify property of non-object in %sbug54262.php on line 4 diff --git a/Zend/tests/bug55509.phpt b/Zend/tests/bug55509.phpt index 5fafc61af..b78fceb0d 100644 --- a/Zend/tests/bug55509.phpt +++ b/Zend/tests/bug55509.phpt @@ -5,9 +5,44 @@ Bug #55509 (segfault on x86_64 using more than 2G memory) if (PHP_INT_SIZE == 4) {
die('skip Not for 32-bits OS');
}
+if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
+// check the available memory
+if (PHP_OS == 'Linux') {
+ $lines = file('/proc/meminfo');
+ $infos = array();
+ foreach ($lines as $line) {
+ $tmp = explode(":", $line);
+ $index = strtolower($tmp[0]);
+ $value = (int)ltrim($tmp[1], " ")*1024;
+ $infos[$index] = $value;
+ }
+ $freeMemory = $infos['memfree']+$infos['buffers']+$infos['cached'];
+ if ($freeMemory < 2100*1024*1024) {
+ die('skip Not enough memory.');
+ }
+}
+elseif (PHP_OS == 'FreeBSD') {
+ $lines = explode("\n",`sysctl -a`);
+ $infos = array();
+ foreach ($lines as $line) {
+ if(!$line){
+ continue;
+ }
+ $tmp = explode(":", $line);
+ $index = strtolower($tmp[0]);
+ $value = trim($tmp[1], " ");
+ $infos[$index] = $value;
+ }
+ $freeMemory = ($infos['vm.stats.vm.v_inactive_count']*$infos['hw.pagesize'])
+ +($infos['vm.stats.vm.v_cache_count']*$infos['hw.pagesize'])
+ +($infos['vm.stats.vm.v_free_count']*$infos['hw.pagesize']);
+ if ($freeMemory < 2100*1024*1024) {
+ die('skip Not enough memory.');
+ }
+}
?>
--INI--
-memory_limit=3G
+memory_limit=2100M
--FILE--
<?php
$a1 = str_repeat("1", 1024 * 1024 * 1024 * 0.5);
@@ -20,14 +55,11 @@ $a4 = str_repeat("4", 1024 * 1024 * 1024 * 0.5); echo "4\n";
$a5 = str_repeat("5", 1024 * 1024 * 1024 * 0.5);
echo "5\n";
-$a6 = str_repeat("6", 1024 * 1024 * 1024 * 0.5);
-echo "6\n";
?>
--EXPECTF--
1
2
3
4
-5
Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %sbug55509.php on line %d
diff --git a/Zend/tests/bug60099.phpt b/Zend/tests/bug60099.phpt new file mode 100644 index 000000000..13e2f54b0 --- /dev/null +++ b/Zend/tests/bug60099.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #60099 (__halt_compiler() works in braced namespaces) +--FILE-- +<?php +namespace foo { + __halt_compiler(); + +?> +--EXPECTF-- +Fatal error: __HALT_COMPILER() can only be used from the outermost scope in %s on line %d diff --git a/Zend/tests/bug60138.phpt b/Zend/tests/bug60138.phpt new file mode 100644 index 000000000..3bf1fba96 --- /dev/null +++ b/Zend/tests/bug60138.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #60138 (GC crash with referenced array in RecursiveArrayIterator) +--FILE-- +<?php +$tree = array(array("f")); +$category =& $tree[0]; + +$iterator = new RecursiveIteratorIterator( + new RecursiveArrayIterator($tree), + RecursiveIteratorIterator::SELF_FIRST +); +foreach($iterator as $file); +echo "ok\n"; +?> +--EXPECT-- +ok diff --git a/Zend/tests/bug60139.phpt b/Zend/tests/bug60139.phpt new file mode 100644 index 000000000..414fa5651 --- /dev/null +++ b/Zend/tests/bug60139.phpt @@ -0,0 +1,30 @@ +--TEST-- +Bug #60139 (Anonymous functions create cycles not detected by the GC) +--FILE-- +<?php +class Foo { + public $x; + + public function __construct() { + $this->x = function() {}; + } +} + +class Bar { + public $x; + + public function __construct() { + $self = $this; + $this->x = function() use ($self) {}; + } +} + +gc_collect_cycles(); +new Foo; +var_dump(gc_collect_cycles()); +new Bar; +var_dump(gc_collect_cycles()); +?> +--EXPECT-- +int(2) +int(2) diff --git a/Zend/tests/bug60169.phpt b/Zend/tests/bug60169.phpt new file mode 100755 index 000000000..f97574191 --- /dev/null +++ b/Zend/tests/bug60169.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #60169 (Conjunction of ternary and list crashes PHP) +--FILE-- +<?php +error_reporting(0); +$arr = array("test"); +list($a,$b) = is_array($arr)? $arr : $arr; +list($c,$d) = is_array($arr)?: NULL; +echo "ok\n"; +--EXPECT-- +ok diff --git a/Zend/tests/bug60350.phpt b/Zend/tests/bug60350.phpt new file mode 100644 index 000000000..3facd54ac --- /dev/null +++ b/Zend/tests/bug60350.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #60350 No string escape code for ESC (ascii 27), normally \e +--FILE-- +<?php +$str = "\e"; +if (ord($str) == 27) { + echo "Works"; +} +?> +--EXPECT-- +Works diff --git a/Zend/tests/bug60362.phpt b/Zend/tests/bug60362.phpt new file mode 100644 index 000000000..e8d16ea4c --- /dev/null +++ b/Zend/tests/bug60362.phpt @@ -0,0 +1,74 @@ +--TEST-- +Bug #60362: non-existent sub-sub keys should not have values +--FILE-- +<?php +$arr = array('exists' => 'foz'); + +if (isset($arr['exists']['non_existent'])) { + echo "sub-key 'non_existent' is set: "; + var_dump($arr['exists']['non_existent']); +} else { + echo "sub-key 'non_existent' is not set.\n"; +} +if (isset($arr['exists'][1])) { + echo "sub-key 1 is set: "; + var_dump($arr['exists'][1]); +} else { + echo "sub-key 1 is not set.\n"; +} + +echo "-------------------\n"; +if (isset($arr['exists']['non_existent']['sub_sub'])) { + echo "sub-key 'sub_sub' is set: "; + var_dump($arr['exists']['non_existent']['sub_sub']); +} else { + echo "sub-sub-key 'sub_sub' is not set.\n"; +} +if (isset($arr['exists'][1][0])) { + echo "sub-sub-key 0 is set: "; + var_dump($arr['exists'][1][0]); +} else { + echo "sub-sub-key 0 is not set.\n"; +} + +echo "-------------------\n"; +if (empty($arr['exists']['non_existent'])) { + echo "sub-key 'non_existent' is empty.\n"; +} else { + echo "sub-key 'non_existent' is not empty: "; + var_dump($arr['exists']['non_existent']); +} +if (empty($arr['exists'][1])) { + echo "sub-key 1 is empty.\n"; +} else { + echo "sub-key 1 is not empty: "; + var_dump($arr['exists'][1]); +} + +echo "-------------------\n"; +if (empty($arr['exists']['non_existent']['sub_sub'])) { + echo "sub-sub-key 'sub_sub' is empty.\n"; +} else { + echo "sub-sub-key 'sub_sub' is not empty: "; + var_dump($arr['exists']['non_existent']['sub_sub']); +} +if (empty($arr['exists'][1][0])) { + echo "sub-sub-key 0 is empty.\n"; +} else { + echo "sub-sub-key 0 is not empty: "; + var_dump($arr['exists'][1][0]); +} +echo "DONE"; +--EXPECT-- +sub-key 'non_existent' is not set. +sub-key 1 is set: string(1) "o" +------------------- +sub-sub-key 'sub_sub' is not set. +sub-sub-key 0 is set: string(1) "o" +------------------- +sub-key 'non_existent' is empty. +sub-key 1 is not empty: string(1) "o" +------------------- +sub-sub-key 'sub_sub' is empty. +sub-sub-key 0 is not empty: string(1) "o" +DONE diff --git a/Zend/tests/bug60444.phpt b/Zend/tests/bug60444.phpt new file mode 100644 index 000000000..38f81bc41 --- /dev/null +++ b/Zend/tests/bug60444.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #60444 (Segmentation fault with include & class extending) +--FILE-- +<?php +class Foo { + public function __construct() { + eval("class Bar extends Foo {}"); + Some::foo($this); + } +} +class Some { + public static function foo(Foo $foo) { + } +} +new Foo; +echo "done\n"; +--EXPECT-- +done diff --git a/Zend/tests/bug60536_001.phpt b/Zend/tests/bug60536_001.phpt new file mode 100644 index 000000000..916646727 --- /dev/null +++ b/Zend/tests/bug60536_001.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #60536 (Traits Segfault) +--FILE-- +<?php +trait T { private $x = 0; } +class X { + use T; +} +class Y extends X { + use T; + function x() { + return ++$this->x; + } +} +class Z extends Y { + function z() { + return ++$this->x; + } +} +$a = new Z(); +$a->x(); +echo "DONE"; +?> +--EXPECTF-- +DONE diff --git a/Zend/tests/bug60536_002.phpt b/Zend/tests/bug60536_002.phpt new file mode 100644 index 000000000..0bca98382 --- /dev/null +++ b/Zend/tests/bug60536_002.phpt @@ -0,0 +1,40 @@ +--TEST-- +The same rules are applied for properties that are defined in the class hierarchy. Thus, if the properties are compatible, a notice is issued, if not a fatal error occures. (relevant with #60536) +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class Base { + private $hello; +} + +trait THello1 { + private $hello; +} + +echo "PRE-CLASS-GUARD\n"; +class Notice extends Base { + use THello1; + private $hello; +} +echo "POST-CLASS-GUARD\n"; + +// now we do the test for a fatal error + +class TraitsTest { + use THello1; + public $hello; +} + +echo "POST-CLASS-GUARD2\n"; + +$t = new TraitsTest; +$t->hello = "foo"; +?> +--EXPECTF-- +PRE-CLASS-GUARD + +Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +POST-CLASS-GUARD + +Fatal error: TraitsTest and THello1 define the same property ($hello) in the composition of TraitsTest. However, the definition differs and is considered incompatible. Class was composed in %s on line %d diff --git a/Zend/tests/bug60536_003.phpt b/Zend/tests/bug60536_003.phpt new file mode 100644 index 000000000..d944a0a41 --- /dev/null +++ b/Zend/tests/bug60536_003.phpt @@ -0,0 +1,46 @@ +--TEST-- +Properties should be initialized correctly (relevant to #60536) +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class BaseWithPropA { + private $hello = 0; +} + +trait AHelloProperty { + private $hello = 0; +} + +class BaseWithTPropB { + use AHelloProperty; +} + +class SubclassA extends BaseWithPropA { + use AHelloProperty; +} + +class SubclassB extends BaseWithTPropB { + use AHelloProperty; +} + +$a = new SubclassA; +var_dump($a); + +$b = new SubclassB; +var_dump($b); + +?> +--EXPECTF-- +object(SubclassA)#%d (2) { + ["hello":"SubclassA":private]=> + int(0) + ["hello":"BaseWithPropA":private]=> + int(0) +} +object(SubclassB)#%d (2) { + ["hello":"SubclassB":private]=> + int(0) + ["hello":"BaseWithTPropB":private]=> + int(0) +} diff --git a/Zend/tests/bug60536_004.phpt b/Zend/tests/bug60536_004.phpt new file mode 100644 index 000000000..4f2083609 --- /dev/null +++ b/Zend/tests/bug60536_004.phpt @@ -0,0 +1,37 @@ +--TEST-- +Introducing new private variables of the same name in a subclass is ok, and does not lead to any output. That is consitent with normal inheritance handling. (relevant to #60536) +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class Base { + private $hello; +} + +trait THello1 { + private $hello; +} + +// Now we use the trait, which happens to introduce another private variable +// but they are distinct, and not related to each other, so no warning. +echo "PRE-CLASS-GUARD\n"; +class SameNameInSubClassNoNotice extends Base { + use THello1; +} +echo "POST-CLASS-GUARD\n"; + +// now the same with a class that defines the property itself, +// that should give the expected strict warning. + +class Notice extends Base { + use THello1; + private $hello; +} +echo "POST-CLASS-GUARD2\n"; +?> +--EXPECTF-- +PRE-CLASS-GUARD +POST-CLASS-GUARD + +Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %sbug60536_004.php on line %d +POST-CLASS-GUARD2 diff --git a/Zend/tests/bug60536_005.phpt b/Zend/tests/bug60536_005.phpt new file mode 100644 index 000000000..378adcc9c --- /dev/null +++ b/Zend/tests/bug60536_005.phpt @@ -0,0 +1,38 @@ +--TEST-- +Introducing new private variables of the same name in a subclass is ok, and does not lead to any output. That is consitent with normal inheritance handling. (relevant to #60536) +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class Base { + protected $hello; +} + +trait THello1 { + protected $hello; +} + +// Protected and public are handle more strict with a warning then what is +// expected from normal inheritance since they can have easier coliding semantics +echo "PRE-CLASS-GUARD\n"; +class SameNameInSubClassProducesNotice extends Base { + use THello1; +} +echo "POST-CLASS-GUARD\n"; + +// now the same with a class that defines the property itself, too. + +class Notice extends Base { + use THello1; + protected $hello; +} +echo "POST-CLASS-GUARD2\n"; +?> +--EXPECTF-- +PRE-CLASS-GUARD + +Strict Standards: Base and THello1 define the same property ($hello) in the composition of SameNameInSubClassProducesNotice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +POST-CLASS-GUARD + +Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +POST-CLASS-GUARD2 diff --git a/Zend/tests/bug60611.phpt b/Zend/tests/bug60611.phpt new file mode 100644 index 000000000..abd04b089 --- /dev/null +++ b/Zend/tests/bug60611.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #60611 (Segmentation fault with Cls::{expr}() syntax) +--FILE-- +<?php +class Cls { + function __call($name, $arg) { + } + static function __callStatic($name, $arg) { + } +} + +$cls = new Cls; +$cls->{0}(); +$cls->{1.0}(); +$cls->{true}(); +$cls->{false}(); +$cls->{null}(); + +Cls::{0}(); +Cls::{1.0}(); +Cls::{true}(); +Cls::{false}(); +Cls::{null}(); + +?> +--EXPECTF-- +Fatal error: Method name must be a string in %sbug60611.php on line %d diff --git a/Zend/tests/bug60613.phpt b/Zend/tests/bug60613.phpt new file mode 100644 index 000000000..a9db68dea --- /dev/null +++ b/Zend/tests/bug60613.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #60613 (Segmentation fault with $cls->{expr}() syntax) +--FILE-- +<?php +class Cls { + function __call($name, $arg) { + } +} + +$cls = new Cls(); +$cls->{0}(); +$cls->{1.0}(); +$cls->{true}(); +$cls->{false}(); +$cls->{null}(); +echo "ok\n"; +--EXPECTF-- +Fatal error: Method name must be a string in %sbug60613.php on line %d diff --git a/Zend/tests/cast_to_string.phpt b/Zend/tests/cast_to_string.phpt Binary files differindex d06daa2e7..f8b57a22c 100644 --- a/Zend/tests/cast_to_string.phpt +++ b/Zend/tests/cast_to_string.phpt diff --git a/Zend/tests/concat_001.phpt b/Zend/tests/concat_001.phpt index d7bc525c4..1307c2893 100644 --- a/Zend/tests/concat_001.phpt +++ b/Zend/tests/concat_001.phpt @@ -50,26 +50,46 @@ var_dump($d.$d); echo "Done\n"; ?> --EXPECTF-- + +Notice: Array to string conversion in %sconcat_001.php on line %d string(24) "Arraythis is test object" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(16) "Arraysome string" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(8) "Array222" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(13) "Array2323.444" + +Notice: Array to string conversion in %sconcat_001.php on line %d + +Notice: Array to string conversion in %sconcat_001.php on line %d string(10) "ArrayArray" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(24) "this is test objectArray" string(30) "this is test objectsome string" string(22) "this is test object222" string(27) "this is test object2323.444" string(38) "this is test objectthis is test object" string(30) "some stringthis is test object" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(16) "some stringArray" string(14) "some string222" string(19) "some string2323.444" string(22) "some stringsome string" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(8) "222Array" string(22) "222this is test object" string(14) "222some string" string(11) "2222323.444" string(6) "222222" + +Notice: Array to string conversion in %sconcat_001.php on line %d string(13) "2323.444Array" string(27) "2323.444this is test object" string(19) "2323.444some string" diff --git a/Zend/tests/empty_str_offset.phpt b/Zend/tests/empty_str_offset.phpt new file mode 100644 index 000000000..486c052dc --- /dev/null +++ b/Zend/tests/empty_str_offset.phpt @@ -0,0 +1,89 @@ +--TEST-- +Testing empty() with string offsets +--FILE-- +<?php + +print "- empty ---\n"; + +$str = "test0123"; + +var_dump(empty($str[-1])); +var_dump(empty($str[0])); +var_dump(empty($str[1])); +var_dump(empty($str[4])); // 0 +var_dump(empty($str[5])); // 1 +var_dump(empty($str[8])); +var_dump(empty($str[10000])); +// non-numeric offsets +print "- string ---\n"; +var_dump(empty($str['-1'])); +var_dump(empty($str['0'])); +var_dump(empty($str['1'])); +var_dump(empty($str['4'])); // 0 +var_dump(empty($str['1.5'])); +var_dump(empty($str['good'])); +var_dump(empty($str['3 and a half'])); +print "- bool ---\n"; +var_dump(empty($str[true])); +var_dump(empty($str[false])); +var_dump(empty($str[false][true])); +print "- null ---\n"; +var_dump(empty($str[null])); +print "- double ---\n"; +var_dump(empty($str[-1.1])); +var_dump(empty($str[-0.8])); +var_dump(empty($str[-0.1])); +var_dump(empty($str[0.2])); +var_dump(empty($str[0.9])); +var_dump(empty($str[M_PI])); +var_dump(empty($str[100.5001])); +print "- array ---\n"; +var_dump(empty($str[array()])); +var_dump(empty($str[array(1,2,3)])); +print "- object ---\n"; +var_dump(empty($str[new stdClass()])); +print "- resource ---\n"; +$f = fopen(__FILE__, 'r'); +var_dump(empty($str[$f])); +print "done\n"; + +?> +--EXPECTF-- +- empty --- +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(true) +bool(true) +- string --- +bool(true) +bool(false) +bool(false) +bool(true) +bool(true) +bool(true) +bool(true) +- bool --- +bool(false) +bool(false) +bool(true) +- null --- +bool(false) +- double --- +bool(true) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(true) +- array --- +bool(true) +bool(true) +- object --- +bool(true) +- resource --- +bool(true) +done diff --git a/Zend/tests/indexing_001.phpt b/Zend/tests/indexing_001.phpt index 83c2c8d52..0e466ab8c 100644 --- a/Zend/tests/indexing_001.phpt +++ b/Zend/tests/indexing_001.phpt @@ -71,6 +71,8 @@ array(1) { } } +Warning: Illegal string offset 'foo' in %s on line %d + Notice: Array to string conversion in %s on line %d string(1) "A" diff --git a/Zend/tests/indirect_method_call_001.phpt b/Zend/tests/indirect_method_call_001.phpt new file mode 100644 index 000000000..7018eaa74 --- /dev/null +++ b/Zend/tests/indirect_method_call_001.phpt @@ -0,0 +1,20 @@ +--TEST-- +Testing indirect method call and exceptions +--FILE-- +<?php + +class foo { + public function __construct() { + throw new Exception('foobar'); + } +} + +try { + $X = (new foo)->Inexistent(3); +} catch (Exception $e) { + var_dump($e->getMessage()); // foobar +} + +?> +--EXPECT-- +string(6) "foobar" diff --git a/Zend/tests/indirect_method_call_002.phpt b/Zend/tests/indirect_method_call_002.phpt new file mode 100644 index 000000000..1589533bd --- /dev/null +++ b/Zend/tests/indirect_method_call_002.phpt @@ -0,0 +1,32 @@ +--TEST-- +Indirect method call with chaining +--FILE-- +<?php + +class foo { + public $x = 'testing'; + + public function bar() { + return "foo"; + } + public function baz() { + return new self; + } + static function xyz() { + } +} + +var_dump((new foo())->bar()); // string(3) "foo" +var_dump((new foo())->baz()->x); // string(7) "testing" +var_dump((new foo())->baz()->baz()->bar()); // string(3) "foo" +var_dump((new foo())->xyz()); // NULL +(new foo())->www(); + +?> +--EXPECTF-- +string(3) "foo" +string(7) "testing" +string(3) "foo" +NULL + +Fatal error: Call to undefined method foo::www() in %s on line %d diff --git a/Zend/tests/indirect_method_call_003.phpt b/Zend/tests/indirect_method_call_003.phpt new file mode 100644 index 000000000..3df495422 --- /dev/null +++ b/Zend/tests/indirect_method_call_003.phpt @@ -0,0 +1,23 @@ +--TEST-- +Testing indirect method call +--FILE-- +<?php + +class foo { + public $x = 1; + + public function getX() { + return $this->x; + } + public function setX($val) { + $this->x = $val; + return $this; + } +} + +$X = (new foo)->setX(10)->getX(); +var_dump($X); // int(10) + +?> +--EXPECT-- +int(10) diff --git a/Zend/tests/indirect_method_call_004.phpt b/Zend/tests/indirect_method_call_004.phpt new file mode 100644 index 000000000..689600d1f --- /dev/null +++ b/Zend/tests/indirect_method_call_004.phpt @@ -0,0 +1,26 @@ +--TEST-- +Indirect method call and cloning +--FILE-- +<?php + + +class bar { + public $z; + + public function __construct() { + $this->z = new stdclass; + } + public function getZ() { + return $this->z; + } +} + +var_dump(clone (new bar)->z); +var_dump(clone (new bar)->getZ()); + +?> +--EXPECTF-- +object(stdClass)#%d (0) { +} +object(stdClass)#%d (0) { +} diff --git a/Zend/tests/indirect_method_call_005.phpt b/Zend/tests/indirect_method_call_005.phpt new file mode 100644 index 000000000..4f4b3631c --- /dev/null +++ b/Zend/tests/indirect_method_call_005.phpt @@ -0,0 +1,16 @@ +--TEST-- +Testing array dereferencing from instance with ArrayObject +--FILE-- +<?php + +class foo extends ArrayObject { + public function __construct($arr) { + parent::__construct($arr); + } +} + +var_dump( (new foo( array(1, array(4, 5), 3) ))[1][0] ); // int(4) + +?> +--EXPECT-- +int(4) diff --git a/Zend/tests/indirect_property_access.phpt b/Zend/tests/indirect_property_access.phpt new file mode 100644 index 000000000..3645687f4 --- /dev/null +++ b/Zend/tests/indirect_property_access.phpt @@ -0,0 +1,26 @@ +--TEST-- +Testing indirect property access +--FILE-- +<?php + +class foo { + public $x = 1; +} + +class bar { + public $y = 'foo'; +} + +$x = 'bar'; + +$bar = new bar; + +var_dump((new bar)->y); // foo +var_dump((new $x)->y); // foo +var_dump((new $bar->y)->x); // 1 + +?> +--EXPECT-- +string(3) "foo" +string(3) "foo" +int(1) diff --git a/Zend/tests/inter_007.phpt b/Zend/tests/inter_007.phpt index ee62063da..13b18883b 100644 --- a/Zend/tests/inter_007.phpt +++ b/Zend/tests/inter_007.phpt @@ -17,4 +17,4 @@ interface a extends d, w { } ?> --EXPECTF-- -Fatal error: Can't inherit abstract function c::B() (previously declared abstract in d) in %s on line %d +Fatal error: Cannot make non static method c::B() static in class d in %s on line %d diff --git a/Zend/tests/inter_04.phpt b/Zend/tests/inter_04.phpt index 0703e3d9b..ea0bd8476 100644 --- a/Zend/tests/inter_04.phpt +++ b/Zend/tests/inter_04.phpt @@ -14,6 +14,8 @@ interface b { interface c extends a, b { } +echo "done!\n"; + ?> --EXPECTF-- -Fatal error: Can't inherit abstract function b::b() (previously declared abstract in a) in %s on line %d +done! diff --git a/Zend/tests/isset_str_offset.phpt b/Zend/tests/isset_str_offset.phpt new file mode 100644 index 000000000..7a9164a38 --- /dev/null +++ b/Zend/tests/isset_str_offset.phpt @@ -0,0 +1,89 @@ +--TEST-- +Testing isset with string offsets +--FILE-- +<?php + +print "- isset ---\n"; + +$str = "test0123"; + +var_dump(isset($str[-1])); +var_dump(isset($str[0])); +var_dump(isset($str[1])); +var_dump(isset($str[4])); // 0 +var_dump(isset($str[5])); // 1 +var_dump(isset($str[8])); +var_dump(isset($str[10000])); +// non-numeric offsets +print "- string ---\n"; +var_dump(isset($str['-1'])); +var_dump(isset($str['0'])); +var_dump(isset($str['1'])); +var_dump(isset($str['4'])); // 0 +var_dump(isset($str['1.5'])); +var_dump(isset($str['good'])); +var_dump(isset($str['3 and a half'])); +print "- bool ---\n"; +var_dump(isset($str[true])); +var_dump(isset($str[false])); +var_dump(isset($str[false][true])); +print "- null ---\n"; +var_dump(isset($str[null])); +print "- double ---\n"; +var_dump(isset($str[-1.1])); +var_dump(isset($str[-0.8])); +var_dump(isset($str[-0.1])); +var_dump(isset($str[0.2])); +var_dump(isset($str[0.9])); +var_dump(isset($str[M_PI])); +var_dump(isset($str[100.5001])); +print "- array ---\n"; +var_dump(isset($str[array()])); +var_dump(isset($str[array(1,2,3)])); +print "- object ---\n"; +var_dump(isset($str[new stdClass()])); +print "- resource ---\n"; +$f = fopen(__FILE__, 'r'); +var_dump(isset($str[$f])); +print "done\n"; + +?> +--EXPECTF-- +- isset --- +bool(false) +bool(true) +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) +- string --- +bool(false) +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) +bool(false) +- bool --- +bool(true) +bool(true) +bool(false) +- null --- +bool(true) +- double --- +bool(false) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(false) +- array --- +bool(false) +bool(false) +- object --- +bool(false) +- resource --- +bool(false) +done diff --git a/Zend/tests/method_static_var.phpt b/Zend/tests/method_static_var.phpt new file mode 100644 index 000000000..c5e82fef7 --- /dev/null +++ b/Zend/tests/method_static_var.phpt @@ -0,0 +1,30 @@ +--TEST-- +Initial value of static var in method depends on the include time of the class definition +--XFAIL-- +Maybe not a bug +--FILE-- +<?php +class Foo { + public function __construct() { + eval("class Bar extends Foo {}"); + } + public static function test() { + static $i = 0; + var_dump(++$i); + } +} + +foo::test(); +new Foo; +foo::test(); + +/** + * function_add_ref() makes a clone of static variables for inherited functions, so $i in Bar::test gets initial value 1 + */ +Bar::test(); +Bar::test(); +--EXPECT-- +int(1) +int(2) +int(1) +int(2) diff --git a/Zend/tests/objects_018.phpt b/Zend/tests/objects_018.phpt index 5a24f4d42..ca5b4b8cd 100644 --- a/Zend/tests/objects_018.phpt +++ b/Zend/tests/objects_018.phpt @@ -14,6 +14,8 @@ interface Itest2 { interface Itest3 extends Itest, Itest2 { } +echo "done!\n"; + ?> --EXPECTF-- -Fatal error: Can't inherit abstract function Itest2::a() (previously declared abstract in Itest) in %s on line %d +done! diff --git a/Zend/tests/offset_assign.phpt b/Zend/tests/offset_assign.phpt index eebf63c4f..6a0059109 100644 --- a/Zend/tests/offset_assign.phpt +++ b/Zend/tests/offset_assign.phpt @@ -3,9 +3,11 @@ Crash on $x['x']['y'] += 1 when $x is string --FILE-- <?php $x = "a"; -$x['x']['y'] += 1; +$x['x']['y'] += 1; echo "Done\n"; ?> ---EXPECTF-- -Fatal error: Cannot use string offset as an array in %s on line %d +--EXPECTF-- +Warning: Illegal string offset 'x' in %soffset_assign.php on line %d + +Fatal error: Cannot use string offset as an array in %soffset_assign.php on line %d diff --git a/Zend/tests/offset_string.phpt b/Zend/tests/offset_string.phpt index 63d8abe8d..34604d634 100644 --- a/Zend/tests/offset_string.phpt +++ b/Zend/tests/offset_string.phpt @@ -9,6 +9,9 @@ var_dump($str[1]); var_dump($str[0.0836]); var_dump($str[NULL]); var_dump($str["run away"]); +var_dump($str["13"]); +var_dump($str["14.5"]); +var_dump($str["15 and then some"]); var_dump($str[TRUE]); var_dump($str[FALSE]); @@ -24,12 +27,29 @@ var_dump($str[$arr]); echo "Done\n"; ?> ---EXPECTF-- +--EXPECTF-- string(1) "i" + +Notice: String offset cast occured in %s on line %d string(1) "S" + +Notice: String offset cast occured in %s on line %d string(1) "S" + +Warning: Illegal string offset 'run away' in %s on line %d string(1) "S" +string(1) "c" + +Warning: Illegal string offset '14.5' in %s on line %d +string(1) "o" + +Notice: A non well formed numeric value encountered in %s on line %d +string(1) "r" + +Notice: String offset cast occured in %s on line %d string(1) "i" + +Notice: String offset cast occured in %s on line %d string(1) "S" Warning: Illegal offset type in %s on line %d @@ -42,4 +62,4 @@ string(1) "%s" Warning: Illegal offset type in %s on line %d string(1) "i" -Done +Done
\ No newline at end of file diff --git a/Zend/tests/result_unused.phpt b/Zend/tests/result_unused.phpt index ed8502ce3..0db744d08 100644 --- a/Zend/tests/result_unused.phpt +++ b/Zend/tests/result_unused.phpt @@ -24,6 +24,6 @@ $x->prop; $x->y; echo "ok\n"; --EXPECTF-- -Notice: Uninitialized string offset: 3 in %sresult_unused.php on line 11 +Notice: Uninitialized string offset: 3 in %sresult_unused.php on line %d ok diff --git a/Zend/tests/str_offset_001.phpt b/Zend/tests/str_offset_001.phpt index 1ebea6e28..8a6b91b49 100644 --- a/Zend/tests/str_offset_001.phpt +++ b/Zend/tests/str_offset_001.phpt @@ -24,28 +24,28 @@ foo($str[1][0]); foo($str[2][1]);
?>
--EXPECTF--
-Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line 7
+Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line %d
string(0) ""
string(1) "a"
string(1) "b"
string(1) "c"
-Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line 11
+Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line %d
string(0) ""
string(1) "b"
-Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line 13
+Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line %d
string(0) ""
-Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line 15
+Notice: Uninitialized string offset: -1 in %sstr_offset_001.php on line %d
string(0) ""
string(1) "a"
string(1) "b"
string(1) "c"
-Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line 19
+Notice: Uninitialized string offset: 3 in %sstr_offset_001.php on line %d
string(0) ""
string(1) "b"
-Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line 21
+Notice: Uninitialized string offset: 1 in %sstr_offset_001.php on line %d
string(0) ""
diff --git a/Zend/tests/traits/bug54441.phpt b/Zend/tests/traits/bug54441.phpt new file mode 100644 index 000000000..84139f326 --- /dev/null +++ b/Zend/tests/traits/bug54441.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #54441 (Changing trait static method visibility) +--FILE-- +<?php + +trait Foo { + public function bar() {} +} + +class Boo { + use Foo { + bar as dontKnow; + dontKnow as protected; + } +} + +?> +--EXPECTF-- +Fatal error: The modifiers for the trait alias dontKnow() need to be changed in the same statment in which the alias is defined. Error in %s on line %d diff --git a/Zend/tests/traits/bug60145.phpt b/Zend/tests/traits/bug60145.phpt new file mode 100644 index 000000000..fcd0cfa5f --- /dev/null +++ b/Zend/tests/traits/bug60145.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #60145 (Usage of trait's use statement inside interfaces not properly checked.) +--FILE-- +<?php + +trait foo { + +} + +interface MyInterface { + use foo; + + public function b(); + +} +--EXPECTF-- +Fatal error: Cannot use traits inside of interfaces. foo is used in MyInterface in %s on line %d diff --git a/Zend/tests/traits/bug60153.phpt b/Zend/tests/traits/bug60153.phpt new file mode 100644 index 000000000..8f01e72c2 --- /dev/null +++ b/Zend/tests/traits/bug60153.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #60153 (Interface method prototypes not enforced when implementd via traits.) +--FILE-- +<?php + +interface IFoo { + public function oneArgument($a); +} + +trait TFoo { + public function oneArgument() {} +} + +class C implements IFoo { + use TFoo; +} + +--EXPECTF-- +Fatal error: Declaration of C::oneArgument() must be compatible with IFoo::oneArgument($a) in %s on line %d diff --git a/Zend/tests/traits/bug60165a.phpt b/Zend/tests/traits/bug60165a.phpt new file mode 100644 index 000000000..245bb94e9 --- /dev/null +++ b/Zend/tests/traits/bug60165a.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #60165 (Aliasing unexisting trait should throw/trigger the exception/error) +--FILE-- +<?php + +trait A { + public function bar() {} +} + +class MyClass { + use A { + nonExistent as barA; + } +} + +--EXPECTF-- +Fatal error: An alias (barA) was defined for method nonExistent(), but this method does not exist in %s on line %d diff --git a/Zend/tests/traits/bug60165b.phpt b/Zend/tests/traits/bug60165b.phpt new file mode 100644 index 000000000..7b4855a64 --- /dev/null +++ b/Zend/tests/traits/bug60165b.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #60165 (Aliasing unexisting trait should throw/trigger the exception/error) +--FILE-- +<?php + +trait A { + public function bar() {} +} + +class MyClass { + use A { + A::nonExistent as barA; + } +} + +--EXPECTF-- +Fatal error: An alias was defined for A::nonExistent but this method does not exist in %s on line %d diff --git a/Zend/tests/traits/bug60165c.phpt b/Zend/tests/traits/bug60165c.phpt new file mode 100644 index 000000000..d72491f03 --- /dev/null +++ b/Zend/tests/traits/bug60165c.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #60165 (Aliasing unexisting trait should throw/trigger the exception/error) +--FILE-- +<?php + +trait A { + public function bar() {} +} + +trait B { + public function foo() {} +} + +class MyClass { + use A, B { + foo as fooB; + baz as foobar; + } +} + +--EXPECTF-- +Fatal error: An alias (foobar) was defined for method baz(), but this method does not exist in %s on line %d diff --git a/Zend/tests/traits/bug60165d.phpt b/Zend/tests/traits/bug60165d.phpt new file mode 100644 index 000000000..26ac927a8 --- /dev/null +++ b/Zend/tests/traits/bug60165d.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #60165 (Aliasing unexisting trait should throw/trigger the exception/error) +--FILE-- +<?php + +// The same is true for the insteadof operator to resolve conflicts + +trait A {} + +trait B { + public function bar() {} +} + +class MyClass { + use A, B { + A::bar insteadof B; + } +} + +--EXPECTF-- +Fatal error: A precedence rule was defined for A::bar but this method does not exist in %s on line %d diff --git a/Zend/tests/traits/bug60173.phpt b/Zend/tests/traits/bug60173.phpt new file mode 100644 index 000000000..a28a1033a --- /dev/null +++ b/Zend/tests/traits/bug60173.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #60173 (Wrong error message on reflective trait instantiation) +--FILE-- +<?php + +trait foo { } + +$rc = new ReflectionClass('foo'); +$rc->newInstance(); + +--EXPECTF-- +Fatal error: Cannot instantiate trait foo in %s on line %d diff --git a/Zend/tests/traits/bug60217a.phpt b/Zend/tests/traits/bug60217a.phpt new file mode 100644 index 000000000..62a351595 --- /dev/null +++ b/Zend/tests/traits/bug60217a.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #60217 (Requiring the same method from different traits.) +--FILE-- +<?php + +trait T1 { + public abstract function foo(); +} + +trait T2 { + public abstract function foo(); +} + +class C { + use T1, T2; + + public function foo() { + echo "C::foo() works.\n"; + } +} + +$o = new C; +$o->foo(); + +--EXPECTF-- +C::foo() works. diff --git a/Zend/tests/traits/bug60217b.phpt b/Zend/tests/traits/bug60217b.phpt new file mode 100644 index 000000000..f03955020 --- /dev/null +++ b/Zend/tests/traits/bug60217b.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #60217 (Requiring the same method from different traits and abstract methods have to be compatible) +--FILE-- +<?php + +trait TBroken1 { + public abstract function foo($a); +} + +trait TBroken2 { + public abstract function foo($a, $b = 0); +} + +class CBroken { + use TBroken1, TBroken2; + + public function foo($a) { + echo 'FOO'; + } +} + +$o = new CBroken; +$o->foo(1); + +--EXPECTF-- +Fatal error: Declaration of TBroken1::foo($a) must be compatible with TBroken2::foo($a, $b = 0) in %s on line %d diff --git a/Zend/tests/traits/bug60217c.phpt b/Zend/tests/traits/bug60217c.phpt new file mode 100644 index 000000000..ce8980775 --- /dev/null +++ b/Zend/tests/traits/bug60217c.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #60217 (Requiring the same method from different traits and abstract methods have to be compatible, in both directions.) +--FILE-- +<?php + +trait TBroken1 { + public abstract function foo($a, $b = 0); +} + +trait TBroken2 { + public abstract function foo($a); +} + +class CBroken { + use TBroken1, TBroken2; + + public function foo($a) { + echo 'FOO'; + } +} + +$o = new CBroken; +$o->foo(1); + +--EXPECTF-- +Fatal error: Declaration of TBroken1::foo($a, $b = 0) must be compatible with TBroken2::foo($a) in %s on line %d diff --git a/Zend/tests/traits/bug60369.phpt b/Zend/tests/traits/bug60369.phpt new file mode 100644 index 000000000..bfc1ee303 --- /dev/null +++ b/Zend/tests/traits/bug60369.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #60369 (Crash with static property in trait) +--FILE-- +<?php + +trait PropertiesTrait { + static $same = true; +} + +class Properties { + use PropertiesTrait; + public $same = true; +} + +?> +--EXPECTF-- +Fatal error: Properties and PropertiesTrait define the same property ($same) in the composition of Properties. However, the definition differs and is considered incompatible. Class was composed in %s on line %d
\ No newline at end of file diff --git a/Zend/tests/traits/bugs/abstract-methods05.phpt b/Zend/tests/traits/bugs/abstract-methods05.phpt new file mode 100644 index 000000000..e90ce39a3 --- /dev/null +++ b/Zend/tests/traits/bugs/abstract-methods05.phpt @@ -0,0 +1,25 @@ +--TEST-- +The compatibility with the signature of abstract methods should be checked. +--FILE-- +<?php +error_reporting(E_ALL); + +trait THelloB { + public function hello() { + echo 'Hello'; + } +} + +trait THelloA { + public abstract function hello($a); +} + +class TraitsTest1 { + use THelloB; + use THelloA; +} + + +?> +--EXPECTF-- +Fatal error: Declaration of THelloB::hello() must be compatible with THelloA::hello($a) in %s on line %d
\ No newline at end of file diff --git a/Zend/tests/traits/bugs/abstract-methods06.phpt b/Zend/tests/traits/bugs/abstract-methods06.phpt new file mode 100644 index 000000000..fdcd81696 --- /dev/null +++ b/Zend/tests/traits/bugs/abstract-methods06.phpt @@ -0,0 +1,26 @@ +--TEST-- +The compatibility with the signature of abstract methods should be checked. (also checking the second possible implementation branch) +--FILE-- +<?php +error_reporting(E_ALL); + +trait THelloB { + public function hello() { + echo 'Hello'; + } +} + +trait THelloA { + public abstract function hello($a); +} + +class TraitsTest1 { + use THelloA; + use THelloB; +} + + + +?> +--EXPECTF-- +Fatal error: Declaration of THelloB::hello() must be compatible with THelloA::hello($a) in %s on line %d
\ No newline at end of file diff --git a/Zend/tests/traits/inheritance003.phpt b/Zend/tests/traits/inheritance003.phpt index b457a73fe..a41c4e484 100644 --- a/Zend/tests/traits/inheritance003.phpt +++ b/Zend/tests/traits/inheritance003.phpt @@ -1,5 +1,5 @@ --TEST-- -Trait method overriddes base class method and satisfies prototype +Trait method overrides base class method and satisfies prototype --FILE-- <?php error_reporting(E_ALL); diff --git a/Zend/tests/traits/language011.phpt b/Zend/tests/traits/language011.phpt index cf535b4c1..585699da5 100644 --- a/Zend/tests/traits/language011.phpt +++ b/Zend/tests/traits/language011.phpt @@ -1,5 +1,5 @@ --TEST-- -Aliasing leading to conflict should result in error message +Aliasing on conflicting method should not cover up conflict. --FILE-- <?php error_reporting(E_ALL); @@ -27,4 +27,4 @@ $o->sayWorld(); ?> --EXPECTF-- -Fatal error: Trait method sayWorld has not been applied, because there are collisions with other trait methods on MyClass in %s on line %d +Fatal error: Trait method sayHello has not been applied, because there are collisions with other trait methods on MyClass in %s on line %d diff --git a/Zend/tests/traits/property005.phpt b/Zend/tests/traits/property005.phpt index 3c80a1f26..899a332ac 100644 --- a/Zend/tests/traits/property005.phpt +++ b/Zend/tests/traits/property005.phpt @@ -13,18 +13,11 @@ trait THello1 { } echo "PRE-CLASS-GUARD\n"; -class NoticeForBase extends Base { - use THello1; -} -echo "POST-CLASS-GUARD\n"; - -// now the same with a class that defines the property itself - class Notice extends Base { use THello1; private $hello; } -echo "POST-CLASS-GUARD2\n"; +echo "POST-CLASS-GUARD\n"; // now we do the test for a fatal error @@ -33,7 +26,7 @@ class TraitsTest { public $hello; } -echo "POST-CLASS-GUARD\n"; +echo "POST-CLASS-GUARD2\n"; $t = new TraitsTest; $t->hello = "foo"; @@ -41,10 +34,7 @@ $t->hello = "foo"; --EXPECTF-- PRE-CLASS-GUARD -Strict Standards: Base and THello1 define the same property ($hello) in the composition of NoticeForBase. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d -POST-CLASS-GUARD - Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d -POST-CLASS-GUARD2 +POST-CLASS-GUARD Fatal error: TraitsTest and THello1 define the same property ($hello) in the composition of TraitsTest. However, the definition differs and is considered incompatible. Class was composed in %s on line %d diff --git a/Zend/tests/traits/property006.phpt b/Zend/tests/traits/property006.phpt new file mode 100644 index 000000000..1a709199a --- /dev/null +++ b/Zend/tests/traits/property006.phpt @@ -0,0 +1,37 @@ +--TEST-- +Introducing new private variables of the same name in a subclass is ok, and does not lead to any output. That is consitent with normal inheritance handling. +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class Base { + private $hello; +} + +trait THello1 { + private $hello; +} + +// Now we use the trait, which happens to introduce another private variable +// but they are distinct, and not related to each other, so no warning. +echo "PRE-CLASS-GUARD\n"; +class SameNameInSubClassNoNotice extends Base { + use THello1; +} +echo "POST-CLASS-GUARD\n"; + +// now the same with a class that defines the property itself, +// that should give the expected strict warning. + +class Notice extends Base { + use THello1; + private $hello; +} +echo "POST-CLASS-GUARD2\n"; +?> +--EXPECTF-- +PRE-CLASS-GUARD +POST-CLASS-GUARD + +Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +POST-CLASS-GUARD2 diff --git a/Zend/tests/traits/property007.phpt b/Zend/tests/traits/property007.phpt new file mode 100644 index 000000000..0f7c3b394 --- /dev/null +++ b/Zend/tests/traits/property007.phpt @@ -0,0 +1,38 @@ +--TEST-- +Introducing new private variables of the same name in a subclass is ok, and does not lead to any output. That is consitent with normal inheritance handling. +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class Base { + protected $hello; +} + +trait THello1 { + protected $hello; +} + +// Protected and public are handle more strict with a warning then what is +// expected from normal inheritance since they can have easier coliding semantics +echo "PRE-CLASS-GUARD\n"; +class SameNameInSubClassProducesNotice extends Base { + use THello1; +} +echo "POST-CLASS-GUARD\n"; + +// now the same with a class that defines the property itself, too. + +class Notice extends Base { + use THello1; + protected $hello; +} +echo "POST-CLASS-GUARD2\n"; +?> +--EXPECTF-- +PRE-CLASS-GUARD + +Strict Standards: Base and THello1 define the same property ($hello) in the composition of SameNameInSubClassProducesNotice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +POST-CLASS-GUARD + +Strict Standards: Notice and THello1 define the same property ($hello) in the composition of Notice. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +POST-CLASS-GUARD2 diff --git a/Zend/tests/traits/property008.phpt b/Zend/tests/traits/property008.phpt new file mode 100644 index 000000000..e263692d6 --- /dev/null +++ b/Zend/tests/traits/property008.phpt @@ -0,0 +1,62 @@ +--TEST-- +Handling of private fields with traits needs to have same semantics as with normal inheritance. +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class BaseWithPropA { + private $hello = 0; +} + +// This is how privates are handled in normal inheritance +class SubclassClassicInheritance extends BaseWithPropA { + private $hello = 0; +} + +// And here, we need to make sure, that the traits behave the same + +trait AHelloProperty { + private $hello = 0; +} + +class BaseWithTPropB { + use AHelloProperty; +} + +class SubclassA extends BaseWithPropA { + use AHelloProperty; +} + +class SubclassB extends BaseWithTPropB { + use AHelloProperty; +} + +$classic = new SubclassClassicInheritance; +var_dump($classic); + +$a = new SubclassA; +var_dump($a); + +$b = new SubclassB; +var_dump($b); + +?> +--EXPECTF-- +object(SubclassClassicInheritance)#1 (2) { + ["hello":"SubclassClassicInheritance":private]=> + int(0) + ["hello":"BaseWithPropA":private]=> + int(0) +} +object(SubclassA)#2 (2) { + ["hello":"SubclassA":private]=> + int(0) + ["hello":"BaseWithPropA":private]=> + int(0) +} +object(SubclassB)#3 (2) { + ["hello":"SubclassB":private]=> + int(0) + ["hello":"BaseWithTPropB":private]=> + int(0) +}
\ No newline at end of file diff --git a/Zend/tests/traits/property009.phpt b/Zend/tests/traits/property009.phpt new file mode 100644 index 000000000..135129d31 --- /dev/null +++ b/Zend/tests/traits/property009.phpt @@ -0,0 +1,59 @@ +--TEST-- +Handling of public fields with traits needs to have same semantics as with normal inheritance, however, we do add strict warnings since it is easier to run into something unexpeted with changing traits. +--FILE-- +<?php +error_reporting(E_ALL | E_STRICT); + +class BaseWithPropA { + public $hello = 0; +} + +// This is how publics are handled in normal inheritance +class SubclassClassicInheritance extends BaseWithPropA { + public $hello = 0; +} + +// And here, we need to make sure, that the traits behave the same + +trait AHelloProperty { + public $hello = 0; +} + +class BaseWithTPropB { + use AHelloProperty; +} + +class SubclassA extends BaseWithPropA { + use AHelloProperty; +} + +class SubclassB extends BaseWithTPropB { + use AHelloProperty; +} + +$classic = new SubclassClassicInheritance; +var_dump($classic); + +$a = new SubclassA; +var_dump($a); + +$b = new SubclassB; +var_dump($b); + +?> +--EXPECTF-- +Strict Standards: BaseWithPropA and AHelloProperty define the same property ($hello) in the composition of SubclassA. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d + +Strict Standards: BaseWithTPropB and AHelloProperty define the same property ($hello) in the composition of SubclassB. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d +object(SubclassClassicInheritance)#1 (1) { + ["hello"]=> + int(0) +} +object(SubclassA)#2 (1) { + ["hello"]=> + int(0) +} +object(SubclassB)#3 (1) { + ["hello"]=> + int(0) +}
\ No newline at end of file diff --git a/Zend/tests/unset_cv05.phpt b/Zend/tests/unset_cv05.phpt index 6ef7b34ce..36fea3bc4 100644 --- a/Zend/tests/unset_cv05.phpt +++ b/Zend/tests/unset_cv05.phpt @@ -23,5 +23,7 @@ ok Warning: session_start(): Cannot send session cookie - headers already sent by (output started at %sunset_cv05.php on line %d Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at %sunset_cv05.php:%d) in %sunset_cv05.php on line %d + +Notice: Array to string conversion in %sunset_cv05.php on line %d Array ok diff --git a/Zend/tests/unset_cv08.phpt b/Zend/tests/unset_cv08.phpt index 1c4015ab3..9b8ab1520 100644 --- a/Zend/tests/unset_cv08.phpt +++ b/Zend/tests/unset_cv08.phpt @@ -4,7 +4,7 @@ unset() CV 8 (unset() of global variable in array_unique($GLOBALS)) <?php $a = "ok\n"; $b = "ok\n"; -array_unique($GLOBALS); +@array_unique($GLOBALS); echo $a; echo $b; echo "ok\n"; diff --git a/Zend/zend.c b/Zend/zend.c index 75d3adccd..6484365bc 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316744 2011-09-14 13:18:19Z dmitry $ */ +/* $Id: zend.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_extensions.h" @@ -131,7 +131,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-2011 Zend Technologies\n" +#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2012 Zend Technologies\n" #define PRINT_ZVAL_INDENT 4 static void print_hash(zend_write_func_t write_func, HashTable *ht, int indent, zend_bool is_object TSRMLS_DC) /* {{{ */ @@ -250,6 +250,7 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop Z_STRLEN_P(expr_copy) = snprintf(Z_STRVAL_P(expr_copy), sizeof("Resource id #") - 1 + MAX_LENGTH_OF_LONG, "Resource id #%ld", Z_LVAL_P(expr)); break; case IS_ARRAY: + zend_error(E_NOTICE, "Array to string conversion"); Z_STRLEN_P(expr_copy) = sizeof("Array") - 1; Z_STRVAL_P(expr_copy) = estrndup("Array", Z_STRLEN_P(expr_copy)); break; diff --git a/Zend/zend.h b/Zend/zend.h index 22810dd6e..fa2323e1e 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend.h 321753 2012-01-04 08:25:06Z laruence $ */ #ifndef ZEND_H #define ZEND_H @@ -683,7 +683,7 @@ extern ZEND_API void (*zend_unblock_interruptions)(void); #endif extern ZEND_API void (*zend_ticks_function)(int ticks); extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0); -extern void (*zend_on_timeout)(int seconds TSRMLS_DC); +extern ZEND_API void (*zend_on_timeout)(int seconds TSRMLS_DC); extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC); extern int (*zend_vspprintf)(char **pbuf, size_t max_len, const char *format, va_list ap); extern ZEND_API char *(*zend_getenv)(char *name, size_t name_len TSRMLS_DC); @@ -709,8 +709,8 @@ END_EXTERN_C() #else #include "zend_signal.h" -#define HANDLE_BLOCK_INTERRUPTIONS() SIGG(depth)++; -#define HANDLE_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } +#define HANDLE_BLOCK_INTERRUPTIONS() ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() +#define HANDLE_UNBLOCK_INTERRUPTIONS() ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() #endif BEGIN_EXTERN_C() diff --git a/Zend/zend_API.c b/Zend/zend_API.c index d314721b7..2c3bbf3cc 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_API.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_execute.h" @@ -1107,7 +1107,9 @@ ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *class_type zend_object *object; if (class_type->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) { - char *what = class_type->ce_flags & ZEND_ACC_INTERFACE ? "interface" : "abstract class"; + char *what = (class_type->ce_flags & ZEND_ACC_INTERFACE) ? "interface" + :((class_type->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) ? "trait" + : "abstract class"; zend_error(E_ERROR, "Cannot instantiate %s %s", what, class_type->name); } diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 637ad26f5..1296f2f90 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_API.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_API_H #define ZEND_API_H diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 6f9580a08..4bbf7bb54 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_alloc.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_alloc.h" diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index 1628bf8e3..31c838864 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_alloc.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_ALLOC_H #define ZEND_ALLOC_H diff --git a/Zend/zend_build.h b/Zend/zend_build.h index a0ed76342..042f50e80 100755 --- a/Zend/zend_build.h +++ b/Zend/zend_build.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_builtin_functions.c b/Zend/zend_builtin_functions.c index 79925fbc6..f63f25a25 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 317300 2011-09-26 03:57:22Z stas $ */ +/* $Id: zend_builtin_functions.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" @@ -143,6 +143,7 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_is_subclass_of, 0, 0, 2) ZEND_ARG_INFO(0, object) ZEND_ARG_INFO(0, class_name) + ZEND_ARG_INFO(0, allow_string) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_get_class_vars, 0, 0, 1) @@ -706,6 +707,9 @@ repeat: } c.flags = case_sensitive; /* non persistent */ c.name = IS_INTERNED(name) ? name : zend_strndup(name, name_len); + if(c.name == NULL) { + RETURN_FALSE; + } c.name_len = name_len+1; c.module_number = PHP_USER_CONSTANT; if (zend_register_constant(&c TSRMLS_CC) == SUCCESS) { @@ -839,13 +843,20 @@ static void is_a_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool only_subclass) int class_name_len; zend_class_entry *instance_ce; zend_class_entry **ce; + zend_bool allow_string = only_subclass; zend_bool retval; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zs", &obj, &class_name, &class_name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zs|b", &obj, &class_name, &class_name_len, &allow_string) == FAILURE) { return; } - - if (Z_TYPE_P(obj) == IS_STRING) { + /* + * allow_string - is_a default is no, is_subclass_of is yes. + * if it's allowed, then the autoloader will be called if the class does not exist. + * default behaviour is different, as 'is_a' used to be used to test mixed return values + * and there is no easy way to deprecate this. + */ + + if (allow_string && Z_TYPE_P(obj) == IS_STRING) { zend_class_entry **the_ce; if (zend_lookup_class(Z_STRVAL_P(obj), Z_STRLEN_P(obj), &the_ce TSRMLS_CC) == FAILURE) { RETURN_FALSE; @@ -871,7 +882,7 @@ static void is_a_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool only_subclass) } -/* {{{ proto bool is_subclass_of(mixed object, string class_name) +/* {{{ proto bool is_subclass_of(mixed object_or_string, string class_name [, bool allow_string=true]) Returns true if the object has this class as one of its parents */ ZEND_FUNCTION(is_subclass_of) { @@ -880,8 +891,8 @@ ZEND_FUNCTION(is_subclass_of) /* }}} */ -/* {{{ proto bool is_a(mixed object, string class_name) - Returns true if the object is of this class or has this class as one of its parents */ +/* {{{ proto bool is_a(mixed object_or_string, string class_name [, bool allow_string=false]) + Returns true if the first argument is an object and is this class or has this class as one of its parents, */ ZEND_FUNCTION(is_a) { is_a_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h index e8f776e03..2fd8d8cd0 100644 --- a/Zend/zend_builtin_functions.h +++ b/Zend/zend_builtin_functions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 310080 2011-04-09 09:52:24Z sebastian $ */ +/* $Id: zend_builtin_functions.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_BUILTIN_FUNCTIONS_H #define ZEND_BUILTIN_FUNCTIONS_H diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index 7aa511da3..8f2f372c4 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_closures.c 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_closures.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" @@ -376,6 +376,17 @@ static HashTable *zend_closure_get_debug_info(zval *object, int *is_temp TSRMLS_ } /* }}} */ +static HashTable *zend_closure_get_gc(zval *obj, zval ***table, int *n TSRMLS_DC) /* {{{ */ +{ + zend_closure *closure = (zend_closure *)zend_object_store_get_object(obj TSRMLS_CC); + + *table = closure->this_ptr ? &closure->this_ptr : NULL; + *n = closure->this_ptr ? 1 : 0; + return (closure->func.type == ZEND_USER_FUNCTION) ? + closure->func.op_array.static_variables : NULL; +} +/* }}} */ + /* {{{ proto Closure::__construct() Private constructor preventing instantiation */ ZEND_METHOD(Closure, __construct) @@ -425,6 +436,7 @@ void zend_register_closure_ce(TSRMLS_D) /* {{{ */ closure_handlers.clone_obj = zend_closure_clone; closure_handlers.get_debug_info = zend_closure_get_debug_info; closure_handlers.get_closure = zend_closure_get_closure; + closure_handlers.get_gc = zend_closure_get_gc; } /* }}} */ diff --git a/Zend/zend_closures.h b/Zend/zend_closures.h index 80db4840c..376b3bb0b 100644 --- a/Zend/zend_closures.h +++ b/Zend/zend_closures.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_closures.h 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_closures.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_CLOSURES_H #define ZEND_CLOSURES_H diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 32da10ced..33faf592b 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 318191 2011-10-18 19:42:42Z lbarnaud $ */ +/* $Id: zend_compile.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <zend_language_parser.h> #include "zend.h" @@ -89,7 +89,8 @@ } while (0) #define FREE_POLYMORPHIC_CACHE_SLOT(literal) do { \ - if (CG(active_op_array)->literals[literal].cache_slot == \ + if (CG(active_op_array)->literals[literal].cache_slot != -1 && \ + CG(active_op_array)->literals[literal].cache_slot == \ CG(active_op_array)->last_cache_slot - POLYMORPHIC_CACHE_SLOT_SIZE) { \ CG(active_op_array)->literals[literal].cache_slot = -1; \ CG(active_op_array)->last_cache_slot -= POLYMORPHIC_CACHE_SLOT_SIZE; \ @@ -115,7 +116,6 @@ static void zend_duplicate_property_info(zend_property_info *property_info) /* { } /* }}} */ - static void zend_duplicate_property_info_internal(zend_property_info *property_info) /* {{{ */ { if (!IS_INTERNED(property_info->name)) { @@ -124,7 +124,6 @@ static void zend_duplicate_property_info_internal(zend_property_info *property_i } /* }}} */ - static void zend_destroy_property_info(zend_property_info *property_info) /* {{{ */ { str_efree(property_info->name); @@ -134,7 +133,6 @@ static void zend_destroy_property_info(zend_property_info *property_info) /* {{{ } /* }}} */ - static void zend_destroy_property_info_internal(zend_property_info *property_info) /* {{{ */ { str_free((char*)property_info->name); @@ -167,7 +165,6 @@ static void build_runtime_defined_function_key(zval *result, const char *name, i } /* }}} */ - static void init_compiler_declarables(TSRMLS_D) /* {{{ */ { Z_TYPE(CG(declarables).ticks) = IS_LONG; @@ -211,7 +208,6 @@ void zend_init_compiler_data_structures(TSRMLS_D) /* {{{ */ } /* }}} */ - ZEND_API void file_handle_dtor(zend_file_handle *fh) /* {{{ */ { TSRMLS_FETCH(); @@ -220,7 +216,6 @@ ZEND_API void file_handle_dtor(zend_file_handle *fh) /* {{{ */ } /* }}} */ - void init_compiler(TSRMLS_D) /* {{{ */ { CG(active_op_array) = NULL; @@ -232,7 +227,6 @@ void init_compiler(TSRMLS_D) /* {{{ */ } /* }}} */ - void shutdown_compiler(TSRMLS_D) /* {{{ */ { zend_stack_destroy(&CG(bp_stack)); @@ -248,7 +242,6 @@ void shutdown_compiler(TSRMLS_D) /* {{{ */ } /* }}} */ - ZEND_API char *zend_set_compiled_filename(const char *new_compiled_filename TSRMLS_DC) /* {{{ */ { char **pp, *p; @@ -265,35 +258,30 @@ ZEND_API char *zend_set_compiled_filename(const char *new_compiled_filename TSRM } /* }}} */ - ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TSRMLS_DC) /* {{{ */ { CG(compiled_filename) = original_compiled_filename; } /* }}} */ - ZEND_API char *zend_get_compiled_filename(TSRMLS_D) /* {{{ */ { return CG(compiled_filename); } /* }}} */ - ZEND_API int zend_get_compiled_lineno(TSRMLS_D) /* {{{ */ { return CG(zend_lineno); } /* }}} */ - ZEND_API zend_bool zend_is_compiling(TSRMLS_D) /* {{{ */ { return CG(in_compilation); } /* }}} */ - static zend_uint get_temporary_variable(zend_op_array *op_array) /* {{{ */ { return (op_array->T)++ * ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)); @@ -609,7 +597,6 @@ void zend_do_unary_op(zend_uchar op, znode *result, const znode *op1 TSRMLS_DC) #define MAKE_NOP(opline) { opline->opcode = ZEND_NOP; memset(&opline->result,0,sizeof(opline->result)); memset(&opline->op1,0,sizeof(opline->op1)); memset(&opline->op2,0,sizeof(opline->op2)); opline->result_type=opline->op1_type=opline->op2_type=IS_UNUSED; } - static void zend_do_op_data(zend_op *data_op, const znode *value TSRMLS_DC) /* {{{ */ { data_op->opcode = ZEND_OP_DATA; @@ -1987,8 +1974,10 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */ if (last_op->opcode == ZEND_FETCH_OBJ_R) { if (last_op->op2_type == IS_CONST) { zval name; - name = CONSTANT(last_op->op2.constant); + if (Z_TYPE(name) != IS_STRING) { + zend_error(E_COMPILE_ERROR, "Method name must be a string"); + } if (!IS_INTERNED(Z_STRVAL(name))) { Z_STRVAL(name) = estrndup(Z_STRVAL(name), Z_STRLEN(name)); } @@ -2381,7 +2370,11 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na zend_op *opline; if (method_name->op_type == IS_CONST) { - char *lcname = zend_str_tolower_dup(Z_STRVAL(method_name->u.constant), Z_STRLEN(method_name->u.constant)); + char *lcname; + if (Z_TYPE(method_name->u.constant) != IS_STRING) { + zend_error(E_COMPILE_ERROR, "Method name must be a string"); + } + lcname = zend_str_tolower_dup(Z_STRVAL(method_name->u.constant), Z_STRLEN(method_name->u.constant)); if ((sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == Z_STRLEN(method_name->u.constant) && memcmp(lcname, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == 0) { zval_dtor(&method_name->u.constant); @@ -2809,7 +2802,7 @@ ZEND_API void function_add_ref(zend_function *function) /* {{{ */ static void do_inherit_parent_constructor(zend_class_entry *ce) /* {{{ */ { - zend_function *function; + zend_function *function, *new_function; if (!ce->parent) { return; @@ -2870,8 +2863,8 @@ static void do_inherit_parent_constructor(zend_class_entry *ce) /* {{{ */ if (zend_hash_find(&ce->parent->function_table, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME), (void **)&function)==SUCCESS) { /* inherit parent's constructor */ - zend_hash_update(&ce->function_table, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME), function, sizeof(zend_function), NULL); - function_add_ref(function); + zend_hash_update(&ce->function_table, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME), function, sizeof(zend_function), (void**)&new_function); + function_add_ref(new_function); } else { /* Don't inherit the old style constructor if we already have the new style constructor */ char *lc_class_name; @@ -2884,8 +2877,8 @@ static void do_inherit_parent_constructor(zend_class_entry *ce) /* {{{ */ zend_hash_find(&ce->parent->function_table, lc_parent_class_name, ce->parent->name_length+1, (void **)&function)==SUCCESS) { if (function->common.fn_flags & ZEND_ACC_CTOR) { /* inherit parent's constructor */ - zend_hash_update(&ce->function_table, lc_parent_class_name, ce->parent->name_length+1, function, sizeof(zend_function), NULL); - function_add_ref(function); + zend_hash_update(&ce->function_table, lc_parent_class_name, ce->parent->name_length+1, function, sizeof(zend_function), (void**)&new_function); + function_add_ref(new_function); } } efree(lc_parent_class_name); @@ -3133,6 +3126,9 @@ static char * zend_get_function_declaration(zend_function *fptr TSRMLS_DC) /* {{ *(offset++) = '.'; } *(offset++) = '\''; + } else if (Z_TYPE_P(zv) == IS_ARRAY) { + memcpy(offset, "Array", 5); + offset += 5; } else { zend_make_printable_zval(zv, &zv_copy, &use_copy); REALLOC_BUF_IF_EXCEED(buf, offset, length, Z_STRLEN(zv_copy)); @@ -3155,7 +3151,7 @@ static char * zend_get_function_declaration(zend_function *fptr TSRMLS_DC) /* {{ *(offset++) = ' '; } arg_info++; - REALLOC_BUF_IF_EXCEED(buf, offset, length, 23); + REALLOC_BUF_IF_EXCEED(buf, offset, length, 32); } } *(offset++) = ')'; @@ -3170,7 +3166,8 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function * zend_uint child_flags; zend_uint parent_flags = parent->common.fn_flags; - if (parent->common.fn_flags & ZEND_ACC_ABSTRACT + if ((parent->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0 + && parent->common.fn_flags & ZEND_ACC_ABSTRACT && parent->common.scope != (child->common.prototype ? child->common.prototype->common.scope : child->common.scope) && child->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_IMPLEMENTED_ABSTRACT)) { zend_error(E_COMPILE_ERROR, "Can't inherit abstract function %s::%s() (previously declared abstract in %s)", @@ -3613,6 +3610,20 @@ static int zend_traits_merge_functions(zend_function *fn TSRMLS_DC, int num_args if (zend_hash_quick_find(function_tables[i], hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void **)&other_trait_fn) == SUCCESS) { /* if it is an abstract method, there is no collision */ if (other_trait_fn->common.fn_flags & ZEND_ACC_ABSTRACT) { + /* Make sure they are compatible */ + if (fn->common.fn_flags & ZEND_ACC_ABSTRACT) { + /* In case both are abstract, just check prototype, but need to do that in both directions */ + if ( !zend_do_perform_implementation_check(fn, other_trait_fn TSRMLS_CC) + || !zend_do_perform_implementation_check(other_trait_fn, fn TSRMLS_CC)) { + zend_error(E_COMPILE_ERROR, "Declaration of %s must be compatible with %s", //ZEND_FN_SCOPE_NAME(fn), fn->common.function_name, //::%s() + zend_get_function_declaration(fn TSRMLS_CC), + zend_get_function_declaration(other_trait_fn TSRMLS_CC)); + } + } else { + /* otherwise, do the full check */ + do_inheritance_check_on_method(fn, other_trait_fn TSRMLS_CC); + } + /* we can savely free and remove it from other table */ zend_function_dtor(other_trait_fn); zend_hash_quick_del(function_tables[i], hash_key->arKey, hash_key->nKeyLength, hash_key->h); @@ -3620,6 +3631,10 @@ static int zend_traits_merge_functions(zend_function *fn TSRMLS_DC, int num_args /* if it is not an abstract method, there is still no collision */ /* if fn is an abstract method */ if (fn->common.fn_flags & ZEND_ACC_ABSTRACT) { + /* Make sure they are compatible. + Here, we already know other_trait_fn cannot be abstract, full check ok. */ + do_inheritance_check_on_method(other_trait_fn, fn TSRMLS_CC); + /* just mark as solved, will be added if its own trait is processed */ abstract_solved = 1; } else { @@ -3655,7 +3670,6 @@ static int zend_traits_merge_functions(zend_function *fn TSRMLS_DC, int num_args } /* }}} */ - /* {{{ Originates from php_runkit_function_copy_ctor Duplicate structures in an op_array where necessary to make an outright duplicate */ static void zend_traits_duplicate_function(zend_function *fe, zend_class_entry *target_ce, char *newname TSRMLS_DC) @@ -3709,9 +3723,14 @@ static void zend_traits_duplicate_function(zend_function *fe, zend_class_entry * for(i = 0; i < fe->op_array.last; i++) { opcode_copy[i] = fe->op_array.opcodes[i]; if (opcode_copy[i].op1_type != IS_CONST) { - if (opcode_copy[i].op1.jmp_addr >= fe->op_array.opcodes && - opcode_copy[i].op1.jmp_addr < fe->op_array.opcodes + fe->op_array.last) { - opcode_copy[i].op1.jmp_addr = opcode_copy + (fe->op_array.opcodes[i].op1.jmp_addr - fe->op_array.opcodes); + switch (opcode_copy[i].opcode) { + case ZEND_GOTO: + case ZEND_JMP: + if (opcode_copy[i].op1.jmp_addr && opcode_copy[i].op1.jmp_addr >= fe->op_array.opcodes && + opcode_copy[i].op1.jmp_addr < fe->op_array.opcodes + fe->op_array.last) { + opcode_copy[i].op1.jmp_addr = opcode_copy + (fe->op_array.opcodes[i].op1.jmp_addr - fe->op_array.opcodes); + } + break; } } else { /* if __CLASS__ i.e. T_CLASS_C was used, we need to fix it up here */ @@ -3730,9 +3749,18 @@ static void zend_traits_duplicate_function(zend_function *fe, zend_class_entry * } if (opcode_copy[i].op2_type != IS_CONST) { - if (opcode_copy[i].op2.jmp_addr >= fe->op_array.opcodes && - opcode_copy[i].op2.jmp_addr < fe->op_array.opcodes + fe->op_array.last) { - opcode_copy[i].op2.jmp_addr = opcode_copy + (fe->op_array.opcodes[i].op2.jmp_addr - fe->op_array.opcodes); + switch (opcode_copy[i].opcode) { + case ZEND_JMPZ: + case ZEND_JMPNZ: + case ZEND_JMPZ_EX: + case ZEND_JMPNZ_EX: + case ZEND_JMP_SET: + case ZEND_JMP_SET_VAR: + if (opcode_copy[i].op2.jmp_addr && opcode_copy[i].op2.jmp_addr >= fe->op_array.opcodes && + opcode_copy[i].op2.jmp_addr < fe->op_array.opcodes + fe->op_array.last) { + opcode_copy[i].op2.jmp_addr = opcode_copy + (fe->op_array.opcodes[i].op2.jmp_addr - fe->op_array.opcodes); + } + break; } } else { /* if __CLASS__ i.e. T_CLASS_C was used, we need to fix it up here */ @@ -3778,23 +3806,32 @@ static void zend_traits_duplicate_function(zend_function *fe, zend_class_entry * } /* }}} */ -static void zend_add_magic_methods(zend_class_entry* ce, const char* mname, uint mname_len, zend_function* fe TSRMLS_DC) { - if ( !strncmp(mname, ZEND_CLONE_FUNC_NAME, mname_len)) { ce->clone = fe; fe->common.fn_flags |= ZEND_ACC_CLONE; } - else if (!strncmp(mname, ZEND_CONSTRUCTOR_FUNC_NAME, mname_len)) { +static void zend_add_magic_methods(zend_class_entry* ce, const char* mname, uint mname_len, zend_function* fe TSRMLS_DC) /* {{{ */ +{ + if (!strncmp(mname, ZEND_CLONE_FUNC_NAME, mname_len)) { + ce->clone = fe; fe->common.fn_flags |= ZEND_ACC_CLONE; + } else if (!strncmp(mname, ZEND_CONSTRUCTOR_FUNC_NAME, mname_len)) { if (ce->constructor) { zend_error(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ce->name); } ce->constructor = fe; fe->common.fn_flags |= ZEND_ACC_CTOR; - } - else if (!strncmp(mname, ZEND_DESTRUCTOR_FUNC_NAME, mname_len)) { ce->destructor = fe; fe->common.fn_flags |= ZEND_ACC_DTOR; } - else if (!strncmp(mname, ZEND_GET_FUNC_NAME, mname_len)) ce->__get = fe; - else if (!strncmp(mname, ZEND_SET_FUNC_NAME, mname_len)) ce->__set = fe; - else if (!strncmp(mname, ZEND_CALL_FUNC_NAME, mname_len)) ce->__call = fe; - else if (!strncmp(mname, ZEND_UNSET_FUNC_NAME, mname_len)) ce->__unset = fe; - else if (!strncmp(mname, ZEND_ISSET_FUNC_NAME, mname_len)) ce->__isset = fe; - else if (!strncmp(mname, ZEND_CALLSTATIC_FUNC_NAME, mname_len)) ce->__callstatic= fe; - else if (!strncmp(mname, ZEND_TOSTRING_FUNC_NAME, mname_len)) ce->__tostring = fe; - else if (ce->name_length + 1 == mname_len) { + } else if (!strncmp(mname, ZEND_DESTRUCTOR_FUNC_NAME, mname_len)) { + ce->destructor = fe; fe->common.fn_flags |= ZEND_ACC_DTOR; + } else if (!strncmp(mname, ZEND_GET_FUNC_NAME, mname_len)) { + ce->__get = fe; + } else if (!strncmp(mname, ZEND_SET_FUNC_NAME, mname_len)) { + ce->__set = fe; + } else if (!strncmp(mname, ZEND_CALL_FUNC_NAME, mname_len)) { + ce->__call = fe; + } else if (!strncmp(mname, ZEND_UNSET_FUNC_NAME, mname_len)) { + ce->__unset = fe; + } else if (!strncmp(mname, ZEND_ISSET_FUNC_NAME, mname_len)) { + ce->__isset = fe; + } else if (!strncmp(mname, ZEND_CALLSTATIC_FUNC_NAME, mname_len)) { + ce->__callstatic = fe; + } else if (!strncmp(mname, ZEND_TOSTRING_FUNC_NAME, mname_len)) { + ce->__tostring = fe; + } else if (ce->name_length + 1 == mname_len) { char *lowercase_name = emalloc(ce->name_length + 1); zend_str_tolower_copy(lowercase_name, ce->name, ce->name_length); lowercase_name = (char*)zend_new_interned_string(lowercase_name, ce->name_length + 1, 1 TSRMLS_CC); @@ -3808,13 +3845,13 @@ static void zend_add_magic_methods(zend_class_entry* ce, const char* mname, uint str_efree(lowercase_name); } } - +/* }}} */ static int zend_traits_merge_functions_to_class(zend_function *fn TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */ { zend_class_entry *ce = va_arg(args, zend_class_entry*); int add = 0; - zend_function* existing_fn; + zend_function* existing_fn = NULL; zend_function fn_copy, *fn_copy_p; zend_function* prototype = NULL; /* is used to determine the prototype according to the inheritance chain */ @@ -3822,14 +3859,6 @@ static int zend_traits_merge_functions_to_class(zend_function *fn TSRMLS_DC, int add = 1; /* not found */ } else if (existing_fn->common.scope != ce) { add = 1; /* or inherited from other class or interface */ - /* it is just a reference which was added to the subclass while doing the inheritance */ - /* so we can deleted now, and will add the overriding method afterwards */ - - /* except, if we try to add an abstract function, then we should not delete the inherited one */ - /* delete inherited fn if the function to be added is not abstract */ - if ((fn->common.fn_flags & ZEND_ACC_ABSTRACT) == 0) { - zend_hash_quick_del(&ce->function_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h); - } } if (add) { @@ -3838,7 +3867,7 @@ static int zend_traits_merge_functions_to_class(zend_function *fn TSRMLS_DC, int prototype = parent_function; /* ->common.fn_flags |= ZEND_ACC_ABSTRACT; */ /* we got that method in the parent class, and are going to override it, - except, if the trait is just asking to have an abstract method implemented. */ + except, if the trait is just asking to have an abstract method implemented. */ if (fn->common.fn_flags & ZEND_ACC_ABSTRACT) { /* then we clean up an skip this method */ zend_function_dtor(fn); @@ -3851,7 +3880,7 @@ static int zend_traits_merge_functions_to_class(zend_function *fn TSRMLS_DC, int if (prototype && (prototype->common.fn_flags & ZEND_ACC_IMPLEMENTED_ABSTRACT - || prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) { + || prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) { fn->common.fn_flags |= ZEND_ACC_IMPLEMENTED_ABSTRACT; } else if (fn->common.fn_flags & ZEND_ACC_IMPLEMENTED_ABSTRACT) { /* remove ZEND_ACC_IMPLEMENTED_ABSTRACT flag, think it shouldn't be copied to class */ @@ -3862,6 +3891,23 @@ static int zend_traits_merge_functions_to_class(zend_function *fn TSRMLS_DC, int if (prototype) { do_inheritance_check_on_method(fn, prototype TSRMLS_CC); } + /* one more thing: make sure we properly implement an abstract method */ + if (existing_fn && existing_fn->common.fn_flags & ZEND_ACC_ABSTRACT) { + do_inheritance_check_on_method(fn, existing_fn TSRMLS_CC); + } + + /* delete inherited fn if the function to be added is not abstract */ + if (existing_fn + && existing_fn->common.scope != ce + && (fn->common.fn_flags & ZEND_ACC_ABSTRACT) == 0) { + /* it is just a reference which was added to the subclass while doing + the inheritance, so we can deleted now, and will add the overriding + method afterwards. + Except, if we try to add an abstract function, then we should not + delete the inherited one */ + zend_hash_quick_del(&ce->function_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h); + } + if (fn->common.fn_flags & ZEND_ACC_ABSTRACT) { ce->ce_flags |= ZEND_ACC_IMPLICIT_ABSTRACT_CLASS; @@ -3875,9 +3921,9 @@ static int zend_traits_merge_functions_to_class(zend_function *fn TSRMLS_DC, int if (zend_hash_quick_update(&ce->function_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h, &fn_copy, sizeof(zend_function), (void**)&fn_copy_p)==FAILURE) { zend_error(E_COMPILE_ERROR, "Trait method %s has not been applied, because failure occured during updating class method table", hash_key->arKey); } - + zend_add_magic_methods(ce, hash_key->arKey, hash_key->nKeyLength, fn_copy_p TSRMLS_CC); - + zend_function_dtor(fn); } else { zend_function_dtor(fn); @@ -3898,12 +3944,12 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args, zend_function fn_copy; void* dummy; size_t i = 0; - + target = va_arg(args, HashTable*); target_ce = va_arg(args, zend_class_entry*); aliases = va_arg(args, zend_trait_alias**); exclude_table = va_arg(args, HashTable*); - + fnname_len = strlen(fn->common.function_name); /* apply aliases which are qualified with a class name, there should not be any ambiguity */ @@ -3932,6 +3978,11 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args, zend_error(E_COMPILE_ERROR, "Failed to add aliased trait method (%s) to the trait table. There is probably already a trait method with the same name", fn_copy.common.function_name); } efree(lcname); + + /** Record the trait from which this alias was resolved. */ + if (!aliases[i]->trait_method->ce) { + aliases[i]->trait_method->ce = fn->common.scope; + } } i++; } @@ -3960,6 +4011,11 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args, fn_copy.common.fn_flags |= ZEND_ACC_PUBLIC; } fn_copy.common.fn_flags |= fn->common.fn_flags ^ (fn->common.fn_flags & ZEND_ACC_PPP_MASK); + + /** Record the trait from which this alias was resolved. */ + if (!aliases[i]->trait_method->ce) { + aliases[i]->trait_method->ce = fn->common.scope; + } } i++; } @@ -3988,14 +4044,36 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /* size_t i, j = 0; zend_trait_precedence *cur_precedence; zend_trait_method_reference *cur_method_ref; + char *lcname; + zend_bool method_exists; /* resolve class references */ if (ce->trait_precedences) { i = 0; while ((cur_precedence = ce->trait_precedences[i])) { + /** Resolve classes for all precedence operations. */ if (cur_precedence->exclude_from_classes) { - cur_precedence->trait_method->ce = zend_fetch_class(cur_precedence->trait_method->class_name, cur_precedence->trait_method->cname_len, ZEND_FETCH_CLASS_TRAIT TSRMLS_CC); + cur_method_ref = cur_precedence->trait_method; + cur_precedence->trait_method->ce = zend_fetch_class(cur_method_ref->class_name, + cur_method_ref->cname_len, ZEND_FETCH_CLASS_TRAIT TSRMLS_CC); + + /** Ensure that the prefered method is actually available. */ + lcname = zend_str_tolower_dup(cur_method_ref->method_name, + cur_method_ref->mname_len); + method_exists = zend_hash_exists(&cur_method_ref->ce->function_table, + lcname, + cur_method_ref->mname_len + 1); + efree(lcname); + if (!method_exists) { + zend_error(E_COMPILE_ERROR, + "A precedence rule was defined for %s::%s but this method does not exist", + cur_method_ref->ce->name, + cur_method_ref->method_name); + } + /** With the other traits, we are more permissive. + We do not give errors for those. This allows to be more + defensive in such definitions. */ j = 0; while (cur_precedence->exclude_from_classes[j]) { char* class_name = (char*)cur_precedence->exclude_from_classes[j]; @@ -4013,9 +4091,21 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /* if (ce->trait_aliases) { i = 0; while (ce->trait_aliases[i]) { + /** For all aliases with an explicit class name, resolve the class now. */ if (ce->trait_aliases[i]->trait_method->class_name) { cur_method_ref = ce->trait_aliases[i]->trait_method; cur_method_ref->ce = zend_fetch_class(cur_method_ref->class_name, cur_method_ref->cname_len, ZEND_FETCH_CLASS_TRAIT TSRMLS_CC); + + /** And, ensure that the referenced method is resolvable, too. */ + lcname = zend_str_tolower_dup(cur_method_ref->method_name, + cur_method_ref->mname_len); + method_exists = zend_hash_exists(&cur_method_ref->ce->function_table, + lcname, cur_method_ref->mname_len + 1); + efree(lcname); + + if (!method_exists) { + zend_error(E_COMPILE_ERROR, "An alias was defined for %s::%s but this method does not exist", cur_method_ref->ce->name, cur_method_ref->method_name); + } } i++; } @@ -4125,6 +4215,50 @@ static zend_class_entry* find_first_definition(zend_class_entry *ce, size_t curr } /* }}} */ +static void zend_traits_register_private_property(zend_class_entry *ce, const char *name, int name_len, zend_property_info *old_info, zval *property TSRMLS_DC) /* {{{ */ +{ + char *priv_name; + int priv_name_length; + const char *interned_name; + zend_property_info property_info; + ulong h = zend_get_hash_value(name, name_len+1); + property_info = *old_info; + + if (old_info->flags & ZEND_ACC_STATIC) { + property_info.offset = ce->default_static_members_count++; + ce->default_static_members_table = perealloc(ce->default_static_members_table, sizeof(zval*) * ce->default_static_members_count, ce->type == ZEND_INTERNAL_CLASS); + ce->default_static_members_table[property_info.offset] = property; + if (ce->type == ZEND_USER_CLASS) { + ce->static_members_table = ce->default_static_members_table; + } + } else { + property_info.offset = ce->default_properties_count++; + ce->default_properties_table = perealloc(ce->default_properties_table, sizeof(zval*) * ce->default_properties_count, ce->type == ZEND_INTERNAL_CLASS); + ce->default_properties_table[property_info.offset] = property; + } + + zend_mangle_property_name(&priv_name, &priv_name_length, ce->name, ce->name_length, name, name_len, ce->type & ZEND_INTERNAL_CLASS); + property_info.name = priv_name; + property_info.name_length = priv_name_length; + + interned_name = zend_new_interned_string(property_info.name, property_info.name_length+1, 0 TSRMLS_CC); + if (interned_name != property_info.name) { + if (ce->type == ZEND_USER_CLASS) { + efree((char*)property_info.name); + } else { + free((char*)property_info.name); + } + property_info.name = interned_name; + } + + property_info.h = zend_get_hash_value(property_info.name, property_info.name_length+1); + + property_info.ce = ce; + + zend_hash_quick_update(&ce->properties_info, name, name_len+1, h, &property_info, sizeof(zend_property_info), NULL); +} +/* }}} */ + static void zend_do_traits_property_binding(zend_class_entry *ce TSRMLS_DC) /* {{{ */ { size_t i; @@ -4136,6 +4270,7 @@ static void zend_do_traits_property_binding(zend_class_entry *ce TSRMLS_DC) /* { ulong prop_hash; const char* class_name_unused; zend_bool prop_found; + zend_bool parent_prop_is_private = 0; zend_bool not_compatible; zval* prop_value; @@ -4173,39 +4308,55 @@ static void zend_do_traits_property_binding(zend_class_entry *ce TSRMLS_DC) /* { if (coliding_prop->flags & ZEND_ACC_SHADOW) { /* this one is inherited, lets look it up in its own class */ zend_hash_quick_find(&coliding_prop->ce->properties_info, prop_name, prop_name_length+1, prop_hash, (void **) &coliding_prop); + parent_prop_is_private = (coliding_prop->flags & ZEND_ACC_PRIVATE) == ZEND_ACC_PRIVATE; } - if ((coliding_prop->flags & ZEND_ACC_PPP_MASK) == (property_info->flags & ZEND_ACC_PPP_MASK)) { - /* flags are identical, now the value needs to be checked */ - if (property_info->flags & ZEND_ACC_STATIC) { - not_compatible = (FAILURE == compare_function(&compare_result, - ce->default_static_members_table[coliding_prop->offset], - ce->traits[i]->default_static_members_table[property_info->offset] TSRMLS_CC)) - || (Z_LVAL(compare_result) != 0); + + if (!parent_prop_is_private) { + if ((coliding_prop->flags & (ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC)) + == (property_info->flags & (ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC))) { + /* flags are identical, now the value needs to be checked */ + if (property_info->flags & ZEND_ACC_STATIC) { + not_compatible = (FAILURE == compare_function(&compare_result, + ce->default_static_members_table[coliding_prop->offset], + ce->traits[i]->default_static_members_table[property_info->offset] TSRMLS_CC)) + || (Z_LVAL(compare_result) != 0); + } else { + not_compatible = (FAILURE == compare_function(&compare_result, + ce->default_properties_table[coliding_prop->offset], + ce->traits[i]->default_properties_table[property_info->offset] TSRMLS_CC)) + || (Z_LVAL(compare_result) != 0); + } } else { - not_compatible = (FAILURE == compare_function(&compare_result, - ce->default_properties_table[coliding_prop->offset], - ce->traits[i]->default_properties_table[property_info->offset] TSRMLS_CC)) - || (Z_LVAL(compare_result) != 0); + /* the flags are not identical, thus, we assume properties are not compatible */ + not_compatible = 1; } - } else { - /* the flags are not identical, thus, we assume properties are not compatible */ - not_compatible = 1; - } - if (not_compatible) { - zend_error(E_COMPILE_ERROR, - "%s and %s define the same property ($%s) in the composition of %s. However, the definition differs and is considered incompatible. Class was composed", - find_first_definition(ce, i, prop_name, prop_name_length, prop_hash, coliding_prop->ce)->name, - property_info->ce->name, - prop_name, - ce->name); + if (not_compatible) { + zend_error(E_COMPILE_ERROR, + "%s and %s define the same property ($%s) in the composition of %s. However, the definition differs and is considered incompatible. Class was composed", + find_first_definition(ce, i, prop_name, prop_name_length, prop_hash, coliding_prop->ce)->name, + property_info->ce->name, + prop_name, + ce->name); + } else { + zend_error(E_STRICT, + "%s and %s define the same property ($%s) in the composition of %s. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed", + find_first_definition(ce, i, prop_name, prop_name_length, prop_hash, coliding_prop->ce)->name, + property_info->ce->name, + prop_name, + ce->name); + } } else { - zend_error(E_STRICT, - "%s and %s define the same property ($%s) in the composition of %s. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed", - find_first_definition(ce, i, prop_name, prop_name_length, prop_hash, coliding_prop->ce)->name, - property_info->ce->name, - prop_name, - ce->name); + /* private property, make the property_info.offset indenpended */ + if (property_info->flags & ZEND_ACC_STATIC) { + prop_value = ce->traits[i]->default_static_members_table[property_info->offset]; + } else { + prop_value = ce->traits[i]->default_properties_table[property_info->offset]; + } + Z_ADDREF_P(prop_value); + + zend_traits_register_private_property(ce, prop_name, prop_name_length, property_info, prop_value TSRMLS_CC); + return; } } @@ -4225,6 +4376,57 @@ static void zend_do_traits_property_binding(zend_class_entry *ce TSRMLS_DC) /* { } /* }}} */ +static void zend_do_check_for_inconsistent_traits_aliasing(zend_class_entry *ce TSRMLS_DC) /* {{{ */ +{ + int i = 0; + zend_trait_alias* cur_alias; + char* lc_method_name; + + if (ce->trait_aliases) { + while (ce->trait_aliases[i]) { + cur_alias = ce->trait_aliases[i]; + /** The trait for this alias has not been resolved, this means, this + alias was not applied. Abort with an error. */ + if (!cur_alias->trait_method->ce) { + if (cur_alias->alias) { + /** Plain old inconsistency/typo/bug */ + zend_error(E_COMPILE_ERROR, + "An alias (%s) was defined for method %s(), but this method does not exist", + cur_alias->alias, + cur_alias->trait_method->method_name); + } else { + /** Here are two possible cases: + 1) this is an attempt to modifiy the visibility + of a method introduce as part of another alias. + Since that seems to violate the DRY principle, + we check against it and abort. + 2) it is just a plain old inconsitency/typo/bug + as in the case where alias is set. */ + + lc_method_name = zend_str_tolower_dup(cur_alias->trait_method->method_name, + cur_alias->trait_method->mname_len); + if (zend_hash_exists(&ce->function_table, + lc_method_name, + cur_alias->trait_method->mname_len+1)) { + efree(lc_method_name); + zend_error(E_COMPILE_ERROR, + "The modifiers for the trait alias %s() need to be changed in the same statment in which the alias is defined. Error", + cur_alias->trait_method->method_name); + } else { + efree(lc_method_name); + zend_error(E_COMPILE_ERROR, + "The modifiers of the trait method %s() are changed, but this method does not exist. Error", + cur_alias->trait_method->method_name); + + } + } + } + i++; + } + } +} +/* }}} */ + ZEND_API void zend_do_bind_traits(zend_class_entry *ce TSRMLS_DC) /* {{{ */ { @@ -4237,6 +4439,9 @@ ZEND_API void zend_do_bind_traits(zend_class_entry *ce TSRMLS_DC) /* {{{ */ /* first care about all methods to be flattened into the class */ zend_do_traits_method_binding(ce TSRMLS_CC); + + /* Aliases which have not been applied indicate typos/bugs. */ + zend_do_check_for_inconsistent_traits_aliasing(ce TSRMLS_CC); /* then flatten the properties into it, to, mostly to notfiy developer about problems */ zend_do_traits_property_binding(ce TSRMLS_CC); @@ -4251,7 +4456,6 @@ ZEND_API void zend_do_bind_traits(zend_class_entry *ce TSRMLS_DC) /* {{{ */ } /* }}} */ - ZEND_API int do_bind_function(const zend_op_array *op_array, zend_op *opline, HashTable *function_table, zend_bool compile_time) /* {{{ */ { zend_function *function; @@ -4289,7 +4493,6 @@ ZEND_API int do_bind_function(const zend_op_array *op_array, zend_op *opline, Ha } /* }}} */ - void zend_add_trait_precedence(znode *precedence_znode TSRMLS_DC) /* {{{ */ { zend_class_entry *ce = CG(active_class_entry); @@ -4328,7 +4531,6 @@ void zend_prepare_reference(znode *result, znode *class_name, znode *method_name } /* }}} */ - void zend_prepare_trait_alias(znode *result, znode *method_reference, znode *modifiers, znode *alias TSRMLS_DC) /* {{{ */ { zend_trait_alias *trait_alias = emalloc(sizeof(zend_trait_alias)); @@ -5020,6 +5222,12 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) /* {{{ */ void zend_do_implements_trait(znode *trait_name TSRMLS_DC) /* {{{ */ { zend_op *opline; + if ((CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE)) { + zend_error(E_COMPILE_ERROR, + "Cannot use traits inside of interfaces. %s is used in %s", + Z_STRVAL(trait_name->u.constant), CG(active_class_entry)->name); + } + switch (zend_get_class_fetch_type(Z_STRVAL(trait_name->u.constant), Z_STRLEN(trait_name->u.constant))) { case ZEND_FETCH_CLASS_SELF: @@ -5257,6 +5465,11 @@ void zend_do_halt_compiler_register(TSRMLS_D) /* {{{ */ char *name, *cfilename; char haltoff[] = "__COMPILER_HALT_OFFSET__"; int len, clen; + + if (CG(has_bracketed_namespaces) && CG(in_namespace)) { + zend_error(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope"); + } + cfilename = zend_get_compiled_filename(TSRMLS_C); clen = strlen(cfilename); zend_mangle_property_name(&name, &len, haltoff, sizeof(haltoff) - 1, cfilename, clen, 0); @@ -6322,7 +6535,7 @@ void zend_do_jmp_set(const znode *value, znode *jmp_token, znode *colon_token TS GET_NODE(colon_token, opline->result); - jmp_token->u.op .opline_num = op_number; + jmp_token->u.op.opline_num = op_number; INC_BPC(CG(active_op_array)); } diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 8c1db38dd..bcd06d118 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_compile.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H @@ -198,6 +198,9 @@ typedef struct _zend_try_catch_element { /* function flag for internal user call handlers __call, __callstatic */ #define ZEND_ACC_CALL_VIA_HANDLER 0x200000 +/* disable inline caching */ +#define ZEND_ACC_NEVER_CACHE 0x400000 + #define ZEND_ACC_PASS_REST_BY_REFERENCE 0x1000000 #define ZEND_ACC_PASS_REST_PREFER_REF 0x2000000 diff --git a/Zend/zend_config.nw.h b/Zend/zend_config.nw.h index 12e7831e2..f8570505e 100644 --- a/Zend/zend_config.nw.h +++ b/Zend/zend_config.nw.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_config.nw.h 321634 2012-01-01 13:15:04Z felipe $ */ #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 106abef33..8018c3fd8 100644 --- a/Zend/zend_config.w32.h +++ b/Zend/zend_config.w32.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_config.w32.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_CONFIG_W32_H #define ZEND_CONFIG_W32_H diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 128c5e9d7..53e3cee47 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_constants.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_constants.h" diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h index c466b84ec..041d996af 100644 --- a/Zend/zend_constants.h +++ b/Zend/zend_constants.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_constants.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_CONSTANTS_H #define ZEND_CONSTANTS_H diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c index 6d85b286e..167dd5d3c 100644 --- a/Zend/zend_default_classes.c +++ b/Zend/zend_default_classes.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_default_classes.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_dynamic_array.c b/Zend/zend_dynamic_array.c index c9482c020..23a5818b9 100644 --- a/Zend/zend_dynamic_array.c +++ b/Zend/zend_dynamic_array.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_dynamic_array.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" diff --git a/Zend/zend_dynamic_array.h b/Zend/zend_dynamic_array.h index af6c18385..6a397073a 100644 --- a/Zend/zend_dynamic_array.h +++ b/Zend/zend_dynamic_array.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_dynamic_array.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_DYNAMIC_ARRAY_H #define ZEND_DYNAMIC_ARRAY_H diff --git a/Zend/zend_errors.h b/Zend/zend_errors.h index 914df7651..9c6a81a7c 100644 --- a/Zend/zend_errors.h +++ b/Zend/zend_errors.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 313645 2011-07-23 22:07:22Z stas $ */ +/* $Id: zend_errors.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_ERRORS_H #define ZEND_ERRORS_H diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 07b67715a..be1d1ca9d 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_exceptions.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h index 8761faf86..5843f563f 100644 --- a/Zend/zend_exceptions.h +++ b/Zend/zend_exceptions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_exceptions.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_EXCEPTIONS_H #define ZEND_EXCEPTIONS_H diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 23ac479a2..acfac9c17 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316887 2011-09-17 00:16:11Z felipe $ */ +/* $Id: zend_execute.c 321634 2012-01-01 13:15:04Z felipe $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -1147,13 +1147,22 @@ convert_to_array: } if (Z_TYPE_P(dim) != IS_LONG) { + switch(Z_TYPE_P(dim)) { /* case IS_LONG: */ case IS_STRING: + if (IS_LONG == is_numeric_string(Z_STRVAL_P(dim), Z_STRLEN_P(dim), NULL, NULL, -1)) { + break; + } + if (type != BP_VAR_UNSET) { + zend_error(E_WARNING, "Illegal string offset '%s'", dim->value.str.val); + } + + break; case IS_DOUBLE: case IS_NULL: case IS_BOOL: - /* do nothing */ + zend_error(E_NOTICE, "String offset cast occured"); break; default: zend_error(E_WARNING, "Illegal offset type"); @@ -1265,10 +1274,19 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval **cont switch(Z_TYPE_P(dim)) { /* case IS_LONG: */ case IS_STRING: + if (IS_LONG == is_numeric_string(Z_STRVAL_P(dim), Z_STRLEN_P(dim), NULL, NULL, -1)) { + break; + } + if (type != BP_VAR_IS) { + zend_error(E_WARNING, "Illegal string offset '%s'", dim->value.str.val); + } + break; case IS_DOUBLE: case IS_NULL: case IS_BOOL: - /* do nothing */ + if (type != BP_VAR_IS) { + zend_error(E_NOTICE, "String offset cast occured"); + } break; default: zend_error(E_WARNING, "Illegal offset type"); diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 9873cd2cc..4f83bdad6 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_execute.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_EXECUTE_H #define ZEND_EXECUTE_H diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 9c048e93a..230611c41 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 318191 2011-10-18 19:42:42Z lbarnaud $ */ +/* $Id: zend_execute_API.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <stdio.h> #include <signal.h> @@ -1195,7 +1195,9 @@ ZEND_API int zend_eval_stringl(char *str, int str_len, zval *retval_ptr, char *s } CG(interactive) = 0; - zend_execute(new_op_array TSRMLS_CC); + zend_try { + zend_execute(new_op_array TSRMLS_CC); + } zend_end_try(); CG(interactive) = orig_interactive; if (local_retval_ptr) { diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index 6813f463f..01eca8898 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_extensions.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend_extensions.h" diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index bffc3f2fd..18d4b1d2b 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_extensions.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_EXTENSIONS_H #define ZEND_EXTENSIONS_H diff --git a/Zend/zend_float.c b/Zend/zend_float.c index b201b212f..cd8768b60 100644 --- a/Zend/zend_float.c +++ b/Zend/zend_float.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_float.c 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_float.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_float.h b/Zend/zend_float.h index 321851ad8..7042a0945 100644 --- a/Zend/zend_float.h +++ b/Zend/zend_float.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_float.h 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_float.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_FLOAT_H #define ZEND_FLOAT_H diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c index 784f8059b..37a08854b 100644 --- a/Zend/zend_gc.c +++ b/Zend/zend_gc.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_gc.c 310295 2011-04-17 22:06:27Z felipe $ */ +/* $Id: zend_gc.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" @@ -194,7 +194,7 @@ ZEND_API void gc_zobj_possible_root(zval *zv TSRMLS_DC) { struct _store_object *obj; - if (UNEXPECTED(Z_OBJ_HT_P(zv)->get_properties == NULL || + if (UNEXPECTED(Z_OBJ_HT_P(zv)->get_gc == NULL || EG(objects_store).object_buckets == NULL)) { return; } @@ -275,48 +275,38 @@ tail_call: GC_ZVAL_SET_BLACK(pz); if (Z_TYPE_P(pz) == IS_OBJECT && EG(objects_store).object_buckets) { - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; struct _store_object *obj = &EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj; obj->refcount++; if (GC_GET_COLOR(obj->buffered) != GC_BLACK) { GC_SET_BLACK(obj->buffered); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - int n = zobj->ce->default_properties_count; - - while (n > 0 && !zobj->properties_table[n-1]) n--; - for (i = 0; i < n; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { - pz->refcount__gc++; - } - if (GC_ZVAL_GET_COLOR(pz) != GC_BLACK) { - if (i == n - 1) { - goto tail_call; - } else { - zval_scan_black(pz TSRMLS_CC); - } - } + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + while (n > 0 && !table[n-1]) n--; + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { + pz->refcount__gc++; + } + if (GC_ZVAL_GET_COLOR(pz) != GC_BLACK) { + if (!props && i == n - 1) { + goto tail_call; + } else { + zval_scan_black(pz TSRMLS_CC); } } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; } } } else if (Z_TYPE_P(pz) == IS_ARRAY) { @@ -343,39 +333,30 @@ tail_call: static void zobj_scan_black(struct _store_object *obj, zval *pz TSRMLS_DC) { Bucket *p; - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; GC_SET_BLACK(obj->buffered); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - - for (i = 0; i < zobj->ce->default_properties_count; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { - pz->refcount__gc++; - } - if (GC_ZVAL_GET_COLOR(pz) != GC_BLACK) { - zval_scan_black(pz TSRMLS_CC); - } - } + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { + pz->refcount__gc++; + } + if (GC_ZVAL_GET_COLOR(pz) != GC_BLACK) { + zval_scan_black(pz TSRMLS_CC); } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; while (p != NULL) { pz = *(zval**)p->pData; if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { @@ -400,7 +381,7 @@ tail_call: GC_ZVAL_SET_COLOR(pz, GC_GREY); if (Z_TYPE_P(pz) == IS_OBJECT && EG(objects_store).object_buckets) { - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; struct _store_object *obj = &EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj; obj->refcount--; @@ -408,39 +389,29 @@ tail_call: GC_BENCH_INC(zobj_marked_grey); GC_SET_COLOR(obj->buffered, GC_GREY); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - int n = zobj->ce->default_properties_count; - - while (n > 0 && !zobj->properties_table[n-1]) n--; - for (i = 0; i < n; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { - pz->refcount__gc--; - } - if (i == n - 1) { - goto tail_call; - } else { - zval_mark_grey(pz TSRMLS_CC); - } - } + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + while (n > 0 && !table[n-1]) n--; + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { + pz->refcount__gc--; + } + if (!props && i == n - 1) { + goto tail_call; + } else { + zval_mark_grey(pz TSRMLS_CC); } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; } } } else if (Z_TYPE_P(pz) == IS_ARRAY) { @@ -468,39 +439,30 @@ tail_call: static void zobj_mark_grey(struct _store_object *obj, zval *pz TSRMLS_DC) { Bucket *p; - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; if (GC_GET_COLOR(obj->buffered) != GC_GREY) { GC_BENCH_INC(zobj_marked_grey); GC_SET_COLOR(obj->buffered, GC_GREY); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - - for (i = 0; i < zobj->ce->default_properties_count; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { - pz->refcount__gc--; - } - zval_mark_grey(pz TSRMLS_CC); - } + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { + pz->refcount__gc--; } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; + zval_mark_grey(pz TSRMLS_CC); } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; while (p != NULL) { pz = *(zval**)p->pData; if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { @@ -558,7 +520,7 @@ tail_call: } else { GC_ZVAL_SET_COLOR(pz, GC_WHITE); if (Z_TYPE_P(pz) == IS_OBJECT && EG(objects_store).object_buckets) { - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; struct _store_object *obj = &EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj; if (GC_GET_COLOR(obj->buffered) == GC_GREY) { @@ -567,36 +529,26 @@ tail_call: } else { GC_SET_COLOR(obj->buffered, GC_WHITE); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - int n = zobj->ce->default_properties_count; - - while (n > 0 && !zobj->properties_table[n-1]) n--; - for (i = 0; i < n; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (i == n - 1) { - goto tail_call; - } else { - zval_scan(pz TSRMLS_CC); - } - } + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + while (n > 0 && !table[n-1]) n--; + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + if (!props && i == n - 1) { + goto tail_call; + } else { + zval_scan(pz TSRMLS_CC); } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; } } } @@ -623,7 +575,7 @@ tail_call: static void zobj_scan(zval *pz TSRMLS_DC) { Bucket *p; - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; if (EG(objects_store).object_buckets) { struct _store_object *obj = &EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj; @@ -634,30 +586,21 @@ static void zobj_scan(zval *pz TSRMLS_DC) } else { GC_SET_COLOR(obj->buffered, GC_WHITE); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - - for (i = 0; i < zobj->ce->default_properties_count; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - zval_scan(pz TSRMLS_CC); - } - } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; - } - p = props->pListHead; + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + zval_scan(pz TSRMLS_CC); + } + } + if (!props) { + return; } + p = props->pListHead; while (p != NULL) { zval_scan(*(zval**)p->pData TSRMLS_CC); p = p->pListNext; @@ -697,52 +640,44 @@ tail_call: GC_ZVAL_SET_BLACK(pz); if (Z_TYPE_P(pz) == IS_OBJECT && EG(objects_store).object_buckets) { - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; struct _store_object *obj = &EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj; if (obj->buffered == (gc_root_buffer*)GC_WHITE) { GC_SET_BLACK(obj->buffered); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table, *zv; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); - if (!zobj->properties) { - int i; - int n = zobj->ce->default_properties_count; - - while (n > 0 && !zobj->properties_table[n-1]) n--; - - /* restore refcount and put into list to free */ - pz->refcount__gc++; - ((zval_gc_info*)pz)->u.next = GC_G(zval_to_free); - GC_G(zval_to_free) = (zval_gc_info*)pz; + if (!props) { + /* restore refcount and put into list to free */ + pz->refcount__gc++; + ((zval_gc_info*)pz)->u.next = GC_G(zval_to_free); + GC_G(zval_to_free) = (zval_gc_info*)pz; + } - for (i = 0; i < n; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { - pz->refcount__gc++; - } - if (i == n - 1) { - goto tail_call; - } else { - zval_collect_white(pz TSRMLS_CC); - } - } + while (n > 0 && !table[n-1]) n--; + for (i = 0; i < n; i++) { + if (table[i]) { + zv = table[i]; + if (Z_TYPE_P(zv) != IS_ARRAY || Z_ARRVAL_P(zv) != &EG(symbol_table)) { + zv->refcount__gc++; + } + if (!props && i == n - 1) { + pz = zv; + goto tail_call; + } else { + zval_collect_white(zv TSRMLS_CC); } - return; - } else { - p = zobj->properties->pListHead; - } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; } } } else { @@ -776,40 +711,31 @@ static void zobj_collect_white(zval *pz TSRMLS_DC) Bucket *p; if (EG(objects_store).object_buckets) { - zend_object_get_properties_t get_props; + zend_object_get_gc_t get_gc; struct _store_object *obj = &EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj; if (obj->buffered == (gc_root_buffer*)GC_WHITE) { GC_SET_BLACK(obj->buffered); if (EXPECTED(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].valid && - (get_props = Z_OBJ_HANDLER_P(pz, get_properties)) != NULL)) { - if (get_props == zend_std_get_properties) { - zend_object* zobj = ((zend_object*)(EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(pz)].bucket.obj.object)); - - if (!zobj->properties) { - int i; - - for (i = 0; i < zobj->ce->default_properties_count; i++) { - if (zobj->properties_table[i]) { - pz = zobj->properties_table[i]; - if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { - pz->refcount__gc++; - } - zval_collect_white(pz TSRMLS_CC); - } + (get_gc = Z_OBJ_HANDLER_P(pz, get_gc)) != NULL)) { + int i, n; + zval **table; + HashTable *props = get_gc(pz, &table, &n TSRMLS_CC); + + for (i = 0; i < n; i++) { + if (table[i]) { + pz = table[i]; + if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { + pz->refcount__gc++; } - return; - } else { - p = zobj->properties->pListHead; + zval_collect_white(pz TSRMLS_CC); } - } else { - HashTable *props = get_props(pz TSRMLS_CC); - if(!props) { - return; - } - p = props->pListHead; } + if (!props) { + return; + } + p = props->pListHead; while (p != NULL) { pz = *(zval**)p->pData; if (Z_TYPE_P(pz) != IS_ARRAY || Z_ARRVAL_P(pz) != &EG(symbol_table)) { diff --git a/Zend/zend_gc.h b/Zend/zend_gc.h index ed812e8e6..6312fc20c 100644 --- a/Zend/zend_gc.h +++ b/Zend/zend_gc.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_gc.h 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_gc.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_GC_H #define ZEND_GC_H diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index 7e915d82f..da3b78fd3 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 312424 2011-06-23 23:00:53Z felipe $ */ +/* $Id: zend_globals.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_GLOBALS_H #define ZEND_GLOBALS_H diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h index 8cbc30aa4..ef86bf01a 100644 --- a/Zend/zend_globals_macros.h +++ b/Zend/zend_globals_macros.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_globals_macros.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_GLOBALS_MACROS_H #define ZEND_GLOBALS_MACROS_H diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 0ec478755..7c7e42917 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_hash.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_globals.h" @@ -1399,6 +1399,7 @@ ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const p->h = num_index; } else { p->h = h; + p->nKeyLength = str_length; if (IS_INTERNED(str_index)) { p->arKey = str_index; } else { diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index baa344bf4..bce43d8cd 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_hash.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_HASH_H #define ZEND_HASH_H diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c index ba8316c76..dd8392b52 100644 --- a/Zend/zend_highlight.c +++ b/Zend/zend_highlight.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_highlight.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include <zend_language_parser.h> diff --git a/Zend/zend_highlight.h b/Zend/zend_highlight.h index b5dc28da5..1d2e2475c 100644 --- a/Zend/zend_highlight.h +++ b/Zend/zend_highlight.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_highlight.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_HIGHLIGHT_H #define ZEND_HIGHLIGHT_H diff --git a/Zend/zend_indent.c b/Zend/zend_indent.c index d079568ce..0b45cadea 100644 --- a/Zend/zend_indent.c +++ b/Zend/zend_indent.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_indent.c 321634 2012-01-01 13:15:04Z felipe $ */ /* 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 8cdcb4a21..ceed3ea8f 100644 --- a/Zend/zend_indent.h +++ b/Zend/zend_indent.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_indent.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_INDENT_H #define ZEND_INDENT_H diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index bd7f0a422..b4f45d412 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ini.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_qsort.h" diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h index dd42647ab..1ccad8bf8 100644 --- a/Zend/zend_ini.h +++ b/Zend/zend_ini.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ini.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_INI_H #define ZEND_INI_H diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c index 01b7dce16..64b3c3e2e 100644 --- a/Zend/zend_ini_parser.c +++ b/Zend/zend_ini_parser.c @@ -116,7 +116,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -131,7 +131,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ini_parser.y 321634 2012-01-01 13:15:04Z felipe $ */ #define DEBUG_CFG_PARSER 0 diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index f639d737a..252575435 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_ini_parser.y 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ini_parser.y 321634 2012-01-01 13:15:04Z felipe $ */ #define DEBUG_CFG_PARSER 0 diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index 1f83f290a..f346059e7 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -4,7 +4,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -22,7 +22,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.c 313641 2011-07-23 20:23:21Z pajoye $ */ +/* $Id: zend_ini_scanner.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <errno.h> #include "zend.h" diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h index 568c38345..c3b823ca1 100644 --- a/Zend/zend_ini_scanner.h +++ b/Zend/zend_ini_scanner.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ini_scanner.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef _ZEND_INI_SCANNER_H #define _ZEND_INI_SCANNER_H diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l index 9e17b1376..2c1e3eec3 100644 --- a/Zend/zend_ini_scanner.l +++ b/Zend/zend_ini_scanner.l @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.l 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ini_scanner.l 321634 2012-01-01 13:15:04Z felipe $ */ #include <errno.h> #include "zend.h" diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index 9301bbd95..ead8f763b 100755 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_interfaces.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h index 5ebc6dc7f..d0c7159ec 100755 --- a/Zend/zend_interfaces.h +++ b/Zend/zend_interfaces.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_interfaces.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_INTERFACES_H #define ZEND_INTERFACES_H diff --git a/Zend/zend_istdiostream.h b/Zend/zend_istdiostream.h index 9f1314740..40861c6b7 100644 --- a/Zend/zend_istdiostream.h +++ b/Zend/zend_istdiostream.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_istdiostream.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef _ZEND_STDIOSTREAM #define _ZEND_STDIOSTREAM diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c index bea00d979..5e909fc9b 100755 --- a/Zend/zend_iterators.c +++ b/Zend/zend_iterators.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_iterators.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h index fc1179db5..9eb9b5908 100755 --- a/Zend/zend_iterators.h +++ b/Zend/zend_iterators.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_iterators.h 321634 2012-01-01 13:15:04Z felipe $ */ /* 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 be58fb069..dd9944ad0 100644 --- a/Zend/zend_language_parser.c +++ b/Zend/zend_language_parser.c @@ -344,7 +344,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -359,7 +359,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y 315018 2011-08-16 12:13:35Z felipe $ */ +/* $Id: zend_language_parser.y 321634 2012-01-01 13:15:04Z felipe $ */ /* * LALR shift/reduce conflicts and how they are resolved: @@ -636,16 +636,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5416 +#define YYLAST 5351 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 158 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 198 +#define YYNNTS 206 /* YYNRULES -- Number of rules. */ -#define YYNRULES 501 +#define YYNRULES 515 /* YYNRULES -- Number of states. */ -#define YYNSTATES 963 +#define YYNSTATES 982 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -727,33 +727,34 @@ static const yytype_uint16 yyprhs[] = 702, 706, 707, 709, 711, 715, 717, 719, 720, 722, 724, 727, 729, 731, 733, 735, 737, 739, 743, 749, 751, 755, 761, 766, 770, 772, 773, 775, 776, 781, - 783, 784, 792, 796, 801, 802, 810, 811, 816, 819, - 823, 827, 831, 835, 839, 843, 847, 851, 855, 859, - 863, 866, 869, 872, 875, 876, 881, 882, 887, 888, - 893, 894, 899, 903, 907, 911, 915, 919, 923, 927, - 931, 935, 939, 943, 947, 950, 953, 956, 959, 963, - 967, 971, 975, 979, 983, 987, 991, 995, 999, 1000, - 1001, 1009, 1010, 1016, 1018, 1021, 1024, 1027, 1030, 1033, - 1036, 1039, 1042, 1043, 1047, 1049, 1054, 1058, 1062, 1065, - 1066, 1077, 1078, 1090, 1092, 1093, 1098, 1102, 1107, 1109, - 1112, 1113, 1119, 1120, 1128, 1129, 1136, 1137, 1145, 1146, - 1154, 1155, 1163, 1164, 1172, 1173, 1179, 1181, 1183, 1187, - 1190, 1192, 1196, 1199, 1201, 1203, 1204, 1205, 1212, 1214, - 1217, 1218, 1221, 1222, 1225, 1229, 1230, 1232, 1234, 1235, - 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253, 1255, 1257, - 1259, 1261, 1265, 1268, 1270, 1272, 1276, 1279, 1282, 1285, - 1290, 1294, 1296, 1300, 1302, 1304, 1306, 1310, 1313, 1315, - 1319, 1323, 1324, 1327, 1328, 1330, 1336, 1340, 1344, 1346, - 1348, 1350, 1352, 1354, 1356, 1357, 1358, 1366, 1368, 1371, - 1372, 1373, 1378, 1383, 1388, 1389, 1394, 1396, 1398, 1399, - 1401, 1404, 1408, 1412, 1414, 1419, 1420, 1426, 1428, 1430, - 1432, 1434, 1437, 1439, 1444, 1449, 1451, 1453, 1458, 1459, - 1461, 1463, 1464, 1467, 1472, 1477, 1479, 1481, 1485, 1487, - 1490, 1494, 1496, 1498, 1499, 1505, 1506, 1507, 1510, 1516, - 1520, 1524, 1526, 1533, 1538, 1543, 1546, 1549, 1552, 1554, - 1557, 1559, 1560, 1566, 1570, 1574, 1581, 1585, 1587, 1589, - 1591, 1596, 1601, 1604, 1607, 1612, 1615, 1618, 1620, 1621, - 1626, 1630 + 783, 786, 788, 793, 797, 798, 802, 804, 806, 807, + 808, 811, 812, 817, 818, 826, 830, 835, 836, 844, + 847, 851, 855, 859, 863, 867, 871, 875, 879, 883, + 887, 891, 894, 897, 900, 903, 904, 909, 910, 915, + 916, 921, 922, 927, 931, 935, 939, 943, 947, 951, + 955, 959, 963, 967, 971, 975, 978, 981, 984, 987, + 991, 995, 999, 1003, 1007, 1011, 1015, 1019, 1023, 1027, + 1029, 1030, 1036, 1037, 1038, 1046, 1047, 1053, 1055, 1058, + 1061, 1064, 1067, 1070, 1073, 1076, 1079, 1080, 1084, 1086, + 1091, 1095, 1099, 1102, 1103, 1114, 1115, 1127, 1129, 1130, + 1135, 1139, 1144, 1146, 1149, 1150, 1156, 1157, 1165, 1166, + 1173, 1174, 1182, 1183, 1191, 1192, 1200, 1201, 1209, 1210, + 1216, 1218, 1220, 1224, 1227, 1229, 1233, 1236, 1238, 1240, + 1241, 1242, 1249, 1251, 1254, 1255, 1258, 1259, 1262, 1266, + 1267, 1269, 1271, 1272, 1276, 1278, 1280, 1282, 1284, 1286, + 1288, 1290, 1292, 1294, 1296, 1298, 1302, 1305, 1307, 1309, + 1313, 1316, 1319, 1322, 1327, 1331, 1333, 1337, 1339, 1341, + 1343, 1347, 1350, 1352, 1356, 1360, 1361, 1364, 1365, 1367, + 1373, 1377, 1381, 1383, 1385, 1387, 1389, 1391, 1393, 1394, + 1395, 1403, 1405, 1408, 1409, 1410, 1415, 1420, 1425, 1426, + 1431, 1433, 1435, 1436, 1438, 1441, 1445, 1449, 1451, 1456, + 1457, 1463, 1465, 1467, 1469, 1471, 1474, 1476, 1481, 1486, + 1488, 1490, 1495, 1496, 1498, 1500, 1501, 1504, 1509, 1514, + 1516, 1518, 1522, 1524, 1527, 1531, 1533, 1535, 1536, 1542, + 1543, 1544, 1547, 1553, 1557, 1561, 1563, 1570, 1575, 1580, + 1583, 1586, 1589, 1591, 1594, 1596, 1597, 1603, 1607, 1611, + 1618, 1622, 1624, 1626, 1628, 1633, 1638, 1641, 1644, 1649, + 1652, 1655, 1657, 1658, 1663, 1667 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -766,163 +767,167 @@ static const yytype_int16 yyrhs[] = -1, 145, 152, 165, 160, 153, -1, 104, 166, 151, -1, 168, 151, -1, 166, 8, 167, -1, 167, -1, 162, -1, 162, 90, 71, -1, 148, 162, -1, 148, - 162, 90, 71, -1, 168, 8, 71, 13, 308, -1, - 99, 71, 13, 308, -1, -1, 169, 170, 171, -1, + 162, 90, 71, -1, 168, 8, 71, 13, 316, -1, + 99, 71, 13, 316, -1, -1, 169, 170, 171, -1, -1, 172, -1, 203, -1, 204, -1, 117, 149, 150, 151, -1, 173, -1, 71, 26, -1, 152, 169, 153, - -1, -1, -1, 65, 149, 314, 150, 174, 172, 175, - 229, 233, -1, -1, -1, 65, 149, 314, 150, 26, + -1, -1, -1, 65, 149, 322, 150, 174, 172, 175, + 229, 233, -1, -1, -1, 65, 149, 322, 150, 26, 176, 169, 177, 231, 234, 68, 151, -1, -1, -1, - 82, 149, 178, 314, 150, 179, 228, -1, -1, -1, - 81, 180, 172, 82, 149, 181, 314, 150, 151, -1, + 82, 149, 178, 322, 150, 179, 228, -1, -1, -1, + 81, 180, 172, 82, 149, 181, 322, 150, 151, -1, -1, -1, -1, 84, 149, 267, 151, 182, 267, 151, - 183, 267, 150, 184, 219, -1, -1, 91, 149, 314, - 150, 185, 223, -1, 95, 151, -1, 95, 314, 151, - -1, 96, 151, -1, 96, 314, 151, -1, 100, 151, - -1, 100, 270, 151, -1, 100, 318, 151, -1, 106, + 183, 267, 150, 184, 219, -1, -1, 91, 149, 322, + 150, 185, 223, -1, 95, 151, -1, 95, 322, 151, + -1, 96, 151, -1, 96, 322, 151, -1, 100, 151, + -1, 100, 278, 151, -1, 100, 326, 151, -1, 106, 240, 151, -1, 112, 242, 151, -1, 80, 266, 151, - -1, 75, -1, 314, 151, -1, 114, 149, 201, 150, - 151, -1, -1, -1, 86, 149, 318, 90, 186, 218, - 217, 150, 187, 220, -1, -1, -1, 86, 149, 270, - 90, 188, 318, 217, 150, 189, 220, -1, -1, 88, + -1, 75, -1, 322, 151, -1, 114, 149, 201, 150, + 151, -1, -1, -1, 86, 149, 326, 90, 186, 218, + 217, 150, 187, 220, -1, -1, -1, 86, 149, 278, + 90, 188, 326, 217, 150, 189, 220, -1, -1, 88, 190, 149, 222, 150, 221, -1, 151, -1, -1, -1, -1, -1, -1, 101, 191, 152, 169, 153, 102, 149, - 192, 297, 193, 73, 150, 194, 152, 169, 153, 195, - 196, -1, 103, 314, 151, -1, 97, 71, 151, -1, + 192, 305, 193, 73, 150, 194, 152, 169, 153, 195, + 196, -1, 103, 322, 151, -1, 97, 71, 151, -1, 197, -1, -1, 198, -1, 197, 198, -1, -1, -1, - 102, 149, 297, 199, 73, 150, 200, 152, 169, 153, - -1, 202, -1, 201, 8, 202, -1, 318, -1, 206, - -1, 208, -1, -1, 31, -1, -1, 284, 205, 71, + 102, 149, 305, 199, 73, 150, 200, 152, 169, 153, + -1, 202, -1, 201, 8, 202, -1, 326, -1, 206, + -1, 208, -1, -1, 31, -1, -1, 292, 205, 71, 207, 149, 235, 150, 152, 169, 153, -1, -1, 211, 71, 212, 209, 215, 152, 243, 153, -1, -1, 213, 71, 210, 214, 152, 243, 153, -1, 118, -1, 111, - 118, -1, 119, -1, 110, 118, -1, -1, 121, 297, + 118, -1, 119, -1, 110, 118, -1, -1, 121, 305, -1, 120, -1, -1, 121, 216, -1, -1, 122, 216, - -1, 297, -1, 216, 8, 297, -1, -1, 124, 218, - -1, 318, -1, 31, 318, -1, 172, -1, 26, 169, + -1, 305, -1, 216, 8, 305, -1, -1, 124, 218, + -1, 326, -1, 31, 326, -1, 172, -1, 26, 169, 85, 151, -1, 172, -1, 26, 169, 87, 151, -1, - 172, -1, 26, 169, 89, 151, -1, 71, 13, 308, - -1, 222, 8, 71, 13, 308, -1, 152, 224, 153, + 172, -1, 26, 169, 89, 151, -1, 71, 13, 316, + -1, 222, 8, 71, 13, 316, -1, 152, 224, 153, -1, 152, 151, 224, 153, -1, 26, 224, 92, 151, -1, 26, 151, 224, 92, 151, -1, -1, -1, 224, - 93, 314, 227, 225, 169, -1, -1, 224, 94, 227, + 93, 322, 227, 225, 169, -1, -1, 224, 94, 227, 226, 169, -1, 26, -1, 151, -1, 172, -1, 26, - 169, 83, 151, -1, -1, -1, 229, 66, 149, 314, - 150, 230, 172, -1, -1, -1, 231, 66, 149, 314, + 169, 83, 151, -1, -1, -1, 229, 66, 149, 322, + 150, 230, 172, -1, -1, -1, 231, 66, 149, 322, 150, 26, 232, 169, -1, -1, 67, 172, -1, -1, 67, 26, 169, -1, 236, -1, -1, 237, 73, -1, - 237, 31, 73, -1, 237, 31, 73, 13, 308, -1, - 237, 73, 13, 308, -1, 236, 8, 237, 73, -1, + 237, 31, 73, -1, 237, 31, 73, 13, 316, -1, + 237, 73, 13, 316, -1, 236, 8, 237, 73, -1, 236, 8, 237, 31, 73, -1, 236, 8, 237, 31, - 73, 13, 308, -1, 236, 8, 237, 73, 13, 308, - -1, -1, 126, -1, 127, -1, 297, -1, 239, -1, - -1, 270, -1, 318, -1, 31, 316, -1, 239, 8, - 270, -1, 239, 8, 318, -1, 239, 8, 31, 316, + 73, 13, 316, -1, 236, 8, 237, 73, 13, 316, + -1, -1, 126, -1, 127, -1, 305, -1, 239, -1, + -1, 278, -1, 326, -1, 31, 324, -1, 239, 8, + 278, -1, 239, 8, 326, -1, 239, 8, 31, 324, -1, 240, 8, 241, -1, 241, -1, 73, -1, 154, - 315, -1, 154, 152, 314, 153, -1, 242, 8, 73, - -1, 242, 8, 73, 13, 308, -1, 73, -1, 73, - 13, 308, -1, 243, 244, -1, -1, -1, 260, 245, + 323, -1, 154, 152, 322, 153, -1, 242, 8, 73, + -1, 242, 8, 73, 13, 316, -1, 73, -1, 73, + 13, 316, -1, 243, 244, -1, -1, -1, 260, 245, 264, 151, -1, 265, 151, -1, 247, -1, -1, 261, - 284, 205, 71, 246, 149, 235, 150, 259, -1, 104, - 248, 249, -1, 297, -1, 248, 8, 297, -1, 151, + 292, 205, 71, 246, 149, 235, 150, 259, -1, 104, + 248, 249, -1, 305, -1, 248, 8, 305, -1, 151, -1, 152, 250, 153, -1, -1, 251, -1, 252, -1, 251, 252, -1, 253, 151, -1, 257, 151, -1, 256, - 105, 254, -1, 297, -1, 254, 8, 297, -1, 71, - -1, 256, -1, 297, 144, 71, -1, 255, 90, 258, + 105, 254, -1, 305, -1, 254, 8, 305, -1, 71, + -1, 256, -1, 305, 144, 71, -1, 255, 90, 258, 71, -1, 255, 90, 263, -1, -1, 263, -1, 151, -1, 152, 169, 153, -1, 262, -1, 113, -1, -1, 262, -1, 263, -1, 262, 263, -1, 107, -1, 108, -1, 109, -1, 112, -1, 111, -1, 110, -1, 264, - 8, 73, -1, 264, 8, 73, 13, 308, -1, 73, - -1, 73, 13, 308, -1, 265, 8, 71, 13, 308, - -1, 99, 71, 13, 308, -1, 266, 8, 314, -1, - 314, -1, -1, 268, -1, -1, 268, 8, 269, 314, - -1, 314, -1, -1, 125, 149, 271, 343, 150, 13, - 314, -1, 318, 13, 314, -1, 318, 13, 31, 318, - -1, -1, 318, 13, 31, 63, 298, 272, 306, -1, - -1, 63, 298, 273, 306, -1, 62, 314, -1, 318, - 24, 314, -1, 318, 23, 314, -1, 318, 22, 314, - -1, 318, 21, 314, -1, 318, 20, 314, -1, 318, - 19, 314, -1, 318, 18, 314, -1, 318, 17, 314, - -1, 318, 16, 314, -1, 318, 15, 314, -1, 318, - 14, 314, -1, 317, 60, -1, 60, 317, -1, 317, - 59, -1, 59, 317, -1, -1, 314, 27, 274, 314, - -1, -1, 314, 28, 275, 314, -1, -1, 314, 9, - 276, 314, -1, -1, 314, 11, 277, 314, -1, 314, - 10, 314, -1, 314, 29, 314, -1, 314, 31, 314, - -1, 314, 30, 314, -1, 314, 44, 314, -1, 314, - 42, 314, -1, 314, 43, 314, -1, 314, 45, 314, - -1, 314, 46, 314, -1, 314, 47, 314, -1, 314, - 41, 314, -1, 314, 40, 314, -1, 42, 314, -1, - 43, 314, -1, 48, 314, -1, 50, 314, -1, 314, - 33, 314, -1, 314, 32, 314, -1, 314, 35, 314, - -1, 314, 34, 314, -1, 314, 36, 314, -1, 314, - 39, 314, -1, 314, 37, 314, -1, 314, 38, 314, - -1, 314, 49, 298, -1, 149, 314, 150, -1, -1, - -1, 314, 25, 278, 314, 26, 279, 314, -1, -1, - 314, 25, 26, 280, 314, -1, 352, -1, 58, 314, - -1, 57, 314, -1, 56, 314, -1, 55, 314, -1, - 54, 314, -1, 53, 314, -1, 52, 314, -1, 64, - 304, -1, -1, 51, 281, 314, -1, 310, -1, 126, - 149, 346, 150, -1, 61, 346, 155, -1, 156, 305, - 156, -1, 12, 314, -1, -1, 284, 205, 149, 282, - 235, 150, 285, 152, 169, 153, -1, -1, 112, 284, - 205, 149, 283, 235, 150, 285, 152, 169, 153, -1, - 98, -1, -1, 104, 149, 286, 150, -1, 286, 8, - 73, -1, 286, 8, 31, 73, -1, 73, -1, 31, - 73, -1, -1, 162, 149, 288, 238, 150, -1, -1, - 145, 148, 162, 149, 289, 238, 150, -1, -1, 148, - 162, 149, 290, 238, 150, -1, -1, 296, 144, 341, - 149, 291, 238, 150, -1, -1, 296, 144, 328, 149, - 292, 238, 150, -1, -1, 330, 144, 341, 149, 293, - 238, 150, -1, -1, 330, 144, 328, 149, 294, 238, - 150, -1, -1, 328, 149, 295, 238, 150, -1, 112, + 8, 73, -1, 264, 8, 73, 13, 316, -1, 73, + -1, 73, 13, 316, -1, 265, 8, 71, 13, 316, + -1, 99, 71, 13, 316, -1, 266, 8, 322, -1, + 322, -1, -1, 268, -1, -1, 268, 8, 269, 322, + -1, 322, -1, 270, 330, -1, 330, -1, 271, 61, + 345, 155, -1, 61, 345, 155, -1, -1, 271, 273, + 270, -1, 271, -1, 270, -1, -1, -1, 275, 272, + -1, -1, 63, 306, 277, 314, -1, -1, 125, 149, + 279, 351, 150, 13, 322, -1, 326, 13, 322, -1, + 326, 13, 31, 326, -1, -1, 326, 13, 31, 63, + 306, 280, 314, -1, 62, 322, -1, 326, 24, 322, + -1, 326, 23, 322, -1, 326, 22, 322, -1, 326, + 21, 322, -1, 326, 20, 322, -1, 326, 19, 322, + -1, 326, 18, 322, -1, 326, 17, 322, -1, 326, + 16, 322, -1, 326, 15, 322, -1, 326, 14, 322, + -1, 325, 60, -1, 60, 325, -1, 325, 59, -1, + 59, 325, -1, -1, 322, 27, 281, 322, -1, -1, + 322, 28, 282, 322, -1, -1, 322, 9, 283, 322, + -1, -1, 322, 11, 284, 322, -1, 322, 10, 322, + -1, 322, 29, 322, -1, 322, 31, 322, -1, 322, + 30, 322, -1, 322, 44, 322, -1, 322, 42, 322, + -1, 322, 43, 322, -1, 322, 45, 322, -1, 322, + 46, 322, -1, 322, 47, 322, -1, 322, 41, 322, + -1, 322, 40, 322, -1, 42, 322, -1, 43, 322, + -1, 48, 322, -1, 50, 322, -1, 322, 33, 322, + -1, 322, 32, 322, -1, 322, 35, 322, -1, 322, + 34, 322, -1, 322, 36, 322, -1, 322, 39, 322, + -1, 322, 37, 322, -1, 322, 38, 322, -1, 322, + 49, 306, -1, 149, 322, 150, -1, 276, -1, -1, + 149, 276, 150, 285, 274, -1, -1, -1, 322, 25, + 286, 322, 26, 287, 322, -1, -1, 322, 25, 26, + 288, 322, -1, 360, -1, 58, 322, -1, 57, 322, + -1, 56, 322, -1, 55, 322, -1, 54, 322, -1, + 53, 322, -1, 52, 322, -1, 64, 312, -1, -1, + 51, 289, 322, -1, 318, -1, 126, 149, 354, 150, + -1, 61, 354, 155, -1, 156, 313, 156, -1, 12, + 322, -1, -1, 292, 205, 149, 290, 235, 150, 293, + 152, 169, 153, -1, -1, 112, 292, 205, 149, 291, + 235, 150, 293, 152, 169, 153, -1, 98, -1, -1, + 104, 149, 294, 150, -1, 294, 8, 73, -1, 294, + 8, 31, 73, -1, 73, -1, 31, 73, -1, -1, + 162, 149, 296, 238, 150, -1, -1, 145, 148, 162, + 149, 297, 238, 150, -1, -1, 148, 162, 149, 298, + 238, 150, -1, -1, 304, 144, 349, 149, 299, 238, + 150, -1, -1, 304, 144, 336, 149, 300, 238, 150, + -1, -1, 338, 144, 349, 149, 301, 238, 150, -1, + -1, 338, 144, 336, 149, 302, 238, 150, -1, -1, + 336, 149, 303, 238, 150, -1, 112, -1, 162, -1, + 145, 148, 162, -1, 148, 162, -1, 162, -1, 145, + 148, 162, -1, 148, 162, -1, 304, -1, 307, -1, + -1, -1, 342, 123, 308, 346, 309, 310, -1, 342, + -1, 310, 311, -1, -1, 123, 346, -1, -1, 149, + 150, -1, 149, 322, 150, -1, -1, 78, -1, 356, + -1, -1, 149, 238, 150, -1, 69, -1, 70, -1, + 79, -1, 132, -1, 133, -1, 147, -1, 128, -1, + 129, -1, 130, -1, 131, -1, 146, -1, 140, 78, + 141, -1, 140, 141, -1, 315, -1, 162, -1, 145, + 148, 162, -1, 148, 162, -1, 42, 316, -1, 43, + 316, -1, 126, 149, 319, 150, -1, 61, 319, 155, + -1, 317, -1, 304, 144, 71, -1, 72, -1, 363, -1, 162, -1, 145, 148, 162, -1, 148, 162, -1, - 162, -1, 145, 148, 162, -1, 148, 162, -1, 296, - -1, 299, -1, -1, -1, 334, 123, 300, 338, 301, - 302, -1, 334, -1, 302, 303, -1, -1, 123, 338, - -1, -1, 149, 150, -1, 149, 314, 150, -1, -1, - 78, -1, 348, -1, -1, 149, 238, 150, -1, 69, - -1, 70, -1, 79, -1, 132, -1, 133, -1, 147, - -1, 128, -1, 129, -1, 130, -1, 131, -1, 146, - -1, 140, 78, 141, -1, 140, 141, -1, 307, -1, - 162, -1, 145, 148, 162, -1, 148, 162, -1, 42, - 308, -1, 43, 308, -1, 126, 149, 311, 150, -1, - 61, 311, 155, -1, 309, -1, 296, 144, 71, -1, - 72, -1, 355, -1, 162, -1, 145, 148, 162, -1, - 148, 162, -1, 307, -1, 157, 348, 157, -1, 140, - 348, 141, -1, -1, 313, 312, -1, -1, 8, -1, - 313, 8, 308, 124, 308, -1, 313, 8, 308, -1, - 308, 124, 308, -1, 308, -1, 315, -1, 270, -1, - 318, -1, 318, -1, 318, -1, -1, -1, 333, 123, - 319, 338, 320, 327, 321, -1, 333, -1, 321, 322, - -1, -1, -1, 123, 338, 323, 327, -1, 324, 61, - 337, 155, -1, 325, 61, 337, 155, -1, -1, 149, - 326, 238, 150, -1, 325, -1, 324, -1, -1, 335, - -1, 342, 335, -1, 296, 144, 328, -1, 330, 144, - 328, -1, 335, -1, 331, 61, 337, 155, -1, -1, - 287, 332, 61, 337, 155, -1, 334, -1, 331, -1, - 287, -1, 335, -1, 342, 335, -1, 329, -1, 335, - 61, 337, 155, -1, 335, 152, 314, 153, -1, 336, - -1, 73, -1, 154, 152, 314, 153, -1, -1, 314, - -1, 340, -1, -1, 328, 339, -1, 340, 61, 337, - 155, -1, 340, 152, 314, 153, -1, 341, -1, 71, - -1, 152, 314, 153, -1, 154, -1, 342, 154, -1, - 343, 8, 344, -1, 344, -1, 318, -1, -1, 125, - 149, 345, 343, 150, -1, -1, -1, 347, 312, -1, - 347, 8, 314, 124, 314, -1, 347, 8, 314, -1, - 314, 124, 314, -1, 314, -1, 347, 8, 314, 124, - 31, 316, -1, 347, 8, 31, 316, -1, 314, 124, - 31, 316, -1, 31, 316, -1, 348, 349, -1, 348, - 78, -1, 349, -1, 78, 349, -1, 73, -1, -1, - 73, 61, 350, 351, 155, -1, 73, 123, 71, -1, - 142, 314, 153, -1, 142, 72, 61, 314, 155, 153, - -1, 143, 318, 153, -1, 71, -1, 74, -1, 73, - -1, 115, 149, 353, 150, -1, 116, 149, 318, 150, - -1, 7, 314, -1, 6, 314, -1, 5, 149, 314, - 150, -1, 4, 314, -1, 3, 314, -1, 318, -1, - -1, 353, 8, 354, 318, -1, 296, 144, 71, -1, - 330, 144, 71, -1 + 315, -1, 157, 356, 157, -1, 140, 356, 141, -1, + -1, 321, 320, -1, -1, 8, -1, 321, 8, 316, + 124, 316, -1, 321, 8, 316, -1, 316, 124, 316, + -1, 316, -1, 323, -1, 278, -1, 326, -1, 326, + -1, 326, -1, -1, -1, 341, 123, 327, 346, 328, + 335, 329, -1, 341, -1, 329, 330, -1, -1, -1, + 123, 346, 331, 335, -1, 332, 61, 345, 155, -1, + 333, 61, 345, 155, -1, -1, 149, 334, 238, 150, + -1, 333, -1, 332, -1, -1, 343, -1, 350, 343, + -1, 304, 144, 336, -1, 338, 144, 336, -1, 343, + -1, 339, 61, 345, 155, -1, -1, 295, 340, 61, + 345, 155, -1, 342, -1, 339, -1, 295, -1, 343, + -1, 350, 343, -1, 337, -1, 343, 61, 345, 155, + -1, 343, 152, 322, 153, -1, 344, -1, 73, -1, + 154, 152, 322, 153, -1, -1, 322, -1, 348, -1, + -1, 336, 347, -1, 348, 61, 345, 155, -1, 348, + 152, 322, 153, -1, 349, -1, 71, -1, 152, 322, + 153, -1, 154, -1, 350, 154, -1, 351, 8, 352, + -1, 352, -1, 326, -1, -1, 125, 149, 353, 351, + 150, -1, -1, -1, 355, 320, -1, 355, 8, 322, + 124, 322, -1, 355, 8, 322, -1, 322, 124, 322, + -1, 322, -1, 355, 8, 322, 124, 31, 324, -1, + 355, 8, 31, 324, -1, 322, 124, 31, 324, -1, + 31, 324, -1, 356, 357, -1, 356, 78, -1, 357, + -1, 78, 357, -1, 73, -1, -1, 73, 61, 358, + 359, 155, -1, 73, 123, 71, -1, 142, 322, 153, + -1, 142, 72, 61, 322, 155, 153, -1, 143, 326, + 153, -1, 71, -1, 74, -1, 73, -1, 115, 149, + 361, 150, -1, 116, 149, 326, 150, -1, 7, 322, + -1, 6, 322, -1, 5, 149, 322, 150, -1, 4, + 322, -1, 3, 322, -1, 326, -1, -1, 361, 8, + 362, 326, -1, 304, 144, 71, -1, 338, 144, 71, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -952,33 +957,34 @@ static const yytype_uint16 yyrline[] = 632, 636, 637, 641, 642, 646, 647, 651, 652, 656, 657, 661, 662, 663, 664, 665, 666, 670, 671, 672, 673, 677, 678, 682, 683, 688, 689, 693, 693, 694, - 698, 698, 699, 700, 701, 701, 702, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 719, 720, 720, 721, 721, - 722, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, - 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, - 749, 752, 752, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 763, 763, 764, 765, 766, 767, 768, 769, - 769, 771, 771, 776, 779, 781, 785, 786, 787, 788, - 792, 792, 795, 795, 798, 798, 801, 801, 804, 804, - 807, 807, 810, 810, 813, 813, 819, 820, 821, 822, - 826, 827, 828, 834, 835, 840, 841, 840, 843, 848, - 849, 854, 858, 859, 860, 864, 865, 866, 871, 872, - 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 894, 895, 896, 897, 898, 899, 900, - 901, 902, 906, 910, 911, 912, 913, 914, 915, 916, - 917, 922, 923, 926, 928, 932, 933, 934, 935, 939, - 940, 945, 950, 955, 960, 961, 960, 963, 967, 968, - 973, 973, 977, 978, 982, 982, 988, 989, 990, 994, - 995, 999, 1000, 1005, 1009, 1010, 1010, 1015, 1016, 1017, - 1022, 1023, 1024, 1028, 1029, 1030, 1035, 1036, 1040, 1041, - 1046, 1047, 1047, 1051, 1052, 1053, 1057, 1058, 1062, 1063, - 1067, 1068, 1073, 1074, 1074, 1075, 1080, 1081, 1085, 1086, - 1087, 1088, 1089, 1090, 1091, 1092, 1096, 1097, 1098, 1099, - 1105, 1106, 1106, 1107, 1108, 1109, 1110, 1115, 1116, 1117, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1132, 1133, 1133, - 1137, 1138 + 698, 699, 703, 704, 708, 708, 709, 710, 714, 715, + 715, 720, 720, 724, 724, 725, 726, 727, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 744, 745, 745, 746, + 746, 747, 747, 748, 749, 750, 751, 752, 753, 754, + 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 775, 776, 777, 776, 779, 779, 781, 782, 783, + 784, 785, 786, 787, 788, 789, 790, 790, 791, 792, + 793, 794, 795, 796, 796, 798, 798, 803, 806, 808, + 812, 813, 814, 815, 819, 819, 822, 822, 825, 825, + 828, 828, 831, 831, 834, 834, 837, 837, 840, 840, + 846, 847, 848, 849, 853, 854, 855, 861, 862, 867, + 868, 867, 870, 875, 876, 881, 885, 886, 887, 891, + 892, 893, 898, 899, 904, 905, 906, 907, 908, 909, + 910, 911, 912, 913, 914, 915, 916, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 933, 937, 938, 939, + 940, 941, 942, 943, 944, 949, 950, 953, 955, 959, + 960, 961, 962, 966, 967, 972, 977, 982, 987, 988, + 987, 990, 994, 995, 1000, 1000, 1004, 1005, 1009, 1009, + 1015, 1016, 1017, 1021, 1022, 1026, 1027, 1032, 1036, 1037, + 1037, 1042, 1043, 1044, 1049, 1050, 1051, 1055, 1056, 1057, + 1062, 1063, 1067, 1068, 1073, 1074, 1074, 1078, 1079, 1080, + 1084, 1085, 1089, 1090, 1094, 1095, 1100, 1101, 1101, 1102, + 1107, 1108, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, + 1123, 1124, 1125, 1126, 1132, 1133, 1133, 1134, 1135, 1136, + 1137, 1142, 1143, 1144, 1149, 1150, 1151, 1152, 1153, 1154, + 1155, 1159, 1160, 1160, 1164, 1165 }; #endif @@ -1078,28 +1084,31 @@ static const char *const yytname[] = "method_modifiers", "non_empty_member_modifiers", "member_modifier", "class_variable_declaration", "class_constant_declaration", "echo_expr_list", "for_expr", "non_empty_for_expr", "@38", - "expr_without_variable", "@39", "@40", "@41", "@42", "@43", "@44", "@45", - "@46", "@47", "@48", "@49", "@50", "@51", "function", "lexical_vars", - "lexical_var_list", "function_call", "@52", "@53", "@54", "@55", "@56", - "@57", "@58", "@59", "class_name", "fully_qualified_class_name", - "class_name_reference", "dynamic_class_name_reference", "@60", "@61", + "chaining_method_or_property", "chaining_dereference", + "chaining_instance_call", "@39", "instance_call", "@40", "new_expr", + "@41", "expr_without_variable", "@42", "@43", "@44", "@45", "@46", "@47", + "@48", "@49", "@50", "@51", "@52", "@53", "@54", "function", + "lexical_vars", "lexical_var_list", "function_call", "@55", "@56", "@57", + "@58", "@59", "@60", "@61", "@62", "class_name", + "fully_qualified_class_name", "class_name_reference", + "dynamic_class_name_reference", "@63", "@64", "dynamic_class_name_variable_properties", "dynamic_class_name_variable_property", "exit_expr", "backticks_expr", "ctor_arguments", "common_scalar", "static_scalar", "static_class_constant", "scalar", "static_array_pair_list", "possible_comma", "non_empty_static_array_pair_list", "expr", - "r_variable", "w_variable", "rw_variable", "variable", "@62", "@63", - "variable_properties", "variable_property", "@64", - "array_method_dereference", "method", "@65", "method_or_not", + "r_variable", "w_variable", "rw_variable", "variable", "@65", "@66", + "variable_properties", "variable_property", "@67", + "array_method_dereference", "method", "@68", "method_or_not", "variable_without_objects", "static_member", "variable_class_name", - "array_function_dereference", "@66", "base_variable_with_function_calls", + "array_function_dereference", "@69", "base_variable_with_function_calls", "base_variable", "reference_variable", "compound_variable", "dim_offset", - "object_property", "@67", "object_dim_list", "variable_name", + "object_property", "@70", "object_dim_list", "variable_name", "simple_indirect_reference", "assignment_list", - "assignment_list_element", "@68", "array_pair_list", - "non_empty_array_pair_list", "encaps_list", "encaps_var", "@69", + "assignment_list_element", "@71", "array_pair_list", + "non_empty_array_pair_list", "encaps_list", "encaps_var", "@72", "encaps_var_offset", "internal_functions_in_yacc", "isset_variables", - "@70", "class_constant", 0 + "@73", "class_constant", 0 }; #endif @@ -1154,33 +1163,34 @@ static const yytype_uint16 yyr1[] = 257, 258, 258, 259, 259, 260, 260, 261, 261, 262, 262, 263, 263, 263, 263, 263, 263, 264, 264, 264, 264, 265, 265, 266, 266, 267, 267, 269, 268, 268, - 271, 270, 270, 270, 272, 270, 273, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 274, 270, 275, 270, 276, 270, - 277, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 278, 279, - 270, 280, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 281, 270, 270, 270, 270, 270, 270, 282, - 270, 283, 270, 284, 285, 285, 286, 286, 286, 286, - 288, 287, 289, 287, 290, 287, 291, 287, 292, 287, - 293, 287, 294, 287, 295, 287, 296, 296, 296, 296, - 297, 297, 297, 298, 298, 300, 301, 299, 299, 302, - 302, 303, 304, 304, 304, 305, 305, 305, 306, 306, - 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 307, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 309, 310, 310, 310, 310, 310, 310, 310, - 310, 311, 311, 312, 312, 313, 313, 313, 313, 314, - 314, 315, 316, 317, 319, 320, 318, 318, 321, 321, - 323, 322, 324, 324, 326, 325, 327, 327, 327, 328, - 328, 329, 329, 330, 331, 332, 331, 333, 333, 333, - 334, 334, 334, 335, 335, 335, 336, 336, 337, 337, - 338, 339, 338, 340, 340, 340, 341, 341, 342, 342, - 343, 343, 344, 345, 344, 344, 346, 346, 347, 347, - 347, 347, 347, 347, 347, 347, 348, 348, 348, 348, - 349, 350, 349, 349, 349, 349, 349, 351, 351, 351, - 352, 352, 352, 352, 352, 352, 352, 353, 354, 353, - 355, 355 + 270, 270, 271, 271, 273, 272, 272, 272, 274, 275, + 274, 277, 276, 279, 278, 278, 278, 280, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 281, 278, 282, 278, 283, + 278, 284, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 285, 278, 286, 287, 278, 288, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 289, 278, 278, 278, + 278, 278, 278, 290, 278, 291, 278, 292, 293, 293, + 294, 294, 294, 294, 296, 295, 297, 295, 298, 295, + 299, 295, 300, 295, 301, 295, 302, 295, 303, 295, + 304, 304, 304, 304, 305, 305, 305, 306, 306, 308, + 309, 307, 307, 310, 310, 311, 312, 312, 312, 313, + 313, 313, 314, 314, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 317, 318, 318, 318, + 318, 318, 318, 318, 318, 319, 319, 320, 320, 321, + 321, 321, 321, 322, 322, 323, 324, 325, 327, 328, + 326, 326, 329, 329, 331, 330, 332, 332, 334, 333, + 335, 335, 335, 336, 336, 337, 337, 338, 339, 340, + 339, 341, 341, 341, 342, 342, 342, 343, 343, 343, + 344, 344, 345, 345, 346, 347, 346, 348, 348, 348, + 349, 349, 350, 350, 351, 351, 352, 353, 352, 352, + 354, 354, 355, 355, 355, 355, 355, 355, 355, 355, + 356, 356, 356, 356, 357, 358, 357, 357, 357, 357, + 357, 359, 359, 359, 360, 360, 360, 360, 360, 360, + 360, 361, 362, 361, 363, 363 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1210,33 +1220,34 @@ static const yytype_uint8 yyr2[] = 3, 0, 1, 1, 3, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 5, 1, 3, 5, 4, 3, 1, 0, 1, 0, 4, 1, - 0, 7, 3, 4, 0, 7, 0, 4, 2, 3, + 2, 1, 4, 3, 0, 3, 1, 1, 0, 0, + 2, 0, 4, 0, 7, 3, 4, 0, 7, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 2, 2, 2, 0, 4, 0, 4, 0, 4, - 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, - 7, 0, 5, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 3, 1, 4, 3, 3, 2, 0, - 10, 0, 11, 1, 0, 4, 3, 4, 1, 2, - 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, - 0, 7, 0, 7, 0, 5, 1, 1, 3, 2, - 1, 3, 2, 1, 1, 0, 0, 6, 1, 2, - 0, 2, 0, 2, 3, 0, 1, 1, 0, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 1, 3, 2, 2, 2, 4, - 3, 1, 3, 1, 1, 1, 3, 2, 1, 3, - 3, 0, 2, 0, 1, 5, 3, 3, 1, 1, - 1, 1, 1, 1, 0, 0, 7, 1, 2, 0, - 0, 4, 4, 4, 0, 4, 1, 1, 0, 1, - 2, 3, 3, 1, 4, 0, 5, 1, 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, 1, 2, - 1, 0, 5, 3, 3, 6, 3, 1, 1, 1, - 4, 4, 2, 2, 4, 2, 2, 1, 0, 4, - 3, 3 + 3, 2, 2, 2, 2, 0, 4, 0, 4, 0, + 4, 0, 4, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 0, 5, 0, 0, 7, 0, 5, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 3, 1, 4, + 3, 3, 2, 0, 10, 0, 11, 1, 0, 4, + 3, 4, 1, 2, 0, 5, 0, 7, 0, 6, + 0, 7, 0, 7, 0, 7, 0, 7, 0, 5, + 1, 1, 3, 2, 1, 3, 2, 1, 1, 0, + 0, 6, 1, 2, 0, 2, 0, 2, 3, 0, + 1, 1, 0, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 1, 1, 3, + 2, 2, 2, 4, 3, 1, 3, 1, 1, 1, + 3, 2, 1, 3, 3, 0, 2, 0, 1, 5, + 3, 3, 1, 1, 1, 1, 1, 1, 0, 0, + 7, 1, 2, 0, 0, 4, 4, 4, 0, 4, + 1, 1, 0, 1, 2, 3, 3, 1, 4, 0, + 5, 1, 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, 1, 2, 1, 0, 5, 3, 3, 6, + 3, 1, 1, 1, 4, 4, 2, 2, 4, 2, + 2, 1, 0, 4, 3, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1245,507 +1256,500 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 5, 0, 3, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 466, 0, 0, 362, 0, - 370, 371, 6, 393, 446, 65, 372, 0, 46, 0, - 0, 0, 74, 0, 0, 0, 0, 323, 0, 0, - 77, 0, 0, 0, 0, 0, 346, 0, 0, 0, - 0, 105, 107, 111, 0, 0, 376, 377, 378, 379, - 373, 374, 0, 0, 380, 375, 0, 0, 76, 29, - 458, 365, 0, 395, 4, 0, 8, 34, 9, 10, - 95, 96, 0, 0, 410, 97, 439, 0, 398, 314, - 0, 409, 0, 411, 0, 442, 0, 438, 417, 437, - 440, 445, 0, 303, 394, 6, 346, 0, 97, 496, - 495, 0, 493, 492, 318, 284, 285, 286, 287, 0, - 310, 309, 308, 307, 306, 305, 304, 346, 0, 0, - 347, 0, 263, 413, 0, 261, 0, 471, 0, 403, - 248, 0, 0, 347, 353, 246, 354, 0, 358, 440, - 0, 0, 311, 0, 35, 0, 234, 0, 43, 235, - 0, 0, 0, 55, 0, 57, 0, 0, 0, 59, - 410, 0, 411, 0, 0, 0, 21, 0, 20, 177, - 0, 0, 176, 108, 106, 182, 0, 97, 0, 0, - 0, 0, 240, 466, 480, 0, 382, 0, 0, 0, - 478, 0, 15, 0, 397, 0, 27, 0, 366, 0, - 367, 0, 0, 0, 330, 0, 18, 109, 103, 98, - 0, 0, 0, 268, 0, 270, 298, 264, 266, 0, + 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 480, 0, 0, 376, 0, + 384, 385, 6, 407, 460, 65, 386, 0, 46, 0, + 0, 0, 74, 0, 0, 0, 0, 337, 0, 0, + 77, 0, 0, 0, 0, 0, 360, 0, 0, 0, + 0, 105, 107, 111, 0, 0, 390, 391, 392, 393, + 387, 388, 0, 0, 394, 389, 0, 0, 76, 29, + 472, 379, 0, 409, 4, 0, 8, 34, 9, 10, + 95, 96, 0, 0, 309, 424, 97, 453, 0, 412, + 328, 0, 423, 0, 425, 0, 456, 0, 452, 431, + 451, 454, 459, 0, 317, 408, 6, 360, 0, 97, + 510, 509, 0, 507, 506, 332, 295, 296, 297, 298, + 0, 324, 323, 322, 321, 320, 319, 318, 360, 0, + 0, 361, 0, 274, 427, 0, 272, 0, 485, 0, + 417, 259, 0, 0, 361, 367, 251, 368, 0, 372, + 454, 0, 0, 325, 0, 35, 0, 234, 0, 43, + 235, 0, 0, 0, 55, 0, 57, 0, 0, 0, + 59, 424, 0, 425, 0, 0, 0, 21, 0, 20, + 177, 0, 0, 176, 108, 106, 182, 0, 97, 0, + 0, 0, 0, 253, 480, 494, 0, 396, 0, 0, + 0, 492, 0, 15, 0, 411, 309, 0, 27, 0, + 380, 0, 381, 0, 0, 0, 344, 0, 18, 109, + 103, 98, 0, 0, 0, 279, 0, 281, 312, 275, + 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 262, 260, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 344, 0, 448, 414, 448, 0, - 459, 441, 0, 0, 313, 0, 349, 0, 0, 475, - 412, 0, 316, 404, 467, 0, 349, 0, 368, 0, - 355, 441, 363, 0, 0, 0, 64, 0, 0, 0, - 236, 239, 410, 411, 0, 0, 56, 58, 84, 0, - 60, 61, 29, 83, 23, 0, 0, 17, 0, 178, - 411, 0, 62, 0, 0, 63, 0, 0, 92, 94, - 497, 0, 0, 0, 465, 0, 481, 0, 381, 479, - 393, 0, 0, 477, 400, 476, 396, 5, 12, 13, - 334, 297, 36, 0, 0, 317, 399, 7, 168, 0, - 0, 101, 112, 99, 319, 448, 500, 0, 431, 429, - 0, 0, 0, 272, 0, 301, 0, 0, 0, 273, - 275, 274, 289, 288, 291, 290, 292, 294, 295, 293, - 283, 282, 277, 278, 276, 279, 280, 281, 296, 0, - 242, 259, 258, 257, 256, 255, 254, 253, 252, 251, - 250, 249, 168, 501, 432, 0, 449, 0, 0, 0, - 0, 494, 348, 456, 0, 470, 0, 469, 348, 431, - 168, 247, 432, 0, 364, 37, 233, 0, 0, 49, - 237, 71, 68, 0, 0, 53, 0, 0, 401, 0, - 0, 0, 0, 384, 0, 383, 26, 391, 27, 0, - 22, 19, 0, 175, 183, 180, 321, 0, 0, 498, - 490, 491, 11, 0, 462, 0, 461, 315, 0, 483, - 0, 484, 486, 332, 3, 5, 168, 0, 28, 30, - 31, 32, 447, 0, 0, 167, 410, 411, 0, 0, - 0, 350, 110, 114, 0, 0, 0, 163, 0, 0, - 338, 336, 430, 269, 271, 0, 0, 265, 267, 0, - 243, 0, 342, 340, 434, 451, 415, 450, 455, 443, - 444, 474, 473, 0, 0, 356, 40, 0, 47, 44, - 235, 0, 0, 0, 0, 0, 0, 0, 387, 388, - 408, 0, 403, 401, 0, 0, 386, 0, 0, 24, - 179, 0, 163, 93, 67, 0, 463, 465, 0, 487, - 489, 488, 0, 0, 168, 16, 3, 0, 0, 171, - 331, 0, 25, 0, 352, 0, 0, 113, 116, 185, - 163, 164, 165, 0, 153, 0, 166, 436, 457, 168, - 168, 302, 299, 244, 345, 168, 168, 452, 428, 448, - 0, 0, 468, 369, 360, 29, 38, 0, 0, 0, - 238, 118, 0, 118, 120, 128, 0, 29, 126, 75, - 134, 134, 54, 0, 390, 404, 402, 0, 385, 392, - 0, 181, 0, 499, 465, 460, 0, 482, 0, 0, - 14, 335, 0, 0, 410, 411, 351, 115, 185, 0, - 217, 0, 324, 163, 0, 155, 0, 0, 0, 368, - 0, 0, 424, 427, 426, 419, 0, 0, 472, 357, - 27, 143, 0, 29, 141, 45, 50, 0, 0, 121, - 0, 0, 27, 134, 0, 134, 0, 407, 406, 389, - 78, 324, 0, 241, 485, 333, 33, 174, 217, 117, - 0, 0, 221, 222, 223, 226, 225, 224, 216, 104, - 184, 189, 186, 0, 215, 219, 0, 0, 0, 0, - 0, 156, 0, 339, 337, 300, 245, 343, 341, 168, - 448, 448, 416, 453, 454, 0, 359, 146, 149, 0, - 27, 235, 119, 72, 69, 129, 0, 0, 0, 0, - 0, 0, 130, 0, 0, 0, 464, 102, 0, 0, - 193, 0, 97, 220, 0, 188, 29, 0, 29, 0, - 159, 0, 158, 0, 0, 0, 0, 418, 361, 151, + 0, 66, 273, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 358, 0, 462, 428, + 462, 0, 473, 455, 0, 0, 327, 0, 363, 0, + 0, 489, 426, 0, 330, 418, 481, 0, 363, 0, + 382, 0, 369, 455, 377, 0, 0, 0, 64, 0, + 0, 0, 236, 239, 424, 425, 0, 0, 56, 58, + 84, 0, 60, 61, 29, 83, 23, 0, 0, 17, + 0, 178, 425, 0, 62, 0, 0, 63, 0, 0, + 92, 94, 511, 0, 0, 0, 479, 0, 495, 0, + 395, 493, 407, 0, 0, 491, 414, 490, 410, 5, + 12, 13, 348, 310, 308, 36, 0, 0, 331, 413, + 7, 168, 0, 0, 101, 112, 99, 333, 462, 514, + 0, 445, 443, 0, 0, 0, 283, 0, 315, 0, + 0, 0, 284, 286, 285, 300, 299, 302, 301, 303, + 305, 306, 304, 294, 293, 288, 289, 287, 290, 291, + 292, 307, 0, 255, 270, 269, 268, 267, 266, 265, + 264, 263, 262, 261, 260, 168, 515, 446, 0, 463, + 0, 0, 0, 0, 508, 362, 470, 0, 484, 0, + 483, 362, 445, 168, 252, 446, 0, 378, 37, 233, + 0, 0, 49, 237, 71, 68, 0, 0, 53, 0, + 0, 415, 0, 0, 0, 0, 398, 0, 397, 26, + 405, 27, 0, 22, 19, 0, 175, 183, 180, 335, + 0, 0, 512, 504, 505, 11, 0, 476, 0, 475, + 329, 0, 497, 0, 498, 500, 346, 3, 5, 168, + 248, 0, 28, 30, 31, 32, 461, 0, 0, 167, + 424, 425, 0, 0, 0, 364, 110, 114, 0, 0, + 0, 163, 0, 0, 352, 350, 444, 280, 282, 0, + 0, 276, 278, 0, 256, 0, 356, 354, 448, 465, + 429, 464, 469, 457, 458, 488, 487, 0, 0, 370, + 40, 0, 47, 44, 235, 0, 0, 0, 0, 0, + 0, 0, 401, 402, 422, 0, 417, 415, 0, 0, + 400, 0, 0, 24, 179, 0, 163, 93, 67, 0, + 477, 479, 0, 501, 503, 502, 0, 0, 168, 16, + 3, 0, 311, 0, 0, 171, 345, 0, 25, 0, + 366, 0, 0, 113, 116, 185, 163, 164, 165, 0, + 153, 0, 166, 450, 471, 168, 168, 316, 313, 257, + 359, 168, 168, 466, 442, 462, 0, 0, 482, 383, + 374, 29, 38, 0, 0, 0, 238, 118, 0, 118, + 120, 128, 0, 29, 126, 75, 134, 134, 54, 0, + 404, 418, 416, 0, 399, 406, 0, 181, 0, 513, + 479, 474, 0, 496, 0, 0, 14, 349, 462, 0, + 247, 246, 250, 241, 0, 0, 424, 425, 365, 115, + 185, 0, 217, 0, 338, 163, 0, 155, 0, 0, + 0, 382, 0, 0, 438, 441, 440, 433, 0, 0, + 486, 371, 27, 143, 0, 29, 141, 45, 50, 0, + 0, 121, 0, 0, 27, 134, 0, 134, 0, 421, + 420, 403, 78, 338, 0, 254, 499, 347, 0, 434, + 240, 462, 0, 33, 174, 217, 117, 0, 0, 221, + 222, 223, 226, 225, 224, 216, 104, 184, 189, 186, + 0, 215, 219, 0, 0, 0, 0, 0, 156, 0, + 353, 351, 314, 258, 357, 355, 168, 462, 462, 430, + 467, 468, 0, 373, 146, 149, 0, 27, 235, 119, + 72, 69, 129, 0, 0, 0, 0, 0, 0, 130, + 0, 0, 0, 478, 243, 442, 0, 245, 102, 0, + 0, 193, 0, 97, 220, 0, 188, 29, 0, 29, + 0, 159, 0, 158, 0, 0, 0, 432, 375, 151, 0, 0, 39, 48, 0, 0, 0, 0, 127, 0, - 132, 0, 139, 140, 137, 131, 405, 79, 29, 0, - 0, 195, 197, 192, 229, 0, 0, 0, 27, 0, - 328, 0, 27, 160, 0, 157, 425, 422, 423, 420, - 0, 0, 0, 0, 150, 142, 51, 29, 124, 73, - 70, 133, 135, 29, 0, 27, 232, 194, 6, 0, - 198, 199, 0, 0, 207, 0, 0, 0, 0, 187, - 190, 0, 100, 329, 0, 325, 320, 0, 162, 428, - 0, 29, 0, 0, 0, 27, 29, 27, 0, 322, + 132, 0, 139, 140, 137, 131, 419, 79, 29, 435, + 242, 0, 0, 195, 197, 192, 229, 0, 0, 0, + 27, 0, 342, 0, 27, 160, 0, 157, 439, 436, + 437, 0, 0, 0, 0, 150, 142, 51, 29, 124, + 73, 70, 133, 135, 29, 0, 27, 232, 194, 6, + 0, 198, 199, 0, 0, 207, 0, 0, 0, 0, + 187, 190, 0, 100, 343, 0, 339, 334, 0, 162, + 0, 29, 0, 0, 0, 27, 29, 27, 0, 336, 196, 200, 201, 211, 0, 202, 0, 230, 227, 0, - 231, 0, 326, 161, 421, 0, 27, 42, 144, 29, - 122, 52, 0, 27, 80, 0, 210, 203, 204, 208, - 0, 163, 327, 0, 0, 27, 125, 0, 209, 0, - 228, 0, 147, 145, 0, 29, 205, 0, 29, 123, - 27, 213, 29, 191, 27, 81, 27, 86, 214, 0, - 82, 85, 87, 0, 88, 89, 0, 0, 90, 0, - 29, 27, 91 + 231, 0, 340, 161, 0, 27, 42, 144, 29, 122, + 52, 0, 27, 80, 0, 210, 203, 204, 208, 0, + 163, 341, 0, 0, 27, 125, 0, 209, 0, 228, + 0, 147, 145, 0, 29, 205, 0, 29, 123, 27, + 213, 29, 191, 27, 81, 27, 86, 214, 0, 82, + 85, 87, 0, 88, 89, 0, 0, 90, 0, 29, + 27, 91 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 4, 83, 84, 495, 357, 187, 188, - 85, 216, 363, 498, 848, 87, 547, 691, 625, 757, - 308, 628, 167, 627, 550, 761, 884, 557, 553, 807, - 552, 806, 171, 183, 774, 854, 927, 947, 950, 951, - 952, 956, 959, 337, 338, 88, 89, 230, 90, 516, - 91, 513, 372, 92, 371, 93, 515, 596, 597, 698, - 633, 911, 849, 639, 454, 642, 704, 886, 853, 814, - 695, 758, 924, 799, 938, 802, 842, 603, 604, 605, - 504, 505, 191, 192, 196, 670, 730, 781, 899, 731, - 779, 823, 859, 860, 861, 862, 917, 863, 864, 865, - 915, 943, 732, 733, 734, 735, 825, 736, 165, 309, - 310, 551, 94, 344, 679, 298, 387, 388, 382, 384, - 386, 678, 525, 129, 517, 572, 118, 739, 831, 96, - 368, 584, 496, 610, 609, 616, 615, 422, 97, 606, - 155, 156, 443, 624, 689, 756, 162, 219, 441, 98, - 560, 467, 99, 561, 294, 562, 181, 101, 289, 102, - 103, 428, 618, 752, 797, 879, 683, 684, 749, 685, - 104, 105, 106, 107, 231, 108, 109, 110, 111, 427, - 536, 617, 537, 538, 112, 485, 486, 654, 148, 149, - 209, 210, 488, 582, 113, 341, 575, 114 + -1, 1, 2, 4, 83, 84, 498, 359, 188, 189, + 85, 218, 366, 502, 869, 87, 551, 703, 631, 774, + 310, 634, 168, 633, 554, 778, 904, 561, 557, 827, + 556, 826, 172, 184, 791, 875, 946, 966, 969, 970, + 971, 975, 978, 339, 340, 88, 89, 232, 90, 520, + 91, 517, 375, 92, 374, 93, 519, 602, 603, 710, + 639, 930, 870, 645, 457, 648, 716, 906, 874, 834, + 707, 775, 943, 819, 957, 822, 863, 609, 610, 611, + 508, 509, 192, 193, 197, 682, 747, 802, 919, 748, + 800, 845, 880, 881, 882, 883, 936, 884, 885, 886, + 934, 962, 749, 750, 751, 752, 847, 753, 166, 311, + 312, 555, 670, 671, 672, 732, 592, 593, 94, 300, + 95, 346, 691, 390, 391, 385, 387, 500, 389, 690, + 529, 130, 521, 576, 119, 756, 853, 97, 371, 588, + 499, 616, 615, 622, 621, 425, 98, 612, 156, 157, + 446, 630, 701, 773, 163, 221, 444, 99, 564, 470, + 100, 565, 296, 566, 182, 102, 291, 103, 104, 431, + 624, 769, 673, 795, 695, 696, 766, 697, 105, 106, + 107, 108, 233, 109, 110, 111, 112, 430, 540, 623, + 541, 542, 113, 488, 489, 660, 149, 150, 210, 211, + 491, 586, 114, 343, 579, 115 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -716 +#define YYPACT_NINF -740 static const yytype_int16 yypact[] = { - -716, 65, 74, -716, 1597, 3959, 3959, -101, 3959, 3959, - 3959, 3959, 3959, 3959, 3959, -716, 3959, 3959, 3959, 3959, - 3959, 3959, 3959, 0, 0, 2518, 3959, 208, -62, -51, - -716, -716, 104, -716, -716, -716, -716, 3959, -716, 55, - 92, 100, -716, 108, 2649, 2780, 62, -716, 110, 2911, - -716, 3959, 11, -16, 45, 150, -29, 122, 128, 131, - 133, -716, -716, -716, 137, 139, -716, -716, -716, -716, - -716, -716, 310, -34, -716, -716, 221, 3959, -716, -716, - 148, 212, 263, -55, -716, 13, -716, -716, -716, -716, - -716, -716, 234, 247, -716, 292, 251, 182, -716, -716, - 4520, -716, 48, 742, 183, -716, 191, 277, 217, -716, - -27, -716, -11, -716, -716, -716, 254, 210, 292, 5201, - 5201, 3959, 5201, 5201, 5301, -716, -716, 316, -716, 3959, - -716, -716, -716, -716, -716, -716, -716, -716, 219, 221, - 61, 248, -716, -716, 253, -716, 0, 5060, 255, 415, - -716, 284, 221, 294, 303, -716, -716, 306, 336, -18, - -11, 3042, -716, 3959, -716, 14, 5201, 2387, -716, 3959, - 3959, 315, 3959, -716, 4561, -716, 4604, 328, 458, -716, - 332, 5201, 358, 340, 4645, 221, 23, 15, -716, -716, - 216, 17, -716, -716, -716, 471, 18, 292, 0, 0, - 0, 338, -716, 2518, 49, 54, -716, 4090, 0, 320, - -716, 221, -716, -72, -52, 4686, 343, 3959, 151, 333, - 330, 151, -1, 422, -716, 429, -716, 383, -716, -716, - 4, 449, -5, -716, 3959, -716, 485, -716, -716, 3959, - 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, - 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 208, -716, - -716, -716, 3173, 3959, 3959, 3959, 3959, 3959, 3959, 3959, - 3959, 3959, 3959, 3959, -716, 38, 3959, -716, 3959, 3959, - 148, -28, 364, 4729, -716, 221, 241, 154, 154, -716, - -716, 3304, -716, 3435, -716, 221, 294, -3, 365, -3, - -716, -12, -716, 4770, 4812, 3959, -716, 433, 3959, 367, - 508, 5201, 438, 1184, 448, 4853, -716, -716, -716, 981, - -716, -716, -716, -716, 25, 462, 11, -716, 3959, -716, - -716, -16, -716, 981, 472, -716, 395, 30, -716, -716, - -716, 32, 397, 399, 179, 401, -716, 475, -716, -716, - 494, 4223, 404, -716, -716, -716, -45, -716, -716, -716, - -716, -716, -716, 1728, 4264, -716, -716, -716, 3566, 546, - -13, -716, 440, -716, -716, 3959, 416, 3959, 419, -12, - 424, -11, 3959, 5278, 3959, -716, 3959, 3959, 3959, 2568, - 2699, 2828, 2959, 2959, 2959, 2959, 777, 777, 777, 777, - 492, 492, 268, 268, 268, 316, 316, 316, -716, -17, - 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301, - 5301, 5301, 3566, 416, 425, 427, 5201, 408, 154, 409, - 4305, -716, 272, -716, 0, 5201, 0, 5101, 294, -716, - 3566, -716, -716, 154, -716, 555, 5201, 437, 4894, -716, - -716, -716, -716, 569, 33, -716, 981, 981, 981, 439, - 120, 441, 221, -43, 450, -716, -716, -716, 434, 525, - -716, -716, 4350, -716, -716, 584, -716, 0, 455, -716, - -716, -716, -716, 459, -716, 34, -716, -716, 228, -716, - 3959, -716, -716, -716, 454, -716, 3566, 461, -716, -716, - -716, -716, -716, 0, 463, 603, 37, 199, 981, 464, - 221, 294, -716, 497, -13, 480, 465, 298, 468, 4391, - -716, -716, -12, 5241, 5301, 3959, 5160, 5346, 5367, 208, - -716, 483, -716, -716, -716, -716, -716, -6, -716, -716, - -716, -716, -716, 3697, 484, -716, -716, 2387, -716, -716, - 3959, 3959, 0, 171, 981, 564, 1860, -2, -716, -716, - 512, 482, 630, 981, 498, 221, 112, 570, 540, -716, - -716, 981, 298, -716, -716, 0, -716, 179, 632, -716, - -716, -716, 488, 1138, 3566, -716, 495, 499, 503, -716, - -716, 3828, -716, 221, 294, -13, 502, 648, -716, -716, - 298, -716, -716, 509, 650, 172, -716, -716, -716, 3566, - 3566, 5324, -716, -716, -716, 3566, 3566, -716, 511, 3959, - 3959, 0, 5201, -716, -716, -716, -716, 3959, 1992, 513, - 5201, 538, 0, 538, -716, -716, 652, -716, -716, -716, - 516, 520, -716, 981, -716, 981, -716, 518, 121, -716, - 524, -716, 536, -716, 179, -716, 3959, -716, 510, 545, - -716, -716, 548, 0, 39, 843, 294, 648, -716, -13, - 517, 550, 597, 203, 629, 691, 556, 557, 3959, 365, - 559, 560, -716, 644, 651, -716, 562, 4432, -716, 588, - 276, -716, 4936, -716, -716, -716, -716, 171, 571, -716, - 573, 981, 625, -716, 307, -716, -33, -716, 596, -716, - -716, 597, 43, 5301, -716, -716, -716, -716, 631, -716, - 653, -13, -716, -716, -716, -716, -716, -716, -716, -716, - -716, -716, -716, 254, 414, -716, 19, 574, 576, 575, - 197, 715, 981, -716, -716, 5324, -716, -716, -716, 3566, - 3959, 3959, 606, -716, -716, 154, -716, -716, 360, 581, - 662, 3959, -716, -716, -716, -716, 582, 337, 595, 3959, - 6, -9, -716, 981, -13, 600, -716, -716, 734, 9, - -716, 676, 292, -716, 682, -716, -716, 222, -716, 694, - 756, 981, -716, 620, 616, 618, 154, -716, -716, 378, - 627, 2387, -716, -716, 623, 633, 2124, 2124, -716, 626, - -716, 4479, -716, -716, -716, -716, -716, -716, -716, 981, - -13, -716, 84, -716, 767, 28, 710, 773, 634, 716, - -716, 44, 635, 778, 981, -716, -716, -716, -716, -716, - 641, 768, 725, 3959, -716, -716, -716, -716, -716, -716, - -716, -716, -716, -716, 722, 645, -716, -716, 714, 654, - 84, -716, 655, 718, 700, 658, 666, 981, 739, -716, - -716, 981, -716, -716, 224, -716, -716, 981, -716, 511, - 3959, -716, 677, 4977, 2256, 740, -716, 302, 679, -716, - -716, -716, -716, 493, -13, -716, 759, -716, 822, 687, - -716, 766, -716, -716, -716, 5018, 774, -716, -716, -716, - -716, -716, 690, 322, -716, 779, 781, 837, -716, -716, - 981, 298, -716, 823, 2387, 770, -716, 701, -716, -13, - -716, 719, -716, -716, 717, -716, -716, 305, -716, -716, - 720, -716, -716, -716, 370, -716, 723, 775, -716, 721, - -716, 775, -716, -13, -716, -716, 799, 730, -716, 729, - -716, 731, -716 + -740, 65, 67, -740, 1598, 3960, 3960, -77, 3960, 3960, + 3960, 3960, 3960, 3960, 3960, -740, 3960, 3960, 3960, 3960, + 3960, 3960, 3960, 208, 208, 2519, 3960, 272, -64, -35, + -740, -740, 138, -740, -740, -740, -740, 3960, -740, 60, + 78, 86, -740, 91, 2650, 2781, 215, -740, 217, 2912, + -740, 3960, 7, -41, -38, 196, -3, 173, 193, 206, + 224, -740, -740, -740, 233, 254, -740, -740, -740, -740, + -740, -740, 326, 114, -740, -740, 335, 3960, -740, -740, + 205, 142, 150, -55, -740, 11, -740, -740, -740, -740, + -740, -740, 359, 372, -740, -740, 394, 405, 311, -740, + -740, 4478, -740, 157, 1309, 341, -740, 349, 439, 390, + -740, 50, -740, -4, -740, -740, -740, 403, 368, 394, + 5159, 5159, 3960, 5159, 5159, 5259, -740, -740, 468, -740, + 3960, -740, -740, -740, -740, -740, -740, -740, -740, 374, + 335, 146, 376, -740, -740, 387, -740, 208, 5018, 375, + 515, -740, 384, 335, 388, 393, -740, -740, 396, 416, + 48, -4, 3043, -740, 3960, -740, 14, 5159, 2388, -740, + 3960, 3960, 398, 3960, -740, 4519, -740, 4560, 391, 528, + -740, 399, 5159, 864, 397, 4603, 335, -16, 15, -740, + -740, 253, 16, -740, -740, -740, 530, 18, 394, 208, + 208, 208, 404, -740, 2519, -5, 286, -740, 4091, 208, + 345, -740, 335, -740, -69, -52, 407, 4644, 408, 3960, + 125, 406, 168, 125, 53, 489, -740, 492, -740, 444, + -740, -740, -27, 505, 54, -740, 3960, -740, 541, -740, + -740, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, + 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, + 272, -740, -740, -740, 3174, 3960, 3960, 3960, 3960, 3960, + 3960, 3960, 3960, 3960, 3960, 3960, -740, 161, 3960, -740, + 3960, 3960, 205, 55, 422, 4685, -740, 335, 186, 209, + 209, -740, -740, 3305, -740, 3436, -740, 335, 388, 2, + 424, 2, -740, -6, -740, 4728, 4770, 3960, -740, 493, + 3960, 423, 569, 5159, 490, 1164, 510, 4811, -740, -740, + -740, 248, -740, -740, -740, -740, 115, 511, 7, -740, + 3960, -740, -740, -41, -740, 248, 513, -740, 440, 8, + -740, -740, -740, 25, 438, 441, 329, 451, -740, 519, + -740, -740, 542, 1537, 449, -740, -740, -740, -46, -740, + -740, -740, -740, -740, -740, -740, 1729, 4224, -740, -740, + -740, 3567, 595, 99, -740, 491, -740, -740, 3960, 461, + 3960, 462, -6, 464, -4, 3960, 5236, 3960, -740, 3960, + 3960, 3960, 2569, 2700, 1373, 2829, 2829, 2829, 2829, 1413, + 1413, 1413, 1413, 578, 578, 386, 386, 386, 468, 468, + 468, -740, -25, 5259, 5259, 5259, 5259, 5259, 5259, 5259, + 5259, 5259, 5259, 5259, 5259, 3567, 461, 465, 470, 5159, + 474, 209, 475, 4265, -740, 220, -740, 208, 5159, 208, + 5059, 388, -740, 3567, -740, -740, 209, -740, 591, 5159, + 482, 4852, -740, -740, -740, -740, 619, 32, -740, 248, + 248, 248, 484, -31, 488, 335, -85, 507, -740, -740, + -740, 496, 583, -740, -740, 4306, -740, -740, 640, -740, + 208, 504, -740, -740, -740, -740, 517, -740, 33, -740, + -740, 379, -740, 3960, -740, -740, -740, 503, -740, 3567, + 30, 518, -740, -740, -740, -740, -740, 208, 509, 652, + 34, 120, 248, 516, 335, 388, -740, 546, 99, 529, + 520, 265, 525, 4351, -740, -740, -6, 5199, 5259, 3960, + 5118, 5281, 5302, 272, -740, 521, -740, -740, -740, -740, + -740, 29, -740, -740, -740, -740, -740, 3698, 532, -740, + -740, 2388, -740, -740, 3960, 3960, 208, 0, 248, 612, + 1861, -1, -740, -740, 560, 533, 677, 248, 550, 335, + 177, 621, 593, -740, -740, 248, 265, -740, -740, 208, + -740, 329, 680, -740, -740, -740, 539, 1039, 3567, -740, + 543, 547, -740, 153, 548, -740, -740, 3829, -740, 335, + 388, 99, 549, 692, -740, -740, 265, -740, -740, 553, + 697, 26, -740, -740, -740, 3567, 3567, 1585, -740, -740, + -740, 3567, 3567, -740, 557, 3960, 3960, 208, 5159, -740, + -740, -740, -740, 3960, 1993, 556, 5159, 585, 208, 585, + -740, -740, 698, -740, -740, -740, 559, 561, -740, 248, + -740, 248, -740, 564, 200, -740, 567, -740, 568, -740, + 329, -740, 3960, -740, 570, 572, -740, -740, 3960, 209, + 594, 178, -740, -740, 573, 208, 37, 237, 388, 692, + -740, 99, 395, 576, 616, 204, 654, 715, 580, 581, + 3960, 424, 584, 590, -740, 671, 674, -740, 601, 4392, + -740, 634, 38, -740, 4894, -740, -740, -740, -740, 0, + 611, -740, 614, 248, 673, -740, 354, -740, 149, -740, + 641, -740, -740, 616, 41, 5259, -740, -740, 617, -740, + -740, 3960, 594, -740, -740, 566, -740, 695, 99, -740, + -740, -740, -740, -740, -740, -740, -740, -740, -740, -740, + 403, 487, -740, 20, 622, 626, 624, 27, 766, 248, + -740, -740, 1585, -740, -740, -740, 3567, 3960, 3960, 594, + -740, -740, 209, -740, -740, 373, 629, 703, 3960, -740, + -740, -740, -740, 639, 371, 642, 3960, 1, 292, -740, + 248, 99, 643, -740, -740, 557, 637, 594, -740, 781, + 9, -740, 724, 394, -740, 727, -740, -740, 273, -740, + 726, 787, 248, -740, 653, 649, 650, -740, -740, 392, + 657, 2388, -740, -740, 656, 658, 2125, 2125, -740, 661, + -740, 4435, -740, -740, -740, -740, -740, -740, -740, -740, + -740, 248, 99, -740, 155, -740, 796, 22, 743, 802, + 663, 744, -740, 43, 667, 809, 248, -740, -740, -740, + -740, 678, 800, 760, 3960, -740, -740, -740, -740, -740, + -740, -740, -740, -740, -740, 756, 679, -740, -740, 740, + 681, 155, -740, 684, 741, 731, 689, 699, 248, 768, + -740, -740, 248, -740, -740, 310, -740, -740, 248, -740, + 3960, -740, 693, 4935, 2257, 758, -740, -32, 696, -740, + -740, -740, -740, 536, 99, -740, 776, -740, 835, 701, + -740, 778, -740, -740, 4976, 786, -740, -740, -740, -740, + -740, 706, 214, -740, 788, 789, 853, -740, -740, 248, + 265, -740, 836, 2388, 779, -740, 714, -740, 99, -740, + 717, -740, -740, 719, -740, -740, 260, -740, -740, 718, + -740, -740, -740, 412, -740, 720, 770, -740, 745, -740, + 770, -740, 99, -740, -740, 803, 739, -740, 746, -740, + 749, -740 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -716, -716, -337, -716, -23, -716, -716, -716, -716, 549, - -716, -291, -716, -716, 24, -716, -716, -716, -716, -716, - -716, -716, -716, -716, -716, -716, -716, -716, -716, -716, - -716, -716, -716, -716, -716, -716, -716, -716, -716, -716, - -69, -716, -716, -716, 410, 522, 523, -116, -716, -716, - -716, -716, -716, -716, -716, -716, -716, -716, 295, 258, - 195, -716, 86, -716, -716, -716, -394, -716, -716, 83, - -716, -716, -716, -716, -716, -716, -716, -561, -716, 223, - -410, -716, -716, 568, -716, 227, -716, -716, -716, -716, - -716, -716, -716, -716, 47, -716, -716, -716, -716, -716, - -716, -716, -716, -716, -716, -715, -716, -716, -716, -535, - -716, -716, -31, -716, -716, -716, -716, -716, -716, -716, - -716, -716, -716, -716, -716, -716, 3, 189, -716, -716, - -716, -716, -716, -716, -716, -716, -716, -716, 755, -362, - -245, -716, -716, -716, -716, -716, -716, -716, 225, 12, - 514, -716, -716, 346, 369, -716, 671, 761, -420, 443, - 933, -716, -716, -716, -716, -716, -716, -716, -716, 50, - -197, -716, 40, -716, -716, -716, -22, -24, -716, -269, - -433, -716, -716, 153, -21, 304, 375, -716, 743, -716, - 396, 281, -716, -716, -716, -716, -716, -716 + -740, -740, -341, -740, -23, -740, -740, -740, -740, 565, + -740, -105, -740, -740, 4, -740, -740, -740, -740, -740, + -740, -740, -740, -740, -740, -740, -740, -740, -740, -740, + -740, -740, -740, -740, -740, -740, -740, -740, -740, -740, + -78, -740, -740, -740, 419, 552, 554, -114, -740, -740, + -740, -740, -740, -740, -740, -740, -740, -740, 295, 266, + 198, -740, 82, -740, -740, -740, -378, -740, -740, 81, + -740, -740, -740, -740, -740, -740, -740, -569, -740, 229, + -391, -740, -740, 586, -740, 235, -740, -740, -740, -740, + -740, -740, -740, -740, 40, -740, -740, -740, -740, -740, + -740, -740, -740, -740, -740, -739, -740, -740, -740, -540, + -740, -740, 190, -740, -740, -740, -740, -740, 849, -740, + 19, -740, -740, -740, -740, -740, -740, -740, -740, -740, + -740, -740, -740, -740, -2, 207, -740, -740, -740, -740, + -740, -740, -740, -740, -740, -740, 12, -330, -250, -740, + -740, -740, -740, -740, -740, -740, 238, 378, 592, -740, + -740, 364, 366, -740, 733, 742, -426, 452, 764, -740, + -740, -740, -650, -740, -740, -740, -740, 139, -213, -740, + 582, -740, -740, -740, -24, -12, -740, -271, -440, -740, + -740, 132, 39, 278, 358, -740, 736, -740, 400, 305, + -740, -740, -740, -740, -740, -740 }; /* 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 -457 +#define YYTABLE_NINF -471 static const yytype_int16 yytable[] = { - 140, 140, 282, 159, 153, 158, 160, 95, 512, 429, - 545, 652, 531, 408, 541, 629, 542, 820, 180, 783, - 494, 225, 305, 326, 640, 331, 334, 784, 86, 186, - 544, 468, 812, 278, 278, 378, 868, 115, 477, 671, - 479, 555, 577, 278, 195, -169, 529, -172, 121, 278, - 213, 577, 874, 214, 115, 619, 34, 189, 115, 197, - 769, 770, 34, 144, 144, 3, 376, 157, 34, 47, - 34, 115, 204, 34, -2, 373, 223, 353, 424, 358, - 359, 336, 115, 589, 769, 770, 587, 161, 281, -347, - 378, 424, -349, 223, 224, 137, 223, 360, 163, -348, - 439, -347, 442, 223, 493, 223, 518, 260, 261, 423, - 346, 34, 137, 325, 211, 469, 286, -433, 212, 197, - 772, -430, -429, 140, 279, 279, -433, 204, 138, 296, - 164, 139, 509, 177, 279, 510, 301, 80, 190, 312, - 279, 207, 208, 280, 815, 138, 620, 377, 139, 80, - 641, 80, 598, 374, 80, 858, 366, 813, 586, 185, - 821, 822, 324, 193, 226, 306, 327, 140, 332, 335, - 785, 223, 347, 223, 659, 140, 140, 140, 916, 869, - 478, 178, 480, 556, 578, 140, 144, -169, 356, -172, - 377, 307, 80, 776, 875, 348, 207, 208, 564, 676, - 677, 688, 632, 674, 168, 680, 681, -170, 379, 223, - 224, 381, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 204, 433, 805, 34, 789, 509, - 144, 535, 510, 598, 159, 153, 158, 160, 144, 144, - 144, 169, 115, 717, 34, 675, 535, 706, 144, 170, - 115, 379, 34, 829, 381, 901, -349, 172, -413, -413, - 223, 206, 432, 379, 379, -348, 381, 381, 194, 223, - 790, 198, 438, 379, 115, 379, 381, 199, 381, 115, - 200, 34, 201, 137, 613, 204, 202, 115, 203, 34, - 218, 137, 115, 207, 208, 830, 463, 902, 157, 579, - 217, 580, 581, 186, 483, 227, 377, 719, 80, 767, - 463, 771, -435, 255, 256, 257, 138, 258, 228, 139, - 137, 140, 798, 229, 138, 80, 232, 139, 137, 601, - 602, 465, 274, 80, 690, 275, 204, 506, 276, 793, - 277, 221, -41, -41, -41, 465, 702, 511, 509, -170, - 686, 510, 47, 151, 207, 208, 152, 522, 211, 780, - 931, 138, 80, 839, 139, 258, 95, 285, 328, 115, - 80, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 204, 144, 380, 140, 499, 205, 223, - 360, 506, 287, 204, -138, -138, -138, 288, 353, 768, - 769, 770, 760, 204, 379, 207, 208, 381, 353, 506, - 292, 140, 817, 140, -136, -136, -136, -413, -413, 379, - 223, 493, 381, 293, 601, 602, 800, 801, 425, 809, - 769, 770, 295, 463, 463, 463, -148, -148, -148, 566, - 380, 425, 223, 509, 840, 841, 510, 297, -154, 144, - 299, 206, 207, 208, 140, -138, 941, 942, 857, 300, - 866, 354, 207, 208, 314, 506, 142, 145, 465, 465, - 465, 319, 207, 208, 144, -136, 144, 220, 222, 318, - 140, 794, 795, 320, 333, 463, 349, 594, 343, 365, - 355, 511, 322, 367, 511, 828, 362, 832, 866, 349, - 369, 355, 349, 355, 370, 159, 153, 158, 160, 321, - 375, 385, -218, 374, 440, 447, 450, 144, 449, 453, - 465, 722, 723, 724, 725, 726, 727, 855, 451, 140, - 140, 463, 918, 470, 252, 253, 254, 255, 256, 257, - 463, 258, 648, 144, 476, 475, 489, 481, 463, 511, - 482, 487, 140, 506, 140, 490, 885, 492, 535, 508, - 664, 514, 887, 534, 539, -456, 465, 936, 520, 157, - 666, 626, 511, 521, 532, 465, 533, 511, 506, 506, - 638, 546, 554, 465, 506, 506, 548, 568, 563, 565, - 906, 955, 144, 144, 567, 913, 569, 571, 140, 535, - 722, 723, 724, 725, 726, 727, 574, 585, 576, 140, - 588, 591, 593, 590, 600, 144, 720, 144, 925, 595, - 463, 721, 463, 607, 722, 723, 724, 725, 726, 727, - 728, 140, 599, 614, 623, 636, 643, 644, 645, 348, - 140, 649, 650, 657, 940, 656, 511, 944, 660, 661, - 511, 946, 694, 662, 668, 465, 669, 465, 673, 672, - 682, 144, 697, 714, 696, 701, 826, 703, 709, 961, - 729, 705, 144, 710, 140, 100, 119, 120, 463, 122, - 123, 124, 125, 126, 127, 128, 711, 130, 131, 132, - 133, 134, 135, 136, 144, 715, 147, 150, 511, 716, - 737, 738, 741, 144, 742, 750, 743, 744, 166, 747, - 748, 755, 751, 465, 766, 174, 176, 753, 506, 463, - 773, 763, 184, 764, 778, 787, 786, 788, 791, 796, - 720, 379, 803, 808, 381, 721, 782, 144, 722, 723, - 724, 725, 726, 727, 728, 804, 810, 819, 215, 824, - 463, 511, 818, 827, 465, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 833, 463, 834, - 836, 837, 379, 838, 845, 381, 843, 851, 141, 141, - 867, 870, 154, 846, 777, 465, 871, 872, 876, 873, - 880, 877, 283, 882, 881, 888, 463, 511, 889, 511, - 284, -413, -413, 465, -206, 894, 892, 890, 893, 895, - 896, 463, 898, -457, -457, -457, -457, 250, 251, 252, - 253, 254, 255, 256, 257, 844, 258, 912, 907, 914, - 919, 465, 303, 466, 304, 920, 921, 511, 100, 922, - 311, 926, -152, 315, 463, 929, 465, 474, 463, 932, - 928, -173, -212, 935, 463, 934, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 939, 937, - 953, 511, 957, 945, 147, 471, 948, 949, 351, 465, - 958, 960, 954, 465, 962, 500, 501, 573, 364, 465, - 667, 700, 762, 850, 852, 718, 740, 463, 511, 473, - 775, 141, -413, -413, 746, 383, 511, 891, 910, 647, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 904, - 511, 646, 465, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 141, 345, 426, 933, 426, - 430, 329, 655, 141, 141, 141, 143, 143, 712, 0, - 0, 0, 435, 141, 437, 0, 0, 0, 0, 0, - 558, 559, 0, 0, 0, 0, 446, 0, 0, 448, - 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -173, 0, 0, 0, 0, 0, 472, + 141, 141, 96, 159, 154, 284, 549, 658, 86, 432, + 411, 545, 804, 546, 635, 160, 480, 842, 497, 227, + 730, 381, 307, 328, 333, 646, 336, 832, 805, 187, + 889, 638, 190, 482, 535, 142, 142, 683, 533, 155, + 559, 581, -169, 516, 376, -172, 116, 568, 34, 581, + 214, 895, 548, 215, 198, 280, 348, 686, 810, -361, + -138, -138, -138, 225, 427, 3, 161, -2, 181, 34, + 196, 116, 122, 34, 327, 34, 381, 427, 116, 225, + 194, 595, 360, 361, 338, 162, 442, 138, 445, -361, + 625, -249, -363, 225, 226, 47, 225, 362, -362, 687, + 811, 283, 225, 496, -41, -41, -41, 522, 591, 280, + 207, 280, 138, 191, 164, 198, 280, 288, 349, 817, + 139, -138, 377, 140, 141, 379, 205, 34, -170, 80, + 298, 355, 225, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 139, 281, 730, 140, 303, + 282, 647, 833, -249, 80, 186, 80, 590, 481, 142, + 843, 844, 228, 326, 165, 308, 329, 334, 141, 337, + 116, 806, 309, 890, 935, 483, 141, 141, 141, -427, + -427, 626, 560, 582, -169, 116, 141, -172, 604, 358, + 314, 793, -447, 896, -447, 208, 209, 665, 205, -443, + 281, 700, 281, 142, -444, 472, 380, 281, 80, 169, + 369, 142, 142, 142, 668, 205, 262, 263, 539, 471, + 220, 142, 382, 205, 688, 689, 879, 170, 223, 729, + 692, 693, 426, 539, 34, 171, 159, 154, 825, 731, + 173, 205, 786, 787, 513, -173, 355, 514, 160, 734, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 212, 225, 435, 382, 213, 208, 209, 718, + -170, 604, 155, 384, 441, 116, 669, 382, 382, 116, + 436, 34, 34, 619, 208, 209, 178, 382, 179, 382, + 459, 460, 208, 209, 225, 226, -427, -427, 466, 161, + 513, -244, 789, 514, 851, 187, -136, -136, -136, 461, + 208, 209, 466, 380, 195, 80, 384, 30, 31, 116, + 138, -363, 199, 141, 116, 225, 34, 36, 384, 384, + 607, 608, 818, 467, 225, 362, 116, 784, 384, 788, + 384, 921, 200, 116, -362, 34, 852, 467, 225, 513, + 515, 736, 514, 139, 698, 201, 140, 219, 142, 205, + 138, 380, 80, 80, 96, 138, 383, -136, 225, 496, + 503, 950, 526, 202, 462, 814, 66, 67, 68, 69, + 70, 71, 203, 922, 138, 786, 787, -173, 463, 141, + 510, 607, 608, 464, 74, 75, 465, 728, 139, 205, + 116, 140, 34, 204, 206, 330, 116, 80, 801, 428, + 513, 960, 961, 514, 141, -154, 141, 152, 205, 382, + 153, 383, 428, 355, 142, 231, 80, 350, 208, 209, + 229, 257, 258, 259, 382, 260, 466, 466, 466, 820, + 821, 138, 570, 230, 510, 835, 785, 786, 787, 142, + 583, 142, 584, 585, 486, 234, 539, 141, 861, 862, + 796, 837, 510, 829, 786, 787, -449, 207, 208, 209, + 384, 467, 467, 467, 139, 143, 146, 140, -148, -148, + -148, 222, 224, 80, 141, 384, 356, 208, 209, 466, + 276, 600, 142, 277, 737, 515, 815, 816, 515, 738, + 278, 47, 739, 740, 741, 742, 743, 744, 745, 159, + 154, 351, 878, 279, 887, 357, 212, 260, 510, 142, + 289, 160, 287, 295, 467, 351, 702, 357, 351, 357, + 294, 290, 297, 141, 141, 466, 225, 299, 714, 302, + 301, 321, 320, 335, 466, 155, 654, 316, 746, 324, + 322, 887, 466, 515, 345, 632, 141, 363, 141, 539, + 370, 365, 368, 372, 644, 373, 378, 388, 142, 142, + 467, 377, 161, 443, 452, 450, 678, 453, 515, 467, + 454, 456, 473, 515, 937, -218, 478, 467, 484, 479, + 492, 142, 485, 142, 739, 740, 741, 742, 743, 744, + 777, 490, 495, 493, 141, 145, 145, 510, 512, 158, + -470, 524, 518, 525, 536, 141, 676, 550, 955, 537, + 254, 255, 256, 257, 258, 259, 466, 260, 466, 538, + 543, 552, 558, 567, 510, 510, 569, 141, 706, 142, + 510, 510, 974, 739, 740, 741, 742, 743, 744, 572, + 142, 571, 141, 575, 573, 578, 589, 382, 515, 596, + 597, 467, 515, 467, 599, 737, 580, 594, 601, 606, + 738, 620, 142, 739, 740, 741, 742, 743, 744, 745, + 613, 605, 629, 642, 649, 651, 141, 142, 650, 848, + 466, 350, 655, 662, 663, 656, 666, 667, 674, 468, + 681, 680, 850, 684, 854, 685, 694, 708, 384, 709, + 715, 713, 717, 468, 721, 515, 722, 669, 723, 798, + 755, 142, 727, 726, 733, 467, 754, 758, 759, 145, + 760, 761, 767, 876, 764, 768, 466, 101, 120, 121, + 765, 123, 124, 125, 126, 127, 128, 129, 803, 131, + 132, 133, 134, 135, 136, 137, 770, 772, 148, 151, + 382, 780, 783, 905, 781, 790, 799, 466, 515, 907, + 167, 467, 794, 145, 807, 808, 809, 175, 177, 812, + 823, 145, 145, 145, 185, 510, 824, 144, 144, 466, + 828, 145, 840, 830, 841, 838, 925, 846, 849, 855, + 856, 932, 467, 858, 859, 860, 864, 866, 867, 888, + 217, 384, 872, 183, 891, 892, 893, 894, 466, 515, + 897, 515, 898, 944, 467, 865, 901, 900, 902, 908, + -206, 913, 909, 466, 910, 912, 914, 468, 468, 468, + 915, 918, 158, 916, 926, 931, 933, 938, 939, 959, + 940, 941, 963, 467, -152, 285, 965, 945, 515, 947, + -212, 948, 951, 286, 953, 466, 954, 956, 467, 466, + 958, 964, 968, 967, 980, 466, 976, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 977, + 468, 515, 973, 474, 972, 305, 679, 306, 979, 577, + 467, 101, 981, 313, 467, 712, 317, 779, 929, 871, + 467, 292, 873, 469, 757, 735, 466, 515, 504, 476, + 505, 911, 797, -427, -427, 515, 216, 477, 145, 763, + 792, 653, 652, 331, 839, 315, 468, 148, 724, 661, + 347, 353, 0, 0, 0, 468, 0, 952, 0, 515, + 0, 467, 367, 468, 0, 332, 0, 0, 0, 0, + 0, 0, 0, 341, 342, 344, 0, 0, 0, 386, + 0, 0, 0, 354, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 0, 145, 0, 0, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 0, + 0, 429, 0, 429, 433, 323, 0, 0, 0, 145, + 0, 145, 0, 0, 0, 0, 438, 468, 440, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 592, 456, 457, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 0, 0, 458, 0, 0, 0, 426, 0, 519, 0, - 30, 31, 115, 523, 0, 524, 0, 526, 527, 528, - 36, 0, 0, 0, 0, 0, 0, 0, 635, 0, - 0, 0, 0, 0, 464, 0, 0, 0, 0, 290, - 0, 0, 0, 0, 0, 651, 0, 0, 464, 0, - 0, 0, 0, 137, 0, 0, 0, 0, 0, 141, - 0, 0, 0, 313, 0, 0, 0, 459, 0, 66, - 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, - 0, 460, 0, 330, 0, 0, 461, 74, 75, 462, - 0, 339, 340, 342, 0, 0, 0, 0, 0, 0, - 0, 352, 0, 0, 0, 0, 0, 233, 234, 235, - 0, 0, 0, 0, 0, 0, 0, 707, 0, 708, - 0, 583, 0, 236, 141, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 0, 258, 0, 141, - 0, 141, 0, 0, 0, 0, 611, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, - 0, 464, 464, 464, 622, 765, 0, 0, 100, 0, - 0, 311, 630, 0, 0, 0, 0, 100, 0, 0, - 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -413, -413, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 792, 0, 141, 0, - 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 452, 0, 0, 484, 0, 0, - 0, 0, 0, 0, 154, 0, 0, 816, 0, 0, - 426, 687, 0, 658, 0, 0, 0, 0, 692, 100, - 0, 507, 0, 0, 0, 835, 0, 141, 141, 464, - 0, 0, 0, 0, 0, 0, 0, 0, 464, 0, - 0, 0, 0, 0, 0, 0, 464, 713, 0, 0, - 141, 0, 141, 856, 0, 0, 0, 0, 0, 0, - 0, 0, 530, 0, 0, 0, 0, 0, 878, 745, - 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 290, 0, 290, - 0, 0, 0, 507, 0, 0, 141, 0, 0, 0, - 0, 897, 0, 0, 0, 900, 0, 141, 0, 0, - 0, 903, 0, 0, 0, 0, 0, 0, 464, 0, - 464, 0, 0, 0, 0, 0, 0, 0, 0, 141, - 339, 0, 0, 0, 0, 0, 0, 0, 141, 0, - 0, 426, 426, 0, 0, 0, 0, 0, 0, 507, - 0, 0, 311, 0, 930, 0, 290, 0, 0, 0, - 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 141, 0, 0, 0, 464, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 100, 0, 0, 0, 0, 100, 100, 0, - 0, 0, 0, 0, 0, 631, 634, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 464, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 653, 0, - 484, 0, 0, 0, 883, 0, 0, 507, 0, 0, - 0, 0, 0, 0, 665, 0, 0, 0, 464, 0, + 449, 0, 0, 451, 0, 0, 0, 0, 235, 236, + 237, 562, 563, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 475, 238, 0, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 0, 260, 145, + 0, 468, 0, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, + 487, 429, 0, 523, 0, 158, 0, 0, 527, 0, + 528, 0, 530, 531, 532, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 511, 0, 468, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 507, 507, 0, 0, 464, 0, 507, 507, - 0, 905, 0, 0, 290, 100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, - 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 484, 0, 464, - 0, 0, 0, 0, 0, 100, 290, 0, 0, 0, - 5, 6, 7, 8, 9, 0, 0, 0, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 464, 0, 0, 0, 464, 0, 0, 0, - 634, 0, 464, 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, 25, 26, - 27, 28, 29, 0, 0, 0, 30, 31, 32, 33, - 34, 0, 35, 0, 0, 464, 36, 37, 38, 39, - 0, 40, 507, 41, 0, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 48, 49, 50, 0, - 51, 52, 0, 53, 0, 0, 0, 54, 55, 56, - 0, 57, 58, 59, 60, 61, 62, 63, 0, 0, - 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, - 71, 5, 6, 7, 8, 9, 0, 72, 0, 0, - 10, 0, 73, 74, 75, 76, 77, 0, 78, 79, - 0, 80, 0, 81, 82, 0, 0, 0, 0, 0, + 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 145, 0, 145, 0, 0, 0, 657, 468, 0, + 0, 0, 0, 0, 0, 0, 534, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 511, + 468, 0, 0, 0, 664, 0, 0, 0, 0, 0, + 0, 292, 0, 292, 0, 0, 0, 511, 0, 145, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, + 145, 0, 0, -427, -427, 0, 587, 0, 0, 0, + 0, 0, 0, 0, 468, 0, 0, 0, 0, 0, + 0, 719, 145, 720, 341, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 455, 0, 0, 145, 0, 0, + 0, 0, 617, 511, 0, 0, 468, 0, 0, 0, + 468, 292, 0, 0, 0, 0, 468, 0, 0, 0, + 628, 0, 0, 0, 101, 0, 0, 313, 636, 0, + 0, 145, 0, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 468, 0, 0, + 637, 640, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 659, 0, 487, 0, 0, 0, 0, + 0, 813, 511, 0, 0, 0, 0, 0, 429, 699, + 0, 677, 0, 0, 0, 0, 704, 101, -427, -427, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 511, + 511, 0, 836, 0, 0, 511, 511, 0, 0, 0, + 0, 292, 0, 0, 0, 725, 0, 0, 0, 0, + 0, 429, 711, 0, 857, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 0, 260, 762, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 877, 0, 0, 0, 0, 0, 292, + 0, 0, 0, 0, 0, 0, 0, 0, 899, -471, + -471, -471, -471, 252, 253, 254, 255, 256, 257, 258, + 259, 0, 260, 0, 429, 0, 0, 0, 0, 0, + 0, 0, 0, 640, 0, 0, 0, 0, 0, 0, + 917, 0, 0, 0, 920, 0, 0, 0, 0, 0, + 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 429, 429, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 511, 949, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 236, 237, 0, + 0, 0, 0, 0, 101, 0, 0, 0, 0, 101, + 101, 0, 238, 0, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 903, 0, 0, + 0, 5, 6, 7, 8, 9, 0, 0, 0, 0, + 10, 0, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 924, 260, 0, 0, 101, 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 0, 0, 0, 30, 31, 32, - 33, 34, 0, 35, 0, 0, 0, 36, 37, 38, + 33, 34, 0, 35, 0, 0, 101, 36, 37, 38, 39, 0, 40, 0, 41, 0, 42, 0, 0, 43, - 0, 0, 0, 44, 45, 46, 47, 0, 49, 50, - 0, 51, 0, 0, 53, 0, 0, 0, 54, 55, - 56, 0, 57, 58, 59, 497, 61, 62, 63, 0, + 494, 0, 0, 44, 45, 46, 47, 48, 49, 50, + 0, 51, 52, 0, 53, 0, 0, 0, 54, 55, + 56, 0, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, - 70, 71, 0, 5, 6, 7, 8, 9, 72, 0, - 0, 0, 10, 117, 74, 75, 76, 77, 0, 78, - 79, 0, 80, 0, 81, 82, 637, 0, 0, 0, + 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, + 0, 10, 0, 73, 74, 75, 76, 77, 0, 78, + 79, 0, 80, 0, 81, 82, 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, 25, 26, 27, 28, 29, 0, 0, 0, 30, - 31, 32, 33, 34, 0, 35, 0, 0, 0, 36, - 37, 38, 39, 0, 40, 0, 41, 0, 42, 0, - 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, - 49, 50, 0, 51, 0, 0, 53, 0, 0, 0, - 0, 0, 56, 0, 57, 58, 59, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, - 68, 69, 70, 71, 0, 5, 6, 7, 8, 9, - 72, 0, 0, 0, 10, 117, 74, 75, 76, 77, - 0, 78, 79, 0, 80, 0, 81, 82, 693, 0, + 0, 11, 12, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 0, 0, 0, 30, 31, + 32, 33, 34, 0, 35, 0, 0, 0, 36, 37, + 38, 39, 0, 40, 0, 41, 0, 42, 0, 0, + 43, 0, 0, 0, 44, 45, 46, 47, 0, 49, + 50, 0, 51, 0, 0, 53, 0, 0, 0, 54, + 55, 56, 0, 57, 58, 59, 501, 61, 62, 63, + 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, + 69, 70, 71, 0, 5, 6, 7, 8, 9, 72, + 0, 0, 0, 10, 118, 74, 75, 76, 77, 0, + 78, 79, 0, 80, 0, 81, 82, 643, 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, 25, 26, 27, 28, 29, 0, 0, - 0, 30, 31, 32, 33, 34, 0, 35, 0, 0, - 0, 36, 37, 38, 39, 0, 40, 0, 41, 0, - 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, - 47, 0, 49, 50, 0, 51, 0, 0, 53, 0, - 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, - 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, - 66, 67, 68, 69, 70, 71, 0, 5, 6, 7, - 8, 9, 72, 0, 0, 0, 10, 117, 74, 75, - 76, 77, 0, 78, 79, 0, 80, 0, 81, 82, - 847, 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, 25, 26, 27, 28, 29, - 0, 0, 0, 30, 31, 32, 33, 34, 0, 35, - 0, 0, 0, 36, 37, 38, 39, 0, 40, 0, - 41, 0, 42, 0, 0, 43, 0, 0, 0, 44, - 45, 46, 47, 0, 49, 50, 0, 51, 0, 0, - 53, 0, 0, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 65, 0, 66, 67, 68, 69, 70, 71, 0, 5, - 6, 7, 8, 9, 72, 0, 0, 0, 10, 117, - 74, 75, 76, 77, 0, 78, 79, 0, 80, 0, - 81, 82, 909, 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, 25, 26, 27, - 28, 29, 0, 0, 0, 30, 31, 32, 33, 34, - 0, 35, 0, 0, 0, 36, 37, 38, 39, 0, - 40, 0, 41, 0, 42, 0, 0, 43, 0, 0, - 0, 44, 45, 46, 47, 0, 49, 50, 0, 51, - 0, 0, 53, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, - 5, 6, 7, 8, 9, 0, 72, 0, 0, 10, - 0, 117, 74, 75, 76, 77, 0, 78, 79, 0, - 80, 0, 81, 82, 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, 25, 26, 27, 28, 29, 0, 0, 0, + 30, 31, 32, 33, 34, 0, 35, 0, 0, 0, + 36, 37, 38, 39, 0, 40, 0, 41, 0, 42, + 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, + 0, 49, 50, 0, 51, 0, 0, 53, 0, 0, + 0, 0, 0, 56, 0, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, + 67, 68, 69, 70, 71, 0, 5, 6, 7, 8, + 9, 72, 0, 0, 0, 10, 118, 74, 75, 76, + 77, 0, 78, 79, 0, 80, 0, 81, 82, 705, + 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, 25, 26, 27, 28, 29, 0, + 0, 0, 30, 31, 32, 33, 34, 0, 35, 0, + 0, 0, 36, 37, 38, 39, 0, 40, 0, 41, + 0, 42, 0, 0, 43, 0, 0, 0, 44, 45, + 46, 47, 0, 49, 50, 0, 51, 0, 0, 53, + 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, + 0, 66, 67, 68, 69, 70, 71, 0, 5, 6, + 7, 8, 9, 72, 0, 0, 0, 10, 118, 74, + 75, 76, 77, 0, 78, 79, 0, 80, 0, 81, + 82, 868, 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, 25, 26, 27, 28, + 29, 0, 0, 0, 30, 31, 32, 33, 34, 0, + 35, 0, 0, 0, 36, 37, 38, 39, 0, 40, + 0, 41, 0, 42, 0, 0, 43, 0, 0, 0, + 44, 45, 46, 47, 0, 49, 50, 0, 51, 0, + 0, 53, 0, 0, 0, 0, 0, 56, 0, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 65, 0, 66, 67, 68, 69, 70, 71, 0, + 5, 6, 7, 8, 9, 72, 0, 0, 0, 10, + 118, 74, 75, 76, 77, 0, 78, 79, 0, 80, + 0, 81, 82, 928, 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, 25, 26, @@ -1757,541 +1761,535 @@ static const yytype_int16 yytable[] = 0, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, 0, - 10, 0, 117, 74, 75, 76, 77, 0, 78, 79, - 0, 80, 0, 81, 82, 0, 0, 0, 0, 146, + 10, 0, 118, 74, 75, 76, 77, 0, 78, 79, + 0, 80, 0, 81, 82, 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, 25, - 26, 27, 28, 0, 0, 0, 0, 30, 31, 115, - 33, 34, 0, 0, 0, 0, 0, 36, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 47, 258, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 0, 0, 58, 59, 0, 0, 0, 0, 0, + 26, 27, 28, 29, 0, 0, 0, 30, 31, 32, + 33, 34, 0, 35, 0, 0, 0, 36, 37, 38, + 39, 0, 40, 0, 41, 0, 42, 0, 0, 43, + 0, 0, 0, 44, 45, 46, 47, 0, 49, 50, + 0, 51, 0, 0, 53, 0, 0, 0, 0, 0, + 56, 0, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, - 0, 10, 0, 117, 74, 75, 76, 77, 0, 0, - 0, 0, 80, 0, 81, 82, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 0, 118, 74, 75, 76, 77, 0, 78, + 79, 0, 80, 0, 81, 82, 0, 0, 0, 0, + 147, 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, 25, 26, 27, 28, 0, 0, 0, 0, 30, 31, - 115, 33, 34, 0, 0, 0, 0, 0, 36, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 47, 258, 0, + 116, 33, 34, 0, 0, 0, 0, 0, 36, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 47, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 0, 0, 58, 59, 0, 0, 0, 0, + 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, - 0, 0, 10, 0, 117, 74, 75, 76, 77, 0, - 173, 0, 0, 80, 0, 81, 82, 0, 0, 0, + 0, 0, 10, 0, 118, 74, 75, 76, 77, 0, + 0, 0, 0, 80, 0, 81, 82, 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, 25, 26, 27, 28, 0, 0, 0, 0, 30, - 31, 115, 33, 34, 0, 0, 0, 0, 0, 36, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 0, 258, 47, 0, + 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, + 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 47, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 116, 0, 0, 58, 59, 0, 0, 0, + 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, - 72, 0, 0, 10, 0, 117, 74, 75, 76, 77, - 0, 175, 0, 0, 80, 0, 81, 82, 0, 0, + 72, 0, 0, 10, 0, 118, 74, 75, 76, 77, + 0, 174, 0, 0, 80, 0, 81, 82, 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, 25, 26, 27, 28, 0, 0, 0, 0, - 30, 31, 115, 33, 34, 0, 0, 0, 0, 0, - 36, -457, -457, -457, -457, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 0, 258, 47, + 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, + 36, -471, -471, -471, -471, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 0, 260, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 0, 0, 58, 59, 0, 0, + 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, - 0, 72, 0, 0, 10, 0, 117, 74, 75, 76, - 77, 0, 179, 0, 0, 80, 0, 81, 82, 0, + 0, 72, 0, 0, 10, 0, 118, 74, 75, 76, + 77, 0, 176, 0, 0, 80, 0, 81, 82, 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, 25, 26, 27, 28, 0, 0, 0, - 0, 30, 31, 115, 33, 34, 0, 0, 0, 0, + 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 0, 0, 58, 59, 0, + 0, 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, - 9, 0, 72, 0, 0, 10, 0, 117, 74, 75, - 76, 77, 302, 0, 0, 0, 80, 0, 81, 82, - 0, 0, 0, 0, 409, 0, 0, 0, 0, 0, + 9, 0, 72, 0, 0, 10, 0, 118, 74, 75, + 76, 77, 0, 180, 0, 0, 80, 0, 81, 82, + 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, 25, 26, 27, 28, 0, 0, - 0, 0, 30, 31, 115, 33, 34, 0, 0, 0, + 0, 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 116, 0, 0, 58, 59, + 0, 0, 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, - 8, 9, 0, 72, 0, 0, 10, 0, 117, 74, - 75, 76, 77, 0, 0, 0, 0, 80, 0, 81, - 82, 0, 0, 0, 0, 434, 0, 0, 0, 0, + 8, 9, 0, 72, 0, 0, 10, 0, 118, 74, + 75, 76, 77, 304, 0, 0, 0, 80, 0, 81, + 82, 0, 0, 0, 0, 412, 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, 25, 26, 27, 28, 0, - 0, 0, 0, 30, 31, 115, 33, 34, 0, 0, + 0, 0, 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 116, 0, 0, 58, + 0, 0, 0, 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, - 7, 8, 9, 0, 72, 0, 0, 10, 0, 117, + 7, 8, 9, 0, 72, 0, 0, 10, 0, 118, 74, 75, 76, 77, 0, 0, 0, 0, 80, 0, - 81, 82, 0, 0, 0, 0, 436, 0, 0, 0, + 81, 82, 0, 0, 0, 0, 437, 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, 25, 26, 27, 28, - 0, 0, 0, 0, 30, 31, 115, 33, 34, 0, + 0, 0, 0, 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, 0, 10, 0, - 117, 74, 75, 76, 77, 0, 0, 0, 0, 80, - 0, 81, 82, 0, 0, 0, 0, 503, 0, 0, + 118, 74, 75, 76, 77, 0, 0, 0, 0, 80, + 0, 81, 82, 0, 0, 0, 0, 439, 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, 25, 26, 27, - 28, 0, 0, 0, 0, 30, 31, 115, 33, 34, + 28, 0, 0, 0, 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, 0, 10, - 0, 117, 74, 75, 76, 77, 0, 0, 0, 0, - 80, 0, 81, 82, 0, 0, 0, 0, 621, 0, + 0, 118, 74, 75, 76, 77, 0, 0, 0, 0, + 80, 0, 81, 82, 0, 0, 0, 0, 507, 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, 25, 26, - 27, 28, 0, 0, 0, 0, 30, 31, 115, 33, + 27, 28, 0, 0, 0, 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, 0, - 10, 0, 117, 74, 75, 76, 77, 0, 0, 0, - 0, 80, 0, 81, 82, 0, 0, 0, 0, 663, + 10, 0, 118, 74, 75, 76, 77, 0, 0, 0, + 0, 80, 0, 81, 82, 0, 0, 0, 0, 627, 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, 25, - 26, 27, 28, 0, 0, 0, 0, 30, 31, 115, + 26, 27, 28, 0, 0, 0, 0, 30, 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 0, 0, 58, 59, 0, 0, 0, 0, 0, + 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, 0, - 0, 10, 0, 117, 74, 75, 76, 77, 0, 0, + 0, 10, 0, 118, 74, 75, 76, 77, 0, 0, 0, 0, 80, 0, 81, 82, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 675, 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, 25, 26, 27, 28, 0, 0, 0, 0, 30, 31, - 115, 33, 34, 0, 0, 0, 0, 0, 36, 0, + 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 0, 0, 58, 59, 0, 0, 0, 0, + 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, 72, - 0, 0, 10, 0, 117, 74, 75, 76, 77, 0, + 0, 0, 10, 0, 118, 74, 75, 76, 77, 0, 0, 0, 0, 80, 0, 81, 82, 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, 25, 26, 27, 28, 0, 0, 0, 0, 30, - 31, 115, 350, 34, 0, 0, 0, 0, 0, 36, + 31, 116, 33, 34, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 116, 0, 0, 58, 59, 0, 0, 0, + 0, 0, 117, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, 67, - 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, - 72, 0, 233, 234, 235, 117, 74, 75, 76, 77, - 0, 0, 0, 0, 80, 0, 81, 82, 236, 0, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 0, 258, 233, 234, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 0, 258, 233, 234, 235, 0, 0, 0, + 68, 69, 70, 71, 5, 6, 7, 8, 9, 0, + 72, 0, 0, 10, 0, 118, 74, 75, 76, 77, + 0, 0, 0, 0, 80, 0, 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 0, 258, 0, 0, 0, 0, 233, - 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 491, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, - 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 236, 502, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, - 258, 233, 234, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 540, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 0, 0, 0, 11, 12, 0, 0, 0, 0, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 0, 0, 0, 0, + 30, 31, 116, 352, 34, 0, 0, 0, 0, 0, + 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 117, 0, 0, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 0, 66, + 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, + 0, 72, 0, 235, 236, 237, 118, 74, 75, 76, + 77, 0, 0, 0, 0, 80, 0, 81, 82, 238, + 0, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 0, 258, 0, 0, 0, 0, 0, 0, 233, 234, - 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 570, 236, 812, 237, 238, 239, 240, + 258, 259, 0, 260, 235, 236, 237, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 0, 260, 235, 236, 237, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 238, 0, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 0, 260, 0, 0, 0, 0, + 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 238, 506, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 0, 258, 233, - 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 608, 236, 0, 237, 238, 239, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, + 260, 235, 236, 237, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 238, 544, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, - 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 754, 236, 0, 237, 238, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 0, 0, 235, 236, 237, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, + 238, 832, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 0, 260, 0, 0, 235, 236, 237, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 238, 614, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 0, 260, 235, 236, + 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 771, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 0, 260, 235, + 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 238, 833, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, + 0, 0, 235, 236, 237, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 238, 261, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, - 258, 0, 0, 233, 234, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 813, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 0, 258, 233, 234, 235, 0, 0, 0, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 0, 260, 235, 236, 237, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, + 318, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 0, 260, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 236, 259, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 0, 258, 233, 234, 235, 0, 0, + 238, 319, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 0, 260, 0, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 236, 316, 237, 238, 239, 240, 241, 242, 243, + 0, 0, 0, 238, 325, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 0, 258, 0, 0, 233, 234, - 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 317, 237, 238, 239, 240, + 254, 255, 256, 257, 258, 259, 0, 260, 0, 235, + 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 364, 238, 0, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, + 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 434, 238, 0, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 0, 258, 233, - 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 323, 237, 238, 239, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, + 260, 235, 236, 237, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 238, 447, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, - 0, 233, 234, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 361, 236, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 0, 235, 236, 237, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, + 448, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 0, 258, 233, 234, 235, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 236, 431, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 258, 259, 0, 260, 235, 236, 237, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 458, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 0, 258, 233, 234, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 444, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 257, 258, 259, 0, 260, 235, 236, 237, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 238, 553, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 0, 258, 0, 233, 234, 235, 0, 0, + 256, 257, 258, 259, 0, 260, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 236, 445, 237, 238, 239, 240, 241, 242, 243, + 0, 0, 0, 238, 776, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 0, 258, 233, 234, 235, 0, + 254, 255, 256, 257, 258, 259, 0, 260, 235, 236, + 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 927, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 0, 260, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 942, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 236, 455, 237, 238, 239, 240, 241, 242, + 0, 0, 293, 238, 618, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 0, 260, 235, 236, + 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 547, 238, 0, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 0, 258, 233, 234, 235, + 253, 254, 255, 256, 257, 258, 259, 0, 260, 236, + 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 0, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 237, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 549, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 0, 258, 0, 233, - 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 759, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, - 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 236, 908, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, - 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 923, 233, - 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 291, 236, 612, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, - 233, 234, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 543, 236, 0, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, - 258, 234, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 236, 0, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 235, - 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 0, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 236, 258, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, - 258, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 0, 238, 0, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 0, 258, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 0, 258, 239, 240, 241, 242, + 256, 257, 258, 259, 238, 260, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 0, 258 + 253, 254, 255, 256, 257, 258, 259, 0, 260, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, + 260, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260 }; static const yytype_int16 yycheck[] = { - 23, 24, 118, 27, 27, 27, 27, 4, 370, 278, - 443, 572, 422, 258, 434, 550, 436, 8, 49, 734, - 357, 8, 8, 8, 26, 8, 8, 8, 4, 52, - 440, 322, 26, 61, 61, 232, 8, 71, 8, 600, - 8, 8, 8, 61, 73, 8, 63, 8, 149, 61, - 73, 8, 8, 76, 71, 61, 73, 73, 71, 56, - 93, 94, 73, 23, 24, 0, 71, 27, 73, 98, - 73, 71, 73, 73, 0, 71, 148, 78, 275, 151, - 152, 197, 71, 503, 93, 94, 496, 149, 112, 144, - 287, 288, 144, 148, 149, 112, 148, 149, 149, 144, - 297, 144, 299, 148, 149, 148, 375, 59, 60, 71, - 61, 73, 112, 90, 148, 90, 139, 144, 152, 116, - 153, 149, 149, 146, 152, 152, 144, 73, 145, 152, - 26, 148, 145, 71, 152, 148, 160, 154, 154, 170, - 152, 142, 143, 154, 153, 145, 152, 152, 148, 154, - 152, 154, 514, 149, 154, 71, 157, 151, 495, 148, - 151, 152, 185, 118, 151, 151, 151, 190, 151, 151, - 151, 148, 123, 148, 584, 198, 199, 200, 893, 151, - 150, 71, 150, 150, 150, 208, 146, 150, 211, 150, - 152, 167, 154, 150, 150, 141, 142, 143, 78, 609, - 610, 621, 31, 31, 149, 615, 616, 8, 232, 148, - 149, 232, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 73, 71, 761, 73, 31, 145, - 190, 428, 148, 595, 258, 258, 258, 258, 198, 199, - 200, 149, 71, 663, 73, 73, 443, 641, 208, 149, - 71, 275, 73, 31, 275, 31, 144, 149, 59, 60, - 148, 141, 285, 287, 288, 144, 287, 288, 118, 148, - 73, 149, 295, 297, 71, 299, 297, 149, 299, 71, - 149, 73, 149, 112, 529, 73, 149, 71, 149, 73, - 78, 112, 71, 142, 143, 73, 319, 73, 258, 71, - 152, 73, 74, 326, 125, 71, 152, 669, 154, 703, - 333, 705, 61, 45, 46, 47, 145, 49, 71, 148, - 112, 344, 755, 31, 145, 154, 144, 148, 112, 126, - 127, 319, 149, 154, 625, 144, 73, 368, 61, 749, - 123, 78, 66, 67, 68, 333, 637, 370, 145, 150, - 619, 148, 98, 145, 142, 143, 148, 381, 148, 721, - 921, 145, 154, 796, 148, 49, 363, 148, 152, 71, - 154, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 73, 344, 232, 409, 363, 78, 148, - 149, 422, 144, 73, 92, 93, 94, 144, 78, 92, - 93, 94, 693, 73, 428, 142, 143, 428, 78, 440, - 155, 434, 774, 436, 92, 93, 94, 59, 60, 443, - 148, 149, 443, 8, 126, 127, 66, 67, 275, 92, - 93, 94, 148, 456, 457, 458, 66, 67, 68, 462, - 287, 288, 148, 145, 66, 67, 148, 144, 150, 409, - 144, 141, 142, 143, 477, 153, 151, 152, 820, 123, - 822, 141, 142, 143, 149, 496, 23, 24, 456, 457, - 458, 13, 142, 143, 434, 153, 436, 81, 82, 151, - 503, 750, 751, 151, 13, 508, 205, 510, 150, 156, - 209, 514, 152, 71, 517, 786, 153, 788, 860, 218, - 71, 220, 221, 222, 121, 529, 529, 529, 529, 151, - 61, 26, 98, 149, 149, 82, 8, 477, 151, 71, - 508, 107, 108, 109, 110, 111, 112, 818, 90, 552, - 553, 554, 894, 71, 42, 43, 44, 45, 46, 47, - 563, 49, 565, 503, 149, 73, 71, 150, 571, 572, - 151, 150, 575, 584, 577, 61, 847, 153, 755, 13, - 591, 121, 853, 155, 155, 149, 554, 929, 149, 529, - 593, 547, 595, 149, 149, 563, 149, 600, 609, 610, - 556, 26, 13, 571, 615, 616, 149, 153, 149, 148, - 881, 953, 552, 553, 144, 886, 71, 13, 621, 796, - 107, 108, 109, 110, 111, 112, 151, 153, 149, 632, - 149, 8, 148, 150, 149, 575, 99, 577, 909, 122, - 643, 104, 645, 155, 107, 108, 109, 110, 111, 112, - 113, 654, 152, 150, 150, 71, 124, 155, 8, 141, - 663, 71, 102, 155, 935, 13, 669, 938, 153, 150, - 673, 942, 628, 150, 152, 643, 8, 645, 8, 150, - 149, 621, 124, 153, 151, 13, 782, 151, 150, 960, - 153, 151, 632, 149, 697, 4, 5, 6, 701, 8, - 9, 10, 11, 12, 13, 14, 150, 16, 17, 18, - 19, 20, 21, 22, 654, 150, 25, 26, 721, 151, - 150, 104, 73, 663, 13, 61, 150, 150, 37, 150, - 150, 123, 61, 701, 89, 44, 45, 155, 749, 742, - 124, 150, 51, 150, 71, 149, 152, 152, 13, 123, - 99, 755, 151, 151, 755, 104, 733, 697, 107, 108, - 109, 110, 111, 112, 113, 83, 151, 13, 77, 73, - 773, 774, 152, 71, 742, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 73, 791, 13, - 150, 155, 796, 155, 151, 796, 149, 151, 23, 24, - 13, 71, 27, 150, 153, 773, 13, 153, 153, 73, - 149, 13, 121, 68, 26, 73, 819, 820, 153, 822, - 129, 59, 60, 791, 90, 105, 151, 153, 90, 151, - 144, 834, 73, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 801, 49, 87, 151, 150, - 71, 819, 161, 319, 163, 13, 149, 860, 167, 73, - 169, 151, 68, 172, 867, 8, 834, 333, 871, 26, - 71, 8, 71, 152, 877, 85, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 151, 150, - 149, 894, 73, 153, 203, 326, 153, 102, 207, 867, - 150, 152, 951, 871, 153, 363, 363, 477, 217, 877, - 595, 633, 697, 807, 811, 668, 673, 920, 921, 331, - 711, 146, 59, 60, 679, 234, 929, 860, 884, 563, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 879, - 953, 562, 920, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 190, 203, 276, 924, 278, - 279, 190, 577, 198, 199, 200, 23, 24, 654, -1, - -1, -1, 291, 208, 293, -1, -1, -1, -1, -1, - 456, 457, -1, -1, -1, -1, 305, -1, -1, 308, - -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 150, -1, -1, -1, -1, -1, 328, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 258, -1, -1, -1, -1, -1, -1, - -1, -1, 508, 42, 43, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 363, -1, -1, -1, -1, -1, - -1, -1, 61, -1, -1, -1, 375, -1, 377, -1, - 69, 70, 71, 382, -1, 384, -1, 386, 387, 388, - 79, -1, -1, -1, -1, -1, -1, -1, 554, -1, - -1, -1, -1, -1, 319, -1, -1, -1, -1, 146, - -1, -1, -1, -1, -1, 571, -1, -1, 333, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, 344, - -1, -1, -1, 170, -1, -1, -1, 126, -1, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, - -1, 140, -1, 190, -1, -1, 145, 146, 147, 148, - -1, 198, 199, 200, -1, -1, -1, -1, -1, -1, - -1, 208, -1, -1, -1, -1, -1, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, 643, -1, 645, - -1, 490, -1, 25, 409, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, -1, 49, -1, 434, - -1, 436, -1, -1, -1, -1, 525, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, - -1, 456, 457, 458, 543, 701, -1, -1, 547, -1, - -1, 550, 551, -1, -1, -1, -1, 556, -1, -1, - -1, -1, 477, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, 60, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 742, -1, 503, -1, - -1, -1, -1, 508, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, -1, -1, 344, -1, -1, - -1, -1, -1, -1, 529, -1, -1, 773, -1, -1, - 619, 620, -1, 155, -1, -1, -1, -1, 627, 628, - -1, 368, -1, -1, -1, 791, -1, 552, 553, 554, - -1, -1, -1, -1, -1, -1, -1, -1, 563, -1, - -1, -1, -1, -1, -1, -1, 571, 656, -1, -1, - 575, -1, 577, 819, -1, -1, -1, -1, -1, -1, - -1, -1, 409, -1, -1, -1, -1, -1, 834, 678, - -1, -1, -1, -1, -1, 422, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 434, -1, 436, - -1, -1, -1, 440, -1, -1, 621, -1, -1, -1, - -1, 867, -1, -1, -1, 871, -1, 632, -1, -1, - -1, 877, -1, -1, -1, -1, -1, -1, 643, -1, - 645, -1, -1, -1, -1, -1, -1, -1, -1, 654, - 477, -1, -1, -1, -1, -1, -1, -1, 663, -1, - -1, 750, 751, -1, -1, -1, -1, -1, -1, 496, - -1, -1, 761, -1, 920, -1, 503, -1, -1, -1, - 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 697, -1, -1, -1, 701, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 801, -1, -1, -1, -1, 806, 807, -1, - -1, -1, -1, -1, -1, 552, 553, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 575, -1, - 577, -1, -1, -1, 843, -1, -1, 584, -1, -1, - -1, -1, -1, -1, 591, -1, -1, -1, 773, -1, + 23, 24, 4, 27, 27, 119, 446, 576, 4, 280, + 260, 437, 751, 439, 554, 27, 8, 8, 359, 8, + 670, 234, 8, 8, 8, 26, 8, 26, 8, 52, + 8, 31, 73, 8, 425, 23, 24, 606, 63, 27, + 8, 8, 8, 373, 71, 8, 71, 78, 73, 8, + 73, 8, 443, 76, 56, 61, 61, 31, 31, 144, + 92, 93, 94, 148, 277, 0, 27, 0, 49, 73, + 73, 71, 149, 73, 90, 73, 289, 290, 71, 148, + 118, 507, 151, 152, 198, 149, 299, 112, 301, 144, + 61, 61, 144, 148, 149, 98, 148, 149, 144, 73, + 73, 113, 148, 149, 66, 67, 68, 378, 499, 61, + 141, 61, 112, 154, 149, 117, 61, 140, 123, 769, + 145, 153, 149, 148, 147, 71, 73, 73, 8, 154, + 153, 78, 148, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 145, 152, 797, 148, 161, + 154, 152, 151, 123, 154, 148, 154, 498, 150, 147, + 151, 152, 151, 186, 26, 151, 151, 151, 191, 151, + 71, 151, 168, 151, 913, 150, 199, 200, 201, 59, + 60, 152, 150, 150, 150, 71, 209, 150, 518, 212, + 171, 150, 144, 150, 144, 142, 143, 588, 73, 149, + 152, 627, 152, 191, 149, 90, 152, 152, 154, 149, + 157, 199, 200, 201, 61, 73, 59, 60, 431, 324, + 78, 209, 234, 73, 615, 616, 71, 149, 78, 669, + 621, 622, 71, 446, 73, 149, 260, 260, 778, 61, + 149, 73, 93, 94, 145, 8, 78, 148, 260, 675, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 148, 148, 287, 277, 152, 142, 143, 647, + 150, 601, 260, 234, 297, 71, 123, 289, 290, 71, + 71, 73, 73, 533, 142, 143, 71, 299, 71, 301, + 42, 43, 142, 143, 148, 149, 59, 60, 321, 260, + 145, 123, 153, 148, 31, 328, 92, 93, 94, 61, + 142, 143, 335, 152, 118, 154, 277, 69, 70, 71, + 112, 144, 149, 346, 71, 148, 73, 79, 289, 290, + 126, 127, 772, 321, 148, 149, 71, 715, 299, 717, + 301, 31, 149, 71, 144, 73, 73, 335, 148, 145, + 373, 681, 148, 145, 625, 149, 148, 152, 346, 73, + 112, 152, 154, 154, 366, 112, 234, 153, 148, 149, + 366, 940, 384, 149, 126, 766, 128, 129, 130, 131, + 132, 133, 149, 73, 112, 93, 94, 150, 140, 412, + 371, 126, 127, 145, 146, 147, 148, 668, 145, 73, + 71, 148, 73, 149, 78, 152, 71, 154, 738, 277, + 145, 151, 152, 148, 437, 150, 439, 145, 73, 431, + 148, 289, 290, 78, 412, 31, 154, 141, 142, 143, + 71, 45, 46, 47, 446, 49, 459, 460, 461, 66, + 67, 112, 465, 71, 425, 153, 92, 93, 94, 437, + 71, 439, 73, 74, 125, 144, 669, 480, 66, 67, + 731, 791, 443, 92, 93, 94, 61, 141, 142, 143, + 431, 459, 460, 461, 145, 23, 24, 148, 66, 67, + 68, 81, 82, 154, 507, 446, 141, 142, 143, 512, + 149, 514, 480, 144, 99, 518, 767, 768, 521, 104, + 61, 98, 107, 108, 109, 110, 111, 112, 113, 533, + 533, 206, 842, 123, 844, 210, 148, 49, 499, 507, + 144, 533, 148, 8, 512, 220, 631, 222, 223, 224, + 155, 144, 148, 556, 557, 558, 148, 144, 643, 123, + 144, 13, 151, 13, 567, 533, 569, 149, 153, 152, + 151, 881, 575, 576, 150, 551, 579, 150, 581, 772, + 71, 153, 156, 71, 560, 121, 61, 26, 556, 557, + 558, 149, 533, 149, 151, 82, 599, 8, 601, 567, + 90, 71, 71, 606, 914, 98, 73, 575, 150, 149, + 71, 579, 151, 581, 107, 108, 109, 110, 111, 112, + 705, 150, 153, 61, 627, 23, 24, 588, 13, 27, + 149, 149, 121, 149, 149, 638, 597, 26, 948, 149, + 42, 43, 44, 45, 46, 47, 649, 49, 651, 155, + 155, 149, 13, 149, 615, 616, 148, 660, 634, 627, + 621, 622, 972, 107, 108, 109, 110, 111, 112, 153, + 638, 144, 675, 13, 71, 151, 153, 669, 681, 150, + 8, 649, 685, 651, 148, 99, 149, 149, 122, 149, + 104, 150, 660, 107, 108, 109, 110, 111, 112, 113, + 155, 152, 150, 71, 124, 8, 709, 675, 155, 803, + 713, 141, 71, 13, 155, 102, 153, 150, 150, 321, + 8, 152, 807, 150, 809, 8, 149, 151, 669, 124, + 151, 13, 151, 335, 150, 738, 149, 123, 150, 153, + 104, 709, 150, 153, 151, 713, 150, 73, 13, 147, + 150, 150, 61, 838, 150, 61, 759, 4, 5, 6, + 150, 8, 9, 10, 11, 12, 13, 14, 750, 16, + 17, 18, 19, 20, 21, 22, 155, 123, 25, 26, + 772, 150, 89, 868, 150, 124, 71, 790, 791, 874, + 37, 759, 155, 191, 152, 149, 152, 44, 45, 13, + 151, 199, 200, 201, 51, 766, 83, 23, 24, 812, + 151, 209, 155, 151, 13, 152, 901, 73, 71, 73, + 13, 906, 790, 150, 155, 155, 149, 151, 150, 13, + 77, 772, 151, 49, 71, 13, 153, 73, 841, 842, + 153, 844, 13, 928, 812, 821, 26, 149, 68, 73, + 90, 90, 153, 856, 153, 151, 105, 459, 460, 461, + 151, 73, 260, 144, 151, 87, 150, 71, 13, 954, + 149, 73, 957, 841, 68, 122, 961, 151, 881, 71, + 71, 8, 26, 130, 85, 888, 152, 150, 856, 892, + 151, 153, 102, 153, 979, 898, 73, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 150, + 512, 914, 970, 328, 149, 162, 601, 164, 152, 480, + 888, 168, 153, 170, 892, 639, 173, 709, 904, 827, + 898, 147, 831, 321, 685, 680, 939, 940, 366, 333, + 366, 881, 732, 59, 60, 948, 77, 335, 346, 691, + 723, 567, 566, 191, 795, 171, 558, 204, 660, 581, + 204, 208, -1, -1, -1, 567, -1, 943, -1, 972, + -1, 939, 219, 575, -1, 191, -1, -1, -1, -1, + -1, -1, -1, 199, 200, 201, -1, -1, -1, 236, + -1, -1, -1, 209, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, -1, 412, -1, -1, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, -1, + -1, 278, -1, 280, 281, 151, -1, -1, -1, 437, + -1, 439, -1, -1, -1, -1, 293, 649, 295, 651, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 609, 610, -1, -1, 791, -1, 615, 616, - -1, 880, -1, -1, 621, 884, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 632, -1, -1, -1, -1, - -1, -1, -1, -1, 819, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 654, -1, 834, - -1, -1, -1, -1, -1, 924, 663, -1, -1, -1, - 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, + 307, -1, -1, 310, -1, -1, -1, -1, 9, 10, + 11, 459, 460, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 480, 330, 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, 507, + -1, 713, -1, -1, -1, -1, -1, -1, -1, 366, + -1, -1, -1, -1, 512, -1, -1, -1, -1, -1, + 346, 378, -1, 380, -1, 533, -1, -1, 385, -1, + 387, -1, 389, 390, 391, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 371, -1, 759, 556, 557, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 867, -1, -1, -1, 871, -1, -1, -1, - 697, -1, 877, -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, 61, 62, - 63, 64, 65, -1, -1, -1, 69, 70, 71, 72, - 73, -1, 75, -1, -1, 920, 79, 80, 81, 82, - -1, 84, 749, 86, -1, 88, -1, -1, 91, -1, - -1, -1, 95, 96, 97, 98, 99, 100, 101, -1, - 103, 104, -1, 106, -1, -1, -1, 110, 111, 112, - -1, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, 126, -1, 128, 129, 130, 131, 132, - 133, 3, 4, 5, 6, 7, -1, 140, -1, -1, - 12, -1, 145, 146, 147, 148, 149, -1, 151, 152, - -1, 154, -1, 156, 157, -1, -1, -1, -1, -1, + 558, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 579, -1, 581, -1, -1, -1, 575, 790, -1, + -1, -1, -1, -1, -1, -1, 412, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 425, + 812, -1, -1, -1, 155, -1, -1, -1, -1, -1, + -1, 437, -1, 439, -1, -1, -1, 443, -1, 627, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 841, + 638, -1, -1, 59, 60, -1, 493, -1, -1, -1, + -1, -1, -1, -1, 856, -1, -1, -1, -1, -1, + -1, 649, 660, 651, 480, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 90, -1, -1, 675, -1, -1, + -1, -1, 529, 499, -1, -1, 888, -1, -1, -1, + 892, 507, -1, -1, -1, -1, 898, -1, -1, -1, + 547, -1, -1, -1, 551, -1, -1, 554, 555, -1, + -1, 709, -1, 560, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 713, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 939, -1, -1, + 556, 557, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 579, -1, 581, -1, -1, -1, -1, + -1, 759, 588, -1, -1, -1, -1, -1, 625, 626, + -1, 597, -1, -1, -1, -1, 633, 634, 59, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 615, + 616, -1, 790, -1, -1, 621, 622, -1, -1, -1, + -1, 627, -1, -1, -1, 662, -1, -1, -1, -1, + -1, 668, 638, -1, 812, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, -1, 49, 690, 660, -1, -1, -1, -1, -1, + -1, -1, -1, 841, -1, -1, -1, -1, -1, 675, + -1, -1, -1, -1, -1, -1, -1, -1, 856, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, -1, 49, -1, 731, -1, -1, -1, -1, -1, + -1, -1, -1, 709, -1, -1, -1, -1, -1, -1, + 888, -1, -1, -1, 892, -1, -1, -1, -1, -1, + 898, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 767, 768, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 778, -1, -1, -1, -1, -1, -1, -1, 786, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 766, 939, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, + -1, -1, -1, -1, 821, -1, -1, -1, -1, 826, + 827, -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, 864, -1, -1, + -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, + 12, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 900, 49, -1, -1, 904, -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, - 72, 73, -1, 75, -1, -1, -1, 79, 80, 81, + 72, 73, -1, 75, -1, -1, 943, 79, 80, 81, 82, -1, 84, -1, 86, -1, 88, -1, -1, 91, - -1, -1, -1, 95, 96, 97, 98, -1, 100, 101, - -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, + 153, -1, -1, 95, 96, 97, 98, 99, 100, 101, + -1, 103, 104, -1, 106, -1, -1, -1, 110, 111, 112, -1, 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, 126, -1, 128, 129, 130, 131, - 132, 133, -1, 3, 4, 5, 6, 7, 140, -1, - -1, -1, 12, 145, 146, 147, 148, 149, -1, 151, - 152, -1, 154, -1, 156, 157, 26, -1, -1, -1, + 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, + -1, 12, -1, 145, 146, 147, 148, 149, -1, 151, + 152, -1, 154, -1, 156, 157, -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, 61, 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, 97, 98, -1, - 100, 101, -1, 103, -1, -1, 106, -1, -1, -1, - -1, -1, 112, -1, 114, 115, 116, -1, -1, -1, - -1, -1, -1, -1, -1, 125, 126, -1, 128, 129, - 130, 131, 132, 133, -1, 3, 4, 5, 6, 7, - 140, -1, -1, -1, 12, 145, 146, 147, 148, 149, - -1, 151, 152, -1, 154, -1, 156, 157, 26, -1, + -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 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, 97, 98, -1, 100, + 101, -1, 103, -1, -1, 106, -1, -1, -1, 110, + 111, 112, -1, 114, 115, 116, 117, 118, 119, 120, + -1, -1, -1, -1, 125, 126, -1, 128, 129, 130, + 131, 132, 133, -1, 3, 4, 5, 6, 7, 140, + -1, -1, -1, 12, 145, 146, 147, 148, 149, -1, + 151, 152, -1, 154, -1, 156, 157, 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, 61, 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, 97, - 98, -1, 100, 101, -1, 103, -1, -1, 106, -1, - -1, -1, -1, -1, 112, -1, 114, 115, 116, -1, - -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, - 128, 129, 130, 131, 132, 133, -1, 3, 4, 5, - 6, 7, 140, -1, -1, -1, 12, 145, 146, 147, - 148, 149, -1, 151, 152, -1, 154, -1, 156, 157, - 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, 61, 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, 97, 98, -1, 100, 101, -1, 103, -1, -1, - 106, -1, -1, -1, -1, -1, 112, -1, 114, 115, - 116, -1, -1, -1, -1, -1, -1, -1, -1, 125, - 126, -1, 128, 129, 130, 131, 132, 133, -1, 3, - 4, 5, 6, 7, 140, -1, -1, -1, 12, 145, - 146, 147, 148, 149, -1, 151, 152, -1, 154, -1, - 156, 157, 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, 61, 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, 97, 98, -1, 100, 101, -1, 103, - -1, -1, 106, -1, -1, -1, -1, -1, 112, -1, - 114, 115, 116, -1, -1, -1, -1, -1, -1, -1, - -1, 125, 126, -1, 128, 129, 130, 131, 132, 133, - 3, 4, 5, 6, 7, -1, 140, -1, -1, 12, - -1, 145, 146, 147, 148, 149, -1, 151, 152, -1, - 154, -1, 156, 157, -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, 61, 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, 97, 98, + -1, 100, 101, -1, 103, -1, -1, 106, -1, -1, + -1, -1, -1, 112, -1, 114, 115, 116, -1, -1, + -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, + 129, 130, 131, 132, 133, -1, 3, 4, 5, 6, + 7, 140, -1, -1, -1, 12, 145, 146, 147, 148, + 149, -1, 151, 152, -1, 154, -1, 156, 157, 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, 61, 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, + 97, 98, -1, 100, 101, -1, 103, -1, -1, 106, + -1, -1, -1, -1, -1, 112, -1, 114, 115, 116, + -1, -1, -1, -1, -1, -1, -1, -1, 125, 126, + -1, 128, 129, 130, 131, 132, 133, -1, 3, 4, + 5, 6, 7, 140, -1, -1, -1, 12, 145, 146, + 147, 148, 149, -1, 151, 152, -1, 154, -1, 156, + 157, 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, 61, 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, 97, 98, -1, 100, 101, -1, 103, -1, + -1, 106, -1, -1, -1, -1, -1, 112, -1, 114, + 115, 116, -1, -1, -1, -1, -1, -1, -1, -1, + 125, 126, -1, 128, 129, 130, 131, 132, 133, -1, + 3, 4, 5, 6, 7, 140, -1, -1, -1, 12, + 145, 146, 147, 148, 149, -1, 151, 152, -1, 154, + -1, 156, 157, 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, 61, 62, @@ -2304,25 +2302,25 @@ static const yytype_int16 yycheck[] = -1, -1, 125, 126, -1, 128, 129, 130, 131, 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, -1, 12, -1, 145, 146, 147, 148, 149, -1, 151, 152, - -1, 154, -1, 156, 157, -1, -1, -1, -1, 31, + -1, 154, -1, 156, 157, -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, 61, - 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, - 72, 73, -1, -1, -1, -1, -1, 79, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 98, 49, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, -1, -1, 115, 116, -1, -1, -1, -1, -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, 97, 98, -1, 100, 101, + -1, 103, -1, -1, 106, -1, -1, -1, -1, -1, + 112, -1, 114, 115, 116, -1, -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, 129, 130, 131, 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, - -1, 12, -1, 145, 146, 147, 148, 149, -1, -1, - -1, -1, 154, -1, 156, 157, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 12, -1, 145, 146, 147, 148, 149, -1, 151, + 152, -1, 154, -1, 156, 157, -1, -1, -1, -1, + 31, -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, 61, 62, 63, 64, -1, -1, -1, -1, 69, 70, - 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, + 71, 72, 73, -1, -1, -1, -1, -1, 79, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 98, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -2330,14 +2328,14 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 125, 126, -1, 128, 129, 130, 131, 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, -1, 12, -1, 145, 146, 147, 148, 149, -1, - 151, -1, -1, 154, -1, 156, 157, -1, -1, -1, + -1, -1, -1, 154, -1, 156, 157, -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, 61, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, -1, 79, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, -1, 49, 98, -1, + -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 98, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, 115, 116, -1, -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, 129, @@ -2369,8 +2367,8 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, 129, 130, 131, 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, -1, 12, -1, 145, 146, 147, - 148, 149, 150, -1, -1, -1, 154, -1, 156, 157, - -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, + 148, 149, -1, 151, -1, -1, 154, -1, 156, 157, + -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, 61, 62, 63, 64, -1, -1, @@ -2382,7 +2380,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, 129, 130, 131, 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, -1, 12, -1, 145, 146, - 147, 148, 149, -1, -1, -1, -1, 154, -1, 156, + 147, 148, 149, 150, -1, -1, -1, 154, -1, 156, 157, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, @@ -2449,7 +2447,7 @@ static const yytype_int16 yycheck[] = 132, 133, 3, 4, 5, 6, 7, -1, 140, -1, -1, 12, -1, 145, 146, 147, 148, 149, -1, -1, -1, -1, 154, -1, 156, 157, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 31, -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, 61, 62, 63, 64, -1, -1, -1, -1, 69, 70, @@ -2472,24 +2470,33 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, 115, 116, -1, -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, -1, -1, - 140, -1, 9, 10, 11, 145, 146, 147, 148, 149, - -1, -1, -1, -1, 154, -1, 156, 157, 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, + 130, 131, 132, 133, 3, 4, 5, 6, 7, -1, + 140, -1, -1, 12, -1, 145, 146, 147, 148, 149, + -1, -1, -1, -1, 154, -1, 156, 157, -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, 61, 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, 98, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, 115, 116, -1, -1, + -1, -1, -1, -1, -1, -1, 125, 126, -1, 128, + 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, + -1, 140, -1, 9, 10, 11, 145, 146, 147, 148, + 149, -1, -1, -1, -1, 154, -1, 156, 157, 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, -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, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 25, 153, 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, 9, 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, -1, 49, -1, -1, -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 153, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -2498,20 +2505,28 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, 25, 153, 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, 9, 10, + -1, 49, -1, -1, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 153, + 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, -1, -1, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 153, 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, 153, 25, 26, 27, 28, 29, 30, + -1, -1, -1, -1, 25, 153, 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, 153, 25, -1, 27, 28, 29, + -1, -1, -1, -1, -1, 25, 151, 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, 153, 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, 9, 10, 11, -1, -1, -1, -1, + -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 25, 151, + 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, 151, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, @@ -2519,79 +2534,69 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 151, 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, + 45, 46, 47, -1, 49, -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 151, 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, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 25, 151, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, + -1, -1, -1, 25, 151, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, -1, 49, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 25, 151, 27, 28, 29, + -1, -1, -1, -1, 150, 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, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 150, 25, -1, 27, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 150, 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, 150, 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, 150, - 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, 49, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 150, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, -1, 49, -1, 9, 10, 11, -1, -1, + 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 25, 150, 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, 150, 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, 150, 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, + 44, 45, 46, 47, -1, 49, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 150, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, -1, 49, -1, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 25, 150, 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, 150, 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, -1, -1, -1, -1, -1, 150, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 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, 124, 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, + 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, 150, 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, -1, -1, -1, -1, -1, 150, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 124, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 25, 49, 27, 28, + 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 124, 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, 25, 49, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, -1, 49, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, - 49, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, -1, 49, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, 49, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, -1, 49 + 49, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + -1, 49 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2607,94 +2612,96 @@ static const yytype_uint16 yystos[] = 117, 118, 119, 120, 125, 126, 128, 129, 130, 131, 132, 133, 140, 145, 146, 147, 148, 149, 151, 152, 154, 156, 157, 162, 163, 168, 172, 173, 203, 204, - 206, 208, 211, 213, 270, 284, 287, 296, 307, 310, - 314, 315, 317, 318, 328, 329, 330, 331, 333, 334, - 335, 336, 342, 352, 355, 71, 112, 145, 284, 314, - 314, 149, 314, 314, 314, 314, 314, 314, 314, 281, - 314, 314, 314, 314, 314, 314, 314, 112, 145, 148, - 162, 296, 317, 318, 330, 317, 31, 314, 346, 347, - 314, 145, 148, 162, 296, 298, 299, 330, 334, 335, - 342, 149, 304, 149, 26, 266, 314, 180, 149, 149, - 149, 190, 149, 151, 314, 151, 314, 71, 71, 151, - 270, 314, 318, 191, 314, 148, 162, 166, 167, 73, - 154, 240, 241, 118, 118, 73, 242, 284, 149, 149, - 149, 149, 149, 149, 73, 78, 141, 142, 143, 348, - 349, 148, 152, 162, 162, 314, 169, 152, 78, 305, - 348, 78, 348, 148, 149, 8, 151, 71, 71, 31, - 205, 332, 144, 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, 151, - 59, 60, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 149, 144, 61, 123, 61, 152, - 154, 335, 205, 314, 314, 148, 162, 144, 144, 316, - 318, 124, 155, 8, 312, 148, 162, 144, 273, 144, - 123, 335, 150, 314, 314, 8, 151, 172, 178, 267, - 268, 314, 270, 318, 149, 314, 151, 151, 151, 13, - 151, 151, 152, 151, 162, 90, 8, 151, 152, 315, - 318, 8, 151, 13, 8, 151, 205, 201, 202, 318, - 318, 353, 318, 150, 271, 346, 61, 123, 141, 349, - 72, 314, 318, 78, 141, 349, 162, 165, 151, 152, - 149, 150, 153, 170, 314, 156, 157, 71, 288, 71, - 121, 212, 210, 71, 149, 61, 71, 152, 328, 335, - 341, 342, 276, 314, 277, 26, 278, 274, 275, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 298, 31, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 295, 71, 328, 341, 314, 337, 319, 337, - 314, 150, 162, 71, 31, 314, 31, 314, 162, 328, - 149, 306, 328, 300, 150, 150, 314, 82, 314, 151, - 8, 90, 90, 71, 222, 150, 42, 43, 61, 126, - 140, 145, 148, 162, 296, 307, 308, 309, 169, 90, - 71, 167, 314, 241, 308, 73, 149, 8, 150, 8, - 150, 150, 151, 125, 318, 343, 344, 150, 350, 71, - 61, 153, 153, 149, 160, 164, 290, 117, 171, 172, - 203, 204, 153, 31, 238, 239, 270, 318, 13, 145, - 148, 162, 297, 209, 121, 214, 207, 282, 337, 314, - 149, 149, 335, 314, 314, 280, 314, 314, 314, 63, - 318, 238, 149, 149, 155, 328, 338, 340, 341, 155, - 153, 316, 316, 124, 238, 338, 26, 174, 149, 150, - 182, 269, 188, 186, 13, 8, 150, 185, 308, 308, - 308, 311, 313, 149, 78, 148, 162, 144, 153, 71, - 153, 13, 283, 202, 151, 354, 149, 8, 150, 71, - 73, 74, 351, 314, 289, 153, 160, 238, 149, 316, - 150, 8, 308, 148, 162, 122, 215, 216, 297, 152, - 149, 126, 127, 235, 236, 237, 297, 155, 153, 292, - 291, 314, 26, 298, 150, 294, 293, 339, 320, 61, - 152, 31, 314, 150, 301, 176, 172, 181, 179, 267, - 314, 318, 31, 218, 318, 308, 71, 26, 172, 221, - 26, 152, 223, 124, 155, 8, 312, 311, 162, 71, - 102, 308, 235, 318, 345, 344, 13, 155, 155, 238, - 153, 150, 150, 31, 270, 318, 162, 216, 152, 8, - 243, 235, 150, 8, 31, 73, 238, 238, 279, 272, - 238, 238, 149, 324, 325, 327, 337, 314, 316, 302, - 169, 175, 314, 26, 172, 228, 151, 124, 217, 318, - 217, 13, 169, 151, 224, 151, 224, 308, 308, 150, - 149, 150, 343, 314, 153, 150, 151, 316, 243, 297, - 99, 104, 107, 108, 109, 110, 111, 112, 113, 153, - 244, 247, 260, 261, 262, 263, 265, 150, 104, 285, - 237, 73, 13, 150, 150, 314, 306, 150, 150, 326, - 61, 61, 321, 155, 153, 123, 303, 177, 229, 150, - 169, 183, 218, 150, 150, 308, 89, 224, 92, 93, - 94, 224, 153, 124, 192, 285, 150, 153, 71, 248, - 297, 245, 284, 263, 8, 151, 152, 149, 152, 31, - 73, 13, 308, 238, 337, 337, 123, 322, 338, 231, + 206, 208, 211, 213, 276, 278, 292, 295, 304, 315, + 318, 322, 323, 325, 326, 336, 337, 338, 339, 341, + 342, 343, 344, 350, 360, 363, 71, 112, 145, 292, + 322, 322, 149, 322, 322, 322, 322, 322, 322, 322, + 289, 322, 322, 322, 322, 322, 322, 322, 112, 145, + 148, 162, 304, 325, 326, 338, 325, 31, 322, 354, + 355, 322, 145, 148, 162, 304, 306, 307, 338, 342, + 343, 350, 149, 312, 149, 26, 266, 322, 180, 149, + 149, 149, 190, 149, 151, 322, 151, 322, 71, 71, + 151, 278, 322, 326, 191, 322, 148, 162, 166, 167, + 73, 154, 240, 241, 118, 118, 73, 242, 292, 149, + 149, 149, 149, 149, 149, 73, 78, 141, 142, 143, + 356, 357, 148, 152, 162, 162, 276, 322, 169, 152, + 78, 313, 356, 78, 356, 148, 149, 8, 151, 71, + 71, 31, 205, 340, 144, 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, 151, 59, 60, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 149, 144, 61, 123, + 61, 152, 154, 343, 205, 322, 322, 148, 162, 144, + 144, 324, 326, 124, 155, 8, 320, 148, 162, 144, + 277, 144, 123, 343, 150, 322, 322, 8, 151, 172, + 178, 267, 268, 322, 278, 326, 149, 322, 151, 151, + 151, 13, 151, 151, 152, 151, 162, 90, 8, 151, + 152, 323, 326, 8, 151, 13, 8, 151, 205, 201, + 202, 326, 326, 361, 326, 150, 279, 354, 61, 123, + 141, 357, 72, 322, 326, 78, 141, 357, 162, 165, + 151, 152, 149, 150, 150, 153, 170, 322, 156, 157, + 71, 296, 71, 121, 212, 210, 71, 149, 61, 71, + 152, 336, 343, 349, 350, 283, 322, 284, 26, 286, + 281, 282, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 306, 31, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 303, 71, 336, 349, 322, + 345, 327, 345, 322, 150, 162, 71, 31, 322, 31, + 322, 162, 336, 149, 314, 336, 308, 150, 150, 322, + 82, 322, 151, 8, 90, 90, 71, 222, 150, 42, + 43, 61, 126, 140, 145, 148, 162, 304, 315, 316, + 317, 169, 90, 71, 167, 322, 241, 316, 73, 149, + 8, 150, 8, 150, 150, 151, 125, 326, 351, 352, + 150, 358, 71, 61, 153, 153, 149, 160, 164, 298, + 285, 117, 171, 172, 203, 204, 153, 31, 238, 239, + 278, 326, 13, 145, 148, 162, 305, 209, 121, 214, + 207, 290, 345, 322, 149, 149, 343, 322, 322, 288, + 322, 322, 322, 63, 326, 238, 149, 149, 155, 336, + 346, 348, 349, 155, 153, 324, 324, 124, 238, 346, + 26, 174, 149, 150, 182, 269, 188, 186, 13, 8, + 150, 185, 316, 316, 316, 319, 321, 149, 78, 148, + 162, 144, 153, 71, 153, 13, 291, 202, 151, 362, + 149, 8, 150, 71, 73, 74, 359, 322, 297, 153, + 160, 238, 274, 275, 149, 324, 150, 8, 316, 148, + 162, 122, 215, 216, 305, 152, 149, 126, 127, 235, + 236, 237, 305, 155, 153, 300, 299, 322, 26, 306, + 150, 302, 301, 347, 328, 61, 152, 31, 322, 150, + 309, 176, 172, 181, 179, 267, 322, 326, 31, 218, + 326, 316, 71, 26, 172, 221, 26, 152, 223, 124, + 155, 8, 320, 319, 162, 71, 102, 316, 235, 326, + 353, 352, 13, 155, 155, 238, 153, 150, 61, 123, + 270, 271, 272, 330, 150, 31, 278, 326, 162, 216, + 152, 8, 243, 235, 150, 8, 31, 73, 238, 238, + 287, 280, 238, 238, 149, 332, 333, 335, 345, 322, + 324, 310, 169, 175, 322, 26, 172, 228, 151, 124, + 217, 326, 217, 13, 169, 151, 224, 151, 224, 316, + 316, 150, 149, 150, 351, 322, 153, 150, 345, 346, + 330, 61, 273, 151, 324, 243, 305, 99, 104, 107, + 108, 109, 110, 111, 112, 113, 153, 244, 247, 260, + 261, 262, 263, 265, 150, 104, 293, 237, 73, 13, + 150, 150, 322, 314, 150, 150, 334, 61, 61, 329, + 155, 153, 123, 311, 177, 229, 150, 169, 183, 218, + 150, 150, 316, 89, 224, 92, 93, 94, 224, 153, + 124, 192, 293, 150, 155, 331, 345, 270, 153, 71, + 248, 305, 245, 292, 263, 8, 151, 152, 149, 152, + 31, 73, 13, 316, 238, 345, 345, 330, 346, 231, 66, 67, 233, 151, 83, 267, 189, 187, 151, 92, - 151, 314, 26, 151, 227, 153, 308, 297, 152, 13, - 8, 151, 152, 249, 73, 264, 205, 71, 169, 31, - 73, 286, 169, 73, 13, 308, 150, 155, 155, 338, - 66, 67, 234, 149, 172, 151, 150, 26, 172, 220, - 220, 151, 227, 226, 193, 169, 308, 297, 71, 250, - 251, 252, 253, 255, 256, 257, 297, 13, 8, 151, - 71, 13, 153, 73, 8, 150, 153, 13, 308, 323, - 149, 26, 68, 314, 184, 169, 225, 169, 73, 153, - 153, 252, 151, 90, 105, 151, 144, 308, 73, 246, - 308, 31, 73, 308, 327, 314, 169, 151, 150, 26, - 172, 219, 87, 169, 150, 258, 263, 254, 297, 71, - 13, 149, 73, 150, 230, 169, 151, 194, 71, 8, - 308, 235, 26, 172, 85, 152, 297, 150, 232, 151, - 169, 151, 152, 259, 169, 153, 169, 195, 153, 102, - 196, 197, 198, 149, 198, 297, 199, 73, 150, 200, - 152, 169, 153 + 151, 322, 26, 151, 227, 153, 316, 305, 152, 335, + 155, 13, 8, 151, 152, 249, 73, 264, 205, 71, + 169, 31, 73, 294, 169, 73, 13, 316, 150, 155, + 155, 66, 67, 234, 149, 172, 151, 150, 26, 172, + 220, 220, 151, 227, 226, 193, 169, 316, 305, 71, + 250, 251, 252, 253, 255, 256, 257, 305, 13, 8, + 151, 71, 13, 153, 73, 8, 150, 153, 13, 316, + 149, 26, 68, 322, 184, 169, 225, 169, 73, 153, + 153, 252, 151, 90, 105, 151, 144, 316, 73, 246, + 316, 31, 73, 316, 322, 169, 151, 150, 26, 172, + 219, 87, 169, 150, 258, 263, 254, 305, 71, 13, + 149, 73, 150, 230, 169, 151, 194, 71, 8, 316, + 235, 26, 172, 85, 152, 305, 150, 232, 151, 169, + 151, 152, 259, 169, 153, 169, 195, 153, 102, 196, + 197, 198, 149, 198, 305, 199, 73, 150, 200, 152, + 169, 153 }; #define yyerrok (yyerrstatus = 0) @@ -4455,1272 +4462,1342 @@ yyreduce: case 240: - { zend_do_list_init(TSRMLS_C); } + { (yyval).EA = (yyvsp[(2) - (2)]).EA; } break; case 241: - { zend_do_list_end(&(yyval), &(yyvsp[(7) - (7)]) TSRMLS_CC); } + { (yyval).EA = (yyvsp[(1) - (1)]).EA; } break; case 242: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; case 243: - { zend_check_writable_variable(&(yyvsp[(1) - (4)])); zend_do_end_variable_parse(&(yyvsp[(4) - (4)]), BP_VAR_W, 1 TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(1) - (4)]), BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); } + { zend_do_pop_object(&(yyvsp[(1) - (3)]) TSRMLS_CC); fetch_array_dim(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); } break; case 244: - { zend_error(E_DEPRECATED, "Assigning the return value of new by reference is deprecated"); zend_check_writable_variable(&(yyvsp[(1) - (5)])); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); } + { zend_do_push_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); } break; case 245: - { zend_do_end_new_object(&(yyvsp[(3) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(7) - (7)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(&(yyvsp[(1) - (7)]), BP_VAR_W, 0 TSRMLS_CC); (yyvsp[(3) - (7)]).EA = ZEND_PARSED_NEW; zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (7)]), &(yyvsp[(3) - (7)]) TSRMLS_CC); } + { (yyval) = (yyvsp[(3) - (3)]); } break; case 246: - { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_do_push_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); } break; case 247: - { zend_do_end_new_object(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} + { (yyval) = (yyvsp[(1) - (1)]); } break; case 248: - { zend_do_clone(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { (yyval) = (yyvsp[(0) - (0)]); } break; case 249: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_push_object(&(yyvsp[(0) - (0)]) TSRMLS_CC); zend_do_begin_variable_parse(TSRMLS_C); } break; case 250: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_pop_object(&(yyval) TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); } break; case 251: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 252: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_end_new_object(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} break; case 253: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_list_init(TSRMLS_C); } break; case 254: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_list_end(&(yyval), &(yyvsp[(7) - (7)]) TSRMLS_CC); } break; case 255: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &(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 256: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (4)])); zend_do_end_variable_parse(&(yyvsp[(4) - (4)]), BP_VAR_W, 1 TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(1) - (4)]), BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); } break; case 257: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_error(E_DEPRECATED, "Assigning the return value of new by reference is deprecated"); zend_check_writable_variable(&(yyvsp[(1) - (5)])); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); } break; case 258: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_end_new_object(&(yyvsp[(3) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(7) - (7)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(&(yyvsp[(1) - (7)]), BP_VAR_W, 0 TSRMLS_CC); (yyvsp[(3) - (7)]).EA = ZEND_PARSED_NEW; zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (7)]), &(yyvsp[(3) - (7)]) TSRMLS_CC); } break; case 259: - { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_clone(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 260: - { zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_INC TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 261: - { zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_INC TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 262: - { zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_DEC TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 263: - { zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_DEC TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 264: - { zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 265: - { zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 266: - { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 267: - { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 268: - { zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 269: - { zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 270: - { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(&(yyvsp[(1) - (3)]), BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 271: - { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } + { zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_INC TSRMLS_CC); } break; case 272: - { zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_INC TSRMLS_CC); } break; case 273: - { zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_DEC TSRMLS_CC); } break; case 274: - { zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_DEC TSRMLS_CC); } break; case 275: - { zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 276: - { zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } break; case 277: - { zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 278: - { zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } break; case 279: - { zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 280: - { zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } break; case 281: - { zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 282: - { zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); } break; case 283: - { zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 284: - { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); if ((yyvsp[(2) - (2)]).op_type == IS_CONST) { add_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } else { (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } } + { zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 285: - { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); if ((yyvsp[(2) - (2)]).op_type == IS_CONST) { sub_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } else { (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } } + { zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 286: - { zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 287: - { zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 288: - { zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 289: - { zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 290: - { zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 291: - { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 292: - { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 293: - { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 294: - { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 295: - { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); } + { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); if ((yyvsp[(2) - (2)]).op_type == IS_CONST) { add_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } else { (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } } break; case 296: - { zend_do_instanceof(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); } + { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); if ((yyvsp[(2) - (2)]).op_type == IS_CONST) { sub_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } else { (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } } break; case 297: - { (yyval) = (yyvsp[(2) - (3)]); } + { zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 298: - { zend_do_begin_qm_op(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 299: - { zend_do_qm_true(&(yyvsp[(4) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 300: - { zend_do_qm_false(&(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(2) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 301: - { zend_do_jmp_set(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 302: - { zend_do_jmp_set_else(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(3) - (5)]) TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 303: - { (yyval) = (yyvsp[(1) - (1)]); } + { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 304: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_LONG TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 305: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_DOUBLE TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); } break; case 306: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_STRING TSRMLS_CC); } + { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); } break; case 307: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_ARRAY TSRMLS_CC); } + { zend_do_instanceof(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); } break; case 308: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_OBJECT TSRMLS_CC); } + { (yyval) = (yyvsp[(2) - (3)]); } break; case 309: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_BOOL TSRMLS_CC); } + { (yyval) = (yyvsp[(1) - (1)]); } break; case 310: - { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_NULL TSRMLS_CC); } + { (yyval) = (yyvsp[(2) - (3)]); } break; case 311: - { zend_do_exit(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { (yyval) = (yyvsp[(5) - (5)]); } break; case 312: - { zend_do_begin_silence(&(yyvsp[(1) - (1)]) TSRMLS_CC); } + { zend_do_begin_qm_op(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 313: - { zend_do_end_silence(&(yyvsp[(1) - (3)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (3)]); } + { zend_do_qm_true(&(yyvsp[(4) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); } break; case 314: - { (yyval) = (yyvsp[(1) - (1)]); } + { zend_do_qm_false(&(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(2) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); } break; case 315: - { (yyval) = (yyvsp[(3) - (4)]); } + { zend_do_jmp_set(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; case 316: - { (yyval) = (yyvsp[(2) - (3)]); } + { zend_do_jmp_set_else(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(3) - (5)]) TSRMLS_CC); } break; case 317: - { zend_do_shell_exec(&(yyval), &(yyvsp[(2) - (3)]) TSRMLS_CC); } + { (yyval) = (yyvsp[(1) - (1)]); } break; case 318: - { zend_do_print(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_LONG TSRMLS_CC); } break; case 319: - { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]).op_type, 0 TSRMLS_CC); } + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_DOUBLE TSRMLS_CC); } break; case 320: - { zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); (yyval) = (yyvsp[(4) - (10)]); } + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_STRING TSRMLS_CC); } break; case 321: - { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]).op_type, 1 TSRMLS_CC); } + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_ARRAY TSRMLS_CC); } break; case 322: - { zend_do_end_function_declaration(&(yyvsp[(2) - (11)]) TSRMLS_CC); (yyval) = (yyvsp[(5) - (11)]); } + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_OBJECT TSRMLS_CC); } break; case 323: - { (yyval).u.op.opline_num = CG(zend_lineno); } + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_BOOL TSRMLS_CC); } + break; + + case 324: + + { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_NULL TSRMLS_CC); } + break; + + case 325: + + { zend_do_exit(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 326: - { zend_do_fetch_lexical_variable(&(yyvsp[(3) - (3)]), 0 TSRMLS_CC); } + { zend_do_begin_silence(&(yyvsp[(1) - (1)]) TSRMLS_CC); } break; case 327: - { zend_do_fetch_lexical_variable(&(yyvsp[(4) - (4)]), 1 TSRMLS_CC); } + { zend_do_end_silence(&(yyvsp[(1) - (3)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (3)]); } break; case 328: - { zend_do_fetch_lexical_variable(&(yyvsp[(1) - (1)]), 0 TSRMLS_CC); } + { (yyval) = (yyvsp[(1) - (1)]); } break; case 329: - { zend_do_fetch_lexical_variable(&(yyvsp[(2) - (2)]), 1 TSRMLS_CC); } + { (yyval) = (yyvsp[(3) - (4)]); } break; case 330: - { (yyvsp[(2) - (2)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (2)]), 1 TSRMLS_CC); } + { (yyval) = (yyvsp[(2) - (3)]); } break; case 331: - { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, (yyvsp[(2) - (5)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + { zend_do_shell_exec(&(yyval), &(yyvsp[(2) - (3)]) TSRMLS_CC); } break; case 332: - { (yyvsp[(1) - (4)]).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyvsp[(1) - (4)]).u.constant); zend_do_build_namespace_name(&(yyvsp[(1) - (4)]), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); (yyvsp[(4) - (4)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (4)]), 0 TSRMLS_CC); } + { zend_do_print(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; case 333: - { zend_do_end_function_call(&(yyvsp[(1) - (7)]), &(yyval), &(yyvsp[(6) - (7)]), 0, (yyvsp[(4) - (7)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]).op_type, 0 TSRMLS_CC); } break; case 334: - { (yyvsp[(3) - (3)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(2) - (3)]), 0 TSRMLS_CC); } + { zend_do_end_function_declaration(&(yyvsp[(1) - (10)]) TSRMLS_CC); (yyval) = (yyvsp[(4) - (10)]); } break; case 335: - { zend_do_end_function_call(&(yyvsp[(2) - (6)]), &(yyval), &(yyvsp[(5) - (6)]), 0, (yyvsp[(3) - (6)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + { zend_do_begin_lambda_function_declaration(&(yyval), &(yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]).op_type, 1 TSRMLS_CC); } break; case 336: - { (yyvsp[(4) - (4)]).u.op.opline_num = zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } + { zend_do_end_function_declaration(&(yyvsp[(2) - (11)]) TSRMLS_CC); (yyval) = (yyvsp[(5) - (11)]); } break; case 337: + { (yyval).u.op.opline_num = CG(zend_lineno); } + break; + + case 340: + + { zend_do_fetch_lexical_variable(&(yyvsp[(3) - (3)]), 0 TSRMLS_CC); } + break; + + case 341: + + { zend_do_fetch_lexical_variable(&(yyvsp[(4) - (4)]), 1 TSRMLS_CC); } + break; + + case 342: + + { zend_do_fetch_lexical_variable(&(yyvsp[(1) - (1)]), 0 TSRMLS_CC); } + break; + + case 343: + + { zend_do_fetch_lexical_variable(&(yyvsp[(2) - (2)]), 1 TSRMLS_CC); } + break; + + case 344: + + { (yyvsp[(2) - (2)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (2)]), 1 TSRMLS_CC); } + break; + + case 345: + + { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, (yyvsp[(2) - (5)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + break; + + case 346: + + { (yyvsp[(1) - (4)]).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyvsp[(1) - (4)]).u.constant); zend_do_build_namespace_name(&(yyvsp[(1) - (4)]), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); (yyvsp[(4) - (4)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (4)]), 0 TSRMLS_CC); } + break; + + case 347: + + { zend_do_end_function_call(&(yyvsp[(1) - (7)]), &(yyval), &(yyvsp[(6) - (7)]), 0, (yyvsp[(4) - (7)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + break; + + case 348: + + { (yyvsp[(3) - (3)]).u.op.opline_num = zend_do_begin_function_call(&(yyvsp[(2) - (3)]), 0 TSRMLS_CC); } + break; + + case 349: + + { zend_do_end_function_call(&(yyvsp[(2) - (6)]), &(yyval), &(yyvsp[(5) - (6)]), 0, (yyvsp[(3) - (6)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + break; + + case 350: + + { (yyvsp[(4) - (4)]).u.op.opline_num = zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } + break; + + case 351: + { zend_do_end_function_call((yyvsp[(4) - (7)]).u.op.opline_num?NULL:&(yyvsp[(3) - (7)]), &(yyval), &(yyvsp[(6) - (7)]), (yyvsp[(4) - (7)]).u.op.opline_num, (yyvsp[(4) - (7)]).u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} break; - case 338: + case 352: { zend_do_end_variable_parse(&(yyvsp[(3) - (4)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 339: + case 353: { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} break; - case 340: + case 354: { zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 341: + case 355: { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} break; - case 342: + case 356: { zend_do_end_variable_parse(&(yyvsp[(3) - (4)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 343: + case 357: { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} break; - case 344: + case 358: { zend_do_end_variable_parse(&(yyvsp[(1) - (2)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&(yyvsp[(1) - (2)]), 0 TSRMLS_CC); } break; - case 345: + case 359: { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} break; - case 346: + case 360: { (yyval).op_type = IS_CONST; ZVAL_STRINGL(&(yyval).u.constant, "static", sizeof("static")-1, 1);} break; - case 347: + case 361: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 348: + case 362: { (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; - case 349: + case 363: { char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); (yyval) = (yyvsp[(2) - (2)]); } break; - case 350: + case 364: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 351: + case 365: { (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); } break; - case 352: + case 366: { char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); (yyval) = (yyvsp[(2) - (2)]); } break; - case 353: + case 367: { zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 354: + case 368: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 355: + case 369: { zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); } break; - case 356: + case 370: { zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); } break; - case 357: + case 371: { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).EA = ZEND_PARSED_MEMBER; } break; - case 358: + case 372: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 361: + case 375: { zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 362: + case 376: { memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; } break; - case 363: + case 377: { memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; } break; - case 364: + case 378: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 365: + case 379: { ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; } break; - case 366: + case 380: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 367: + case 381: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 368: + case 382: { Z_LVAL((yyval).u.constant)=0; } break; - case 369: + case 383: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 370: + case 384: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 371: + case 385: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 372: + case 386: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 373: + case 387: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 374: + case 388: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 375: + case 389: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 376: + case 390: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 377: + case 391: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 378: + case 392: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 379: + case 393: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 380: + case 394: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 381: + case 395: { (yyval) = (yyvsp[(2) - (3)]); CG(heredoc) = Z_STRVAL((yyvsp[(1) - (3)]).u.constant); CG(heredoc_len) = Z_STRLEN((yyvsp[(1) - (3)]).u.constant); } break; - case 382: + case 396: { ZVAL_EMPTY_STRING(&(yyval).u.constant); INIT_PZVAL(&(yyval).u.constant); (yyval).op_type = IS_CONST; CG(heredoc) = Z_STRVAL((yyvsp[(1) - (2)]).u.constant); CG(heredoc_len) = Z_STRLEN((yyvsp[(1) - (2)]).u.constant); } break; - case 383: + case 397: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 384: + case 398: { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT, 1 TSRMLS_CC); } break; - case 385: + case 399: { (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); (yyvsp[(3) - (3)]) = (yyval); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); } break; - case 386: + case 400: { char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(2) - (2)]), ZEND_CT, 0 TSRMLS_CC); } break; - case 387: + case 401: { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); add_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } break; - case 388: + case 402: { ZVAL_LONG(&(yyvsp[(1) - (2)]).u.constant, 0); sub_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(1) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); } break; - case 389: + case 403: { (yyval) = (yyvsp[(3) - (4)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; } break; - case 390: + case 404: { (yyval) = (yyvsp[(2) - (3)]); Z_TYPE((yyval).u.constant) = IS_CONSTANT_ARRAY; } break; - case 391: + case 405: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 392: + case 406: { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT, 0 TSRMLS_CC); } break; - case 393: + case 407: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 394: + case 408: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 395: + case 409: { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT, 1 TSRMLS_CC); } break; - case 396: + case 410: { (yyval).op_type = IS_CONST; ZVAL_EMPTY_STRING(&(yyval).u.constant); zend_do_build_namespace_name(&(yyval), &(yyval), &(yyvsp[(3) - (3)]) TSRMLS_CC); (yyvsp[(3) - (3)]) = (yyval); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); } break; - case 397: + case 411: { char *tmp = estrndup(Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL((yyvsp[(2) - (2)]).u.constant), Z_STRLEN((yyvsp[(2) - (2)]).u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL((yyvsp[(2) - (2)]).u.constant)); Z_STRVAL((yyvsp[(2) - (2)]).u.constant) = tmp; ++Z_STRLEN((yyvsp[(2) - (2)]).u.constant); zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(2) - (2)]), ZEND_RT, 0 TSRMLS_CC); } break; - case 398: + case 412: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 399: + case 413: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 400: + case 414: { (yyval) = (yyvsp[(2) - (3)]); CG(heredoc) = Z_STRVAL((yyvsp[(1) - (3)]).u.constant); CG(heredoc_len) = Z_STRLEN((yyvsp[(1) - (3)]).u.constant); } break; - case 401: + case 415: { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); } break; - case 402: + case 416: { (yyval) = (yyvsp[(1) - (2)]); } break; - case 405: + case 419: { zend_do_add_static_array_element(&(yyval), &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)])); } break; - case 406: + case 420: { zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(3) - (3)])); } break; - case 407: + case 421: { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)])); } break; - case 408: + case 422: { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(1) - (1)])); } break; - case 409: + case 423: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 410: + case 424: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 411: + case 425: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); } break; - case 412: + case 426: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); zend_check_writable_variable(&(yyvsp[(1) - (1)])); } break; - case 413: + case 427: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); zend_check_writable_variable(&(yyvsp[(1) - (1)])); } break; - case 414: + case 428: { zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); } break; - case 415: + case 429: { zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); } break; - case 416: + case 430: { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).EA = (yyvsp[(1) - (7)]).EA | ((yyvsp[(7) - (7)]).EA ? (yyvsp[(7) - (7)]).EA : (yyvsp[(6) - (7)]).EA); } break; - case 417: + case 431: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 418: + case 432: { (yyval).EA = (yyvsp[(2) - (2)]).EA; } break; - case 419: + case 433: { (yyval).EA = 0; } break; - case 420: + case 434: { zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 421: + case 435: { (yyval).EA = (yyvsp[(4) - (4)]).EA; } break; - case 422: + case 436: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 423: + case 437: { (yyvsp[(1) - (4)]).EA = ZEND_PARSED_METHOD_CALL; fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 424: + case 438: { zend_do_pop_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); zend_do_begin_method_call(&(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 425: + case 439: { zend_do_end_function_call(&(yyvsp[(1) - (4)]), &(yyval), &(yyvsp[(3) - (4)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } break; - case 426: + case 440: { (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_METHOD_CALL; zend_do_push_object(&(yyval) TSRMLS_CC); } break; - case 427: + case 441: { (yyval) = (yyvsp[(1) - (1)]); zend_do_push_object(&(yyval) TSRMLS_CC); } break; - case 428: + case 442: { (yyval).EA = ZEND_PARSED_MEMBER; } break; - case 429: + case 443: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 430: + case 444: { zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 431: + case 445: { (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); } break; - case 432: + case 446: { (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); } break; - case 433: + case 447: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (1)]);; } break; - case 434: + case 448: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 435: + case 449: { zend_do_begin_variable_parse(TSRMLS_C); (yyvsp[(1) - (1)]).EA = ZEND_PARSED_FUNCTION_CALL; } break; - case 436: + case 450: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); } break; - case 437: + case 451: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 438: + case 452: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 439: + case 453: { zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_FUNCTION_CALL; } break; - case 440: + case 454: { (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_VARIABLE; } break; - case 441: + case 455: { zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyval).EA = ZEND_PARSED_VARIABLE; } break; - case 442: + case 456: { (yyval) = (yyvsp[(1) - (1)]); (yyval).EA = ZEND_PARSED_STATIC_MEMBER; } break; - case 443: + case 457: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 444: + case 458: { fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 445: + case 459: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); } break; - case 446: + case 460: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 447: + case 461: { (yyval) = (yyvsp[(3) - (4)]); } break; - case 448: + case 462: { (yyval).op_type = IS_UNUSED; } break; - case 449: + case 463: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 450: + case 464: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 451: + case 465: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); } break; - case 452: + case 466: { 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 453: + case 467: { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 454: + case 468: { fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 455: + case 469: { 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 456: + case 470: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 457: + case 471: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 458: + case 472: { Z_LVAL((yyval).u.constant) = 1; } break; - case 459: + case 473: { Z_LVAL((yyval).u.constant)++; } break; - case 462: + case 476: { zend_do_add_list_element(&(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 463: + case 477: { zend_do_new_list_begin(TSRMLS_C); } break; - case 464: + case 478: { zend_do_new_list_end(TSRMLS_C); } break; - case 465: + case 479: { zend_do_add_list_element(NULL TSRMLS_CC); } break; - case 466: + case 480: { zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); } break; - case 467: + case 481: { (yyval) = (yyvsp[(1) - (2)]); } break; - case 468: + case 482: { zend_do_add_array_element(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); } break; - case 469: + case 483: { zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); } break; - case 470: + case 484: { zend_do_init_array(&(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); } break; - case 471: + case 485: { zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); } break; - case 472: + case 486: { zend_do_add_array_element(&(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 1 TSRMLS_CC); } break; - case 473: + case 487: { zend_do_add_array_element(&(yyval), &(yyvsp[(4) - (4)]), NULL, 1 TSRMLS_CC); } break; - case 474: + case 488: { zend_do_init_array(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 1 TSRMLS_CC); } break; - case 475: + case 489: { zend_do_init_array(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); } break; - case 476: + case 490: { zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 477: + case 491: { zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 478: + case 492: { zend_do_end_variable_parse(&(yyvsp[(1) - (1)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), NULL, &(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 479: + case 493: { zend_do_add_string(&(yyval), NULL, &(yyvsp[(1) - (2)]) TSRMLS_CC); zend_do_end_variable_parse(&(yyvsp[(2) - (2)]), BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 480: + case 494: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); } break; - case 481: + case 495: { zend_do_begin_variable_parse(TSRMLS_C); } break; - case 482: + case 496: { fetch_array_begin(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); } break; - case 483: + case 497: { 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 484: + case 498: { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(2) - (3)]), 1 TSRMLS_CC); } break; - case 485: + case 499: { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&(yyval), &(yyvsp[(2) - (6)]), &(yyvsp[(4) - (6)]) TSRMLS_CC); } break; - case 486: + case 500: { (yyval) = (yyvsp[(2) - (3)]); } break; - case 487: + case 501: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 488: + case 502: { (yyval) = (yyvsp[(1) - (1)]); } break; - case 489: + case 503: { fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); } break; - case 490: + case 504: { (yyval) = (yyvsp[(3) - (4)]); } break; - case 491: + case 505: { zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 492: + case 506: { zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 493: + case 507: { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 494: + case 508: { zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); } break; - case 495: + case 509: { zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 496: + case 510: { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 497: + case 511: { zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); } break; - case 498: + case 512: { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); } break; - case 499: + case 513: { 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 500: + case 514: { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); } break; - case 501: + case 515: { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT, 0 TSRMLS_CC); } break; diff --git a/Zend/zend_language_parser.output b/Zend/zend_language_parser.output index 0446be3c0..040b480f9 100644 --- a/Zend/zend_language_parser.output +++ b/Zend/zend_language_parser.output @@ -10,7 +10,8 @@ Terminals which are not used "whitespace (T_WHITESPACE)" -State 758 conflicts: 2 shift/reduce +State 216 conflicts: 1 shift/reduce +State 775 conflicts: 2 shift/reduce Grammar @@ -384,483 +385,506 @@ Grammar 237 non_empty_for_expr: non_empty_for_expr ',' @38 expr 238 | expr - 239 @39: /* empty */ - - 240 expr_without_variable: "list (T_LIST)" '(' @39 assignment_list ')' '=' expr - 241 | variable '=' expr - 242 | variable '=' '&' variable - - 243 @40: /* empty */ - - 244 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments - - 245 @41: /* empty */ - - 246 expr_without_variable: "new (T_NEW)" class_name_reference @41 ctor_arguments - 247 | "clone (T_CLONE)" expr - 248 | variable "+= (T_PLUS_EQUAL)" expr - 249 | variable "-= (T_MINUS_EQUAL)" expr - 250 | variable "*= (T_MUL_EQUAL)" expr - 251 | variable "/= (T_DIV_EQUAL)" expr - 252 | variable ".= (T_CONCAT_EQUAL)" expr - 253 | variable "%= (T_MOD_EQUAL)" expr - 254 | variable "&= (T_AND_EQUAL)" expr - 255 | variable "|= (T_OR_EQUAL)" expr - 256 | variable "^= (T_XOR_EQUAL)" expr - 257 | variable "<<= (T_SL_EQUAL)" expr - 258 | variable ">>= (T_SR_EQUAL)" expr - 259 | rw_variable "++ (T_INC)" - 260 | "++ (T_INC)" rw_variable - 261 | rw_variable "-- (T_DEC)" - 262 | "-- (T_DEC)" rw_variable - - 263 @42: /* empty */ - - 264 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @42 expr - - 265 @43: /* empty */ - - 266 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @43 expr - - 267 @44: /* empty */ - - 268 expr_without_variable: expr "or (T_LOGICAL_OR)" @44 expr - - 269 @45: /* empty */ - - 270 expr_without_variable: expr "and (T_LOGICAL_AND)" @45 expr - 271 | expr "xor (T_LOGICAL_XOR)" expr - 272 | expr '|' expr - 273 | expr '&' expr - 274 | expr '^' expr - 275 | expr '.' expr - 276 | expr '+' expr - 277 | expr '-' expr - 278 | expr '*' expr - 279 | expr '/' expr - 280 | expr '%' expr - 281 | expr "<< (T_SL)" expr - 282 | expr ">> (T_SR)" expr - 283 | '+' expr - 284 | '-' expr - 285 | '!' expr - 286 | '~' expr - 287 | expr "=== (T_IS_IDENTICAL)" expr - 288 | expr "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr "== (T_IS_EQUAL)" expr - 290 | expr "!= (T_IS_NOT_EQUAL)" expr - 291 | expr '<' expr - 292 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr '>' expr - 294 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr "instanceof (T_INSTANCEOF)" class_name_reference - 296 | '(' expr ')' - - 297 @46: /* empty */ - - 298 @47: /* empty */ - - 299 expr_without_variable: expr '?' @46 expr ':' @47 expr - - 300 @48: /* empty */ - - 301 expr_without_variable: expr '?' ':' @48 expr - 302 | internal_functions_in_yacc - 303 | "(int) (T_INT_CAST)" expr - 304 | "(double) (T_DOUBLE_CAST)" expr - 305 | "(string) (T_STRING_CAST)" expr - 306 | "(array) (T_ARRAY_CAST)" expr - 307 | "(object) (T_OBJECT_CAST)" expr - 308 | "(bool) (T_BOOL_CAST)" expr - 309 | "(unset) (T_UNSET_CAST)" expr - 310 | "exit (T_EXIT)" exit_expr + 239 chaining_method_or_property: chaining_method_or_property variable_property + 240 | variable_property - 311 @49: /* empty */ + 241 chaining_dereference: chaining_dereference '[' dim_offset ']' + 242 | '[' dim_offset ']' + + 243 @39: /* empty */ + + 244 chaining_instance_call: chaining_dereference @39 chaining_method_or_property + 245 | chaining_dereference + 246 | chaining_method_or_property + + 247 instance_call: /* empty */ + + 248 @40: /* empty */ + + 249 instance_call: @40 chaining_instance_call + + 250 @41: /* empty */ + + 251 new_expr: "new (T_NEW)" class_name_reference @41 ctor_arguments + + 252 @42: /* empty */ - 312 expr_without_variable: '@' @49 expr - 313 | scalar - 314 | "array (T_ARRAY)" '(' array_pair_list ')' - 315 | '[' array_pair_list ']' - 316 | '`' backticks_expr '`' - 317 | "print (T_PRINT)" expr + 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' expr + 254 | variable '=' expr + 255 | variable '=' '&' variable - 318 @50: /* empty */ + 256 @43: /* empty */ - 319 expr_without_variable: function is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments + 258 | "clone (T_CLONE)" expr + 259 | variable "+= (T_PLUS_EQUAL)" expr + 260 | variable "-= (T_MINUS_EQUAL)" expr + 261 | variable "*= (T_MUL_EQUAL)" expr + 262 | variable "/= (T_DIV_EQUAL)" expr + 263 | variable ".= (T_CONCAT_EQUAL)" expr + 264 | variable "%= (T_MOD_EQUAL)" expr + 265 | variable "&= (T_AND_EQUAL)" expr + 266 | variable "|= (T_OR_EQUAL)" expr + 267 | variable "^= (T_XOR_EQUAL)" expr + 268 | variable "<<= (T_SL_EQUAL)" expr + 269 | variable ">>= (T_SR_EQUAL)" expr + 270 | rw_variable "++ (T_INC)" + 271 | "++ (T_INC)" rw_variable + 272 | rw_variable "-- (T_DEC)" + 273 | "-- (T_DEC)" rw_variable - 320 @51: /* empty */ + 274 @44: /* empty */ - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @44 expr - 322 function: "function (T_FUNCTION)" + 276 @45: /* empty */ + + 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @45 expr + + 278 @46: /* empty */ + + 279 expr_without_variable: expr "or (T_LOGICAL_OR)" @46 expr + + 280 @47: /* empty */ + + 281 expr_without_variable: expr "and (T_LOGICAL_AND)" @47 expr + 282 | expr "xor (T_LOGICAL_XOR)" expr + 283 | expr '|' expr + 284 | expr '&' expr + 285 | expr '^' expr + 286 | expr '.' expr + 287 | expr '+' expr + 288 | expr '-' expr + 289 | expr '*' expr + 290 | expr '/' expr + 291 | expr '%' expr + 292 | expr "<< (T_SL)" expr + 293 | expr ">> (T_SR)" expr + 294 | '+' expr + 295 | '-' expr + 296 | '!' expr + 297 | '~' expr + 298 | expr "=== (T_IS_IDENTICAL)" expr + 299 | expr "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr "== (T_IS_EQUAL)" expr + 301 | expr "!= (T_IS_NOT_EQUAL)" expr + 302 | expr '<' expr + 303 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr '>' expr + 305 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr "instanceof (T_INSTANCEOF)" class_name_reference + 307 | '(' expr ')' + 308 | new_expr + + 309 @48: /* empty */ + + 310 expr_without_variable: '(' new_expr ')' @48 instance_call + + 311 @49: /* empty */ - 323 lexical_vars: /* empty */ - 324 | "use (T_USE)" '(' lexical_var_list ')' + 312 @50: /* empty */ - 325 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" - 326 | lexical_var_list ',' '&' "variable (T_VARIABLE)" - 327 | "variable (T_VARIABLE)" - 328 | '&' "variable (T_VARIABLE)" + 313 expr_without_variable: expr '?' @49 expr ':' @50 expr - 329 @52: /* empty */ + 314 @51: /* empty */ - 330 function_call: namespace_name '(' @52 function_call_parameter_list ')' + 315 expr_without_variable: expr '?' ':' @51 expr + 316 | internal_functions_in_yacc + 317 | "(int) (T_INT_CAST)" expr + 318 | "(double) (T_DOUBLE_CAST)" expr + 319 | "(string) (T_STRING_CAST)" expr + 320 | "(array) (T_ARRAY_CAST)" expr + 321 | "(object) (T_OBJECT_CAST)" expr + 322 | "(bool) (T_BOOL_CAST)" expr + 323 | "(unset) (T_UNSET_CAST)" expr + 324 | "exit (T_EXIT)" exit_expr - 331 @53: /* empty */ + 325 @52: /* empty */ - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 function_call_parameter_list ')' + 326 expr_without_variable: '@' @52 expr + 327 | scalar + 328 | "array (T_ARRAY)" '(' array_pair_list ')' + 329 | '[' array_pair_list ']' + 330 | '`' backticks_expr '`' + 331 | "print (T_PRINT)" expr - 333 @54: /* empty */ + 332 @53: /* empty */ - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @54 function_call_parameter_list ')' + 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' - 335 @55: /* empty */ + 334 @54: /* empty */ - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @55 function_call_parameter_list ')' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' - 337 @56: /* empty */ + 336 function: "function (T_FUNCTION)" - 338 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @56 function_call_parameter_list ')' + 337 lexical_vars: /* empty */ + 338 | "use (T_USE)" '(' lexical_var_list ')' - 339 @57: /* empty */ + 339 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" + 340 | lexical_var_list ',' '&' "variable (T_VARIABLE)" + 341 | "variable (T_VARIABLE)" + 342 | '&' "variable (T_VARIABLE)" - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @57 function_call_parameter_list ')' + 343 @55: /* empty */ - 341 @58: /* empty */ + 344 function_call: namespace_name '(' @55 function_call_parameter_list ')' - 342 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @58 function_call_parameter_list ')' + 345 @56: /* empty */ - 343 @59: /* empty */ + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' - 344 function_call: variable_without_objects '(' @59 function_call_parameter_list ')' + 347 @57: /* empty */ - 345 class_name: "static (T_STATIC)" - 346 | namespace_name - 347 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name - 348 | "\\ (T_NS_SEPARATOR)" namespace_name + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list ')' - 349 fully_qualified_class_name: namespace_name - 350 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name - 351 | "\\ (T_NS_SEPARATOR)" namespace_name + 349 @58: /* empty */ - 352 class_name_reference: class_name - 353 | dynamic_class_name_reference + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')' - 354 @60: /* empty */ + 351 @59: /* empty */ + + 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')' + + 353 @60: /* empty */ + + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')' 355 @61: /* empty */ - 356 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @60 object_property @61 dynamic_class_name_variable_properties - 357 | base_variable + 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')' + + 357 @62: /* empty */ + + 358 function_call: variable_without_objects '(' @62 function_call_parameter_list ')' + + 359 class_name: "static (T_STATIC)" + 360 | namespace_name + 361 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name + 362 | "\\ (T_NS_SEPARATOR)" namespace_name + + 363 fully_qualified_class_name: namespace_name + 364 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name + 365 | "\\ (T_NS_SEPARATOR)" namespace_name + + 366 class_name_reference: class_name + 367 | dynamic_class_name_reference + + 368 @63: /* empty */ - 358 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property - 359 | /* empty */ + 369 @64: /* empty */ - 360 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property + 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties + 371 | base_variable - 361 exit_expr: /* empty */ - 362 | '(' ')' - 363 | '(' expr ')' + 372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property + 373 | /* empty */ - 364 backticks_expr: /* empty */ - 365 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" - 366 | encaps_list + 374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property - 367 ctor_arguments: /* empty */ - 368 | '(' function_call_parameter_list ')' + 375 exit_expr: /* empty */ + 376 | '(' ')' + 377 | '(' expr ')' - 369 common_scalar: "integer number (T_LNUMBER)" - 370 | "floating-point number (T_DNUMBER)" - 371 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)" - 372 | "__LINE__ (T_LINE)" - 373 | "__FILE__ (T_FILE)" - 374 | "__DIR__ (T_DIR)" - 375 | "__CLASS__ (T_CLASS_C)" - 376 | "__TRAIT__ (T_TRAIT_C)" - 377 | "__METHOD__ (T_METHOD_C)" - 378 | "__FUNCTION__ (T_FUNC_C)" - 379 | "__NAMESPACE__ (T_NS_C)" - 380 | "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" - 381 | "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" + 378 backticks_expr: /* empty */ + 379 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" + 380 | encaps_list - 382 static_scalar: common_scalar - 383 | namespace_name - 384 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name - 385 | "\\ (T_NS_SEPARATOR)" namespace_name - 386 | '+' static_scalar - 387 | '-' static_scalar - 388 | "array (T_ARRAY)" '(' static_array_pair_list ')' - 389 | '[' static_array_pair_list ']' - 390 | static_class_constant + 381 ctor_arguments: /* empty */ + 382 | '(' function_call_parameter_list ')' - 391 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" + 383 common_scalar: "integer number (T_LNUMBER)" + 384 | "floating-point number (T_DNUMBER)" + 385 | "quoted-string (T_CONSTANT_ENCAPSED_STRING)" + 386 | "__LINE__ (T_LINE)" + 387 | "__FILE__ (T_FILE)" + 388 | "__DIR__ (T_DIR)" + 389 | "__CLASS__ (T_CLASS_C)" + 390 | "__TRAIT__ (T_TRAIT_C)" + 391 | "__METHOD__ (T_METHOD_C)" + 392 | "__FUNCTION__ (T_FUNC_C)" + 393 | "__NAMESPACE__ (T_NS_C)" + 394 | "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" + 395 | "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" - 392 scalar: "variable name (T_STRING_VARNAME)" - 393 | class_constant - 394 | namespace_name - 395 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name - 396 | "\\ (T_NS_SEPARATOR)" namespace_name - 397 | common_scalar - 398 | '"' encaps_list '"' - 399 | "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" + 396 static_scalar: common_scalar + 397 | namespace_name + 398 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name + 399 | "\\ (T_NS_SEPARATOR)" namespace_name + 400 | '+' static_scalar + 401 | '-' static_scalar + 402 | "array (T_ARRAY)" '(' static_array_pair_list ')' + 403 | '[' static_array_pair_list ']' + 404 | static_class_constant - 400 static_array_pair_list: /* empty */ - 401 | non_empty_static_array_pair_list possible_comma + 405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" - 402 possible_comma: /* empty */ - 403 | ',' + 406 scalar: "variable name (T_STRING_VARNAME)" + 407 | class_constant + 408 | namespace_name + 409 | "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name + 410 | "\\ (T_NS_SEPARATOR)" namespace_name + 411 | common_scalar + 412 | '"' encaps_list '"' + 413 | "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" - 404 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar - 405 | non_empty_static_array_pair_list ',' static_scalar - 406 | static_scalar "=> (T_DOUBLE_ARROW)" static_scalar - 407 | static_scalar + 414 static_array_pair_list: /* empty */ + 415 | non_empty_static_array_pair_list possible_comma - 408 expr: r_variable - 409 | expr_without_variable + 416 possible_comma: /* empty */ + 417 | ',' - 410 r_variable: variable + 418 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar + 419 | non_empty_static_array_pair_list ',' static_scalar + 420 | static_scalar "=> (T_DOUBLE_ARROW)" static_scalar + 421 | static_scalar - 411 w_variable: variable + 422 expr: r_variable + 423 | expr_without_variable - 412 rw_variable: variable + 424 r_variable: variable - 413 @62: /* empty */ + 425 w_variable: variable - 414 @63: /* empty */ + 426 rw_variable: variable - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @62 object_property @63 method_or_not variable_properties - 416 | base_variable_with_function_calls + 427 @65: /* empty */ - 417 variable_properties: variable_properties variable_property - 418 | /* empty */ + 428 @66: /* empty */ - 419 @64: /* empty */ + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties + 430 | base_variable_with_function_calls - 420 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @64 method_or_not + 431 variable_properties: variable_properties variable_property + 432 | /* empty */ - 421 array_method_dereference: array_method_dereference '[' dim_offset ']' - 422 | method '[' dim_offset ']' + 433 @67: /* empty */ - 423 @65: /* empty */ + 434 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 method_or_not - 424 method: '(' @65 function_call_parameter_list ')' + 435 array_method_dereference: array_method_dereference '[' dim_offset ']' + 436 | method '[' dim_offset ']' - 425 method_or_not: method - 426 | array_method_dereference - 427 | /* empty */ + 437 @68: /* empty */ - 428 variable_without_objects: reference_variable - 429 | simple_indirect_reference reference_variable + 438 method: '(' @68 function_call_parameter_list ')' - 430 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - 431 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 439 method_or_not: method + 440 | array_method_dereference + 441 | /* empty */ - 432 variable_class_name: reference_variable + 442 variable_without_objects: reference_variable + 443 | simple_indirect_reference reference_variable - 433 array_function_dereference: array_function_dereference '[' dim_offset ']' + 444 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 445 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - 434 @66: /* empty */ + 446 variable_class_name: reference_variable - 435 array_function_dereference: function_call @66 '[' dim_offset ']' + 447 array_function_dereference: array_function_dereference '[' dim_offset ']' - 436 base_variable_with_function_calls: base_variable - 437 | array_function_dereference - 438 | function_call + 448 @69: /* empty */ - 439 base_variable: reference_variable - 440 | simple_indirect_reference reference_variable - 441 | static_member + 449 array_function_dereference: function_call @69 '[' dim_offset ']' - 442 reference_variable: reference_variable '[' dim_offset ']' - 443 | reference_variable '{' expr '}' - 444 | compound_variable + 450 base_variable_with_function_calls: base_variable + 451 | array_function_dereference + 452 | function_call - 445 compound_variable: "variable (T_VARIABLE)" - 446 | '$' '{' expr '}' + 453 base_variable: reference_variable + 454 | simple_indirect_reference reference_variable + 455 | static_member - 447 dim_offset: /* empty */ - 448 | expr + 456 reference_variable: reference_variable '[' dim_offset ']' + 457 | reference_variable '{' expr '}' + 458 | compound_variable - 449 object_property: object_dim_list + 459 compound_variable: "variable (T_VARIABLE)" + 460 | '$' '{' expr '}' - 450 @67: /* empty */ + 461 dim_offset: /* empty */ + 462 | expr - 451 object_property: variable_without_objects @67 + 463 object_property: object_dim_list - 452 object_dim_list: object_dim_list '[' dim_offset ']' - 453 | object_dim_list '{' expr '}' - 454 | variable_name + 464 @70: /* empty */ - 455 variable_name: "identifier (T_STRING)" - 456 | '{' expr '}' + 465 object_property: variable_without_objects @70 - 457 simple_indirect_reference: '$' - 458 | simple_indirect_reference '$' + 466 object_dim_list: object_dim_list '[' dim_offset ']' + 467 | object_dim_list '{' expr '}' + 468 | variable_name - 459 assignment_list: assignment_list ',' assignment_list_element - 460 | assignment_list_element + 469 variable_name: "identifier (T_STRING)" + 470 | '{' expr '}' - 461 assignment_list_element: variable + 471 simple_indirect_reference: '$' + 472 | simple_indirect_reference '$' - 462 @68: /* empty */ + 473 assignment_list: assignment_list ',' assignment_list_element + 474 | assignment_list_element - 463 assignment_list_element: "list (T_LIST)" '(' @68 assignment_list ')' - 464 | /* empty */ + 475 assignment_list_element: variable - 465 array_pair_list: /* empty */ - 466 | non_empty_array_pair_list possible_comma + 476 @71: /* empty */ - 467 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr - 468 | non_empty_array_pair_list ',' expr - 469 | expr "=> (T_DOUBLE_ARROW)" expr - 470 | expr - 471 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable - 472 | non_empty_array_pair_list ',' '&' w_variable - 473 | expr "=> (T_DOUBLE_ARROW)" '&' w_variable - 474 | '&' w_variable + 477 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list ')' + 478 | /* empty */ - 475 encaps_list: encaps_list encaps_var - 476 | encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" - 477 | encaps_var - 478 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var + 479 array_pair_list: /* empty */ + 480 | non_empty_array_pair_list possible_comma - 479 encaps_var: "variable (T_VARIABLE)" + 481 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr + 482 | non_empty_array_pair_list ',' expr + 483 | expr "=> (T_DOUBLE_ARROW)" expr + 484 | expr + 485 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable + 486 | non_empty_array_pair_list ',' '&' w_variable + 487 | expr "=> (T_DOUBLE_ARROW)" '&' w_variable + 488 | '&' w_variable - 480 @69: /* empty */ + 489 encaps_list: encaps_list encaps_var + 490 | encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" + 491 | encaps_var + 492 | "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var - 481 encaps_var: "variable (T_VARIABLE)" '[' @69 encaps_var_offset ']' - 482 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" - 483 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' - 484 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' - 485 | "{$ (T_CURLY_OPEN)" variable '}' + 493 encaps_var: "variable (T_VARIABLE)" - 486 encaps_var_offset: "identifier (T_STRING)" - 487 | "number (T_NUM_STRING)" - 488 | "variable (T_VARIABLE)" + 494 @72: /* empty */ - 489 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' - 490 | "empty (T_EMPTY)" '(' variable ')' - 491 | "include (T_INCLUDE)" expr - 492 | "include_once (T_INCLUDE_ONCE)" expr - 493 | "eval (T_EVAL)" '(' expr ')' - 494 | "require (T_REQUIRE)" expr - 495 | "require_once (T_REQUIRE_ONCE)" expr + 495 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset ']' + 496 | "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" + 497 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' + 498 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' + 499 | "{$ (T_CURLY_OPEN)" variable '}' - 496 isset_variables: variable + 500 encaps_var_offset: "identifier (T_STRING)" + 501 | "number (T_NUM_STRING)" + 502 | "variable (T_VARIABLE)" - 497 @70: /* empty */ + 503 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' + 504 | "empty (T_EMPTY)" '(' variable ')' + 505 | "include (T_INCLUDE)" expr + 506 | "include_once (T_INCLUDE_ONCE)" expr + 507 | "eval (T_EVAL)" '(' expr ')' + 508 | "require (T_REQUIRE)" expr + 509 | "require_once (T_REQUIRE_ONCE)" expr - 498 isset_variables: isset_variables ',' @70 variable + 510 isset_variables: variable - 499 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" - 500 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" + 511 @73: /* empty */ + + 512 isset_variables: isset_variables ',' @73 variable + + 513 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" + 514 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" Terminals, with rules where they appear "end of file" (0) 0 -'!' (33) 285 -'"' (34) 398 -'$' (36) 177 178 446 457 458 -'%' (37) 280 -'&' (38) 97 120 155 156 159 160 170 173 242 244 273 326 328 471 472 - 473 474 -'(' (40) 10 32 38 41 44 47 51 53 66 69 72 74 81 90 99 144 147 190 240 - 296 314 319 321 324 330 332 334 336 338 340 342 344 362 363 368 - 388 424 463 489 490 493 -')' (41) 10 32 38 41 44 47 51 53 66 69 72 74 81 90 99 144 147 190 240 - 296 314 319 321 324 330 332 334 336 338 340 342 344 362 363 368 - 388 424 463 489 490 493 -'*' (42) 278 -'+' (43) 276 283 386 +'!' (33) 296 +'"' (34) 412 +'$' (36) 177 178 460 471 472 +'%' (37) 291 +'&' (38) 97 120 155 156 159 160 170 173 255 257 284 340 342 485 486 + 487 488 +'(' (40) 10 32 38 41 44 47 51 53 66 69 72 74 81 90 99 144 147 190 253 + 307 310 328 333 335 338 344 346 348 350 352 354 356 358 376 377 + 382 402 438 477 503 504 507 +')' (41) 10 32 38 41 44 47 51 53 66 69 72 74 81 90 99 144 147 190 253 + 307 310 328 333 335 338 344 346 348 350 352 354 356 358 376 377 + 382 402 438 477 503 504 507 +'*' (42) 289 +'+' (43) 287 294 400 ',' (44) 18 24 92 116 128 158 159 160 161 171 172 173 174 179 180 193 - 204 226 227 230 232 237 325 326 403 404 405 459 467 468 471 472 - 498 -'-' (45) 277 284 387 -'.' (46) 275 -'/' (47) 279 -':' (58) 34 41 122 124 126 131 132 138 141 147 151 299 301 + 204 226 227 230 232 237 339 340 417 418 419 473 481 482 485 486 + 512 +'-' (45) 288 295 401 +'.' (46) 286 +'/' (47) 290 +':' (58) 34 41 122 124 126 131 132 138 141 147 151 313 315 ';' (59) 10 11 16 17 32 41 47 51 54 55 56 57 58 59 60 61 62 63 65 66 75 82 83 122 124 126 130 131 132 139 141 186 187 194 200 201 212 -'<' (60) 291 -'=' (61) 24 25 127 128 156 157 160 161 180 182 227 229 230 231 240 - 241 242 244 -'>' (62) 293 -'?' (63) 299 301 -'@' (64) 312 -'[' (91) 315 389 421 422 433 435 442 452 481 484 -']' (93) 315 389 421 422 433 435 442 452 481 484 -'^' (94) 274 -'`' (96) 316 -'{' (123) 13 15 35 81 90 99 101 103 129 130 178 195 213 319 321 443 - 446 453 456 -'|' (124) 272 -'}' (125) 13 15 35 81 90 99 101 103 129 130 178 195 213 319 321 443 - 446 453 456 483 484 485 -'~' (126) 286 +'<' (60) 302 +'=' (61) 24 25 127 128 156 157 160 161 180 182 227 229 230 231 253 + 254 255 257 +'>' (62) 304 +'?' (63) 313 315 +'@' (64) 326 +'[' (91) 241 242 329 403 435 436 447 449 456 466 495 498 +']' (93) 241 242 329 403 435 436 447 449 456 466 495 498 +'^' (94) 285 +'`' (96) 330 +'{' (123) 13 15 35 81 90 99 101 103 129 130 178 195 213 333 335 457 + 460 467 470 +'|' (124) 283 +'}' (125) 13 15 35 81 90 99 101 103 129 130 178 195 213 333 335 457 + 460 467 470 497 498 499 +'~' (126) 297 error (256) -"require_once (T_REQUIRE_ONCE)" (258) 495 -"require (T_REQUIRE)" (259) 494 -"eval (T_EVAL)" (260) 493 -"include_once (T_INCLUDE_ONCE)" (261) 492 -"include (T_INCLUDE)" (262) 491 -"or (T_LOGICAL_OR)" (263) 268 -"xor (T_LOGICAL_XOR)" (264) 271 -"and (T_LOGICAL_AND)" (265) 270 -"print (T_PRINT)" (266) 317 -">>= (T_SR_EQUAL)" (267) 258 -"<<= (T_SL_EQUAL)" (268) 257 -"^= (T_XOR_EQUAL)" (269) 256 -"|= (T_OR_EQUAL)" (270) 255 -"&= (T_AND_EQUAL)" (271) 254 -"%= (T_MOD_EQUAL)" (272) 253 -".= (T_CONCAT_EQUAL)" (273) 252 -"/= (T_DIV_EQUAL)" (274) 251 -"*= (T_MUL_EQUAL)" (275) 250 -"-= (T_MINUS_EQUAL)" (276) 249 -"+= (T_PLUS_EQUAL)" (277) 248 -"|| (T_BOOLEAN_OR)" (278) 264 -"&& (T_BOOLEAN_AND)" (279) 266 -"!== (T_IS_NOT_IDENTICAL)" (280) 288 -"=== (T_IS_IDENTICAL)" (281) 287 -"!= (T_IS_NOT_EQUAL)" (282) 290 -"== (T_IS_EQUAL)" (283) 289 -">= (T_IS_GREATER_OR_EQUAL)" (284) 294 -"<= (T_IS_SMALLER_OR_EQUAL)" (285) 292 -">> (T_SR)" (286) 282 -"<< (T_SL)" (287) 281 -"instanceof (T_INSTANCEOF)" (288) 295 -"(unset) (T_UNSET_CAST)" (289) 309 -"(bool) (T_BOOL_CAST)" (290) 308 -"(object) (T_OBJECT_CAST)" (291) 307 -"(array) (T_ARRAY_CAST)" (292) 306 -"(string) (T_STRING_CAST)" (293) 305 -"(double) (T_DOUBLE_CAST)" (294) 304 -"(int) (T_INT_CAST)" (295) 303 -"-- (T_DEC)" (296) 261 262 -"++ (T_INC)" (297) 259 260 -"clone (T_CLONE)" (298) 247 -"new (T_NEW)" (299) 244 246 -"exit (T_EXIT)" (300) 310 +"require_once (T_REQUIRE_ONCE)" (258) 509 +"require (T_REQUIRE)" (259) 508 +"eval (T_EVAL)" (260) 507 +"include_once (T_INCLUDE_ONCE)" (261) 506 +"include (T_INCLUDE)" (262) 505 +"or (T_LOGICAL_OR)" (263) 279 +"xor (T_LOGICAL_XOR)" (264) 282 +"and (T_LOGICAL_AND)" (265) 281 +"print (T_PRINT)" (266) 331 +">>= (T_SR_EQUAL)" (267) 269 +"<<= (T_SL_EQUAL)" (268) 268 +"^= (T_XOR_EQUAL)" (269) 267 +"|= (T_OR_EQUAL)" (270) 266 +"&= (T_AND_EQUAL)" (271) 265 +"%= (T_MOD_EQUAL)" (272) 264 +".= (T_CONCAT_EQUAL)" (273) 263 +"/= (T_DIV_EQUAL)" (274) 262 +"*= (T_MUL_EQUAL)" (275) 261 +"-= (T_MINUS_EQUAL)" (276) 260 +"+= (T_PLUS_EQUAL)" (277) 259 +"|| (T_BOOLEAN_OR)" (278) 275 +"&& (T_BOOLEAN_AND)" (279) 277 +"!== (T_IS_NOT_IDENTICAL)" (280) 299 +"=== (T_IS_IDENTICAL)" (281) 298 +"!= (T_IS_NOT_EQUAL)" (282) 301 +"== (T_IS_EQUAL)" (283) 300 +">= (T_IS_GREATER_OR_EQUAL)" (284) 305 +"<= (T_IS_SMALLER_OR_EQUAL)" (285) 303 +">> (T_SR)" (286) 293 +"<< (T_SL)" (287) 292 +"instanceof (T_INSTANCEOF)" (288) 306 +"(unset) (T_UNSET_CAST)" (289) 323 +"(bool) (T_BOOL_CAST)" (290) 322 +"(object) (T_OBJECT_CAST)" (291) 321 +"(array) (T_ARRAY_CAST)" (292) 320 +"(string) (T_STRING_CAST)" (293) 319 +"(double) (T_DOUBLE_CAST)" (294) 318 +"(int) (T_INT_CAST)" (295) 317 +"-- (T_DEC)" (296) 272 273 +"++ (T_INC)" (297) 270 271 +"clone (T_CLONE)" (298) 258 +"new (T_NEW)" (299) 251 257 +"exit (T_EXIT)" (300) 324 "if (T_IF)" (301) 38 41 "elseif (T_ELSEIF)" (302) 144 147 "else (T_ELSE)" (303) 149 151 "endif (T_ENDIF)" (304) 41 -"integer number (T_LNUMBER)" (305) 369 -"floating-point number (T_DNUMBER)" (306) 370 +"integer number (T_LNUMBER)" (305) 383 +"floating-point number (T_DNUMBER)" (306) 384 "identifier (T_STRING)" (307) 5 6 21 23 24 25 34 83 99 101 103 127 - 128 190 205 207 208 230 231 391 455 482 486 499 500 -"variable name (T_STRING_VARNAME)" (308) 392 484 + 128 190 205 207 208 230 231 405 469 496 500 513 514 +"variable name (T_STRING_VARNAME)" (308) 406 498 "variable (T_VARIABLE)" (309) 81 90 154 155 156 157 158 159 160 161 - 176 179 180 181 182 226 227 228 229 325 326 327 328 445 479 481 - 482 488 -"number (T_NUM_STRING)" (310) 487 + 176 179 180 181 182 226 227 228 229 339 340 341 342 459 493 495 + 496 502 +"number (T_NUM_STRING)" (310) 501 T_INLINE_HTML (311) 64 T_CHARACTER (312) T_BAD_CHARACTER (313) "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" - (314) 365 380 476 478 -"quoted-string (T_CONSTANT_ENCAPSED_STRING)" (315) 371 + (314) 379 394 490 492 +"quoted-string (T_CONSTANT_ENCAPSED_STRING)" (315) 385 "echo (T_ECHO)" (316) 63 "do (T_DO)" (317) 47 "while (T_WHILE)" (318) 44 47 @@ -879,13 +903,13 @@ T_BAD_CHARACTER (313) "break (T_BREAK)" (331) 54 55 "continue (T_CONTINUE)" (332) 56 57 "goto (T_GOTO)" (333) 83 -"function (T_FUNCTION)" (334) 322 +"function (T_FUNCTION)" (334) 336 "const (T_CONST)" (335) 25 231 "return (T_RETURN)" (336) 58 59 60 "try (T_TRY)" (337) 81 "catch (T_CATCH)" (338) 81 90 "throw (T_THROW)" (339) 82 -"use (T_USE)" (340) 16 191 324 +"use (T_USE)" (340) 16 191 338 "insteadof (T_INSTEADOF)" (341) 202 "global (T_GLOBAL)" (342) 61 "public (T_PUBLIC)" (343) 220 @@ -893,45 +917,45 @@ T_BAD_CHARACTER (313) "private (T_PRIVATE)" (345) 222 "final (T_FINAL)" (346) 107 225 "abstract (T_ABSTRACT)" (347) 105 224 -"static (T_STATIC)" (348) 62 223 321 345 +"static (T_STATIC)" (348) 62 223 335 359 "var (T_VAR)" (349) 215 "unset (T_UNSET)" (350) 66 -"isset (T_ISSET)" (351) 489 -"empty (T_EMPTY)" (352) 490 +"isset (T_ISSET)" (351) 503 +"empty (T_EMPTY)" (352) 504 "__halt_compiler (T_HALT_COMPILER)" (353) 10 32 "class (T_CLASS)" (354) 104 105 107 "trait (T_TRAIT)" (355) 106 "interface (T_INTERFACE)" (356) 110 "extends (T_EXTENDS)" (357) 109 112 "implements (T_IMPLEMENTS)" (358) 114 -"-> (T_OBJECT_OPERATOR)" (359) 356 360 415 420 482 -"=> (T_DOUBLE_ARROW)" (360) 118 404 406 467 469 471 473 -"list (T_LIST)" (361) 240 463 -"array (T_ARRAY)" (362) 163 314 388 +"-> (T_OBJECT_OPERATOR)" (359) 370 374 429 434 496 +"=> (T_DOUBLE_ARROW)" (360) 118 418 420 481 483 485 487 +"list (T_LIST)" (361) 253 477 +"array (T_ARRAY)" (362) 163 328 402 "callable (T_CALLABLE)" (363) 164 -"__CLASS__ (T_CLASS_C)" (364) 375 -"__TRAIT__ (T_TRAIT_C)" (365) 376 -"__METHOD__ (T_METHOD_C)" (366) 377 -"__FUNCTION__ (T_FUNC_C)" (367) 378 -"__LINE__ (T_LINE)" (368) 372 -"__FILE__ (T_FILE)" (369) 373 +"__CLASS__ (T_CLASS_C)" (364) 389 +"__TRAIT__ (T_TRAIT_C)" (365) 390 +"__METHOD__ (T_METHOD_C)" (366) 391 +"__FUNCTION__ (T_FUNC_C)" (367) 392 +"__LINE__ (T_LINE)" (368) 386 +"__FILE__ (T_FILE)" (369) 387 "comment (T_COMMENT)" (370) "doc comment (T_DOC_COMMENT)" (371) "open tag (T_OPEN_TAG)" (372) "open tag with echo (T_OPEN_TAG_WITH_ECHO)" (373) "close tag (T_CLOSE_TAG)" (374) "whitespace (T_WHITESPACE)" (375) -"heredoc start (T_START_HEREDOC)" (376) 380 381 399 -"heredoc end (T_END_HEREDOC)" (377) 380 381 399 -"${ (T_DOLLAR_OPEN_CURLY_BRACES)" (378) 483 484 -"{$ (T_CURLY_OPEN)" (379) 485 -":: (T_PAAMAYIM_NEKUDOTAYIM)" (380) 207 336 338 340 342 391 430 431 - 499 500 -"namespace (T_NAMESPACE)" (381) 11 13 15 332 347 350 384 395 -"__NAMESPACE__ (T_NS_C)" (382) 379 -"__DIR__ (T_DIR)" (383) 374 -"\\ (T_NS_SEPARATOR)" (384) 6 22 23 332 334 347 348 350 351 384 385 - 395 396 +"heredoc start (T_START_HEREDOC)" (376) 394 395 413 +"heredoc end (T_END_HEREDOC)" (377) 394 395 413 +"${ (T_DOLLAR_OPEN_CURLY_BRACES)" (378) 497 498 +"{$ (T_CURLY_OPEN)" (379) 499 +":: (T_PAAMAYIM_NEKUDOTAYIM)" (380) 207 350 352 354 356 405 444 445 + 513 514 +"namespace (T_NAMESPACE)" (381) 11 13 15 346 361 364 398 409 +"__NAMESPACE__ (T_NS_C)" (382) 393 +"__DIR__ (T_DIR)" (383) 388 +"\\ (T_NS_SEPARATOR)" (384) 6 22 23 346 348 361 362 364 365 398 399 + 409 410 Nonterminals, with rules where they appear @@ -945,8 +969,8 @@ top_statement_list (160) @1 (161) on left: 2, on right: 3 namespace_name (162) - on left: 5 6, on right: 6 11 13 20 21 22 23 330 332 334 346 347 - 348 349 350 351 383 384 385 394 395 396 + on left: 5 6, on right: 6 11 13 20 21 22 23 344 346 348 360 361 + 362 363 364 365 397 398 399 408 409 410 top_statement (163) on left: 7 8 9 10 11 13 15 16 17, on right: 3 @2 (164) @@ -961,7 +985,7 @@ constant_declaration (168) on left: 24 25, on right: 17 24 inner_statement_list (169) on left: 27 28, on right: 27 35 41 81 90 99 122 124 126 135 137 - 141 147 151 213 319 321 + 141 147 151 213 333 335 @4 (170) on left: 26, on right: 27 inner_statement (171) @@ -1034,7 +1058,7 @@ function_declaration_statement (203) class_declaration_statement (204) on left: 95, on right: 9 31 is_reference (205) - on left: 96 97, on right: 99 190 319 321 + on left: 96 97, on right: 99 190 333 335 unticked_function_declaration_statement (206) on left: 99, on right: 94 @29 (207) @@ -1094,7 +1118,7 @@ else_single (233) new_else_single (234) on left: 150 151, on right: 41 parameter_list (235) - on left: 152 153, on right: 99 190 319 321 + on left: 152 153, on right: 99 190 333 335 non_empty_parameter_list (236) on left: 154 155 156 157 158 159 160 161, on right: 152 158 159 160 161 @@ -1102,8 +1126,8 @@ optional_class_type (237) on left: 162 163 164 165, on right: 154 155 156 157 158 159 160 161 function_call_parameter_list (238) - on left: 166 167, on right: 330 332 334 336 338 340 342 344 368 - 424 + on left: 166 167, on right: 344 346 348 350 352 354 356 358 382 + 438 non_empty_function_call_parameter_list (239) on left: 168 169 170 171 172 173, on right: 166 171 172 173 global_var_list (240) @@ -1166,194 +1190,210 @@ non_empty_for_expr (268) on left: 237 238, on right: 235 237 @38 (269) on left: 236, on right: 237 -expr_without_variable (270) - on left: 240 241 242 244 246 247 248 249 250 251 252 253 254 255 - 256 257 258 259 260 261 262 264 266 268 270 271 272 273 274 275 - 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292 293 294 295 296 299 301 302 303 304 305 306 307 308 309 310 - 312 313 314 315 316 317 319 321, on right: 59 72 168 171 409 -@39 (271) - on left: 239, on right: 240 -@40 (272) +chaining_method_or_property (270) + on left: 239 240, on right: 239 244 246 +chaining_dereference (271) + on left: 241 242, on right: 241 244 245 +chaining_instance_call (272) + on left: 244 245 246, on right: 249 +@39 (273) on left: 243, on right: 244 -@41 (273) - on left: 245, on right: 246 -@42 (274) - on left: 263, on right: 264 -@43 (275) - on left: 265, on right: 266 -@44 (276) - on left: 267, on right: 268 -@45 (277) - on left: 269, on right: 270 -@46 (278) - on left: 297, on right: 299 -@47 (279) - on left: 298, on right: 299 -@48 (280) - on left: 300, on right: 301 -@49 (281) - on left: 311, on right: 312 -@50 (282) - on left: 318, on right: 319 -@51 (283) - on left: 320, on right: 321 -function (284) - on left: 322, on right: 99 190 319 321 -lexical_vars (285) - on left: 323 324, on right: 319 321 -lexical_var_list (286) - on left: 325 326 327 328, on right: 324 325 326 -function_call (287) - on left: 330 332 334 336 338 340 342 344, on right: 435 438 -@52 (288) - on left: 329, on right: 330 -@53 (289) - on left: 331, on right: 332 -@54 (290) - on left: 333, on right: 334 -@55 (291) - on left: 335, on right: 336 -@56 (292) - on left: 337, on right: 338 -@57 (293) - on left: 339, on right: 340 -@58 (294) - on left: 341, on right: 342 -@59 (295) +instance_call (274) + on left: 247 249, on right: 310 +@40 (275) + on left: 248, on right: 249 +new_expr (276) + on left: 251, on right: 308 310 +@41 (277) + on left: 250, on right: 251 +expr_without_variable (278) + on left: 253 254 255 257 258 259 260 261 262 263 264 265 266 267 + 268 269 270 271 272 273 275 277 279 281 282 283 284 285 286 287 + 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304 305 306 307 308 310 313 315 316 317 318 319 320 321 322 323 + 324 326 327 328 329 330 331 333 335, on right: 59 72 168 171 423 +@42 (279) + on left: 252, on right: 253 +@43 (280) + on left: 256, on right: 257 +@44 (281) + on left: 274, on right: 275 +@45 (282) + on left: 276, on right: 277 +@46 (283) + on left: 278, on right: 279 +@47 (284) + on left: 280, on right: 281 +@48 (285) + on left: 309, on right: 310 +@49 (286) + on left: 311, on right: 313 +@50 (287) + on left: 312, on right: 313 +@51 (288) + on left: 314, on right: 315 +@52 (289) + on left: 325, on right: 326 +@53 (290) + on left: 332, on right: 333 +@54 (291) + on left: 334, on right: 335 +function (292) + on left: 336, on right: 99 190 333 335 +lexical_vars (293) + on left: 337 338, on right: 333 335 +lexical_var_list (294) + on left: 339 340 341 342, on right: 338 339 340 +function_call (295) + on left: 344 346 348 350 352 354 356 358, on right: 449 452 +@55 (296) on left: 343, on right: 344 -class_name (296) - on left: 345 346 347 348, on right: 336 338 352 391 430 499 -fully_qualified_class_name (297) - on left: 349 350 351, on right: 81 90 109 115 116 165 192 193 203 - 204 207 -class_name_reference (298) - on left: 352 353, on right: 244 246 295 -dynamic_class_name_reference (299) - on left: 356 357, on right: 353 -@60 (300) - on left: 354, on right: 356 -@61 (301) +@56 (297) + on left: 345, on right: 346 +@57 (298) + on left: 347, on right: 348 +@58 (299) + on left: 349, on right: 350 +@59 (300) + on left: 351, on right: 352 +@60 (301) + on left: 353, on right: 354 +@61 (302) on left: 355, on right: 356 -dynamic_class_name_variable_properties (302) - on left: 358 359, on right: 356 358 -dynamic_class_name_variable_property (303) - on left: 360, on right: 358 -exit_expr (304) - on left: 361 362 363, on right: 310 -backticks_expr (305) - on left: 364 365 366, on right: 316 -ctor_arguments (306) - on left: 367 368, on right: 244 246 -common_scalar (307) - on left: 369 370 371 372 373 374 375 376 377 378 379 380 381, - on right: 382 397 -static_scalar (308) - on left: 382 383 384 385 386 387 388 389 390, on right: 24 25 127 - 128 156 157 160 161 180 182 227 229 230 231 386 387 404 405 406 - 407 -static_class_constant (309) - on left: 391, on right: 390 -scalar (310) - on left: 392 393 394 395 396 397 398 399, on right: 313 -static_array_pair_list (311) - on left: 400 401, on right: 388 389 -possible_comma (312) - on left: 402 403, on right: 401 466 -non_empty_static_array_pair_list (313) - on left: 404 405 406 407, on right: 401 404 405 -expr (314) - on left: 408 409, on right: 38 41 44 47 53 55 57 65 82 135 144 - 147 178 232 233 237 238 240 241 247 248 249 250 251 252 253 254 - 255 256 257 258 264 266 268 270 271 272 273 274 275 276 277 278 - 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295 296 299 301 303 304 305 306 307 308 309 312 317 363 443 446 - 448 453 456 467 468 469 470 471 473 483 484 491 492 493 494 495 -r_variable (315) - on left: 410, on right: 177 408 -w_variable (316) - on left: 411, on right: 170 173 471 472 473 474 -rw_variable (317) - on left: 412, on right: 259 260 261 262 -variable (318) - on left: 415 416, on right: 60 69 72 93 119 120 169 172 241 242 - 244 248 249 250 251 252 253 254 255 256 257 258 410 411 412 461 - 485 490 496 498 -@62 (319) - on left: 413, on right: 415 -@63 (320) - on left: 414, on right: 415 -variable_properties (321) - on left: 417 418, on right: 415 417 -variable_property (322) - on left: 420, on right: 417 -@64 (323) - on left: 419, on right: 420 -array_method_dereference (324) - on left: 421 422, on right: 421 426 -method (325) - on left: 424, on right: 422 425 -@65 (326) - on left: 423, on right: 424 -method_or_not (327) - on left: 425 426 427, on right: 415 420 -variable_without_objects (328) - on left: 428 429, on right: 338 342 344 430 431 451 -static_member (329) - on left: 430 431, on right: 441 -variable_class_name (330) - on left: 432, on right: 340 342 431 500 -array_function_dereference (331) - on left: 433 435, on right: 433 437 -@66 (332) - on left: 434, on right: 435 -base_variable_with_function_calls (333) - on left: 436 437 438, on right: 415 416 -base_variable (334) - on left: 439 440 441, on right: 356 357 436 -reference_variable (335) - on left: 442 443 444, on right: 428 429 432 439 440 442 443 -compound_variable (336) - on left: 445 446, on right: 444 -dim_offset (337) - on left: 447 448, on right: 421 422 433 435 442 452 -object_property (338) - on left: 449 451, on right: 356 360 415 420 -@67 (339) - on left: 450, on right: 451 -object_dim_list (340) - on left: 452 453 454, on right: 449 452 453 -variable_name (341) - on left: 455 456, on right: 336 340 454 -simple_indirect_reference (342) - on left: 457 458, on right: 429 440 458 -assignment_list (343) - on left: 459 460, on right: 240 459 463 -assignment_list_element (344) - on left: 461 463 464, on right: 459 460 -@68 (345) - on left: 462, on right: 463 -array_pair_list (346) - on left: 465 466, on right: 314 315 -non_empty_array_pair_list (347) - on left: 467 468 469 470 471 472 473 474, on right: 466 467 468 - 471 472 -encaps_list (348) - on left: 475 476 477 478, on right: 366 398 399 475 476 -encaps_var (349) - on left: 479 481 482 483 484 485, on right: 475 477 478 -@69 (350) - on left: 480, on right: 481 -encaps_var_offset (351) - on left: 486 487 488, on right: 481 -internal_functions_in_yacc (352) - on left: 489 490 491 492 493 494 495, on right: 302 -isset_variables (353) - on left: 496 498, on right: 489 498 -@70 (354) - on left: 497, on right: 498 -class_constant (355) - on left: 499 500, on right: 393 +@62 (303) + on left: 357, on right: 358 +class_name (304) + on left: 359 360 361 362, on right: 350 352 366 405 444 513 +fully_qualified_class_name (305) + on left: 363 364 365, on right: 81 90 109 115 116 165 192 193 203 + 204 207 +class_name_reference (306) + on left: 366 367, on right: 251 257 306 +dynamic_class_name_reference (307) + on left: 370 371, on right: 367 +@63 (308) + on left: 368, on right: 370 +@64 (309) + on left: 369, on right: 370 +dynamic_class_name_variable_properties (310) + on left: 372 373, on right: 370 372 +dynamic_class_name_variable_property (311) + on left: 374, on right: 372 +exit_expr (312) + on left: 375 376 377, on right: 324 +backticks_expr (313) + on left: 378 379 380, on right: 330 +ctor_arguments (314) + on left: 381 382, on right: 251 257 +common_scalar (315) + on left: 383 384 385 386 387 388 389 390 391 392 393 394 395, + on right: 396 411 +static_scalar (316) + on left: 396 397 398 399 400 401 402 403 404, on right: 24 25 127 + 128 156 157 160 161 180 182 227 229 230 231 400 401 418 419 420 + 421 +static_class_constant (317) + on left: 405, on right: 404 +scalar (318) + on left: 406 407 408 409 410 411 412 413, on right: 327 +static_array_pair_list (319) + on left: 414 415, on right: 402 403 +possible_comma (320) + on left: 416 417, on right: 415 480 +non_empty_static_array_pair_list (321) + on left: 418 419 420 421, on right: 415 418 419 +expr (322) + on left: 422 423, on right: 38 41 44 47 53 55 57 65 82 135 144 + 147 178 232 233 237 238 253 254 258 259 260 261 262 263 264 265 + 266 267 268 269 275 277 279 281 282 283 284 285 286 287 288 289 + 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306 307 313 315 317 318 319 320 321 322 323 326 331 377 457 460 + 462 467 470 481 482 483 484 485 487 497 498 505 506 507 508 509 +r_variable (323) + on left: 424, on right: 177 422 +w_variable (324) + on left: 425, on right: 170 173 485 486 487 488 +rw_variable (325) + on left: 426, on right: 270 271 272 273 +variable (326) + on left: 429 430, on right: 60 69 72 93 119 120 169 172 254 255 + 257 259 260 261 262 263 264 265 266 267 268 269 424 425 426 475 + 499 504 510 512 +@65 (327) + on left: 427, on right: 429 +@66 (328) + on left: 428, on right: 429 +variable_properties (329) + on left: 431 432, on right: 429 431 +variable_property (330) + on left: 434, on right: 239 240 431 +@67 (331) + on left: 433, on right: 434 +array_method_dereference (332) + on left: 435 436, on right: 435 440 +method (333) + on left: 438, on right: 436 439 +@68 (334) + on left: 437, on right: 438 +method_or_not (335) + on left: 439 440 441, on right: 429 434 +variable_without_objects (336) + on left: 442 443, on right: 352 356 358 444 445 465 +static_member (337) + on left: 444 445, on right: 455 +variable_class_name (338) + on left: 446, on right: 354 356 445 514 +array_function_dereference (339) + on left: 447 449, on right: 447 451 +@69 (340) + on left: 448, on right: 449 +base_variable_with_function_calls (341) + on left: 450 451 452, on right: 429 430 +base_variable (342) + on left: 453 454 455, on right: 370 371 450 +reference_variable (343) + on left: 456 457 458, on right: 442 443 446 453 454 456 457 +compound_variable (344) + on left: 459 460, on right: 458 +dim_offset (345) + on left: 461 462, on right: 241 242 435 436 447 449 456 466 +object_property (346) + on left: 463 465, on right: 370 374 429 434 +@70 (347) + on left: 464, on right: 465 +object_dim_list (348) + on left: 466 467 468, on right: 463 466 467 +variable_name (349) + on left: 469 470, on right: 350 354 468 +simple_indirect_reference (350) + on left: 471 472, on right: 443 454 472 +assignment_list (351) + on left: 473 474, on right: 253 473 477 +assignment_list_element (352) + on left: 475 477 478, on right: 473 474 +@71 (353) + on left: 476, on right: 477 +array_pair_list (354) + on left: 479 480, on right: 328 329 +non_empty_array_pair_list (355) + on left: 481 482 483 484 485 486 487 488, on right: 480 481 482 + 485 486 +encaps_list (356) + on left: 489 490 491 492, on right: 380 412 413 489 490 +encaps_var (357) + on left: 493 495 496 497 498 499, on right: 489 491 492 +@72 (358) + on left: 494, on right: 495 +encaps_var_offset (359) + on left: 500 501 502, on right: 495 +internal_functions_in_yacc (360) + on left: 503 504 505 506 507 508 509, on right: 316 +isset_variables (361) + on left: 510 512, on right: 503 512 +@73 (362) + on left: 511, on right: 512 +class_constant (363) + on left: 513 514, on right: 407 state 0 @@ -1485,32 +1525,33 @@ state 4 unticked_class_declaration_statement go to state 91 class_entry_type go to state 92 interface_entry go to state 93 - expr_without_variable go to state 94 - function go to state 95 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 96 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 5 - 495 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" . expr + 509 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -1538,12 +1579,12 @@ state 5 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -1555,7 +1596,7 @@ state 5 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -1565,32 +1606,33 @@ state 5 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 119 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 120 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 6 - 494 internal_functions_in_yacc: "require (T_REQUIRE)" . expr + 508 internal_functions_in_yacc: "require (T_REQUIRE)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -1618,12 +1660,12 @@ state 6 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -1635,7 +1677,7 @@ state 6 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -1645,39 +1687,40 @@ state 6 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 120 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 121 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 7 - 493 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')' + 507 internal_functions_in_yacc: "eval (T_EVAL)" . '(' expr ')' - '(' shift, and go to state 121 + '(' shift, and go to state 122 state 8 - 492 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" . expr + 506 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -1705,12 +1748,12 @@ state 8 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -1722,7 +1765,7 @@ state 8 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -1732,32 +1775,33 @@ state 8 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 122 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 123 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 9 - 491 internal_functions_in_yacc: "include (T_INCLUDE)" . expr + 505 internal_functions_in_yacc: "include (T_INCLUDE)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -1785,12 +1829,12 @@ state 9 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -1802,7 +1846,7 @@ state 9 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -1812,32 +1856,33 @@ state 9 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 123 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 124 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 10 - 317 expr_without_variable: "print (T_PRINT)" . expr + 331 expr_without_variable: "print (T_PRINT)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -1865,12 +1910,12 @@ state 10 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -1882,7 +1927,7 @@ state 10 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -1892,32 +1937,33 @@ state 10 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 124 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 125 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 11 - 283 expr_without_variable: '+' . expr + 294 expr_without_variable: '+' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -1945,12 +1991,12 @@ state 11 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -1962,7 +2008,7 @@ state 11 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -1972,32 +2018,33 @@ state 11 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 125 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 126 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 12 - 284 expr_without_variable: '-' . expr + 295 expr_without_variable: '-' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2025,12 +2072,12 @@ state 12 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2042,7 +2089,7 @@ state 12 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2052,32 +2099,33 @@ state 12 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 126 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 127 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 13 - 285 expr_without_variable: '!' . expr + 296 expr_without_variable: '!' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2105,12 +2153,12 @@ state 13 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2122,7 +2170,7 @@ state 13 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2132,32 +2180,33 @@ state 13 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 127 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 128 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 14 - 286 expr_without_variable: '~' . expr + 297 expr_without_variable: '~' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2185,12 +2234,12 @@ state 14 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2202,7 +2251,7 @@ state 14 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2212,41 +2261,42 @@ state 14 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 128 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 129 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 15 - 312 expr_without_variable: '@' . @49 expr + 326 expr_without_variable: '@' . @52 expr - $default reduce using rule 311 (@49) + $default reduce using rule 325 (@52) - @49 go to state 129 + @52 go to state 130 state 16 - 309 expr_without_variable: "(unset) (T_UNSET_CAST)" . expr + 323 expr_without_variable: "(unset) (T_UNSET_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2274,12 +2324,12 @@ state 16 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2291,7 +2341,7 @@ state 16 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2301,32 +2351,33 @@ state 16 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 130 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 131 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 17 - 308 expr_without_variable: "(bool) (T_BOOL_CAST)" . expr + 322 expr_without_variable: "(bool) (T_BOOL_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2354,12 +2405,12 @@ state 17 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2371,7 +2422,7 @@ state 17 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2381,32 +2432,33 @@ state 17 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 131 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 132 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 18 - 307 expr_without_variable: "(object) (T_OBJECT_CAST)" . expr + 321 expr_without_variable: "(object) (T_OBJECT_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2434,12 +2486,12 @@ state 18 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2451,7 +2503,7 @@ state 18 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2461,32 +2513,33 @@ state 18 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 132 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 133 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 19 - 306 expr_without_variable: "(array) (T_ARRAY_CAST)" . expr + 320 expr_without_variable: "(array) (T_ARRAY_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2514,12 +2567,12 @@ state 19 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2531,7 +2584,7 @@ state 19 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2541,32 +2594,33 @@ state 19 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 133 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 134 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 20 - 305 expr_without_variable: "(string) (T_STRING_CAST)" . expr + 319 expr_without_variable: "(string) (T_STRING_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2594,12 +2648,12 @@ state 20 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2611,7 +2665,7 @@ state 20 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2621,32 +2675,33 @@ state 20 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 134 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 135 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 21 - 304 expr_without_variable: "(double) (T_DOUBLE_CAST)" . expr + 318 expr_without_variable: "(double) (T_DOUBLE_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2674,12 +2729,12 @@ state 21 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2691,7 +2746,7 @@ state 21 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2701,32 +2756,33 @@ state 21 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 135 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 136 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 22 - 303 expr_without_variable: "(int) (T_INT_CAST)" . expr + 317 expr_without_variable: "(int) (T_INT_CAST)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2754,12 +2810,12 @@ state 22 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2771,7 +2827,7 @@ state 22 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2781,86 +2837,87 @@ state 22 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 136 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 137 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 23 - 262 expr_without_variable: "-- (T_DEC)" . rw_variable + 273 expr_without_variable: "-- (T_DEC)" . rw_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - rw_variable go to state 142 - variable go to state 143 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + rw_variable go to state 143 + variable go to state 144 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 state 24 - 260 expr_without_variable: "++ (T_INC)" . rw_variable + 271 expr_without_variable: "++ (T_INC)" . rw_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - rw_variable go to state 145 - variable go to state 143 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + rw_variable go to state 146 + variable go to state 144 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 state 25 - 315 expr_without_variable: '[' . array_pair_list ']' + 329 expr_without_variable: '[' . array_pair_list ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2868,7 +2925,7 @@ state 25 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 146 + '&' shift, and go to state 147 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -2889,12 +2946,12 @@ state 25 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2906,7 +2963,7 @@ state 25 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -2915,37 +2972,38 @@ state 25 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 465 (array_pair_list) + $default reduce using rule 479 (array_pair_list) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 147 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - array_pair_list go to state 148 - non_empty_array_pair_list go to state 149 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 148 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + array_pair_list go to state 149 + non_empty_array_pair_list go to state 150 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 26 - 247 expr_without_variable: "clone (T_CLONE)" . expr + 258 expr_without_variable: "clone (T_CLONE)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -2973,12 +3031,12 @@ state 26 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -2990,7 +3048,7 @@ state 26 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -3000,61 +3058,62 @@ state 26 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 150 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 151 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 27 - 246 expr_without_variable: "new (T_NEW)" . class_name_reference @41 ctor_arguments + 251 new_expr: "new (T_NEW)" . class_name_reference @41 ctor_arguments - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 151 - "\\ (T_NS_SEPARATOR)" shift, and go to state 152 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 152 + "\\ (T_NS_SEPARATOR)" shift, and go to state 153 '$' shift, and go to state 80 - namespace_name go to state 153 - class_name go to state 154 - class_name_reference go to state 155 - dynamic_class_name_reference go to state 156 - static_member go to state 105 - variable_class_name go to state 157 - base_variable go to state 158 - reference_variable go to state 159 - compound_variable go to state 111 - simple_indirect_reference go to state 160 + namespace_name go to state 154 + class_name go to state 155 + class_name_reference go to state 156 + dynamic_class_name_reference go to state 157 + static_member go to state 106 + variable_class_name go to state 158 + base_variable go to state 159 + reference_variable go to state 160 + compound_variable go to state 112 + simple_indirect_reference go to state 161 state 28 - 310 expr_without_variable: "exit (T_EXIT)" . exit_expr + 324 expr_without_variable: "exit (T_EXIT)" . exit_expr - '(' shift, and go to state 161 + '(' shift, and go to state 162 - $default reduce using rule 361 (exit_expr) + $default reduce using rule 375 (exit_expr) - exit_expr go to state 162 + exit_expr go to state 163 state 29 @@ -3062,21 +3121,21 @@ state 29 38 unticked_statement: "if (T_IF)" . '(' expr ')' @5 statement @6 elseif_list else_single 41 | "if (T_IF)" . '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' - '(' shift, and go to state 163 + '(' shift, and go to state 164 state 30 - 369 common_scalar: "integer number (T_LNUMBER)" . + 383 common_scalar: "integer number (T_LNUMBER)" . - $default reduce using rule 369 (common_scalar) + $default reduce using rule 383 (common_scalar) state 31 - 370 common_scalar: "floating-point number (T_DNUMBER)" . + 384 common_scalar: "floating-point number (T_DNUMBER)" . - $default reduce using rule 370 (common_scalar) + $default reduce using rule 384 (common_scalar) state 32 @@ -3084,23 +3143,23 @@ state 32 5 namespace_name: "identifier (T_STRING)" . 34 statement: "identifier (T_STRING)" . ':' - ':' shift, and go to state 164 + ':' shift, and go to state 165 $default reduce using rule 5 (namespace_name) state 33 - 392 scalar: "variable name (T_STRING_VARNAME)" . + 406 scalar: "variable name (T_STRING_VARNAME)" . - $default reduce using rule 392 (scalar) + $default reduce using rule 406 (scalar) state 34 - 445 compound_variable: "variable (T_VARIABLE)" . + 459 compound_variable: "variable (T_VARIABLE)" . - $default reduce using rule 445 (compound_variable) + $default reduce using rule 459 (compound_variable) state 35 @@ -3112,9 +3171,9 @@ state 35 state 36 - 371 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" . + 385 common_scalar: "quoted-string (T_CONSTANT_ENCAPSED_STRING)" . - $default reduce using rule 371 (common_scalar) + $default reduce using rule 385 (common_scalar) state 37 @@ -3147,12 +3206,12 @@ state 37 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -3164,7 +3223,7 @@ state 37 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -3174,28 +3233,29 @@ state 37 '"' shift, and go to state 82 namespace_name go to state 83 - echo_expr_list go to state 165 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 166 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + echo_expr_list go to state 166 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 167 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 38 @@ -3204,21 +3264,21 @@ state 38 $default reduce using rule 45 (@11) - @11 go to state 167 + @11 go to state 168 state 39 44 unticked_statement: "while (T_WHILE)" . '(' @9 expr ')' @10 while_statement - '(' shift, and go to state 168 + '(' shift, and go to state 169 state 40 51 unticked_statement: "for (T_FOR)" . '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement - '(' shift, and go to state 169 + '(' shift, and go to state 170 state 41 @@ -3226,7 +3286,7 @@ state 41 69 unticked_statement: "foreach (T_FOREACH)" . '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement 72 | "foreach (T_FOREACH)" . '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement - '(' shift, and go to state 170 + '(' shift, and go to state 171 state 42 @@ -3235,14 +3295,14 @@ state 42 $default reduce using rule 73 (@21) - @21 go to state 171 + @21 go to state 172 state 43 53 unticked_statement: "switch (T_SWITCH)" . '(' expr ')' @16 switch_case_list - '(' shift, and go to state 172 + '(' shift, and go to state 173 state 44 @@ -3276,12 +3336,12 @@ state 44 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -3293,38 +3353,39 @@ state 44 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 '(' shift, and go to state 77 - ';' shift, and go to state 173 + ';' shift, and go to state 174 '$' shift, and go to state 80 '`' shift, and go to state 81 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 174 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 175 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 45 @@ -3358,12 +3419,12 @@ state 45 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -3375,59 +3436,60 @@ state 45 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 '(' shift, and go to state 77 - ';' shift, and go to state 175 + ';' shift, and go to state 176 '$' shift, and go to state 80 '`' shift, and go to state 81 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 176 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 177 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 46 83 unticked_statement: "goto (T_GOTO)" . "identifier (T_STRING)" ';' - "identifier (T_STRING)" shift, and go to state 177 + "identifier (T_STRING)" shift, and go to state 178 state 47 - 322 function: "function (T_FUNCTION)" . + 336 function: "function (T_FUNCTION)" . - $default reduce using rule 322 (function) + $default reduce using rule 336 (function) state 48 25 constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar - "identifier (T_STRING)" shift, and go to state 178 + "identifier (T_STRING)" shift, and go to state 179 state 49 @@ -3462,12 +3524,12 @@ state 49 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -3479,38 +3541,39 @@ state 49 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 '(' shift, and go to state 77 - ';' shift, and go to state 179 + ';' shift, and go to state 180 '$' shift, and go to state 80 '`' shift, and go to state 81 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 180 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 182 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 181 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 183 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 50 @@ -3519,7 +3582,7 @@ state 50 $default reduce using rule 76 (@22) - @22 go to state 183 + @22 go to state 184 state 51 @@ -3552,12 +3615,12 @@ state 51 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -3569,7 +3632,7 @@ state 51 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -3579,107 +3642,108 @@ state 51 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 184 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 185 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 52 16 top_statement: "use (T_USE)" . use_declarations ';' - "identifier (T_STRING)" shift, and go to state 115 - "\\ (T_NS_SEPARATOR)" shift, and go to state 185 + "identifier (T_STRING)" shift, and go to state 116 + "\\ (T_NS_SEPARATOR)" shift, and go to state 186 - namespace_name go to state 186 - use_declarations go to state 187 - use_declaration go to state 188 + namespace_name go to state 187 + use_declarations go to state 188 + use_declaration go to state 189 state 53 61 unticked_statement: "global (T_GLOBAL)" . global_var_list ';' - "variable (T_VARIABLE)" shift, and go to state 189 - '$' shift, and go to state 190 + "variable (T_VARIABLE)" shift, and go to state 190 + '$' shift, and go to state 191 - global_var_list go to state 191 - global_var go to state 192 + global_var_list go to state 192 + global_var go to state 193 state 54 107 class_entry_type: "final (T_FINAL)" . "class (T_CLASS)" - "class (T_CLASS)" shift, and go to state 193 + "class (T_CLASS)" shift, and go to state 194 state 55 105 class_entry_type: "abstract (T_ABSTRACT)" . "class (T_CLASS)" - "class (T_CLASS)" shift, and go to state 194 + "class (T_CLASS)" shift, and go to state 195 state 56 62 unticked_statement: "static (T_STATIC)" . static_var_list ';' - 321 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' - 345 class_name: "static (T_STATIC)" . + 335 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 359 class_name: "static (T_STATIC)" . - "variable (T_VARIABLE)" shift, and go to state 195 + "variable (T_VARIABLE)" shift, and go to state 196 "function (T_FUNCTION)" shift, and go to state 47 - $default reduce using rule 345 (class_name) + $default reduce using rule 359 (class_name) - static_var_list go to state 196 - function go to state 197 + static_var_list go to state 197 + function go to state 198 state 57 66 unticked_statement: "unset (T_UNSET)" . '(' unset_variables ')' ';' - '(' shift, and go to state 198 + '(' shift, and go to state 199 state 58 - 489 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')' + 503 internal_functions_in_yacc: "isset (T_ISSET)" . '(' isset_variables ')' - '(' shift, and go to state 199 + '(' shift, and go to state 200 state 59 - 490 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')' + 504 internal_functions_in_yacc: "empty (T_EMPTY)" . '(' variable ')' - '(' shift, and go to state 200 + '(' shift, and go to state 201 state 60 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';' - '(' shift, and go to state 201 + '(' shift, and go to state 202 state 61 @@ -3705,74 +3769,74 @@ state 63 state 64 - 240 expr_without_variable: "list (T_LIST)" . '(' @39 assignment_list ')' '=' expr + 253 expr_without_variable: "list (T_LIST)" . '(' @42 assignment_list ')' '=' expr - '(' shift, and go to state 202 + '(' shift, and go to state 203 state 65 - 314 expr_without_variable: "array (T_ARRAY)" . '(' array_pair_list ')' + 328 expr_without_variable: "array (T_ARRAY)" . '(' array_pair_list ')' - '(' shift, and go to state 203 + '(' shift, and go to state 204 state 66 - 375 common_scalar: "__CLASS__ (T_CLASS_C)" . + 389 common_scalar: "__CLASS__ (T_CLASS_C)" . - $default reduce using rule 375 (common_scalar) + $default reduce using rule 389 (common_scalar) state 67 - 376 common_scalar: "__TRAIT__ (T_TRAIT_C)" . + 390 common_scalar: "__TRAIT__ (T_TRAIT_C)" . - $default reduce using rule 376 (common_scalar) + $default reduce using rule 390 (common_scalar) state 68 - 377 common_scalar: "__METHOD__ (T_METHOD_C)" . + 391 common_scalar: "__METHOD__ (T_METHOD_C)" . - $default reduce using rule 377 (common_scalar) + $default reduce using rule 391 (common_scalar) state 69 - 378 common_scalar: "__FUNCTION__ (T_FUNC_C)" . + 392 common_scalar: "__FUNCTION__ (T_FUNC_C)" . - $default reduce using rule 378 (common_scalar) + $default reduce using rule 392 (common_scalar) state 70 - 372 common_scalar: "__LINE__ (T_LINE)" . + 386 common_scalar: "__LINE__ (T_LINE)" . - $default reduce using rule 372 (common_scalar) + $default reduce using rule 386 (common_scalar) state 71 - 373 common_scalar: "__FILE__ (T_FILE)" . + 387 common_scalar: "__FILE__ (T_FILE)" . - $default reduce using rule 373 (common_scalar) + $default reduce using rule 387 (common_scalar) state 72 - 380 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" - 381 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)" - 399 scalar: "heredoc start (T_START_HEREDOC)" . encaps_list "heredoc end (T_END_HEREDOC)" + 394 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" + 395 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)" + 413 scalar: "heredoc start (T_START_HEREDOC)" . encaps_list "heredoc end (T_END_HEREDOC)" - "variable (T_VARIABLE)" shift, and go to state 204 - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 205 - "heredoc end (T_END_HEREDOC)" shift, and go to state 206 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 206 + "heredoc end (T_END_HEREDOC)" shift, and go to state 207 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - encaps_list go to state 209 - encaps_var go to state 210 + encaps_list go to state 210 + encaps_var go to state 211 state 73 @@ -3780,45 +3844,46 @@ state 73 11 top_statement: "namespace (T_NAMESPACE)" . namespace_name ';' 13 | "namespace (T_NAMESPACE)" . namespace_name '{' @2 top_statement_list '}' 15 | "namespace (T_NAMESPACE)" . '{' @3 top_statement_list '}' - 332 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - 395 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 409 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - "identifier (T_STRING)" shift, and go to state 115 - "\\ (T_NS_SEPARATOR)" shift, and go to state 211 - '{' shift, and go to state 212 + "identifier (T_STRING)" shift, and go to state 116 + "\\ (T_NS_SEPARATOR)" shift, and go to state 212 + '{' shift, and go to state 213 - namespace_name go to state 213 + namespace_name go to state 214 state 74 - 379 common_scalar: "__NAMESPACE__ (T_NS_C)" . + 393 common_scalar: "__NAMESPACE__ (T_NS_C)" . - $default reduce using rule 379 (common_scalar) + $default reduce using rule 393 (common_scalar) state 75 - 374 common_scalar: "__DIR__ (T_DIR)" . + 388 common_scalar: "__DIR__ (T_DIR)" . - $default reduce using rule 374 (common_scalar) + $default reduce using rule 388 (common_scalar) state 76 - 334 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @54 function_call_parameter_list ')' - 348 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name - 396 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name + 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @57 function_call_parameter_list ')' + 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name + 410 scalar: "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 214 + namespace_name go to state 215 state 77 - 296 expr_without_variable: '(' . expr ')' + 307 expr_without_variable: '(' . expr ')' + 310 | '(' . new_expr ')' @48 instance_call "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -3846,12 +3911,12 @@ state 77 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -3863,7 +3928,7 @@ state 77 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -3873,27 +3938,28 @@ state 77 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 215 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 216 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 217 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 78 @@ -3909,60 +3975,60 @@ state 79 $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 216 + inner_statement_list go to state 218 state 80 - 446 compound_variable: '$' . '{' expr '}' - 457 simple_indirect_reference: '$' . + 460 compound_variable: '$' . '{' expr '}' + 471 simple_indirect_reference: '$' . - '{' shift, and go to state 217 + '{' shift, and go to state 219 - $default reduce using rule 457 (simple_indirect_reference) + $default reduce using rule 471 (simple_indirect_reference) state 81 - 316 expr_without_variable: '`' . backticks_expr '`' + 330 expr_without_variable: '`' . backticks_expr '`' - "variable (T_VARIABLE)" shift, and go to state 204 - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 218 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 220 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - $default reduce using rule 364 (backticks_expr) + $default reduce using rule 378 (backticks_expr) - backticks_expr go to state 219 - encaps_list go to state 220 - encaps_var go to state 210 + backticks_expr go to state 221 + encaps_list go to state 222 + encaps_var go to state 211 state 82 - 398 scalar: '"' . encaps_list '"' + 412 scalar: '"' . encaps_list '"' - "variable (T_VARIABLE)" shift, and go to state 204 - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 221 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 223 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - encaps_list go to state 222 - encaps_var go to state 210 + encaps_list go to state 224 + encaps_var go to state 211 state 83 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 330 function_call: namespace_name . '(' @52 function_call_parameter_list ')' - 346 class_name: namespace_name . - 394 scalar: namespace_name . + 344 function_call: namespace_name . '(' @55 function_call_parameter_list ')' + 360 class_name: namespace_name . + 408 scalar: namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - '(' shift, and go to state 224 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + '(' shift, and go to state 226 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 346 (class_name) - $default reduce using rule 394 (scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 360 (class_name) + $default reduce using rule 408 (scalar) state 84 @@ -3977,8 +4043,8 @@ state 85 17 top_statement: constant_declaration . ';' 24 constant_declaration: constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar - ',' shift, and go to state 225 - ';' shift, and go to state 226 + ',' shift, and go to state 227 + ';' shift, and go to state 228 state 86 @@ -4027,448 +4093,455 @@ state 92 101 unticked_class_declaration_statement: class_entry_type . "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}' - "identifier (T_STRING)" shift, and go to state 227 + "identifier (T_STRING)" shift, and go to state 229 state 93 103 unticked_class_declaration_statement: interface_entry . "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}' - "identifier (T_STRING)" shift, and go to state 228 + "identifier (T_STRING)" shift, and go to state 230 state 94 - 409 expr: expr_without_variable . + 308 expr_without_variable: new_expr . - $default reduce using rule 409 (expr) + $default reduce using rule 308 (expr_without_variable) state 95 - 99 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}' - 319 expr_without_variable: function . is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' - - '&' shift, and go to state 229 - - $default reduce using rule 96 (is_reference) + 423 expr: expr_without_variable . - is_reference go to state 230 + $default reduce using rule 423 (expr) state 96 - 435 array_function_dereference: function_call . @66 '[' dim_offset ']' - 438 base_variable_with_function_calls: function_call . + 99 unticked_function_declaration_statement: function . is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}' + 333 expr_without_variable: function . is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' + + '&' shift, and go to state 231 - '[' reduce using rule 434 (@66) - $default reduce using rule 438 (base_variable_with_function_calls) + $default reduce using rule 96 (is_reference) - @66 go to state 231 + is_reference go to state 232 state 97 - 336 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @55 function_call_parameter_list ')' - 338 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @56 function_call_parameter_list ')' - 430 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - 499 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" + 449 array_function_dereference: function_call . @69 '[' dim_offset ']' + 452 base_variable_with_function_calls: function_call . - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 232 + '[' reduce using rule 448 (@69) + $default reduce using rule 452 (base_variable_with_function_calls) + + @69 go to state 233 state 98 - 397 scalar: common_scalar . + 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')' + 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')' + 444 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 513 class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" - $default reduce using rule 397 (scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 234 state 99 - 313 expr_without_variable: scalar . + 411 scalar: common_scalar . - $default reduce using rule 313 (expr_without_variable) + $default reduce using rule 411 (scalar) state 100 - 65 unticked_statement: expr . ';' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ';' shift, and go to state 259 + 327 expr_without_variable: scalar . + $default reduce using rule 327 (expr_without_variable) -state 101 - 408 expr: r_variable . +state 101 - $default reduce using rule 408 (expr) + 65 unticked_statement: expr . ';' + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ';' shift, and go to state 261 state 102 - 259 expr_without_variable: rw_variable . "++ (T_INC)" - 261 | rw_variable . "-- (T_DEC)" + 422 expr: r_variable . - "-- (T_DEC)" shift, and go to state 260 - "++ (T_INC)" shift, and go to state 261 + $default reduce using rule 422 (expr) state 103 - 241 expr_without_variable: variable . '=' expr - 242 | variable . '=' '&' variable - 244 | variable . '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments - 248 | variable . "+= (T_PLUS_EQUAL)" expr - 249 | variable . "-= (T_MINUS_EQUAL)" expr - 250 | variable . "*= (T_MUL_EQUAL)" expr - 251 | variable . "/= (T_DIV_EQUAL)" expr - 252 | variable . ".= (T_CONCAT_EQUAL)" expr - 253 | variable . "%= (T_MOD_EQUAL)" expr - 254 | variable . "&= (T_AND_EQUAL)" expr - 255 | variable . "|= (T_OR_EQUAL)" expr - 256 | variable . "^= (T_XOR_EQUAL)" expr - 257 | variable . "<<= (T_SL_EQUAL)" expr - 258 | variable . ">>= (T_SR_EQUAL)" expr - 410 r_variable: variable . - 412 rw_variable: variable . - - '=' shift, and go to state 262 - ">>= (T_SR_EQUAL)" shift, and go to state 263 - "<<= (T_SL_EQUAL)" shift, and go to state 264 - "^= (T_XOR_EQUAL)" shift, and go to state 265 - "|= (T_OR_EQUAL)" shift, and go to state 266 - "&= (T_AND_EQUAL)" shift, and go to state 267 - "%= (T_MOD_EQUAL)" shift, and go to state 268 - ".= (T_CONCAT_EQUAL)" shift, and go to state 269 - "/= (T_DIV_EQUAL)" shift, and go to state 270 - "*= (T_MUL_EQUAL)" shift, and go to state 271 - "-= (T_MINUS_EQUAL)" shift, and go to state 272 - "+= (T_PLUS_EQUAL)" shift, and go to state 273 - - "-- (T_DEC)" reduce using rule 412 (rw_variable) - "++ (T_INC)" reduce using rule 412 (rw_variable) - $default reduce using rule 410 (r_variable) + 270 expr_without_variable: rw_variable . "++ (T_INC)" + 272 | rw_variable . "-- (T_DEC)" + "-- (T_DEC)" shift, and go to state 262 + "++ (T_INC)" shift, and go to state 263 -state 104 - 344 function_call: variable_without_objects . '(' @59 function_call_parameter_list ')' +state 104 - '(' shift, and go to state 274 + 254 expr_without_variable: variable . '=' expr + 255 | variable . '=' '&' variable + 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments + 259 | variable . "+= (T_PLUS_EQUAL)" expr + 260 | variable . "-= (T_MINUS_EQUAL)" expr + 261 | variable . "*= (T_MUL_EQUAL)" expr + 262 | variable . "/= (T_DIV_EQUAL)" expr + 263 | variable . ".= (T_CONCAT_EQUAL)" expr + 264 | variable . "%= (T_MOD_EQUAL)" expr + 265 | variable . "&= (T_AND_EQUAL)" expr + 266 | variable . "|= (T_OR_EQUAL)" expr + 267 | variable . "^= (T_XOR_EQUAL)" expr + 268 | variable . "<<= (T_SL_EQUAL)" expr + 269 | variable . ">>= (T_SR_EQUAL)" expr + 424 r_variable: variable . + 426 rw_variable: variable . + + '=' shift, and go to state 264 + ">>= (T_SR_EQUAL)" shift, and go to state 265 + "<<= (T_SL_EQUAL)" shift, and go to state 266 + "^= (T_XOR_EQUAL)" shift, and go to state 267 + "|= (T_OR_EQUAL)" shift, and go to state 268 + "&= (T_AND_EQUAL)" shift, and go to state 269 + "%= (T_MOD_EQUAL)" shift, and go to state 270 + ".= (T_CONCAT_EQUAL)" shift, and go to state 271 + "/= (T_DIV_EQUAL)" shift, and go to state 272 + "*= (T_MUL_EQUAL)" shift, and go to state 273 + "-= (T_MINUS_EQUAL)" shift, and go to state 274 + "+= (T_PLUS_EQUAL)" shift, and go to state 275 + + "-- (T_DEC)" reduce using rule 426 (rw_variable) + "++ (T_INC)" reduce using rule 426 (rw_variable) + $default reduce using rule 424 (r_variable) state 105 - 441 base_variable: static_member . + 358 function_call: variable_without_objects . '(' @62 function_call_parameter_list ')' - $default reduce using rule 441 (base_variable) + '(' shift, and go to state 276 state 106 - 340 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @57 function_call_parameter_list ')' - 342 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @58 function_call_parameter_list ')' - 431 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - 500 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" + 455 base_variable: static_member . - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 275 + $default reduce using rule 455 (base_variable) state 107 - 433 array_function_dereference: array_function_dereference . '[' dim_offset ']' - 437 base_variable_with_function_calls: array_function_dereference . - - '[' shift, and go to state 276 + 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')' + 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')' + 445 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 514 class_constant: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" - $default reduce using rule 437 (base_variable_with_function_calls) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 277 state 108 - 415 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" @62 object_property @63 method_or_not variable_properties - 416 | base_variable_with_function_calls . + 447 array_function_dereference: array_function_dereference . '[' dim_offset ']' + 451 base_variable_with_function_calls: array_function_dereference . - "-> (T_OBJECT_OPERATOR)" shift, and go to state 277 + '[' shift, and go to state 278 - $default reduce using rule 416 (variable) + $default reduce using rule 451 (base_variable_with_function_calls) state 109 - 436 base_variable_with_function_calls: base_variable . + 429 variable: base_variable_with_function_calls . "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties + 430 | base_variable_with_function_calls . - $default reduce using rule 436 (base_variable_with_function_calls) + "-> (T_OBJECT_OPERATOR)" shift, and go to state 279 + $default reduce using rule 430 (variable) -state 110 - 428 variable_without_objects: reference_variable . - 432 variable_class_name: reference_variable . - 439 base_variable: reference_variable . - 442 reference_variable: reference_variable . '[' dim_offset ']' - 443 | reference_variable . '{' expr '}' +state 110 - '[' shift, and go to state 278 - '{' shift, and go to state 279 + 450 base_variable_with_function_calls: base_variable . - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 432 (variable_class_name) - '(' reduce using rule 428 (variable_without_objects) - $default reduce using rule 439 (base_variable) + $default reduce using rule 450 (base_variable_with_function_calls) state 111 - 444 reference_variable: compound_variable . + 442 variable_without_objects: reference_variable . + 446 variable_class_name: reference_variable . + 453 base_variable: reference_variable . + 456 reference_variable: reference_variable . '[' dim_offset ']' + 457 | reference_variable . '{' expr '}' - $default reduce using rule 444 (reference_variable) + '[' shift, and go to state 280 + '{' shift, and go to state 281 + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 446 (variable_class_name) + '(' reduce using rule 442 (variable_without_objects) + $default reduce using rule 453 (base_variable) -state 112 - 429 variable_without_objects: simple_indirect_reference . reference_variable - 440 base_variable: simple_indirect_reference . reference_variable - 458 simple_indirect_reference: simple_indirect_reference . '$' +state 112 - "variable (T_VARIABLE)" shift, and go to state 34 - '$' shift, and go to state 280 + 458 reference_variable: compound_variable . - reference_variable go to state 281 - compound_variable go to state 111 + $default reduce using rule 458 (reference_variable) state 113 - 302 expr_without_variable: internal_functions_in_yacc . + 443 variable_without_objects: simple_indirect_reference . reference_variable + 454 base_variable: simple_indirect_reference . reference_variable + 472 simple_indirect_reference: simple_indirect_reference . '$' - $default reduce using rule 302 (expr_without_variable) + "variable (T_VARIABLE)" shift, and go to state 34 + '$' shift, and go to state 282 + + reference_variable go to state 283 + compound_variable go to state 112 state 114 - 393 scalar: class_constant . + 316 expr_without_variable: internal_functions_in_yacc . - $default reduce using rule 393 (scalar) + $default reduce using rule 316 (expr_without_variable) state 115 - 5 namespace_name: "identifier (T_STRING)" . + 407 scalar: class_constant . - $default reduce using rule 5 (namespace_name) + $default reduce using rule 407 (scalar) state 116 - 321 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' - 345 class_name: "static (T_STATIC)" . + 5 namespace_name: "identifier (T_STRING)" . - "function (T_FUNCTION)" shift, and go to state 47 + $default reduce using rule 5 (namespace_name) - $default reduce using rule 345 (class_name) - function go to state 197 +state 117 + 335 expr_without_variable: "static (T_STATIC)" . function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 359 class_name: "static (T_STATIC)" . -state 117 + "function (T_FUNCTION)" shift, and go to state 47 - 332 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - 395 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + $default reduce using rule 359 (class_name) - "\\ (T_NS_SEPARATOR)" shift, and go to state 211 + function go to state 198 state 118 - 319 expr_without_variable: function . is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 409 scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - '&' shift, and go to state 229 + "\\ (T_NS_SEPARATOR)" shift, and go to state 212 - $default reduce using rule 96 (is_reference) - is_reference go to state 282 +state 119 + + 333 expr_without_variable: function . is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' + '&' shift, and go to state 231 -state 119 + $default reduce using rule 96 (is_reference) - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 495 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 495 (internal_functions_in_yacc) + is_reference go to state 284 state 120 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 494 internal_functions_in_yacc: "require (T_REQUIRE)" expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 494 (internal_functions_in_yacc) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 509 internal_functions_in_yacc: "require_once (T_REQUIRE_ONCE)" expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 509 (internal_functions_in_yacc) state 121 - 493 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')' + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 508 internal_functions_in_yacc: "require (T_REQUIRE)" expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 508 (internal_functions_in_yacc) + + +state 122 + + 507 internal_functions_in_yacc: "eval (T_EVAL)" '(' . expr ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -4496,12 +4569,12 @@ state 121 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -4513,7 +4586,7 @@ state 121 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -4523,350 +4596,351 @@ state 121 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 283 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 - - -state 122 - - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 492 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 492 (internal_functions_in_yacc) + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 285 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 123 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 491 internal_functions_in_yacc: "include (T_INCLUDE)" expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 491 (internal_functions_in_yacc) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 506 internal_functions_in_yacc: "include_once (T_INCLUDE_ONCE)" expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 506 (internal_functions_in_yacc) state 124 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 317 | "print (T_PRINT)" expr . - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 317 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 505 internal_functions_in_yacc: "include (T_INCLUDE)" expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 505 (internal_functions_in_yacc) state 125 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 283 | '+' expr . - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - $default reduce using rule 283 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 331 | "print (T_PRINT)" expr . + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 331 (expr_without_variable) state 126 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 284 | '-' expr . - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 294 | '+' expr . + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr - $default reduce using rule 284 (expr_without_variable) + $default reduce using rule 294 (expr_without_variable) state 127 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 285 | '!' expr . - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 295 | '-' expr . + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr - $default reduce using rule 285 (expr_without_variable) + $default reduce using rule 295 (expr_without_variable) state 128 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 286 | '~' expr . - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 296 | '!' expr . + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 286 (expr_without_variable) + $default reduce using rule 296 (expr_without_variable) state 129 - 312 expr_without_variable: '@' @49 . expr + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 297 | '~' expr . + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + $default reduce using rule 297 (expr_without_variable) + + +state 130 + + 326 expr_without_variable: '@' @52 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -4894,12 +4968,12 @@ state 129 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -4911,7 +4985,7 @@ state 129 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -4921,589 +4995,590 @@ state 129 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 284 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 - - -state 130 - - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 309 | "(unset) (T_UNSET_CAST)" expr . - - $default reduce using rule 309 (expr_without_variable) + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 286 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 state 131 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 308 | "(bool) (T_BOOL_CAST)" expr . - - $default reduce using rule 308 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 323 | "(unset) (T_UNSET_CAST)" expr . + + $default reduce using rule 323 (expr_without_variable) state 132 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 307 | "(object) (T_OBJECT_CAST)" expr . - - $default reduce using rule 307 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 322 | "(bool) (T_BOOL_CAST)" expr . + + $default reduce using rule 322 (expr_without_variable) state 133 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 306 | "(array) (T_ARRAY_CAST)" expr . + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 321 | "(object) (T_OBJECT_CAST)" expr . - $default reduce using rule 306 (expr_without_variable) + $default reduce using rule 321 (expr_without_variable) state 134 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 305 | "(string) (T_STRING_CAST)" expr . - - $default reduce using rule 305 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 320 | "(array) (T_ARRAY_CAST)" expr . + + $default reduce using rule 320 (expr_without_variable) state 135 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 304 | "(double) (T_DOUBLE_CAST)" expr . + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 319 | "(string) (T_STRING_CAST)" expr . - $default reduce using rule 304 (expr_without_variable) + $default reduce using rule 319 (expr_without_variable) state 136 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 303 | "(int) (T_INT_CAST)" expr . - - $default reduce using rule 303 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 318 | "(double) (T_DOUBLE_CAST)" expr . + + $default reduce using rule 318 (expr_without_variable) state 137 - 345 class_name: "static (T_STATIC)" . + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 317 | "(int) (T_INT_CAST)" expr . - $default reduce using rule 345 (class_name) + $default reduce using rule 317 (expr_without_variable) state 138 - 332 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 359 class_name: "static (T_STATIC)" . - "\\ (T_NS_SEPARATOR)" shift, and go to state 285 + $default reduce using rule 359 (class_name) state 139 - 334 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @54 function_call_parameter_list ')' - 348 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name + 346 function_call: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - "identifier (T_STRING)" shift, and go to state 115 - - namespace_name go to state 286 + "\\ (T_NS_SEPARATOR)" shift, and go to state 287 state 140 - 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 330 function_call: namespace_name . '(' @52 function_call_parameter_list ')' - 346 class_name: namespace_name . + 348 function_call: "\\ (T_NS_SEPARATOR)" . namespace_name '(' @57 function_call_parameter_list ')' + 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - '(' shift, and go to state 224 + "identifier (T_STRING)" shift, and go to state 116 - $default reduce using rule 346 (class_name) + namespace_name go to state 288 state 141 - 336 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @55 function_call_parameter_list ')' - 338 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @56 function_call_parameter_list ')' - 430 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" + 344 function_call: namespace_name . '(' @55 function_call_parameter_list ')' + 360 class_name: namespace_name . + + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + '(' shift, and go to state 226 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 287 + $default reduce using rule 360 (class_name) state 142 - 262 expr_without_variable: "-- (T_DEC)" rw_variable . + 350 function_call: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')' + 352 | class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')' + 444 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - $default reduce using rule 262 (expr_without_variable) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 289 state 143 - 412 rw_variable: variable . + 273 expr_without_variable: "-- (T_DEC)" rw_variable . - $default reduce using rule 412 (rw_variable) + $default reduce using rule 273 (expr_without_variable) state 144 - 340 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @57 function_call_parameter_list ')' - 342 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @58 function_call_parameter_list ')' - 431 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 426 rw_variable: variable . - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 288 + $default reduce using rule 426 (rw_variable) state 145 - 260 expr_without_variable: "++ (T_INC)" rw_variable . + 354 function_call: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')' + 356 | variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')' + 445 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - $default reduce using rule 260 (expr_without_variable) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 290 state 146 - 474 non_empty_array_pair_list: '&' . w_variable - - "identifier (T_STRING)" shift, and go to state 115 - "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 - '$' shift, and go to state 80 + 271 expr_without_variable: "++ (T_INC)" rw_variable . - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - w_variable go to state 289 - variable go to state 290 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + $default reduce using rule 271 (expr_without_variable) state 147 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 469 non_empty_array_pair_list: expr . "=> (T_DOUBLE_ARROW)" expr - 470 | expr . - 473 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - "=> (T_DOUBLE_ARROW)" shift, and go to state 291 - - $default reduce using rule 470 (non_empty_array_pair_list) + 488 non_empty_array_pair_list: '&' . w_variable + "identifier (T_STRING)" shift, and go to state 116 + "variable (T_VARIABLE)" shift, and go to state 34 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 + '$' shift, and go to state 80 -state 148 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + w_variable go to state 291 + variable go to state 292 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 - 315 expr_without_variable: '[' array_pair_list . ']' - ']' shift, and go to state 292 +state 148 + + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 483 non_empty_array_pair_list: expr . "=> (T_DOUBLE_ARROW)" expr + 484 | expr . + 487 | expr . "=> (T_DOUBLE_ARROW)" '&' w_variable + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + "=> (T_DOUBLE_ARROW)" shift, and go to state 293 + + $default reduce using rule 484 (non_empty_array_pair_list) state 149 - 466 array_pair_list: non_empty_array_pair_list . possible_comma - 467 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr - 468 | non_empty_array_pair_list . ',' expr - 471 | non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable - 472 | non_empty_array_pair_list . ',' '&' w_variable + 329 expr_without_variable: '[' array_pair_list . ']' - ',' shift, and go to state 293 + ']' shift, and go to state 294 - $default reduce using rule 402 (possible_comma) - possible_comma go to state 294 +state 150 + 480 array_pair_list: non_empty_array_pair_list . possible_comma + 481 non_empty_array_pair_list: non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" expr + 482 | non_empty_array_pair_list . ',' expr + 485 | non_empty_array_pair_list . ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable + 486 | non_empty_array_pair_list . ',' '&' w_variable -state 150 + ',' shift, and go to state 295 + + $default reduce using rule 416 (possible_comma) - 247 expr_without_variable: "clone (T_CLONE)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - $default reduce using rule 247 (expr_without_variable) + possible_comma go to state 296 state 151 - 347 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 258 expr_without_variable: "clone (T_CLONE)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr - "\\ (T_NS_SEPARATOR)" shift, and go to state 295 + $default reduce using rule 258 (expr_without_variable) state 152 - 348 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name - - "identifier (T_STRING)" shift, and go to state 115 + 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - namespace_name go to state 296 + "\\ (T_NS_SEPARATOR)" shift, and go to state 297 state 153 - 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 346 class_name: namespace_name . + 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "identifier (T_STRING)" shift, and go to state 116 - $default reduce using rule 346 (class_name) + namespace_name go to state 298 state 154 - 352 class_name_reference: class_name . - 430 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" + 360 class_name: namespace_name . - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 297 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - $default reduce using rule 352 (class_name_reference) + $default reduce using rule 360 (class_name) state 155 - 246 expr_without_variable: "new (T_NEW)" class_name_reference . @41 ctor_arguments + 366 class_name_reference: class_name . + 444 static_member: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - $default reduce using rule 245 (@41) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 299 - @41 go to state 298 + $default reduce using rule 366 (class_name_reference) state 156 - 353 class_name_reference: dynamic_class_name_reference . + 251 new_expr: "new (T_NEW)" class_name_reference . @41 ctor_arguments + + $default reduce using rule 250 (@41) - $default reduce using rule 353 (class_name_reference) + @41 go to state 300 state 157 - 431 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects + 367 class_name_reference: dynamic_class_name_reference . - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 299 + $default reduce using rule 367 (class_name_reference) state 158 - 356 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" @60 object_property @61 dynamic_class_name_variable_properties - 357 | base_variable . - - "-> (T_OBJECT_OPERATOR)" shift, and go to state 300 + 445 static_member: variable_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects - $default reduce using rule 357 (dynamic_class_name_reference) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 301 state 159 - 432 variable_class_name: reference_variable . - 439 base_variable: reference_variable . - 442 reference_variable: reference_variable . '[' dim_offset ']' - 443 | reference_variable . '{' expr '}' + 370 dynamic_class_name_reference: base_variable . "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties + 371 | base_variable . - '[' shift, and go to state 278 - '{' shift, and go to state 279 + "-> (T_OBJECT_OPERATOR)" shift, and go to state 302 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 432 (variable_class_name) - $default reduce using rule 439 (base_variable) + $default reduce using rule 371 (dynamic_class_name_reference) state 160 - 440 base_variable: simple_indirect_reference . reference_variable - 458 simple_indirect_reference: simple_indirect_reference . '$' + 446 variable_class_name: reference_variable . + 453 base_variable: reference_variable . + 456 reference_variable: reference_variable . '[' dim_offset ']' + 457 | reference_variable . '{' expr '}' - "variable (T_VARIABLE)" shift, and go to state 34 - '$' shift, and go to state 280 + '[' shift, and go to state 280 + '{' shift, and go to state 281 - reference_variable go to state 301 - compound_variable go to state 111 + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 446 (variable_class_name) + $default reduce using rule 453 (base_variable) state 161 - 362 exit_expr: '(' . ')' - 363 | '(' . expr ')' + 454 base_variable: simple_indirect_reference . reference_variable + 472 simple_indirect_reference: simple_indirect_reference . '$' + + "variable (T_VARIABLE)" shift, and go to state 34 + '$' shift, and go to state 282 + + reference_variable go to state 303 + compound_variable go to state 112 + + +state 162 + + 376 exit_expr: '(' . ')' + 377 | '(' . expr ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -5531,12 +5606,12 @@ state 161 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -5548,48 +5623,49 @@ state 161 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 '(' shift, and go to state 77 - ')' shift, and go to state 302 + ')' shift, and go to state 304 '$' shift, and go to state 80 '`' shift, and go to state 81 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 303 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 305 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 162 +state 163 - 310 expr_without_variable: "exit (T_EXIT)" exit_expr . + 324 expr_without_variable: "exit (T_EXIT)" exit_expr . - $default reduce using rule 310 (expr_without_variable) + $default reduce using rule 324 (expr_without_variable) -state 163 +state 164 38 unticked_statement: "if (T_IF)" '(' . expr ')' @5 statement @6 elseif_list else_single 41 | "if (T_IF)" '(' . expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' @@ -5620,12 +5696,12 @@ state 163 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -5637,7 +5713,7 @@ state 163 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -5647,107 +5723,108 @@ state 163 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 304 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 306 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 164 +state 165 34 statement: "identifier (T_STRING)" ':' . $default reduce using rule 34 (statement) -state 165 +state 166 63 unticked_statement: "echo (T_ECHO)" echo_expr_list . ';' 232 echo_expr_list: echo_expr_list . ',' expr - ',' shift, and go to state 305 - ';' shift, and go to state 306 + ',' shift, and go to state 307 + ';' shift, and go to state 308 -state 166 +state 167 233 echo_expr_list: expr . - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 $default reduce using rule 233 (echo_expr_list) -state 167 +state 168 47 unticked_statement: "do (T_DO)" @11 . statement "while (T_WHILE)" '(' @12 expr ')' ';' @@ -5811,7 +5888,7 @@ state 167 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -5823,41 +5900,42 @@ state 167 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 307 + statement go to state 309 unticked_statement go to state 87 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 168 +state 169 44 unticked_statement: "while (T_WHILE)" '(' . @9 expr ')' @10 while_statement $default reduce using rule 42 (@9) - @9 go to state 308 + @9 go to state 310 -state 169 +state 170 51 unticked_statement: "for (T_FOR)" '(' . for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement @@ -5887,12 +5965,12 @@ state 169 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -5904,7 +5982,7 @@ state 169 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -5916,32 +5994,33 @@ state 169 $default reduce using rule 234 (for_expr) namespace_name go to state 83 - for_expr go to state 309 - non_empty_for_expr go to state 310 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 311 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + for_expr go to state 311 + non_empty_for_expr go to state 312 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 313 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 170 +state 171 69 unticked_statement: "foreach (T_FOREACH)" '(' . variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement 72 | "foreach (T_FOREACH)" '(' . expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement @@ -5972,12 +6051,12 @@ state 170 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -5989,7 +6068,7 @@ state 170 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -5999,37 +6078,38 @@ state 170 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 312 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 313 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 314 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 315 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 171 +state 172 74 unticked_statement: "declare (T_DECLARE)" @21 . '(' declare_list ')' declare_statement - '(' shift, and go to state 314 + '(' shift, and go to state 316 -state 172 +state 173 53 unticked_statement: "switch (T_SWITCH)" '(' . expr ')' @16 switch_case_list @@ -6059,12 +6139,12 @@ state 172 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -6076,7 +6156,7 @@ state 172 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -6086,593 +6166,594 @@ state 172 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 315 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 317 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 173 +state 174 54 unticked_statement: "break (T_BREAK)" ';' . $default reduce using rule 54 (unticked_statement) -state 174 +state 175 55 unticked_statement: "break (T_BREAK)" expr . ';' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ';' shift, and go to state 316 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ';' shift, and go to state 318 -state 175 +state 176 56 unticked_statement: "continue (T_CONTINUE)" ';' . $default reduce using rule 56 (unticked_statement) -state 176 +state 177 57 unticked_statement: "continue (T_CONTINUE)" expr . ';' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ';' shift, and go to state 317 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ';' shift, and go to state 319 -state 177 +state 178 83 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" . ';' - ';' shift, and go to state 318 + ';' shift, and go to state 320 -state 178 +state 179 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar - '=' shift, and go to state 319 + '=' shift, and go to state 321 -state 179 +state 180 58 unticked_statement: "return (T_RETURN)" ';' . $default reduce using rule 58 (unticked_statement) -state 180 +state 181 59 unticked_statement: "return (T_RETURN)" expr_without_variable . ';' - 409 expr: expr_without_variable . + 423 expr: expr_without_variable . - ';' shift, and go to state 320 + ';' shift, and go to state 322 - $default reduce using rule 409 (expr) + $default reduce using rule 423 (expr) -state 181 +state 182 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 -state 182 +state 183 60 unticked_statement: "return (T_RETURN)" variable . ';' - 241 expr_without_variable: variable . '=' expr - 242 | variable . '=' '&' variable - 244 | variable . '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments - 248 | variable . "+= (T_PLUS_EQUAL)" expr - 249 | variable . "-= (T_MINUS_EQUAL)" expr - 250 | variable . "*= (T_MUL_EQUAL)" expr - 251 | variable . "/= (T_DIV_EQUAL)" expr - 252 | variable . ".= (T_CONCAT_EQUAL)" expr - 253 | variable . "%= (T_MOD_EQUAL)" expr - 254 | variable . "&= (T_AND_EQUAL)" expr - 255 | variable . "|= (T_OR_EQUAL)" expr - 256 | variable . "^= (T_XOR_EQUAL)" expr - 257 | variable . "<<= (T_SL_EQUAL)" expr - 258 | variable . ">>= (T_SR_EQUAL)" expr - 410 r_variable: variable . - 412 rw_variable: variable . - - '=' shift, and go to state 262 - ">>= (T_SR_EQUAL)" shift, and go to state 263 - "<<= (T_SL_EQUAL)" shift, and go to state 264 - "^= (T_XOR_EQUAL)" shift, and go to state 265 - "|= (T_OR_EQUAL)" shift, and go to state 266 - "&= (T_AND_EQUAL)" shift, and go to state 267 - "%= (T_MOD_EQUAL)" shift, and go to state 268 - ".= (T_CONCAT_EQUAL)" shift, and go to state 269 - "/= (T_DIV_EQUAL)" shift, and go to state 270 - "*= (T_MUL_EQUAL)" shift, and go to state 271 - "-= (T_MINUS_EQUAL)" shift, and go to state 272 - "+= (T_PLUS_EQUAL)" shift, and go to state 273 - ';' shift, and go to state 321 - - "-- (T_DEC)" reduce using rule 412 (rw_variable) - "++ (T_INC)" reduce using rule 412 (rw_variable) - $default reduce using rule 410 (r_variable) + 254 expr_without_variable: variable . '=' expr + 255 | variable . '=' '&' variable + 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments + 259 | variable . "+= (T_PLUS_EQUAL)" expr + 260 | variable . "-= (T_MINUS_EQUAL)" expr + 261 | variable . "*= (T_MUL_EQUAL)" expr + 262 | variable . "/= (T_DIV_EQUAL)" expr + 263 | variable . ".= (T_CONCAT_EQUAL)" expr + 264 | variable . "%= (T_MOD_EQUAL)" expr + 265 | variable . "&= (T_AND_EQUAL)" expr + 266 | variable . "|= (T_OR_EQUAL)" expr + 267 | variable . "^= (T_XOR_EQUAL)" expr + 268 | variable . "<<= (T_SL_EQUAL)" expr + 269 | variable . ">>= (T_SR_EQUAL)" expr + 424 r_variable: variable . + 426 rw_variable: variable . + + '=' shift, and go to state 264 + ">>= (T_SR_EQUAL)" shift, and go to state 265 + "<<= (T_SL_EQUAL)" shift, and go to state 266 + "^= (T_XOR_EQUAL)" shift, and go to state 267 + "|= (T_OR_EQUAL)" shift, and go to state 268 + "&= (T_AND_EQUAL)" shift, and go to state 269 + "%= (T_MOD_EQUAL)" shift, and go to state 270 + ".= (T_CONCAT_EQUAL)" shift, and go to state 271 + "/= (T_DIV_EQUAL)" shift, and go to state 272 + "*= (T_MUL_EQUAL)" shift, and go to state 273 + "-= (T_MINUS_EQUAL)" shift, and go to state 274 + "+= (T_PLUS_EQUAL)" shift, and go to state 275 + ';' shift, and go to state 323 + + "-- (T_DEC)" reduce using rule 426 (rw_variable) + "++ (T_INC)" reduce using rule 426 (rw_variable) + $default reduce using rule 424 (r_variable) -state 183 +state 184 81 unticked_statement: "try (T_TRY)" @22 . '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches - '{' shift, and go to state 322 + '{' shift, and go to state 324 -state 184 +state 185 82 unticked_statement: "throw (T_THROW)" expr . ';' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ';' shift, and go to state 323 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ';' shift, and go to state 325 -state 185 +state 186 22 use_declaration: "\\ (T_NS_SEPARATOR)" . namespace_name 23 | "\\ (T_NS_SEPARATOR)" . namespace_name "as (T_AS)" "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 324 + namespace_name go to state 326 -state 186 +state 187 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" 20 use_declaration: namespace_name . 21 | namespace_name . "as (T_AS)" "identifier (T_STRING)" - "as (T_AS)" shift, and go to state 325 - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "as (T_AS)" shift, and go to state 327 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 $default reduce using rule 20 (use_declaration) -state 187 +state 188 16 top_statement: "use (T_USE)" use_declarations . ';' 18 use_declarations: use_declarations . ',' use_declaration - ',' shift, and go to state 326 - ';' shift, and go to state 327 + ',' shift, and go to state 328 + ';' shift, and go to state 329 -state 188 +state 189 19 use_declarations: use_declaration . $default reduce using rule 19 (use_declarations) -state 189 +state 190 176 global_var: "variable (T_VARIABLE)" . $default reduce using rule 176 (global_var) -state 190 +state 191 177 global_var: '$' . r_variable 178 | '$' . '{' expr '}' - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 - '{' shift, and go to state 328 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 + '{' shift, and go to state 330 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - r_variable go to state 329 - variable go to state 330 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + r_variable go to state 331 + variable go to state 332 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 191 +state 192 61 unticked_statement: "global (T_GLOBAL)" global_var_list . ';' 174 global_var_list: global_var_list . ',' global_var - ',' shift, and go to state 331 - ';' shift, and go to state 332 + ',' shift, and go to state 333 + ';' shift, and go to state 334 -state 192 +state 193 175 global_var_list: global_var . $default reduce using rule 175 (global_var_list) -state 193 +state 194 107 class_entry_type: "final (T_FINAL)" "class (T_CLASS)" . $default reduce using rule 107 (class_entry_type) -state 194 +state 195 105 class_entry_type: "abstract (T_ABSTRACT)" "class (T_CLASS)" . $default reduce using rule 105 (class_entry_type) -state 195 +state 196 181 static_var_list: "variable (T_VARIABLE)" . 182 | "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 333 + '=' shift, and go to state 335 $default reduce using rule 181 (static_var_list) -state 196 +state 197 62 unticked_statement: "static (T_STATIC)" static_var_list . ';' 179 static_var_list: static_var_list . ',' "variable (T_VARIABLE)" 180 | static_var_list . ',' "variable (T_VARIABLE)" '=' static_scalar - ',' shift, and go to state 334 - ';' shift, and go to state 335 + ',' shift, and go to state 336 + ';' shift, and go to state 337 -state 197 +state 198 - 321 expr_without_variable: "static (T_STATIC)" function . is_reference '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function . is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' - '&' shift, and go to state 229 + '&' shift, and go to state 231 $default reduce using rule 96 (is_reference) - is_reference go to state 336 + is_reference go to state 338 -state 198 +state 199 66 unticked_statement: "unset (T_UNSET)" '(' . unset_variables ')' ';' - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - unset_variables go to state 337 - unset_variable go to state 338 - function_call go to state 96 - class_name go to state 141 - variable go to state 339 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + unset_variables go to state 339 + unset_variable go to state 340 + function_call go to state 97 + class_name go to state 142 + variable go to state 341 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 199 +state 200 - 489 internal_functions_in_yacc: "isset (T_ISSET)" '(' . isset_variables ')' + 503 internal_functions_in_yacc: "isset (T_ISSET)" '(' . isset_variables ')' - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 340 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - isset_variables go to state 341 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 342 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + isset_variables go to state 343 -state 200 +state 201 - 490 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')' + 504 internal_functions_in_yacc: "empty (T_EMPTY)" '(' . variable ')' - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 342 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 344 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 201 +state 202 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';' - ')' shift, and go to state 343 + ')' shift, and go to state 345 -state 202 +state 203 - 240 expr_without_variable: "list (T_LIST)" '(' . @39 assignment_list ')' '=' expr + 253 expr_without_variable: "list (T_LIST)" '(' . @42 assignment_list ')' '=' expr - $default reduce using rule 239 (@39) + $default reduce using rule 252 (@42) - @39 go to state 344 + @42 go to state 346 -state 203 +state 204 - 314 expr_without_variable: "array (T_ARRAY)" '(' . array_pair_list ')' + 328 expr_without_variable: "array (T_ARRAY)" '(' . array_pair_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -6680,7 +6761,7 @@ state 203 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 146 + '&' shift, and go to state 147 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -6701,12 +6782,12 @@ state 203 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -6718,7 +6799,7 @@ state 203 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -6727,70 +6808,71 @@ state 203 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 465 (array_pair_list) + $default reduce using rule 479 (array_pair_list) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 147 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - array_pair_list go to state 345 - non_empty_array_pair_list go to state 149 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 148 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + array_pair_list go to state 347 + non_empty_array_pair_list go to state 150 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 204 +state 205 - 479 encaps_var: "variable (T_VARIABLE)" . - 481 | "variable (T_VARIABLE)" . '[' @69 encaps_var_offset ']' - 482 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" + 493 encaps_var: "variable (T_VARIABLE)" . + 495 | "variable (T_VARIABLE)" . '[' @72 encaps_var_offset ']' + 496 | "variable (T_VARIABLE)" . "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" - '[' shift, and go to state 346 - "-> (T_OBJECT_OPERATOR)" shift, and go to state 347 + '[' shift, and go to state 348 + "-> (T_OBJECT_OPERATOR)" shift, and go to state 349 - $default reduce using rule 479 (encaps_var) + $default reduce using rule 493 (encaps_var) -state 205 +state 206 - 380 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)" - 478 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var + 394 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)" + 492 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var - "variable (T_VARIABLE)" shift, and go to state 204 - "heredoc end (T_END_HEREDOC)" shift, and go to state 348 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "heredoc end (T_END_HEREDOC)" shift, and go to state 350 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - encaps_var go to state 349 + encaps_var go to state 351 -state 206 +state 207 - 381 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" . + 395 common_scalar: "heredoc start (T_START_HEREDOC)" "heredoc end (T_END_HEREDOC)" . - $default reduce using rule 381 (common_scalar) + $default reduce using rule 395 (common_scalar) -state 207 +state 208 - 483 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}' - 484 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . "variable name (T_STRING_VARNAME)" '[' expr ']' '}' + 497 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . expr '}' + 498 | "${ (T_DOLLAR_OPEN_CURLY_BRACES)" . "variable name (T_STRING_VARNAME)" '[' expr ']' '}' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -6818,12 +6900,12 @@ state 207 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 - "variable name (T_STRING_VARNAME)" shift, and go to state 350 + "identifier (T_STRING)" shift, and go to state 116 + "variable name (T_STRING_VARNAME)" shift, and go to state 352 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -6835,7 +6917,7 @@ state 207 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -6845,197 +6927,209 @@ state 207 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 351 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 353 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 208 +state 209 - 485 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}' + 499 encaps_var: "{$ (T_CURLY_OPEN)" . variable '}' - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 352 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 354 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 209 +state 210 - 399 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)" - 475 encaps_list: encaps_list . encaps_var - 476 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" + 413 scalar: "heredoc start (T_START_HEREDOC)" encaps_list . "heredoc end (T_END_HEREDOC)" + 489 encaps_list: encaps_list . encaps_var + 490 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" - "variable (T_VARIABLE)" shift, and go to state 204 - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 353 - "heredoc end (T_END_HEREDOC)" shift, and go to state 354 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 355 + "heredoc end (T_END_HEREDOC)" shift, and go to state 356 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - encaps_var go to state 355 + encaps_var go to state 357 -state 210 +state 211 - 477 encaps_list: encaps_var . + 491 encaps_list: encaps_var . - $default reduce using rule 477 (encaps_list) + $default reduce using rule 491 (encaps_list) -state 211 +state 212 - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - 395 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 409 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 356 + namespace_name go to state 358 -state 212 +state 213 15 top_statement: "namespace (T_NAMESPACE)" '{' . @3 top_statement_list '}' $default reduce using rule 14 (@3) - @3 go to state 357 + @3 go to state 359 -state 213 +state 214 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" 11 top_statement: "namespace (T_NAMESPACE)" namespace_name . ';' 13 | "namespace (T_NAMESPACE)" namespace_name . '{' @2 top_statement_list '}' - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - ';' shift, and go to state 358 - '{' shift, and go to state 359 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + ';' shift, and go to state 360 + '{' shift, and go to state 361 -state 214 +state 215 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @54 function_call_parameter_list ')' - 348 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . - 396 scalar: "\\ (T_NS_SEPARATOR)" namespace_name . + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @57 function_call_parameter_list ')' + 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . + 410 scalar: "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - '(' shift, and go to state 360 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + '(' shift, and go to state 362 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 348 (class_name) - $default reduce using rule 396 (scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 362 (class_name) + $default reduce using rule 410 (scalar) -state 215 +state 216 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 296 | '(' expr . ')' - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 361 + 308 expr_without_variable: new_expr . + 310 | '(' new_expr . ')' @48 instance_call + ')' shift, and go to state 363 -state 216 + ')' [reduce using rule 308 (expr_without_variable)] + $default reduce using rule 308 (expr_without_variable) + + +state 217 + + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 307 | '(' expr . ')' + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 364 + + +state 218 27 inner_statement_list: inner_statement_list . @4 inner_statement 35 unticked_statement: '{' inner_statement_list . '}' - '}' shift, and go to state 362 + '}' shift, and go to state 365 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 217 +state 219 - 446 compound_variable: '$' '{' . expr '}' + 460 compound_variable: '$' '{' . expr '}' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7063,12 +7157,12 @@ state 217 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7080,7 +7174,7 @@ state 217 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7090,196 +7184,197 @@ state 217 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 364 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 367 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 218 +state 220 - 365 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . - 478 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var + 379 backticks_expr: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . + 492 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var - "variable (T_VARIABLE)" shift, and go to state 204 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - $default reduce using rule 365 (backticks_expr) + $default reduce using rule 379 (backticks_expr) - encaps_var go to state 349 + encaps_var go to state 351 -state 219 +state 221 - 316 expr_without_variable: '`' backticks_expr . '`' + 330 expr_without_variable: '`' backticks_expr . '`' - '`' shift, and go to state 365 + '`' shift, and go to state 368 -state 220 +state 222 - 366 backticks_expr: encaps_list . - 475 encaps_list: encaps_list . encaps_var - 476 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" + 380 backticks_expr: encaps_list . + 489 encaps_list: encaps_list . encaps_var + 490 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" - "variable (T_VARIABLE)" shift, and go to state 204 - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 353 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 355 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - $default reduce using rule 366 (backticks_expr) + $default reduce using rule 380 (backticks_expr) - encaps_var go to state 355 + encaps_var go to state 357 -state 221 +state 223 - 478 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var + 492 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . encaps_var - "variable (T_VARIABLE)" shift, and go to state 204 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 + "variable (T_VARIABLE)" shift, and go to state 205 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 - encaps_var go to state 349 + encaps_var go to state 351 -state 222 +state 224 - 398 scalar: '"' encaps_list . '"' - 475 encaps_list: encaps_list . encaps_var - 476 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" + 412 scalar: '"' encaps_list . '"' + 489 encaps_list: encaps_list . encaps_var + 490 | encaps_list . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" - "variable (T_VARIABLE)" shift, and go to state 204 - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 353 - "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 207 - "{$ (T_CURLY_OPEN)" shift, and go to state 208 - '"' shift, and go to state 366 + "variable (T_VARIABLE)" shift, and go to state 205 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 355 + "${ (T_DOLLAR_OPEN_CURLY_BRACES)" shift, and go to state 208 + "{$ (T_CURLY_OPEN)" shift, and go to state 209 + '"' shift, and go to state 369 - encaps_var go to state 355 + encaps_var go to state 357 -state 223 +state 225 6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 367 + "identifier (T_STRING)" shift, and go to state 370 -state 224 +state 226 - 330 function_call: namespace_name '(' . @52 function_call_parameter_list ')' + 344 function_call: namespace_name '(' . @55 function_call_parameter_list ')' - $default reduce using rule 329 (@52) + $default reduce using rule 343 (@55) - @52 go to state 368 + @55 go to state 371 -state 225 +state 227 24 constant_declaration: constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar - "identifier (T_STRING)" shift, and go to state 369 + "identifier (T_STRING)" shift, and go to state 372 -state 226 +state 228 17 top_statement: constant_declaration ';' . $default reduce using rule 17 (top_statement) -state 227 +state 229 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" . extends_from @30 implements_list '{' class_statement_list '}' - "extends (T_EXTENDS)" shift, and go to state 370 + "extends (T_EXTENDS)" shift, and go to state 373 $default reduce using rule 108 (extends_from) - extends_from go to state 371 + extends_from go to state 374 -state 228 +state 230 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" . @31 interface_extends_list '{' class_statement_list '}' $default reduce using rule 102 (@31) - @31 go to state 372 + @31 go to state 375 -state 229 +state 231 97 is_reference: '&' . $default reduce using rule 97 (is_reference) -state 230 +state 232 99 unticked_function_declaration_statement: function is_reference . "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}' - 319 expr_without_variable: function is_reference . '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference . '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' - "identifier (T_STRING)" shift, and go to state 373 - '(' shift, and go to state 374 + "identifier (T_STRING)" shift, and go to state 376 + '(' shift, and go to state 377 -state 231 +state 233 - 435 array_function_dereference: function_call @66 . '[' dim_offset ']' + 449 array_function_dereference: function_call @69 . '[' dim_offset ']' - '[' shift, and go to state 375 + '[' shift, and go to state 378 -state 232 +state 234 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @55 function_call_parameter_list ')' - 338 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @56 function_call_parameter_list ')' - 430 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects - 499 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @58 function_call_parameter_list ')' + 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @59 function_call_parameter_list ')' + 444 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects + 513 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 376 + "identifier (T_STRING)" shift, and go to state 379 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 378 - reference_variable go to state 379 - compound_variable go to state 111 - variable_name go to state 380 - simple_indirect_reference go to state 381 + variable_without_objects go to state 381 + reference_variable go to state 382 + compound_variable go to state 112 + variable_name go to state 383 + simple_indirect_reference go to state 384 -state 233 +state 235 - 268 expr_without_variable: expr "or (T_LOGICAL_OR)" . @44 expr + 279 expr_without_variable: expr "or (T_LOGICAL_OR)" . @46 expr - $default reduce using rule 267 (@44) + $default reduce using rule 278 (@46) - @44 go to state 382 + @46 go to state 385 -state 234 +state 236 - 271 expr_without_variable: expr "xor (T_LOGICAL_XOR)" . expr + 282 expr_without_variable: expr "xor (T_LOGICAL_XOR)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7307,12 +7402,12 @@ state 234 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7324,7 +7419,7 @@ state 234 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7334,71 +7429,72 @@ state 234 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 383 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 386 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 235 +state 237 - 270 expr_without_variable: expr "and (T_LOGICAL_AND)" . @45 expr + 281 expr_without_variable: expr "and (T_LOGICAL_AND)" . @47 expr - $default reduce using rule 269 (@45) + $default reduce using rule 280 (@47) - @45 go to state 384 + @47 go to state 387 -state 236 +state 238 - 299 expr_without_variable: expr '?' . @46 expr ':' @47 expr - 301 | expr '?' . ':' @48 expr + 313 expr_without_variable: expr '?' . @49 expr ':' @50 expr + 315 | expr '?' . ':' @51 expr - ':' shift, and go to state 385 + ':' shift, and go to state 388 - $default reduce using rule 297 (@46) + $default reduce using rule 311 (@49) - @46 go to state 386 + @49 go to state 389 -state 237 +state 239 - 264 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . @42 expr + 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" . @44 expr - $default reduce using rule 263 (@42) + $default reduce using rule 274 (@44) - @42 go to state 387 + @44 go to state 390 -state 238 +state 240 - 266 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . @43 expr + 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" . @45 expr - $default reduce using rule 265 (@43) + $default reduce using rule 276 (@45) - @43 go to state 388 + @45 go to state 391 -state 239 +state 241 - 272 expr_without_variable: expr '|' . expr + 283 expr_without_variable: expr '|' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7426,12 +7522,12 @@ state 239 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7443,7 +7539,7 @@ state 239 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7453,32 +7549,33 @@ state 239 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 389 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 392 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 240 +state 242 - 274 expr_without_variable: expr '^' . expr + 285 expr_without_variable: expr '^' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7506,12 +7603,12 @@ state 240 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7523,7 +7620,7 @@ state 240 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7533,32 +7630,33 @@ state 240 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 390 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 393 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 241 +state 243 - 273 expr_without_variable: expr '&' . expr + 284 expr_without_variable: expr '&' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7586,12 +7684,12 @@ state 241 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7603,7 +7701,7 @@ state 241 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7613,32 +7711,33 @@ state 241 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 391 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 394 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 242 +state 244 - 288 expr_without_variable: expr "!== (T_IS_NOT_IDENTICAL)" . expr + 299 expr_without_variable: expr "!== (T_IS_NOT_IDENTICAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7666,12 +7765,12 @@ state 242 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7683,7 +7782,7 @@ state 242 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7693,32 +7792,33 @@ state 242 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 392 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 395 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 243 +state 245 - 287 expr_without_variable: expr "=== (T_IS_IDENTICAL)" . expr + 298 expr_without_variable: expr "=== (T_IS_IDENTICAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7746,12 +7846,12 @@ state 243 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7763,7 +7863,7 @@ state 243 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7773,32 +7873,33 @@ state 243 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 393 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 396 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 244 +state 246 - 290 expr_without_variable: expr "!= (T_IS_NOT_EQUAL)" . expr + 301 expr_without_variable: expr "!= (T_IS_NOT_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7826,12 +7927,12 @@ state 244 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7843,7 +7944,7 @@ state 244 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7853,32 +7954,33 @@ state 244 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 394 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 397 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 245 +state 247 - 289 expr_without_variable: expr "== (T_IS_EQUAL)" . expr + 300 expr_without_variable: expr "== (T_IS_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7906,12 +8008,12 @@ state 245 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -7923,7 +8025,7 @@ state 245 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -7933,32 +8035,33 @@ state 245 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 395 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 398 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 246 +state 248 - 291 expr_without_variable: expr '<' . expr + 302 expr_without_variable: expr '<' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -7986,12 +8089,12 @@ state 246 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8003,7 +8106,7 @@ state 246 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8013,32 +8116,33 @@ state 246 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 396 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 399 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 247 +state 249 - 293 expr_without_variable: expr '>' . expr + 304 expr_without_variable: expr '>' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8066,12 +8170,12 @@ state 247 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8083,7 +8187,7 @@ state 247 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8093,32 +8197,33 @@ state 247 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 397 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 400 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 248 +state 250 - 294 expr_without_variable: expr ">= (T_IS_GREATER_OR_EQUAL)" . expr + 305 expr_without_variable: expr ">= (T_IS_GREATER_OR_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8146,12 +8251,12 @@ state 248 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8163,7 +8268,7 @@ state 248 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8173,32 +8278,33 @@ state 248 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 398 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 401 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 249 +state 251 - 292 expr_without_variable: expr "<= (T_IS_SMALLER_OR_EQUAL)" . expr + 303 expr_without_variable: expr "<= (T_IS_SMALLER_OR_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8226,12 +8332,12 @@ state 249 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8243,7 +8349,7 @@ state 249 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8253,32 +8359,33 @@ state 249 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 399 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 402 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 250 +state 252 - 282 expr_without_variable: expr ">> (T_SR)" . expr + 293 expr_without_variable: expr ">> (T_SR)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8306,12 +8413,12 @@ state 250 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8323,7 +8430,7 @@ state 250 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8333,32 +8440,33 @@ state 250 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 400 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 403 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 251 +state 253 - 281 expr_without_variable: expr "<< (T_SL)" . expr + 292 expr_without_variable: expr "<< (T_SL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8386,12 +8494,12 @@ state 251 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8403,7 +8511,7 @@ state 251 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8413,32 +8521,33 @@ state 251 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 401 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 404 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 252 +state 254 - 276 expr_without_variable: expr '+' . expr + 287 expr_without_variable: expr '+' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8466,12 +8575,12 @@ state 252 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8483,7 +8592,7 @@ state 252 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8493,32 +8602,33 @@ state 252 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 402 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 405 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 253 +state 255 - 277 expr_without_variable: expr '-' . expr + 288 expr_without_variable: expr '-' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8546,12 +8656,12 @@ state 253 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8563,7 +8673,7 @@ state 253 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8573,32 +8683,33 @@ state 253 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 403 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 406 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 254 +state 256 - 275 expr_without_variable: expr '.' . expr + 286 expr_without_variable: expr '.' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8626,12 +8737,12 @@ state 254 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8643,7 +8754,7 @@ state 254 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8653,32 +8764,33 @@ state 254 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 404 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 407 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 255 +state 257 - 278 expr_without_variable: expr '*' . expr + 289 expr_without_variable: expr '*' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8706,12 +8818,12 @@ state 255 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8723,7 +8835,7 @@ state 255 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8733,32 +8845,33 @@ state 255 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 405 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 408 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 256 +state 258 - 279 expr_without_variable: expr '/' . expr + 290 expr_without_variable: expr '/' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8786,12 +8899,12 @@ state 256 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8803,7 +8916,7 @@ state 256 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8813,32 +8926,33 @@ state 256 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 406 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 409 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 257 +state 259 - 280 expr_without_variable: expr '%' . expr + 291 expr_without_variable: expr '%' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8866,12 +8980,12 @@ state 257 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -8883,7 +8997,7 @@ state 257 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -8893,78 +9007,79 @@ state 257 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 407 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 410 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 258 +state 260 - 295 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference + 306 expr_without_variable: expr "instanceof (T_INSTANCEOF)" . class_name_reference - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 151 - "\\ (T_NS_SEPARATOR)" shift, and go to state 152 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 152 + "\\ (T_NS_SEPARATOR)" shift, and go to state 153 '$' shift, and go to state 80 - namespace_name go to state 153 - class_name go to state 154 - class_name_reference go to state 408 - dynamic_class_name_reference go to state 156 - static_member go to state 105 - variable_class_name go to state 157 - base_variable go to state 158 - reference_variable go to state 159 - compound_variable go to state 111 - simple_indirect_reference go to state 160 + namespace_name go to state 154 + class_name go to state 155 + class_name_reference go to state 411 + dynamic_class_name_reference go to state 157 + static_member go to state 106 + variable_class_name go to state 158 + base_variable go to state 159 + reference_variable go to state 160 + compound_variable go to state 112 + simple_indirect_reference go to state 161 -state 259 +state 261 65 unticked_statement: expr ';' . $default reduce using rule 65 (unticked_statement) -state 260 +state 262 - 261 expr_without_variable: rw_variable "-- (T_DEC)" . + 272 expr_without_variable: rw_variable "-- (T_DEC)" . - $default reduce using rule 261 (expr_without_variable) + $default reduce using rule 272 (expr_without_variable) -state 261 +state 263 - 259 expr_without_variable: rw_variable "++ (T_INC)" . + 270 expr_without_variable: rw_variable "++ (T_INC)" . - $default reduce using rule 259 (expr_without_variable) + $default reduce using rule 270 (expr_without_variable) -state 262 +state 264 - 241 expr_without_variable: variable '=' . expr - 242 | variable '=' . '&' variable - 244 | variable '=' . '&' "new (T_NEW)" class_name_reference @40 ctor_arguments + 254 expr_without_variable: variable '=' . expr + 255 | variable '=' . '&' variable + 257 | variable '=' . '&' "new (T_NEW)" class_name_reference @43 ctor_arguments "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -8972,7 +9087,7 @@ state 262 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 409 + '&' shift, and go to state 412 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -8993,12 +9108,12 @@ state 262 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9010,7 +9125,7 @@ state 262 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9020,32 +9135,33 @@ state 262 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 410 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 413 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 263 +state 265 - 258 expr_without_variable: variable ">>= (T_SR_EQUAL)" . expr + 269 expr_without_variable: variable ">>= (T_SR_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9073,12 +9189,12 @@ state 263 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9090,7 +9206,7 @@ state 263 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9100,32 +9216,33 @@ state 263 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 411 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 414 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 264 +state 266 - 257 expr_without_variable: variable "<<= (T_SL_EQUAL)" . expr + 268 expr_without_variable: variable "<<= (T_SL_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9153,12 +9270,12 @@ state 264 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9170,7 +9287,7 @@ state 264 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9180,32 +9297,33 @@ state 264 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 412 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 415 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 265 +state 267 - 256 expr_without_variable: variable "^= (T_XOR_EQUAL)" . expr + 267 expr_without_variable: variable "^= (T_XOR_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9233,12 +9351,12 @@ state 265 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9250,7 +9368,7 @@ state 265 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9260,32 +9378,33 @@ state 265 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 413 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 416 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 266 +state 268 - 255 expr_without_variable: variable "|= (T_OR_EQUAL)" . expr + 266 expr_without_variable: variable "|= (T_OR_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9313,12 +9432,12 @@ state 266 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9330,7 +9449,7 @@ state 266 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9340,32 +9459,33 @@ state 266 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 414 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 417 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 267 +state 269 - 254 expr_without_variable: variable "&= (T_AND_EQUAL)" . expr + 265 expr_without_variable: variable "&= (T_AND_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9393,12 +9513,12 @@ state 267 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9410,7 +9530,7 @@ state 267 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9420,32 +9540,33 @@ state 267 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 415 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 418 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 268 +state 270 - 253 expr_without_variable: variable "%= (T_MOD_EQUAL)" . expr + 264 expr_without_variable: variable "%= (T_MOD_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9473,12 +9594,12 @@ state 268 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9490,7 +9611,7 @@ state 268 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9500,32 +9621,33 @@ state 268 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 416 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 419 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 269 +state 271 - 252 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" . expr + 263 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9553,12 +9675,12 @@ state 269 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9570,7 +9692,7 @@ state 269 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9580,32 +9702,33 @@ state 269 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 417 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 420 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 270 +state 272 - 251 expr_without_variable: variable "/= (T_DIV_EQUAL)" . expr + 262 expr_without_variable: variable "/= (T_DIV_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9633,12 +9756,12 @@ state 270 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9650,7 +9773,7 @@ state 270 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9660,32 +9783,33 @@ state 270 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 418 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 421 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 271 +state 273 - 250 expr_without_variable: variable "*= (T_MUL_EQUAL)" . expr + 261 expr_without_variable: variable "*= (T_MUL_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9713,12 +9837,12 @@ state 271 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9730,7 +9854,7 @@ state 271 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9740,32 +9864,33 @@ state 271 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 419 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 422 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 272 +state 274 - 249 expr_without_variable: variable "-= (T_MINUS_EQUAL)" . expr + 260 expr_without_variable: variable "-= (T_MINUS_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9793,12 +9918,12 @@ state 272 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9810,7 +9935,7 @@ state 272 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9820,32 +9945,33 @@ state 272 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 420 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 423 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 273 +state 275 - 248 expr_without_variable: variable "+= (T_PLUS_EQUAL)" . expr + 259 expr_without_variable: variable "+= (T_PLUS_EQUAL)" . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9873,12 +9999,12 @@ state 273 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9890,7 +10016,7 @@ state 273 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -9900,60 +10026,61 @@ state 273 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 421 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 424 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 274 +state 276 - 344 function_call: variable_without_objects '(' . @59 function_call_parameter_list ')' + 358 function_call: variable_without_objects '(' . @62 function_call_parameter_list ')' - $default reduce using rule 343 (@59) + $default reduce using rule 357 (@62) - @59 go to state 422 + @62 go to state 425 -state 275 +state 277 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @57 function_call_parameter_list ')' - 342 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @58 function_call_parameter_list ')' - 431 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects - 500 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @60 function_call_parameter_list ')' + 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @61 function_call_parameter_list ')' + 445 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects + 514 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 423 + "identifier (T_STRING)" shift, and go to state 426 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 424 - reference_variable go to state 379 - compound_variable go to state 111 - variable_name go to state 425 - simple_indirect_reference go to state 381 + variable_without_objects go to state 427 + reference_variable go to state 382 + compound_variable go to state 112 + variable_name go to state 428 + simple_indirect_reference go to state 384 -state 276 +state 278 - 433 array_function_dereference: array_function_dereference '[' . dim_offset ']' + 447 array_function_dereference: array_function_dereference '[' . dim_offset ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -9981,12 +10108,12 @@ state 276 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -9998,7 +10125,7 @@ state 276 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10007,45 +10134,46 @@ state 276 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 447 (dim_offset) + $default reduce using rule 461 (dim_offset) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 426 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - dim_offset go to state 427 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 430 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 277 +state 279 - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . @62 object_property @63 method_or_not variable_properties + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" . @65 object_property @66 method_or_not variable_properties - $default reduce using rule 413 (@62) + $default reduce using rule 427 (@65) - @62 go to state 428 + @65 go to state 431 -state 278 +state 280 - 442 reference_variable: reference_variable '[' . dim_offset ']' + 456 reference_variable: reference_variable '[' . dim_offset ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -10073,12 +10201,12 @@ state 278 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -10090,7 +10218,7 @@ state 278 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10099,36 +10227,37 @@ state 278 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 447 (dim_offset) + $default reduce using rule 461 (dim_offset) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 426 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - dim_offset go to state 429 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 432 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 279 +state 281 - 443 reference_variable: reference_variable '{' . expr '}' + 457 reference_variable: reference_variable '{' . expr '}' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -10156,12 +10285,12 @@ state 279 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -10173,7 +10302,7 @@ state 279 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10183,230 +10312,231 @@ state 279 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 430 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 433 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 280 +state 282 - 446 compound_variable: '$' . '{' expr '}' - 458 simple_indirect_reference: simple_indirect_reference '$' . + 460 compound_variable: '$' . '{' expr '}' + 472 simple_indirect_reference: simple_indirect_reference '$' . - '{' shift, and go to state 217 + '{' shift, and go to state 219 - $default reduce using rule 458 (simple_indirect_reference) + $default reduce using rule 472 (simple_indirect_reference) -state 281 +state 283 - 429 variable_without_objects: simple_indirect_reference reference_variable . - 440 base_variable: simple_indirect_reference reference_variable . - 442 reference_variable: reference_variable . '[' dim_offset ']' - 443 | reference_variable . '{' expr '}' + 443 variable_without_objects: simple_indirect_reference reference_variable . + 454 base_variable: simple_indirect_reference reference_variable . + 456 reference_variable: reference_variable . '[' dim_offset ']' + 457 | reference_variable . '{' expr '}' - '[' shift, and go to state 278 - '{' shift, and go to state 279 + '[' shift, and go to state 280 + '{' shift, and go to state 281 - '(' reduce using rule 429 (variable_without_objects) - $default reduce using rule 440 (base_variable) + '(' reduce using rule 443 (variable_without_objects) + $default reduce using rule 454 (base_variable) -state 282 +state 284 - 319 expr_without_variable: function is_reference . '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference . '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' - '(' shift, and go to state 374 + '(' shift, and go to state 377 -state 283 +state 285 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 493 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr . ')' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 431 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 507 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr . ')' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 434 -state 284 +state 286 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 312 | '@' @49 expr . - - $default reduce using rule 312 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 326 | '@' @52 expr . + + $default reduce using rule 326 (expr_without_variable) -state 285 +state 287 - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 432 + namespace_name go to state 435 -state 286 +state 288 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @54 function_call_parameter_list ')' - 348 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name . '(' @57 function_call_parameter_list ')' + 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - '(' shift, and go to state 360 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + '(' shift, and go to state 362 - $default reduce using rule 348 (class_name) + $default reduce using rule 362 (class_name) -state 287 +state 289 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @55 function_call_parameter_list ')' - 338 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @56 function_call_parameter_list ')' - 430 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @58 function_call_parameter_list ')' + 352 | class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @59 function_call_parameter_list ')' + 444 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects - "identifier (T_STRING)" shift, and go to state 433 + "identifier (T_STRING)" shift, and go to state 436 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 378 - reference_variable go to state 379 - compound_variable go to state 111 - variable_name go to state 380 - simple_indirect_reference go to state 381 + variable_without_objects go to state 381 + reference_variable go to state 382 + compound_variable go to state 112 + variable_name go to state 383 + simple_indirect_reference go to state 384 -state 288 +state 290 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @57 function_call_parameter_list ')' - 342 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @58 function_call_parameter_list ')' - 431 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_name '(' @60 function_call_parameter_list ')' + 356 | variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects '(' @61 function_call_parameter_list ')' + 445 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects - "identifier (T_STRING)" shift, and go to state 433 + "identifier (T_STRING)" shift, and go to state 436 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 424 - reference_variable go to state 379 - compound_variable go to state 111 - variable_name go to state 425 - simple_indirect_reference go to state 381 + variable_without_objects go to state 427 + reference_variable go to state 382 + compound_variable go to state 112 + variable_name go to state 428 + simple_indirect_reference go to state 384 -state 289 +state 291 - 474 non_empty_array_pair_list: '&' w_variable . + 488 non_empty_array_pair_list: '&' w_variable . - $default reduce using rule 474 (non_empty_array_pair_list) + $default reduce using rule 488 (non_empty_array_pair_list) -state 290 +state 292 - 411 w_variable: variable . + 425 w_variable: variable . - $default reduce using rule 411 (w_variable) + $default reduce using rule 425 (w_variable) -state 291 +state 293 - 469 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr - 473 | expr "=> (T_DOUBLE_ARROW)" . '&' w_variable + 483 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" . expr + 487 | expr "=> (T_DOUBLE_ARROW)" . '&' w_variable "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -10414,7 +10544,7 @@ state 291 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 434 + '&' shift, and go to state 437 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -10435,12 +10565,12 @@ state 291 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -10452,7 +10582,7 @@ state 291 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10462,43 +10592,44 @@ state 291 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 435 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 438 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 292 +state 294 - 315 expr_without_variable: '[' array_pair_list ']' . + 329 expr_without_variable: '[' array_pair_list ']' . - $default reduce using rule 315 (expr_without_variable) + $default reduce using rule 329 (expr_without_variable) -state 293 +state 295 - 403 possible_comma: ',' . - 467 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr - 468 | non_empty_array_pair_list ',' . expr - 471 | non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" '&' w_variable - 472 | non_empty_array_pair_list ',' . '&' w_variable + 417 possible_comma: ',' . + 481 non_empty_array_pair_list: non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" expr + 482 | non_empty_array_pair_list ',' . expr + 485 | non_empty_array_pair_list ',' . expr "=> (T_DOUBLE_ARROW)" '&' w_variable + 486 | non_empty_array_pair_list ',' . '&' w_variable "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -10506,7 +10637,7 @@ state 293 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 436 + '&' shift, and go to state 439 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -10527,12 +10658,12 @@ state 293 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -10544,7 +10675,7 @@ state 293 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10553,245 +10684,246 @@ state 293 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 403 (possible_comma) + $default reduce using rule 417 (possible_comma) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 437 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 440 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 294 +state 296 - 466 array_pair_list: non_empty_array_pair_list possible_comma . + 480 array_pair_list: non_empty_array_pair_list possible_comma . - $default reduce using rule 466 (array_pair_list) + $default reduce using rule 480 (array_pair_list) -state 295 +state 297 - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 438 + namespace_name go to state 441 -state 296 +state 298 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 348 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . + 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - $default reduce using rule 348 (class_name) + $default reduce using rule 362 (class_name) -state 297 +state 299 - 430 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects + 444 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects "variable (T_VARIABLE)" shift, and go to state 34 '$' shift, and go to state 80 - variable_without_objects go to state 439 - reference_variable go to state 379 - compound_variable go to state 111 - simple_indirect_reference go to state 381 + variable_without_objects go to state 442 + reference_variable go to state 382 + compound_variable go to state 112 + simple_indirect_reference go to state 384 -state 298 +state 300 - 246 expr_without_variable: "new (T_NEW)" class_name_reference @41 . ctor_arguments + 251 new_expr: "new (T_NEW)" class_name_reference @41 . ctor_arguments - '(' shift, and go to state 440 + '(' shift, and go to state 443 - $default reduce using rule 367 (ctor_arguments) + $default reduce using rule 381 (ctor_arguments) - ctor_arguments go to state 441 + ctor_arguments go to state 444 -state 299 +state 301 - 431 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects + 445 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . variable_without_objects "variable (T_VARIABLE)" shift, and go to state 34 '$' shift, and go to state 80 - variable_without_objects go to state 442 - reference_variable go to state 379 - compound_variable go to state 111 - simple_indirect_reference go to state 381 + variable_without_objects go to state 445 + reference_variable go to state 382 + compound_variable go to state 112 + simple_indirect_reference go to state 384 -state 300 +state 302 - 356 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . @60 object_property @61 dynamic_class_name_variable_properties + 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" . @63 object_property @64 dynamic_class_name_variable_properties - $default reduce using rule 354 (@60) + $default reduce using rule 368 (@63) - @60 go to state 443 + @63 go to state 446 -state 301 +state 303 - 440 base_variable: simple_indirect_reference reference_variable . - 442 reference_variable: reference_variable . '[' dim_offset ']' - 443 | reference_variable . '{' expr '}' + 454 base_variable: simple_indirect_reference reference_variable . + 456 reference_variable: reference_variable . '[' dim_offset ']' + 457 | reference_variable . '{' expr '}' - '[' shift, and go to state 278 - '{' shift, and go to state 279 + '[' shift, and go to state 280 + '{' shift, and go to state 281 - $default reduce using rule 440 (base_variable) + $default reduce using rule 454 (base_variable) -state 302 +state 304 - 362 exit_expr: '(' ')' . + 376 exit_expr: '(' ')' . - $default reduce using rule 362 (exit_expr) + $default reduce using rule 376 (exit_expr) -state 303 +state 305 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 363 exit_expr: '(' expr . ')' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 444 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 377 exit_expr: '(' expr . ')' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 447 -state 304 +state 306 38 unticked_statement: "if (T_IF)" '(' expr . ')' @5 statement @6 elseif_list else_single 41 | "if (T_IF)" '(' expr . ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 445 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 448 -state 305 +state 307 232 echo_expr_list: echo_expr_list ',' . expr @@ -10821,12 +10953,12 @@ state 305 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -10838,7 +10970,7 @@ state 305 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10848,44 +10980,45 @@ state 305 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 446 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 449 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 306 +state 308 63 unticked_statement: "echo (T_ECHO)" echo_expr_list ';' . $default reduce using rule 63 (unticked_statement) -state 307 +state 309 47 unticked_statement: "do (T_DO)" @11 statement . "while (T_WHILE)" '(' @12 expr ')' ';' - "while (T_WHILE)" shift, and go to state 447 + "while (T_WHILE)" shift, and go to state 450 -state 308 +state 310 44 unticked_statement: "while (T_WHILE)" '(' @9 . expr ')' @10 while_statement @@ -10915,12 +11048,12 @@ state 308 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -10932,7 +11065,7 @@ state 308 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -10942,346 +11075,347 @@ state 308 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 448 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 451 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 309 +state 311 51 unticked_statement: "for (T_FOR)" '(' for_expr . ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement - ';' shift, and go to state 449 + ';' shift, and go to state 452 -state 310 +state 312 235 for_expr: non_empty_for_expr . 237 non_empty_for_expr: non_empty_for_expr . ',' @38 expr - ',' shift, and go to state 450 + ',' shift, and go to state 453 $default reduce using rule 235 (for_expr) -state 311 +state 313 238 non_empty_for_expr: expr . - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 $default reduce using rule 238 (non_empty_for_expr) -state 312 +state 314 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable . "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement - 409 expr: expr_without_variable . + 423 expr: expr_without_variable . - "as (T_AS)" shift, and go to state 451 + "as (T_AS)" shift, and go to state 454 - $default reduce using rule 409 (expr) + $default reduce using rule 423 (expr) -state 313 +state 315 69 unticked_statement: "foreach (T_FOREACH)" '(' variable . "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement - 241 expr_without_variable: variable . '=' expr - 242 | variable . '=' '&' variable - 244 | variable . '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments - 248 | variable . "+= (T_PLUS_EQUAL)" expr - 249 | variable . "-= (T_MINUS_EQUAL)" expr - 250 | variable . "*= (T_MUL_EQUAL)" expr - 251 | variable . "/= (T_DIV_EQUAL)" expr - 252 | variable . ".= (T_CONCAT_EQUAL)" expr - 253 | variable . "%= (T_MOD_EQUAL)" expr - 254 | variable . "&= (T_AND_EQUAL)" expr - 255 | variable . "|= (T_OR_EQUAL)" expr - 256 | variable . "^= (T_XOR_EQUAL)" expr - 257 | variable . "<<= (T_SL_EQUAL)" expr - 258 | variable . ">>= (T_SR_EQUAL)" expr - 410 r_variable: variable . - 412 rw_variable: variable . - - '=' shift, and go to state 262 - ">>= (T_SR_EQUAL)" shift, and go to state 263 - "<<= (T_SL_EQUAL)" shift, and go to state 264 - "^= (T_XOR_EQUAL)" shift, and go to state 265 - "|= (T_OR_EQUAL)" shift, and go to state 266 - "&= (T_AND_EQUAL)" shift, and go to state 267 - "%= (T_MOD_EQUAL)" shift, and go to state 268 - ".= (T_CONCAT_EQUAL)" shift, and go to state 269 - "/= (T_DIV_EQUAL)" shift, and go to state 270 - "*= (T_MUL_EQUAL)" shift, and go to state 271 - "-= (T_MINUS_EQUAL)" shift, and go to state 272 - "+= (T_PLUS_EQUAL)" shift, and go to state 273 - "as (T_AS)" shift, and go to state 452 - - "-- (T_DEC)" reduce using rule 412 (rw_variable) - "++ (T_INC)" reduce using rule 412 (rw_variable) - $default reduce using rule 410 (r_variable) + 254 expr_without_variable: variable . '=' expr + 255 | variable . '=' '&' variable + 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments + 259 | variable . "+= (T_PLUS_EQUAL)" expr + 260 | variable . "-= (T_MINUS_EQUAL)" expr + 261 | variable . "*= (T_MUL_EQUAL)" expr + 262 | variable . "/= (T_DIV_EQUAL)" expr + 263 | variable . ".= (T_CONCAT_EQUAL)" expr + 264 | variable . "%= (T_MOD_EQUAL)" expr + 265 | variable . "&= (T_AND_EQUAL)" expr + 266 | variable . "|= (T_OR_EQUAL)" expr + 267 | variable . "^= (T_XOR_EQUAL)" expr + 268 | variable . "<<= (T_SL_EQUAL)" expr + 269 | variable . ">>= (T_SR_EQUAL)" expr + 424 r_variable: variable . + 426 rw_variable: variable . + + '=' shift, and go to state 264 + ">>= (T_SR_EQUAL)" shift, and go to state 265 + "<<= (T_SL_EQUAL)" shift, and go to state 266 + "^= (T_XOR_EQUAL)" shift, and go to state 267 + "|= (T_OR_EQUAL)" shift, and go to state 268 + "&= (T_AND_EQUAL)" shift, and go to state 269 + "%= (T_MOD_EQUAL)" shift, and go to state 270 + ".= (T_CONCAT_EQUAL)" shift, and go to state 271 + "/= (T_DIV_EQUAL)" shift, and go to state 272 + "*= (T_MUL_EQUAL)" shift, and go to state 273 + "-= (T_MINUS_EQUAL)" shift, and go to state 274 + "+= (T_PLUS_EQUAL)" shift, and go to state 275 + "as (T_AS)" shift, and go to state 455 + + "-- (T_DEC)" reduce using rule 426 (rw_variable) + "++ (T_INC)" reduce using rule 426 (rw_variable) + $default reduce using rule 424 (r_variable) -state 314 +state 316 74 unticked_statement: "declare (T_DECLARE)" @21 '(' . declare_list ')' declare_statement - "identifier (T_STRING)" shift, and go to state 453 + "identifier (T_STRING)" shift, and go to state 456 - declare_list go to state 454 + declare_list go to state 457 -state 315 +state 317 53 unticked_statement: "switch (T_SWITCH)" '(' expr . ')' @16 switch_case_list - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 455 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 458 -state 316 +state 318 55 unticked_statement: "break (T_BREAK)" expr ';' . $default reduce using rule 55 (unticked_statement) -state 317 +state 319 57 unticked_statement: "continue (T_CONTINUE)" expr ';' . $default reduce using rule 57 (unticked_statement) -state 318 +state 320 83 unticked_statement: "goto (T_GOTO)" "identifier (T_STRING)" ';' . $default reduce using rule 83 (unticked_statement) -state 319 +state 321 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 466 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 469 + static_class_constant go to state 470 -state 320 +state 322 59 unticked_statement: "return (T_RETURN)" expr_without_variable ';' . $default reduce using rule 59 (unticked_statement) -state 321 +state 323 60 unticked_statement: "return (T_RETURN)" variable ';' . $default reduce using rule 60 (unticked_statement) -state 322 +state 324 81 unticked_statement: "try (T_TRY)" @22 '{' . inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 468 + inner_statement_list go to state 471 -state 323 +state 325 82 unticked_statement: "throw (T_THROW)" expr ';' . $default reduce using rule 82 (unticked_statement) -state 324 +state 326 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" 22 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name . 23 | "\\ (T_NS_SEPARATOR)" namespace_name . "as (T_AS)" "identifier (T_STRING)" - "as (T_AS)" shift, and go to state 469 - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "as (T_AS)" shift, and go to state 472 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 $default reduce using rule 22 (use_declaration) -state 325 +state 327 21 use_declaration: namespace_name "as (T_AS)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 470 + "identifier (T_STRING)" shift, and go to state 473 -state 326 +state 328 18 use_declarations: use_declarations ',' . use_declaration - "identifier (T_STRING)" shift, and go to state 115 - "\\ (T_NS_SEPARATOR)" shift, and go to state 185 + "identifier (T_STRING)" shift, and go to state 116 + "\\ (T_NS_SEPARATOR)" shift, and go to state 186 - namespace_name go to state 186 - use_declaration go to state 471 + namespace_name go to state 187 + use_declaration go to state 474 -state 327 +state 329 16 top_statement: "use (T_USE)" use_declarations ';' . $default reduce using rule 16 (top_statement) -state 328 +state 330 178 global_var: '$' '{' . expr '}' @@ -11311,12 +11445,12 @@ state 328 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -11328,7 +11462,7 @@ state 328 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -11338,396 +11472,406 @@ state 328 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 472 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 475 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 329 +state 331 177 global_var: '$' r_variable . $default reduce using rule 177 (global_var) -state 330 +state 332 - 410 r_variable: variable . + 424 r_variable: variable . - $default reduce using rule 410 (r_variable) + $default reduce using rule 424 (r_variable) -state 331 +state 333 174 global_var_list: global_var_list ',' . global_var - "variable (T_VARIABLE)" shift, and go to state 189 - '$' shift, and go to state 190 + "variable (T_VARIABLE)" shift, and go to state 190 + '$' shift, and go to state 191 - global_var go to state 473 + global_var go to state 476 -state 332 +state 334 61 unticked_statement: "global (T_GLOBAL)" global_var_list ';' . $default reduce using rule 61 (unticked_statement) -state 333 +state 335 182 static_var_list: "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 474 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 477 + static_class_constant go to state 470 -state 334 +state 336 179 static_var_list: static_var_list ',' . "variable (T_VARIABLE)" 180 | static_var_list ',' . "variable (T_VARIABLE)" '=' static_scalar - "variable (T_VARIABLE)" shift, and go to state 475 + "variable (T_VARIABLE)" shift, and go to state 478 -state 335 +state 337 62 unticked_statement: "static (T_STATIC)" static_var_list ';' . $default reduce using rule 62 (unticked_statement) -state 336 +state 338 - 321 expr_without_variable: "static (T_STATIC)" function is_reference . '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference . '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' - '(' shift, and go to state 476 + '(' shift, and go to state 479 -state 337 +state 339 66 unticked_statement: "unset (T_UNSET)" '(' unset_variables . ')' ';' 92 unset_variables: unset_variables . ',' unset_variable - ',' shift, and go to state 477 - ')' shift, and go to state 478 + ',' shift, and go to state 480 + ')' shift, and go to state 481 -state 338 +state 340 91 unset_variables: unset_variable . $default reduce using rule 91 (unset_variables) -state 339 +state 341 93 unset_variable: variable . $default reduce using rule 93 (unset_variable) -state 340 - - 496 isset_variables: variable . - - $default reduce using rule 496 (isset_variables) - - -state 341 - - 489 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')' - 498 isset_variables: isset_variables . ',' @70 variable - - ',' shift, and go to state 479 - ')' shift, and go to state 480 - - state 342 - 490 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')' + 510 isset_variables: variable . - ')' shift, and go to state 481 + $default reduce using rule 510 (isset_variables) state 343 - 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';' + 503 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables . ')' + 512 isset_variables: isset_variables . ',' @73 variable - ';' shift, and go to state 482 + ',' shift, and go to state 482 + ')' shift, and go to state 483 state 344 - 240 expr_without_variable: "list (T_LIST)" '(' @39 . assignment_list ')' '=' expr + 504 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable . ')' - "identifier (T_STRING)" shift, and go to state 115 - "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "list (T_LIST)" shift, and go to state 483 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 - '$' shift, and go to state 80 - - $default reduce using rule 464 (assignment_list_element) - - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 484 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - assignment_list go to state 485 - assignment_list_element go to state 486 + ')' shift, and go to state 484 state 345 - 314 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list . ')' + 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';' - ')' shift, and go to state 487 + ';' shift, and go to state 485 state 346 - 481 encaps_var: "variable (T_VARIABLE)" '[' . @69 encaps_var_offset ']' + 253 expr_without_variable: "list (T_LIST)" '(' @42 . assignment_list ')' '=' expr - $default reduce using rule 480 (@69) + "identifier (T_STRING)" shift, and go to state 116 + "variable (T_VARIABLE)" shift, and go to state 34 + "static (T_STATIC)" shift, and go to state 138 + "list (T_LIST)" shift, and go to state 486 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 + '$' shift, and go to state 80 - @69 go to state 488 + $default reduce using rule 478 (assignment_list_element) + + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 487 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + assignment_list go to state 488 + assignment_list_element go to state 489 state 347 - 482 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)" + 328 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list . ')' - "identifier (T_STRING)" shift, and go to state 489 + ')' shift, and go to state 490 state 348 - 380 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" . + 495 encaps_var: "variable (T_VARIABLE)" '[' . @72 encaps_var_offset ']' - $default reduce using rule 380 (common_scalar) + $default reduce using rule 494 (@72) + + @72 go to state 491 state 349 - 478 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var . + 496 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" . "identifier (T_STRING)" - $default reduce using rule 478 (encaps_list) + "identifier (T_STRING)" shift, and go to state 492 state 350 - 392 scalar: "variable name (T_STRING_VARNAME)" . - 484 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}' - - '[' shift, and go to state 490 + 394 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" . - $default reduce using rule 392 (scalar) + $default reduce using rule 394 (common_scalar) state 351 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 483 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - '}' shift, and go to state 491 + 492 encaps_list: "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" encaps_var . + + $default reduce using rule 492 (encaps_list) state 352 - 485 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}' + 406 scalar: "variable name (T_STRING_VARNAME)" . + 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" . '[' expr ']' '}' - '}' shift, and go to state 492 + '[' shift, and go to state 493 + $default reduce using rule 406 (scalar) -state 353 - 476 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . +state 353 - $default reduce using rule 476 (encaps_list) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 497 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr . '}' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + '}' shift, and go to state 494 state 354 - 399 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" . + 499 encaps_var: "{$ (T_CURLY_OPEN)" variable . '}' - $default reduce using rule 399 (scalar) + '}' shift, and go to state 495 state 355 - 475 encaps_list: encaps_list encaps_var . + 490 encaps_list: encaps_list "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . - $default reduce using rule 475 (encaps_list) + $default reduce using rule 490 (encaps_list) state 356 + 413 scalar: "heredoc start (T_START_HEREDOC)" encaps_list "heredoc end (T_END_HEREDOC)" . + + $default reduce using rule 413 (scalar) + + +state 357 + + 489 encaps_list: encaps_list encaps_var . + + $default reduce using rule 489 (encaps_list) + + +state 358 + 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - 395 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 409 scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - '(' shift, and go to state 493 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + '(' shift, and go to state 496 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 347 (class_name) - $default reduce using rule 395 (scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 361 (class_name) + $default reduce using rule 409 (scalar) -state 357 +state 359 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 . top_statement_list '}' $default reduce using rule 4 (top_statement_list) - top_statement_list go to state 494 + top_statement_list go to state 497 -state 358 +state 360 11 top_statement: "namespace (T_NAMESPACE)" namespace_name ';' . $default reduce using rule 11 (top_statement) -state 359 +state 361 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' . @2 top_statement_list '}' $default reduce using rule 12 (@2) - @2 go to state 495 + @2 go to state 498 -state 360 +state 362 - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' . @54 function_call_parameter_list ')' + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' . @57 function_call_parameter_list ')' - $default reduce using rule 333 (@54) + $default reduce using rule 347 (@57) - @54 go to state 496 + @57 go to state 499 -state 361 +state 363 - 296 expr_without_variable: '(' expr ')' . + 310 expr_without_variable: '(' new_expr ')' . @48 instance_call - $default reduce using rule 296 (expr_without_variable) + $default reduce using rule 309 (@48) + @48 go to state 500 -state 362 + +state 364 + + 307 expr_without_variable: '(' expr ')' . + + $default reduce using rule 307 (expr_without_variable) + + +state 365 35 unticked_statement: '{' inner_statement_list '}' . $default reduce using rule 35 (unticked_statement) -state 363 +state 366 27 inner_statement_list: inner_statement_list @4 . inner_statement @@ -11784,7 +11928,7 @@ state 363 "unset (T_UNSET)" shift, and go to state 57 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 - "__halt_compiler (T_HALT_COMPILER)" shift, and go to state 497 + "__halt_compiler (T_HALT_COMPILER)" shift, and go to state 501 "class (T_CLASS)" shift, and go to state 61 "trait (T_TRAIT)" shift, and go to state 62 "interface (T_INTERFACE)" shift, and go to state 63 @@ -11797,7 +11941,7 @@ state 363 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -11809,122 +11953,123 @@ state 363 '"' shift, and go to state 82 namespace_name go to state 83 - inner_statement go to state 498 - statement go to state 499 + inner_statement go to state 502 + statement go to state 503 unticked_statement go to state 87 - function_declaration_statement go to state 500 - class_declaration_statement go to state 501 + function_declaration_statement go to state 504 + class_declaration_statement go to state 505 unticked_function_declaration_statement go to state 90 unticked_class_declaration_statement go to state 91 class_entry_type go to state 92 interface_entry go to state 93 - expr_without_variable go to state 94 - function go to state 95 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 96 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 364 +state 367 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 446 compound_variable: '$' '{' expr . '}' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - '}' shift, and go to state 502 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 460 compound_variable: '$' '{' expr . '}' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + '}' shift, and go to state 506 -state 365 +state 368 - 316 expr_without_variable: '`' backticks_expr '`' . + 330 expr_without_variable: '`' backticks_expr '`' . - $default reduce using rule 316 (expr_without_variable) + $default reduce using rule 330 (expr_without_variable) -state 366 +state 369 - 398 scalar: '"' encaps_list '"' . + 412 scalar: '"' encaps_list '"' . - $default reduce using rule 398 (scalar) + $default reduce using rule 412 (scalar) -state 367 +state 370 6 namespace_name: namespace_name "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" . $default reduce using rule 6 (namespace_name) -state 368 +state 371 - 330 function_call: namespace_name '(' @52 . function_call_parameter_list ')' + 344 function_call: namespace_name '(' @55 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -11932,7 +12077,7 @@ state 368 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -11953,12 +12098,12 @@ state 368 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -11970,7 +12115,7 @@ state 368 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -11982,91 +12127,92 @@ state 368 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 504 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 508 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 369 +state 372 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar - '=' shift, and go to state 508 + '=' shift, and go to state 512 -state 370 +state 373 109 extends_from: "extends (T_EXTENDS)" . fully_qualified_class_name - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - fully_qualified_class_name go to state 512 + namespace_name go to state 515 + fully_qualified_class_name go to state 516 -state 371 +state 374 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from . @30 implements_list '{' class_statement_list '}' $default reduce using rule 100 (@30) - @30 go to state 513 + @30 go to state 517 -state 372 +state 375 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 . interface_extends_list '{' class_statement_list '}' - "extends (T_EXTENDS)" shift, and go to state 514 + "extends (T_EXTENDS)" shift, and go to state 518 $default reduce using rule 111 (interface_extends_list) - interface_extends_list go to state 515 + interface_extends_list go to state 519 -state 373 +state 376 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" . @29 '(' parameter_list ')' '{' inner_statement_list '}' $default reduce using rule 98 (@29) - @29 go to state 516 + @29 go to state 520 -state 374 +state 377 - 319 expr_without_variable: function is_reference '(' . @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference '(' . @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' - $default reduce using rule 318 (@50) + $default reduce using rule 332 (@53) - @50 go to state 517 + @53 go to state 521 -state 375 +state 378 - 435 array_function_dereference: function_call @66 '[' . dim_offset ']' + 449 array_function_dereference: function_call @69 '[' . dim_offset ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12094,12 +12240,12 @@ state 375 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12111,7 +12257,7 @@ state 375 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12120,45 +12266,46 @@ state 375 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 447 (dim_offset) + $default reduce using rule 461 (dim_offset) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 426 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - dim_offset go to state 518 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 522 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 376 +state 379 - 455 variable_name: "identifier (T_STRING)" . - 499 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . + 469 variable_name: "identifier (T_STRING)" . + 513 class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . - '(' reduce using rule 455 (variable_name) - $default reduce using rule 499 (class_constant) + '(' reduce using rule 469 (variable_name) + $default reduce using rule 513 (class_constant) -state 377 +state 380 - 456 variable_name: '{' . expr '}' + 470 variable_name: '{' . expr '}' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12186,12 +12333,12 @@ state 377 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12203,7 +12350,7 @@ state 377 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12213,73 +12360,74 @@ state 377 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 519 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 523 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 378 +state 381 - 338 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @56 function_call_parameter_list ')' - 430 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . + 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @59 function_call_parameter_list ')' + 444 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . - '(' shift, and go to state 520 + '(' shift, and go to state 524 - $default reduce using rule 430 (static_member) + $default reduce using rule 444 (static_member) -state 379 +state 382 - 428 variable_without_objects: reference_variable . - 442 reference_variable: reference_variable . '[' dim_offset ']' - 443 | reference_variable . '{' expr '}' + 442 variable_without_objects: reference_variable . + 456 reference_variable: reference_variable . '[' dim_offset ']' + 457 | reference_variable . '{' expr '}' - '[' shift, and go to state 278 - '{' shift, and go to state 279 + '[' shift, and go to state 280 + '{' shift, and go to state 281 - $default reduce using rule 428 (variable_without_objects) + $default reduce using rule 442 (variable_without_objects) -state 380 +state 383 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @55 function_call_parameter_list ')' + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @58 function_call_parameter_list ')' - '(' shift, and go to state 521 + '(' shift, and go to state 525 -state 381 +state 384 - 429 variable_without_objects: simple_indirect_reference . reference_variable - 458 simple_indirect_reference: simple_indirect_reference . '$' + 443 variable_without_objects: simple_indirect_reference . reference_variable + 472 simple_indirect_reference: simple_indirect_reference . '$' "variable (T_VARIABLE)" shift, and go to state 34 - '$' shift, and go to state 280 + '$' shift, and go to state 282 - reference_variable go to state 522 - compound_variable go to state 111 + reference_variable go to state 526 + compound_variable go to state 112 -state 382 +state 385 - 268 expr_without_variable: expr "or (T_LOGICAL_OR)" @44 . expr + 279 expr_without_variable: expr "or (T_LOGICAL_OR)" @46 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12307,12 +12455,12 @@ state 382 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12324,7 +12472,7 @@ state 382 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12334,91 +12482,92 @@ state 382 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 523 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 527 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 383 +state 386 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 271 | expr "xor (T_LOGICAL_XOR)" expr . - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 282 | expr "xor (T_LOGICAL_XOR)" expr . + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 271 (expr_without_variable) + $default reduce using rule 282 (expr_without_variable) -state 384 +state 387 - 270 expr_without_variable: expr "and (T_LOGICAL_AND)" @45 . expr + 281 expr_without_variable: expr "and (T_LOGICAL_AND)" @47 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12446,12 +12595,12 @@ state 384 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12463,7 +12612,7 @@ state 384 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12473,41 +12622,42 @@ state 384 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 524 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 528 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 385 +state 388 - 301 expr_without_variable: expr '?' ':' . @48 expr + 315 expr_without_variable: expr '?' ':' . @51 expr - $default reduce using rule 300 (@48) + $default reduce using rule 314 (@51) - @48 go to state 525 + @51 go to state 529 -state 386 +state 389 - 299 expr_without_variable: expr '?' @46 . expr ':' @47 expr + 313 expr_without_variable: expr '?' @49 . expr ':' @50 expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12535,12 +12685,12 @@ state 386 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12552,7 +12702,7 @@ state 386 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12562,32 +12712,33 @@ state 386 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 526 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 530 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 387 +state 390 - 264 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @42 . expr + 275 expr_without_variable: expr "|| (T_BOOLEAN_OR)" @44 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12615,12 +12766,12 @@ state 387 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12632,7 +12783,7 @@ state 387 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12642,32 +12793,33 @@ state 387 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 527 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 531 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 388 +state 391 - 266 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @43 . expr + 277 expr_without_variable: expr "&& (T_BOOLEAN_AND)" @45 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -12695,12 +12847,12 @@ state 388 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -12712,7 +12864,7 @@ state 388 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -12722,1639 +12874,1640 @@ state 388 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 528 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 532 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 389 +state 392 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 272 | expr '|' expr . - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 283 | expr '|' expr . + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 272 (expr_without_variable) + $default reduce using rule 283 (expr_without_variable) -state 390 +state 393 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 274 | expr '^' expr . - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 274 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 285 | expr '^' expr . + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + $default reduce using rule 285 (expr_without_variable) -state 391 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 273 | expr '&' expr . - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 +state 394 - $default reduce using rule 273 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 284 | expr '&' expr . + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + $default reduce using rule 284 (expr_without_variable) -state 392 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 288 | expr "!== (T_IS_NOT_IDENTICAL)" expr . - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 +state 395 + + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 299 | expr "!== (T_IS_NOT_IDENTICAL)" expr . + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 "!== (T_IS_NOT_IDENTICAL)" error (nonassociative) "=== (T_IS_IDENTICAL)" error (nonassociative) "!= (T_IS_NOT_EQUAL)" error (nonassociative) "== (T_IS_EQUAL)" error (nonassociative) - $default reduce using rule 288 (expr_without_variable) + $default reduce using rule 299 (expr_without_variable) -state 393 +state 396 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 287 | expr "=== (T_IS_IDENTICAL)" expr . - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 298 | expr "=== (T_IS_IDENTICAL)" expr . + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 "!== (T_IS_NOT_IDENTICAL)" error (nonassociative) "=== (T_IS_IDENTICAL)" error (nonassociative) "!= (T_IS_NOT_EQUAL)" error (nonassociative) "== (T_IS_EQUAL)" error (nonassociative) - $default reduce using rule 287 (expr_without_variable) + $default reduce using rule 298 (expr_without_variable) -state 394 +state 397 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 290 | expr "!= (T_IS_NOT_EQUAL)" expr . - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 301 | expr "!= (T_IS_NOT_EQUAL)" expr . + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 "!== (T_IS_NOT_IDENTICAL)" error (nonassociative) "=== (T_IS_IDENTICAL)" error (nonassociative) "!= (T_IS_NOT_EQUAL)" error (nonassociative) "== (T_IS_EQUAL)" error (nonassociative) - $default reduce using rule 290 (expr_without_variable) + $default reduce using rule 301 (expr_without_variable) -state 395 +state 398 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 289 | expr "== (T_IS_EQUAL)" expr . - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 300 | expr "== (T_IS_EQUAL)" expr . + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 "!== (T_IS_NOT_IDENTICAL)" error (nonassociative) "=== (T_IS_IDENTICAL)" error (nonassociative) "!= (T_IS_NOT_EQUAL)" error (nonassociative) "== (T_IS_EQUAL)" error (nonassociative) - $default reduce using rule 289 (expr_without_variable) + $default reduce using rule 300 (expr_without_variable) -state 396 +state 399 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 291 | expr '<' expr . - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 302 | expr '<' expr . + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 '<' error (nonassociative) '>' error (nonassociative) ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative) "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative) - $default reduce using rule 291 (expr_without_variable) + $default reduce using rule 302 (expr_without_variable) -state 397 +state 400 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 293 | expr '>' expr . - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 304 | expr '>' expr . + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 '<' error (nonassociative) '>' error (nonassociative) ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative) "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative) - $default reduce using rule 293 (expr_without_variable) + $default reduce using rule 304 (expr_without_variable) -state 398 +state 401 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 294 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr . - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 305 | expr ">= (T_IS_GREATER_OR_EQUAL)" expr . + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 '<' error (nonassociative) '>' error (nonassociative) ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative) "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative) - $default reduce using rule 294 (expr_without_variable) + $default reduce using rule 305 (expr_without_variable) -state 399 +state 402 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 292 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr . - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 303 | expr "<= (T_IS_SMALLER_OR_EQUAL)" expr . + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 '<' error (nonassociative) '>' error (nonassociative) ">= (T_IS_GREATER_OR_EQUAL)" error (nonassociative) "<= (T_IS_SMALLER_OR_EQUAL)" error (nonassociative) - $default reduce using rule 292 (expr_without_variable) - - -state 400 - - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 282 | expr ">> (T_SR)" expr . - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 282 (expr_without_variable) - - -state 401 - - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 281 | expr "<< (T_SL)" expr . - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 281 (expr_without_variable) - - -state 402 - - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 276 | expr '+' expr . - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 276 (expr_without_variable) + $default reduce using rule 303 (expr_without_variable) state 403 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 277 | expr '-' expr . - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 293 | expr ">> (T_SR)" expr . + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 277 (expr_without_variable) + $default reduce using rule 293 (expr_without_variable) state 404 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 275 | expr '.' expr . - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 292 | expr "<< (T_SL)" expr . + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 275 (expr_without_variable) + $default reduce using rule 292 (expr_without_variable) state 405 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 278 | expr '*' expr . - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 278 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 287 | expr '+' expr . + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 287 (expr_without_variable) state 406 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 279 | expr '/' expr . - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 288 | expr '-' expr . + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 279 (expr_without_variable) + $default reduce using rule 288 (expr_without_variable) state 407 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 280 | expr '%' expr . - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 280 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 286 | expr '.' expr . + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 286 (expr_without_variable) state 408 - 295 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference . + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 289 | expr '*' expr . + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 295 (expr_without_variable) + $default reduce using rule 289 (expr_without_variable) state 409 - 242 expr_without_variable: variable '=' '&' . variable - 244 | variable '=' '&' . "new (T_NEW)" class_name_reference @40 ctor_arguments + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 290 | expr '/' expr . + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - "new (T_NEW)" shift, and go to state 529 - "identifier (T_STRING)" shift, and go to state 115 - "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 - '$' shift, and go to state 80 - - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 530 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + $default reduce using rule 290 (expr_without_variable) state 410 - 241 expr_without_variable: variable '=' expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 241 (expr_without_variable) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 291 | expr '%' expr . + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 291 (expr_without_variable) state 411 - 258 expr_without_variable: variable ">>= (T_SR_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 306 expr_without_variable: expr "instanceof (T_INSTANCEOF)" class_name_reference . - $default reduce using rule 258 (expr_without_variable) + $default reduce using rule 306 (expr_without_variable) state 412 - 257 expr_without_variable: variable "<<= (T_SL_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 255 expr_without_variable: variable '=' '&' . variable + 257 | variable '=' '&' . "new (T_NEW)" class_name_reference @43 ctor_arguments - $default reduce using rule 257 (expr_without_variable) + "new (T_NEW)" shift, and go to state 533 + "identifier (T_STRING)" shift, and go to state 116 + "variable (T_VARIABLE)" shift, and go to state 34 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 + '$' shift, and go to state 80 + + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 534 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 state 413 - 256 expr_without_variable: variable "^= (T_XOR_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 256 (expr_without_variable) + 254 expr_without_variable: variable '=' expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 254 (expr_without_variable) state 414 - 255 expr_without_variable: variable "|= (T_OR_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 255 (expr_without_variable) + 269 expr_without_variable: variable ">>= (T_SR_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 269 (expr_without_variable) state 415 - 254 expr_without_variable: variable "&= (T_AND_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 268 expr_without_variable: variable "<<= (T_SL_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 254 (expr_without_variable) + $default reduce using rule 268 (expr_without_variable) state 416 - 253 expr_without_variable: variable "%= (T_MOD_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 253 (expr_without_variable) + 267 expr_without_variable: variable "^= (T_XOR_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 267 (expr_without_variable) state 417 - 252 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 252 (expr_without_variable) + 266 expr_without_variable: variable "|= (T_OR_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 266 (expr_without_variable) state 418 - 251 expr_without_variable: variable "/= (T_DIV_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 251 (expr_without_variable) + 265 expr_without_variable: variable "&= (T_AND_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 265 (expr_without_variable) state 419 - 250 expr_without_variable: variable "*= (T_MUL_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 250 (expr_without_variable) + 264 expr_without_variable: variable "%= (T_MOD_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 264 (expr_without_variable) state 420 - 249 expr_without_variable: variable "-= (T_MINUS_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 249 (expr_without_variable) + 263 expr_without_variable: variable ".= (T_CONCAT_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 263 (expr_without_variable) state 421 - 248 expr_without_variable: variable "+= (T_PLUS_EQUAL)" expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 248 (expr_without_variable) + 262 expr_without_variable: variable "/= (T_DIV_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 262 (expr_without_variable) state 422 - 344 function_call: variable_without_objects '(' @59 . function_call_parameter_list ')' + 261 expr_without_variable: variable "*= (T_MUL_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 261 (expr_without_variable) + + +state 423 + + 260 expr_without_variable: variable "-= (T_MINUS_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 260 (expr_without_variable) + + +state 424 + + 259 expr_without_variable: variable "+= (T_PLUS_EQUAL)" expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 259 (expr_without_variable) + + +state 425 + + 358 function_call: variable_without_objects '(' @62 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -14362,7 +14515,7 @@ state 422 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -14383,12 +14536,12 @@ state 422 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -14400,7 +14553,7 @@ state 422 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -14412,435 +14565,436 @@ state 422 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 531 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 535 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 423 +state 426 - 455 variable_name: "identifier (T_STRING)" . - 500 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . + 469 variable_name: "identifier (T_STRING)" . + 514 class_constant: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . - '(' reduce using rule 455 (variable_name) - $default reduce using rule 500 (class_constant) + '(' reduce using rule 469 (variable_name) + $default reduce using rule 514 (class_constant) -state 424 +state 427 - 342 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @58 function_call_parameter_list ')' - 431 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . + 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . '(' @61 function_call_parameter_list ')' + 445 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . - '(' shift, and go to state 532 + '(' shift, and go to state 536 - $default reduce using rule 431 (static_member) + $default reduce using rule 445 (static_member) -state 425 +state 428 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @57 function_call_parameter_list ')' + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name . '(' @60 function_call_parameter_list ')' - '(' shift, and go to state 533 + '(' shift, and go to state 537 -state 426 +state 429 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 448 dim_offset: expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 448 (dim_offset) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 462 dim_offset: expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 462 (dim_offset) -state 427 +state 430 - 433 array_function_dereference: array_function_dereference '[' dim_offset . ']' + 447 array_function_dereference: array_function_dereference '[' dim_offset . ']' - ']' shift, and go to state 534 + ']' shift, and go to state 538 -state 428 +state 431 - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @62 . object_property @63 method_or_not variable_properties + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 . object_property @66 method_or_not variable_properties - "identifier (T_STRING)" shift, and go to state 433 + "identifier (T_STRING)" shift, and go to state 436 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 535 - reference_variable go to state 379 - compound_variable go to state 111 - object_property go to state 536 - object_dim_list go to state 537 - variable_name go to state 538 - simple_indirect_reference go to state 381 + variable_without_objects go to state 539 + reference_variable go to state 382 + compound_variable go to state 112 + object_property go to state 540 + object_dim_list go to state 541 + variable_name go to state 542 + simple_indirect_reference go to state 384 -state 429 +state 432 - 442 reference_variable: reference_variable '[' dim_offset . ']' + 456 reference_variable: reference_variable '[' dim_offset . ']' - ']' shift, and go to state 539 + ']' shift, and go to state 543 -state 430 +state 433 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 443 reference_variable: reference_variable '{' expr . '}' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - '}' shift, and go to state 540 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 457 reference_variable: reference_variable '{' expr . '}' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + '}' shift, and go to state 544 -state 431 +state 434 - 493 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr ')' . + 507 internal_functions_in_yacc: "eval (T_EVAL)" '(' expr ')' . - $default reduce using rule 493 (internal_functions_in_yacc) + $default reduce using rule 507 (internal_functions_in_yacc) -state 432 +state 435 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @53 function_call_parameter_list ')' - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . '(' @56 function_call_parameter_list ')' + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 - '(' shift, and go to state 493 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 + '(' shift, and go to state 496 - $default reduce using rule 347 (class_name) + $default reduce using rule 361 (class_name) -state 433 +state 436 - 455 variable_name: "identifier (T_STRING)" . + 469 variable_name: "identifier (T_STRING)" . - $default reduce using rule 455 (variable_name) + $default reduce using rule 469 (variable_name) -state 434 +state 437 - 473 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable + 487 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' . w_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - w_variable go to state 541 - variable go to state 290 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + w_variable go to state 545 + variable go to state 292 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 435 +state 438 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 469 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 469 (non_empty_array_pair_list) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 483 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 483 (non_empty_array_pair_list) -state 436 +state 439 - 472 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable + 486 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' . w_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - w_variable go to state 542 - variable go to state 290 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + w_variable go to state 546 + variable go to state 292 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 437 +state 440 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 467 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr - 468 | non_empty_array_pair_list ',' expr . - 471 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - "=> (T_DOUBLE_ARROW)" shift, and go to state 543 - - $default reduce using rule 468 (non_empty_array_pair_list) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 481 non_empty_array_pair_list: non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" expr + 482 | non_empty_array_pair_list ',' expr . + 485 | non_empty_array_pair_list ',' expr . "=> (T_DOUBLE_ARROW)" '&' w_variable + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + "=> (T_DOUBLE_ARROW)" shift, and go to state 547 + + $default reduce using rule 482 (non_empty_array_pair_list) -state 438 +state 441 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - $default reduce using rule 347 (class_name) + $default reduce using rule 361 (class_name) -state 439 +state 442 - 430 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . + 444 static_member: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . - $default reduce using rule 430 (static_member) + $default reduce using rule 444 (static_member) -state 440 +state 443 - 368 ctor_arguments: '(' . function_call_parameter_list ')' + 382 ctor_arguments: '(' . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -14848,7 +15002,7 @@ state 440 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -14869,12 +15023,12 @@ state 440 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -14886,7 +15040,7 @@ state 440 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -14898,693 +15052,694 @@ state 440 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 544 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 548 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 441 +state 444 - 246 expr_without_variable: "new (T_NEW)" class_name_reference @41 ctor_arguments . + 251 new_expr: "new (T_NEW)" class_name_reference @41 ctor_arguments . - $default reduce using rule 246 (expr_without_variable) + $default reduce using rule 251 (new_expr) -state 442 +state 445 - 431 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . + 445 static_member: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects . - $default reduce using rule 431 (static_member) + $default reduce using rule 445 (static_member) -state 443 +state 446 - 356 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @60 . object_property @61 dynamic_class_name_variable_properties + 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 . object_property @64 dynamic_class_name_variable_properties - "identifier (T_STRING)" shift, and go to state 433 + "identifier (T_STRING)" shift, and go to state 436 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 535 - reference_variable go to state 379 - compound_variable go to state 111 - object_property go to state 545 - object_dim_list go to state 537 - variable_name go to state 538 - simple_indirect_reference go to state 381 + variable_without_objects go to state 539 + reference_variable go to state 382 + compound_variable go to state 112 + object_property go to state 549 + object_dim_list go to state 541 + variable_name go to state 542 + simple_indirect_reference go to state 384 -state 444 +state 447 - 363 exit_expr: '(' expr ')' . + 377 exit_expr: '(' expr ')' . - $default reduce using rule 363 (exit_expr) + $default reduce using rule 377 (exit_expr) -state 445 +state 448 38 unticked_statement: "if (T_IF)" '(' expr ')' . @5 statement @6 elseif_list else_single 41 | "if (T_IF)" '(' expr ')' . ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' - ':' shift, and go to state 546 + ':' shift, and go to state 550 $default reduce using rule 36 (@5) - @5 go to state 547 + @5 go to state 551 -state 446 +state 449 232 echo_expr_list: echo_expr_list ',' expr . - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 $default reduce using rule 232 (echo_expr_list) -state 447 +state 450 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" . '(' @12 expr ')' ';' - '(' shift, and go to state 548 + '(' shift, and go to state 552 -state 448 +state 451 44 unticked_statement: "while (T_WHILE)" '(' @9 expr . ')' @10 while_statement - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 549 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 553 -state 449 +state 452 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' . @13 for_expr ';' @14 for_expr ')' @15 for_statement $default reduce using rule 48 (@13) - @13 go to state 550 + @13 go to state 554 -state 450 +state 453 237 non_empty_for_expr: non_empty_for_expr ',' . @38 expr $default reduce using rule 236 (@38) - @38 go to state 551 + @38 go to state 555 -state 451 +state 454 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" . @19 variable foreach_optional_arg ')' @20 foreach_statement $default reduce using rule 70 (@19) - @19 go to state 552 + @19 go to state 556 -state 452 +state 455 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" . @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement $default reduce using rule 67 (@17) - @17 go to state 553 + @17 go to state 557 -state 453 +state 456 127 declare_list: "identifier (T_STRING)" . '=' static_scalar - '=' shift, and go to state 554 + '=' shift, and go to state 558 -state 454 +state 457 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list . ')' declare_statement 128 declare_list: declare_list . ',' "identifier (T_STRING)" '=' static_scalar - ',' shift, and go to state 555 - ')' shift, and go to state 556 + ',' shift, and go to state 559 + ')' shift, and go to state 560 -state 455 +state 458 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' . @16 switch_case_list $default reduce using rule 52 (@16) - @16 go to state 557 + @16 go to state 561 -state 456 +state 459 - 386 static_scalar: '+' . static_scalar + 400 static_scalar: '+' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 558 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 562 + static_class_constant go to state 470 -state 457 +state 460 - 387 static_scalar: '-' . static_scalar + 401 static_scalar: '-' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 559 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 563 + static_class_constant go to state 470 -state 458 +state 461 - 389 static_scalar: '[' . static_array_pair_list ']' + 403 static_scalar: '[' . static_array_pair_list ']' - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - $default reduce using rule 400 (static_array_pair_list) + $default reduce using rule 414 (static_array_pair_list) - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 560 - static_class_constant go to state 467 - static_array_pair_list go to state 561 - non_empty_static_array_pair_list go to state 562 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 564 + static_class_constant go to state 470 + static_array_pair_list go to state 565 + non_empty_static_array_pair_list go to state 566 -state 459 +state 462 - 388 static_scalar: "array (T_ARRAY)" . '(' static_array_pair_list ')' + 402 static_scalar: "array (T_ARRAY)" . '(' static_array_pair_list ')' - '(' shift, and go to state 563 + '(' shift, and go to state 567 -state 460 +state 463 - 380 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" - 381 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)" + 394 common_scalar: "heredoc start (T_START_HEREDOC)" . "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" "heredoc end (T_END_HEREDOC)" + 395 | "heredoc start (T_START_HEREDOC)" . "heredoc end (T_END_HEREDOC)" - "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 564 - "heredoc end (T_END_HEREDOC)" shift, and go to state 206 + "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" shift, and go to state 568 + "heredoc end (T_END_HEREDOC)" shift, and go to state 207 -state 461 +state 464 - 347 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - 384 static_scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 361 class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 398 static_scalar: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - "\\ (T_NS_SEPARATOR)" shift, and go to state 565 + "\\ (T_NS_SEPARATOR)" shift, and go to state 569 -state 462 +state 465 - 348 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name - 385 static_scalar: "\\ (T_NS_SEPARATOR)" . namespace_name + 362 class_name: "\\ (T_NS_SEPARATOR)" . namespace_name + 399 static_scalar: "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 566 + namespace_name go to state 570 -state 463 +state 466 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 346 class_name: namespace_name . - 383 static_scalar: namespace_name . + 360 class_name: namespace_name . + 397 static_scalar: namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 346 (class_name) - $default reduce using rule 383 (static_scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 360 (class_name) + $default reduce using rule 397 (static_scalar) -state 464 +state 467 - 391 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" + 405 static_class_constant: class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 567 + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 571 -state 465 +state 468 - 382 static_scalar: common_scalar . + 396 static_scalar: common_scalar . - $default reduce using rule 382 (static_scalar) + $default reduce using rule 396 (static_scalar) -state 466 +state 469 25 constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar . $default reduce using rule 25 (constant_declaration) -state 467 +state 470 - 390 static_scalar: static_class_constant . + 404 static_scalar: static_class_constant . - $default reduce using rule 390 (static_scalar) + $default reduce using rule 404 (static_scalar) -state 468 +state 471 27 inner_statement_list: inner_statement_list . @4 inner_statement 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list . '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches - '}' shift, and go to state 568 + '}' shift, and go to state 572 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 469 +state 472 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 569 + "identifier (T_STRING)" shift, and go to state 573 -state 470 +state 473 21 use_declaration: namespace_name "as (T_AS)" "identifier (T_STRING)" . $default reduce using rule 21 (use_declaration) -state 471 +state 474 18 use_declarations: use_declarations ',' use_declaration . $default reduce using rule 18 (use_declarations) -state 472 +state 475 178 global_var: '$' '{' expr . '}' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - '}' shift, and go to state 570 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + '}' shift, and go to state 574 -state 473 +state 476 174 global_var_list: global_var_list ',' global_var . $default reduce using rule 174 (global_var_list) -state 474 +state 477 182 static_var_list: "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 182 (static_var_list) -state 475 +state 478 179 static_var_list: static_var_list ',' "variable (T_VARIABLE)" . 180 | static_var_list ',' "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 571 + '=' shift, and go to state 575 $default reduce using rule 179 (static_var_list) -state 476 +state 479 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' . @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' . @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' - $default reduce using rule 320 (@51) + $default reduce using rule 334 (@54) - @51 go to state 572 + @54 go to state 576 -state 477 +state 480 92 unset_variables: unset_variables ',' . unset_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - unset_variable go to state 573 - function_call go to state 96 - class_name go to state 141 - variable go to state 339 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + unset_variable go to state 577 + function_call go to state 97 + class_name go to state 142 + variable go to state 341 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 478 +state 481 66 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' . ';' - ';' shift, and go to state 574 + ';' shift, and go to state 578 -state 479 +state 482 - 498 isset_variables: isset_variables ',' . @70 variable + 512 isset_variables: isset_variables ',' . @73 variable - $default reduce using rule 497 (@70) + $default reduce using rule 511 (@73) - @70 go to state 575 + @73 go to state 579 -state 480 +state 483 - 489 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' . + 503 internal_functions_in_yacc: "isset (T_ISSET)" '(' isset_variables ')' . - $default reduce using rule 489 (internal_functions_in_yacc) + $default reduce using rule 503 (internal_functions_in_yacc) -state 481 +state 484 - 490 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' . + 504 internal_functions_in_yacc: "empty (T_EMPTY)" '(' variable ')' . - $default reduce using rule 490 (internal_functions_in_yacc) + $default reduce using rule 504 (internal_functions_in_yacc) -state 482 +state 485 10 top_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' . $default reduce using rule 10 (top_statement) -state 483 +state 486 - 463 assignment_list_element: "list (T_LIST)" . '(' @68 assignment_list ')' + 477 assignment_list_element: "list (T_LIST)" . '(' @71 assignment_list ')' - '(' shift, and go to state 576 + '(' shift, and go to state 580 -state 484 +state 487 - 461 assignment_list_element: variable . + 475 assignment_list_element: variable . - $default reduce using rule 461 (assignment_list_element) + $default reduce using rule 475 (assignment_list_element) -state 485 +state 488 - 240 expr_without_variable: "list (T_LIST)" '(' @39 assignment_list . ')' '=' expr - 459 assignment_list: assignment_list . ',' assignment_list_element + 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list . ')' '=' expr + 473 assignment_list: assignment_list . ',' assignment_list_element - ',' shift, and go to state 577 - ')' shift, and go to state 578 + ',' shift, and go to state 581 + ')' shift, and go to state 582 -state 486 +state 489 - 460 assignment_list: assignment_list_element . + 474 assignment_list: assignment_list_element . - $default reduce using rule 460 (assignment_list) + $default reduce using rule 474 (assignment_list) -state 487 +state 490 - 314 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list ')' . + 328 expr_without_variable: "array (T_ARRAY)" '(' array_pair_list ')' . - $default reduce using rule 314 (expr_without_variable) + $default reduce using rule 328 (expr_without_variable) -state 488 +state 491 - 481 encaps_var: "variable (T_VARIABLE)" '[' @69 . encaps_var_offset ']' + 495 encaps_var: "variable (T_VARIABLE)" '[' @72 . encaps_var_offset ']' - "identifier (T_STRING)" shift, and go to state 579 - "variable (T_VARIABLE)" shift, and go to state 580 - "number (T_NUM_STRING)" shift, and go to state 581 + "identifier (T_STRING)" shift, and go to state 583 + "variable (T_VARIABLE)" shift, and go to state 584 + "number (T_NUM_STRING)" shift, and go to state 585 - encaps_var_offset go to state 582 + encaps_var_offset go to state 586 -state 489 +state 492 - 482 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" . + 496 encaps_var: "variable (T_VARIABLE)" "-> (T_OBJECT_OPERATOR)" "identifier (T_STRING)" . - $default reduce using rule 482 (encaps_var) + $default reduce using rule 496 (encaps_var) -state 490 +state 493 - 484 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}' + 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' . expr ']' '}' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -15612,12 +15767,12 @@ state 490 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -15629,7 +15784,7 @@ state 490 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -15639,76 +15794,77 @@ state 490 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 583 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 587 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 491 +state 494 - 483 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' . + 497 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" expr '}' . - $default reduce using rule 483 (encaps_var) + $default reduce using rule 497 (encaps_var) -state 492 +state 495 - 485 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' . + 499 encaps_var: "{$ (T_CURLY_OPEN)" variable '}' . - $default reduce using rule 485 (encaps_var) + $default reduce using rule 499 (encaps_var) -state 493 +state 496 - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' . @53 function_call_parameter_list ')' + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' . @56 function_call_parameter_list ')' - $default reduce using rule 331 (@53) + $default reduce using rule 345 (@56) - @53 go to state 584 + @56 go to state 588 -state 494 +state 497 3 top_statement_list: top_statement_list . @1 top_statement 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list . '}' - '}' shift, and go to state 585 + '}' shift, and go to state 589 $default reduce using rule 2 (@1) @1 go to state 4 -state 495 +state 498 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 . top_statement_list '}' $default reduce using rule 4 (top_statement_list) - top_statement_list go to state 586 + top_statement_list go to state 590 -state 496 +state 499 - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @54 . function_call_parameter_list ')' + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -15716,7 +15872,7 @@ state 496 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -15737,12 +15893,12 @@ state 496 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -15754,7 +15910,7 @@ state 496 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -15766,510 +15922,523 @@ state 496 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 587 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 591 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 497 +state 500 + + 310 expr_without_variable: '(' new_expr ')' @48 . instance_call + + '[' reduce using rule 248 (@40) + "-> (T_OBJECT_OPERATOR)" reduce using rule 248 (@40) + $default reduce using rule 247 (instance_call) + + instance_call go to state 592 + @40 go to state 593 + + +state 501 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" . '(' ')' ';' - '(' shift, and go to state 588 + '(' shift, and go to state 594 -state 498 +state 502 27 inner_statement_list: inner_statement_list @4 inner_statement . $default reduce using rule 27 (inner_statement_list) -state 499 +state 503 29 inner_statement: statement . $default reduce using rule 29 (inner_statement) -state 500 +state 504 30 inner_statement: function_declaration_statement . $default reduce using rule 30 (inner_statement) -state 501 +state 505 31 inner_statement: class_declaration_statement . $default reduce using rule 31 (inner_statement) -state 502 +state 506 - 446 compound_variable: '$' '{' expr '}' . + 460 compound_variable: '$' '{' expr '}' . - $default reduce using rule 446 (compound_variable) + $default reduce using rule 460 (compound_variable) -state 503 +state 507 170 non_empty_function_call_parameter_list: '&' . w_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - w_variable go to state 589 - variable go to state 290 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + w_variable go to state 595 + variable go to state 292 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 504 +state 508 - 330 function_call: namespace_name '(' @52 function_call_parameter_list . ')' + 344 function_call: namespace_name '(' @55 function_call_parameter_list . ')' - ')' shift, and go to state 590 + ')' shift, and go to state 596 -state 505 +state 509 166 function_call_parameter_list: non_empty_function_call_parameter_list . 171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list . ',' expr_without_variable 172 | non_empty_function_call_parameter_list . ',' variable 173 | non_empty_function_call_parameter_list . ',' '&' w_variable - ',' shift, and go to state 591 + ',' shift, and go to state 597 $default reduce using rule 166 (function_call_parameter_list) -state 506 +state 510 168 non_empty_function_call_parameter_list: expr_without_variable . - 409 expr: expr_without_variable . + 423 expr: expr_without_variable . ',' reduce using rule 168 (non_empty_function_call_parameter_list) ')' reduce using rule 168 (non_empty_function_call_parameter_list) - $default reduce using rule 409 (expr) + $default reduce using rule 423 (expr) -state 507 +state 511 169 non_empty_function_call_parameter_list: variable . - 241 expr_without_variable: variable . '=' expr - 242 | variable . '=' '&' variable - 244 | variable . '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments - 248 | variable . "+= (T_PLUS_EQUAL)" expr - 249 | variable . "-= (T_MINUS_EQUAL)" expr - 250 | variable . "*= (T_MUL_EQUAL)" expr - 251 | variable . "/= (T_DIV_EQUAL)" expr - 252 | variable . ".= (T_CONCAT_EQUAL)" expr - 253 | variable . "%= (T_MOD_EQUAL)" expr - 254 | variable . "&= (T_AND_EQUAL)" expr - 255 | variable . "|= (T_OR_EQUAL)" expr - 256 | variable . "^= (T_XOR_EQUAL)" expr - 257 | variable . "<<= (T_SL_EQUAL)" expr - 258 | variable . ">>= (T_SR_EQUAL)" expr - 410 r_variable: variable . - 412 rw_variable: variable . - - '=' shift, and go to state 262 - ">>= (T_SR_EQUAL)" shift, and go to state 263 - "<<= (T_SL_EQUAL)" shift, and go to state 264 - "^= (T_XOR_EQUAL)" shift, and go to state 265 - "|= (T_OR_EQUAL)" shift, and go to state 266 - "&= (T_AND_EQUAL)" shift, and go to state 267 - "%= (T_MOD_EQUAL)" shift, and go to state 268 - ".= (T_CONCAT_EQUAL)" shift, and go to state 269 - "/= (T_DIV_EQUAL)" shift, and go to state 270 - "*= (T_MUL_EQUAL)" shift, and go to state 271 - "-= (T_MINUS_EQUAL)" shift, and go to state 272 - "+= (T_PLUS_EQUAL)" shift, and go to state 273 + 254 expr_without_variable: variable . '=' expr + 255 | variable . '=' '&' variable + 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments + 259 | variable . "+= (T_PLUS_EQUAL)" expr + 260 | variable . "-= (T_MINUS_EQUAL)" expr + 261 | variable . "*= (T_MUL_EQUAL)" expr + 262 | variable . "/= (T_DIV_EQUAL)" expr + 263 | variable . ".= (T_CONCAT_EQUAL)" expr + 264 | variable . "%= (T_MOD_EQUAL)" expr + 265 | variable . "&= (T_AND_EQUAL)" expr + 266 | variable . "|= (T_OR_EQUAL)" expr + 267 | variable . "^= (T_XOR_EQUAL)" expr + 268 | variable . "<<= (T_SL_EQUAL)" expr + 269 | variable . ">>= (T_SR_EQUAL)" expr + 424 r_variable: variable . + 426 rw_variable: variable . + + '=' shift, and go to state 264 + ">>= (T_SR_EQUAL)" shift, and go to state 265 + "<<= (T_SL_EQUAL)" shift, and go to state 266 + "^= (T_XOR_EQUAL)" shift, and go to state 267 + "|= (T_OR_EQUAL)" shift, and go to state 268 + "&= (T_AND_EQUAL)" shift, and go to state 269 + "%= (T_MOD_EQUAL)" shift, and go to state 270 + ".= (T_CONCAT_EQUAL)" shift, and go to state 271 + "/= (T_DIV_EQUAL)" shift, and go to state 272 + "*= (T_MUL_EQUAL)" shift, and go to state 273 + "-= (T_MINUS_EQUAL)" shift, and go to state 274 + "+= (T_PLUS_EQUAL)" shift, and go to state 275 ',' reduce using rule 169 (non_empty_function_call_parameter_list) - "-- (T_DEC)" reduce using rule 412 (rw_variable) - "++ (T_INC)" reduce using rule 412 (rw_variable) + "-- (T_DEC)" reduce using rule 426 (rw_variable) + "++ (T_INC)" reduce using rule 426 (rw_variable) ')' reduce using rule 169 (non_empty_function_call_parameter_list) - $default reduce using rule 410 (r_variable) + $default reduce using rule 424 (r_variable) -state 508 +state 512 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 592 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 598 + static_class_constant go to state 470 -state 509 +state 513 - 350 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name + 364 fully_qualified_class_name: "namespace (T_NAMESPACE)" . "\\ (T_NS_SEPARATOR)" namespace_name - "\\ (T_NS_SEPARATOR)" shift, and go to state 593 + "\\ (T_NS_SEPARATOR)" shift, and go to state 599 -state 510 +state 514 - 351 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name + 365 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 594 + namespace_name go to state 600 -state 511 +state 515 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 349 fully_qualified_class_name: namespace_name . + 363 fully_qualified_class_name: namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - $default reduce using rule 349 (fully_qualified_class_name) + $default reduce using rule 363 (fully_qualified_class_name) -state 512 +state 516 109 extends_from: "extends (T_EXTENDS)" fully_qualified_class_name . $default reduce using rule 109 (extends_from) -state 513 +state 517 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 . implements_list '{' class_statement_list '}' - "implements (T_IMPLEMENTS)" shift, and go to state 595 + "implements (T_IMPLEMENTS)" shift, and go to state 601 $default reduce using rule 113 (implements_list) - implements_list go to state 596 + implements_list go to state 602 -state 514 +state 518 112 interface_extends_list: "extends (T_EXTENDS)" . interface_list - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - interface_list go to state 597 - fully_qualified_class_name go to state 598 + namespace_name go to state 515 + interface_list go to state 603 + fully_qualified_class_name go to state 604 -state 515 +state 519 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list . '{' class_statement_list '}' - '{' shift, and go to state 599 + '{' shift, and go to state 605 -state 516 +state 520 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 . '(' parameter_list ')' '{' inner_statement_list '}' - '(' shift, and go to state 600 + '(' shift, and go to state 606 -state 517 +state 521 - 319 expr_without_variable: function is_reference '(' @50 . parameter_list ')' lexical_vars '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference '(' @53 . parameter_list ')' lexical_vars '{' inner_statement_list '}' - "identifier (T_STRING)" shift, and go to state 115 - "array (T_ARRAY)" shift, and go to state 601 - "callable (T_CALLABLE)" shift, and go to state 602 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "array (T_ARRAY)" shift, and go to state 607 + "callable (T_CALLABLE)" shift, and go to state 608 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 ')' reduce using rule 153 (parameter_list) $default reduce using rule 162 (optional_class_type) - namespace_name go to state 511 - parameter_list go to state 603 - non_empty_parameter_list go to state 604 - optional_class_type go to state 605 - fully_qualified_class_name go to state 606 + namespace_name go to state 515 + parameter_list go to state 609 + non_empty_parameter_list go to state 610 + optional_class_type go to state 611 + fully_qualified_class_name go to state 612 -state 518 +state 522 - 435 array_function_dereference: function_call @66 '[' dim_offset . ']' + 449 array_function_dereference: function_call @69 '[' dim_offset . ']' - ']' shift, and go to state 607 + ']' shift, and go to state 613 -state 519 +state 523 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 456 variable_name: '{' expr . '}' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - '}' shift, and go to state 608 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 470 variable_name: '{' expr . '}' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + '}' shift, and go to state 614 -state 520 +state 524 - 338 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @56 function_call_parameter_list ')' + 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @59 function_call_parameter_list ')' - $default reduce using rule 337 (@56) + $default reduce using rule 351 (@59) - @56 go to state 609 + @59 go to state 615 -state 521 +state 525 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @55 function_call_parameter_list ')' + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @58 function_call_parameter_list ')' - $default reduce using rule 335 (@55) + $default reduce using rule 349 (@58) - @55 go to state 610 + @58 go to state 616 -state 522 +state 526 - 429 variable_without_objects: simple_indirect_reference reference_variable . - 442 reference_variable: reference_variable . '[' dim_offset ']' - 443 | reference_variable . '{' expr '}' + 443 variable_without_objects: simple_indirect_reference reference_variable . + 456 reference_variable: reference_variable . '[' dim_offset ']' + 457 | reference_variable . '{' expr '}' - '[' shift, and go to state 278 - '{' shift, and go to state 279 + '[' shift, and go to state 280 + '{' shift, and go to state 281 - $default reduce using rule 429 (variable_without_objects) + $default reduce using rule 443 (variable_without_objects) -state 523 +state 527 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 268 | expr "or (T_LOGICAL_OR)" @44 expr . - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 279 | expr "or (T_LOGICAL_OR)" @46 expr . + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 268 (expr_without_variable) + $default reduce using rule 279 (expr_without_variable) -state 524 +state 528 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 270 | expr "and (T_LOGICAL_AND)" @45 expr . - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 281 | expr "and (T_LOGICAL_AND)" @47 expr . + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 270 (expr_without_variable) + $default reduce using rule 281 (expr_without_variable) -state 525 +state 529 - 301 expr_without_variable: expr '?' ':' @48 . expr + 315 expr_without_variable: expr '?' ':' @51 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -16297,12 +16466,12 @@ state 525 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -16314,7 +16483,7 @@ state 525 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -16324,331 +16493,332 @@ state 525 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 611 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 617 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 526 +state 530 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 299 | expr '?' @46 expr . ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - ':' shift, and go to state 612 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 313 | expr '?' @49 expr . ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + ':' shift, and go to state 618 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 -state 527 +state 531 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 264 | expr "|| (T_BOOLEAN_OR)" @42 expr . - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 275 | expr "|| (T_BOOLEAN_OR)" @44 expr . + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 264 (expr_without_variable) + $default reduce using rule 275 (expr_without_variable) -state 528 +state 532 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 266 | expr "&& (T_BOOLEAN_AND)" @43 expr . - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 277 | expr "&& (T_BOOLEAN_AND)" @45 expr . + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 266 (expr_without_variable) + $default reduce using rule 277 (expr_without_variable) -state 529 +state 533 - 244 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference @40 ctor_arguments + 257 expr_without_variable: variable '=' '&' "new (T_NEW)" . class_name_reference @43 ctor_arguments - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 151 - "\\ (T_NS_SEPARATOR)" shift, and go to state 152 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 152 + "\\ (T_NS_SEPARATOR)" shift, and go to state 153 '$' shift, and go to state 80 - namespace_name go to state 153 - class_name go to state 154 - class_name_reference go to state 613 - dynamic_class_name_reference go to state 156 - static_member go to state 105 - variable_class_name go to state 157 - base_variable go to state 158 - reference_variable go to state 159 - compound_variable go to state 111 - simple_indirect_reference go to state 160 + namespace_name go to state 154 + class_name go to state 155 + class_name_reference go to state 619 + dynamic_class_name_reference go to state 157 + static_member go to state 106 + variable_class_name go to state 158 + base_variable go to state 159 + reference_variable go to state 160 + compound_variable go to state 112 + simple_indirect_reference go to state 161 -state 530 +state 534 - 242 expr_without_variable: variable '=' '&' variable . + 255 expr_without_variable: variable '=' '&' variable . - $default reduce using rule 242 (expr_without_variable) + $default reduce using rule 255 (expr_without_variable) -state 531 +state 535 - 344 function_call: variable_without_objects '(' @59 function_call_parameter_list . ')' + 358 function_call: variable_without_objects '(' @62 function_call_parameter_list . ')' - ')' shift, and go to state 614 + ')' shift, and go to state 620 -state 532 +state 536 - 342 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @58 function_call_parameter_list ')' + 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' . @61 function_call_parameter_list ')' - $default reduce using rule 341 (@58) + $default reduce using rule 355 (@61) - @58 go to state 615 + @61 go to state 621 -state 533 +state 537 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @57 function_call_parameter_list ')' + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' . @60 function_call_parameter_list ')' - $default reduce using rule 339 (@57) + $default reduce using rule 353 (@60) - @57 go to state 616 + @60 go to state 622 -state 534 +state 538 - 433 array_function_dereference: array_function_dereference '[' dim_offset ']' . + 447 array_function_dereference: array_function_dereference '[' dim_offset ']' . - $default reduce using rule 433 (array_function_dereference) + $default reduce using rule 447 (array_function_dereference) -state 535 +state 539 - 451 object_property: variable_without_objects . @67 + 465 object_property: variable_without_objects . @70 - $default reduce using rule 450 (@67) + $default reduce using rule 464 (@70) - @67 go to state 617 + @70 go to state 623 -state 536 +state 540 - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @62 object_property . @63 method_or_not variable_properties + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property . @66 method_or_not variable_properties - $default reduce using rule 414 (@63) + $default reduce using rule 428 (@66) - @63 go to state 618 + @66 go to state 624 -state 537 +state 541 - 449 object_property: object_dim_list . - 452 object_dim_list: object_dim_list . '[' dim_offset ']' - 453 | object_dim_list . '{' expr '}' + 463 object_property: object_dim_list . + 466 object_dim_list: object_dim_list . '[' dim_offset ']' + 467 | object_dim_list . '{' expr '}' - '[' shift, and go to state 619 - '{' shift, and go to state 620 + '[' shift, and go to state 625 + '{' shift, and go to state 626 - $default reduce using rule 449 (object_property) + $default reduce using rule 463 (object_property) -state 538 +state 542 - 454 object_dim_list: variable_name . + 468 object_dim_list: variable_name . - $default reduce using rule 454 (object_dim_list) + $default reduce using rule 468 (object_dim_list) -state 539 +state 543 - 442 reference_variable: reference_variable '[' dim_offset ']' . + 456 reference_variable: reference_variable '[' dim_offset ']' . - $default reduce using rule 442 (reference_variable) + $default reduce using rule 456 (reference_variable) -state 540 +state 544 - 443 reference_variable: reference_variable '{' expr '}' . + 457 reference_variable: reference_variable '{' expr '}' . - $default reduce using rule 443 (reference_variable) + $default reduce using rule 457 (reference_variable) -state 541 +state 545 - 473 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable . + 487 non_empty_array_pair_list: expr "=> (T_DOUBLE_ARROW)" '&' w_variable . - $default reduce using rule 473 (non_empty_array_pair_list) + $default reduce using rule 487 (non_empty_array_pair_list) -state 542 +state 546 - 472 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable . + 486 non_empty_array_pair_list: non_empty_array_pair_list ',' '&' w_variable . - $default reduce using rule 472 (non_empty_array_pair_list) + $default reduce using rule 486 (non_empty_array_pair_list) -state 543 +state 547 - 467 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr - 471 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . '&' w_variable + 481 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . expr + 485 | non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" . '&' w_variable "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -16656,7 +16826,7 @@ state 543 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 621 + '&' shift, and go to state 627 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -16677,12 +16847,12 @@ state 543 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -16694,7 +16864,7 @@ state 543 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -16704,55 +16874,56 @@ state 543 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 622 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 628 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 544 +state 548 - 368 ctor_arguments: '(' function_call_parameter_list . ')' + 382 ctor_arguments: '(' function_call_parameter_list . ')' - ')' shift, and go to state 623 + ')' shift, and go to state 629 -state 545 +state 549 - 356 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @60 object_property . @61 dynamic_class_name_variable_properties + 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property . @64 dynamic_class_name_variable_properties - $default reduce using rule 355 (@61) + $default reduce using rule 369 (@64) - @61 go to state 624 + @64 go to state 630 -state 546 +state 550 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' . @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' $default reduce using rule 39 (@7) - @7 go to state 625 + @7 go to state 631 -state 547 +state 551 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 . statement @6 elseif_list else_single @@ -16816,7 +16987,7 @@ state 547 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -16828,50 +16999,51 @@ state 547 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 626 + statement go to state 632 unticked_statement go to state 87 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 548 +state 552 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' . @12 expr ')' ';' $default reduce using rule 46 (@12) - @12 go to state 627 + @12 go to state 633 -state 549 +state 553 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' . @10 while_statement $default reduce using rule 43 (@10) - @10 go to state 628 + @10 go to state 634 -state 550 +state 554 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 . for_expr ';' @14 for_expr ')' @15 for_statement @@ -16901,12 +17073,12 @@ state 550 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -16918,7 +17090,7 @@ state 550 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -16930,32 +17102,33 @@ state 550 $default reduce using rule 234 (for_expr) namespace_name go to state 83 - for_expr go to state 629 - non_empty_for_expr go to state 310 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 311 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + for_expr go to state 635 + non_empty_for_expr go to state 312 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 313 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 551 +state 555 237 non_empty_for_expr: non_empty_for_expr ',' @38 . expr @@ -16985,12 +17158,12 @@ state 551 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -17002,7 +17175,7 @@ state 551 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -17012,123 +17185,124 @@ state 551 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 630 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 636 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 552 +state 556 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 . variable foreach_optional_arg ')' @20 foreach_statement - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 631 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 637 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 553 +state 557 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 . foreach_variable foreach_optional_arg ')' @18 foreach_statement - '&' shift, and go to state 632 - "identifier (T_STRING)" shift, and go to state 115 + '&' shift, and go to state 638 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - foreach_variable go to state 633 - function_call go to state 96 - class_name go to state 141 - variable go to state 634 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + foreach_variable go to state 639 + function_call go to state 97 + class_name go to state 142 + variable go to state 640 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 554 +state 558 127 declare_list: "identifier (T_STRING)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 635 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 641 + static_class_constant go to state 470 -state 555 +state 559 128 declare_list: declare_list ',' . "identifier (T_STRING)" '=' static_scalar - "identifier (T_STRING)" shift, and go to state 636 + "identifier (T_STRING)" shift, and go to state 642 -state 556 +state 560 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' . declare_statement @@ -17138,7 +17312,7 @@ state 556 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - ':' shift, and go to state 637 + ':' shift, and go to state 643 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -17193,7 +17367,7 @@ state 556 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -17205,408 +17379,409 @@ state 556 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 638 + statement go to state 644 unticked_statement go to state 87 - declare_statement go to state 639 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + declare_statement go to state 645 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 557 +state 561 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 . switch_case_list - ':' shift, and go to state 640 - '{' shift, and go to state 641 + ':' shift, and go to state 646 + '{' shift, and go to state 647 - switch_case_list go to state 642 + switch_case_list go to state 648 -state 558 +state 562 - 386 static_scalar: '+' static_scalar . + 400 static_scalar: '+' static_scalar . - $default reduce using rule 386 (static_scalar) + $default reduce using rule 400 (static_scalar) -state 559 +state 563 - 387 static_scalar: '-' static_scalar . + 401 static_scalar: '-' static_scalar . - $default reduce using rule 387 (static_scalar) + $default reduce using rule 401 (static_scalar) -state 560 +state 564 - 406 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar - 407 | static_scalar . + 420 non_empty_static_array_pair_list: static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar + 421 | static_scalar . - "=> (T_DOUBLE_ARROW)" shift, and go to state 643 + "=> (T_DOUBLE_ARROW)" shift, and go to state 649 - $default reduce using rule 407 (non_empty_static_array_pair_list) + $default reduce using rule 421 (non_empty_static_array_pair_list) -state 561 +state 565 - 389 static_scalar: '[' static_array_pair_list . ']' + 403 static_scalar: '[' static_array_pair_list . ']' - ']' shift, and go to state 644 + ']' shift, and go to state 650 -state 562 +state 566 - 401 static_array_pair_list: non_empty_static_array_pair_list . possible_comma - 404 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar - 405 | non_empty_static_array_pair_list . ',' static_scalar + 415 static_array_pair_list: non_empty_static_array_pair_list . possible_comma + 418 non_empty_static_array_pair_list: non_empty_static_array_pair_list . ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar + 419 | non_empty_static_array_pair_list . ',' static_scalar - ',' shift, and go to state 645 + ',' shift, and go to state 651 - $default reduce using rule 402 (possible_comma) + $default reduce using rule 416 (possible_comma) - possible_comma go to state 646 + possible_comma go to state 652 -state 563 +state 567 - 388 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')' + 402 static_scalar: "array (T_ARRAY)" '(' . static_array_pair_list ')' - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - $default reduce using rule 400 (static_array_pair_list) + $default reduce using rule 414 (static_array_pair_list) - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 560 - static_class_constant go to state 467 - static_array_pair_list go to state 647 - non_empty_static_array_pair_list go to state 562 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 564 + static_class_constant go to state 470 + static_array_pair_list go to state 653 + non_empty_static_array_pair_list go to state 566 -state 564 +state 568 - 380 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)" + 394 common_scalar: "heredoc start (T_START_HEREDOC)" "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" . "heredoc end (T_END_HEREDOC)" - "heredoc end (T_END_HEREDOC)" shift, and go to state 348 + "heredoc end (T_END_HEREDOC)" shift, and go to state 350 -state 565 +state 569 - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - 384 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 398 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 648 + namespace_name go to state 654 -state 566 +state 570 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 348 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . - 385 static_scalar: "\\ (T_NS_SEPARATOR)" namespace_name . + 362 class_name: "\\ (T_NS_SEPARATOR)" namespace_name . + 399 static_scalar: "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 348 (class_name) - $default reduce using rule 385 (static_scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 362 (class_name) + $default reduce using rule 399 (static_scalar) -state 567 +state 571 - 391 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" + 405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 649 + "identifier (T_STRING)" shift, and go to state 655 -state 568 +state 572 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' . "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches - "catch (T_CATCH)" shift, and go to state 650 + "catch (T_CATCH)" shift, and go to state 656 -state 569 +state 573 23 use_declaration: "\\ (T_NS_SEPARATOR)" namespace_name "as (T_AS)" "identifier (T_STRING)" . $default reduce using rule 23 (use_declaration) -state 570 +state 574 178 global_var: '$' '{' expr '}' . $default reduce using rule 178 (global_var) -state 571 +state 575 180 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 651 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 657 + static_class_constant go to state 470 -state 572 +state 576 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 . parameter_list ')' lexical_vars '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 . parameter_list ')' lexical_vars '{' inner_statement_list '}' - "identifier (T_STRING)" shift, and go to state 115 - "array (T_ARRAY)" shift, and go to state 601 - "callable (T_CALLABLE)" shift, and go to state 602 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "array (T_ARRAY)" shift, and go to state 607 + "callable (T_CALLABLE)" shift, and go to state 608 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 ')' reduce using rule 153 (parameter_list) $default reduce using rule 162 (optional_class_type) - namespace_name go to state 511 - parameter_list go to state 652 - non_empty_parameter_list go to state 604 - optional_class_type go to state 605 - fully_qualified_class_name go to state 606 + namespace_name go to state 515 + parameter_list go to state 658 + non_empty_parameter_list go to state 610 + optional_class_type go to state 611 + fully_qualified_class_name go to state 612 -state 573 +state 577 92 unset_variables: unset_variables ',' unset_variable . $default reduce using rule 92 (unset_variables) -state 574 +state 578 66 unticked_statement: "unset (T_UNSET)" '(' unset_variables ')' ';' . $default reduce using rule 66 (unticked_statement) -state 575 +state 579 - 498 isset_variables: isset_variables ',' @70 . variable + 512 isset_variables: isset_variables ',' @73 . variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 653 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 659 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 576 +state 580 - 463 assignment_list_element: "list (T_LIST)" '(' . @68 assignment_list ')' + 477 assignment_list_element: "list (T_LIST)" '(' . @71 assignment_list ')' - $default reduce using rule 462 (@68) + $default reduce using rule 476 (@71) - @68 go to state 654 + @71 go to state 660 -state 577 +state 581 - 459 assignment_list: assignment_list ',' . assignment_list_element + 473 assignment_list: assignment_list ',' . assignment_list_element - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "list (T_LIST)" shift, and go to state 483 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "list (T_LIST)" shift, and go to state 486 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - $default reduce using rule 464 (assignment_list_element) + $default reduce using rule 478 (assignment_list_element) - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 484 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - assignment_list_element go to state 655 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 487 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + assignment_list_element go to state 661 -state 578 +state 582 - 240 expr_without_variable: "list (T_LIST)" '(' @39 assignment_list ')' . '=' expr + 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' . '=' expr - '=' shift, and go to state 656 + '=' shift, and go to state 662 -state 579 +state 583 - 486 encaps_var_offset: "identifier (T_STRING)" . + 500 encaps_var_offset: "identifier (T_STRING)" . - $default reduce using rule 486 (encaps_var_offset) + $default reduce using rule 500 (encaps_var_offset) -state 580 +state 584 - 488 encaps_var_offset: "variable (T_VARIABLE)" . + 502 encaps_var_offset: "variable (T_VARIABLE)" . - $default reduce using rule 488 (encaps_var_offset) + $default reduce using rule 502 (encaps_var_offset) -state 581 +state 585 - 487 encaps_var_offset: "number (T_NUM_STRING)" . + 501 encaps_var_offset: "number (T_NUM_STRING)" . - $default reduce using rule 487 (encaps_var_offset) + $default reduce using rule 501 (encaps_var_offset) -state 582 +state 586 - 481 encaps_var: "variable (T_VARIABLE)" '[' @69 encaps_var_offset . ']' + 495 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset . ']' - ']' shift, and go to state 657 + ']' shift, and go to state 663 -state 583 +state 587 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 484 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ']' shift, and go to state 658 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr . ']' '}' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ']' shift, and go to state 664 -state 584 +state 588 - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 . function_call_parameter_list ')' + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -17614,7 +17789,7 @@ state 584 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -17635,12 +17810,12 @@ state 584 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -17652,7 +17827,7 @@ state 584 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -17664,79 +17839,100 @@ state 584 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 659 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 665 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 585 +state 589 15 top_statement: "namespace (T_NAMESPACE)" '{' @3 top_statement_list '}' . $default reduce using rule 15 (top_statement) -state 586 +state 590 3 top_statement_list: top_statement_list . @1 top_statement 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list . '}' - '}' shift, and go to state 660 + '}' shift, and go to state 666 $default reduce using rule 2 (@1) @1 go to state 4 -state 587 +state 591 - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @54 function_call_parameter_list . ')' + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list . ')' - ')' shift, and go to state 661 + ')' shift, and go to state 667 -state 588 +state 592 + + 310 expr_without_variable: '(' new_expr ')' @48 instance_call . + + $default reduce using rule 310 (expr_without_variable) + + +state 593 + + 249 instance_call: @40 . chaining_instance_call + + '[' shift, and go to state 668 + "-> (T_OBJECT_OPERATOR)" shift, and go to state 669 + + chaining_method_or_property go to state 670 + chaining_dereference go to state 671 + chaining_instance_call go to state 672 + variable_property go to state 673 + + +state 594 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' . ')' ';' - ')' shift, and go to state 662 + ')' shift, and go to state 674 -state 589 +state 595 170 non_empty_function_call_parameter_list: '&' w_variable . $default reduce using rule 170 (non_empty_function_call_parameter_list) -state 590 +state 596 - 330 function_call: namespace_name '(' @52 function_call_parameter_list ')' . + 344 function_call: namespace_name '(' @55 function_call_parameter_list ')' . - $default reduce using rule 330 (function_call) + $default reduce using rule 344 (function_call) -state 591 +state 597 171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' . expr_without_variable 172 | non_empty_function_call_parameter_list ',' . variable @@ -17748,7 +17944,7 @@ state 591 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 663 + '&' shift, and go to state 675 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -17769,12 +17965,12 @@ state 591 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -17786,7 +17982,7 @@ state 591 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -17796,143 +17992,144 @@ state 591 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 664 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 665 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 676 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 677 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 592 +state 598 24 constant_declaration: constant_declaration ',' "identifier (T_STRING)" '=' static_scalar . $default reduce using rule 24 (constant_declaration) -state 593 +state 599 - 350 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name + 364 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" . namespace_name - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 - namespace_name go to state 666 + namespace_name go to state 678 -state 594 +state 600 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 351 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name . + 365 fully_qualified_class_name: "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - $default reduce using rule 351 (fully_qualified_class_name) + $default reduce using rule 365 (fully_qualified_class_name) -state 595 +state 601 114 implements_list: "implements (T_IMPLEMENTS)" . interface_list - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - interface_list go to state 667 - fully_qualified_class_name go to state 598 + namespace_name go to state 515 + interface_list go to state 679 + fully_qualified_class_name go to state 604 -state 596 +state 602 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list . '{' class_statement_list '}' - '{' shift, and go to state 668 + '{' shift, and go to state 680 -state 597 +state 603 112 interface_extends_list: "extends (T_EXTENDS)" interface_list . 116 interface_list: interface_list . ',' fully_qualified_class_name - ',' shift, and go to state 669 + ',' shift, and go to state 681 $default reduce using rule 112 (interface_extends_list) -state 598 +state 604 115 interface_list: fully_qualified_class_name . $default reduce using rule 115 (interface_list) -state 599 +state 605 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' . class_statement_list '}' $default reduce using rule 184 (class_statement_list) - class_statement_list go to state 670 + class_statement_list go to state 682 -state 600 +state 606 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' . parameter_list ')' '{' inner_statement_list '}' - "identifier (T_STRING)" shift, and go to state 115 - "array (T_ARRAY)" shift, and go to state 601 - "callable (T_CALLABLE)" shift, and go to state 602 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "array (T_ARRAY)" shift, and go to state 607 + "callable (T_CALLABLE)" shift, and go to state 608 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 ')' reduce using rule 153 (parameter_list) $default reduce using rule 162 (optional_class_type) - namespace_name go to state 511 - parameter_list go to state 671 - non_empty_parameter_list go to state 604 - optional_class_type go to state 605 - fully_qualified_class_name go to state 606 + namespace_name go to state 515 + parameter_list go to state 683 + non_empty_parameter_list go to state 610 + optional_class_type go to state 611 + fully_qualified_class_name go to state 612 -state 601 +state 607 163 optional_class_type: "array (T_ARRAY)" . $default reduce using rule 163 (optional_class_type) -state 602 +state 608 164 optional_class_type: "callable (T_CALLABLE)" . $default reduce using rule 164 (optional_class_type) -state 603 +state 609 - 319 expr_without_variable: function is_reference '(' @50 parameter_list . ')' lexical_vars '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference '(' @53 parameter_list . ')' lexical_vars '{' inner_statement_list '}' - ')' shift, and go to state 672 + ')' shift, and go to state 684 -state 604 +state 610 152 parameter_list: non_empty_parameter_list . 158 non_empty_parameter_list: non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)" @@ -17940,46 +18137,46 @@ state 604 160 | non_empty_parameter_list . ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar 161 | non_empty_parameter_list . ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar - ',' shift, and go to state 673 + ',' shift, and go to state 685 $default reduce using rule 152 (parameter_list) -state 605 +state 611 154 non_empty_parameter_list: optional_class_type . "variable (T_VARIABLE)" 155 | optional_class_type . '&' "variable (T_VARIABLE)" 156 | optional_class_type . '&' "variable (T_VARIABLE)" '=' static_scalar 157 | optional_class_type . "variable (T_VARIABLE)" '=' static_scalar - '&' shift, and go to state 674 - "variable (T_VARIABLE)" shift, and go to state 675 + '&' shift, and go to state 686 + "variable (T_VARIABLE)" shift, and go to state 687 -state 606 +state 612 165 optional_class_type: fully_qualified_class_name . $default reduce using rule 165 (optional_class_type) -state 607 +state 613 - 435 array_function_dereference: function_call @66 '[' dim_offset ']' . + 449 array_function_dereference: function_call @69 '[' dim_offset ']' . - $default reduce using rule 435 (array_function_dereference) + $default reduce using rule 449 (array_function_dereference) -state 608 +state 614 - 456 variable_name: '{' expr '}' . + 470 variable_name: '{' expr '}' . - $default reduce using rule 456 (variable_name) + $default reduce using rule 470 (variable_name) -state 609 +state 615 - 338 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @56 . function_call_parameter_list ')' + 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -17987,7 +18184,7 @@ state 609 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -18008,12 +18205,12 @@ state 609 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18025,7 +18222,7 @@ state 609 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18037,34 +18234,35 @@ state 609 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 676 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 688 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 610 +state 616 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @55 . function_call_parameter_list ')' + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -18072,7 +18270,7 @@ state 610 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -18093,12 +18291,12 @@ state 610 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18110,7 +18308,7 @@ state 610 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18122,116 +18320,117 @@ state 610 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 677 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 689 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 611 +state 617 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 301 | expr '?' ':' @48 expr . - - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 315 | expr '?' ':' @51 expr . + + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 301 (expr_without_variable) + $default reduce using rule 315 (expr_without_variable) -state 612 +state 618 - 299 expr_without_variable: expr '?' @46 expr ':' . @47 expr + 313 expr_without_variable: expr '?' @49 expr ':' . @50 expr - $default reduce using rule 298 (@47) + $default reduce using rule 312 (@50) - @47 go to state 678 + @50 go to state 690 -state 613 +state 619 - 244 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . @40 ctor_arguments + 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference . @43 ctor_arguments - $default reduce using rule 243 (@40) + $default reduce using rule 256 (@43) - @40 go to state 679 + @43 go to state 691 -state 614 +state 620 - 344 function_call: variable_without_objects '(' @59 function_call_parameter_list ')' . + 358 function_call: variable_without_objects '(' @62 function_call_parameter_list ')' . - $default reduce using rule 344 (function_call) + $default reduce using rule 358 (function_call) -state 615 +state 621 - 342 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @58 . function_call_parameter_list ')' + 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -18239,7 +18438,7 @@ state 615 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -18260,12 +18459,12 @@ state 615 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18277,7 +18476,7 @@ state 615 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18289,34 +18488,35 @@ state 615 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 680 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 692 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 616 +state 622 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @57 . function_call_parameter_list ')' + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -18324,7 +18524,7 @@ state 616 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -18345,12 +18545,12 @@ state 616 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18362,7 +18562,7 @@ state 616 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18374,54 +18574,55 @@ state 616 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 681 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 693 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 617 +state 623 - 451 object_property: variable_without_objects @67 . + 465 object_property: variable_without_objects @70 . - $default reduce using rule 451 (object_property) + $default reduce using rule 465 (object_property) -state 618 +state 624 - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @62 object_property @63 . method_or_not variable_properties + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 . method_or_not variable_properties - '(' shift, and go to state 682 + '(' shift, and go to state 694 - $default reduce using rule 427 (method_or_not) + $default reduce using rule 441 (method_or_not) - array_method_dereference go to state 683 - method go to state 684 - method_or_not go to state 685 + array_method_dereference go to state 695 + method go to state 696 + method_or_not go to state 697 -state 619 +state 625 - 452 object_dim_list: object_dim_list '[' . dim_offset ']' + 466 object_dim_list: object_dim_list '[' . dim_offset ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -18449,12 +18650,12 @@ state 619 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18466,7 +18667,7 @@ state 619 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18475,36 +18676,37 @@ state 619 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 447 (dim_offset) + $default reduce using rule 461 (dim_offset) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 426 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - dim_offset go to state 686 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 698 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 620 +state 626 - 453 object_dim_list: object_dim_list '{' . expr '}' + 467 object_dim_list: object_dim_list '{' . expr '}' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -18532,12 +18734,12 @@ state 620 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18549,7 +18751,7 @@ state 620 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18559,152 +18761,153 @@ state 620 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 687 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 699 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 621 +state 627 - 471 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable + 485 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' . w_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - w_variable go to state 688 - variable go to state 290 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + w_variable go to state 700 + variable go to state 292 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 622 +state 628 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 467 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr . - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 467 (non_empty_array_pair_list) + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 481 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" expr . + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + + $default reduce using rule 481 (non_empty_array_pair_list) -state 623 +state 629 - 368 ctor_arguments: '(' function_call_parameter_list ')' . + 382 ctor_arguments: '(' function_call_parameter_list ')' . - $default reduce using rule 368 (ctor_arguments) + $default reduce using rule 382 (ctor_arguments) -state 624 +state 630 - 356 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @60 object_property @61 . dynamic_class_name_variable_properties + 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 . dynamic_class_name_variable_properties - $default reduce using rule 359 (dynamic_class_name_variable_properties) + $default reduce using rule 373 (dynamic_class_name_variable_properties) - dynamic_class_name_variable_properties go to state 689 + dynamic_class_name_variable_properties go to state 701 -state 625 +state 631 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 . inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 690 + inner_statement_list go to state 702 -state 626 +state 632 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement . @6 elseif_list else_single $default reduce using rule 37 (@6) - @6 go to state 691 + @6 go to state 703 -state 627 +state 633 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 . expr ')' ';' @@ -18734,12 +18937,12 @@ state 627 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -18751,7 +18954,7 @@ state 627 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18761,30 +18964,31 @@ state 627 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 692 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 704 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 628 +state 634 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 . while_statement @@ -18794,7 +18998,7 @@ state 628 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - ':' shift, and go to state 693 + ':' shift, and go to state 705 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -18849,7 +19053,7 @@ state 628 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -18861,400 +19065,401 @@ state 628 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 694 + statement go to state 706 unticked_statement go to state 87 - while_statement go to state 695 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + while_statement go to state 707 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 629 +state 635 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr . ';' @14 for_expr ')' @15 for_statement - ';' shift, and go to state 696 + ';' shift, and go to state 708 -state 630 +state 636 237 non_empty_for_expr: non_empty_for_expr ',' @38 expr . - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 $default reduce using rule 237 (non_empty_for_expr) -state 631 +state 637 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable . foreach_optional_arg ')' @20 foreach_statement - "=> (T_DOUBLE_ARROW)" shift, and go to state 697 + "=> (T_DOUBLE_ARROW)" shift, and go to state 709 $default reduce using rule 117 (foreach_optional_arg) - foreach_optional_arg go to state 698 + foreach_optional_arg go to state 710 -state 632 +state 638 120 foreach_variable: '&' . variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 699 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 711 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 633 +state 639 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable . foreach_optional_arg ')' @18 foreach_statement - "=> (T_DOUBLE_ARROW)" shift, and go to state 697 + "=> (T_DOUBLE_ARROW)" shift, and go to state 709 $default reduce using rule 117 (foreach_optional_arg) - foreach_optional_arg go to state 700 + foreach_optional_arg go to state 712 -state 634 +state 640 119 foreach_variable: variable . $default reduce using rule 119 (foreach_variable) -state 635 +state 641 127 declare_list: "identifier (T_STRING)" '=' static_scalar . $default reduce using rule 127 (declare_list) -state 636 +state 642 128 declare_list: declare_list ',' "identifier (T_STRING)" . '=' static_scalar - '=' shift, and go to state 701 + '=' shift, and go to state 713 -state 637 +state 643 126 declare_statement: ':' . inner_statement_list "enddeclare (T_ENDDECLARE)" ';' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 702 + inner_statement_list go to state 714 -state 638 +state 644 125 declare_statement: statement . $default reduce using rule 125 (declare_statement) -state 639 +state 645 74 unticked_statement: "declare (T_DECLARE)" @21 '(' declare_list ')' declare_statement . $default reduce using rule 74 (unticked_statement) -state 640 +state 646 131 switch_case_list: ':' . case_list "endswitch (T_ENDSWITCH)" ';' 132 | ':' . ';' case_list "endswitch (T_ENDSWITCH)" ';' - ';' shift, and go to state 703 + ';' shift, and go to state 715 $default reduce using rule 133 (case_list) - case_list go to state 704 + case_list go to state 716 -state 641 +state 647 129 switch_case_list: '{' . case_list '}' 130 | '{' . ';' case_list '}' - ';' shift, and go to state 705 + ';' shift, and go to state 717 $default reduce using rule 133 (case_list) - case_list go to state 706 + case_list go to state 718 -state 642 +state 648 53 unticked_statement: "switch (T_SWITCH)" '(' expr ')' @16 switch_case_list . $default reduce using rule 53 (unticked_statement) -state 643 +state 649 - 406 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar + 420 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 707 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 719 + static_class_constant go to state 470 -state 644 +state 650 - 389 static_scalar: '[' static_array_pair_list ']' . + 403 static_scalar: '[' static_array_pair_list ']' . - $default reduce using rule 389 (static_scalar) + $default reduce using rule 403 (static_scalar) -state 645 +state 651 - 403 possible_comma: ',' . - 404 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar - 405 | non_empty_static_array_pair_list ',' . static_scalar + 417 possible_comma: ',' . + 418 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' . static_scalar "=> (T_DOUBLE_ARROW)" static_scalar + 419 | non_empty_static_array_pair_list ',' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - $default reduce using rule 403 (possible_comma) + $default reduce using rule 417 (possible_comma) - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 708 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 720 + static_class_constant go to state 470 -state 646 +state 652 - 401 static_array_pair_list: non_empty_static_array_pair_list possible_comma . + 415 static_array_pair_list: non_empty_static_array_pair_list possible_comma . - $default reduce using rule 401 (static_array_pair_list) + $default reduce using rule 415 (static_array_pair_list) -state 647 +state 653 - 388 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')' + 402 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list . ')' - ')' shift, and go to state 709 + ')' shift, and go to state 721 -state 648 +state 654 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 347 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - 384 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 361 class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 398 static_scalar: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 347 (class_name) - $default reduce using rule 384 (static_scalar) + ":: (T_PAAMAYIM_NEKUDOTAYIM)" reduce using rule 361 (class_name) + $default reduce using rule 398 (static_scalar) -state 649 +state 655 - 391 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . + 405 static_class_constant: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . - $default reduce using rule 391 (static_class_constant) + $default reduce using rule 405 (static_class_constant) -state 650 +state 656 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" . '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches - '(' shift, and go to state 710 + '(' shift, and go to state 722 -state 651 +state 657 180 static_var_list: static_var_list ',' "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 180 (static_var_list) -state 652 +state 658 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list . ')' lexical_vars '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list . ')' lexical_vars '{' inner_statement_list '}' - ')' shift, and go to state 711 + ')' shift, and go to state 723 -state 653 +state 659 - 498 isset_variables: isset_variables ',' @70 variable . + 512 isset_variables: isset_variables ',' @73 variable . - $default reduce using rule 498 (isset_variables) + $default reduce using rule 512 (isset_variables) -state 654 +state 660 - 463 assignment_list_element: "list (T_LIST)" '(' @68 . assignment_list ')' + 477 assignment_list_element: "list (T_LIST)" '(' @71 . assignment_list ')' - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "list (T_LIST)" shift, and go to state 483 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "list (T_LIST)" shift, and go to state 486 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - $default reduce using rule 464 (assignment_list_element) - - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - variable go to state 484 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - assignment_list go to state 712 - assignment_list_element go to state 486 + $default reduce using rule 478 (assignment_list_element) + + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + variable go to state 487 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + assignment_list go to state 724 + assignment_list_element go to state 489 -state 655 +state 661 - 459 assignment_list: assignment_list ',' assignment_list_element . + 473 assignment_list: assignment_list ',' assignment_list_element . - $default reduce using rule 459 (assignment_list) + $default reduce using rule 473 (assignment_list) -state 656 +state 662 - 240 expr_without_variable: "list (T_LIST)" '(' @39 assignment_list ')' '=' . expr + 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -19282,12 +19487,12 @@ state 656 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -19299,7 +19504,7 @@ state 656 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -19309,289 +19514,432 @@ state 656 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 713 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 725 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 657 +state 663 - 481 encaps_var: "variable (T_VARIABLE)" '[' @69 encaps_var_offset ']' . + 495 encaps_var: "variable (T_VARIABLE)" '[' @72 encaps_var_offset ']' . - $default reduce using rule 481 (encaps_var) + $default reduce using rule 495 (encaps_var) -state 658 +state 664 - 484 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}' + 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' . '}' - '}' shift, and go to state 714 + '}' shift, and go to state 726 -state 659 +state 665 - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 function_call_parameter_list . ')' + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list . ')' - ')' shift, and go to state 715 + ')' shift, and go to state 727 -state 660 +state 666 13 top_statement: "namespace (T_NAMESPACE)" namespace_name '{' @2 top_statement_list '}' . $default reduce using rule 13 (top_statement) -state 661 +state 667 - 334 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @54 function_call_parameter_list ')' . + 348 function_call: "\\ (T_NS_SEPARATOR)" namespace_name '(' @57 function_call_parameter_list ')' . - $default reduce using rule 334 (function_call) + $default reduce using rule 348 (function_call) -state 662 +state 668 + + 242 chaining_dereference: '[' . dim_offset ']' + + "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 + "require (T_REQUIRE)" shift, and go to state 6 + "eval (T_EVAL)" shift, and go to state 7 + "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 + "include (T_INCLUDE)" shift, and go to state 9 + "print (T_PRINT)" shift, and go to state 10 + '+' shift, and go to state 11 + '-' shift, and go to state 12 + '!' shift, and go to state 13 + '~' shift, and go to state 14 + '@' shift, and go to state 15 + "(unset) (T_UNSET_CAST)" shift, and go to state 16 + "(bool) (T_BOOL_CAST)" shift, and go to state 17 + "(object) (T_OBJECT_CAST)" shift, and go to state 18 + "(array) (T_ARRAY_CAST)" shift, and go to state 19 + "(string) (T_STRING_CAST)" shift, and go to state 20 + "(double) (T_DOUBLE_CAST)" shift, and go to state 21 + "(int) (T_INT_CAST)" shift, and go to state 22 + "-- (T_DEC)" shift, and go to state 23 + "++ (T_INC)" shift, and go to state 24 + '[' shift, and go to state 25 + "clone (T_CLONE)" shift, and go to state 26 + "new (T_NEW)" shift, and go to state 27 + "exit (T_EXIT)" shift, and go to state 28 + "integer number (T_LNUMBER)" shift, and go to state 30 + "floating-point number (T_DNUMBER)" shift, and go to state 31 + "identifier (T_STRING)" shift, and go to state 116 + "variable name (T_STRING_VARNAME)" shift, and go to state 33 + "variable (T_VARIABLE)" shift, and go to state 34 + "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 + "function (T_FUNCTION)" shift, and go to state 47 + "static (T_STATIC)" shift, and go to state 117 + "isset (T_ISSET)" shift, and go to state 58 + "empty (T_EMPTY)" shift, and go to state 59 + "list (T_LIST)" shift, and go to state 64 + "array (T_ARRAY)" shift, and go to state 65 + "__CLASS__ (T_CLASS_C)" shift, and go to state 66 + "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 + "__METHOD__ (T_METHOD_C)" shift, and go to state 68 + "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 + "__LINE__ (T_LINE)" shift, and go to state 70 + "__FILE__ (T_FILE)" shift, and go to state 71 + "heredoc start (T_START_HEREDOC)" shift, and go to state 72 + "namespace (T_NAMESPACE)" shift, and go to state 118 + "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 + "__DIR__ (T_DIR)" shift, and go to state 75 + "\\ (T_NS_SEPARATOR)" shift, and go to state 76 + '(' shift, and go to state 77 + '$' shift, and go to state 80 + '`' shift, and go to state 81 + '"' shift, and go to state 82 + + $default reduce using rule 461 (dim_offset) + + namespace_name go to state 83 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 728 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 + + +state 669 + + 434 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property @67 method_or_not + + "identifier (T_STRING)" shift, and go to state 436 + "variable (T_VARIABLE)" shift, and go to state 34 + '{' shift, and go to state 380 + '$' shift, and go to state 80 + + variable_without_objects go to state 539 + reference_variable go to state 382 + compound_variable go to state 112 + object_property go to state 729 + object_dim_list go to state 541 + variable_name go to state 542 + simple_indirect_reference go to state 384 + + +state 670 + + 239 chaining_method_or_property: chaining_method_or_property . variable_property + 246 chaining_instance_call: chaining_method_or_property . + + "-> (T_OBJECT_OPERATOR)" shift, and go to state 669 + + $default reduce using rule 246 (chaining_instance_call) + + variable_property go to state 730 + + +state 671 + + 241 chaining_dereference: chaining_dereference . '[' dim_offset ']' + 244 chaining_instance_call: chaining_dereference . @39 chaining_method_or_property + 245 | chaining_dereference . + + '[' shift, and go to state 731 + + "-> (T_OBJECT_OPERATOR)" reduce using rule 243 (@39) + $default reduce using rule 245 (chaining_instance_call) + + @39 go to state 732 + + +state 672 + + 249 instance_call: @40 chaining_instance_call . + + $default reduce using rule 249 (instance_call) + + +state 673 + + 240 chaining_method_or_property: variable_property . + + $default reduce using rule 240 (chaining_method_or_property) + + +state 674 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' . ';' - ';' shift, and go to state 716 + ';' shift, and go to state 733 -state 663 +state 675 173 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' . w_variable - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - function_call go to state 96 - class_name go to state 141 - w_variable go to state 717 - variable go to state 290 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + function_call go to state 97 + class_name go to state 142 + w_variable go to state 734 + variable go to state 292 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 664 +state 676 171 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' expr_without_variable . - 409 expr: expr_without_variable . + 423 expr: expr_without_variable . ',' reduce using rule 171 (non_empty_function_call_parameter_list) ')' reduce using rule 171 (non_empty_function_call_parameter_list) - $default reduce using rule 409 (expr) + $default reduce using rule 423 (expr) -state 665 +state 677 172 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' variable . - 241 expr_without_variable: variable . '=' expr - 242 | variable . '=' '&' variable - 244 | variable . '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments - 248 | variable . "+= (T_PLUS_EQUAL)" expr - 249 | variable . "-= (T_MINUS_EQUAL)" expr - 250 | variable . "*= (T_MUL_EQUAL)" expr - 251 | variable . "/= (T_DIV_EQUAL)" expr - 252 | variable . ".= (T_CONCAT_EQUAL)" expr - 253 | variable . "%= (T_MOD_EQUAL)" expr - 254 | variable . "&= (T_AND_EQUAL)" expr - 255 | variable . "|= (T_OR_EQUAL)" expr - 256 | variable . "^= (T_XOR_EQUAL)" expr - 257 | variable . "<<= (T_SL_EQUAL)" expr - 258 | variable . ">>= (T_SR_EQUAL)" expr - 410 r_variable: variable . - 412 rw_variable: variable . - - '=' shift, and go to state 262 - ">>= (T_SR_EQUAL)" shift, and go to state 263 - "<<= (T_SL_EQUAL)" shift, and go to state 264 - "^= (T_XOR_EQUAL)" shift, and go to state 265 - "|= (T_OR_EQUAL)" shift, and go to state 266 - "&= (T_AND_EQUAL)" shift, and go to state 267 - "%= (T_MOD_EQUAL)" shift, and go to state 268 - ".= (T_CONCAT_EQUAL)" shift, and go to state 269 - "/= (T_DIV_EQUAL)" shift, and go to state 270 - "*= (T_MUL_EQUAL)" shift, and go to state 271 - "-= (T_MINUS_EQUAL)" shift, and go to state 272 - "+= (T_PLUS_EQUAL)" shift, and go to state 273 + 254 expr_without_variable: variable . '=' expr + 255 | variable . '=' '&' variable + 257 | variable . '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments + 259 | variable . "+= (T_PLUS_EQUAL)" expr + 260 | variable . "-= (T_MINUS_EQUAL)" expr + 261 | variable . "*= (T_MUL_EQUAL)" expr + 262 | variable . "/= (T_DIV_EQUAL)" expr + 263 | variable . ".= (T_CONCAT_EQUAL)" expr + 264 | variable . "%= (T_MOD_EQUAL)" expr + 265 | variable . "&= (T_AND_EQUAL)" expr + 266 | variable . "|= (T_OR_EQUAL)" expr + 267 | variable . "^= (T_XOR_EQUAL)" expr + 268 | variable . "<<= (T_SL_EQUAL)" expr + 269 | variable . ">>= (T_SR_EQUAL)" expr + 424 r_variable: variable . + 426 rw_variable: variable . + + '=' shift, and go to state 264 + ">>= (T_SR_EQUAL)" shift, and go to state 265 + "<<= (T_SL_EQUAL)" shift, and go to state 266 + "^= (T_XOR_EQUAL)" shift, and go to state 267 + "|= (T_OR_EQUAL)" shift, and go to state 268 + "&= (T_AND_EQUAL)" shift, and go to state 269 + "%= (T_MOD_EQUAL)" shift, and go to state 270 + ".= (T_CONCAT_EQUAL)" shift, and go to state 271 + "/= (T_DIV_EQUAL)" shift, and go to state 272 + "*= (T_MUL_EQUAL)" shift, and go to state 273 + "-= (T_MINUS_EQUAL)" shift, and go to state 274 + "+= (T_PLUS_EQUAL)" shift, and go to state 275 ',' reduce using rule 172 (non_empty_function_call_parameter_list) - "-- (T_DEC)" reduce using rule 412 (rw_variable) - "++ (T_INC)" reduce using rule 412 (rw_variable) + "-- (T_DEC)" reduce using rule 426 (rw_variable) + "++ (T_INC)" reduce using rule 426 (rw_variable) ')' reduce using rule 172 (non_empty_function_call_parameter_list) - $default reduce using rule 410 (r_variable) + $default reduce using rule 424 (r_variable) -state 666 +state 678 6 namespace_name: namespace_name . "\\ (T_NS_SEPARATOR)" "identifier (T_STRING)" - 350 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . + 364 fully_qualified_class_name: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name . - "\\ (T_NS_SEPARATOR)" shift, and go to state 223 + "\\ (T_NS_SEPARATOR)" shift, and go to state 225 - $default reduce using rule 350 (fully_qualified_class_name) + $default reduce using rule 364 (fully_qualified_class_name) -state 667 +state 679 114 implements_list: "implements (T_IMPLEMENTS)" interface_list . 116 interface_list: interface_list . ',' fully_qualified_class_name - ',' shift, and go to state 669 + ',' shift, and go to state 681 $default reduce using rule 114 (implements_list) -state 668 +state 680 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' . class_statement_list '}' $default reduce using rule 184 (class_statement_list) - class_statement_list go to state 718 + class_statement_list go to state 735 -state 669 +state 681 116 interface_list: interface_list ',' . fully_qualified_class_name - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - fully_qualified_class_name go to state 719 + namespace_name go to state 515 + fully_qualified_class_name go to state 736 -state 670 +state 682 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list . '}' 183 class_statement_list: class_statement_list . class_statement - "const (T_CONST)" shift, and go to state 720 - "use (T_USE)" shift, and go to state 721 - "public (T_PUBLIC)" shift, and go to state 722 - "protected (T_PROTECTED)" shift, and go to state 723 - "private (T_PRIVATE)" shift, and go to state 724 - "final (T_FINAL)" shift, and go to state 725 - "abstract (T_ABSTRACT)" shift, and go to state 726 - "static (T_STATIC)" shift, and go to state 727 - "var (T_VAR)" shift, and go to state 728 - '}' shift, and go to state 729 + "const (T_CONST)" shift, and go to state 737 + "use (T_USE)" shift, and go to state 738 + "public (T_PUBLIC)" shift, and go to state 739 + "protected (T_PROTECTED)" shift, and go to state 740 + "private (T_PRIVATE)" shift, and go to state 741 + "final (T_FINAL)" shift, and go to state 742 + "abstract (T_ABSTRACT)" shift, and go to state 743 + "static (T_STATIC)" shift, and go to state 744 + "var (T_VAR)" shift, and go to state 745 + '}' shift, and go to state 746 $default reduce using rule 216 (method_modifiers) - class_statement go to state 730 - trait_use_statement go to state 731 - variable_modifiers go to state 732 - method_modifiers go to state 733 - non_empty_member_modifiers go to state 734 - member_modifier go to state 735 - class_constant_declaration go to state 736 + class_statement go to state 747 + trait_use_statement go to state 748 + variable_modifiers go to state 749 + method_modifiers go to state 750 + non_empty_member_modifiers go to state 751 + member_modifier go to state 752 + class_constant_declaration go to state 753 -state 671 +state 683 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list . ')' '{' inner_statement_list '}' - ')' shift, and go to state 737 + ')' shift, and go to state 754 -state 672 +state 684 - 319 expr_without_variable: function is_reference '(' @50 parameter_list ')' . lexical_vars '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' . lexical_vars '{' inner_statement_list '}' - "use (T_USE)" shift, and go to state 738 + "use (T_USE)" shift, and go to state 755 - $default reduce using rule 323 (lexical_vars) + $default reduce using rule 337 (lexical_vars) - lexical_vars go to state 739 + lexical_vars go to state 756 -state 673 +state 685 158 non_empty_parameter_list: non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)" 159 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)" 160 | non_empty_parameter_list ',' . optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar 161 | non_empty_parameter_list ',' . optional_class_type "variable (T_VARIABLE)" '=' static_scalar - "identifier (T_STRING)" shift, and go to state 115 - "array (T_ARRAY)" shift, and go to state 601 - "callable (T_CALLABLE)" shift, and go to state 602 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "array (T_ARRAY)" shift, and go to state 607 + "callable (T_CALLABLE)" shift, and go to state 608 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 $default reduce using rule 162 (optional_class_type) - namespace_name go to state 511 - optional_class_type go to state 740 - fully_qualified_class_name go to state 606 + namespace_name go to state 515 + optional_class_type go to state 757 + fully_qualified_class_name go to state 612 -state 674 +state 686 155 non_empty_parameter_list: optional_class_type '&' . "variable (T_VARIABLE)" 156 | optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar - "variable (T_VARIABLE)" shift, and go to state 741 + "variable (T_VARIABLE)" shift, and go to state 758 -state 675 +state 687 154 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" . 157 | optional_class_type "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 742 + '=' shift, and go to state 759 $default reduce using rule 154 (non_empty_parameter_list) -state 676 +state 688 - 338 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @56 function_call_parameter_list . ')' + 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list . ')' - ')' shift, and go to state 743 + ')' shift, and go to state 760 -state 677 +state 689 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @55 function_call_parameter_list . ')' + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list . ')' - ')' shift, and go to state 744 + ')' shift, and go to state 761 -state 678 +state 690 - 299 expr_without_variable: expr '?' @46 expr ':' @47 . expr + 313 expr_without_variable: expr '?' @49 expr ':' @50 . expr "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -19619,12 +19967,12 @@ state 678 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -19636,7 +19984,7 @@ state 678 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -19646,179 +19994,180 @@ state 678 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 745 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 762 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 679 +state 691 - 244 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @40 . ctor_arguments + 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 . ctor_arguments - '(' shift, and go to state 440 + '(' shift, and go to state 443 - $default reduce using rule 367 (ctor_arguments) + $default reduce using rule 381 (ctor_arguments) - ctor_arguments go to state 746 + ctor_arguments go to state 763 -state 680 +state 692 - 342 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @58 function_call_parameter_list . ')' + 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list . ')' - ')' shift, and go to state 747 + ')' shift, and go to state 764 -state 681 +state 693 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @57 function_call_parameter_list . ')' + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list . ')' - ')' shift, and go to state 748 + ')' shift, and go to state 765 -state 682 +state 694 - 424 method: '(' . @65 function_call_parameter_list ')' + 438 method: '(' . @68 function_call_parameter_list ')' - $default reduce using rule 423 (@65) + $default reduce using rule 437 (@68) - @65 go to state 749 + @68 go to state 766 -state 683 +state 695 - 421 array_method_dereference: array_method_dereference . '[' dim_offset ']' - 426 method_or_not: array_method_dereference . + 435 array_method_dereference: array_method_dereference . '[' dim_offset ']' + 440 method_or_not: array_method_dereference . - '[' shift, and go to state 750 + '[' shift, and go to state 767 - $default reduce using rule 426 (method_or_not) + $default reduce using rule 440 (method_or_not) -state 684 +state 696 - 422 array_method_dereference: method . '[' dim_offset ']' - 425 method_or_not: method . + 436 array_method_dereference: method . '[' dim_offset ']' + 439 method_or_not: method . - '[' shift, and go to state 751 + '[' shift, and go to state 768 - $default reduce using rule 425 (method_or_not) + $default reduce using rule 439 (method_or_not) -state 685 +state 697 - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @62 object_property @63 method_or_not . variable_properties + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not . variable_properties - $default reduce using rule 418 (variable_properties) + $default reduce using rule 432 (variable_properties) - variable_properties go to state 752 + variable_properties go to state 769 -state 686 +state 698 - 452 object_dim_list: object_dim_list '[' dim_offset . ']' + 466 object_dim_list: object_dim_list '[' dim_offset . ']' - ']' shift, and go to state 753 + ']' shift, and go to state 770 -state 687 +state 699 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - 453 object_dim_list: object_dim_list '{' expr . '}' - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - '}' shift, and go to state 754 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + 467 object_dim_list: object_dim_list '{' expr . '}' + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + '}' shift, and go to state 771 -state 688 +state 700 - 471 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable . + 485 non_empty_array_pair_list: non_empty_array_pair_list ',' expr "=> (T_DOUBLE_ARROW)" '&' w_variable . - $default reduce using rule 471 (non_empty_array_pair_list) + $default reduce using rule 485 (non_empty_array_pair_list) -state 689 +state 701 - 356 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @60 object_property @61 dynamic_class_name_variable_properties . - 358 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property + 370 dynamic_class_name_reference: base_variable "-> (T_OBJECT_OPERATOR)" @63 object_property @64 dynamic_class_name_variable_properties . + 372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties . dynamic_class_name_variable_property - "-> (T_OBJECT_OPERATOR)" shift, and go to state 755 + "-> (T_OBJECT_OPERATOR)" shift, and go to state 772 - $default reduce using rule 356 (dynamic_class_name_reference) + $default reduce using rule 370 (dynamic_class_name_reference) - dynamic_class_name_variable_property go to state 756 + dynamic_class_name_variable_property go to state 773 -state 690 +state 702 27 inner_statement_list: inner_statement_list . @4 inner_statement 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list . @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' @@ -19828,729 +20177,846 @@ state 690 "endif (T_ENDIF)" reduce using rule 40 (@8) $default reduce using rule 26 (@4) - @4 go to state 363 - @8 go to state 757 + @4 go to state 366 + @8 go to state 774 -state 691 +state 703 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 . elseif_list else_single $default reduce using rule 142 (elseif_list) - elseif_list go to state 758 + elseif_list go to state 775 -state 692 +state 704 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr . ')' ';' - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 759 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 776 -state 693 +state 705 141 while_statement: ':' . inner_statement_list "endwhile (T_ENDWHILE)" ';' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 760 + inner_statement_list go to state 777 -state 694 +state 706 140 while_statement: statement . $default reduce using rule 140 (while_statement) -state 695 +state 707 44 unticked_statement: "while (T_WHILE)" '(' @9 expr ')' @10 while_statement . $default reduce using rule 44 (unticked_statement) -state 696 +state 708 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' . @14 for_expr ')' @15 for_statement $default reduce using rule 49 (@14) - @14 go to state 761 + @14 go to state 778 -state 697 +state 709 118 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" . foreach_variable - '&' shift, and go to state 632 - "identifier (T_STRING)" shift, and go to state 115 + '&' shift, and go to state 638 + "identifier (T_STRING)" shift, and go to state 116 "variable (T_VARIABLE)" shift, and go to state 34 - "static (T_STATIC)" shift, and go to state 137 - "namespace (T_NAMESPACE)" shift, and go to state 138 - "\\ (T_NS_SEPARATOR)" shift, and go to state 139 + "static (T_STATIC)" shift, and go to state 138 + "namespace (T_NAMESPACE)" shift, and go to state 139 + "\\ (T_NS_SEPARATOR)" shift, and go to state 140 '$' shift, and go to state 80 - namespace_name go to state 140 - foreach_variable go to state 762 - function_call go to state 96 - class_name go to state 141 - variable go to state 634 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 144 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 + namespace_name go to state 141 + foreach_variable go to state 779 + function_call go to state 97 + class_name go to state 142 + variable go to state 640 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 145 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 -state 698 +state 710 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg . ')' @20 foreach_statement - ')' shift, and go to state 763 + ')' shift, and go to state 780 -state 699 +state 711 120 foreach_variable: '&' variable . $default reduce using rule 120 (foreach_variable) -state 700 +state 712 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg . ')' @18 foreach_statement - ')' shift, and go to state 764 + ')' shift, and go to state 781 -state 701 +state 713 128 declare_list: declare_list ',' "identifier (T_STRING)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 765 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 782 + static_class_constant go to state 470 -state 702 +state 714 27 inner_statement_list: inner_statement_list . @4 inner_statement 126 declare_statement: ':' inner_statement_list . "enddeclare (T_ENDDECLARE)" ';' - "enddeclare (T_ENDDECLARE)" shift, and go to state 766 + "enddeclare (T_ENDDECLARE)" shift, and go to state 783 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 703 +state 715 132 switch_case_list: ':' ';' . case_list "endswitch (T_ENDSWITCH)" ';' $default reduce using rule 133 (case_list) - case_list go to state 767 + case_list go to state 784 -state 704 +state 716 131 switch_case_list: ':' case_list . "endswitch (T_ENDSWITCH)" ';' 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list - "endswitch (T_ENDSWITCH)" shift, and go to state 768 - "case (T_CASE)" shift, and go to state 769 - "default (T_DEFAULT)" shift, and go to state 770 + "endswitch (T_ENDSWITCH)" shift, and go to state 785 + "case (T_CASE)" shift, and go to state 786 + "default (T_DEFAULT)" shift, and go to state 787 -state 705 +state 717 130 switch_case_list: '{' ';' . case_list '}' $default reduce using rule 133 (case_list) - case_list go to state 771 + case_list go to state 788 -state 706 +state 718 129 switch_case_list: '{' case_list . '}' 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list - "case (T_CASE)" shift, and go to state 769 - "default (T_DEFAULT)" shift, and go to state 770 - '}' shift, and go to state 772 + "case (T_CASE)" shift, and go to state 786 + "default (T_DEFAULT)" shift, and go to state 787 + '}' shift, and go to state 789 -state 707 +state 719 - 406 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar . + 420 non_empty_static_array_pair_list: static_scalar "=> (T_DOUBLE_ARROW)" static_scalar . - $default reduce using rule 406 (non_empty_static_array_pair_list) + $default reduce using rule 420 (non_empty_static_array_pair_list) -state 708 +state 720 - 404 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar - 405 | non_empty_static_array_pair_list ',' static_scalar . + 418 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar . "=> (T_DOUBLE_ARROW)" static_scalar + 419 | non_empty_static_array_pair_list ',' static_scalar . - "=> (T_DOUBLE_ARROW)" shift, and go to state 773 + "=> (T_DOUBLE_ARROW)" shift, and go to state 790 - $default reduce using rule 405 (non_empty_static_array_pair_list) + $default reduce using rule 419 (non_empty_static_array_pair_list) -state 709 +state 721 - 388 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' . + 402 static_scalar: "array (T_ARRAY)" '(' static_array_pair_list ')' . - $default reduce using rule 388 (static_scalar) + $default reduce using rule 402 (static_scalar) -state 710 +state 722 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' . @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches $default reduce using rule 77 (@23) - @23 go to state 774 + @23 go to state 791 -state 711 +state 723 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list ')' . lexical_vars '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' . lexical_vars '{' inner_statement_list '}' - "use (T_USE)" shift, and go to state 738 + "use (T_USE)" shift, and go to state 755 - $default reduce using rule 323 (lexical_vars) + $default reduce using rule 337 (lexical_vars) - lexical_vars go to state 775 + lexical_vars go to state 792 -state 712 +state 724 - 459 assignment_list: assignment_list . ',' assignment_list_element - 463 assignment_list_element: "list (T_LIST)" '(' @68 assignment_list . ')' + 473 assignment_list: assignment_list . ',' assignment_list_element + 477 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list . ')' - ',' shift, and go to state 577 - ')' shift, and go to state 776 + ',' shift, and go to state 581 + ')' shift, and go to state 793 -state 713 +state 725 - 240 expr_without_variable: "list (T_LIST)" '(' @39 assignment_list ')' '=' expr . - 264 | expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - - $default reduce using rule 240 (expr_without_variable) + 253 expr_without_variable: "list (T_LIST)" '(' @42 assignment_list ')' '=' expr . + 275 | expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + $default reduce using rule 253 (expr_without_variable) -state 714 - 484 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' . +state 726 - $default reduce using rule 484 (encaps_var) + 498 encaps_var: "${ (T_DOLLAR_OPEN_CURLY_BRACES)" "variable name (T_STRING_VARNAME)" '[' expr ']' '}' . + $default reduce using rule 498 (encaps_var) -state 715 - 332 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @53 function_call_parameter_list ')' . +state 727 + + 346 function_call: "namespace (T_NAMESPACE)" "\\ (T_NS_SEPARATOR)" namespace_name '(' @56 function_call_parameter_list ')' . - $default reduce using rule 332 (function_call) + $default reduce using rule 346 (function_call) -state 716 +state 728 + + 242 chaining_dereference: '[' dim_offset . ']' + + ']' shift, and go to state 794 + + +state 729 + + 434 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . @67 method_or_not + + $default reduce using rule 433 (@67) + + @67 go to state 795 + + +state 730 + + 239 chaining_method_or_property: chaining_method_or_property variable_property . + + $default reduce using rule 239 (chaining_method_or_property) + + +state 731 + + 241 chaining_dereference: chaining_dereference '[' . dim_offset ']' + + "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 + "require (T_REQUIRE)" shift, and go to state 6 + "eval (T_EVAL)" shift, and go to state 7 + "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 + "include (T_INCLUDE)" shift, and go to state 9 + "print (T_PRINT)" shift, and go to state 10 + '+' shift, and go to state 11 + '-' shift, and go to state 12 + '!' shift, and go to state 13 + '~' shift, and go to state 14 + '@' shift, and go to state 15 + "(unset) (T_UNSET_CAST)" shift, and go to state 16 + "(bool) (T_BOOL_CAST)" shift, and go to state 17 + "(object) (T_OBJECT_CAST)" shift, and go to state 18 + "(array) (T_ARRAY_CAST)" shift, and go to state 19 + "(string) (T_STRING_CAST)" shift, and go to state 20 + "(double) (T_DOUBLE_CAST)" shift, and go to state 21 + "(int) (T_INT_CAST)" shift, and go to state 22 + "-- (T_DEC)" shift, and go to state 23 + "++ (T_INC)" shift, and go to state 24 + '[' shift, and go to state 25 + "clone (T_CLONE)" shift, and go to state 26 + "new (T_NEW)" shift, and go to state 27 + "exit (T_EXIT)" shift, and go to state 28 + "integer number (T_LNUMBER)" shift, and go to state 30 + "floating-point number (T_DNUMBER)" shift, and go to state 31 + "identifier (T_STRING)" shift, and go to state 116 + "variable name (T_STRING_VARNAME)" shift, and go to state 33 + "variable (T_VARIABLE)" shift, and go to state 34 + "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 + "function (T_FUNCTION)" shift, and go to state 47 + "static (T_STATIC)" shift, and go to state 117 + "isset (T_ISSET)" shift, and go to state 58 + "empty (T_EMPTY)" shift, and go to state 59 + "list (T_LIST)" shift, and go to state 64 + "array (T_ARRAY)" shift, and go to state 65 + "__CLASS__ (T_CLASS_C)" shift, and go to state 66 + "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 + "__METHOD__ (T_METHOD_C)" shift, and go to state 68 + "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 + "__LINE__ (T_LINE)" shift, and go to state 70 + "__FILE__ (T_FILE)" shift, and go to state 71 + "heredoc start (T_START_HEREDOC)" shift, and go to state 72 + "namespace (T_NAMESPACE)" shift, and go to state 118 + "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 + "__DIR__ (T_DIR)" shift, and go to state 75 + "\\ (T_NS_SEPARATOR)" shift, and go to state 76 + '(' shift, and go to state 77 + '$' shift, and go to state 80 + '`' shift, and go to state 81 + '"' shift, and go to state 82 + + $default reduce using rule 461 (dim_offset) + + namespace_name go to state 83 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 796 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 + + +state 732 + + 244 chaining_instance_call: chaining_dereference @39 . chaining_method_or_property + + "-> (T_OBJECT_OPERATOR)" shift, and go to state 669 + + chaining_method_or_property go to state 797 + variable_property go to state 673 + + +state 733 32 inner_statement: "__halt_compiler (T_HALT_COMPILER)" '(' ')' ';' . $default reduce using rule 32 (inner_statement) -state 717 +state 734 173 non_empty_function_call_parameter_list: non_empty_function_call_parameter_list ',' '&' w_variable . $default reduce using rule 173 (non_empty_function_call_parameter_list) -state 718 +state 735 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list . '}' 183 class_statement_list: class_statement_list . class_statement - "const (T_CONST)" shift, and go to state 720 - "use (T_USE)" shift, and go to state 721 - "public (T_PUBLIC)" shift, and go to state 722 - "protected (T_PROTECTED)" shift, and go to state 723 - "private (T_PRIVATE)" shift, and go to state 724 - "final (T_FINAL)" shift, and go to state 725 - "abstract (T_ABSTRACT)" shift, and go to state 726 - "static (T_STATIC)" shift, and go to state 727 - "var (T_VAR)" shift, and go to state 728 - '}' shift, and go to state 777 + "const (T_CONST)" shift, and go to state 737 + "use (T_USE)" shift, and go to state 738 + "public (T_PUBLIC)" shift, and go to state 739 + "protected (T_PROTECTED)" shift, and go to state 740 + "private (T_PRIVATE)" shift, and go to state 741 + "final (T_FINAL)" shift, and go to state 742 + "abstract (T_ABSTRACT)" shift, and go to state 743 + "static (T_STATIC)" shift, and go to state 744 + "var (T_VAR)" shift, and go to state 745 + '}' shift, and go to state 798 $default reduce using rule 216 (method_modifiers) - class_statement go to state 730 - trait_use_statement go to state 731 - variable_modifiers go to state 732 - method_modifiers go to state 733 - non_empty_member_modifiers go to state 734 - member_modifier go to state 735 - class_constant_declaration go to state 736 + class_statement go to state 747 + trait_use_statement go to state 748 + variable_modifiers go to state 749 + method_modifiers go to state 750 + non_empty_member_modifiers go to state 751 + member_modifier go to state 752 + class_constant_declaration go to state 753 -state 719 +state 736 116 interface_list: interface_list ',' fully_qualified_class_name . $default reduce using rule 116 (interface_list) -state 720 +state 737 231 class_constant_declaration: "const (T_CONST)" . "identifier (T_STRING)" '=' static_scalar - "identifier (T_STRING)" shift, and go to state 778 + "identifier (T_STRING)" shift, and go to state 799 -state 721 +state 738 191 trait_use_statement: "use (T_USE)" . trait_list trait_adaptations - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - trait_list go to state 779 - fully_qualified_class_name go to state 780 + namespace_name go to state 515 + trait_list go to state 800 + fully_qualified_class_name go to state 801 -state 722 +state 739 220 member_modifier: "public (T_PUBLIC)" . $default reduce using rule 220 (member_modifier) -state 723 +state 740 221 member_modifier: "protected (T_PROTECTED)" . $default reduce using rule 221 (member_modifier) -state 724 +state 741 222 member_modifier: "private (T_PRIVATE)" . $default reduce using rule 222 (member_modifier) -state 725 +state 742 225 member_modifier: "final (T_FINAL)" . $default reduce using rule 225 (member_modifier) -state 726 +state 743 224 member_modifier: "abstract (T_ABSTRACT)" . $default reduce using rule 224 (member_modifier) -state 727 +state 744 223 member_modifier: "static (T_STATIC)" . $default reduce using rule 223 (member_modifier) -state 728 +state 745 215 variable_modifiers: "var (T_VAR)" . $default reduce using rule 215 (variable_modifiers) -state 729 +state 746 103 unticked_class_declaration_statement: interface_entry "identifier (T_STRING)" @31 interface_extends_list '{' class_statement_list '}' . $default reduce using rule 103 (unticked_class_declaration_statement) -state 730 +state 747 183 class_statement_list: class_statement_list class_statement . $default reduce using rule 183 (class_statement_list) -state 731 +state 748 188 class_statement: trait_use_statement . $default reduce using rule 188 (class_statement) -state 732 +state 749 186 class_statement: variable_modifiers . @36 class_variable_declaration ';' $default reduce using rule 185 (@36) - @36 go to state 781 + @36 go to state 802 -state 733 +state 750 190 class_statement: method_modifiers . function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body "function (T_FUNCTION)" shift, and go to state 47 - function go to state 782 + function go to state 803 -state 734 +state 751 214 variable_modifiers: non_empty_member_modifiers . 217 method_modifiers: non_empty_member_modifiers . 219 non_empty_member_modifiers: non_empty_member_modifiers . member_modifier - "public (T_PUBLIC)" shift, and go to state 722 - "protected (T_PROTECTED)" shift, and go to state 723 - "private (T_PRIVATE)" shift, and go to state 724 - "final (T_FINAL)" shift, and go to state 725 - "abstract (T_ABSTRACT)" shift, and go to state 726 - "static (T_STATIC)" shift, and go to state 727 + "public (T_PUBLIC)" shift, and go to state 739 + "protected (T_PROTECTED)" shift, and go to state 740 + "private (T_PRIVATE)" shift, and go to state 741 + "final (T_FINAL)" shift, and go to state 742 + "abstract (T_ABSTRACT)" shift, and go to state 743 + "static (T_STATIC)" shift, and go to state 744 "function (T_FUNCTION)" reduce using rule 217 (method_modifiers) $default reduce using rule 214 (variable_modifiers) - member_modifier go to state 783 + member_modifier go to state 804 -state 735 +state 752 218 non_empty_member_modifiers: member_modifier . $default reduce using rule 218 (non_empty_member_modifiers) -state 736 +state 753 187 class_statement: class_constant_declaration . ';' 230 class_constant_declaration: class_constant_declaration . ',' "identifier (T_STRING)" '=' static_scalar - ',' shift, and go to state 784 - ';' shift, and go to state 785 + ',' shift, and go to state 805 + ';' shift, and go to state 806 -state 737 +state 754 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' . '{' inner_statement_list '}' - '{' shift, and go to state 786 + '{' shift, and go to state 807 -state 738 +state 755 - 324 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')' + 338 lexical_vars: "use (T_USE)" . '(' lexical_var_list ')' - '(' shift, and go to state 787 + '(' shift, and go to state 808 -state 739 +state 756 - 319 expr_without_variable: function is_reference '(' @50 parameter_list ')' lexical_vars . '{' inner_statement_list '}' + 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars . '{' inner_statement_list '}' - '{' shift, and go to state 788 + '{' shift, and go to state 809 -state 740 +state 757 158 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)" 159 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)" 160 | non_empty_parameter_list ',' optional_class_type . '&' "variable (T_VARIABLE)" '=' static_scalar 161 | non_empty_parameter_list ',' optional_class_type . "variable (T_VARIABLE)" '=' static_scalar - '&' shift, and go to state 789 - "variable (T_VARIABLE)" shift, and go to state 790 + '&' shift, and go to state 810 + "variable (T_VARIABLE)" shift, and go to state 811 -state 741 +state 758 155 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" . 156 | optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 791 + '=' shift, and go to state 812 $default reduce using rule 155 (non_empty_parameter_list) -state 742 +state 759 157 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 792 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 813 + static_class_constant go to state 470 -state 743 +state 760 - 338 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @56 function_call_parameter_list ')' . + 352 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @59 function_call_parameter_list ')' . - $default reduce using rule 338 (function_call) + $default reduce using rule 352 (function_call) -state 744 +state 761 - 336 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @55 function_call_parameter_list ')' . + 350 function_call: class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @58 function_call_parameter_list ')' . - $default reduce using rule 336 (function_call) + $default reduce using rule 350 (function_call) -state 745 +state 762 - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 299 | expr '?' @46 expr ':' @47 expr . - 301 | expr . '?' ':' @48 expr - - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 313 | expr '?' @49 expr ':' @50 expr . + 315 | expr . '?' ':' @51 expr + + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 - $default reduce using rule 299 (expr_without_variable) + $default reduce using rule 313 (expr_without_variable) -state 746 +state 763 - 244 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @40 ctor_arguments . + 257 expr_without_variable: variable '=' '&' "new (T_NEW)" class_name_reference @43 ctor_arguments . - $default reduce using rule 244 (expr_without_variable) + $default reduce using rule 257 (expr_without_variable) -state 747 +state 764 - 342 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @58 function_call_parameter_list ')' . + 356 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_without_objects '(' @61 function_call_parameter_list ')' . - $default reduce using rule 342 (function_call) + $default reduce using rule 356 (function_call) -state 748 +state 765 - 340 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @57 function_call_parameter_list ')' . + 354 function_call: variable_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" variable_name '(' @60 function_call_parameter_list ')' . - $default reduce using rule 340 (function_call) + $default reduce using rule 354 (function_call) -state 749 +state 766 - 424 method: '(' @65 . function_call_parameter_list ')' + 438 method: '(' @68 . function_call_parameter_list ')' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -20558,7 +21024,7 @@ state 749 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - '&' shift, and go to state 503 + '&' shift, and go to state 507 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -20579,12 +21045,12 @@ state 749 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -20596,7 +21062,7 @@ state 749 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -20608,34 +21074,35 @@ state 749 $default reduce using rule 167 (function_call_parameter_list) namespace_name go to state 83 - function_call_parameter_list go to state 793 - non_empty_function_call_parameter_list go to state 505 - expr_without_variable go to state 506 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 181 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 507 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + function_call_parameter_list go to state 814 + non_empty_function_call_parameter_list go to state 509 + new_expr go to state 94 + expr_without_variable go to state 510 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 182 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 511 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 750 +state 767 - 421 array_method_dereference: array_method_dereference '[' . dim_offset ']' + 435 array_method_dereference: array_method_dereference '[' . dim_offset ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -20663,12 +21130,12 @@ state 750 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -20680,7 +21147,7 @@ state 750 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -20689,36 +21156,37 @@ state 750 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 447 (dim_offset) + $default reduce using rule 461 (dim_offset) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 426 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - dim_offset go to state 794 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 815 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 751 +state 768 - 422 array_method_dereference: method '[' . dim_offset ']' + 436 array_method_dereference: method '[' . dim_offset ']' "require_once (T_REQUIRE_ONCE)" shift, and go to state 5 "require (T_REQUIRE)" shift, and go to state 6 @@ -20746,12 +21214,12 @@ state 751 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -20763,7 +21231,7 @@ state 751 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -20772,128 +21240,129 @@ state 751 '`' shift, and go to state 81 '"' shift, and go to state 82 - $default reduce using rule 447 (dim_offset) + $default reduce using rule 461 (dim_offset) namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 426 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - dim_offset go to state 795 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 429 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + dim_offset go to state 816 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 752 +state 769 - 415 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @62 object_property @63 method_or_not variable_properties . - 417 variable_properties: variable_properties . variable_property + 429 variable: base_variable_with_function_calls "-> (T_OBJECT_OPERATOR)" @65 object_property @66 method_or_not variable_properties . + 431 variable_properties: variable_properties . variable_property - "-> (T_OBJECT_OPERATOR)" shift, and go to state 796 + "-> (T_OBJECT_OPERATOR)" shift, and go to state 669 - $default reduce using rule 415 (variable) + $default reduce using rule 429 (variable) - variable_property go to state 797 + variable_property go to state 817 -state 753 +state 770 - 452 object_dim_list: object_dim_list '[' dim_offset ']' . + 466 object_dim_list: object_dim_list '[' dim_offset ']' . - $default reduce using rule 452 (object_dim_list) + $default reduce using rule 466 (object_dim_list) -state 754 +state 771 - 453 object_dim_list: object_dim_list '{' expr '}' . + 467 object_dim_list: object_dim_list '{' expr '}' . - $default reduce using rule 453 (object_dim_list) + $default reduce using rule 467 (object_dim_list) -state 755 +state 772 - 360 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property + 374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" . object_property - "identifier (T_STRING)" shift, and go to state 433 + "identifier (T_STRING)" shift, and go to state 436 "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 + '{' shift, and go to state 380 '$' shift, and go to state 80 - variable_without_objects go to state 535 - reference_variable go to state 379 - compound_variable go to state 111 - object_property go to state 798 - object_dim_list go to state 537 - variable_name go to state 538 - simple_indirect_reference go to state 381 + variable_without_objects go to state 539 + reference_variable go to state 382 + compound_variable go to state 112 + object_property go to state 818 + object_dim_list go to state 541 + variable_name go to state 542 + simple_indirect_reference go to state 384 -state 756 +state 773 - 358 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property . + 372 dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property . - $default reduce using rule 358 (dynamic_class_name_variable_properties) + $default reduce using rule 372 (dynamic_class_name_variable_properties) -state 757 +state 774 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 . new_elseif_list new_else_single "endif (T_ENDIF)" ';' $default reduce using rule 145 (new_elseif_list) - new_elseif_list go to state 799 + new_elseif_list go to state 819 -state 758 +state 775 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list . else_single 144 elseif_list: elseif_list . "elseif (T_ELSEIF)" '(' expr ')' @34 statement - "elseif (T_ELSEIF)" shift, and go to state 800 - "else (T_ELSE)" shift, and go to state 801 + "elseif (T_ELSEIF)" shift, and go to state 820 + "else (T_ELSE)" shift, and go to state 821 "elseif (T_ELSEIF)" [reduce using rule 148 (else_single)] "else (T_ELSE)" [reduce using rule 148 (else_single)] $default reduce using rule 148 (else_single) - else_single go to state 802 + else_single go to state 822 -state 759 +state 776 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' . ';' - ';' shift, and go to state 803 + ';' shift, and go to state 823 -state 760 +state 777 27 inner_statement_list: inner_statement_list . @4 inner_statement 141 while_statement: ':' inner_statement_list . "endwhile (T_ENDWHILE)" ';' - "endwhile (T_ENDWHILE)" shift, and go to state 804 + "endwhile (T_ENDWHILE)" shift, and go to state 824 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 761 +state 778 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 . for_expr ')' @15 for_statement @@ -20923,12 +21392,12 @@ state 761 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -20940,7 +21409,7 @@ state 761 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -20952,89 +21421,90 @@ state 761 $default reduce using rule 234 (for_expr) namespace_name go to state 83 - for_expr go to state 805 - non_empty_for_expr go to state 310 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 311 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + for_expr go to state 825 + non_empty_for_expr go to state 312 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 313 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 762 +state 779 118 foreach_optional_arg: "=> (T_DOUBLE_ARROW)" foreach_variable . $default reduce using rule 118 (foreach_optional_arg) -state 763 +state 780 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' . @20 foreach_statement $default reduce using rule 71 (@20) - @20 go to state 806 + @20 go to state 826 -state 764 +state 781 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' . @18 foreach_statement $default reduce using rule 68 (@18) - @18 go to state 807 + @18 go to state 827 -state 765 +state 782 128 declare_list: declare_list ',' "identifier (T_STRING)" '=' static_scalar . $default reduce using rule 128 (declare_list) -state 766 +state 783 126 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" . ';' - ';' shift, and go to state 808 + ';' shift, and go to state 828 -state 767 +state 784 132 switch_case_list: ':' ';' case_list . "endswitch (T_ENDSWITCH)" ';' 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list - "endswitch (T_ENDSWITCH)" shift, and go to state 809 - "case (T_CASE)" shift, and go to state 769 - "default (T_DEFAULT)" shift, and go to state 770 + "endswitch (T_ENDSWITCH)" shift, and go to state 829 + "case (T_CASE)" shift, and go to state 786 + "default (T_DEFAULT)" shift, and go to state 787 -state 768 +state 785 131 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" . ';' - ';' shift, and go to state 810 + ';' shift, and go to state 830 -state 769 +state 786 135 case_list: case_list "case (T_CASE)" . expr case_separator @32 inner_statement_list @@ -21064,12 +21534,12 @@ state 769 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -21081,7 +21551,7 @@ state 769 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -21091,348 +21561,370 @@ state 769 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 811 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 831 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 770 +state 787 137 case_list: case_list "default (T_DEFAULT)" . case_separator @33 inner_statement_list - ':' shift, and go to state 812 - ';' shift, and go to state 813 + ':' shift, and go to state 832 + ';' shift, and go to state 833 - case_separator go to state 814 + case_separator go to state 834 -state 771 +state 788 130 switch_case_list: '{' ';' case_list . '}' 135 case_list: case_list . "case (T_CASE)" expr case_separator @32 inner_statement_list 137 | case_list . "default (T_DEFAULT)" case_separator @33 inner_statement_list - "case (T_CASE)" shift, and go to state 769 - "default (T_DEFAULT)" shift, and go to state 770 - '}' shift, and go to state 815 + "case (T_CASE)" shift, and go to state 786 + "default (T_DEFAULT)" shift, and go to state 787 + '}' shift, and go to state 835 -state 772 +state 789 129 switch_case_list: '{' case_list '}' . $default reduce using rule 129 (switch_case_list) -state 773 +state 790 - 404 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar + 418 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 816 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 836 + static_class_constant go to state 470 -state 774 +state 791 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 . fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - fully_qualified_class_name go to state 817 + namespace_name go to state 515 + fully_qualified_class_name go to state 837 -state 775 +state 792 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list ')' lexical_vars . '{' inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars . '{' inner_statement_list '}' - '{' shift, and go to state 818 + '{' shift, and go to state 838 -state 776 +state 793 - 463 assignment_list_element: "list (T_LIST)" '(' @68 assignment_list ')' . + 477 assignment_list_element: "list (T_LIST)" '(' @71 assignment_list ')' . - $default reduce using rule 463 (assignment_list_element) + $default reduce using rule 477 (assignment_list_element) -state 777 +state 794 + + 242 chaining_dereference: '[' dim_offset ']' . + + $default reduce using rule 242 (chaining_dereference) + + +state 795 + + 434 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 . method_or_not + + '(' shift, and go to state 694 + + $default reduce using rule 441 (method_or_not) + + array_method_dereference go to state 695 + method go to state 696 + method_or_not go to state 839 + + +state 796 + + 241 chaining_dereference: chaining_dereference '[' dim_offset . ']' + + ']' shift, and go to state 840 + + +state 797 + + 239 chaining_method_or_property: chaining_method_or_property . variable_property + 244 chaining_instance_call: chaining_dereference @39 chaining_method_or_property . + + "-> (T_OBJECT_OPERATOR)" shift, and go to state 669 + + $default reduce using rule 244 (chaining_instance_call) + + variable_property go to state 730 + + +state 798 101 unticked_class_declaration_statement: class_entry_type "identifier (T_STRING)" extends_from @30 implements_list '{' class_statement_list '}' . $default reduce using rule 101 (unticked_class_declaration_statement) -state 778 +state 799 231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" . '=' static_scalar - '=' shift, and go to state 819 + '=' shift, and go to state 841 -state 779 +state 800 191 trait_use_statement: "use (T_USE)" trait_list . trait_adaptations 193 trait_list: trait_list . ',' fully_qualified_class_name - ',' shift, and go to state 820 - ';' shift, and go to state 821 - '{' shift, and go to state 822 + ',' shift, and go to state 842 + ';' shift, and go to state 843 + '{' shift, and go to state 844 - trait_adaptations go to state 823 + trait_adaptations go to state 845 -state 780 +state 801 192 trait_list: fully_qualified_class_name . $default reduce using rule 192 (trait_list) -state 781 +state 802 186 class_statement: variable_modifiers @36 . class_variable_declaration ';' - "variable (T_VARIABLE)" shift, and go to state 824 + "variable (T_VARIABLE)" shift, and go to state 846 - class_variable_declaration go to state 825 + class_variable_declaration go to state 847 -state 782 +state 803 190 class_statement: method_modifiers function . is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body - '&' shift, and go to state 229 + '&' shift, and go to state 231 $default reduce using rule 96 (is_reference) - is_reference go to state 826 + is_reference go to state 848 -state 783 +state 804 219 non_empty_member_modifiers: non_empty_member_modifiers member_modifier . $default reduce using rule 219 (non_empty_member_modifiers) -state 784 +state 805 230 class_constant_declaration: class_constant_declaration ',' . "identifier (T_STRING)" '=' static_scalar - "identifier (T_STRING)" shift, and go to state 827 + "identifier (T_STRING)" shift, and go to state 849 -state 785 +state 806 187 class_statement: class_constant_declaration ';' . $default reduce using rule 187 (class_statement) -state 786 +state 807 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' . inner_statement_list '}' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 828 + inner_statement_list go to state 850 -state 787 +state 808 - 324 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')' + 338 lexical_vars: "use (T_USE)" '(' . lexical_var_list ')' - '&' shift, and go to state 829 - "variable (T_VARIABLE)" shift, and go to state 830 + '&' shift, and go to state 851 + "variable (T_VARIABLE)" shift, and go to state 852 - lexical_var_list go to state 831 + lexical_var_list go to state 853 -state 788 +state 809 - 319 expr_without_variable: function is_reference '(' @50 parameter_list ')' lexical_vars '{' . inner_statement_list '}' + 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' . inner_statement_list '}' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 832 + inner_statement_list go to state 854 -state 789 +state 810 159 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)" 160 | non_empty_parameter_list ',' optional_class_type '&' . "variable (T_VARIABLE)" '=' static_scalar - "variable (T_VARIABLE)" shift, and go to state 833 + "variable (T_VARIABLE)" shift, and go to state 855 -state 790 +state 811 158 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" . 161 | non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 834 + '=' shift, and go to state 856 $default reduce using rule 158 (non_empty_parameter_list) -state 791 +state 812 156 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 835 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 857 + static_class_constant go to state 470 -state 792 +state 813 157 non_empty_parameter_list: optional_class_type "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 157 (non_empty_parameter_list) -state 793 - - 424 method: '(' @65 function_call_parameter_list . ')' - - ')' shift, and go to state 836 - +state 814 -state 794 + 438 method: '(' @68 function_call_parameter_list . ')' - 421 array_method_dereference: array_method_dereference '[' dim_offset . ']' + ')' shift, and go to state 858 - ']' shift, and go to state 837 +state 815 -state 795 + 435 array_method_dereference: array_method_dereference '[' dim_offset . ']' - 422 array_method_dereference: method '[' dim_offset . ']' + ']' shift, and go to state 859 - ']' shift, and go to state 838 +state 816 -state 796 + 436 array_method_dereference: method '[' dim_offset . ']' - 420 variable_property: "-> (T_OBJECT_OPERATOR)" . object_property @64 method_or_not + ']' shift, and go to state 860 - "identifier (T_STRING)" shift, and go to state 433 - "variable (T_VARIABLE)" shift, and go to state 34 - '{' shift, and go to state 377 - '$' shift, and go to state 80 - variable_without_objects go to state 535 - reference_variable go to state 379 - compound_variable go to state 111 - object_property go to state 839 - object_dim_list go to state 537 - variable_name go to state 538 - simple_indirect_reference go to state 381 - - -state 797 +state 817 - 417 variable_properties: variable_properties variable_property . + 431 variable_properties: variable_properties variable_property . - $default reduce using rule 417 (variable_properties) + $default reduce using rule 431 (variable_properties) -state 798 +state 818 - 360 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property . + 374 dynamic_class_name_variable_property: "-> (T_OBJECT_OPERATOR)" object_property . - $default reduce using rule 360 (dynamic_class_name_variable_property) + $default reduce using rule 374 (dynamic_class_name_variable_property) -state 799 +state 819 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list . new_else_single "endif (T_ENDIF)" ';' 147 new_elseif_list: new_elseif_list . "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list - "elseif (T_ELSEIF)" shift, and go to state 840 - "else (T_ELSE)" shift, and go to state 841 + "elseif (T_ELSEIF)" shift, and go to state 861 + "else (T_ELSE)" shift, and go to state 862 $default reduce using rule 150 (new_else_single) - new_else_single go to state 842 + new_else_single go to state 863 -state 800 +state 820 144 elseif_list: elseif_list "elseif (T_ELSEIF)" . '(' expr ')' @34 statement - '(' shift, and go to state 843 + '(' shift, and go to state 864 -state 801 +state 821 149 else_single: "else (T_ELSE)" . statement @@ -21496,7 +21988,7 @@ state 801 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -21508,60 +22000,61 @@ state 801 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 844 + statement go to state 865 unticked_statement go to state 87 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 802 +state 822 38 unticked_statement: "if (T_IF)" '(' expr ')' @5 statement @6 elseif_list else_single . $default reduce using rule 38 (unticked_statement) -state 803 +state 823 47 unticked_statement: "do (T_DO)" @11 statement "while (T_WHILE)" '(' @12 expr ')' ';' . $default reduce using rule 47 (unticked_statement) -state 804 +state 824 141 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" . ';' - ';' shift, and go to state 845 + ';' shift, and go to state 866 -state 805 +state 825 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr . ')' @15 for_statement - ')' shift, and go to state 846 + ')' shift, and go to state 867 -state 806 +state 826 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 . foreach_statement @@ -21571,7 +22064,7 @@ state 806 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - ':' shift, and go to state 847 + ':' shift, and go to state 868 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -21626,7 +22119,7 @@ state 806 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -21638,33 +22131,34 @@ state 806 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 848 + statement go to state 869 unticked_statement go to state 87 - foreach_statement go to state 849 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + foreach_statement go to state 870 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 807 +state 827 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 . foreach_statement @@ -21674,7 +22168,7 @@ state 807 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - ':' shift, and go to state 847 + ':' shift, and go to state 868 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -21729,7 +22223,7 @@ state 807 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -21741,433 +22235,439 @@ state 807 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 848 + statement go to state 869 unticked_statement go to state 87 - foreach_statement go to state 850 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + foreach_statement go to state 871 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 808 +state 828 126 declare_statement: ':' inner_statement_list "enddeclare (T_ENDDECLARE)" ';' . $default reduce using rule 126 (declare_statement) -state 809 +state 829 132 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" . ';' - ';' shift, and go to state 851 + ';' shift, and go to state 872 -state 810 +state 830 131 switch_case_list: ':' case_list "endswitch (T_ENDSWITCH)" ';' . $default reduce using rule 131 (switch_case_list) -state 811 +state 831 135 case_list: case_list "case (T_CASE)" expr . case_separator @32 inner_statement_list - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - ':' shift, and go to state 812 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ';' shift, and go to state 813 - - case_separator go to state 852 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + ':' shift, and go to state 832 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ';' shift, and go to state 833 + + case_separator go to state 873 -state 812 +state 832 138 case_separator: ':' . $default reduce using rule 138 (case_separator) -state 813 +state 833 139 case_separator: ';' . $default reduce using rule 139 (case_separator) -state 814 +state 834 137 case_list: case_list "default (T_DEFAULT)" case_separator . @33 inner_statement_list $default reduce using rule 136 (@33) - @33 go to state 853 + @33 go to state 874 -state 815 +state 835 130 switch_case_list: '{' ';' case_list '}' . $default reduce using rule 130 (switch_case_list) -state 816 +state 836 - 404 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar . + 418 non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar "=> (T_DOUBLE_ARROW)" static_scalar . - $default reduce using rule 404 (non_empty_static_array_pair_list) + $default reduce using rule 418 (non_empty_static_array_pair_list) -state 817 +state 837 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name . @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches $default reduce using rule 78 (@24) - @24 go to state 854 + @24 go to state 875 -state 818 +state 838 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list ')' lexical_vars '{' . inner_statement_list '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' . inner_statement_list '}' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 855 + inner_statement_list go to state 876 -state 819 +state 839 + + 434 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @67 method_or_not . + + $default reduce using rule 434 (variable_property) + + +state 840 + + 241 chaining_dereference: chaining_dereference '[' dim_offset ']' . + + $default reduce using rule 241 (chaining_dereference) + + +state 841 231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 856 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 877 + static_class_constant go to state 470 -state 820 +state 842 193 trait_list: trait_list ',' . fully_qualified_class_name - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - fully_qualified_class_name go to state 857 + namespace_name go to state 515 + fully_qualified_class_name go to state 878 -state 821 +state 843 194 trait_adaptations: ';' . $default reduce using rule 194 (trait_adaptations) -state 822 +state 844 195 trait_adaptations: '{' . trait_adaptation_list '}' - "identifier (T_STRING)" shift, and go to state 858 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 879 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 $default reduce using rule 196 (trait_adaptation_list) - namespace_name go to state 511 - trait_adaptation_list go to state 859 - non_empty_trait_adaptation_list go to state 860 - trait_adaptation_statement go to state 861 - trait_precedence go to state 862 - trait_method_reference go to state 863 - trait_method_reference_fully_qualified go to state 864 - trait_alias go to state 865 - fully_qualified_class_name go to state 866 + namespace_name go to state 515 + trait_adaptation_list go to state 880 + non_empty_trait_adaptation_list go to state 881 + trait_adaptation_statement go to state 882 + trait_precedence go to state 883 + trait_method_reference go to state 884 + trait_method_reference_fully_qualified go to state 885 + trait_alias go to state 886 + fully_qualified_class_name go to state 887 -state 823 +state 845 191 trait_use_statement: "use (T_USE)" trait_list trait_adaptations . $default reduce using rule 191 (trait_use_statement) -state 824 +state 846 228 class_variable_declaration: "variable (T_VARIABLE)" . 229 | "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 867 + '=' shift, and go to state 888 $default reduce using rule 228 (class_variable_declaration) -state 825 +state 847 186 class_statement: variable_modifiers @36 class_variable_declaration . ';' 226 class_variable_declaration: class_variable_declaration . ',' "variable (T_VARIABLE)" 227 | class_variable_declaration . ',' "variable (T_VARIABLE)" '=' static_scalar - ',' shift, and go to state 868 - ';' shift, and go to state 869 + ',' shift, and go to state 889 + ';' shift, and go to state 890 -state 826 +state 848 190 class_statement: method_modifiers function is_reference . "identifier (T_STRING)" @37 '(' parameter_list ')' method_body - "identifier (T_STRING)" shift, and go to state 870 + "identifier (T_STRING)" shift, and go to state 891 -state 827 +state 849 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" . '=' static_scalar - '=' shift, and go to state 871 + '=' shift, and go to state 892 -state 828 +state 850 27 inner_statement_list: inner_statement_list . @4 inner_statement 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list . '}' - '}' shift, and go to state 872 + '}' shift, and go to state 893 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 829 +state 851 - 328 lexical_var_list: '&' . "variable (T_VARIABLE)" + 342 lexical_var_list: '&' . "variable (T_VARIABLE)" - "variable (T_VARIABLE)" shift, and go to state 873 + "variable (T_VARIABLE)" shift, and go to state 894 -state 830 +state 852 - 327 lexical_var_list: "variable (T_VARIABLE)" . + 341 lexical_var_list: "variable (T_VARIABLE)" . - $default reduce using rule 327 (lexical_var_list) + $default reduce using rule 341 (lexical_var_list) -state 831 +state 853 - 324 lexical_vars: "use (T_USE)" '(' lexical_var_list . ')' - 325 lexical_var_list: lexical_var_list . ',' "variable (T_VARIABLE)" - 326 | lexical_var_list . ',' '&' "variable (T_VARIABLE)" + 338 lexical_vars: "use (T_USE)" '(' lexical_var_list . ')' + 339 lexical_var_list: lexical_var_list . ',' "variable (T_VARIABLE)" + 340 | lexical_var_list . ',' '&' "variable (T_VARIABLE)" - ',' shift, and go to state 874 - ')' shift, and go to state 875 + ',' shift, and go to state 895 + ')' shift, and go to state 896 -state 832 +state 854 27 inner_statement_list: inner_statement_list . @4 inner_statement - 319 expr_without_variable: function is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list . '}' + 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list . '}' - '}' shift, and go to state 876 + '}' shift, and go to state 897 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 833 +state 855 159 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" . 160 | non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 877 + '=' shift, and go to state 898 $default reduce using rule 159 (non_empty_parameter_list) -state 834 +state 856 161 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 878 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 899 + static_class_constant go to state 470 -state 835 +state 857 156 non_empty_parameter_list: optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 156 (non_empty_parameter_list) -state 836 - - 424 method: '(' @65 function_call_parameter_list ')' . - - $default reduce using rule 424 (method) - - -state 837 - - 421 array_method_dereference: array_method_dereference '[' dim_offset ']' . +state 858 - $default reduce using rule 421 (array_method_dereference) + 438 method: '(' @68 function_call_parameter_list ')' . + $default reduce using rule 438 (method) -state 838 - 422 array_method_dereference: method '[' dim_offset ']' . +state 859 - $default reduce using rule 422 (array_method_dereference) + 435 array_method_dereference: array_method_dereference '[' dim_offset ']' . + $default reduce using rule 435 (array_method_dereference) -state 839 - 420 variable_property: "-> (T_OBJECT_OPERATOR)" object_property . @64 method_or_not +state 860 - $default reduce using rule 419 (@64) + 436 array_method_dereference: method '[' dim_offset ']' . - @64 go to state 879 + $default reduce using rule 436 (array_method_dereference) -state 840 +state 861 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" . '(' expr ')' ':' @35 inner_statement_list - '(' shift, and go to state 880 + '(' shift, and go to state 900 -state 841 +state 862 151 new_else_single: "else (T_ELSE)" . ':' inner_statement_list - ':' shift, and go to state 881 + ':' shift, and go to state 901 -state 842 +state 863 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single . "endif (T_ENDIF)" ';' - "endif (T_ENDIF)" shift, and go to state 882 + "endif (T_ENDIF)" shift, and go to state 902 -state 843 +state 864 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' . expr ')' @34 statement @@ -22197,12 +22697,12 @@ state 843 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -22214,7 +22714,7 @@ state 843 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -22224,141 +22724,142 @@ state 843 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 883 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 903 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 844 +state 865 149 else_single: "else (T_ELSE)" statement . $default reduce using rule 149 (else_single) -state 845 +state 866 141 while_statement: ':' inner_statement_list "endwhile (T_ENDWHILE)" ';' . $default reduce using rule 141 (while_statement) -state 846 +state 867 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' . @15 for_statement $default reduce using rule 50 (@15) - @15 go to state 884 + @15 go to state 904 -state 847 +state 868 124 foreach_statement: ':' . inner_statement_list "endforeach (T_ENDFOREACH)" ';' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 885 + inner_statement_list go to state 905 -state 848 +state 869 123 foreach_statement: statement . $default reduce using rule 123 (foreach_statement) -state 849 +state 870 72 unticked_statement: "foreach (T_FOREACH)" '(' expr_without_variable "as (T_AS)" @19 variable foreach_optional_arg ')' @20 foreach_statement . $default reduce using rule 72 (unticked_statement) -state 850 +state 871 69 unticked_statement: "foreach (T_FOREACH)" '(' variable "as (T_AS)" @17 foreach_variable foreach_optional_arg ')' @18 foreach_statement . $default reduce using rule 69 (unticked_statement) -state 851 +state 872 132 switch_case_list: ':' ';' case_list "endswitch (T_ENDSWITCH)" ';' . $default reduce using rule 132 (switch_case_list) -state 852 +state 873 135 case_list: case_list "case (T_CASE)" expr case_separator . @32 inner_statement_list $default reduce using rule 134 (@32) - @32 go to state 886 + @32 go to state 906 -state 853 +state 874 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 . inner_statement_list $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 887 + inner_statement_list go to state 907 -state 854 +state 875 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 . "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches - "variable (T_VARIABLE)" shift, and go to state 888 + "variable (T_VARIABLE)" shift, and go to state 908 -state 855 +state 876 27 inner_statement_list: inner_statement_list . @4 inner_statement - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list . '}' + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list . '}' - '}' shift, and go to state 889 + '}' shift, and go to state 909 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 856 +state 877 231 class_constant_declaration: "const (T_CONST)" "identifier (T_STRING)" '=' static_scalar . $default reduce using rule 231 (class_constant_declaration) -state 857 +state 878 193 trait_list: trait_list ',' fully_qualified_class_name . $default reduce using rule 193 (trait_list) -state 858 +state 879 5 namespace_name: "identifier (T_STRING)" . 205 trait_method_reference: "identifier (T_STRING)" . @@ -22367,257 +22868,244 @@ state 858 $default reduce using rule 5 (namespace_name) -state 859 +state 880 195 trait_adaptations: '{' trait_adaptation_list . '}' - '}' shift, and go to state 890 + '}' shift, and go to state 910 -state 860 +state 881 197 trait_adaptation_list: non_empty_trait_adaptation_list . 199 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list . trait_adaptation_statement - "identifier (T_STRING)" shift, and go to state 858 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 879 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 $default reduce using rule 197 (trait_adaptation_list) - namespace_name go to state 511 - trait_adaptation_statement go to state 891 - trait_precedence go to state 862 - trait_method_reference go to state 863 - trait_method_reference_fully_qualified go to state 864 - trait_alias go to state 865 - fully_qualified_class_name go to state 866 + namespace_name go to state 515 + trait_adaptation_statement go to state 911 + trait_precedence go to state 883 + trait_method_reference go to state 884 + trait_method_reference_fully_qualified go to state 885 + trait_alias go to state 886 + fully_qualified_class_name go to state 887 -state 861 +state 882 198 non_empty_trait_adaptation_list: trait_adaptation_statement . $default reduce using rule 198 (non_empty_trait_adaptation_list) -state 862 +state 883 200 trait_adaptation_statement: trait_precedence . ';' - ';' shift, and go to state 892 + ';' shift, and go to state 912 -state 863 +state 884 208 trait_alias: trait_method_reference . "as (T_AS)" trait_modifiers "identifier (T_STRING)" 209 | trait_method_reference . "as (T_AS)" member_modifier - "as (T_AS)" shift, and go to state 893 + "as (T_AS)" shift, and go to state 913 -state 864 +state 885 202 trait_precedence: trait_method_reference_fully_qualified . "insteadof (T_INSTEADOF)" trait_reference_list 206 trait_method_reference: trait_method_reference_fully_qualified . - "insteadof (T_INSTEADOF)" shift, and go to state 894 + "insteadof (T_INSTEADOF)" shift, and go to state 914 $default reduce using rule 206 (trait_method_reference) -state 865 +state 886 201 trait_adaptation_statement: trait_alias . ';' - ';' shift, and go to state 895 + ';' shift, and go to state 915 -state 866 +state 887 207 trait_method_reference_fully_qualified: fully_qualified_class_name . ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" - ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 896 + ":: (T_PAAMAYIM_NEKUDOTAYIM)" shift, and go to state 916 -state 867 +state 888 229 class_variable_declaration: "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 897 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 917 + static_class_constant go to state 470 -state 868 +state 889 226 class_variable_declaration: class_variable_declaration ',' . "variable (T_VARIABLE)" 227 | class_variable_declaration ',' . "variable (T_VARIABLE)" '=' static_scalar - "variable (T_VARIABLE)" shift, and go to state 898 + "variable (T_VARIABLE)" shift, and go to state 918 -state 869 +state 890 186 class_statement: variable_modifiers @36 class_variable_declaration ';' . $default reduce using rule 186 (class_statement) -state 870 +state 891 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" . @37 '(' parameter_list ')' method_body $default reduce using rule 189 (@37) - @37 go to state 899 + @37 go to state 919 -state 871 +state 892 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 900 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 920 + static_class_constant go to state 470 -state 872 +state 893 99 unticked_function_declaration_statement: function is_reference "identifier (T_STRING)" @29 '(' parameter_list ')' '{' inner_statement_list '}' . $default reduce using rule 99 (unticked_function_declaration_statement) -state 873 +state 894 - 328 lexical_var_list: '&' "variable (T_VARIABLE)" . + 342 lexical_var_list: '&' "variable (T_VARIABLE)" . - $default reduce using rule 328 (lexical_var_list) + $default reduce using rule 342 (lexical_var_list) -state 874 +state 895 - 325 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)" - 326 | lexical_var_list ',' . '&' "variable (T_VARIABLE)" + 339 lexical_var_list: lexical_var_list ',' . "variable (T_VARIABLE)" + 340 | lexical_var_list ',' . '&' "variable (T_VARIABLE)" - '&' shift, and go to state 901 - "variable (T_VARIABLE)" shift, and go to state 902 + '&' shift, and go to state 921 + "variable (T_VARIABLE)" shift, and go to state 922 -state 875 +state 896 - 324 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' . + 338 lexical_vars: "use (T_USE)" '(' lexical_var_list ')' . - $default reduce using rule 324 (lexical_vars) + $default reduce using rule 338 (lexical_vars) -state 876 +state 897 - 319 expr_without_variable: function is_reference '(' @50 parameter_list ')' lexical_vars '{' inner_statement_list '}' . + 333 expr_without_variable: function is_reference '(' @53 parameter_list ')' lexical_vars '{' inner_statement_list '}' . - $default reduce using rule 319 (expr_without_variable) + $default reduce using rule 333 (expr_without_variable) -state 877 +state 898 160 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 903 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 923 + static_class_constant go to state 470 -state 878 +state 899 161 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 161 (non_empty_parameter_list) -state 879 - - 420 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @64 . method_or_not - - '(' shift, and go to state 682 - - $default reduce using rule 427 (method_or_not) - - array_method_dereference go to state 683 - method go to state 684 - method_or_not go to state 904 - - -state 880 +state 900 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' . expr ')' ':' @35 inner_statement_list @@ -22647,12 +23135,12 @@ state 880 "exit (T_EXIT)" shift, and go to state 28 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "variable name (T_STRING_VARNAME)" shift, and go to state 33 "variable (T_VARIABLE)" shift, and go to state 34 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 "function (T_FUNCTION)" shift, and go to state 47 - "static (T_STATIC)" shift, and go to state 116 + "static (T_STATIC)" shift, and go to state 117 "isset (T_ISSET)" shift, and go to state 58 "empty (T_EMPTY)" shift, and go to state 59 "list (T_LIST)" shift, and go to state 64 @@ -22664,7 +23152,7 @@ state 880 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -22674,106 +23162,107 @@ state 880 '"' shift, and go to state 82 namespace_name go to state 83 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 905 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 924 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 881 +state 901 151 new_else_single: "else (T_ELSE)" ':' . inner_statement_list $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 906 + inner_statement_list go to state 925 -state 882 +state 902 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" . ';' - ';' shift, and go to state 907 + ';' shift, and go to state 926 -state 883 +state 903 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr . ')' @34 statement - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 908 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 927 -state 884 +state 904 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 . for_statement @@ -22783,7 +23272,7 @@ state 884 "include_once (T_INCLUDE_ONCE)" shift, and go to state 8 "include (T_INCLUDE)" shift, and go to state 9 "print (T_PRINT)" shift, and go to state 10 - ':' shift, and go to state 909 + ':' shift, and go to state 928 '+' shift, and go to state 11 '-' shift, and go to state 12 '!' shift, and go to state 13 @@ -22838,7 +23327,7 @@ state 884 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -22850,54 +23339,55 @@ state 884 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 910 + statement go to state 929 unticked_statement go to state 87 - for_statement go to state 911 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + for_statement go to state 930 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 885 +state 905 27 inner_statement_list: inner_statement_list . @4 inner_statement 124 foreach_statement: ':' inner_statement_list . "endforeach (T_ENDFOREACH)" ';' - "endforeach (T_ENDFOREACH)" shift, and go to state 912 + "endforeach (T_ENDFOREACH)" shift, and go to state 931 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 886 +state 906 135 case_list: case_list "case (T_CASE)" expr case_separator @32 . inner_statement_list $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 913 + inner_statement_list go to state 932 -state 887 +state 907 27 inner_statement_list: inner_statement_list . @4 inner_statement 137 case_list: case_list "default (T_DEFAULT)" case_separator @33 inner_statement_list . @@ -22908,209 +23398,202 @@ state 887 '}' reduce using rule 137 (case_list) $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 888 +state 908 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" . ')' @25 '{' inner_statement_list '}' @26 additional_catches - ')' shift, and go to state 914 + ')' shift, and go to state 933 -state 889 +state 909 - 321 expr_without_variable: "static (T_STATIC)" function is_reference '(' @51 parameter_list ')' lexical_vars '{' inner_statement_list '}' . + 335 expr_without_variable: "static (T_STATIC)" function is_reference '(' @54 parameter_list ')' lexical_vars '{' inner_statement_list '}' . - $default reduce using rule 321 (expr_without_variable) + $default reduce using rule 335 (expr_without_variable) -state 890 +state 910 195 trait_adaptations: '{' trait_adaptation_list '}' . $default reduce using rule 195 (trait_adaptations) -state 891 +state 911 199 non_empty_trait_adaptation_list: non_empty_trait_adaptation_list trait_adaptation_statement . $default reduce using rule 199 (non_empty_trait_adaptation_list) -state 892 +state 912 200 trait_adaptation_statement: trait_precedence ';' . $default reduce using rule 200 (trait_adaptation_statement) -state 893 +state 913 208 trait_alias: trait_method_reference "as (T_AS)" . trait_modifiers "identifier (T_STRING)" 209 | trait_method_reference "as (T_AS)" . member_modifier - "public (T_PUBLIC)" shift, and go to state 722 - "protected (T_PROTECTED)" shift, and go to state 723 - "private (T_PRIVATE)" shift, and go to state 724 - "final (T_FINAL)" shift, and go to state 725 - "abstract (T_ABSTRACT)" shift, and go to state 726 - "static (T_STATIC)" shift, and go to state 727 + "public (T_PUBLIC)" shift, and go to state 739 + "protected (T_PROTECTED)" shift, and go to state 740 + "private (T_PRIVATE)" shift, and go to state 741 + "final (T_FINAL)" shift, and go to state 742 + "abstract (T_ABSTRACT)" shift, and go to state 743 + "static (T_STATIC)" shift, and go to state 744 $default reduce using rule 210 (trait_modifiers) - trait_modifiers go to state 915 - member_modifier go to state 916 + trait_modifiers go to state 934 + member_modifier go to state 935 -state 894 +state 914 202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" . trait_reference_list - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - trait_reference_list go to state 917 - fully_qualified_class_name go to state 918 + namespace_name go to state 515 + trait_reference_list go to state 936 + fully_qualified_class_name go to state 937 -state 895 +state 915 201 trait_adaptation_statement: trait_alias ';' . $default reduce using rule 201 (trait_adaptation_statement) -state 896 +state 916 207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 919 + "identifier (T_STRING)" shift, and go to state 938 -state 897 +state 917 229 class_variable_declaration: "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 229 (class_variable_declaration) -state 898 +state 918 226 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" . 227 | class_variable_declaration ',' "variable (T_VARIABLE)" . '=' static_scalar - '=' shift, and go to state 920 + '=' shift, and go to state 939 $default reduce using rule 226 (class_variable_declaration) -state 899 +state 919 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 . '(' parameter_list ')' method_body - '(' shift, and go to state 921 + '(' shift, and go to state 940 -state 900 +state 920 230 class_constant_declaration: class_constant_declaration ',' "identifier (T_STRING)" '=' static_scalar . $default reduce using rule 230 (class_constant_declaration) -state 901 +state 921 - 326 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)" + 340 lexical_var_list: lexical_var_list ',' '&' . "variable (T_VARIABLE)" - "variable (T_VARIABLE)" shift, and go to state 922 + "variable (T_VARIABLE)" shift, and go to state 941 -state 902 +state 922 - 325 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" . + 339 lexical_var_list: lexical_var_list ',' "variable (T_VARIABLE)" . - $default reduce using rule 325 (lexical_var_list) + $default reduce using rule 339 (lexical_var_list) -state 903 +state 923 160 non_empty_parameter_list: non_empty_parameter_list ',' optional_class_type '&' "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 160 (non_empty_parameter_list) -state 904 - - 420 variable_property: "-> (T_OBJECT_OPERATOR)" object_property @64 method_or_not . - - $default reduce using rule 420 (variable_property) - - -state 905 +state 924 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr . ')' ':' @35 inner_statement_list - 264 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @42 expr - 266 | expr . "&& (T_BOOLEAN_AND)" @43 expr - 268 | expr . "or (T_LOGICAL_OR)" @44 expr - 270 | expr . "and (T_LOGICAL_AND)" @45 expr - 271 | expr . "xor (T_LOGICAL_XOR)" expr - 272 | expr . '|' expr - 273 | expr . '&' expr - 274 | expr . '^' expr - 275 | expr . '.' expr - 276 | expr . '+' expr - 277 | expr . '-' expr - 278 | expr . '*' expr - 279 | expr . '/' expr - 280 | expr . '%' expr - 281 | expr . "<< (T_SL)" expr - 282 | expr . ">> (T_SR)" expr - 287 | expr . "=== (T_IS_IDENTICAL)" expr - 288 | expr . "!== (T_IS_NOT_IDENTICAL)" expr - 289 | expr . "== (T_IS_EQUAL)" expr - 290 | expr . "!= (T_IS_NOT_EQUAL)" expr - 291 | expr . '<' expr - 292 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr - 293 | expr . '>' expr - 294 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr - 295 | expr . "instanceof (T_INSTANCEOF)" class_name_reference - 299 | expr . '?' @46 expr ':' @47 expr - 301 | expr . '?' ':' @48 expr - - "or (T_LOGICAL_OR)" shift, and go to state 233 - "xor (T_LOGICAL_XOR)" shift, and go to state 234 - "and (T_LOGICAL_AND)" shift, and go to state 235 - '?' shift, and go to state 236 - "|| (T_BOOLEAN_OR)" shift, and go to state 237 - "&& (T_BOOLEAN_AND)" shift, and go to state 238 - '|' shift, and go to state 239 - '^' shift, and go to state 240 - '&' shift, and go to state 241 - "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 242 - "=== (T_IS_IDENTICAL)" shift, and go to state 243 - "!= (T_IS_NOT_EQUAL)" shift, and go to state 244 - "== (T_IS_EQUAL)" shift, and go to state 245 - '<' shift, and go to state 246 - '>' shift, and go to state 247 - ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 248 - "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 249 - ">> (T_SR)" shift, and go to state 250 - "<< (T_SL)" shift, and go to state 251 - '+' shift, and go to state 252 - '-' shift, and go to state 253 - '.' shift, and go to state 254 - '*' shift, and go to state 255 - '/' shift, and go to state 256 - '%' shift, and go to state 257 - "instanceof (T_INSTANCEOF)" shift, and go to state 258 - ')' shift, and go to state 923 + 275 expr_without_variable: expr . "|| (T_BOOLEAN_OR)" @44 expr + 277 | expr . "&& (T_BOOLEAN_AND)" @45 expr + 279 | expr . "or (T_LOGICAL_OR)" @46 expr + 281 | expr . "and (T_LOGICAL_AND)" @47 expr + 282 | expr . "xor (T_LOGICAL_XOR)" expr + 283 | expr . '|' expr + 284 | expr . '&' expr + 285 | expr . '^' expr + 286 | expr . '.' expr + 287 | expr . '+' expr + 288 | expr . '-' expr + 289 | expr . '*' expr + 290 | expr . '/' expr + 291 | expr . '%' expr + 292 | expr . "<< (T_SL)" expr + 293 | expr . ">> (T_SR)" expr + 298 | expr . "=== (T_IS_IDENTICAL)" expr + 299 | expr . "!== (T_IS_NOT_IDENTICAL)" expr + 300 | expr . "== (T_IS_EQUAL)" expr + 301 | expr . "!= (T_IS_NOT_EQUAL)" expr + 302 | expr . '<' expr + 303 | expr . "<= (T_IS_SMALLER_OR_EQUAL)" expr + 304 | expr . '>' expr + 305 | expr . ">= (T_IS_GREATER_OR_EQUAL)" expr + 306 | expr . "instanceof (T_INSTANCEOF)" class_name_reference + 313 | expr . '?' @49 expr ':' @50 expr + 315 | expr . '?' ':' @51 expr + + "or (T_LOGICAL_OR)" shift, and go to state 235 + "xor (T_LOGICAL_XOR)" shift, and go to state 236 + "and (T_LOGICAL_AND)" shift, and go to state 237 + '?' shift, and go to state 238 + "|| (T_BOOLEAN_OR)" shift, and go to state 239 + "&& (T_BOOLEAN_AND)" shift, and go to state 240 + '|' shift, and go to state 241 + '^' shift, and go to state 242 + '&' shift, and go to state 243 + "!== (T_IS_NOT_IDENTICAL)" shift, and go to state 244 + "=== (T_IS_IDENTICAL)" shift, and go to state 245 + "!= (T_IS_NOT_EQUAL)" shift, and go to state 246 + "== (T_IS_EQUAL)" shift, and go to state 247 + '<' shift, and go to state 248 + '>' shift, and go to state 249 + ">= (T_IS_GREATER_OR_EQUAL)" shift, and go to state 250 + "<= (T_IS_SMALLER_OR_EQUAL)" shift, and go to state 251 + ">> (T_SR)" shift, and go to state 252 + "<< (T_SL)" shift, and go to state 253 + '+' shift, and go to state 254 + '-' shift, and go to state 255 + '.' shift, and go to state 256 + '*' shift, and go to state 257 + '/' shift, and go to state 258 + '%' shift, and go to state 259 + "instanceof (T_INSTANCEOF)" shift, and go to state 260 + ')' shift, and go to state 942 -state 906 +state 925 27 inner_statement_list: inner_statement_list . @4 inner_statement 151 new_else_single: "else (T_ELSE)" ':' inner_statement_list . @@ -23118,56 +23601,56 @@ state 906 "endif (T_ENDIF)" reduce using rule 151 (new_else_single) $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 907 +state 926 41 unticked_statement: "if (T_IF)" '(' expr ')' ':' @7 inner_statement_list @8 new_elseif_list new_else_single "endif (T_ENDIF)" ';' . $default reduce using rule 41 (unticked_statement) -state 908 +state 927 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' . @34 statement $default reduce using rule 143 (@34) - @34 go to state 924 + @34 go to state 943 -state 909 +state 928 122 for_statement: ':' . inner_statement_list "endfor (T_ENDFOR)" ';' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 925 + inner_statement_list go to state 944 -state 910 +state 929 121 for_statement: statement . $default reduce using rule 121 (for_statement) -state 911 +state 930 51 unticked_statement: "for (T_FOR)" '(' for_expr ';' @13 for_expr ';' @14 for_expr ')' @15 for_statement . $default reduce using rule 51 (unticked_statement) -state 912 +state 931 124 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" . ';' - ';' shift, and go to state 926 + ';' shift, and go to state 945 -state 913 +state 932 27 inner_statement_list: inner_statement_list . @4 inner_statement 135 case_list: case_list "case (T_CASE)" expr case_separator @32 inner_statement_list . @@ -23178,26 +23661,26 @@ state 913 '}' reduce using rule 135 (case_list) $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 914 +state 933 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' . @25 '{' inner_statement_list '}' @26 additional_catches $default reduce using rule 79 (@25) - @25 go to state 927 + @25 go to state 946 -state 915 +state 934 208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers . "identifier (T_STRING)" - "identifier (T_STRING)" shift, and go to state 928 + "identifier (T_STRING)" shift, and go to state 947 -state 916 +state 935 209 trait_alias: trait_method_reference "as (T_AS)" member_modifier . 211 trait_modifiers: member_modifier . @@ -23206,97 +23689,97 @@ state 916 $default reduce using rule 209 (trait_alias) -state 917 +state 936 202 trait_precedence: trait_method_reference_fully_qualified "insteadof (T_INSTEADOF)" trait_reference_list . 204 trait_reference_list: trait_reference_list . ',' fully_qualified_class_name - ',' shift, and go to state 929 + ',' shift, and go to state 948 $default reduce using rule 202 (trait_precedence) -state 918 +state 937 203 trait_reference_list: fully_qualified_class_name . $default reduce using rule 203 (trait_reference_list) -state 919 +state 938 207 trait_method_reference_fully_qualified: fully_qualified_class_name ":: (T_PAAMAYIM_NEKUDOTAYIM)" "identifier (T_STRING)" . $default reduce using rule 207 (trait_method_reference_fully_qualified) -state 920 +state 939 227 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' . static_scalar - '+' shift, and go to state 456 - '-' shift, and go to state 457 - '[' shift, and go to state 458 + '+' shift, and go to state 459 + '-' shift, and go to state 460 + '[' shift, and go to state 461 "integer number (T_LNUMBER)" shift, and go to state 30 "floating-point number (T_DNUMBER)" shift, and go to state 31 - "identifier (T_STRING)" shift, and go to state 115 + "identifier (T_STRING)" shift, and go to state 116 "quoted-string (T_CONSTANT_ENCAPSED_STRING)" shift, and go to state 36 - "static (T_STATIC)" shift, and go to state 137 - "array (T_ARRAY)" shift, and go to state 459 + "static (T_STATIC)" shift, and go to state 138 + "array (T_ARRAY)" shift, and go to state 462 "__CLASS__ (T_CLASS_C)" shift, and go to state 66 "__TRAIT__ (T_TRAIT_C)" shift, and go to state 67 "__METHOD__ (T_METHOD_C)" shift, and go to state 68 "__FUNCTION__ (T_FUNC_C)" shift, and go to state 69 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 - "heredoc start (T_START_HEREDOC)" shift, and go to state 460 - "namespace (T_NAMESPACE)" shift, and go to state 461 + "heredoc start (T_START_HEREDOC)" shift, and go to state 463 + "namespace (T_NAMESPACE)" shift, and go to state 464 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 - "\\ (T_NS_SEPARATOR)" shift, and go to state 462 + "\\ (T_NS_SEPARATOR)" shift, and go to state 465 - namespace_name go to state 463 - class_name go to state 464 - common_scalar go to state 465 - static_scalar go to state 930 - static_class_constant go to state 467 + namespace_name go to state 466 + class_name go to state 467 + common_scalar go to state 468 + static_scalar go to state 949 + static_class_constant go to state 470 -state 921 +state 940 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' . parameter_list ')' method_body - "identifier (T_STRING)" shift, and go to state 115 - "array (T_ARRAY)" shift, and go to state 601 - "callable (T_CALLABLE)" shift, and go to state 602 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "array (T_ARRAY)" shift, and go to state 607 + "callable (T_CALLABLE)" shift, and go to state 608 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 ')' reduce using rule 153 (parameter_list) $default reduce using rule 162 (optional_class_type) - namespace_name go to state 511 - parameter_list go to state 931 - non_empty_parameter_list go to state 604 - optional_class_type go to state 605 - fully_qualified_class_name go to state 606 + namespace_name go to state 515 + parameter_list go to state 950 + non_empty_parameter_list go to state 610 + optional_class_type go to state 611 + fully_qualified_class_name go to state 612 -state 922 +state 941 - 326 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" . + 340 lexical_var_list: lexical_var_list ',' '&' "variable (T_VARIABLE)" . - $default reduce using rule 326 (lexical_var_list) + $default reduce using rule 340 (lexical_var_list) -state 923 +state 942 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' . ':' @35 inner_statement_list - ':' shift, and go to state 932 + ':' shift, and go to state 951 -state 924 +state 943 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 . statement @@ -23360,7 +23843,7 @@ state 924 "__LINE__ (T_LINE)" shift, and go to state 70 "__FILE__ (T_FILE)" shift, and go to state 71 "heredoc start (T_START_HEREDOC)" shift, and go to state 72 - "namespace (T_NAMESPACE)" shift, and go to state 117 + "namespace (T_NAMESPACE)" shift, and go to state 118 "__NAMESPACE__ (T_NS_C)" shift, and go to state 74 "__DIR__ (T_DIR)" shift, and go to state 75 "\\ (T_NS_SEPARATOR)" shift, and go to state 76 @@ -23372,191 +23855,192 @@ state 924 '"' shift, and go to state 82 namespace_name go to state 83 - statement go to state 933 + statement go to state 952 unticked_statement go to state 87 - expr_without_variable go to state 94 - function go to state 118 - function_call go to state 96 - class_name go to state 97 - common_scalar go to state 98 - scalar go to state 99 - expr go to state 100 - r_variable go to state 101 - rw_variable go to state 102 - variable go to state 103 - variable_without_objects go to state 104 - static_member go to state 105 - variable_class_name go to state 106 - array_function_dereference go to state 107 - base_variable_with_function_calls go to state 108 - base_variable go to state 109 - reference_variable go to state 110 - compound_variable go to state 111 - simple_indirect_reference go to state 112 - internal_functions_in_yacc go to state 113 - class_constant go to state 114 + new_expr go to state 94 + expr_without_variable go to state 95 + function go to state 119 + function_call go to state 97 + class_name go to state 98 + common_scalar go to state 99 + scalar go to state 100 + expr go to state 101 + r_variable go to state 102 + rw_variable go to state 103 + variable go to state 104 + variable_without_objects go to state 105 + static_member go to state 106 + variable_class_name go to state 107 + array_function_dereference go to state 108 + base_variable_with_function_calls go to state 109 + base_variable go to state 110 + reference_variable go to state 111 + compound_variable go to state 112 + simple_indirect_reference go to state 113 + internal_functions_in_yacc go to state 114 + class_constant go to state 115 -state 925 +state 944 27 inner_statement_list: inner_statement_list . @4 inner_statement 122 for_statement: ':' inner_statement_list . "endfor (T_ENDFOR)" ';' - "endfor (T_ENDFOR)" shift, and go to state 934 + "endfor (T_ENDFOR)" shift, and go to state 953 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 926 +state 945 124 foreach_statement: ':' inner_statement_list "endforeach (T_ENDFOREACH)" ';' . $default reduce using rule 124 (foreach_statement) -state 927 +state 946 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 . '{' inner_statement_list '}' @26 additional_catches - '{' shift, and go to state 935 + '{' shift, and go to state 954 -state 928 +state 947 208 trait_alias: trait_method_reference "as (T_AS)" trait_modifiers "identifier (T_STRING)" . $default reduce using rule 208 (trait_alias) -state 929 +state 948 204 trait_reference_list: trait_reference_list ',' . fully_qualified_class_name - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - fully_qualified_class_name go to state 936 + namespace_name go to state 515 + fully_qualified_class_name go to state 955 -state 930 +state 949 227 class_variable_declaration: class_variable_declaration ',' "variable (T_VARIABLE)" '=' static_scalar . $default reduce using rule 227 (class_variable_declaration) -state 931 +state 950 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list . ')' method_body - ')' shift, and go to state 937 + ')' shift, and go to state 956 -state 932 +state 951 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' . @35 inner_statement_list $default reduce using rule 146 (@35) - @35 go to state 938 + @35 go to state 957 -state 933 +state 952 144 elseif_list: elseif_list "elseif (T_ELSEIF)" '(' expr ')' @34 statement . $default reduce using rule 144 (elseif_list) -state 934 +state 953 122 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" . ';' - ';' shift, and go to state 939 + ';' shift, and go to state 958 -state 935 +state 954 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' . inner_statement_list '}' @26 additional_catches $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 940 + inner_statement_list go to state 959 -state 936 +state 955 204 trait_reference_list: trait_reference_list ',' fully_qualified_class_name . $default reduce using rule 204 (trait_reference_list) -state 937 +state 956 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' . method_body - ';' shift, and go to state 941 - '{' shift, and go to state 942 + ';' shift, and go to state 960 + '{' shift, and go to state 961 - method_body go to state 943 + method_body go to state 962 -state 938 +state 957 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 . inner_statement_list $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 944 + inner_statement_list go to state 963 -state 939 +state 958 122 for_statement: ':' inner_statement_list "endfor (T_ENDFOR)" ';' . $default reduce using rule 122 (for_statement) -state 940 +state 959 27 inner_statement_list: inner_statement_list . @4 inner_statement 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list . '}' @26 additional_catches - '}' shift, and go to state 945 + '}' shift, and go to state 964 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 941 +state 960 212 method_body: ';' . $default reduce using rule 212 (method_body) -state 942 +state 961 213 method_body: '{' . inner_statement_list '}' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 946 + inner_statement_list go to state 965 -state 943 +state 962 190 class_statement: method_modifiers function is_reference "identifier (T_STRING)" @37 '(' parameter_list ')' method_body . $default reduce using rule 190 (class_statement) -state 944 +state 963 27 inner_statement_list: inner_statement_list . @4 inner_statement 147 new_elseif_list: new_elseif_list "elseif (T_ELSEIF)" '(' expr ')' ':' @35 inner_statement_list . @@ -23566,163 +24050,163 @@ state 944 "endif (T_ENDIF)" reduce using rule 147 (new_elseif_list) $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 945 +state 964 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' . @26 additional_catches $default reduce using rule 80 (@26) - @26 go to state 947 + @26 go to state 966 -state 946 +state 965 27 inner_statement_list: inner_statement_list . @4 inner_statement 213 method_body: '{' inner_statement_list . '}' - '}' shift, and go to state 948 + '}' shift, and go to state 967 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 947 +state 966 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 . additional_catches - "catch (T_CATCH)" shift, and go to state 949 + "catch (T_CATCH)" shift, and go to state 968 $default reduce using rule 85 (additional_catches) - additional_catches go to state 950 - non_empty_additional_catches go to state 951 - additional_catch go to state 952 + additional_catches go to state 969 + non_empty_additional_catches go to state 970 + additional_catch go to state 971 -state 948 +state 967 213 method_body: '{' inner_statement_list '}' . $default reduce using rule 213 (method_body) -state 949 +state 968 90 additional_catch: "catch (T_CATCH)" . '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}' - '(' shift, and go to state 953 + '(' shift, and go to state 972 -state 950 +state 969 81 unticked_statement: "try (T_TRY)" @22 '{' inner_statement_list '}' "catch (T_CATCH)" '(' @23 fully_qualified_class_name @24 "variable (T_VARIABLE)" ')' @25 '{' inner_statement_list '}' @26 additional_catches . $default reduce using rule 81 (unticked_statement) -state 951 +state 970 84 additional_catches: non_empty_additional_catches . 87 non_empty_additional_catches: non_empty_additional_catches . additional_catch - "catch (T_CATCH)" shift, and go to state 949 + "catch (T_CATCH)" shift, and go to state 968 $default reduce using rule 84 (additional_catches) - additional_catch go to state 954 + additional_catch go to state 973 -state 952 +state 971 86 non_empty_additional_catches: additional_catch . $default reduce using rule 86 (non_empty_additional_catches) -state 953 +state 972 90 additional_catch: "catch (T_CATCH)" '(' . fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}' - "identifier (T_STRING)" shift, and go to state 115 - "namespace (T_NAMESPACE)" shift, and go to state 509 - "\\ (T_NS_SEPARATOR)" shift, and go to state 510 + "identifier (T_STRING)" shift, and go to state 116 + "namespace (T_NAMESPACE)" shift, and go to state 513 + "\\ (T_NS_SEPARATOR)" shift, and go to state 514 - namespace_name go to state 511 - fully_qualified_class_name go to state 955 + namespace_name go to state 515 + fully_qualified_class_name go to state 974 -state 954 +state 973 87 non_empty_additional_catches: non_empty_additional_catches additional_catch . $default reduce using rule 87 (non_empty_additional_catches) -state 955 +state 974 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name . @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}' $default reduce using rule 88 (@27) - @27 go to state 956 + @27 go to state 975 -state 956 +state 975 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 . "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}' - "variable (T_VARIABLE)" shift, and go to state 957 + "variable (T_VARIABLE)" shift, and go to state 976 -state 957 +state 976 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" . ')' @28 '{' inner_statement_list '}' - ')' shift, and go to state 958 + ')' shift, and go to state 977 -state 958 +state 977 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' . @28 '{' inner_statement_list '}' $default reduce using rule 89 (@28) - @28 go to state 959 + @28 go to state 978 -state 959 +state 978 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 . '{' inner_statement_list '}' - '{' shift, and go to state 960 + '{' shift, and go to state 979 -state 960 +state 979 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' . inner_statement_list '}' $default reduce using rule 28 (inner_statement_list) - inner_statement_list go to state 961 + inner_statement_list go to state 980 -state 961 +state 980 27 inner_statement_list: inner_statement_list . @4 inner_statement 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list . '}' - '}' shift, and go to state 962 + '}' shift, and go to state 981 $default reduce using rule 26 (@4) - @4 go to state 363 + @4 go to state 366 -state 962 +state 981 90 additional_catch: "catch (T_CATCH)" '(' fully_qualified_class_name @27 "variable (T_VARIABLE)" ')' @28 '{' inner_statement_list '}' . diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index cba3454d8..b61136b59 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_language_parser.y 315018 2011-08-16 12:13:35Z felipe $ */ +/* $Id: zend_language_parser.y 321634 2012-01-01 13:15:04Z felipe $ */ /* * LALR shift/reduce conflicts and how they are resolved: @@ -50,7 +50,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*); %} %pure_parser -%expect 2 +%expect 3 %token END 0 "end of file" %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE @@ -694,12 +694,37 @@ non_empty_for_expr: | expr { $$ = $1; } ; +chaining_method_or_property: + chaining_method_or_property variable_property { $$.EA = $2.EA; } + | variable_property { $$.EA = $1.EA; } +; + +chaining_dereference: + chaining_dereference '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); } + | '[' dim_offset ']' { zend_do_pop_object(&$1 TSRMLS_CC); fetch_array_dim(&$$, &$1, &$2 TSRMLS_CC); } +; + +chaining_instance_call: + chaining_dereference { zend_do_push_object(&$1 TSRMLS_CC); } chaining_method_or_property { $$ = $3; } + | chaining_dereference { zend_do_push_object(&$1 TSRMLS_CC); $$ = $1; } + | chaining_method_or_property { $$ = $1; } +; + +instance_call: + /* empty */ { $$ = $0; } + | { zend_do_push_object(&$0 TSRMLS_CC); zend_do_begin_variable_parse(TSRMLS_C); } + chaining_instance_call { zend_do_pop_object(&$$ TSRMLS_CC); zend_do_end_variable_parse(&$2, BP_VAR_R, 0 TSRMLS_CC); } +; + +new_expr: + 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);} +; + 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_assign(&$$, &$1, &$3 TSRMLS_CC); } | variable '=' '&' variable { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$4, BP_VAR_W, 1 TSRMLS_CC); zend_do_end_variable_parse(&$1, BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&$$, &$1, &$4 TSRMLS_CC); } | variable '=' '&' T_NEW class_name_reference { zend_error(E_DEPRECATED, "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(&$1, BP_VAR_W, 0 TSRMLS_CC); $3.EA = ZEND_PARSED_NEW; 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);} | T_CLONE expr { zend_do_clone(&$$, &$2 TSRMLS_CC); } | variable T_PLUS_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &$$, &$1, &$3 TSRMLS_CC); } | variable T_MINUS_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &$$, &$1, &$3 TSRMLS_CC); } @@ -746,6 +771,8 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &$$, &$3, &$1 TSRMLS_CC); } | expr T_INSTANCEOF class_name_reference { zend_do_instanceof(&$$, &$1, &$3, 0 TSRMLS_CC); } | '(' expr ')' { $$ = $2; } + | new_expr { $$ = $1; } + | '(' new_expr ')' { $$ = $2; } instance_call { $$ = $5; } | expr '?' { zend_do_begin_qm_op(&$1, &$2 TSRMLS_CC); } expr ':' { zend_do_qm_true(&$4, &$2, &$5 TSRMLS_CC); } expr { zend_do_qm_false(&$$, &$7, &$2, &$5 TSRMLS_CC); } diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 4e4825f78..a03656e85 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,10 +1,10 @@ -/* Generated by re2c 0.13.5 on Tue Sep 13 17:29:46 2011 */ +/* Generated by re2c 0.13.5 on Sun Jan 1 17:48:29 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -23,7 +23,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.c 316628 2011-09-13 13:30:18Z dmitry $ */ +/* $Id: zend_language_scanner.c 321657 2012-01-01 22:52:23Z nlopess $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) @@ -758,6 +758,8 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC) if (compiler_result==1) { CG(active_op_array) = original_active_op_array; CG(unclean_shutdown)=1; + destroy_op_array(op_array TSRMLS_CC); + efree(op_array); retval = NULL; } else { zend_do_return(NULL, 0 TSRMLS_CC); @@ -904,6 +906,10 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo *t++ = '\v'; zendlval->value.str.len--; break; + case 'e': + *t++ = '\e'; + zendlval->value.str.len--; + break; case '"': case '`': if (*s != quote_type) { @@ -985,7 +991,7 @@ restart: yymore_restart: -#line 989 "Zend/zend_language_scanner.c" +#line 995 "Zend/zend_language_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1084,7 +1090,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1769 "Zend/zend_language_scanner.l" +#line 1775 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1144,7 +1150,7 @@ inline_html: HANDLE_NEWLINES(yytext, yyleng); return T_INLINE_HTML; } -#line 1148 "Zend/zend_language_scanner.c" +#line 1154 "Zend/zend_language_scanner.c" yy4: YYDEBUG(4, *YYCURSOR); yych = *++YYCURSOR; @@ -1162,7 +1168,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1757 "Zend/zend_language_scanner.l" +#line 1763 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1174,14 +1180,14 @@ yy6: goto inline_char_handler; } } -#line 1178 "Zend/zend_language_scanner.c" +#line 1184 "Zend/zend_language_scanner.c" yy7: YYDEBUG(7, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1734 "Zend/zend_language_scanner.l" +#line 1740 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1193,7 +1199,7 @@ yy7: goto inline_char_handler; } } -#line 1197 "Zend/zend_language_scanner.c" +#line 1203 "Zend/zend_language_scanner.c" yy9: YYDEBUG(9, *YYCURSOR); yych = *++YYCURSOR; @@ -1379,7 +1385,7 @@ yy35: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1694 "Zend/zend_language_scanner.l" +#line 1700 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1396,7 +1402,7 @@ yy35: BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } -#line 1400 "Zend/zend_language_scanner.c" +#line 1406 "Zend/zend_language_scanner.c" yy39: YYDEBUG(39, *YYCURSOR); yych = *++YYCURSOR; @@ -1423,7 +1429,7 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1712 "Zend/zend_language_scanner.l" +#line 1718 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1435,13 +1441,13 @@ yy43: goto inline_char_handler; } } -#line 1439 "Zend/zend_language_scanner.c" +#line 1445 "Zend/zend_language_scanner.c" yy45: YYDEBUG(45, *YYCURSOR); ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1725 "Zend/zend_language_scanner.l" +#line 1731 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1449,7 +1455,7 @@ yy45: BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG_WITH_ECHO; } -#line 1453 "Zend/zend_language_scanner.c" +#line 1459 "Zend/zend_language_scanner.c" yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; @@ -1476,7 +1482,7 @@ yy50: yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1747 "Zend/zend_language_scanner.l" +#line 1753 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1485,7 +1491,7 @@ yy51: BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } -#line 1489 "Zend/zend_language_scanner.c" +#line 1495 "Zend/zend_language_scanner.c" yy52: YYDEBUG(52, *YYCURSOR); ++YYCURSOR; @@ -1556,7 +1562,7 @@ yyc_ST_BACKQUOTE: yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2220 "Zend/zend_language_scanner.l" +#line 2226 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1597,7 +1603,7 @@ yy56: zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; } -#line 1601 "Zend/zend_language_scanner.c" +#line 1607 "Zend/zend_language_scanner.c" yy57: YYDEBUG(57, *YYCURSOR); yych = *++YYCURSOR; @@ -1608,12 +1614,12 @@ yy58: ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2164 "Zend/zend_language_scanner.l" +#line 2170 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; } -#line 1617 "Zend/zend_language_scanner.c" +#line 1623 "Zend/zend_language_scanner.c" yy60: YYDEBUG(60, *YYCURSOR); yych = *++YYCURSOR; @@ -1623,14 +1629,14 @@ yy61: ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2151 "Zend/zend_language_scanner.l" +#line 2157 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; } -#line 1634 "Zend/zend_language_scanner.c" +#line 1640 "Zend/zend_language_scanner.c" yy63: YYDEBUG(63, *YYCURSOR); yyaccept = 0; @@ -1646,24 +1652,24 @@ yy63: yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1851 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1656 "Zend/zend_language_scanner.c" +#line 1662 "Zend/zend_language_scanner.c" yy66: YYDEBUG(66, *YYCURSOR); ++YYCURSOR; YYDEBUG(67, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1436 "Zend/zend_language_scanner.l" +#line 1442 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1667 "Zend/zend_language_scanner.c" +#line 1673 "Zend/zend_language_scanner.c" yy68: YYDEBUG(68, *YYCURSOR); yych = *++YYCURSOR; @@ -1677,7 +1683,7 @@ yy70: ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1843 "Zend/zend_language_scanner.l" +#line 1849 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1685,7 +1691,7 @@ yy70: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1689 "Zend/zend_language_scanner.c" +#line 1695 "Zend/zend_language_scanner.c" yy72: YYDEBUG(72, *YYCURSOR); yych = *++YYCURSOR; @@ -1703,7 +1709,7 @@ yy73: ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1833 "Zend/zend_language_scanner.l" +#line 1839 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1711,7 +1717,7 @@ yy73: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1715 "Zend/zend_language_scanner.c" +#line 1721 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: @@ -1779,7 +1785,7 @@ yy77: yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2170 "Zend/zend_language_scanner.l" +#line 2176 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1828,7 +1834,7 @@ double_quotes_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; } -#line 1832 "Zend/zend_language_scanner.c" +#line 1838 "Zend/zend_language_scanner.c" yy79: YYDEBUG(79, *YYCURSOR); yych = *++YYCURSOR; @@ -1839,12 +1845,12 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2159 "Zend/zend_language_scanner.l" +#line 2165 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; } -#line 1848 "Zend/zend_language_scanner.c" +#line 1854 "Zend/zend_language_scanner.c" yy82: YYDEBUG(82, *YYCURSOR); yych = *++YYCURSOR; @@ -1854,14 +1860,14 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2151 "Zend/zend_language_scanner.l" +#line 2157 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; } -#line 1865 "Zend/zend_language_scanner.c" +#line 1871 "Zend/zend_language_scanner.c" yy85: YYDEBUG(85, *YYCURSOR); yyaccept = 0; @@ -1877,24 +1883,24 @@ yy85: yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1851 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1887 "Zend/zend_language_scanner.c" +#line 1893 "Zend/zend_language_scanner.c" yy88: YYDEBUG(88, *YYCURSOR); ++YYCURSOR; YYDEBUG(89, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1436 "Zend/zend_language_scanner.l" +#line 1442 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1898 "Zend/zend_language_scanner.c" +#line 1904 "Zend/zend_language_scanner.c" yy90: YYDEBUG(90, *YYCURSOR); yych = *++YYCURSOR; @@ -1908,7 +1914,7 @@ yy92: ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1843 "Zend/zend_language_scanner.l" +#line 1849 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1916,7 +1922,7 @@ yy92: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1920 "Zend/zend_language_scanner.c" +#line 1926 "Zend/zend_language_scanner.c" yy94: YYDEBUG(94, *YYCURSOR); yych = *++YYCURSOR; @@ -1934,7 +1940,7 @@ yy95: ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1833 "Zend/zend_language_scanner.l" +#line 1839 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1942,7 +1948,7 @@ yy95: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1946 "Zend/zend_language_scanner.c" +#line 1952 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_END_HEREDOC: @@ -1953,7 +1959,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2138 "Zend/zend_language_scanner.l" +#line 2144 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -1965,7 +1971,7 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); return T_END_HEREDOC; } -#line 1969 "Zend/zend_language_scanner.c" +#line 1975 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_HEREDOC: { @@ -2027,7 +2033,7 @@ yy103: yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2262 "Zend/zend_language_scanner.l" +#line 2268 "Zend/zend_language_scanner.l" { int newline = 0; @@ -2098,7 +2104,7 @@ heredoc_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; } -#line 2102 "Zend/zend_language_scanner.c" +#line 2108 "Zend/zend_language_scanner.c" yy105: YYDEBUG(105, *YYCURSOR); yych = *++YYCURSOR; @@ -2113,14 +2119,14 @@ yy107: ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2151 "Zend/zend_language_scanner.l" +#line 2157 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; } -#line 2124 "Zend/zend_language_scanner.c" +#line 2130 "Zend/zend_language_scanner.c" yy109: YYDEBUG(109, *YYCURSOR); yyaccept = 0; @@ -2136,24 +2142,24 @@ yy109: yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1851 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 2146 "Zend/zend_language_scanner.c" +#line 2152 "Zend/zend_language_scanner.c" yy112: YYDEBUG(112, *YYCURSOR); ++YYCURSOR; YYDEBUG(113, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1436 "Zend/zend_language_scanner.l" +#line 1442 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 2157 "Zend/zend_language_scanner.c" +#line 2163 "Zend/zend_language_scanner.c" yy114: YYDEBUG(114, *YYCURSOR); yych = *++YYCURSOR; @@ -2167,7 +2173,7 @@ yy116: ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1843 "Zend/zend_language_scanner.l" +#line 1849 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2175,7 +2181,7 @@ yy116: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 2179 "Zend/zend_language_scanner.c" +#line 2185 "Zend/zend_language_scanner.c" yy118: YYDEBUG(118, *YYCURSOR); yych = *++YYCURSOR; @@ -2193,7 +2199,7 @@ yy119: ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1833 "Zend/zend_language_scanner.l" +#line 1839 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2201,7 +2207,7 @@ yy119: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 2205 "Zend/zend_language_scanner.c" +#line 2211 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_IN_SCRIPTING: @@ -2382,13 +2388,13 @@ yy123: yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1874 "Zend/zend_language_scanner.l" +#line 1880 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 2392 "Zend/zend_language_scanner.c" +#line 2398 "Zend/zend_language_scanner.c" yy125: YYDEBUG(125, *YYCURSOR); yych = *++YYCURSOR; @@ -2614,11 +2620,11 @@ yy137: yy138: YYDEBUG(138, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1425 "Zend/zend_language_scanner.l" +#line 1431 "Zend/zend_language_scanner.l" { return yytext[0]; } -#line 2622 "Zend/zend_language_scanner.c" +#line 2628 "Zend/zend_language_scanner.c" yy139: YYDEBUG(139, *YYCURSOR); ++YYCURSOR; @@ -2627,7 +2633,7 @@ yy139: yy140: YYDEBUG(140, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1156 "Zend/zend_language_scanner.l" +#line 1162 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -2635,7 +2641,7 @@ yy140: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 2639 "Zend/zend_language_scanner.c" +#line 2645 "Zend/zend_language_scanner.c" yy141: YYDEBUG(141, *YYCURSOR); yych = *++YYCURSOR; @@ -2646,11 +2652,11 @@ yy142: ++YYCURSOR; YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1185 "Zend/zend_language_scanner.l" +#line 1191 "Zend/zend_language_scanner.l" { return T_NS_SEPARATOR; } -#line 2654 "Zend/zend_language_scanner.c" +#line 2660 "Zend/zend_language_scanner.c" yy144: YYDEBUG(144, *YYCURSOR); yych = *++YYCURSOR; @@ -2878,18 +2884,18 @@ yy167: ++YYCURSOR; YYDEBUG(168, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1430 "Zend/zend_language_scanner.l" +#line 1436 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return '{'; } -#line 2887 "Zend/zend_language_scanner.c" +#line 2893 "Zend/zend_language_scanner.c" yy169: YYDEBUG(169, *YYCURSOR); ++YYCURSOR; YYDEBUG(170, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1442 "Zend/zend_language_scanner.l" +#line 1448 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); if (!zend_stack_is_empty(&SCNG(state_stack))) { @@ -2897,7 +2903,7 @@ yy169: } return '}'; } -#line 2901 "Zend/zend_language_scanner.c" +#line 2907 "Zend/zend_language_scanner.c" yy171: YYDEBUG(171, *YYCURSOR); yyaccept = 2; @@ -2925,7 +2931,7 @@ yy171: yy172: YYDEBUG(172, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1488 "Zend/zend_language_scanner.l" +#line 1494 "Zend/zend_language_scanner.l" { if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ zendlval->value.lval = strtol(yytext, NULL, 0); @@ -2946,7 +2952,7 @@ yy172: zendlval->type = IS_LONG; return T_LNUMBER; } -#line 2950 "Zend/zend_language_scanner.c" +#line 2956 "Zend/zend_language_scanner.c" yy173: YYDEBUG(173, *YYCURSOR); yyaccept = 2; @@ -2974,7 +2980,7 @@ yy175: yy176: YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1881 "Zend/zend_language_scanner.l" +#line 1887 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -3008,14 +3014,14 @@ yy176: return T_COMMENT; } -#line 3012 "Zend/zend_language_scanner.c" +#line 3018 "Zend/zend_language_scanner.c" yy177: YYDEBUG(177, *YYCURSOR); ++YYCURSOR; yy178: YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1972 "Zend/zend_language_scanner.l" +#line 1978 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3083,14 +3089,14 @@ yy178: } return T_CONSTANT_ENCAPSED_STRING; } -#line 3087 "Zend/zend_language_scanner.c" +#line 3093 "Zend/zend_language_scanner.c" yy179: YYDEBUG(179, *YYCURSOR); ++YYCURSOR; yy180: YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2041 "Zend/zend_language_scanner.l" +#line 2047 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3131,24 +3137,24 @@ yy180: BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 3135 "Zend/zend_language_scanner.c" +#line 3141 "Zend/zend_language_scanner.c" yy181: YYDEBUG(181, *YYCURSOR); ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2132 "Zend/zend_language_scanner.l" +#line 2138 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 3146 "Zend/zend_language_scanner.c" +#line 3152 "Zend/zend_language_scanner.c" yy183: YYDEBUG(183, *YYCURSOR); ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2390 "Zend/zend_language_scanner.l" +#line 2396 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3157,7 +3163,7 @@ yy183: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 3161 "Zend/zend_language_scanner.c" +#line 3167 "Zend/zend_language_scanner.c" yy185: YYDEBUG(185, *YYCURSOR); ++YYCURSOR; @@ -3184,13 +3190,13 @@ yy187: yy189: YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1549 "Zend/zend_language_scanner.l" +#line 1555 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; return T_DNUMBER; } -#line 3194 "Zend/zend_language_scanner.c" +#line 3200 "Zend/zend_language_scanner.c" yy190: YYDEBUG(190, *YYCURSOR); yyaccept = 2; @@ -3282,7 +3288,7 @@ yy199: } YYDEBUG(201, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1467 "Zend/zend_language_scanner.l" +#line 1473 "Zend/zend_language_scanner.l" { char *bin = yytext + 2; /* Skip "0b" */ int len = yyleng - 2; @@ -3303,7 +3309,7 @@ yy199: return T_DNUMBER; } } -#line 3307 "Zend/zend_language_scanner.c" +#line 3313 "Zend/zend_language_scanner.c" yy202: YYDEBUG(202, *YYCURSOR); ++YYCURSOR; @@ -3315,7 +3321,7 @@ yy202: } YYDEBUG(204, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1509 "Zend/zend_language_scanner.l" +#line 1515 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -3336,7 +3342,7 @@ yy202: return T_DNUMBER; } } -#line 3340 "Zend/zend_language_scanner.c" +#line 3346 "Zend/zend_language_scanner.c" yy205: YYDEBUG(205, *YYCURSOR); ++YYCURSOR; @@ -3345,7 +3351,7 @@ yy205: yy206: YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1949 "Zend/zend_language_scanner.l" +#line 1955 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -3353,7 +3359,7 @@ yy206: BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 3357 "Zend/zend_language_scanner.c" +#line 3363 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); yych = *++YYCURSOR; @@ -3387,13 +3393,13 @@ yy209: yy211: YYDEBUG(211, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1851 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 3397 "Zend/zend_language_scanner.c" +#line 3403 "Zend/zend_language_scanner.c" yy212: YYDEBUG(212, *YYCURSOR); yych = *++YYCURSOR; @@ -3407,11 +3413,11 @@ yy213: } YYDEBUG(214, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1413 "Zend/zend_language_scanner.l" +#line 1419 "Zend/zend_language_scanner.l" { return T_LOGICAL_XOR; } -#line 3415 "Zend/zend_language_scanner.c" +#line 3421 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; @@ -3420,61 +3426,61 @@ yy215: } YYDEBUG(216, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1405 "Zend/zend_language_scanner.l" +#line 1411 "Zend/zend_language_scanner.l" { return T_LOGICAL_OR; } -#line 3428 "Zend/zend_language_scanner.c" +#line 3434 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" +#line 1399 "Zend/zend_language_scanner.l" { return T_XOR_EQUAL; } -#line 3438 "Zend/zend_language_scanner.c" +#line 3444 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; YYDEBUG(220, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1397 "Zend/zend_language_scanner.l" +#line 1403 "Zend/zend_language_scanner.l" { return T_BOOLEAN_OR; } -#line 3448 "Zend/zend_language_scanner.c" +#line 3454 "Zend/zend_language_scanner.c" yy221: YYDEBUG(221, *YYCURSOR); ++YYCURSOR; YYDEBUG(222, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1389 "Zend/zend_language_scanner.l" +#line 1395 "Zend/zend_language_scanner.l" { return T_OR_EQUAL; } -#line 3458 "Zend/zend_language_scanner.c" +#line 3464 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; YYDEBUG(224, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1401 "Zend/zend_language_scanner.l" +#line 1407 "Zend/zend_language_scanner.l" { return T_BOOLEAN_AND; } -#line 3468 "Zend/zend_language_scanner.c" +#line 3474 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; YYDEBUG(226, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1385 "Zend/zend_language_scanner.l" +#line 1391 "Zend/zend_language_scanner.l" { return T_AND_EQUAL; } -#line 3478 "Zend/zend_language_scanner.c" +#line 3484 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); ++YYCURSOR; @@ -3483,7 +3489,7 @@ yy227: yy228: YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1958 "Zend/zend_language_scanner.l" +#line 1964 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3496,17 +3502,17 @@ yy228: return yytext[0]; } } -#line 3500 "Zend/zend_language_scanner.c" +#line 3506 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); ++YYCURSOR; YYDEBUG(230, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1373 "Zend/zend_language_scanner.l" +#line 1379 "Zend/zend_language_scanner.l" { return T_MOD_EQUAL; } -#line 3510 "Zend/zend_language_scanner.c" +#line 3516 "Zend/zend_language_scanner.c" yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; @@ -3537,11 +3543,11 @@ yy235: ++YYCURSOR; YYDEBUG(236, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" +#line 1375 "Zend/zend_language_scanner.l" { return T_CONCAT_EQUAL; } -#line 3545 "Zend/zend_language_scanner.c" +#line 3551 "Zend/zend_language_scanner.c" yy237: YYDEBUG(237, *YYCURSOR); yyaccept = 4; @@ -3550,7 +3556,7 @@ yy237: yy238: YYDEBUG(238, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1915 "Zend/zend_language_scanner.l" +#line 1921 "Zend/zend_language_scanner.l" { int doc_com; @@ -3584,7 +3590,7 @@ yy238: return T_COMMENT; } -#line 3588 "Zend/zend_language_scanner.c" +#line 3594 "Zend/zend_language_scanner.c" yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; @@ -3594,11 +3600,11 @@ yy240: ++YYCURSOR; YYDEBUG(241, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" +#line 1371 "Zend/zend_language_scanner.l" { return T_DIV_EQUAL; } -#line 3602 "Zend/zend_language_scanner.c" +#line 3608 "Zend/zend_language_scanner.c" yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; @@ -3621,42 +3627,42 @@ yy245: ++YYCURSOR; YYDEBUG(246, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1361 "Zend/zend_language_scanner.l" +#line 1367 "Zend/zend_language_scanner.l" { return T_MUL_EQUAL; } -#line 3629 "Zend/zend_language_scanner.c" +#line 3635 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy251; YYDEBUG(248, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1421 "Zend/zend_language_scanner.l" +#line 1427 "Zend/zend_language_scanner.l" { return T_SR; } -#line 3640 "Zend/zend_language_scanner.c" +#line 3646 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); ++YYCURSOR; YYDEBUG(250, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1349 "Zend/zend_language_scanner.l" +#line 1355 "Zend/zend_language_scanner.l" { return T_IS_GREATER_OR_EQUAL; } -#line 3650 "Zend/zend_language_scanner.c" +#line 3656 "Zend/zend_language_scanner.c" yy251: YYDEBUG(251, *YYCURSOR); ++YYCURSOR; YYDEBUG(252, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1381 "Zend/zend_language_scanner.l" +#line 1387 "Zend/zend_language_scanner.l" { return T_SR_EQUAL; } -#line 3660 "Zend/zend_language_scanner.c" +#line 3666 "Zend/zend_language_scanner.c" yy253: YYDEBUG(253, *YYCURSOR); yyaccept = 5; @@ -3667,11 +3673,11 @@ yy253: yy254: YYDEBUG(254, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1417 "Zend/zend_language_scanner.l" +#line 1423 "Zend/zend_language_scanner.l" { return T_SL; } -#line 3675 "Zend/zend_language_scanner.c" +#line 3681 "Zend/zend_language_scanner.c" yy255: YYDEBUG(255, *YYCURSOR); yych = *++YYCURSOR; @@ -3683,22 +3689,22 @@ yy256: ++YYCURSOR; YYDEBUG(257, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1345 "Zend/zend_language_scanner.l" +#line 1351 "Zend/zend_language_scanner.l" { return T_IS_SMALLER_OR_EQUAL; } -#line 3691 "Zend/zend_language_scanner.c" +#line 3697 "Zend/zend_language_scanner.c" yy258: YYDEBUG(258, *YYCURSOR); ++YYCURSOR; yy259: YYDEBUG(259, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1341 "Zend/zend_language_scanner.l" +#line 1347 "Zend/zend_language_scanner.l" { return T_IS_NOT_EQUAL; } -#line 3702 "Zend/zend_language_scanner.c" +#line 3708 "Zend/zend_language_scanner.c" yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; @@ -3749,11 +3755,11 @@ yy267: ++YYCURSOR; YYDEBUG(268, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1377 "Zend/zend_language_scanner.l" +#line 1383 "Zend/zend_language_scanner.l" { return T_SL_EQUAL; } -#line 3757 "Zend/zend_language_scanner.c" +#line 3763 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); ++YYCURSOR; @@ -3858,7 +3864,7 @@ yy278: yy279: YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2083 "Zend/zend_language_scanner.l" +#line 2089 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3906,7 +3912,7 @@ yy279: return T_START_HEREDOC; } -#line 3910 "Zend/zend_language_scanner.c" +#line 3916 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; @@ -3946,31 +3952,31 @@ yy283: ++YYCURSOR; YYDEBUG(285, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1333 "Zend/zend_language_scanner.l" +#line 1339 "Zend/zend_language_scanner.l" { return T_IS_NOT_IDENTICAL; } -#line 3954 "Zend/zend_language_scanner.c" +#line 3960 "Zend/zend_language_scanner.c" yy286: YYDEBUG(286, *YYCURSOR); ++YYCURSOR; YYDEBUG(287, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" +#line 1359 "Zend/zend_language_scanner.l" { return T_PLUS_EQUAL; } -#line 3964 "Zend/zend_language_scanner.c" +#line 3970 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); ++YYCURSOR; YYDEBUG(289, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1321 "Zend/zend_language_scanner.l" +#line 1327 "Zend/zend_language_scanner.l" { return T_INC; } -#line 3974 "Zend/zend_language_scanner.c" +#line 3980 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; @@ -3989,42 +3995,42 @@ yy292: } YYDEBUG(293, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1309 "Zend/zend_language_scanner.l" +#line 1315 "Zend/zend_language_scanner.l" { return T_LIST; } -#line 3997 "Zend/zend_language_scanner.c" +#line 4003 "Zend/zend_language_scanner.c" yy294: YYDEBUG(294, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy298; YYDEBUG(295, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1337 "Zend/zend_language_scanner.l" +#line 1343 "Zend/zend_language_scanner.l" { return T_IS_EQUAL; } -#line 4008 "Zend/zend_language_scanner.c" +#line 4014 "Zend/zend_language_scanner.c" yy296: YYDEBUG(296, *YYCURSOR); ++YYCURSOR; YYDEBUG(297, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1305 "Zend/zend_language_scanner.l" +#line 1311 "Zend/zend_language_scanner.l" { return T_DOUBLE_ARROW; } -#line 4018 "Zend/zend_language_scanner.c" +#line 4024 "Zend/zend_language_scanner.c" yy298: YYDEBUG(298, *YYCURSOR); ++YYCURSOR; YYDEBUG(299, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1329 "Zend/zend_language_scanner.l" +#line 1335 "Zend/zend_language_scanner.l" { return T_IS_IDENTICAL; } -#line 4028 "Zend/zend_language_scanner.c" +#line 4034 "Zend/zend_language_scanner.c" yy300: YYDEBUG(300, *YYCURSOR); yych = *++YYCURSOR; @@ -4154,7 +4160,7 @@ yy316: } YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1684 "Zend/zend_language_scanner.l" +#line 1690 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -4164,7 +4170,7 @@ yy316: } return T_NS_C; } -#line 4168 "Zend/zend_language_scanner.c" +#line 4174 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; @@ -4184,7 +4190,7 @@ yy321: } YYDEBUG(324, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1657 "Zend/zend_language_scanner.l" +#line 1663 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -4211,7 +4217,7 @@ yy321: zendlval->type = IS_STRING; return T_DIR; } -#line 4215 "Zend/zend_language_scanner.c" +#line 4221 "Zend/zend_language_scanner.c" yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; @@ -4236,13 +4242,13 @@ yy327: } YYDEBUG(330, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1639 "Zend/zend_language_scanner.l" +#line 1645 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 4246 "Zend/zend_language_scanner.c" +#line 4252 "Zend/zend_language_scanner.c" yy331: YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; @@ -4277,7 +4283,7 @@ yy335: } YYDEBUG(338, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1618 "Zend/zend_language_scanner.l" +#line 1624 "Zend/zend_language_scanner.l" { const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL; const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL; @@ -4298,7 +4304,7 @@ yy335: zendlval->type = IS_STRING; return T_METHOD_C; } -#line 4302 "Zend/zend_language_scanner.c" +#line 4308 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); yych = *++YYCURSOR; @@ -4349,7 +4355,7 @@ yy346: } YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1602 "Zend/zend_language_scanner.l" +#line 1608 "Zend/zend_language_scanner.l" { const char *func_name = NULL; @@ -4365,7 +4371,7 @@ yy346: zendlval->type = IS_STRING; return T_FUNC_C; } -#line 4369 "Zend/zend_language_scanner.c" +#line 4375 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; @@ -4385,7 +4391,7 @@ yy351: } YYDEBUG(354, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1645 "Zend/zend_language_scanner.l" +#line 1651 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -4397,7 +4403,7 @@ yy351: zendlval->type = IS_STRING; return T_FILE; } -#line 4401 "Zend/zend_language_scanner.c" +#line 4407 "Zend/zend_language_scanner.c" yy355: YYDEBUG(355, *YYCURSOR); yych = *++YYCURSOR; @@ -4427,7 +4433,7 @@ yy358: } YYDEBUG(361, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1582 "Zend/zend_language_scanner.l" +#line 1588 "Zend/zend_language_scanner.l" { const char *trait_name = NULL; @@ -4447,7 +4453,7 @@ yy358: return T_TRAIT_C; } -#line 4451 "Zend/zend_language_scanner.c" +#line 4457 "Zend/zend_language_scanner.c" yy362: YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; @@ -4477,7 +4483,7 @@ yy365: } YYDEBUG(368, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1555 "Zend/zend_language_scanner.l" +#line 1561 "Zend/zend_language_scanner.l" { const char *class_name = NULL; @@ -4504,7 +4510,7 @@ yy365: } return T_CLASS_C; } -#line 4508 "Zend/zend_language_scanner.c" +#line 4514 "Zend/zend_language_scanner.c" yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; @@ -4566,11 +4572,11 @@ yy380: } YYDEBUG(381, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1273 "Zend/zend_language_scanner.l" +#line 1279 "Zend/zend_language_scanner.l" { return T_HALT_COMPILER; } -#line 4574 "Zend/zend_language_scanner.c" +#line 4580 "Zend/zend_language_scanner.c" yy382: YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; @@ -4590,11 +4596,11 @@ yy384: } YYDEBUG(385, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1253 "Zend/zend_language_scanner.l" +#line 1259 "Zend/zend_language_scanner.l" { return T_USE; } -#line 4598 "Zend/zend_language_scanner.c" +#line 4604 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); yych = *++YYCURSOR; @@ -4613,11 +4619,11 @@ yy388: } YYDEBUG(389, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1301 "Zend/zend_language_scanner.l" +#line 1307 "Zend/zend_language_scanner.l" { return T_UNSET; } -#line 4621 "Zend/zend_language_scanner.c" +#line 4627 "Zend/zend_language_scanner.c" yy390: YYDEBUG(390, *YYCURSOR); ++YYCURSOR; @@ -4789,11 +4795,11 @@ yy405: ++YYCURSOR; YYDEBUG(407, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1201 "Zend/zend_language_scanner.l" +#line 1207 "Zend/zend_language_scanner.l" { return T_INT_CAST; } -#line 4797 "Zend/zend_language_scanner.c" +#line 4803 "Zend/zend_language_scanner.c" yy408: YYDEBUG(408, *YYCURSOR); yych = *++YYCURSOR; @@ -4837,11 +4843,11 @@ yy413: ++YYCURSOR; YYDEBUG(416, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1205 "Zend/zend_language_scanner.l" +#line 1211 "Zend/zend_language_scanner.l" { return T_DOUBLE_CAST; } -#line 4845 "Zend/zend_language_scanner.c" +#line 4851 "Zend/zend_language_scanner.c" yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; @@ -4911,11 +4917,11 @@ yy427: ++YYCURSOR; YYDEBUG(430, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1209 "Zend/zend_language_scanner.l" +#line 1215 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 4919 "Zend/zend_language_scanner.c" +#line 4925 "Zend/zend_language_scanner.c" yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; @@ -4948,11 +4954,11 @@ yy434: ++YYCURSOR; YYDEBUG(437, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1213 "Zend/zend_language_scanner.l" +#line 1219 "Zend/zend_language_scanner.l" { return T_ARRAY_CAST; } -#line 4956 "Zend/zend_language_scanner.c" +#line 4962 "Zend/zend_language_scanner.c" yy438: YYDEBUG(438, *YYCURSOR); yych = *++YYCURSOR; @@ -4990,11 +4996,11 @@ yy442: ++YYCURSOR; YYDEBUG(445, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1217 "Zend/zend_language_scanner.l" +#line 1223 "Zend/zend_language_scanner.l" { return T_OBJECT_CAST; } -#line 4998 "Zend/zend_language_scanner.c" +#line 5004 "Zend/zend_language_scanner.c" yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; @@ -5035,11 +5041,11 @@ yy451: ++YYCURSOR; YYDEBUG(453, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1221 "Zend/zend_language_scanner.l" +#line 1227 "Zend/zend_language_scanner.l" { return T_BOOL_CAST; } -#line 5043 "Zend/zend_language_scanner.c" +#line 5049 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -5099,11 +5105,11 @@ yy462: ++YYCURSOR; YYDEBUG(465, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1225 "Zend/zend_language_scanner.l" +#line 1231 "Zend/zend_language_scanner.l" { return T_UNSET_CAST; } -#line 5107 "Zend/zend_language_scanner.c" +#line 5113 "Zend/zend_language_scanner.c" yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; @@ -5117,11 +5123,11 @@ yy467: } YYDEBUG(468, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1197 "Zend/zend_language_scanner.l" +#line 1203 "Zend/zend_language_scanner.l" { return T_VAR; } -#line 5125 "Zend/zend_language_scanner.c" +#line 5131 "Zend/zend_language_scanner.c" yy469: YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; @@ -5141,11 +5147,11 @@ yy471: } YYDEBUG(472, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1189 "Zend/zend_language_scanner.l" +#line 1195 "Zend/zend_language_scanner.l" { return T_NEW; } -#line 5149 "Zend/zend_language_scanner.c" +#line 5155 "Zend/zend_language_scanner.c" yy473: YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; @@ -5184,21 +5190,21 @@ yy479: } YYDEBUG(480, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1249 "Zend/zend_language_scanner.l" +#line 1255 "Zend/zend_language_scanner.l" { return T_NAMESPACE; } -#line 5192 "Zend/zend_language_scanner.c" +#line 5198 "Zend/zend_language_scanner.c" yy481: YYDEBUG(481, *YYCURSOR); ++YYCURSOR; YYDEBUG(482, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1181 "Zend/zend_language_scanner.l" +#line 1187 "Zend/zend_language_scanner.l" { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5202 "Zend/zend_language_scanner.c" +#line 5208 "Zend/zend_language_scanner.c" yy483: YYDEBUG(483, *YYCURSOR); ++YYCURSOR; @@ -5220,32 +5226,32 @@ yy485: ++YYCURSOR; YYDEBUG(486, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1357 "Zend/zend_language_scanner.l" +#line 1363 "Zend/zend_language_scanner.l" { return T_MINUS_EQUAL; } -#line 5228 "Zend/zend_language_scanner.c" +#line 5234 "Zend/zend_language_scanner.c" yy487: YYDEBUG(487, *YYCURSOR); ++YYCURSOR; YYDEBUG(488, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1325 "Zend/zend_language_scanner.l" +#line 1331 "Zend/zend_language_scanner.l" { return T_DEC; } -#line 5238 "Zend/zend_language_scanner.c" +#line 5244 "Zend/zend_language_scanner.c" yy489: YYDEBUG(489, *YYCURSOR); ++YYCURSOR; YYDEBUG(490, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1151 "Zend/zend_language_scanner.l" +#line 1157 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5249 "Zend/zend_language_scanner.c" +#line 5255 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; @@ -5290,11 +5296,11 @@ yy496: } YYDEBUG(497, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1297 "Zend/zend_language_scanner.l" +#line 1303 "Zend/zend_language_scanner.l" { return T_PUBLIC; } -#line 5298 "Zend/zend_language_scanner.c" +#line 5304 "Zend/zend_language_scanner.c" yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; @@ -5349,11 +5355,11 @@ yy505: } YYDEBUG(506, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1293 "Zend/zend_language_scanner.l" +#line 1299 "Zend/zend_language_scanner.l" { return T_PROTECTED; } -#line 5357 "Zend/zend_language_scanner.c" +#line 5363 "Zend/zend_language_scanner.c" yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; @@ -5383,11 +5389,11 @@ yy511: } YYDEBUG(512, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1289 "Zend/zend_language_scanner.l" +#line 1295 "Zend/zend_language_scanner.l" { return T_PRIVATE; } -#line 5391 "Zend/zend_language_scanner.c" +#line 5397 "Zend/zend_language_scanner.c" yy513: YYDEBUG(513, *YYCURSOR); ++YYCURSOR; @@ -5396,11 +5402,11 @@ yy513: } YYDEBUG(514, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1127 "Zend/zend_language_scanner.l" +#line 1133 "Zend/zend_language_scanner.l" { return T_PRINT; } -#line 5404 "Zend/zend_language_scanner.c" +#line 5410 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; @@ -5425,11 +5431,11 @@ yy518: } YYDEBUG(519, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1119 "Zend/zend_language_scanner.l" +#line 1125 "Zend/zend_language_scanner.l" { return T_GOTO; } -#line 5433 "Zend/zend_language_scanner.c" +#line 5439 "Zend/zend_language_scanner.c" yy520: YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; @@ -5453,11 +5459,11 @@ yy523: } YYDEBUG(524, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1261 "Zend/zend_language_scanner.l" +#line 1267 "Zend/zend_language_scanner.l" { return T_GLOBAL; } -#line 5461 "Zend/zend_language_scanner.c" +#line 5467 "Zend/zend_language_scanner.c" yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; @@ -5494,11 +5500,11 @@ yy531: } YYDEBUG(532, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1111 "Zend/zend_language_scanner.l" +#line 1117 "Zend/zend_language_scanner.l" { return T_BREAK; } -#line 5502 "Zend/zend_language_scanner.c" +#line 5508 "Zend/zend_language_scanner.c" yy533: YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; @@ -5538,11 +5544,11 @@ yy539: } YYDEBUG(540, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1095 "Zend/zend_language_scanner.l" +#line 1101 "Zend/zend_language_scanner.l" { return T_SWITCH; } -#line 5546 "Zend/zend_language_scanner.c" +#line 5552 "Zend/zend_language_scanner.c" yy541: YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; @@ -5566,11 +5572,11 @@ yy544: } YYDEBUG(545, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1277 "Zend/zend_language_scanner.l" +#line 1283 "Zend/zend_language_scanner.l" { return T_STATIC; } -#line 5574 "Zend/zend_language_scanner.c" +#line 5580 "Zend/zend_language_scanner.c" yy546: YYDEBUG(546, *YYCURSOR); yych = *++YYCURSOR; @@ -5597,11 +5603,11 @@ yy549: } YYDEBUG(550, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1091 "Zend/zend_language_scanner.l" +#line 1097 "Zend/zend_language_scanner.l" { return T_AS; } -#line 5605 "Zend/zend_language_scanner.c" +#line 5611 "Zend/zend_language_scanner.c" yy551: YYDEBUG(551, *YYCURSOR); yych = *++YYCURSOR; @@ -5620,11 +5626,11 @@ yy553: } YYDEBUG(554, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1313 "Zend/zend_language_scanner.l" +#line 1319 "Zend/zend_language_scanner.l" { return T_ARRAY; } -#line 5628 "Zend/zend_language_scanner.c" +#line 5634 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); ++YYCURSOR; @@ -5633,11 +5639,11 @@ yy555: } YYDEBUG(556, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1409 "Zend/zend_language_scanner.l" +#line 1415 "Zend/zend_language_scanner.l" { return T_LOGICAL_AND; } -#line 5641 "Zend/zend_language_scanner.c" +#line 5647 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; @@ -5671,11 +5677,11 @@ yy562: } YYDEBUG(563, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1281 "Zend/zend_language_scanner.l" +#line 1287 "Zend/zend_language_scanner.l" { return T_ABSTRACT; } -#line 5679 "Zend/zend_language_scanner.c" +#line 5685 "Zend/zend_language_scanner.c" yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; @@ -5699,11 +5705,11 @@ yy567: } YYDEBUG(568, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1051 "Zend/zend_language_scanner.l" +#line 1057 "Zend/zend_language_scanner.l" { return T_WHILE; } -#line 5707 "Zend/zend_language_scanner.c" +#line 5713 "Zend/zend_language_scanner.c" yy569: YYDEBUG(569, *YYCURSOR); ++YYCURSOR; @@ -5712,11 +5718,11 @@ yy569: } YYDEBUG(570, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1035 "Zend/zend_language_scanner.l" +#line 1041 "Zend/zend_language_scanner.l" { return T_IF; } -#line 5720 "Zend/zend_language_scanner.c" +#line 5726 "Zend/zend_language_scanner.c" yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; @@ -5768,11 +5774,11 @@ yy576: } YYDEBUG(577, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1265 "Zend/zend_language_scanner.l" +#line 1271 "Zend/zend_language_scanner.l" { return T_ISSET; } -#line 5776 "Zend/zend_language_scanner.c" +#line 5782 "Zend/zend_language_scanner.c" yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; @@ -5826,11 +5832,11 @@ yy584: yy585: YYDEBUG(585, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1233 "Zend/zend_language_scanner.l" +#line 1239 "Zend/zend_language_scanner.l" { return T_INCLUDE; } -#line 5834 "Zend/zend_language_scanner.c" +#line 5840 "Zend/zend_language_scanner.c" yy586: YYDEBUG(586, *YYCURSOR); yych = *++YYCURSOR; @@ -5859,11 +5865,11 @@ yy590: } YYDEBUG(591, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1237 "Zend/zend_language_scanner.l" +#line 1243 "Zend/zend_language_scanner.l" { return T_INCLUDE_ONCE; } -#line 5867 "Zend/zend_language_scanner.c" +#line 5873 "Zend/zend_language_scanner.c" yy592: YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; @@ -5897,11 +5903,11 @@ yy597: } YYDEBUG(598, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1135 "Zend/zend_language_scanner.l" +#line 1141 "Zend/zend_language_scanner.l" { return T_INTERFACE; } -#line 5905 "Zend/zend_language_scanner.c" +#line 5911 "Zend/zend_language_scanner.c" yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; @@ -5951,11 +5957,11 @@ yy605: } YYDEBUG(606, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1257 "Zend/zend_language_scanner.l" +#line 1263 "Zend/zend_language_scanner.l" { return T_INSTEADOF; } -#line 5959 "Zend/zend_language_scanner.c" +#line 5965 "Zend/zend_language_scanner.c" yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; @@ -5984,11 +5990,11 @@ yy611: } YYDEBUG(612, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1087 "Zend/zend_language_scanner.l" +#line 1093 "Zend/zend_language_scanner.l" { return T_INSTANCEOF; } -#line 5992 "Zend/zend_language_scanner.c" +#line 5998 "Zend/zend_language_scanner.c" yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; @@ -6032,11 +6038,11 @@ yy620: } YYDEBUG(621, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1147 "Zend/zend_language_scanner.l" +#line 1153 "Zend/zend_language_scanner.l" { return T_IMPLEMENTS; } -#line 6040 "Zend/zend_language_scanner.c" +#line 6046 "Zend/zend_language_scanner.c" yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; @@ -6064,11 +6070,11 @@ yy623: } YYDEBUG(625, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1023 "Zend/zend_language_scanner.l" +#line 1029 "Zend/zend_language_scanner.l" { return T_TRY; } -#line 6072 "Zend/zend_language_scanner.c" +#line 6078 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; @@ -6087,11 +6093,11 @@ yy628: } YYDEBUG(629, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1139 "Zend/zend_language_scanner.l" +#line 1145 "Zend/zend_language_scanner.l" { return T_TRAIT; } -#line 6095 "Zend/zend_language_scanner.c" +#line 6101 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6110,11 +6116,11 @@ yy632: } YYDEBUG(633, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1031 "Zend/zend_language_scanner.l" +#line 1037 "Zend/zend_language_scanner.l" { return T_THROW; } -#line 6118 "Zend/zend_language_scanner.c" +#line 6124 "Zend/zend_language_scanner.c" yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; @@ -6175,11 +6181,11 @@ yy640: yy641: YYDEBUG(641, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1241 "Zend/zend_language_scanner.l" +#line 1247 "Zend/zend_language_scanner.l" { return T_REQUIRE; } -#line 6183 "Zend/zend_language_scanner.c" +#line 6189 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; @@ -6208,11 +6214,11 @@ yy646: } YYDEBUG(647, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1245 "Zend/zend_language_scanner.l" +#line 1251 "Zend/zend_language_scanner.l" { return T_REQUIRE_ONCE; } -#line 6216 "Zend/zend_language_scanner.c" +#line 6222 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; @@ -6231,11 +6237,11 @@ yy650: } YYDEBUG(651, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1019 "Zend/zend_language_scanner.l" +#line 1025 "Zend/zend_language_scanner.l" { return T_RETURN; } -#line 6239 "Zend/zend_language_scanner.c" +#line 6245 "Zend/zend_language_scanner.c" yy652: YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; @@ -6325,11 +6331,11 @@ yy661: } YYDEBUG(662, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1115 "Zend/zend_language_scanner.l" +#line 1121 "Zend/zend_language_scanner.l" { return T_CONTINUE; } -#line 6333 "Zend/zend_language_scanner.c" +#line 6339 "Zend/zend_language_scanner.c" yy663: YYDEBUG(663, *YYCURSOR); ++YYCURSOR; @@ -6338,11 +6344,11 @@ yy663: } YYDEBUG(664, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1015 "Zend/zend_language_scanner.l" +#line 1021 "Zend/zend_language_scanner.l" { return T_CONST; } -#line 6346 "Zend/zend_language_scanner.c" +#line 6352 "Zend/zend_language_scanner.c" yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; @@ -6367,11 +6373,11 @@ yy668: } YYDEBUG(669, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1193 "Zend/zend_language_scanner.l" +#line 1199 "Zend/zend_language_scanner.l" { return T_CLONE; } -#line 6375 "Zend/zend_language_scanner.c" +#line 6381 "Zend/zend_language_scanner.c" yy670: YYDEBUG(670, *YYCURSOR); yych = *++YYCURSOR; @@ -6385,11 +6391,11 @@ yy671: } YYDEBUG(672, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1131 "Zend/zend_language_scanner.l" +#line 1137 "Zend/zend_language_scanner.l" { return T_CLASS; } -#line 6393 "Zend/zend_language_scanner.c" +#line 6399 "Zend/zend_language_scanner.c" yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; @@ -6435,11 +6441,11 @@ yy680: } YYDEBUG(681, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1317 "Zend/zend_language_scanner.l" +#line 1323 "Zend/zend_language_scanner.l" { return T_CALLABLE; } -#line 6443 "Zend/zend_language_scanner.c" +#line 6449 "Zend/zend_language_scanner.c" yy682: YYDEBUG(682, *YYCURSOR); ++YYCURSOR; @@ -6448,11 +6454,11 @@ yy682: } YYDEBUG(683, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1103 "Zend/zend_language_scanner.l" +#line 1109 "Zend/zend_language_scanner.l" { return T_CASE; } -#line 6456 "Zend/zend_language_scanner.c" +#line 6462 "Zend/zend_language_scanner.c" yy684: YYDEBUG(684, *YYCURSOR); yych = *++YYCURSOR; @@ -6466,11 +6472,11 @@ yy685: } YYDEBUG(686, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1027 "Zend/zend_language_scanner.l" +#line 1033 "Zend/zend_language_scanner.l" { return T_CATCH; } -#line 6474 "Zend/zend_language_scanner.c" +#line 6480 "Zend/zend_language_scanner.c" yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; @@ -6521,11 +6527,11 @@ yy695: } YYDEBUG(696, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1011 "Zend/zend_language_scanner.l" +#line 1017 "Zend/zend_language_scanner.l" { return T_FUNCTION; } -#line 6529 "Zend/zend_language_scanner.c" +#line 6535 "Zend/zend_language_scanner.c" yy697: YYDEBUG(697, *YYCURSOR); ++YYCURSOR; @@ -6549,11 +6555,11 @@ yy697: yy698: YYDEBUG(698, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1063 "Zend/zend_language_scanner.l" +#line 1069 "Zend/zend_language_scanner.l" { return T_FOR; } -#line 6557 "Zend/zend_language_scanner.c" +#line 6563 "Zend/zend_language_scanner.c" yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; @@ -6577,11 +6583,11 @@ yy702: } YYDEBUG(703, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1071 "Zend/zend_language_scanner.l" +#line 1077 "Zend/zend_language_scanner.l" { return T_FOREACH; } -#line 6585 "Zend/zend_language_scanner.c" +#line 6591 "Zend/zend_language_scanner.c" yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; @@ -6600,11 +6606,11 @@ yy706: } YYDEBUG(707, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1285 "Zend/zend_language_scanner.l" +#line 1291 "Zend/zend_language_scanner.l" { return T_FINAL; } -#line 6608 "Zend/zend_language_scanner.c" +#line 6614 "Zend/zend_language_scanner.c" yy708: YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; @@ -6635,11 +6641,11 @@ yy710: } YYDEBUG(711, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1059 "Zend/zend_language_scanner.l" +#line 1065 "Zend/zend_language_scanner.l" { return T_DO; } -#line 6643 "Zend/zend_language_scanner.c" +#line 6649 "Zend/zend_language_scanner.c" yy712: YYDEBUG(712, *YYCURSOR); ++YYCURSOR; @@ -6648,11 +6654,11 @@ yy712: } YYDEBUG(713, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1007 "Zend/zend_language_scanner.l" +#line 1013 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6656 "Zend/zend_language_scanner.c" +#line 6662 "Zend/zend_language_scanner.c" yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; @@ -6687,11 +6693,11 @@ yy719: } YYDEBUG(720, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1107 "Zend/zend_language_scanner.l" +#line 1113 "Zend/zend_language_scanner.l" { return T_DEFAULT; } -#line 6695 "Zend/zend_language_scanner.c" +#line 6701 "Zend/zend_language_scanner.c" yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; @@ -6715,11 +6721,11 @@ yy724: } YYDEBUG(725, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1079 "Zend/zend_language_scanner.l" +#line 1085 "Zend/zend_language_scanner.l" { return T_DECLARE; } -#line 6723 "Zend/zend_language_scanner.c" +#line 6729 "Zend/zend_language_scanner.c" yy726: YYDEBUG(726, *YYCURSOR); yych = *++YYCURSOR; @@ -6799,11 +6805,11 @@ yy737: } YYDEBUG(738, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1143 "Zend/zend_language_scanner.l" +#line 1149 "Zend/zend_language_scanner.l" { return T_EXTENDS; } -#line 6807 "Zend/zend_language_scanner.c" +#line 6813 "Zend/zend_language_scanner.c" yy739: YYDEBUG(739, *YYCURSOR); ++YYCURSOR; @@ -6812,11 +6818,11 @@ yy739: } YYDEBUG(740, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1003 "Zend/zend_language_scanner.l" +#line 1009 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6820 "Zend/zend_language_scanner.c" +#line 6826 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6830,11 +6836,11 @@ yy742: } YYDEBUG(743, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1229 "Zend/zend_language_scanner.l" +#line 1235 "Zend/zend_language_scanner.l" { return T_EVAL; } -#line 6838 "Zend/zend_language_scanner.c" +#line 6844 "Zend/zend_language_scanner.c" yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; @@ -6904,11 +6910,11 @@ yy753: } YYDEBUG(754, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1055 "Zend/zend_language_scanner.l" +#line 1061 "Zend/zend_language_scanner.l" { return T_ENDWHILE; } -#line 6912 "Zend/zend_language_scanner.c" +#line 6918 "Zend/zend_language_scanner.c" yy755: YYDEBUG(755, *YYCURSOR); yych = *++YYCURSOR; @@ -6937,11 +6943,11 @@ yy759: } YYDEBUG(760, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1099 "Zend/zend_language_scanner.l" +#line 1105 "Zend/zend_language_scanner.l" { return T_ENDSWITCH; } -#line 6945 "Zend/zend_language_scanner.c" +#line 6951 "Zend/zend_language_scanner.c" yy761: YYDEBUG(761, *YYCURSOR); ++YYCURSOR; @@ -6950,11 +6956,11 @@ yy761: } YYDEBUG(762, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1043 "Zend/zend_language_scanner.l" +#line 1049 "Zend/zend_language_scanner.l" { return T_ENDIF; } -#line 6958 "Zend/zend_language_scanner.c" +#line 6964 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6983,11 +6989,11 @@ yy764: yy765: YYDEBUG(765, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1067 "Zend/zend_language_scanner.l" +#line 1073 "Zend/zend_language_scanner.l" { return T_ENDFOR; } -#line 6991 "Zend/zend_language_scanner.c" +#line 6997 "Zend/zend_language_scanner.c" yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; @@ -7011,11 +7017,11 @@ yy769: } YYDEBUG(770, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1075 "Zend/zend_language_scanner.l" +#line 1081 "Zend/zend_language_scanner.l" { return T_ENDFOREACH; } -#line 7019 "Zend/zend_language_scanner.c" +#line 7025 "Zend/zend_language_scanner.c" yy771: YYDEBUG(771, *YYCURSOR); yych = *++YYCURSOR; @@ -7049,11 +7055,11 @@ yy776: } YYDEBUG(777, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1083 "Zend/zend_language_scanner.l" +#line 1089 "Zend/zend_language_scanner.l" { return T_ENDDECLARE; } -#line 7057 "Zend/zend_language_scanner.c" +#line 7063 "Zend/zend_language_scanner.c" yy778: YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; @@ -7072,11 +7078,11 @@ yy780: } YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1269 "Zend/zend_language_scanner.l" +#line 1275 "Zend/zend_language_scanner.l" { return T_EMPTY; } -#line 7080 "Zend/zend_language_scanner.c" +#line 7086 "Zend/zend_language_scanner.c" yy782: YYDEBUG(782, *YYCURSOR); yych = *++YYCURSOR; @@ -7105,11 +7111,11 @@ yy783: yy784: YYDEBUG(784, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1047 "Zend/zend_language_scanner.l" +#line 1053 "Zend/zend_language_scanner.l" { return T_ELSE; } -#line 7113 "Zend/zend_language_scanner.c" +#line 7119 "Zend/zend_language_scanner.c" yy785: YYDEBUG(785, *YYCURSOR); yych = *++YYCURSOR; @@ -7123,11 +7129,11 @@ yy786: } YYDEBUG(787, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1039 "Zend/zend_language_scanner.l" +#line 1045 "Zend/zend_language_scanner.l" { return T_ELSEIF; } -#line 7131 "Zend/zend_language_scanner.c" +#line 7137 "Zend/zend_language_scanner.c" yy788: YYDEBUG(788, *YYCURSOR); yych = *++YYCURSOR; @@ -7141,11 +7147,11 @@ yy789: } YYDEBUG(790, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1123 "Zend/zend_language_scanner.l" +#line 1129 "Zend/zend_language_scanner.l" { return T_ECHO; } -#line 7149 "Zend/zend_language_scanner.c" +#line 7155 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7218,7 +7224,7 @@ yy793: yy794: YYDEBUG(794, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1156 "Zend/zend_language_scanner.l" +#line 1162 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -7226,7 +7232,7 @@ yy794: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7230 "Zend/zend_language_scanner.c" +#line 7236 "Zend/zend_language_scanner.c" yy795: YYDEBUG(795, *YYCURSOR); ++YYCURSOR; @@ -7234,13 +7240,13 @@ yy795: yy796: YYDEBUG(796, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1175 "Zend/zend_language_scanner.l" +#line 1181 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(TSRMLS_C); goto restart; } -#line 7244 "Zend/zend_language_scanner.c" +#line 7250 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); ++YYCURSOR; @@ -7249,14 +7255,14 @@ yy797: yy798: YYDEBUG(798, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1168 "Zend/zend_language_scanner.l" +#line 1174 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7260 "Zend/zend_language_scanner.c" +#line 7266 "Zend/zend_language_scanner.c" yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; @@ -7277,11 +7283,11 @@ yy802: ++YYCURSOR; YYDEBUG(803, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1164 "Zend/zend_language_scanner.l" +#line 1170 "Zend/zend_language_scanner.l" { return T_OBJECT_OPERATOR; } -#line 7285 "Zend/zend_language_scanner.c" +#line 7291 "Zend/zend_language_scanner.c" yy804: YYDEBUG(804, *YYCURSOR); ++YYCURSOR; @@ -7351,7 +7357,7 @@ yy808: yy809: YYDEBUG(809, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1451 "Zend/zend_language_scanner.l" +#line 1457 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -7359,20 +7365,20 @@ yy809: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7363 "Zend/zend_language_scanner.c" +#line 7369 "Zend/zend_language_scanner.c" yy810: YYDEBUG(810, *YYCURSOR); ++YYCURSOR; YYDEBUG(811, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1460 "Zend/zend_language_scanner.l" +#line 1466 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(TSRMLS_C); yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7376 "Zend/zend_language_scanner.c" +#line 7382 "Zend/zend_language_scanner.c" yy812: YYDEBUG(812, *YYCURSOR); ++YYCURSOR; @@ -7394,7 +7400,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(817, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2334 "Zend/zend_language_scanner.l" +#line 2340 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7449,7 +7455,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7453 "Zend/zend_language_scanner.c" +#line 7459 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7556,7 +7562,7 @@ yy820: yy821: YYDEBUG(821, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1530 "Zend/zend_language_scanner.l" +#line 1536 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { zendlval->value.lval = strtol(yytext, NULL, 10); @@ -7568,7 +7574,7 @@ yy821: } return T_NUM_STRING; } -#line 7572 "Zend/zend_language_scanner.c" +#line 7578 "Zend/zend_language_scanner.c" yy822: YYDEBUG(822, *YYCURSOR); yych = *++YYCURSOR; @@ -7588,23 +7594,23 @@ yy823: yy824: YYDEBUG(824, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1862 "Zend/zend_language_scanner.l" +#line 1868 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7597 "Zend/zend_language_scanner.c" +#line 7603 "Zend/zend_language_scanner.c" yy825: YYDEBUG(825, *YYCURSOR); ++YYCURSOR; YYDEBUG(826, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1863 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7608 "Zend/zend_language_scanner.c" +#line 7614 "Zend/zend_language_scanner.c" yy827: YYDEBUG(827, *YYCURSOR); yych = *++YYCURSOR; @@ -7614,14 +7620,14 @@ yy828: ++YYCURSOR; YYDEBUG(829, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1867 "Zend/zend_language_scanner.l" +#line 1873 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); yy_pop_state(TSRMLS_C); return T_ENCAPSED_AND_WHITESPACE; } -#line 7625 "Zend/zend_language_scanner.c" +#line 7631 "Zend/zend_language_scanner.c" yy830: YYDEBUG(830, *YYCURSOR); ++YYCURSOR; @@ -7630,19 +7636,19 @@ yy830: yy831: YYDEBUG(831, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1874 "Zend/zend_language_scanner.l" +#line 1880 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7640 "Zend/zend_language_scanner.c" +#line 7646 "Zend/zend_language_scanner.c" yy832: YYDEBUG(832, *YYCURSOR); ++YYCURSOR; YYDEBUG(833, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2390 "Zend/zend_language_scanner.l" +#line 2396 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7651,7 +7657,7 @@ yy832: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7655 "Zend/zend_language_scanner.c" +#line 7661 "Zend/zend_language_scanner.c" yy834: YYDEBUG(834, *YYCURSOR); ++YYCURSOR; @@ -7687,13 +7693,13 @@ yy836: yy838: YYDEBUG(838, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1851 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 7697 "Zend/zend_language_scanner.c" +#line 7703 "Zend/zend_language_scanner.c" yy839: YYDEBUG(839, *YYCURSOR); ++YYCURSOR; @@ -7733,14 +7739,14 @@ yy844: yy846: YYDEBUG(846, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1542 "Zend/zend_language_scanner.l" +#line 1548 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ zendlval->value.str.val = (char *)estrndup(yytext, yyleng); zendlval->value.str.len = yyleng; zendlval->type = IS_STRING; return T_NUM_STRING; } -#line 7744 "Zend/zend_language_scanner.c" +#line 7750 "Zend/zend_language_scanner.c" yy847: YYDEBUG(847, *YYCURSOR); ++YYCURSOR; @@ -7763,6 +7769,6 @@ yy849: goto yy846; } } -#line 2399 "Zend/zend_language_scanner.l" +#line 2405 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h index af8e685a8..b217d17d9 100644 --- a/Zend/zend_language_scanner.h +++ b/Zend/zend_language_scanner.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_language_scanner.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_SCANNER_H #define ZEND_SCANNER_H diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 8cc62348e..38dc563a4 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_language_scanner.l 321655 2012-01-01 22:45:58Z nlopess $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) @@ -756,6 +756,8 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC) if (compiler_result==1) { CG(active_op_array) = original_active_op_array; CG(unclean_shutdown)=1; + destroy_op_array(op_array TSRMLS_CC); + efree(op_array); retval = NULL; } else { zend_do_return(NULL, 0 TSRMLS_CC); @@ -902,6 +904,10 @@ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quo *t++ = '\v'; zendlval->value.str.len--; break; + case 'e': + *t++ = '\e'; + zendlval->value.str.len--; + break; case '"': case '`': if (*s != quote_type) { diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 4908988c8..0e4b8f077 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_list.c 321634 2012-01-01 13:15:04Z felipe $ */ /* resource lists */ diff --git a/Zend/zend_list.h b/Zend/zend_list.h index ac4820849..abeeb9c57 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_list.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_LIST_H #define ZEND_LIST_H diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index 4ffe5d726..ce5b44247 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_llist.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_llist.h" diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index 52aec70a0..7ba6b0a9c 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_llist.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_LLIST_H #define ZEND_LLIST_H diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index aed87e556..de0036b87 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 314376 2011-08-06 14:47:44Z felipe $ */ +/* $Id: zend_modules.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef MODULES_H #define MODULES_H diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c index 0110672b6..99f3b8273 100644 --- a/Zend/zend_multibyte.c +++ b/Zend/zend_multibyte.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316751 2011-09-14 15:00:28Z dmitry $ */ +/* $Id: zend_multibyte.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_multibyte.h b/Zend/zend_multibyte.h index f2a69ceb6..04d317d25 100644 --- a/Zend/zend_multibyte.h +++ b/Zend/zend_multibyte.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 308950 2011-03-06 07:00:30Z moriyoshi $ */ +/* $Id: zend_multibyte.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_MULTIBYTE_H #define ZEND_MULTIBYTE_H diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h index 185858076..ee4319dac 100644 --- a/Zend/zend_multiply.h +++ b/Zend/zend_multiply.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 311662 2011-05-31 12:05:25Z dmitry $ */ +/* $Id: zend_multiply.h 321634 2012-01-01 13:15:04Z felipe $ */ #if defined(__i386__) && defined(__GNUC__) diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index e05044af1..8fad5ff6e 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316816 2011-09-15 14:50:38Z colder $ */ +/* $Id: zend_object_handlers.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_globals.h" @@ -81,7 +81,7 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */ (prop_info->flags & ZEND_ACC_STATIC) == 0 && (prop_info->flags & ZEND_ACC_PRIVATE) != 0 && prop_info->offset >= 0 && - zobj->properties_table[prop_info->offset]) { + zobj->properties_table[prop_info->offset]) { zend_hash_quick_add(zobj->properties, prop_info->name, prop_info->name_length+1, prop_info->h, (void**)&zobj->properties_table[prop_info->offset], sizeof(zval*), (void**)&zobj->properties_table[prop_info->offset]); } } @@ -102,6 +102,28 @@ ZEND_API HashTable *zend_std_get_properties(zval *object TSRMLS_DC) /* {{{ */ } /* }}} */ +ZEND_API HashTable *zend_std_get_gc(zval *object, zval ***table, int *n TSRMLS_DC) /* {{{ */ +{ + if (Z_OBJ_HANDLER_P(object, get_properties) != zend_std_get_properties) { + *table = NULL; + *n = 0; + return Z_OBJ_HANDLER_P(object, get_properties)(object TSRMLS_CC); + } else { + zend_object *zobj = Z_OBJ_P(object); + + if (zobj->properties) { + *table = NULL; + *n = 0; + return zobj->properties; + } else { + *table = zobj->properties_table; + *n = zobj->ce->default_properties_count; + return NULL; + } + } +} +/* }}} */ + ZEND_API HashTable *zend_std_get_debug_info(zval *object, int *is_temp TSRMLS_DC) /* {{{ */ { *is_temp = 0; @@ -1584,6 +1606,7 @@ ZEND_API zend_object_handlers std_object_handlers = { NULL, /* count_elements */ NULL, /* get_debug_info */ zend_std_get_closure, /* get_closure */ + zend_std_get_gc, /* get_gc */ }; /* diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h index b401c555f..06f3dbbe3 100644 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_object_handlers.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_OBJECT_HANDLERS_H #define ZEND_OBJECT_HANDLERS_H @@ -111,6 +111,8 @@ typedef int (*zend_object_count_elements_t)(zval *object, long *count TSRMLS_DC) typedef int (*zend_object_get_closure_t)(zval *obj, zend_class_entry **ce_ptr, union _zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC); +typedef HashTable *(*zend_object_get_gc_t)(zval *object, zval ***table, int *n TSRMLS_DC); + struct _zend_object_handlers { /* general object functions */ zend_object_add_ref_t add_ref; @@ -139,6 +141,7 @@ struct _zend_object_handlers { zend_object_count_elements_t count_elements; zend_object_get_debug_info_t get_debug_info; zend_object_get_closure_t get_closure; + zend_object_get_gc_t get_gc; }; extern ZEND_API zend_object_handlers std_object_handlers; diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index 444ce12dd..cd8791ac6 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_objects.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h index 7c13b1e85..09d96e52f 100644 --- a/Zend/zend_objects.h +++ b/Zend/zend_objects.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_objects.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_OBJECTS_H #define ZEND_OBJECTS_H diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 15e140ed3..dbd234440 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_objects_API.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h index 8dd86f135..4b78dcfc3 100644 --- a/Zend/zend_objects_API.h +++ b/Zend/zend_objects_API.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_objects_API.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_OBJECTS_API_H #define ZEND_OBJECTS_API_H diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 2bd51b970..6e1d40a97 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 318191 2011-10-18 19:42:42Z lbarnaud $ */ +/* $Id: zend_opcode.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <stdio.h> diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 46ff745cb..1be07a226 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 315754 2011-08-30 01:33:42Z felipe $ */ +/* $Id: zend_operators.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <ctype.h> diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index e6ac39f36..ff785ad6a 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316848 2011-09-16 07:59:34Z dmitry $ */ +/* $Id: zend_operators.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_OPERATORS_H #define ZEND_OPERATORS_H diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c index d7bfa4a6e..781b7dd70 100644 --- a/Zend/zend_ptr_stack.c +++ b/Zend/zend_ptr_stack.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ptr_stack.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_ptr_stack.h" diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h index 88a2bc373..59c321bcf 100644 --- a/Zend/zend_ptr_stack.h +++ b/Zend/zend_ptr_stack.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ptr_stack.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_PTR_STACK_H #define ZEND_PTR_STACK_H diff --git a/Zend/zend_qsort.c b/Zend/zend_qsort.c index bd12cb365..3205d204c 100644 --- a/Zend/zend_qsort.c +++ b/Zend/zend_qsort.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_qsort.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" diff --git a/Zend/zend_qsort.h b/Zend/zend_qsort.h index d461b4f7e..47af7dc43 100644 --- a/Zend/zend_qsort.h +++ b/Zend/zend_qsort.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_qsort.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_QSORT_H #define ZEND_QSORT_H diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c index fe747aff9..7a6ea9ab9 100644 --- a/Zend/zend_signal.c +++ b/Zend/zend_signal.c @@ -25,7 +25,7 @@ All other licensing and usage conditions are those of the PHP Group. */ - /* $Id: zend_signal.c 312377 2011-06-22 14:23:21Z iliaa $ */ + /* $Id: zend_signal.c 320281 2011-12-02 12:14:16Z dmitry $ */ #define _GNU_SOURCE #include <string.h> @@ -131,7 +131,7 @@ void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context) /* {{{ zend_signal_handler_unblock * Handle deferred signal from HANDLE_UNBLOCK_ALARMS */ -void zend_signal_handler_unblock(TSRMLS_D) +ZEND_API void zend_signal_handler_unblock(TSRMLS_D) { zend_signal_queue_t *queue; zend_signal_t zend_signal; @@ -215,7 +215,7 @@ ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigac sa.sa_mask = global_sigmask; if (sigaction(signo, &sa, NULL) < 0) { - zend_error(E_ERROR, "Error installing signal handler for %d", signo); + zend_error(E_WARNING, "Error installing signal handler for %d", signo); } /* unsure this signal is not blocked */ @@ -267,7 +267,7 @@ static int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void sa.sa_mask = global_sigmask; if (sigaction(signo, &sa, NULL) < 0) { - zend_error(E_ERROR, "Error installing signal handler for %d", signo); + zend_error(E_WARNING, "Error installing signal handler for %d", signo); } return SUCCESS; diff --git a/Zend/zend_signal.h b/Zend/zend_signal.h index aec15e655..1c263c78a 100644 --- a/Zend/zend_signal.h +++ b/Zend/zend_signal.h @@ -18,7 +18,7 @@ */ -/* $Id: zend_signal.h 312377 2011-06-22 14:23:21Z iliaa $ */ +/* $Id: zend_signal.h 321753 2012-01-04 08:25:06Z laruence $ */ #ifndef ZEND_SIGNAL_H #define ZEND_SIGNAL_H @@ -69,9 +69,13 @@ typedef struct _zend_signal_globals_t { BEGIN_EXTERN_C() ZEND_API extern int zend_signal_globals_id; END_EXTERN_C() +# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() if (EXPECTED(zend_signal_globals_id)) { SIGG(depth)++; } +# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (EXPECTED(zend_signal_globals_id) && UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } #else /* ZTS */ # define SIGG(v) (zend_signal_globals.v) extern ZEND_API zend_signal_globals_t zend_signal_globals; +# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() SIGG(depth)++; +# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } #endif /* not ZTS */ # define SIGNAL_BEGIN_CRITICAL() sigset_t oldmask; \ @@ -79,7 +83,7 @@ extern ZEND_API zend_signal_globals_t zend_signal_globals; # define SIGNAL_END_CRITICAL() zend_sigprocmask(SIG_SETMASK, &oldmask, NULL); void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context); -void zend_signal_handler_unblock(); +ZEND_API void zend_signal_handler_unblock(); void zend_signal_activate(TSRMLS_D); void zend_signal_deactivate(TSRMLS_D); void zend_signal_startup(); diff --git a/Zend/zend_sprintf.c b/Zend/zend_sprintf.c index ae48ec175..c141e4382 100644 --- a/Zend/zend_sprintf.c +++ b/Zend/zend_sprintf.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_sprintf.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <stdio.h> diff --git a/Zend/zend_stack.c b/Zend/zend_stack.c index 2e2b7e737..f4c0df187 100644 --- a/Zend/zend_stack.c +++ b/Zend/zend_stack.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_stack.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_stack.h" diff --git a/Zend/zend_stack.h b/Zend/zend_stack.h index 528d062fd..772559f69 100644 --- a/Zend/zend_stack.h +++ b/Zend/zend_stack.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_stack.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_STACK_H #define ZEND_STACK_H diff --git a/Zend/zend_static_allocator.c b/Zend/zend_static_allocator.c index 0d9cdbe7d..7ad35d593 100644 --- a/Zend/zend_static_allocator.c +++ b/Zend/zend_static_allocator.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_static_allocator.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend_static_allocator.h" diff --git a/Zend/zend_static_allocator.h b/Zend/zend_static_allocator.h index e85c1e38e..f226fca17 100644 --- a/Zend/zend_static_allocator.h +++ b/Zend/zend_static_allocator.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_static_allocator.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_STATIC_ALLOCATOR_H #define ZEND_STATIC_ALLOCATOR_H diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 0905fc41d..9a0bf26a6 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_stream.c 316812 2011-09-15 11:30:17Z dmitry $ */ +/* $Id: zend_stream.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h index 5d8aab056..069d2df09 100644 --- a/Zend/zend_stream.h +++ b/Zend/zend_stream.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_stream.h 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_stream.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_STREAM_H #define ZEND_STREAM_H diff --git a/Zend/zend_string.c b/Zend/zend_string.c index bb423c02e..8e9009f9f 100644 --- a/Zend/zend_string.c +++ b/Zend/zend_string.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_string.h b/Zend/zend_string.h index 6c0045278..a61d2fb30 100644 --- a/Zend/zend_string.h +++ b/Zend/zend_string.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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_strtod.h b/Zend/zend_strtod.h index 666b6233c..abf164407 100644 --- a/Zend/zend_strtod.h +++ b/Zend/zend_strtod.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 313756 2011-07-27 00:14:02Z pajoye $ */ +/* $Id: zend_strtod.h 321634 2012-01-01 13:15:04Z felipe $ */ /* 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 e01f4f06b..399b4bc70 100644 --- a/Zend/zend_ts_hash.c +++ b/Zend/zend_ts_hash.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ts_hash.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "zend.h" #include "zend_ts_hash.h" diff --git a/Zend/zend_ts_hash.h b/Zend/zend_ts_hash.h index 9dc9a881d..f758974f3 100644 --- a/Zend/zend_ts_hash.h +++ b/Zend/zend_ts_hash.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_ts_hash.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_TS_HASH_H #define ZEND_TS_HASH_H diff --git a/Zend/zend_types.h b/Zend/zend_types.h index 7005bfae3..6532ab160 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 316627 2011-09-13 13:29:35Z dmitry $ */ +/* $Id: zend_types.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_TYPES_H #define ZEND_TYPES_H diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index af27932c5..a4fda446c 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 311746 2011-06-03 01:09:32Z stas $ */ +/* $Id: zend_variables.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <stdio.h> #include "zend.h" diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h index a7134cdcb..1c52e3db2 100644 --- a/Zend/zend_variables.h +++ b/Zend/zend_variables.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_variables.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_VARIABLES_H #define ZEND_VARIABLES_H diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h index f1eddb51c..f5fd2e53f 100644 --- a/Zend/zend_vm.h +++ b/Zend/zend_vm.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 306938 2011-01-01 02:17:06Z felipe $ */ +/* $Id: zend_vm.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef ZEND_VM_H #define ZEND_VM_H diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 2f9f1c7df..ca0697806 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 318191 2011-10-18 19:42:42Z lbarnaud $ */ +/* $Id: zend_vm_def.h 321634 2012-01-01 13:15:04Z felipe $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -2187,7 +2187,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, TMP|VAR|UNUSED|CV, CONST|TMP|VAR|CV) zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (OP2_TYPE == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -2284,7 +2284,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (OP2_TYPE == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (OP2_TYPE == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (OP1_TYPE == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -2391,7 +2391,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); } else if (OP2_TYPE != IS_CONST && - EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) && + EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) && zend_hash_num_elements(Z_ARRVAL_P(function_name)) == 2) { zend_class_entry *ce; zval **method = NULL; @@ -2399,15 +2399,15 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) zend_hash_index_find(Z_ARRVAL_P(function_name), 0, (void **) &obj); zend_hash_index_find(Z_ARRVAL_P(function_name), 1, (void **) &method); - + if (Z_TYPE_PP(obj) != IS_STRING && Z_TYPE_PP(obj) != IS_OBJECT) { zend_error_noreturn(E_ERROR, "First array member is not a valid class name or object"); } - + if (Z_TYPE_PP(method) != IS_STRING) { zend_error_noreturn(E_ERROR, "Second array member is not a valid method"); } - + if (Z_TYPE_PP(obj) == IS_STRING) { ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC); if (UNEXPECTED(ce == NULL)) { @@ -2415,7 +2415,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) } EX(called_scope) = ce; EX(object) = NULL; - + if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, Z_STRVAL_PP(method), Z_STRLEN_PP(method) TSRMLS_CC); } else { @@ -2429,7 +2429,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), Z_STRVAL_PP(method)); } - + if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) { EX(object) = NULL; } else { @@ -4507,10 +4507,17 @@ ZEND_VM_C_LABEL(num_index_prop): zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -4689,12 +4696,12 @@ ZEND_VM_HANDLER(158, ZEND_JMP_SET_VAR, CONST|TMP|VAR|CV, ANY) if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!IS_OP1_TMP_FREE()) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -4741,12 +4748,12 @@ ZEND_VM_HANDLER(157, ZEND_QM_ASSIGN_VAR, CONST|TMP|VAR|CV, ANY) if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!IS_OP1_TMP_FREE()) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index d90053a55..94c34a555 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | @@ -2863,12 +2863,12 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLE if (IS_CONST == IS_VAR || IS_CONST == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!0) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -2914,12 +2914,12 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND if (IS_CONST == IS_VAR || IS_CONST == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!0) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -3452,7 +3452,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER( if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_CONST == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_CONST == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_CONST == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -4236,7 +4236,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_TMP_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_TMP_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_CONST == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -4899,7 +4899,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_CONST == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -5433,7 +5433,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_UNUSED == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_UNUSED == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_CONST == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -6087,7 +6087,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_CV == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_CV == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_CONST == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -7223,12 +7223,12 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!1) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -7275,12 +7275,12 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!1) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -7854,7 +7854,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CONST == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -8508,7 +8508,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_TMP_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -9173,7 +9173,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -10231,7 +10231,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_ zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CV == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -11694,12 +11694,12 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!0) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -11746,12 +11746,12 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!0) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -13295,7 +13295,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CONST == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -13391,7 +13391,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_CONST == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_CONST == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_VAR == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -14035,10 +14035,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -15437,7 +15444,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_TMP_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -15534,7 +15541,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_TMP_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_TMP_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_VAR == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -15941,10 +15948,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -17554,7 +17568,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -17651,7 +17665,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_VAR == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_VAR == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -18205,10 +18219,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -18894,7 +18915,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_UNUSED == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_UNUSED == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_VAR == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -20617,7 +20638,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_ zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CV == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -20713,7 +20734,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_ if (UNEXPECTED(EX(fbc) == NULL)) { zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval); } - if (IS_CV == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0)) { + if (IS_CV == IS_CONST && EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) { if (IS_VAR == IS_CONST) { CACHE_PTR(opline->op2.literal->cache_slot, EX(fbc)); } else { @@ -21119,10 +21140,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -22072,7 +22100,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_O zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CONST == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -22446,10 +22474,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -23312,7 +23347,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMP_HANDLER(ZEND_OPC zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_TMP_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -23596,10 +23631,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -24462,7 +24504,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -24746,10 +24788,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -25879,7 +25928,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCO zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CV == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -26162,10 +26211,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -27346,12 +27402,12 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_A if (IS_CV == IS_VAR || IS_CV == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!0) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -27397,12 +27453,12 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER if (IS_CV == IS_VAR || IS_CV == IS_CV) { Z_ADDREF_P(value); EX_T(opline->result.var).var.ptr = value; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; } else { ALLOC_ZVAL(ret); INIT_PZVAL_COPY(ret, value); EX_T(opline->result.var).var.ptr = ret; - EX_T(opline->result.var).var.ptr_ptr = NULL; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; if (!0) { zval_copy_ctor(EX_T(opline->result.var).var.ptr); } @@ -28937,7 +28993,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCOD zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CONST == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -29470,10 +29526,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -30862,7 +30925,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_ zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_TMP_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -31250,10 +31313,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -32852,7 +32922,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_ zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_VAR == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -33387,10 +33457,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { @@ -35652,7 +35729,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_H zend_error_noreturn(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } if (IS_CV == IS_CONST && - EXPECTED((EX(fbc)->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) && + EXPECTED((EX(fbc)->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) && EXPECTED(EX(object) == object)) { CACHE_POLYMORPHIC_PTR(opline->op2.literal->cache_slot, EX(called_scope), EX(fbc)); } @@ -36038,10 +36115,17 @@ num_index_prop: zval tmp; if (Z_TYPE_P(offset) != IS_LONG) { - ZVAL_COPY_VALUE(&tmp, offset); - zval_copy_ctor(&tmp); - convert_to_long(&tmp); - offset = &tmp; + if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */ + || (Z_TYPE_P(offset) == IS_STRING /* or numeric string */ + && IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) { + ZVAL_COPY_VALUE(&tmp, offset); + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + offset = &tmp; + } else { + /* can not be converted to proper offset, return "not set" */ + result = 0; + } } if (Z_TYPE_P(offset) == IS_LONG) { if (opline->extended_value & ZEND_ISSET) { diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index 34d0b1bbd..be6ca0474 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 313107 2011-07-10 13:05:32Z felipe $ + $Id: zend_vm_gen.php 321634 2012-01-01 13:15:04Z felipe $ */ $header_text = <<< DATA @@ -24,7 +24,7 @@ $header_text = <<< DATA +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 9b76b0eb3..680778c2a 100644 --- a/Zend/zend_vm_opcodes.h +++ b/Zend/zend_vm_opcodes.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2011 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2012 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 | |