summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-26 00:32:51 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-26 00:32:51 +0400
commitf9927a6c97208c60d922f9a4e98feb8079c57d1f (patch)
tree35815b69d1bf7d47fb41e857ff8d2b024ddac153 /Zend
parent4e7cbf3f5842abe6688c11ce3cc11d2eabf0695f (diff)
parentb82d077f988606580e5c06a9da18fe4f60ddb7cb (diff)
downloadphp-git-f9927a6c97208c60d922f9a4e98feb8079c57d1f.tar.gz
Merge mainstream 'master' branch into refactoring
During merge I had to revert: Nikita's patch for php_splice() (it probably needs to be applyed again) Bob Weinand's patches related to constant expression handling (we need to review them carefully) I also reverted all our attempts to support sapi/phpdbg (we didn't test it anyway) Conflicts: Zend/zend.h Zend/zend_API.c Zend/zend_ast.c Zend/zend_compile.c Zend/zend_compile.h Zend/zend_constants.c Zend/zend_exceptions.c Zend/zend_execute.c Zend/zend_execute.h Zend/zend_execute_API.c Zend/zend_hash.c Zend/zend_highlight.c Zend/zend_language_parser.y Zend/zend_language_scanner.c Zend/zend_language_scanner_defs.h Zend/zend_variables.c Zend/zend_vm_def.h Zend/zend_vm_execute.h ext/date/php_date.c ext/dom/documenttype.c ext/hash/hash.c ext/iconv/iconv.c ext/mbstring/tests/zend_multibyte-10.phpt ext/mbstring/tests/zend_multibyte-11.phpt ext/mbstring/tests/zend_multibyte-12.phpt ext/mysql/php_mysql.c ext/mysqli/mysqli.c ext/mysqlnd/mysqlnd_reverse_api.c ext/mysqlnd/php_mysqlnd.c ext/opcache/ZendAccelerator.c ext/opcache/zend_accelerator_util_funcs.c ext/opcache/zend_persist.c ext/opcache/zend_persist_calc.c ext/pcre/php_pcre.c ext/pdo/pdo_dbh.c ext/pdo/pdo_stmt.c ext/pdo_pgsql/pgsql_driver.c ext/pgsql/pgsql.c ext/reflection/php_reflection.c ext/session/session.c ext/spl/spl_array.c ext/spl/spl_observer.c ext/standard/array.c ext/standard/basic_functions.c ext/standard/html.c ext/standard/mail.c ext/standard/php_array.h ext/standard/proc_open.c ext/standard/streamsfuncs.c ext/standard/user_filters.c ext/standard/var_unserializer.c ext/standard/var_unserializer.re main/php_variables.c sapi/phpdbg/phpdbg.c sapi/phpdbg/phpdbg_bp.c sapi/phpdbg/phpdbg_frame.c sapi/phpdbg/phpdbg_help.c sapi/phpdbg/phpdbg_list.c sapi/phpdbg/phpdbg_print.c sapi/phpdbg/phpdbg_prompt.c
Diffstat (limited to 'Zend')
-rw-r--r--Zend/Zend.dsp8
-rw-r--r--Zend/tests/arg_unpack/basic.phpt14
-rw-r--r--Zend/tests/arg_unpack/by_ref.phpt134
-rw-r--r--Zend/tests/arg_unpack/dynamic.phpt2
-rw-r--r--Zend/tests/arg_unpack/invalid_type.phpt2
-rw-r--r--Zend/tests/arg_unpack/method.phpt15
-rw-r--r--Zend/tests/arg_unpack/new.phpt8
-rw-r--r--Zend/tests/arg_unpack/positional_arg_after_unpack_error.phpt10
-rw-r--r--Zend/tests/arg_unpack/traversable_throwing_exception.phpt4
-rw-r--r--Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt3
-rw-r--r--Zend/tests/bug66015.phpt30
-rw-r--r--Zend/tests/bug66660.phpt13
-rw-r--r--Zend/tests/constant_expressions.phpt5
-rw-r--r--Zend/tests/debug_info-error-0.0.phpt19
-rw-r--r--Zend/tests/debug_info-error-0.phpt19
-rw-r--r--Zend/tests/debug_info-error-1.0.phpt19
-rw-r--r--Zend/tests/debug_info-error-1.phpt19
-rw-r--r--Zend/tests/debug_info-error-empty_str.phpt19
-rw-r--r--Zend/tests/debug_info-error-false.phpt19
-rw-r--r--Zend/tests/debug_info-error-object.phpt19
-rw-r--r--Zend/tests/debug_info-error-resource.phpt19
-rw-r--r--Zend/tests/debug_info-error-str.phpt19
-rw-r--r--Zend/tests/debug_info-error-true.phpt19
-rw-r--r--Zend/tests/debug_info.phpt39
-rw-r--r--Zend/tests/generators/errors/serialize_unserialize_error.phpt9
-rw-r--r--Zend/zend.h1
-rw-r--r--Zend/zend_API.c19
-rw-r--r--Zend/zend_API.h1
-rw-r--r--Zend/zend_ast.c34
-rw-r--r--Zend/zend_compile.c102
-rw-r--r--Zend/zend_compile.h14
-rw-r--r--Zend/zend_constants.c2
-rw-r--r--Zend/zend_exceptions.c62
-rw-r--r--Zend/zend_execute.c2
-rw-r--r--Zend/zend_execute.h8
-rw-r--r--Zend/zend_execute_API.c21
-rw-r--r--Zend/zend_highlight.c2
-rw-r--r--Zend/zend_ini_parser.y2
-rw-r--r--Zend/zend_language_parser.y49
-rw-r--r--Zend/zend_language_scanner.c4052
-rw-r--r--Zend/zend_language_scanner.l8
-rw-r--r--Zend/zend_object_handlers.c37
-rw-r--r--Zend/zend_opcode.c3
-rw-r--r--Zend/zend_operators.c83
-rw-r--r--Zend/zend_operators.h1
-rw-r--r--Zend/zend_vm_def.h54
-rw-r--r--Zend/zend_vm_execute.h467
-rw-r--r--Zend/zend_vm_gen.php2
-rw-r--r--Zend/zend_vm_opcodes.c4
-rw-r--r--Zend/zend_vm_opcodes.h2
50 files changed, 3195 insertions, 2323 deletions
diff --git a/Zend/Zend.dsp b/Zend/Zend.dsp
index 348e1abaa5..98d368fb16 100644
--- a/Zend/Zend.dsp
+++ b/Zend/Zend.dsp
@@ -269,6 +269,10 @@ SOURCE=.\zend_variables.c
SOURCE=.\zend_vm_opcodes.c
# End Source File
+# Begin Source File
+
+SOURCE=.\zend_virtual_cwd.c
+# End Source File
# End Group
# Begin Group "Header Files"
@@ -437,10 +441,6 @@ SOURCE=.\zend_ts_hash.h
SOURCE=.\zend_variables.h
# End Source File
-# Begin Source File
-
-SOURCE=.\zend_virtual_cwd.c
-# End Source File
# End Group
# Begin Group "Parsers"
diff --git a/Zend/tests/arg_unpack/basic.phpt b/Zend/tests/arg_unpack/basic.phpt
index 9c0365586a..f8bd019378 100644
--- a/Zend/tests/arg_unpack/basic.phpt
+++ b/Zend/tests/arg_unpack/basic.phpt
@@ -30,12 +30,12 @@ test(...getArray([1, 2, 3]));
test(...arrayGen([]));
test(...arrayGen([1, 2, 3]));
-test(1, ...[2, 3], ...[4, 5], 6);
-test(1, ...getArray([2, 3]), ...arrayGen([4, 5]), 6);
+test(1, ...[2, 3], ...[4, 5]);
+test(1, ...getArray([2, 3]), ...arrayGen([4, 5]));
test2(...[1, 2]);
test2(...[1, 2, 3]);
-test2(...[1], ...[], ...[], ...[2, 3], 4, ...[5, 6]);
+test2(...[1], ...[], ...[], ...[2, 3], ...[4, 5]);
?>
--EXPECT--
@@ -75,7 +75,7 @@ array(3) {
[2]=>
int(3)
}
-array(6) {
+array(5) {
[0]=>
int(1)
[1]=>
@@ -86,10 +86,8 @@ array(6) {
int(4)
[4]=>
int(5)
- [5]=>
- int(6)
}
-array(6) {
+array(5) {
[0]=>
int(1)
[1]=>
@@ -100,8 +98,6 @@ array(6) {
int(4)
[4]=>
int(5)
- [5]=>
- int(6)
}
int(1)
int(2)
diff --git a/Zend/tests/arg_unpack/by_ref.phpt b/Zend/tests/arg_unpack/by_ref.phpt
index 0619a3bab8..7c8a86be48 100644
--- a/Zend/tests/arg_unpack/by_ref.phpt
+++ b/Zend/tests/arg_unpack/by_ref.phpt
@@ -17,46 +17,37 @@ $array = [1, 2, 3];
test1(...$array);
var_dump($array);
-$array1 = [1, 2]; $val2 = 3; $array2 = [4, 5];
-test1(...$array1, $val2, ...$array2);
-var_dump($array1, $val2, $array2);
+$array1 = [1, 2]; $array2 = [3, 4];
+test1(...$array1, ...$array2);
+var_dump($array1, $array2);
function test2($val1, &$ref1, $val2, &$ref2) {
$ref1++;
$ref2++;
}
-$array = [1, 2, 3, 4];
+$array = [0, 0, 0, 0];
test2(...$array);
var_dump($array);
-$a = $b = $c = $d = 0;
+$array1 = [1, 2]; $array2 = [4, 5];
+test1(...$array1, ...$array2);
+var_dump($array1, $array2);
-$array = [];
-test2(...$array, $a, $b, $c, $d);
-var_dump($array, $a, $b, $c, $d);
+$a = $b = $c = $d = 0;
+$array = [0, 0, 0, 0];
-$array = [1];
-test2(...$array, $a, $b, $c, $d);
-var_dump($array, $a, $b, $c, $d);
+test2($a, ...$array);
+var_dump($a, $array);
-$array = [1, 2];
-test2(...$array, $a, $b, $c, $d);
-var_dump($array, $a, $b, $c, $d);
+test2($a, $b, ...$array);
+var_dump($a, $b, $array);
-$array = [1, 2, 3];
-test2(...$array, $a, $b, $c, $d);
-var_dump($array, $a, $b, $c, $d);
+test2($a, $b, $c, ...$array);
+var_dump($a, $b, $c, $array);
-$vars = [];
-$array = [];
-test2(...$array, $vars['a'], $vars['b'], $vars['c'], $vars['d']);
-var_dump($vars);
-
-$vars = [];
-$array = [1];
-test2(...$array, $vars['a'], $vars['b'], $vars['c'], $vars['d']);
-var_dump($vars);
+test2($a, $b, $c, $d, ...$array);
+var_dump($a, $b, $c, $d, $array);
?>
--EXPECTF--
@@ -74,76 +65,81 @@ array(2) {
[1]=>
int(3)
}
-int(4)
array(2) {
[0]=>
- int(5)
+ int(4)
[1]=>
- int(6)
+ int(5)
}
array(4) {
[0]=>
- int(1)
+ int(0)
[1]=>
- int(3)
+ int(1)
[2]=>
- int(3)
+ int(0)
[3]=>
- int(5)
-}
-array(0) {
+ int(1)
}
-int(0)
-int(1)
-int(0)
-int(1)
-array(1) {
+array(2) {
[0]=>
- int(1)
+ int(2)
+ [1]=>
+ int(3)
}
-int(1)
-int(1)
-int(1)
-int(1)
array(2) {
[0]=>
+ int(5)
+ [1]=>
+ int(6)
+}
+int(0)
+array(4) {
+ [0]=>
int(1)
[1]=>
- int(3)
+ int(0)
+ [2]=>
+ int(1)
+ [3]=>
+ int(0)
}
+int(0)
int(1)
-int(2)
-int(1)
-int(1)
-array(3) {
+array(4) {
[0]=>
int(1)
[1]=>
- int(3)
+ int(1)
[2]=>
- int(3)
+ int(1)
+ [3]=>
+ int(0)
}
+int(0)
int(2)
-int(2)
-int(1)
-int(1)
-
-Notice: Undefined index: a in %s on line %d
-
-Notice: Undefined index: c in %s on line %d
-array(2) {
- ["b"]=>
+int(0)
+array(4) {
+ [0]=>
+ int(2)
+ [1]=>
int(1)
- ["d"]=>
+ [2]=>
int(1)
+ [3]=>
+ int(0)
}
-
-Notice: Undefined index: b in %s on line %d
-
-Notice: Undefined index: d in %s on line %d
-array(2) {
- ["a"]=>
+int(0)
+int(3)
+int(0)
+int(1)
+array(4) {
+ [0]=>
+ int(2)
+ [1]=>
int(1)
- ["c"]=>
+ [2]=>
int(1)
+ [3]=>
+ int(0)
}
diff --git a/Zend/tests/arg_unpack/dynamic.phpt b/Zend/tests/arg_unpack/dynamic.phpt
index efed84da78..8f129f85a6 100644
--- a/Zend/tests/arg_unpack/dynamic.phpt
+++ b/Zend/tests/arg_unpack/dynamic.phpt
@@ -9,7 +9,7 @@ $fn = function(...$args) {
$fn(...[]);
$fn(...[1, 2, 3]);
-$fn(1, ...[2, 3], ...[], 4, 5);
+$fn(1, ...[2, 3], ...[], ...[4, 5]);
?>
--EXPECT--
diff --git a/Zend/tests/arg_unpack/invalid_type.phpt b/Zend/tests/arg_unpack/invalid_type.phpt
index 3efffebc76..1ef545558c 100644
--- a/Zend/tests/arg_unpack/invalid_type.phpt
+++ b/Zend/tests/arg_unpack/invalid_type.phpt
@@ -12,7 +12,7 @@ test(...42);
test(...new stdClass);
test(1, 2, 3, ..."foo", ...[4, 5]);
-test(1, 2, ...new StdClass, 3, ...3.14, ...[4, 5]);
+test(1, 2, 3, ...new StdClass, ...3.14, ...[4, 5]);
?>
--EXPECTF--
diff --git a/Zend/tests/arg_unpack/method.phpt b/Zend/tests/arg_unpack/method.phpt
index d6a6e4712b..fb9ace8378 100644
--- a/Zend/tests/arg_unpack/method.phpt
+++ b/Zend/tests/arg_unpack/method.phpt
@@ -14,8 +14,7 @@ class Foo {
}
$foo = new Foo;
-$foo->test(...[1, 2], 3, 4, ...[], 5);
-Foo::test2(1, 2, ...[3, 4], ...[], 5);
+Foo::test2(1, 2, ...[3, 4], ...[], ...[5]);
?>
--EXPECT--
@@ -31,15 +30,3 @@ array(5) {
[4]=>
int(5)
}
-array(5) {
- [0]=>
- int(1)
- [1]=>
- int(2)
- [2]=>
- int(3)
- [3]=>
- int(4)
- [4]=>
- int(5)
-}
diff --git a/Zend/tests/arg_unpack/new.phpt b/Zend/tests/arg_unpack/new.phpt
index 3cf224f288..7a0968e2c9 100644
--- a/Zend/tests/arg_unpack/new.phpt
+++ b/Zend/tests/arg_unpack/new.phpt
@@ -11,7 +11,7 @@ class Foo {
new Foo(...[]);
new Foo(...[1, 2, 3]);
-new Foo(...[1], 2, ...[], ...[3, 4], 5);
+new Foo(...[1], ...[], ...[2, 3]);
?>
--EXPECT--
@@ -25,15 +25,11 @@ array(3) {
[2]=>
int(3)
}
-array(5) {
+array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
- [3]=>
- int(4)
- [4]=>
- int(5)
}
diff --git a/Zend/tests/arg_unpack/positional_arg_after_unpack_error.phpt b/Zend/tests/arg_unpack/positional_arg_after_unpack_error.phpt
new file mode 100644
index 0000000000..30e13e3d10
--- /dev/null
+++ b/Zend/tests/arg_unpack/positional_arg_after_unpack_error.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Positional arguments cannot be used after argument unpacking
+--FILE--
+<?php
+
+var_dump(...[1, 2, 3], 4);
+
+?>
+--EXPECTF--
+Fatal error: Cannot use positional argument after argument unpacking in %s on line %d
diff --git a/Zend/tests/arg_unpack/traversable_throwing_exception.phpt b/Zend/tests/arg_unpack/traversable_throwing_exception.phpt
index 8ddc24dc74..abbf537587 100644
--- a/Zend/tests/arg_unpack/traversable_throwing_exception.phpt
+++ b/Zend/tests/arg_unpack/traversable_throwing_exception.phpt
@@ -20,11 +20,11 @@ function gen() {
}
try {
- test(1, 2, ...new Foo, 3, 4);
+ test(1, 2, ...new Foo, ...[3, 4]);
} catch (Exception $e) { var_dump($e->getMessage()); }
try {
- test(1, 2, ...gen(), 3, 4);
+ test(1, 2, ...gen(), ...[3, 4]);
} catch (Exception $e) { var_dump($e->getMessage()); }
?>
diff --git a/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt b/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt
index e862341652..711287eded 100644
--- a/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt
+++ b/Zend/tests/arg_unpack/traversable_with_by_ref_parameters.phpt
@@ -13,8 +13,6 @@ function gen($array) {
}
}
-test(...gen([1, 2, 3]), $a);
-var_dump($a);
test(1, 2, 3, $b, ...gen([4, 5, 6]));
var_dump($b);
@@ -25,7 +23,6 @@ test(...gen([1, 2]), ...gen([3, 4]));
?>
--EXPECTF--
int(42)
-int(42)
Warning: Cannot pass by-reference argument 4 of test() by unpacking a Traversable, passing by-value instead in %s on line %d
diff --git a/Zend/tests/bug66015.phpt b/Zend/tests/bug66015.phpt
new file mode 100644
index 0000000000..4f6d51e0dd
--- /dev/null
+++ b/Zend/tests/bug66015.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #66015 (wrong array indexing in class's static property)
+--FILE--
+<?php
+class Test
+{
+ const FIRST = 1;
+ const SECOND = 2;
+ const THIRD = 3;
+
+ protected static $array = [
+ self::FIRST => 'first',
+ 'second',
+ 'third'
+ ];
+
+ public function __construct()
+ {
+ var_export(self::$array);
+ }
+}
+
+$test = new Test();
+?>
+--EXPECTF--
+array (
+ 1 => 'first',
+ 2 => 'second',
+ 3 => 'third',
+)
diff --git a/Zend/tests/bug66660.phpt b/Zend/tests/bug66660.phpt
new file mode 100644
index 0000000000..9ae8a27336
--- /dev/null
+++ b/Zend/tests/bug66660.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #66660 (Composer.phar install/update fails)
+--STDIN--
+<?php __CLASS__ ?>
+--FILE--
+<?php
+file_put_contents(__DIR__."/bug66660.tmp.php", "<?php __CLASS__ ?>");
+echo php_strip_whitespace(__DIR__."/bug66660.tmp.php");
+?>
+--CLEAN--
+<?php unlink(__DIR__."/bug66660.tmp.php"); ?>
+--EXPECT--
+<?php __CLASS__ ?>
diff --git a/Zend/tests/constant_expressions.phpt b/Zend/tests/constant_expressions.phpt
index 7dea0d83f7..cf6474bd63 100644
--- a/Zend/tests/constant_expressions.phpt
+++ b/Zend/tests/constant_expressions.phpt
@@ -35,6 +35,9 @@ const T_25 = 1 + 2 * 3;
// Test for memory leaks
const T_26 = "1" + 2 + "3";
+// Allow T_POW
+const T_27 = 2 ** 3;
+
var_dump(T_1);
var_dump(T_2);
var_dump(T_3);
@@ -61,6 +64,7 @@ var_dump(T_23);
var_dump(T_24);
var_dump(T_25);
var_dump(T_26);
+var_dump(T_27);
?>
--EXPECT--
int(2)
@@ -89,3 +93,4 @@ bool(false)
bool(true)
int(7)
int(6)
+int(8)
diff --git a/Zend/tests/debug_info-error-0.0.phpt b/Zend/tests/debug_info-error-0.0.phpt
new file mode 100644
index 0000000000..1c8dfc8853
--- /dev/null
+++ b/Zend/tests/debug_info-error-0.0.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns ZERO (float)
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(0.0);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-0.0.php on line %d
diff --git a/Zend/tests/debug_info-error-0.phpt b/Zend/tests/debug_info-error-0.phpt
new file mode 100644
index 0000000000..868ac2f75f
--- /dev/null
+++ b/Zend/tests/debug_info-error-0.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns ZERO
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(0);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-0.php on line %d
diff --git a/Zend/tests/debug_info-error-1.0.phpt b/Zend/tests/debug_info-error-1.0.phpt
new file mode 100644
index 0000000000..27611237bb
--- /dev/null
+++ b/Zend/tests/debug_info-error-1.0.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns ONE (float)
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(1.0);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-1.0.php on line %d
diff --git a/Zend/tests/debug_info-error-1.phpt b/Zend/tests/debug_info-error-1.phpt
new file mode 100644
index 0000000000..e2e9823ed4
--- /dev/null
+++ b/Zend/tests/debug_info-error-1.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns ONE
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(1);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-1.php on line %d
diff --git a/Zend/tests/debug_info-error-empty_str.phpt b/Zend/tests/debug_info-error-empty_str.phpt
new file mode 100644
index 0000000000..72ab85d7d8
--- /dev/null
+++ b/Zend/tests/debug_info-error-empty_str.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns EMPTY STRING
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C("");
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-empty_str.php on line %d
diff --git a/Zend/tests/debug_info-error-false.phpt b/Zend/tests/debug_info-error-false.phpt
new file mode 100644
index 0000000000..d6e19938af
--- /dev/null
+++ b/Zend/tests/debug_info-error-false.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns FALSE
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(false);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-false.php on line %d
diff --git a/Zend/tests/debug_info-error-object.phpt b/Zend/tests/debug_info-error-object.phpt
new file mode 100644
index 0000000000..40737db2b6
--- /dev/null
+++ b/Zend/tests/debug_info-error-object.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns OBJECT
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(new stdClass);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-object.php on line %d
diff --git a/Zend/tests/debug_info-error-resource.phpt b/Zend/tests/debug_info-error-resource.phpt
new file mode 100644
index 0000000000..ebdc37e534
--- /dev/null
+++ b/Zend/tests/debug_info-error-resource.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns RESOURCE
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(fopen("data:text/plain,Foo", 'r'));
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-resource.php on line %d
diff --git a/Zend/tests/debug_info-error-str.phpt b/Zend/tests/debug_info-error-str.phpt
new file mode 100644
index 0000000000..aa16d5bf7c
--- /dev/null
+++ b/Zend/tests/debug_info-error-str.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns STRING
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C("foo");
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-str.php on line %d
diff --git a/Zend/tests/debug_info-error-true.phpt b/Zend/tests/debug_info-error-true.phpt
new file mode 100644
index 0000000000..2501e8a412
--- /dev/null
+++ b/Zend/tests/debug_info-error-true.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Testing __debugInfo() magic method with bad returns TRUE
+--FILE--
+<?php
+
+class C {
+ public $val;
+ public function __debugInfo() {
+ return $this->val;
+ }
+ public function __construct($val) {
+ $this->val = $val;
+ }
+}
+
+$c = new C(true);
+var_dump($c);
+--EXPECTF--
+Fatal error: __debuginfo() must return an array in %s%eZend%etests%edebug_info-error-true.php on line %d
diff --git a/Zend/tests/debug_info.phpt b/Zend/tests/debug_info.phpt
new file mode 100644
index 0000000000..c82ddb2143
--- /dev/null
+++ b/Zend/tests/debug_info.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Testing __debugInfo() magic method
+--FILE--
+<?php
+
+class Foo {
+ public $d = 4;
+ protected $e = 5;
+ private $f = 6;
+
+ public function __debugInfo() {
+ return ['a'=>1, "\0*\0b"=>2, "\0Foo\0c"=>3];
+ }
+}
+
+class Bar {
+ public $val = 123;
+
+ public function __debugInfo() {
+ return null;
+ }
+}
+
+$f = new Foo;
+var_dump($f);
+
+$b = new Bar;
+var_dump($b);
+--EXPECTF--
+object(Foo)#%d (3) {
+ ["a"]=>
+ int(1)
+ ["b":protected]=>
+ int(2)
+ ["c":"Foo":private]=>
+ int(3)
+}
+object(Bar)#%d (0) {
+}
diff --git a/Zend/tests/generators/errors/serialize_unserialize_error.phpt b/Zend/tests/generators/errors/serialize_unserialize_error.phpt
index aa2d4693f7..b5e77e5028 100644
--- a/Zend/tests/generators/errors/serialize_unserialize_error.phpt
+++ b/Zend/tests/generators/errors/serialize_unserialize_error.phpt
@@ -32,12 +32,11 @@ Stack trace:
#0 %s(%d): serialize(Object(Generator))
#1 {main}
-exception 'Exception' with message 'Unserialization of 'Generator' is not allowed' in %s:%d
-Stack trace:
-#0 [internal function]: Generator->__wakeup()
-#1 %s(%d): unserialize('O:9:"Generator"...')
-#2 {main}
+Warning: Erroneous data format for unserializing 'Generator' in %sserialize_unserialize_error.php on line %d
+
+Notice: unserialize(): Error at offset 19 of 20 bytes in %sserialize_unserialize_error.php on line %s
+bool(false)
exception 'Exception' with message 'Unserialization of 'Generator' is not allowed' in %s:%d
Stack trace:
#0 %s(%d): unserialize('C:9:"Generator"...')
diff --git a/Zend/zend.h b/Zend/zend.h
index 799eb25cfe..cabe64a56a 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -470,6 +470,7 @@ struct _zend_class_entry {
union _zend_function *__call;
union _zend_function *__callstatic;
union _zend_function *__tostring;
+ union _zend_function *__debugInfo;
union _zend_function *serialize_func;
union _zend_function *unserialize_func;
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 9212527963..60ef092bb1 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1128,7 +1128,7 @@ static int zval_update_class_constant(zval *pp, int is_static, int offset TSRMLS
int ret;
zend_class_entry *old_scope = *scope;
*scope = prop_info->ce;
- ret = zval_update_constant(pp, (void*)1 TSRMLS_CC);
+ ret = zval_update_constant(pp, 1 TSRMLS_CC);
*scope = old_scope;
return ret;
}
@@ -1137,7 +1137,7 @@ static int zval_update_class_constant(zval *pp, int is_static, int offset TSRMLS
} while (ce);
}
- return zval_update_constant(pp, (void*)1 TSRMLS_CC);
+ return zval_update_constant(pp, 1 TSRMLS_CC);
}
return 0;
}
@@ -1151,7 +1151,7 @@ ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC
int i;
*scope = class_type;
- zend_hash_apply_with_argument(&class_type->constants_table, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC);
+ zend_hash_apply_with_argument(&class_type->constants_table, (apply_func_arg_t) zval_update_constant, (void *)1 TSRMLS_CC);
for (i = 0; i < class_type->default_properties_count; i++) {
if (Z_TYPE(class_type->default_properties_table[i]) != IS_UNDEF) {
@@ -2085,6 +2085,9 @@ ZEND_API void zend_check_magic_method_implementation(const zend_class_entry *ce,
!memcmp(lcname, ZEND_TOSTRING_FUNC_NAME, sizeof(ZEND_TOSTRING_FUNC_NAME)-1) && fptr->common.num_args != 0
) {
zend_error(error_type, "Method %s::%s() cannot take arguments", ce->name->val, ZEND_TOSTRING_FUNC_NAME);
+ } else if (name_len == sizeof(ZEND_DEBUGINFO_FUNC_NAME) - 1 &&
+ !memcmp(lcname, ZEND_DEBUGINFO_FUNC_NAME, sizeof(ZEND_DEBUGINFO_FUNC_NAME)-1) && fptr->common.num_args != 0) {
+ zend_error(error_type, "Method %s::%s() cannot take arguments", ce->name->val, ZEND_DEBUGINFO_FUNC_NAME);
}
}
/* }}} */
@@ -2098,7 +2101,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
int count=0, unload=0;
HashTable *target_function_table = function_table;
int error_type;
- zend_function *ctor = NULL, *dtor = NULL, *clone = NULL, *__get = NULL, *__set = NULL, *__unset = NULL, *__isset = NULL, *__call = NULL, *__callstatic = NULL, *__tostring = NULL;
+ zend_function *ctor = NULL, *dtor = NULL, *clone = NULL, *__get = NULL, *__set = NULL, *__unset = NULL, *__isset = NULL, *__call = NULL, *__callstatic = NULL, *__tostring = NULL, *__debugInfo = NULL;
zend_string *lowercase_name;
int fname_len;
const char *lc_class_name = NULL;
@@ -2250,6 +2253,8 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
__unset = reg_function;
} else if ((fname_len == sizeof(ZEND_ISSET_FUNC_NAME)-1) && !memcmp(lowercase_name->val, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME) - 1)) {
__isset = reg_function;
+ } else if ((fname_len == sizeof(ZEND_DEBUGINFO_FUNC_NAME)-1) && !memcmp(lowercase_name->val, ZEND_DEBUGINFO_FUNC_NAME, sizeof(ZEND_DEBUGINFO_FUNC_NAME) - 1)) {
+ __debugInfo = reg_function;
} else {
reg_function = NULL;
}
@@ -2289,6 +2294,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
scope->__set = __set;
scope->__unset = __unset;
scope->__isset = __isset;
+ scope->__debugInfo = __debugInfo;
if (ctor) {
ctor->common.fn_flags |= ZEND_ACC_CTOR;
if (ctor->common.fn_flags & ZEND_ACC_STATIC) {
@@ -2352,6 +2358,11 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
}
__isset->common.fn_flags &= ~ZEND_ACC_ALLOW_STATIC;
}
+ if (__debugInfo) {
+ if (__debugInfo->common.fn_flags & ZEND_ACC_STATIC) {
+ zend_error(error_type, "Method %s::%s() cannot be static", scope->name->val, __debugInfo->common.function_name->val);
+ }
+ }
efree((char*)lc_class_name);
}
return SUCCESS;
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index 43c205c659..ae26375f70 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -193,6 +193,7 @@ typedef struct _zend_fcall_info_cache {
class_container.__set = handle_propset; \
class_container.__unset = handle_propunset; \
class_container.__isset = handle_propisset; \
+ class_container.__debugInfo = NULL; \
class_container.serialize_func = NULL; \
class_container.unserialize_func = NULL; \
class_container.serialize = NULL; \
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c
index 5babcffe48..07d38dc6bf 100644
--- a/Zend/zend_ast.c
+++ b/Zend/zend_ast.c
@@ -106,6 +106,13 @@ ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *s
zval_dtor(&op1);
zval_dtor(&op2);
break;
+ case ZEND_POW:
+ zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
+ zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
+ pow_function(result, &op1, &op2 TSRMLS_CC);
+ zval_dtor(&op1);
+ zval_dtor(&op2);
+ break;
case ZEND_DIV:
zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
@@ -224,7 +231,7 @@ ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *s
case ZEND_CONST:
ZVAL_DUP(result, &ast->u.val);
if (Z_OPT_CONSTANT_P(result)) {
- zval_update_constant_ex(result, (void *) 1, scope TSRMLS_CC);
+ zval_update_constant_ex(result, 1, scope TSRMLS_CC);
}
break;
case ZEND_BOOL_AND:
@@ -288,24 +295,15 @@ ZEND_API zend_ast *zend_ast_copy(zend_ast *ast)
zend_ast *copy = zend_ast_create_constant(&ast->u.val);
zval_copy_ctor(&copy->u.val);
return copy;
- } else {
- switch (ast->children) {
- case 1:
- return zend_ast_create_unary(
- ast->kind,
- zend_ast_copy((&ast->u.child)[0]));
- case 2:
- return zend_ast_create_binary(
- ast->kind,
- zend_ast_copy((&ast->u.child)[0]),
- zend_ast_copy((&ast->u.child)[1]));
- case 3:
- return zend_ast_create_ternary(
- ast->kind,
- zend_ast_copy((&ast->u.child)[0]),
- zend_ast_copy((&ast->u.child)[1]),
- zend_ast_copy((&ast->u.child)[2]));
+ } else if (ast->children) {
+ zend_ast *new = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * (ast->children - 1));
+ int i;
+ new->kind = ast->kind;
+ new->children = ast->children;
+ for (i = 0; i < ast->children; i++) {
+ (&new->u.child)[i] = zend_ast_copy((&ast->u.child)[i]);
}
+ return new;
}
return NULL;
}
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 625957f74a..8df612e18b 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -97,6 +97,13 @@ ZEND_API zend_compiler_globals compiler_globals;
ZEND_API zend_executor_globals executor_globals;
#endif
+static void zend_push_function_call_entry(zend_function *fbc TSRMLS_DC) /* {{{ */
+{
+ zend_function_call_entry fcall = { fbc };
+ zend_stack_push(&CG(function_call_stack), &fcall, sizeof(zend_function_call_entry));
+}
+/* }}} */
+
static void zend_duplicate_property_info(zend_property_info *property_info) /* {{{ */
{
STR_ADDREF(property_info->name);
@@ -1611,6 +1618,11 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
zend_error(E_WARNING, "The magic method __invoke() must have public visibility and cannot be static");
}
+
+ } else if ((name->len == sizeof(ZEND_DEBUGINFO_FUNC_NAME)-1) && (!memcmp(lcname->val, ZEND_DEBUGINFO_FUNC_NAME, sizeof(ZEND_DEBUGINFO_FUNC_NAME)-1))) {
+ if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
+ zend_error(E_WARNING, "The magic method __debugInfo() must have public visibility and cannot be static");
+ }
}
} else {
char *class_lcname;
@@ -1671,6 +1683,11 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
zend_error(E_WARNING, "The magic method __invoke() must have public visibility and cannot be static");
}
+ } else if ((name->len == sizeof(ZEND_DEBUGINFO_FUNC_NAME)-1) && (!memcmp(lcname->val, ZEND_DEBUGINFO_FUNC_NAME, sizeof(ZEND_DEBUGINFO_FUNC_NAME)-1))) {
+ if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
+ zend_error(E_WARNING, "The magic method __debugInfo() must have public visibility and cannot be static");
+ }
+ CG(active_class_entry)->__debugInfo = (zend_function *) CG(active_op_array);
} else if (!(fn_flags & ZEND_ACC_STATIC)) {
CG(active_op_array)->fn_flags |= ZEND_ACC_ALLOW_STATIC;
}
@@ -1981,7 +1998,7 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace
STR_RELEASE(Z_STR(function_name->u.constant));
Z_STR(function_name->u.constant) = lcname;
- zend_stack_push(&CG(function_call_stack), (void *) &function, sizeof(zend_function *));
+ zend_push_function_call_entry(function TSRMLS_CC);
if (CG(context).nested_calls + 1 > CG(active_op_array)->nested_calls) {
CG(active_op_array)->nested_calls = CG(context).nested_calls + 1;
}
@@ -1994,7 +2011,6 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */
{
zend_op *last_op;
int last_op_number;
- unsigned char *ptr = NULL;
zend_do_end_variable_parse(left_bracket, BP_VAR_R, 0 TSRMLS_CC);
zend_do_begin_variable_parse(TSRMLS_C);
@@ -2038,7 +2054,7 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */
}
}
- zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *));
+ zend_push_function_call_entry(NULL TSRMLS_CC);
if (++CG(context).nested_calls > CG(active_op_array)->nested_calls) {
CG(active_op_array)->nested_calls = CG(context).nested_calls;
}
@@ -2061,7 +2077,6 @@ void zend_do_clone(znode *result, znode *expr TSRMLS_DC) /* {{{ */
void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRMLS_DC) /* {{{ */
{
- unsigned char *ptr = NULL;
zend_op *opline;
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -2087,7 +2102,7 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRML
}
}
- zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *));
+ zend_push_function_call_entry(NULL TSRMLS_CC);
if (++CG(context).nested_calls > CG(active_op_array)->nested_calls) {
CG(active_op_array)->nested_calls = CG(context).nested_calls;
}
@@ -2489,7 +2504,6 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_c
int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC) /* {{{ */
{
znode class_node;
- unsigned char *ptr = NULL;
zend_op *opline;
if (method_name->op_type == IS_CONST) {
@@ -2538,7 +2552,7 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
SET_NODE(opline->op2, method_name);
}
- zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *));
+ zend_push_function_call_entry(NULL TSRMLS_CC);
if (++CG(context).nested_calls > CG(active_op_array)->nested_calls) {
CG(active_op_array)->nested_calls = CG(context).nested_calls;
}
@@ -2547,22 +2561,21 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
}
/* }}} */
-void zend_do_end_function_call(znode *function_name, znode *result, const znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC) /* {{{ */
+void zend_do_end_function_call(znode *function_name, znode *result, int is_method, int is_dynamic_fcall TSRMLS_DC) /* {{{ */
{
zend_op *opline;
+ zend_function_call_entry *fcall;
+ zend_stack_top(&CG(function_call_stack), (void **) &fcall);
if (is_method && function_name && function_name->op_type == IS_UNUSED) {
/* clone */
- if (Z_LVAL(argument_list->u.constant) != 0) {
+ if (fcall->arg_num != 0) {
zend_error(E_WARNING, "Clone method does not require arguments");
}
opline = &CG(active_op_array)->opcodes[Z_LVAL(function_name->u.constant)];
} else {
- zend_function **function_ptr_ptr;
- zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
-
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
- if (*function_ptr_ptr) {
+ if (fcall->fbc) {
opline->opcode = ZEND_DO_FCALL;
SET_NODE(opline->op1, function_name);
SET_UNUSED(opline->op2);
@@ -2586,33 +2599,39 @@ void zend_do_end_function_call(znode *function_name, znode *result, const znode
opline->result.var = get_temporary_variable(CG(active_op_array));
opline->result_type = IS_VAR;
GET_NODE(result, opline->result);
-
- zend_stack_del_top(&CG(function_call_stack));
- opline->extended_value = Z_LVAL(argument_list->u.constant);
+ opline->extended_value = fcall->arg_num;
if (CG(context).used_stack + 1 > CG(active_op_array)->used_stack) {
CG(active_op_array)->used_stack = CG(context).used_stack + 1;
}
- CG(context).used_stack -= Z_LVAL(argument_list->u.constant);
+ CG(context).used_stack -= fcall->arg_num;
+ zend_stack_del_top(&CG(function_call_stack));
}
/* }}} */
-void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{{ */
+void zend_do_pass_param(znode *param, zend_uchar op TSRMLS_DC) /* {{{ */
{
zend_op *opline;
int original_op = op;
- zend_function **function_ptr_ptr, *function_ptr;
+ zend_function_call_entry *fcall;
+ zend_function *function_ptr;
int send_by_reference = 0;
int send_function = 0;
- zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
- function_ptr = *function_ptr_ptr;
+ zend_stack_top(&CG(function_call_stack), (void **) &fcall);
+ function_ptr = fcall->fbc;
+ fcall->arg_num++;
+
+ if (fcall->uses_argument_unpacking) {
+ zend_error_noreturn(E_COMPILE_ERROR,
+ "Cannot use positional argument after argument unpacking");
+ }
if (original_op == ZEND_SEND_REF) {
if (function_ptr &&
function_ptr->common.function_name &&
function_ptr->common.type == ZEND_USER_FUNCTION &&
- !ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
+ !ARG_SHOULD_BE_SENT_BY_REF(function_ptr, fcall->arg_num)) {
zend_error_noreturn(E_COMPILE_ERROR,
"Call-time pass-by-reference has been removed; "
"If you would like to pass argument by reference, modify the declaration of %s().",
@@ -2624,7 +2643,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
}
if (function_ptr) {
- if (ARG_MAY_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
+ if (ARG_MAY_BE_SENT_BY_REF(function_ptr, fcall->arg_num)) {
if (op == ZEND_SEND_VAR && param->op_type & (IS_VAR|IS_CV)) {
send_by_reference = ZEND_ARG_SEND_BY_REF;
if (zend_is_function_or_method_call(param)) {
@@ -2635,7 +2654,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
} else {
op = ZEND_SEND_VAL;
}
- } else if (ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
+ } else if (ARG_SHOULD_BE_SENT_BY_REF(function_ptr, fcall->arg_num)) {
send_by_reference = ZEND_ARG_SEND_BY_REF;
}
}
@@ -2670,7 +2689,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
if (function_ptr) {
zend_do_end_variable_parse(param, BP_VAR_R, 0 TSRMLS_CC);
} else {
- zend_do_end_variable_parse(param, BP_VAR_FUNC_ARG, offset TSRMLS_CC);
+ zend_do_end_variable_parse(param, BP_VAR_FUNC_ARG, fcall->arg_num TSRMLS_CC);
}
break;
case ZEND_SEND_REF:
@@ -2696,7 +2715,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
}
opline->opcode = op;
SET_NODE(opline->op1, param);
- opline->op2.opline_num = offset;
+ opline->op2.opline_num = fcall->arg_num;
SET_UNUSED(opline->op2);
if (++CG(context).used_stack > CG(active_op_array)->used_stack) {
@@ -2705,18 +2724,20 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
}
/* }}} */
-void zend_do_unpack_params(znode *params, int offset TSRMLS_DC) /* {{{ */
+void zend_do_unpack_params(znode *params TSRMLS_DC) /* {{{ */
{
zend_op *opline;
- zend_function **function_ptr_ptr;
+ zend_function_call_entry *fcall;
- zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
- if (*function_ptr_ptr) {
+ zend_stack_top(&CG(function_call_stack), (void **) &fcall);
+ fcall->uses_argument_unpacking = 1;
+
+ if (fcall->fbc) {
/* If argument unpacking is used argument numbers and sending modes can no longer be
* computed at compile time, thus we need access to EX(call). In order to have it we
* retroactively emit a ZEND_INIT_FCALL_BY_NAME opcode. */
zval func_name;
- ZVAL_STR(&func_name, STR_COPY((*function_ptr_ptr)->common.function_name));
+ ZVAL_STR(&func_name, STR_COPY(fcall->fbc->common.function_name));
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_INIT_FCALL_BY_NAME;
@@ -2727,14 +2748,14 @@ void zend_do_unpack_params(znode *params, int offset TSRMLS_DC) /* {{{ */
GET_CACHE_SLOT(opline->op2.constant);
++CG(context).nested_calls;
- *function_ptr_ptr = NULL;
+ fcall->fbc = NULL;
}
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_SEND_UNPACK;
SET_NODE(opline->op1, params);
SET_UNUSED(opline->op2);
- opline->op2.num = (zend_uint) offset;
+ opline->op2.num = fcall->arg_num;
}
/* }}} */
@@ -3134,6 +3155,9 @@ static void do_inherit_parent_constructor(zend_class_entry *ce) /* {{{ */
if (!ce->destructor) {
ce->destructor = ce->parent->destructor;
}
+ if (!ce->__debugInfo) {
+ ce->__debugInfo = ce->parent->__debugInfo;
+ }
if (ce->constructor) {
if (ce->parent->constructor && ce->parent->constructor->common.fn_flags & ZEND_ACC_FINAL) {
zend_error(E_ERROR, "Cannot override final %s::%s() with %s::%s()",
@@ -3469,7 +3493,7 @@ static char * zend_get_function_declaration(zend_function *fptr TSRMLS_DC) /* {{
zval zv;
ZVAL_DUP(&zv, precv->op2.zv);
- zval_update_constant_ex(&zv, (void*)1, fptr->common.scope TSRMLS_CC);
+ zval_update_constant_ex(&zv, 1, fptr->common.scope TSRMLS_CC);
if (Z_TYPE(zv) == IS_BOOL) {
if (Z_LVAL(zv)) {
memcpy(offset, "true", 4);
@@ -4006,6 +4030,8 @@ static void zend_add_magic_methods(zend_class_entry* ce, zend_string* mname, zen
ce->__callstatic = fe;
} else if (!strncmp(mname->val, ZEND_TOSTRING_FUNC_NAME, mname->len)) {
ce->__tostring = fe;
+ } else if (!strncmp(mname->val, ZEND_DEBUGINFO_FUNC_NAME, mname->len)) {
+ ce->__debugInfo = fe;
} else if (ce->name->len == mname->len) {
zend_string *lowercase_name = STR_ALLOC(ce->name->len, 0);
zend_str_tolower_copy(lowercase_name->val, ce->name->val, ce->name->len);
@@ -5602,7 +5628,6 @@ void zend_do_pop_object(znode *object TSRMLS_DC) /* {{{ */
void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC) /* {{{ */
{
zend_op *opline;
- unsigned char *ptr = NULL;
new_token->u.op.opline_num = get_next_op_number(CG(active_op_array));
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
@@ -5613,18 +5638,18 @@ void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC) /*
SET_NODE(opline->op1, class_type);
SET_UNUSED(opline->op2);
- zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(unsigned char *));
+ zend_push_function_call_entry(NULL TSRMLS_CC);
if (++CG(context).nested_calls > CG(active_op_array)->nested_calls) {
CG(active_op_array)->nested_calls = CG(context).nested_calls;
}
}
/* }}} */
-void zend_do_end_new_object(znode *result, const znode *new_token, const znode *argument_list TSRMLS_DC) /* {{{ */
+void zend_do_end_new_object(znode *result, const znode *new_token TSRMLS_DC) /* {{{ */
{
znode ctor_result;
- zend_do_end_function_call(NULL, &ctor_result, argument_list, 1, 0 TSRMLS_CC);
+ zend_do_end_function_call(NULL, &ctor_result, 1, 0 TSRMLS_CC);
zend_do_free(&ctor_result TSRMLS_CC);
CG(active_op_array)->opcodes[new_token->u.op.opline_num].op2.opline_num = get_next_op_number(CG(active_op_array));
@@ -6986,6 +7011,7 @@ ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify
ce->unserialize = NULL;
ce->serialize_func = NULL;
ce->unserialize_func = NULL;
+ ce->__debugInfo = NULL;
if (ce->type == ZEND_INTERNAL_CLASS) {
ce->info.internal.module = NULL;
ce->info.internal.builtin_functions = NULL;
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index 24f06c426f..4288a3b705 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -343,6 +343,11 @@ typedef struct _zend_function_state {
zval *arguments;
} zend_function_state;
+typedef struct _zend_function_call_entry {
+ zend_function *fbc;
+ zend_uint arg_num;
+ zend_bool uses_argument_unpacking;
+} zend_function_call_entry;
typedef struct _zend_switch_entry {
znode cond;
@@ -506,7 +511,7 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TS
void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC);
void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_class_member TSRMLS_DC);
int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC);
-void zend_do_end_function_call(znode *function_name, znode *result, const znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
+void zend_do_end_function_call(znode *function_name, znode *result, int is_method, int is_dynamic_fcall TSRMLS_DC);
void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
void zend_do_yield(znode *result, znode *value, znode *key, zend_bool is_variable TSRMLS_DC);
void zend_do_handle_exception(TSRMLS_D);
@@ -542,8 +547,8 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent
void zend_do_early_binding(TSRMLS_D);
ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array TSRMLS_DC);
-void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
-void zend_do_unpack_params(znode *params, int offset TSRMLS_DC);
+void zend_do_pass_param(znode *param, zend_uchar op TSRMLS_DC);
+void zend_do_unpack_params(znode *params TSRMLS_DC);
void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC);
@@ -573,7 +578,7 @@ void zend_do_pop_object(znode *object TSRMLS_DC);
void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC);
-void zend_do_end_new_object(znode *result, const znode *new_token, const znode *argument_list TSRMLS_DC);
+void zend_do_end_new_object(znode *result, const znode *new_token TSRMLS_DC);
void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode, zend_bool check_namespace TSRMLS_DC);
@@ -862,6 +867,7 @@ END_EXTERN_C()
#define ZEND_TOSTRING_FUNC_NAME "__tostring"
#define ZEND_AUTOLOAD_FUNC_NAME "__autoload"
#define ZEND_INVOKE_FUNC_NAME "__invoke"
+#define ZEND_DEBUGINFO_FUNC_NAME "__debuginfo"
/* The following constants may be combined in CG(compiler_options)
* to change the default compiler behavior */
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index fd98a92c4e..a25fe2bdb5 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -396,7 +396,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
STR_FREE(class_name);
STR_FREE(constant_name);
if (ret_constant && Z_CONSTANT_P(ret_constant)) {
- zval_update_constant_ex(ret_constant, (void*)1, ce TSRMLS_CC);
+ zval_update_constant_ex(ret_constant, 1, ce TSRMLS_CC);
}
return ret_constant;
}
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index 4272adedbd..137d9c97f8 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -360,6 +360,13 @@ ZEND_METHOD(error_exception, getSeverity)
} \
} while (0)
+
+#define TRACE_ARG_APPEND(vallen) do { \
+ int len = str->len; \
+ str = STR_REALLOC(str, len + vallen, 0); \
+ memmove(str->val + len - l_added + 1 + vallen, str->val + len - l_added + 1, l_added); \
+ } while (0)
+
/* }}} */
static int _build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
@@ -370,7 +377,7 @@ static int _build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, ze
str = *str_ptr;
/* the trivial way would be to do:
- * conver_to_string_ex(arg);
+ * convert_to_string_ex(arg);
* append it and kill the now tmp arg.
* but that could cause some E_NOTICE and also damn long lines.
*/
@@ -394,8 +401,57 @@ static int _build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, ze
l_added += 3 + 1;
}
while (--l_added) {
- if (str->val[str->len - l_added] < 32) {
- str->val[str->len - l_added] = '?';
+ unsigned char chr = str->val[str->len - l_added];
+ if (chr < 32 || chr == '\\' || chr > 126) {
+ str->val[str->len - l_added] = '\\';
+
+ switch (chr) {
+ case '\n':
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = 'n';
+ break;
+ case '\r':
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = 'r';
+ break;
+ case '\t':
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = 't';
+ break;
+ case '\f':
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = 'f';
+ break;
+ case '\v':
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = 'v';
+ break;
+#ifndef PHP_WIN32
+ case '\e':
+#else
+ case VK_ESCAPE:
+#endif
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = 'e';
+ break;
+ case '\\':
+ TRACE_ARG_APPEND(1);
+ str->val[str->len - l_added] = '\\';
+ break;
+ default:
+ TRACE_ARG_APPEND(3);
+ str->val[str->len - l_added - 2] = 'x';
+ if ((chr >> 4) < 10) {
+ str->val[str->len - l_added - 1] = (chr >> 4) + '0';
+ } else {
+ str->val[str->len - l_added - 1] = (chr >> 4) + 'A' - 10;
+ }
+ if (chr % 16 < 10) {
+ str->val[str->len - l_added] = chr % 16 + '0';
+ } else {
+ str->val[str->len - l_added] = chr % 16 + 'A' - 10;
+ }
+ }
}
}
break;
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index b5f9df5d42..22acd4e960 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1681,7 +1681,7 @@ ZEND_API zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array
static zend_always_inline zend_bool zend_is_by_ref_func_arg_fetch(zend_op *opline, call_slot *call TSRMLS_DC) /* {{{ */
{
- zend_uint arg_num = (opline->extended_value & ZEND_FETCH_ARG_MASK) + call->num_additional_args;
+ zend_uint arg_num = opline->extended_value & ZEND_FETCH_ARG_MASK;
return ARG_SHOULD_BE_SENT_BY_REF(call->fbc, arg_num);
}
/* }}} */
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index d632a97840..98e2678f53 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -134,10 +134,10 @@ again:
return result;
}
-ZEND_API int zval_update_constant(zval *pp, void *arg TSRMLS_DC);
-ZEND_API int zval_update_constant_inline_change(zval *pp, void *arg TSRMLS_DC);
-ZEND_API int zval_update_constant_no_inline_change(zval *pp, void *arg TSRMLS_DC);
-ZEND_API int zval_update_constant_ex(zval *pp, void *arg, zend_class_entry *scope TSRMLS_DC);
+ZEND_API int zval_update_constant(zval *pp, zend_bool inline_change TSRMLS_DC);
+ZEND_API int zval_update_constant_inline_change(zval *pp, zend_class_entry *scope TSRMLS_DC);
+ZEND_API int zval_update_constant_no_inline_change(zval *pp, zend_class_entry *scope TSRMLS_DC);
+ZEND_API int zval_update_constant_ex(zval *pp, zend_bool inline_change, zend_class_entry *scope TSRMLS_DC);
/* dedicated Zend executor functions - do not use! */
#define ZEND_VM_STACK_PAGE_SIZE ((16 * 1024) - 16)
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 621ad66586..03f763ea21 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -501,14 +501,13 @@ ZEND_API int zend_is_true(zval *op TSRMLS_DC) /* {{{ */
#include "../TSRM/tsrm_strtok_r.h"
-#define IS_VISITED_CONSTANT 0x080
+#define IS_VISITED_CONSTANT 0x80
#define IS_CONSTANT_VISITED(p) (Z_TYPE_P(p) & IS_VISITED_CONSTANT)
#define Z_REAL_TYPE_P(p) (Z_TYPE_P(p) & ~IS_VISITED_CONSTANT)
#define MARK_CONSTANT_VISITED(p) Z_TYPE_INFO_P(p) |= IS_VISITED_CONSTANT
-ZEND_API int zval_update_constant_ex(zval *p, void *arg, zend_class_entry *scope TSRMLS_DC) /* {{{ */
+ZEND_API int zval_update_constant_ex(zval *p, zend_bool inline_change, zend_class_entry *scope TSRMLS_DC) /* {{{ */
{
- zend_bool inline_change = (zend_bool) (zend_uintptr_t) arg;
zval *const_value, tmp;
char *colon;
@@ -588,7 +587,7 @@ ZEND_API int zval_update_constant_ex(zval *p, void *arg, zend_class_entry *scope
//???!
ZVAL_COPY_VALUE(p, const_value);
if (Z_OPT_CONSTANT_P(p)) {
- zval_update_constant_ex(p, (void*)1, NULL TSRMLS_CC);
+ zval_update_constant_ex(p, 1, NULL TSRMLS_CC);
}
zval_opt_copy_ctor(p);
}
@@ -670,7 +669,7 @@ ZEND_API int zval_update_constant_ex(zval *p, void *arg, zend_class_entry *scope
//???!
ZVAL_COPY_VALUE(&tmp, const_value);
if (Z_OPT_CONSTANT(tmp)) {
- zval_update_constant_ex(&tmp, (void*)1, NULL TSRMLS_CC);
+ zval_update_constant_ex(&tmp, 1, NULL TSRMLS_CC);
}
zval_opt_copy_ctor(&tmp);
const_value = &tmp;
@@ -721,21 +720,21 @@ ZEND_API int zval_update_constant_ex(zval *p, void *arg, zend_class_entry *scope
}
/* }}} */
-ZEND_API int zval_update_constant_inline_change(zval *pp, void *scope TSRMLS_DC) /* {{{ */
+ZEND_API int zval_update_constant_inline_change(zval *pp, zend_class_entry *scope TSRMLS_DC) /* {{{ */
{
- return zval_update_constant_ex(pp, (void*)1, scope TSRMLS_CC);
+ return zval_update_constant_ex(pp, 1, scope TSRMLS_CC);
}
/* }}} */
-ZEND_API int zval_update_constant_no_inline_change(zval *pp, void *scope TSRMLS_DC) /* {{{ */
+ZEND_API int zval_update_constant_no_inline_change(zval *pp, zend_class_entry *scope TSRMLS_DC) /* {{{ */
{
- return zval_update_constant_ex(pp, (void*)0, scope TSRMLS_CC);
+ return zval_update_constant_ex(pp, 0, scope TSRMLS_CC);
}
/* }}} */
-ZEND_API int zval_update_constant(zval *pp, void *arg TSRMLS_DC) /* {{{ */
+ZEND_API int zval_update_constant(zval *pp, zend_bool inline_change TSRMLS_DC) /* {{{ */
{
- return zval_update_constant_ex(pp, arg, NULL TSRMLS_CC);
+ return zval_update_constant_ex(pp, inline_change, NULL TSRMLS_CC);
}
/* }}} */
diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c
index 9959d96fc7..50a1edce38 100644
--- a/Zend/zend_highlight.c
+++ b/Zend/zend_highlight.c
@@ -57,7 +57,7 @@ ZEND_API void zend_html_putc(char c)
ZEND_API void zend_html_puts(const char *s, uint len TSRMLS_DC)
{
const unsigned char *ptr = (const unsigned char*)s, *end = ptr + len;
- unsigned char *filtered;
+ unsigned char *filtered = NULL;
size_t filtered_len;
if (LANG_SCNG(output_filter)) {
diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y
index 29a2cb0aff..eaf451a3a1 100644
--- a/Zend/zend_ini_parser.y
+++ b/Zend/zend_ini_parser.y
@@ -120,7 +120,7 @@ static void zend_ini_get_constant(zval *result, zval *name TSRMLS_DC)
if (Z_TYPE_P(c) != IS_STRING) {
ZVAL_COPY_VALUE(&tmp, c);
if (Z_OPT_CONSTANT(tmp)) {
- zval_update_constant_ex(&tmp, (void*)1, NULL TSRMLS_CC);
+ zval_update_constant_ex(&tmp, 1, NULL TSRMLS_CC);
}
zval_opt_copy_ctor(&tmp);
convert_to_string(&tmp);
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 073242b97e..ace4f6c284 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -72,7 +72,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_PRINT "print (T_PRINT)"
%right T_YIELD
%token T_YIELD "yield (T_YIELD)"
-%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL
+%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL
%token T_PLUS_EQUAL "+= (T_PLUS_EQUAL)"
%token T_MINUS_EQUAL "-= (T_MINUS_EQUAL)"
%token T_MUL_EQUAL "*= (T_MUL_EQUAL)"
@@ -109,6 +109,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%nonassoc T_INSTANCEOF
%token T_INSTANCEOF "instanceof (T_INSTANCEOF)"
%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@'
+%right T_POW
%token T_INC "++ (T_INC)"
%token T_DEC "-- (T_DEC)"
%token T_INT_CAST "(int) (T_INT_CAST)"
@@ -213,6 +214,8 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_DIR "__DIR__ (T_DIR)"
%token T_NS_SEPARATOR "\\ (T_NS_SEPARATOR)"
%token T_ELLIPSIS "... (T_ELLIPSIS)"
+%token T_POW "** (T_POW)"
+%token T_POW_EQUAL "**= (T_POW_EQUAL)"
%% /* Rules */
@@ -577,19 +580,20 @@ optional_class_type:
function_call_parameter_list:
'(' ')' { Z_LVAL($$.u.constant) = 0; }
| '(' non_empty_function_call_parameter_list ')' { $$ = $2; }
- | '(' yield_expr ')' { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$2, ZEND_SEND_VAL, Z_LVAL($$.u.constant) TSRMLS_CC); }
+ | '(' yield_expr ')' { zend_do_pass_param(&$2, ZEND_SEND_VAL TSRMLS_CC); }
;
non_empty_function_call_parameter_list:
- expr_without_variable { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$1, ZEND_SEND_VAL, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | variable { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$1, ZEND_SEND_VAR, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | '&' w_variable { Z_LVAL($$.u.constant) = 1; zend_do_pass_param(&$2, ZEND_SEND_REF, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | T_ELLIPSIS expr { Z_LVAL($$.u.constant) = 0; zend_do_unpack_params(&$2, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | non_empty_function_call_parameter_list ',' expr_without_variable { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant)+1; zend_do_pass_param(&$3, ZEND_SEND_VAL, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | non_empty_function_call_parameter_list ',' variable { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant)+1; zend_do_pass_param(&$3, ZEND_SEND_VAR, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | non_empty_function_call_parameter_list ',' '&' w_variable { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant)+1; zend_do_pass_param(&$4, ZEND_SEND_REF, Z_LVAL($$.u.constant) TSRMLS_CC); }
- | non_empty_function_call_parameter_list ',' T_ELLIPSIS expr { Z_LVAL($$.u.constant)=Z_LVAL($1.u.constant); zend_do_unpack_params(&$4, Z_LVAL($$.u.constant) TSRMLS_CC); }
+ function_call_parameter
+ | non_empty_function_call_parameter_list ',' function_call_parameter
+;
+
+function_call_parameter:
+ expr_without_variable { zend_do_pass_param(&$1, ZEND_SEND_VAL TSRMLS_CC); }
+ | variable { zend_do_pass_param(&$1, ZEND_SEND_VAR TSRMLS_CC); }
+ | '&' w_variable { zend_do_pass_param(&$2, ZEND_SEND_REF TSRMLS_CC); }
+ | T_ELLIPSIS expr { zend_do_unpack_params(&$2 TSRMLS_CC); }
;
global_var_list:
@@ -766,18 +770,19 @@ instance_call:
;
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);}
+ 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 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); }
+ | 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 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_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); }
| variable T_MUL_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_MUL, &$$, &$1, &$3 TSRMLS_CC); }
+ | variable T_POW_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_POW, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_DIV_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_DIV, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_CONCAT_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_CONCAT, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MOD_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_MOD, &$$, &$1, &$3 TSRMLS_CC); }
@@ -802,6 +807,7 @@ expr_without_variable:
| expr '+' expr { zend_do_binary_op(ZEND_ADD, &$$, &$1, &$3 TSRMLS_CC); }
| expr '-' expr { zend_do_binary_op(ZEND_SUB, &$$, &$1, &$3 TSRMLS_CC); }
| expr '*' expr { zend_do_binary_op(ZEND_MUL, &$$, &$1, &$3 TSRMLS_CC); }
+ | expr T_POW expr { zend_do_binary_op(ZEND_POW, &$$, &$1, &$3 TSRMLS_CC); }
| expr '/' expr { zend_do_binary_op(ZEND_DIV, &$$, &$1, &$3 TSRMLS_CC); }
| expr '%' expr { zend_do_binary_op(ZEND_MOD, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_SL expr { zend_do_binary_op(ZEND_SL, &$$, &$1, &$3 TSRMLS_CC); }
@@ -885,21 +891,21 @@ lexical_var_list:
function_call:
namespace_name { $$.u.op.opline_num = zend_do_begin_function_call(&$1, 1 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$3, 0, $2.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, 0, $2.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
| T_NAMESPACE T_NS_SEPARATOR namespace_name { $1.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$1.u.constant); zend_do_build_namespace_name(&$1, &$1, &$3 TSRMLS_CC); $$.u.op.opline_num = zend_do_begin_function_call(&$1, 0 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$5, 0, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, 0, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
| T_NS_SEPARATOR namespace_name { $$.u.op.opline_num = zend_do_begin_function_call(&$2, 0 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(&$2, &$$, &$4, 0, $3.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ function_call_parameter_list { zend_do_end_function_call(&$2, &$$, 0, $3.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_name { $$.u.op.opline_num = zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call($4.u.op.opline_num?NULL:&$3, &$$, &$5, $4.u.op.opline_num, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ function_call_parameter_list { zend_do_end_function_call($4.u.op.opline_num?NULL:&$3, &$$, $4.u.op.opline_num, $4.u.op.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
| class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { zend_do_end_variable_parse(&$3, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(NULL, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ function_call_parameter_list { zend_do_end_function_call(NULL, &$$, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name { zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(NULL, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ function_call_parameter_list { zend_do_end_function_call(NULL, &$$, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
| variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { zend_do_end_variable_parse(&$3, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(NULL, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ function_call_parameter_list { zend_do_end_function_call(NULL, &$$, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
| variable_without_objects { zend_do_end_variable_parse(&$1, BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&$1, 0 TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$3, 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
;
class_name:
@@ -1000,6 +1006,7 @@ static_operation:
static_scalar_value '+' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_ADD, $1.u.ast, $3.u.ast); }
| static_scalar_value '-' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_SUB, $1.u.ast, $3.u.ast); }
| static_scalar_value '*' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_MUL, $1.u.ast, $3.u.ast); }
+ | static_scalar_value T_POW static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_POW, $1.u.ast, $3.u.ast); }
| static_scalar_value '/' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_DIV, $1.u.ast, $3.u.ast); }
| static_scalar_value '%' static_scalar_value { $$.u.ast = zend_ast_create_binary(ZEND_MOD, $1.u.ast, $3.u.ast); }
| '!' static_scalar_value { $$.u.ast = zend_ast_create_unary(ZEND_BOOL_NOT, $2.u.ast); }
@@ -1112,7 +1119,7 @@ array_method_dereference:
method:
{ zend_do_pop_object(&$$ TSRMLS_CC); zend_do_begin_method_call(&$$ TSRMLS_CC); }
- function_call_parameter_list { zend_do_end_function_call(&$1, &$$, &$2, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ function_call_parameter_list { zend_do_end_function_call(&$1, &$$, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
;
method_or_not:
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index cd7119f43d..be8be6c782 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -1116,7 +1116,7 @@ yyc_INITIAL:
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1772 "Zend/zend_language_scanner.l"
+#line 1780 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1195,7 +1195,7 @@ yy5:
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1762 "Zend/zend_language_scanner.l"
+#line 1770 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
DUMMY_STRINGL(zendlval, yytext, yyleng);
@@ -1212,7 +1212,7 @@ yy7:
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1743 "Zend/zend_language_scanner.l"
+#line 1751 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
DUMMY_STRINGL(zendlval, yytext, yyleng);
@@ -1408,7 +1408,7 @@ yy35:
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1709 "Zend/zend_language_scanner.l"
+#line 1717 "Zend/zend_language_scanner.l"
{
YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
@@ -1450,7 +1450,7 @@ yy43:
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1725 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
DUMMY_STRINGL(zendlval, yytext, yyleng);
@@ -1466,7 +1466,7 @@ yy45:
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1736 "Zend/zend_language_scanner.l"
+#line 1744 "Zend/zend_language_scanner.l"
{
DUMMY_STRINGL(zendlval, yytext, yyleng);
BEGIN(ST_IN_SCRIPTING);
@@ -1499,7 +1499,7 @@ yy50:
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1754 "Zend/zend_language_scanner.l"
+#line 1762 "Zend/zend_language_scanner.l"
{
DUMMY_STRINGL(zendlval, yytext, yyleng);
HANDLE_NEWLINE(yytext[yyleng-1]);
@@ -1577,7 +1577,7 @@ yyc_ST_BACKQUOTE:
yy56:
YYDEBUG(56, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2215 "Zend/zend_language_scanner.l"
+#line 2223 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1629,7 +1629,7 @@ yy58:
++YYCURSOR;
YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2159 "Zend/zend_language_scanner.l"
+#line 2167 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
@@ -1644,7 +1644,7 @@ yy61:
++YYCURSOR;
YYDEBUG(62, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2146 "Zend/zend_language_scanner.l"
+#line 2154 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1667,7 +1667,7 @@ yy63:
yy65:
YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1861 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
return T_VARIABLE;
@@ -1678,7 +1678,7 @@ yy66:
++YYCURSOR;
YYDEBUG(67, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
+#line 1484 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -1697,7 +1697,7 @@ yy70:
++YYCURSOR;
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1846 "Zend/zend_language_scanner.l"
+#line 1854 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1722,7 +1722,7 @@ yy73:
++YYCURSOR;
YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1797,7 +1797,7 @@ yy77:
yy78:
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2165 "Zend/zend_language_scanner.l"
+#line 2173 "Zend/zend_language_scanner.l"
{
if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1857,7 +1857,7 @@ yy80:
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2154 "Zend/zend_language_scanner.l"
+#line 2162 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
@@ -1872,7 +1872,7 @@ yy83:
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2146 "Zend/zend_language_scanner.l"
+#line 2154 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1895,7 +1895,7 @@ yy85:
yy87:
YYDEBUG(87, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1861 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
return T_VARIABLE;
@@ -1906,7 +1906,7 @@ yy88:
++YYCURSOR;
YYDEBUG(89, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
+#line 1484 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -1925,7 +1925,7 @@ yy92:
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1846 "Zend/zend_language_scanner.l"
+#line 1854 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1950,7 +1950,7 @@ yy95:
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1968,7 +1968,7 @@ yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2132 "Zend/zend_language_scanner.l"
+#line 2140 "Zend/zend_language_scanner.l"
{
zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
@@ -2043,7 +2043,7 @@ yy103:
yy104:
YYDEBUG(104, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2257 "Zend/zend_language_scanner.l"
+#line 2265 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -2131,7 +2131,7 @@ yy107:
++YYCURSOR;
YYDEBUG(108, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2146 "Zend/zend_language_scanner.l"
+#line 2154 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -2154,7 +2154,7 @@ yy109:
yy111:
YYDEBUG(111, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1861 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
return T_VARIABLE;
@@ -2165,7 +2165,7 @@ yy112:
++YYCURSOR;
YYDEBUG(113, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
+#line 1484 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -2184,7 +2184,7 @@ yy116:
++YYCURSOR;
YYDEBUG(117, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1846 "Zend/zend_language_scanner.l"
+#line 1854 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2209,7 +2209,7 @@ yy119:
++YYCURSOR;
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2383,23 +2383,23 @@ yy123:
YYDEBUG(-1, yych);
switch ((yych = *YYCURSOR)) {
case 'C':
- case 'c': goto yy738;
+ case 'c': goto yy742;
case 'L':
- case 'l': goto yy739;
+ case 'l': goto yy743;
case 'M':
- case 'm': goto yy740;
+ case 'm': goto yy744;
case 'N':
- case 'n': goto yy741;
+ case 'n': goto yy745;
case 'V':
- case 'v': goto yy742;
+ case 'v': goto yy746;
case 'X':
- case 'x': goto yy743;
+ case 'x': goto yy747;
default: goto yy187;
}
yy124:
YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1875 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
return T_STRING;
@@ -2410,20 +2410,20 @@ yy125:
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'H') {
- if (yych == 'E') goto yy720;
+ if (yych == 'E') goto yy724;
goto yy187;
} else {
- if (yych <= 'I') goto yy721;
+ if (yych <= 'I') goto yy725;
if (yych <= 'N') goto yy187;
- goto yy722;
+ goto yy726;
}
} else {
if (yych <= 'h') {
- if (yych == 'e') goto yy720;
+ if (yych == 'e') goto yy724;
goto yy187;
} else {
- if (yych <= 'i') goto yy721;
- if (yych == 'o') goto yy722;
+ if (yych <= 'i') goto yy725;
+ if (yych == 'o') goto yy726;
goto yy187;
}
}
@@ -2432,20 +2432,20 @@ yy126:
yych = *++YYCURSOR;
if (yych <= 'U') {
if (yych <= 'N') {
- if (yych == 'I') goto yy696;
+ if (yych == 'I') goto yy700;
goto yy187;
} else {
- if (yych <= 'O') goto yy697;
+ if (yych <= 'O') goto yy701;
if (yych <= 'T') goto yy187;
- goto yy698;
+ goto yy702;
}
} else {
if (yych <= 'n') {
- if (yych == 'i') goto yy696;
+ if (yych == 'i') goto yy700;
goto yy187;
} else {
- if (yych <= 'o') goto yy697;
- if (yych == 'u') goto yy698;
+ if (yych <= 'o') goto yy701;
+ if (yych == 'u') goto yy702;
goto yy187;
}
}
@@ -2454,48 +2454,48 @@ yy127:
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'K') {
- if (yych == 'A') goto yy661;
+ if (yych == 'A') goto yy665;
goto yy187;
} else {
- if (yych <= 'L') goto yy662;
+ if (yych <= 'L') goto yy666;
if (yych <= 'N') goto yy187;
- goto yy663;
+ goto yy667;
}
} else {
if (yych <= 'k') {
- if (yych == 'a') goto yy661;
+ if (yych == 'a') goto yy665;
goto yy187;
} else {
- if (yych <= 'l') goto yy662;
- if (yych == 'o') goto yy663;
+ if (yych <= 'l') goto yy666;
+ if (yych == 'o') goto yy667;
goto yy187;
}
}
yy128:
YYDEBUG(128, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy643;
- if (yych == 'e') goto yy643;
+ if (yych == 'E') goto yy647;
+ if (yych == 'e') goto yy647;
goto yy187;
yy129:
YYDEBUG(129, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy638;
- if (yych == 'i') goto yy638;
+ if (yych == 'I') goto yy642;
+ if (yych == 'i') goto yy642;
goto yy187;
yy130:
YYDEBUG(130, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'R') {
- if (yych == 'H') goto yy626;
+ if (yych == 'H') goto yy630;
if (yych <= 'Q') goto yy187;
- goto yy627;
+ goto yy631;
} else {
if (yych <= 'h') {
if (yych <= 'g') goto yy187;
- goto yy626;
+ goto yy630;
} else {
- if (yych == 'r') goto yy627;
+ if (yych == 'r') goto yy631;
goto yy187;
}
}
@@ -2504,53 +2504,53 @@ yy131:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'L') {
- if (yych == 'F') goto yy573;
+ if (yych == 'F') goto yy577;
goto yy187;
} else {
- if (yych <= 'M') goto yy575;
- if (yych <= 'N') goto yy576;
+ if (yych <= 'M') goto yy579;
+ if (yych <= 'N') goto yy580;
if (yych <= 'R') goto yy187;
- goto yy577;
+ goto yy581;
}
} else {
if (yych <= 'm') {
- if (yych == 'f') goto yy573;
+ if (yych == 'f') goto yy577;
if (yych <= 'l') goto yy187;
- goto yy575;
+ goto yy579;
} else {
- if (yych <= 'n') goto yy576;
- if (yych == 's') goto yy577;
+ if (yych <= 'n') goto yy580;
+ if (yych == 's') goto yy581;
goto yy187;
}
}
yy132:
YYDEBUG(132, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy568;
- if (yych == 'h') goto yy568;
+ if (yych == 'H') goto yy572;
+ if (yych == 'h') goto yy572;
goto yy187;
yy133:
YYDEBUG(133, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'M') {
- if (yych == 'B') goto yy550;
+ if (yych == 'B') goto yy554;
goto yy187;
} else {
- if (yych <= 'N') goto yy551;
+ if (yych <= 'N') goto yy555;
if (yych <= 'Q') goto yy187;
- if (yych <= 'R') goto yy552;
- goto yy553;
+ if (yych <= 'R') goto yy556;
+ goto yy557;
}
} else {
if (yych <= 'n') {
- if (yych == 'b') goto yy550;
+ if (yych == 'b') goto yy554;
if (yych <= 'm') goto yy187;
- goto yy551;
+ goto yy555;
} else {
if (yych <= 'q') goto yy187;
- if (yych <= 'r') goto yy552;
- if (yych <= 's') goto yy553;
+ if (yych <= 'r') goto yy556;
+ if (yych <= 's') goto yy557;
goto yy187;
}
}
@@ -2558,15 +2558,15 @@ yy134:
YYDEBUG(134, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'W') {
- if (yych == 'T') goto yy538;
+ if (yych == 'T') goto yy542;
if (yych <= 'V') goto yy187;
- goto yy539;
+ goto yy543;
} else {
if (yych <= 't') {
if (yych <= 's') goto yy187;
- goto yy538;
+ goto yy542;
} else {
- if (yych == 'w') goto yy539;
+ if (yych == 'w') goto yy543;
goto yy187;
}
}
@@ -2577,18 +2577,18 @@ yy135:
if (yych <= ';') {
if (yych <= '"') {
if (yych <= '!') goto yy187;
- goto yy530;
+ goto yy534;
} else {
- if (yych == '\'') goto yy531;
+ if (yych == '\'') goto yy535;
goto yy187;
}
} else {
if (yych <= 'R') {
- if (yych <= '<') goto yy529;
+ if (yych <= '<') goto yy533;
if (yych <= 'Q') goto yy187;
- goto yy532;
+ goto yy536;
} else {
- if (yych == 'r') goto yy532;
+ if (yych == 'r') goto yy536;
goto yy187;
}
}
@@ -2596,15 +2596,15 @@ yy136:
YYDEBUG(136, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'L') goto yy519;
+ if (yych == 'L') goto yy523;
if (yych <= 'N') goto yy187;
- goto yy520;
+ goto yy524;
} else {
if (yych <= 'l') {
if (yych <= 'k') goto yy187;
- goto yy519;
+ goto yy523;
} else {
- if (yych == 'o') goto yy520;
+ if (yych == 'o') goto yy524;
goto yy187;
}
}
@@ -2612,15 +2612,15 @@ yy137:
YYDEBUG(137, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'R') goto yy495;
+ if (yych == 'R') goto yy499;
if (yych <= 'T') goto yy187;
- goto yy496;
+ goto yy500;
} else {
if (yych <= 'r') {
if (yych <= 'q') goto yy187;
- goto yy495;
+ goto yy499;
} else {
- if (yych == 'u') goto yy496;
+ if (yych == 'u') goto yy500;
goto yy187;
}
}
@@ -2628,15 +2628,15 @@ yy138:
YYDEBUG(138, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy491;
+ if (yych == '-') goto yy495;
} else {
- if (yych <= '=') goto yy489;
- if (yych <= '>') goto yy493;
+ if (yych <= '=') goto yy493;
+ if (yych <= '>') goto yy497;
}
yy139:
YYDEBUG(139, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1473 "Zend/zend_language_scanner.l"
{
return yytext[0];
}
@@ -2645,7 +2645,7 @@ yy140:
YYDEBUG(140, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy488;
+ goto yy492;
yy141:
YYDEBUG(141, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
@@ -2659,7 +2659,7 @@ yy141:
yy142:
YYDEBUG(142, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == ':') goto yy485;
+ if (yych == ':') goto yy489;
goto yy139;
yy143:
YYDEBUG(143, *YYCURSOR);
@@ -2676,34 +2676,34 @@ yy145:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
- if (yych == '.') goto yy482;
+ if (yych == '.') goto yy486;
goto yy139;
} else {
- if (yych <= '9') goto yy478;
- if (yych == '=') goto yy480;
+ if (yych <= '9') goto yy482;
+ if (yych == '=') goto yy484;
goto yy139;
}
yy146:
YYDEBUG(146, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy466;
+ if (yych == 'A') goto yy470;
if (yych <= 'D') goto yy187;
- goto yy467;
+ goto yy471;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
- goto yy466;
+ goto yy470;
} else {
- if (yych == 'e') goto yy467;
+ if (yych == 'e') goto yy471;
goto yy187;
}
}
yy147:
YYDEBUG(147, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy463;
- if (yych == 'a') goto yy463;
+ if (yych == 'A') goto yy467;
+ if (yych == 'a') goto yy467;
goto yy187;
yy148:
YYDEBUG(148, *YYCURSOR);
@@ -2712,47 +2712,47 @@ yy148:
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= ' ') {
- if (yych == '\t') goto yy388;
+ if (yych == '\t') goto yy392;
if (yych <= 0x1F) goto yy139;
- goto yy388;
+ goto yy392;
} else {
if (yych <= '@') goto yy139;
if (yych == 'C') goto yy139;
- goto yy388;
+ goto yy392;
}
} else {
if (yych <= 'I') {
- if (yych == 'F') goto yy388;
+ if (yych == 'F') goto yy392;
if (yych <= 'H') goto yy139;
- goto yy388;
+ goto yy392;
} else {
- if (yych == 'O') goto yy388;
+ if (yych == 'O') goto yy392;
if (yych <= 'Q') goto yy139;
- goto yy388;
+ goto yy392;
}
}
} else {
if (yych <= 'f') {
if (yych <= 'b') {
- if (yych == 'U') goto yy388;
+ if (yych == 'U') goto yy392;
if (yych <= '`') goto yy139;
- goto yy388;
+ goto yy392;
} else {
- if (yych == 'd') goto yy388;
+ if (yych == 'd') goto yy392;
if (yych <= 'e') goto yy139;
- goto yy388;
+ goto yy392;
}
} else {
if (yych <= 'o') {
- if (yych == 'i') goto yy388;
+ if (yych == 'i') goto yy392;
if (yych <= 'n') goto yy139;
- goto yy388;
+ goto yy392;
} else {
if (yych <= 's') {
if (yych <= 'q') goto yy139;
- goto yy388;
+ goto yy392;
} else {
- if (yych == 'u') goto yy388;
+ if (yych == 'u') goto yy392;
goto yy139;
}
}
@@ -2762,71 +2762,72 @@ yy149:
YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
- if (yych == 'N') goto yy379;
+ if (yych == 'N') goto yy383;
if (yych <= 'R') goto yy187;
- goto yy380;
+ goto yy384;
} else {
if (yych <= 'n') {
if (yych <= 'm') goto yy187;
- goto yy379;
+ goto yy383;
} else {
- if (yych == 's') goto yy380;
+ if (yych == 's') goto yy384;
goto yy187;
}
}
yy150:
YYDEBUG(150, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '_') goto yy297;
+ if (yych == '_') goto yy301;
goto yy187;
yy151:
YYDEBUG(151, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '<') goto yy139;
- if (yych <= '=') goto yy291;
- if (yych <= '>') goto yy293;
+ if (yych <= '=') goto yy295;
+ if (yych <= '>') goto yy297;
goto yy139;
yy152:
YYDEBUG(152, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy287;
- if (yych == 'i') goto yy287;
+ if (yych == 'I') goto yy291;
+ if (yych == 'i') goto yy291;
goto yy187;
yy153:
YYDEBUG(153, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '+') goto yy285;
- if (yych == '=') goto yy283;
+ if (yych == '+') goto yy289;
+ if (yych == '=') goto yy287;
goto yy139;
yy154:
YYDEBUG(154, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy280;
+ if (yych == '=') goto yy284;
goto yy139;
yy155:
YYDEBUG(155, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= ';') {
- if (yych == '/') goto yy252;
+ if (yych == '/') goto yy256;
goto yy139;
} else {
- if (yych <= '<') goto yy250;
- if (yych <= '=') goto yy253;
- if (yych <= '>') goto yy255;
+ if (yych <= '<') goto yy254;
+ if (yych <= '=') goto yy257;
+ if (yych <= '>') goto yy259;
goto yy139;
}
yy156:
YYDEBUG(156, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '<') goto yy139;
- if (yych <= '=') goto yy246;
- if (yych <= '>') goto yy244;
+ if (yych <= '=') goto yy250;
+ if (yych <= '>') goto yy248;
goto yy139;
yy157:
YYDEBUG(157, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy242;
+ if (yych == '*') goto yy242;
+ if (yych == '=') goto yy244;
goto yy139;
yy158:
YYDEBUG(158, *YYCURSOR);
@@ -2903,18 +2904,18 @@ yy168:
++YYCURSOR;
YYDEBUG(169, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1470 "Zend/zend_language_scanner.l"
+#line 1478 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
-#line 2912 "Zend/zend_language_scanner.c"
+#line 2913 "Zend/zend_language_scanner.c"
yy170:
YYDEBUG(170, *YYCURSOR);
++YYCURSOR;
YYDEBUG(171, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1482 "Zend/zend_language_scanner.l"
+#line 1490 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2922,7 +2923,7 @@ yy170:
}
return '}';
}
-#line 2926 "Zend/zend_language_scanner.c"
+#line 2927 "Zend/zend_language_scanner.c"
yy172:
YYDEBUG(172, *YYCURSOR);
yyaccept = 2;
@@ -2950,7 +2951,7 @@ yy172:
yy173:
YYDEBUG(173, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1530 "Zend/zend_language_scanner.l"
+#line 1538 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
ZVAL_LONG(zendlval, strtol(yytext, NULL, 0));
@@ -2968,7 +2969,7 @@ yy173:
}
return T_LNUMBER;
}
-#line 2972 "Zend/zend_language_scanner.c"
+#line 2973 "Zend/zend_language_scanner.c"
yy174:
YYDEBUG(174, *YYCURSOR);
yyaccept = 2;
@@ -2996,7 +2997,7 @@ yy176:
yy177:
YYDEBUG(177, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1881 "Zend/zend_language_scanner.l"
+#line 1889 "Zend/zend_language_scanner.l"
{
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
@@ -3030,14 +3031,14 @@ yy177:
return T_COMMENT;
}
-#line 3034 "Zend/zend_language_scanner.c"
+#line 3035 "Zend/zend_language_scanner.c"
yy178:
YYDEBUG(178, *YYCURSOR);
++YYCURSOR;
yy179:
YYDEBUG(179, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1967 "Zend/zend_language_scanner.l"
+#line 1975 "Zend/zend_language_scanner.l"
{
register char *s, *t;
char *end;
@@ -3105,14 +3106,14 @@ yy179:
}
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 3109 "Zend/zend_language_scanner.c"
+#line 3110 "Zend/zend_language_scanner.c"
yy180:
YYDEBUG(180, *YYCURSOR);
++YYCURSOR;
yy181:
YYDEBUG(181, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2036 "Zend/zend_language_scanner.l"
+#line 2044 "Zend/zend_language_scanner.l"
{
int bprefix = (yytext[0] != '"') ? 1 : 0;
@@ -3153,24 +3154,24 @@ yy181:
BEGIN(ST_DOUBLE_QUOTES);
return '"';
}
-#line 3157 "Zend/zend_language_scanner.c"
+#line 3158 "Zend/zend_language_scanner.c"
yy182:
YYDEBUG(182, *YYCURSOR);
++YYCURSOR;
YYDEBUG(183, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2126 "Zend/zend_language_scanner.l"
+#line 2134 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
}
-#line 3168 "Zend/zend_language_scanner.c"
+#line 3169 "Zend/zend_language_scanner.c"
yy184:
YYDEBUG(184, *YYCURSOR);
++YYCURSOR;
YYDEBUG(185, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2388 "Zend/zend_language_scanner.l"
+#line 2396 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -3179,7 +3180,7 @@ yy184:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 3183 "Zend/zend_language_scanner.c"
+#line 3184 "Zend/zend_language_scanner.c"
yy186:
YYDEBUG(186, *YYCURSOR);
++YYCURSOR;
@@ -3206,12 +3207,12 @@ yy188:
yy190:
YYDEBUG(190, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1585 "Zend/zend_language_scanner.l"
+#line 1593 "Zend/zend_language_scanner.l"
{
ZVAL_DOUBLE(zendlval, zend_strtod(yytext, NULL));
return T_DNUMBER;
}
-#line 3215 "Zend/zend_language_scanner.c"
+#line 3216 "Zend/zend_language_scanner.c"
yy191:
YYDEBUG(191, *YYCURSOR);
yyaccept = 2;
@@ -3261,7 +3262,7 @@ yy194:
goto yy235;
}
} else {
- goto yy251;
+ goto yy255;
}
}
yy195:
@@ -3303,7 +3304,7 @@ yy200:
}
YYDEBUG(202, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1507 "Zend/zend_language_scanner.l"
+#line 1515 "Zend/zend_language_scanner.l"
{
char *bin = yytext + 2; /* Skip "0b" */
int len = yyleng - 2;
@@ -3326,7 +3327,7 @@ yy200:
return T_DNUMBER;
}
}
-#line 3330 "Zend/zend_language_scanner.c"
+#line 3331 "Zend/zend_language_scanner.c"
yy203:
YYDEBUG(203, *YYCURSOR);
++YYCURSOR;
@@ -3338,7 +3339,7 @@ yy203:
}
YYDEBUG(205, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1548 "Zend/zend_language_scanner.l"
+#line 1556 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
@@ -3361,7 +3362,7 @@ yy203:
return T_DNUMBER;
}
}
-#line 3365 "Zend/zend_language_scanner.c"
+#line 3366 "Zend/zend_language_scanner.c"
yy206:
YYDEBUG(206, *YYCURSOR);
++YYCURSOR;
@@ -3370,13 +3371,13 @@ yy206:
yy207:
YYDEBUG(207, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1948 "Zend/zend_language_scanner.l"
+#line 1956 "Zend/zend_language_scanner.l"
{
DUMMY_STRINGL(zendlval, yytext, yyleng);
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 3380 "Zend/zend_language_scanner.c"
+#line 3381 "Zend/zend_language_scanner.c"
yy208:
YYDEBUG(208, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3410,12 +3411,12 @@ yy210:
yy212:
YYDEBUG(212, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1861 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
return T_VARIABLE;
}
-#line 3419 "Zend/zend_language_scanner.c"
+#line 3420 "Zend/zend_language_scanner.c"
yy213:
YYDEBUG(213, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3429,11 +3430,11 @@ yy214:
}
YYDEBUG(215, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1461 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_XOR;
}
-#line 3437 "Zend/zend_language_scanner.c"
+#line 3438 "Zend/zend_language_scanner.c"
yy216:
YYDEBUG(216, *YYCURSOR);
++YYCURSOR;
@@ -3442,61 +3443,61 @@ yy216:
}
YYDEBUG(217, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1453 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_OR;
}
-#line 3450 "Zend/zend_language_scanner.c"
+#line 3451 "Zend/zend_language_scanner.c"
yy218:
YYDEBUG(218, *YYCURSOR);
++YYCURSOR;
YYDEBUG(219, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
+#line 1441 "Zend/zend_language_scanner.l"
{
return T_XOR_EQUAL;
}
-#line 3460 "Zend/zend_language_scanner.c"
+#line 3461 "Zend/zend_language_scanner.c"
yy220:
YYDEBUG(220, *YYCURSOR);
++YYCURSOR;
YYDEBUG(221, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1445 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_OR;
}
-#line 3470 "Zend/zend_language_scanner.c"
+#line 3471 "Zend/zend_language_scanner.c"
yy222:
YYDEBUG(222, *YYCURSOR);
++YYCURSOR;
YYDEBUG(223, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1437 "Zend/zend_language_scanner.l"
{
return T_OR_EQUAL;
}
-#line 3480 "Zend/zend_language_scanner.c"
+#line 3481 "Zend/zend_language_scanner.c"
yy224:
YYDEBUG(224, *YYCURSOR);
++YYCURSOR;
YYDEBUG(225, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1441 "Zend/zend_language_scanner.l"
+#line 1449 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_AND;
}
-#line 3490 "Zend/zend_language_scanner.c"
+#line 3491 "Zend/zend_language_scanner.c"
yy226:
YYDEBUG(226, *YYCURSOR);
++YYCURSOR;
YYDEBUG(227, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1433 "Zend/zend_language_scanner.l"
{
return T_AND_EQUAL;
}
-#line 3500 "Zend/zend_language_scanner.c"
+#line 3501 "Zend/zend_language_scanner.c"
yy228:
YYDEBUG(228, *YYCURSOR);
++YYCURSOR;
@@ -3505,7 +3506,7 @@ yy228:
yy229:
YYDEBUG(229, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1955 "Zend/zend_language_scanner.l"
+#line 1963 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
@@ -3516,17 +3517,17 @@ yy229:
return yytext[0];
}
}
-#line 3520 "Zend/zend_language_scanner.c"
+#line 3521 "Zend/zend_language_scanner.c"
yy230:
YYDEBUG(230, *YYCURSOR);
++YYCURSOR;
YYDEBUG(231, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 1421 "Zend/zend_language_scanner.l"
{
return T_MOD_EQUAL;
}
-#line 3530 "Zend/zend_language_scanner.c"
+#line 3531 "Zend/zend_language_scanner.c"
yy232:
YYDEBUG(232, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3544,7 +3545,7 @@ yy234:
yy235:
YYDEBUG(235, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1915 "Zend/zend_language_scanner.l"
+#line 1923 "Zend/zend_language_scanner.l"
{
int doc_com;
@@ -3577,7 +3578,7 @@ yy235:
return T_COMMENT;
}
-#line 3581 "Zend/zend_language_scanner.c"
+#line 3582 "Zend/zend_language_scanner.c"
yy236:
YYDEBUG(236, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3587,11 +3588,11 @@ yy237:
++YYCURSOR;
YYDEBUG(238, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1405 "Zend/zend_language_scanner.l"
+#line 1413 "Zend/zend_language_scanner.l"
{
return T_DIV_EQUAL;
}
-#line 3595 "Zend/zend_language_scanner.c"
+#line 3596 "Zend/zend_language_scanner.c"
yy239:
YYDEBUG(239, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3612,246 +3613,267 @@ yy240:
yy242:
YYDEBUG(242, *YYCURSOR);
++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy246;
YYDEBUG(243, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1401 "Zend/zend_language_scanner.l"
+#line 1405 "Zend/zend_language_scanner.l"
{
- return T_MUL_EQUAL;
+ return T_POW;
}
-#line 3622 "Zend/zend_language_scanner.c"
+#line 3624 "Zend/zend_language_scanner.c"
yy244:
YYDEBUG(244, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy248;
YYDEBUG(245, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1401 "Zend/zend_language_scanner.l"
{
- return T_SR;
+ return T_MUL_EQUAL;
}
-#line 3633 "Zend/zend_language_scanner.c"
+#line 3634 "Zend/zend_language_scanner.c"
yy246:
YYDEBUG(246, *YYCURSOR);
++YYCURSOR;
YYDEBUG(247, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1389 "Zend/zend_language_scanner.l"
+#line 1409 "Zend/zend_language_scanner.l"
{
- return T_IS_GREATER_OR_EQUAL;
+ return T_POW_EQUAL;
}
-#line 3643 "Zend/zend_language_scanner.c"
+#line 3644 "Zend/zend_language_scanner.c"
yy248:
YYDEBUG(248, *YYCURSOR);
++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy252;
YYDEBUG(249, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1421 "Zend/zend_language_scanner.l"
+#line 1469 "Zend/zend_language_scanner.l"
{
- return T_SR_EQUAL;
+ return T_SR;
}
-#line 3653 "Zend/zend_language_scanner.c"
+#line 3655 "Zend/zend_language_scanner.c"
yy250:
YYDEBUG(250, *YYCURSOR);
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= ';') goto yy251;
- if (yych <= '<') goto yy266;
- if (yych <= '=') goto yy264;
-yy251:
+ ++YYCURSOR;
YYDEBUG(251, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1389 "Zend/zend_language_scanner.l"
{
- return T_SL;
+ return T_IS_GREATER_OR_EQUAL;
}
-#line 3668 "Zend/zend_language_scanner.c"
+#line 3665 "Zend/zend_language_scanner.c"
yy252:
YYDEBUG(252, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(253, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1429 "Zend/zend_language_scanner.l"
+ {
+ return T_SR_EQUAL;
+}
+#line 3675 "Zend/zend_language_scanner.c"
+yy254:
+ YYDEBUG(254, *YYCURSOR);
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ';') goto yy255;
+ if (yych <= '<') goto yy270;
+ if (yych <= '=') goto yy268;
+yy255:
+ YYDEBUG(255, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1465 "Zend/zend_language_scanner.l"
+ {
+ return T_SL;
+}
+#line 3690 "Zend/zend_language_scanner.c"
+yy256:
+ YYDEBUG(256, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy257;
- if (yych == 's') goto yy257;
+ if (yych == 'S') goto yy261;
+ if (yych == 's') goto yy261;
goto yy194;
-yy253:
- YYDEBUG(253, *YYCURSOR);
+yy257:
+ YYDEBUG(257, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(254, *YYCURSOR);
+ YYDEBUG(258, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1385 "Zend/zend_language_scanner.l"
{
return T_IS_SMALLER_OR_EQUAL;
}
-#line 3684 "Zend/zend_language_scanner.c"
-yy255:
- YYDEBUG(255, *YYCURSOR);
+#line 3706 "Zend/zend_language_scanner.c"
+yy259:
+ YYDEBUG(259, *YYCURSOR);
++YYCURSOR;
-yy256:
- YYDEBUG(256, *YYCURSOR);
+yy260:
+ YYDEBUG(260, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1381 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_EQUAL;
}
-#line 3695 "Zend/zend_language_scanner.c"
-yy257:
- YYDEBUG(257, *YYCURSOR);
+#line 3717 "Zend/zend_language_scanner.c"
+yy261:
+ YYDEBUG(261, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy258;
+ if (yych == 'C') goto yy262;
if (yych != 'c') goto yy194;
-yy258:
- YYDEBUG(258, *YYCURSOR);
+yy262:
+ YYDEBUG(262, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy259;
+ if (yych == 'R') goto yy263;
if (yych != 'r') goto yy194;
-yy259:
- YYDEBUG(259, *YYCURSOR);
+yy263:
+ YYDEBUG(263, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy260;
+ if (yych == 'I') goto yy264;
if (yych != 'i') goto yy194;
-yy260:
- YYDEBUG(260, *YYCURSOR);
+yy264:
+ YYDEBUG(264, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy261;
+ if (yych == 'P') goto yy265;
if (yych != 'p') goto yy194;
-yy261:
- YYDEBUG(261, *YYCURSOR);
+yy265:
+ YYDEBUG(265, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy262;
+ if (yych == 'T') goto yy266;
if (yych != 't') goto yy194;
-yy262:
- YYDEBUG(262, *YYCURSOR);
+yy266:
+ YYDEBUG(266, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(263, *YYCURSOR);
+ YYDEBUG(267, *YYCURSOR);
if (yych <= '\r') {
if (yych <= 0x08) goto yy194;
- if (yych <= '\n') goto yy262;
+ if (yych <= '\n') goto yy266;
if (yych <= '\f') goto yy194;
- goto yy262;
+ goto yy266;
} else {
if (yych <= ' ') {
if (yych <= 0x1F) goto yy194;
- goto yy262;
+ goto yy266;
} else {
if (yych == '>') goto yy206;
goto yy194;
}
}
-yy264:
- YYDEBUG(264, *YYCURSOR);
+yy268:
+ YYDEBUG(268, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(265, *YYCURSOR);
+ YYDEBUG(269, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
{
return T_SL_EQUAL;
}
-#line 3750 "Zend/zend_language_scanner.c"
-yy266:
- YYDEBUG(266, *YYCURSOR);
+#line 3772 "Zend/zend_language_scanner.c"
+yy270:
+ YYDEBUG(270, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(267, *YYCURSOR);
+ YYDEBUG(271, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy266;
+ goto yy270;
}
if (yych <= 'Z') {
if (yych <= '&') {
- if (yych == '"') goto yy271;
+ if (yych == '"') goto yy275;
goto yy194;
} else {
- if (yych <= '\'') goto yy270;
+ if (yych <= '\'') goto yy274;
if (yych <= '@') goto yy194;
}
} else {
if (yych <= '`') {
if (yych != '_') goto yy194;
} else {
- if (yych <= 'z') goto yy268;
+ if (yych <= 'z') goto yy272;
if (yych <= '~') goto yy194;
}
}
-yy268:
- YYDEBUG(268, *YYCURSOR);
+yy272:
+ YYDEBUG(272, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(269, *YYCURSOR);
+ YYDEBUG(273, *YYCURSOR);
if (yych <= '@') {
if (yych <= '\f') {
- if (yych == '\n') goto yy275;
+ if (yych == '\n') goto yy279;
goto yy194;
} else {
- if (yych <= '\r') goto yy277;
+ if (yych <= '\r') goto yy281;
if (yych <= '/') goto yy194;
- if (yych <= '9') goto yy268;
+ if (yych <= '9') goto yy272;
goto yy194;
}
} else {
if (yych <= '_') {
- if (yych <= 'Z') goto yy268;
+ if (yych <= 'Z') goto yy272;
if (yych <= '^') goto yy194;
- goto yy268;
+ goto yy272;
} else {
if (yych <= '`') goto yy194;
- if (yych <= 'z') goto yy268;
+ if (yych <= 'z') goto yy272;
if (yych <= '~') goto yy194;
- goto yy268;
+ goto yy272;
}
}
-yy270:
- YYDEBUG(270, *YYCURSOR);
+yy274:
+ YYDEBUG(274, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == '\'') goto yy194;
- if (yych <= '/') goto yy279;
+ if (yych <= '/') goto yy283;
if (yych <= '9') goto yy194;
- goto yy279;
-yy271:
- YYDEBUG(271, *YYCURSOR);
+ goto yy283;
+yy275:
+ YYDEBUG(275, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == '"') goto yy194;
- if (yych <= '/') goto yy273;
+ if (yych <= '/') goto yy277;
if (yych <= '9') goto yy194;
- goto yy273;
-yy272:
- YYDEBUG(272, *YYCURSOR);
+ goto yy277;
+yy276:
+ YYDEBUG(276, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
-yy273:
- YYDEBUG(273, *YYCURSOR);
+yy277:
+ YYDEBUG(277, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '/') {
if (yych != '"') goto yy194;
} else {
- if (yych <= '9') goto yy272;
+ if (yych <= '9') goto yy276;
if (yych <= '@') goto yy194;
- goto yy272;
+ goto yy276;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy272;
+ if (yych == '_') goto yy276;
goto yy194;
} else {
- if (yych <= 'z') goto yy272;
+ if (yych <= 'z') goto yy276;
if (yych <= '~') goto yy194;
- goto yy272;
+ goto yy276;
}
}
-yy274:
- YYDEBUG(274, *YYCURSOR);
+yy278:
+ YYDEBUG(278, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy275;
- if (yych == '\r') goto yy277;
+ if (yych == '\n') goto yy279;
+ if (yych == '\r') goto yy281;
goto yy194;
-yy275:
- YYDEBUG(275, *YYCURSOR);
+yy279:
+ YYDEBUG(279, *YYCURSOR);
++YYCURSOR;
-yy276:
- YYDEBUG(276, *YYCURSOR);
+yy280:
+ YYDEBUG(280, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2078 "Zend/zend_language_scanner.l"
+#line 2086 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3898,255 +3920,255 @@ yy276:
return T_START_HEREDOC;
}
-#line 3902 "Zend/zend_language_scanner.c"
-yy277:
- YYDEBUG(277, *YYCURSOR);
+#line 3924 "Zend/zend_language_scanner.c"
+yy281:
+ YYDEBUG(281, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy275;
- goto yy276;
-yy278:
- YYDEBUG(278, *YYCURSOR);
+ if (yych == '\n') goto yy279;
+ goto yy280;
+yy282:
+ YYDEBUG(282, *YYCURSOR);
++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
-yy279:
- YYDEBUG(279, *YYCURSOR);
+yy283:
+ YYDEBUG(283, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '/') {
- if (yych == '\'') goto yy274;
+ if (yych == '\'') goto yy278;
goto yy194;
} else {
- if (yych <= '9') goto yy278;
+ if (yych <= '9') goto yy282;
if (yych <= '@') goto yy194;
- goto yy278;
+ goto yy282;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy278;
+ if (yych == '_') goto yy282;
goto yy194;
} else {
- if (yych <= 'z') goto yy278;
+ if (yych <= 'z') goto yy282;
if (yych <= '~') goto yy194;
- goto yy278;
+ goto yy282;
}
}
-yy280:
- YYDEBUG(280, *YYCURSOR);
+yy284:
+ YYDEBUG(284, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '=') goto yy256;
- YYDEBUG(281, *YYCURSOR);
+ if (yych != '=') goto yy260;
+ YYDEBUG(285, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(282, *YYCURSOR);
+ YYDEBUG(286, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1373 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_IDENTICAL;
}
-#line 3946 "Zend/zend_language_scanner.c"
-yy283:
- YYDEBUG(283, *YYCURSOR);
+#line 3968 "Zend/zend_language_scanner.c"
+yy287:
+ YYDEBUG(287, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(284, *YYCURSOR);
+ YYDEBUG(288, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1393 "Zend/zend_language_scanner.l"
{
return T_PLUS_EQUAL;
}
-#line 3956 "Zend/zend_language_scanner.c"
-yy285:
- YYDEBUG(285, *YYCURSOR);
+#line 3978 "Zend/zend_language_scanner.c"
+yy289:
+ YYDEBUG(289, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(286, *YYCURSOR);
+ YYDEBUG(290, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1361 "Zend/zend_language_scanner.l"
{
return T_INC;
}
-#line 3966 "Zend/zend_language_scanner.c"
-yy287:
- YYDEBUG(287, *YYCURSOR);
+#line 3988 "Zend/zend_language_scanner.c"
+yy291:
+ YYDEBUG(291, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy288;
+ if (yych == 'S') goto yy292;
if (yych != 's') goto yy187;
-yy288:
- YYDEBUG(288, *YYCURSOR);
+yy292:
+ YYDEBUG(292, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy289;
+ if (yych == 'T') goto yy293;
if (yych != 't') goto yy187;
-yy289:
- YYDEBUG(289, *YYCURSOR);
+yy293:
+ YYDEBUG(293, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(290, *YYCURSOR);
+ YYDEBUG(294, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1349 "Zend/zend_language_scanner.l"
{
return T_LIST;
}
-#line 3989 "Zend/zend_language_scanner.c"
-yy291:
- YYDEBUG(291, *YYCURSOR);
+#line 4011 "Zend/zend_language_scanner.c"
+yy295:
+ YYDEBUG(295, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy295;
- YYDEBUG(292, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '=') goto yy299;
+ YYDEBUG(296, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1377 "Zend/zend_language_scanner.l"
{
return T_IS_EQUAL;
}
-#line 4000 "Zend/zend_language_scanner.c"
-yy293:
- YYDEBUG(293, *YYCURSOR);
+#line 4022 "Zend/zend_language_scanner.c"
+yy297:
+ YYDEBUG(297, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(294, *YYCURSOR);
+ YYDEBUG(298, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1345 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_ARROW;
}
-#line 4010 "Zend/zend_language_scanner.c"
-yy295:
- YYDEBUG(295, *YYCURSOR);
+#line 4032 "Zend/zend_language_scanner.c"
+yy299:
+ YYDEBUG(299, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(296, *YYCURSOR);
+ YYDEBUG(300, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1369 "Zend/zend_language_scanner.l"
{
return T_IS_IDENTICAL;
}
-#line 4020 "Zend/zend_language_scanner.c"
-yy297:
- YYDEBUG(297, *YYCURSOR);
+#line 4042 "Zend/zend_language_scanner.c"
+yy301:
+ YYDEBUG(301, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'C':
- case 'c': goto yy299;
+ case 'c': goto yy303;
case 'D':
- case 'd': goto yy304;
+ case 'd': goto yy308;
case 'F':
- case 'f': goto yy301;
+ case 'f': goto yy305;
case 'H':
- case 'h': goto yy298;
+ case 'h': goto yy302;
case 'L':
- case 'l': goto yy303;
+ case 'l': goto yy307;
case 'M':
- case 'm': goto yy302;
+ case 'm': goto yy306;
case 'N':
- case 'n': goto yy305;
+ case 'n': goto yy309;
case 'T':
- case 't': goto yy300;
+ case 't': goto yy304;
default: goto yy187;
}
-yy298:
- YYDEBUG(298, *YYCURSOR);
+yy302:
+ YYDEBUG(302, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy366;
- if (yych == 'a') goto yy366;
+ if (yych == 'A') goto yy370;
+ if (yych == 'a') goto yy370;
goto yy187;
-yy299:
- YYDEBUG(299, *YYCURSOR);
+yy303:
+ YYDEBUG(303, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy359;
- if (yych == 'l') goto yy359;
+ if (yych == 'L') goto yy363;
+ if (yych == 'l') goto yy363;
goto yy187;
-yy300:
- YYDEBUG(300, *YYCURSOR);
+yy304:
+ YYDEBUG(304, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy352;
- if (yych == 'r') goto yy352;
+ if (yych == 'R') goto yy356;
+ if (yych == 'r') goto yy356;
goto yy187;
-yy301:
- YYDEBUG(301, *YYCURSOR);
+yy305:
+ YYDEBUG(305, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'I') goto yy336;
+ if (yych == 'I') goto yy340;
if (yych <= 'T') goto yy187;
- goto yy337;
+ goto yy341;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy187;
- goto yy336;
+ goto yy340;
} else {
- if (yych == 'u') goto yy337;
+ if (yych == 'u') goto yy341;
goto yy187;
}
}
-yy302:
- YYDEBUG(302, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy328;
- if (yych == 'e') goto yy328;
- goto yy187;
-yy303:
- YYDEBUG(303, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy322;
- if (yych == 'i') goto yy322;
- goto yy187;
-yy304:
- YYDEBUG(304, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy317;
- if (yych == 'i') goto yy317;
- goto yy187;
-yy305:
- YYDEBUG(305, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy306;
- if (yych != 'a') goto yy187;
yy306:
YYDEBUG(306, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy307;
- if (yych != 'm') goto yy187;
+ if (yych == 'E') goto yy332;
+ if (yych == 'e') goto yy332;
+ goto yy187;
yy307:
YYDEBUG(307, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy308;
- if (yych != 'e') goto yy187;
+ if (yych == 'I') goto yy326;
+ if (yych == 'i') goto yy326;
+ goto yy187;
yy308:
YYDEBUG(308, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy309;
- if (yych != 's') goto yy187;
+ if (yych == 'I') goto yy321;
+ if (yych == 'i') goto yy321;
+ goto yy187;
yy309:
YYDEBUG(309, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy310;
- if (yych != 'p') goto yy187;
+ if (yych == 'A') goto yy310;
+ if (yych != 'a') goto yy187;
yy310:
YYDEBUG(310, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy311;
- if (yych != 'a') goto yy187;
+ if (yych == 'M') goto yy311;
+ if (yych != 'm') goto yy187;
yy311:
YYDEBUG(311, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy312;
- if (yych != 'c') goto yy187;
+ if (yych == 'E') goto yy312;
+ if (yych != 'e') goto yy187;
yy312:
YYDEBUG(312, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy313;
- if (yych != 'e') goto yy187;
+ if (yych == 'S') goto yy313;
+ if (yych != 's') goto yy187;
yy313:
YYDEBUG(313, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy187;
+ if (yych == 'P') goto yy314;
+ if (yych != 'p') goto yy187;
+yy314:
YYDEBUG(314, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy187;
+ if (yych == 'A') goto yy315;
+ if (yych != 'a') goto yy187;
+yy315:
YYDEBUG(315, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy316;
+ if (yych != 'c') goto yy187;
+yy316:
+ YYDEBUG(316, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy317;
+ if (yych != 'e') goto yy187;
+yy317:
+ YYDEBUG(317, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(318, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych != '_') goto yy187;
+ YYDEBUG(319, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(316, *YYCURSOR);
+ YYDEBUG(320, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1700 "Zend/zend_language_scanner.l"
+#line 1708 "Zend/zend_language_scanner.l"
{
if (Z_TYPE(CG(current_namespace)) != IS_UNDEF) {
ZVAL_DUP(zendlval, &CG(current_namespace));
@@ -4155,27 +4177,27 @@ yy313:
}
return T_NS_C;
}
-#line 4159 "Zend/zend_language_scanner.c"
-yy317:
- YYDEBUG(317, *YYCURSOR);
+#line 4181 "Zend/zend_language_scanner.c"
+yy321:
+ YYDEBUG(321, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy318;
+ if (yych == 'R') goto yy322;
if (yych != 'r') goto yy187;
-yy318:
- YYDEBUG(318, *YYCURSOR);
+yy322:
+ YYDEBUG(322, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(319, *YYCURSOR);
+ YYDEBUG(323, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(320, *YYCURSOR);
+ YYDEBUG(324, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(321, *YYCURSOR);
+ YYDEBUG(325, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1675 "Zend/zend_language_scanner.l"
+#line 1683 "Zend/zend_language_scanner.l"
{
zend_string *filename = zend_get_compiled_filename(TSRMLS_C);
zend_string *dirname;
@@ -4200,72 +4222,72 @@ yy318:
ZVAL_STR(zendlval, dirname);
return T_DIR;
}
-#line 4204 "Zend/zend_language_scanner.c"
-yy322:
- YYDEBUG(322, *YYCURSOR);
+#line 4226 "Zend/zend_language_scanner.c"
+yy326:
+ YYDEBUG(326, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy323;
+ if (yych == 'N') goto yy327;
if (yych != 'n') goto yy187;
-yy323:
- YYDEBUG(323, *YYCURSOR);
+yy327:
+ YYDEBUG(327, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy324;
+ if (yych == 'E') goto yy328;
if (yych != 'e') goto yy187;
-yy324:
- YYDEBUG(324, *YYCURSOR);
+yy328:
+ YYDEBUG(328, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(325, *YYCURSOR);
+ YYDEBUG(329, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(326, *YYCURSOR);
+ YYDEBUG(330, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(327, *YYCURSOR);
+ YYDEBUG(331, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1659 "Zend/zend_language_scanner.l"
+#line 1667 "Zend/zend_language_scanner.l"
{
ZVAL_LONG(zendlval, CG(zend_lineno));
return T_LINE;
}
-#line 4234 "Zend/zend_language_scanner.c"
-yy328:
- YYDEBUG(328, *YYCURSOR);
+#line 4256 "Zend/zend_language_scanner.c"
+yy332:
+ YYDEBUG(332, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy329;
+ if (yych == 'T') goto yy333;
if (yych != 't') goto yy187;
-yy329:
- YYDEBUG(329, *YYCURSOR);
+yy333:
+ YYDEBUG(333, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy330;
+ if (yych == 'H') goto yy334;
if (yych != 'h') goto yy187;
-yy330:
- YYDEBUG(330, *YYCURSOR);
+yy334:
+ YYDEBUG(334, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy331;
+ if (yych == 'O') goto yy335;
if (yych != 'o') goto yy187;
-yy331:
- YYDEBUG(331, *YYCURSOR);
+yy335:
+ YYDEBUG(335, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy332;
+ if (yych == 'D') goto yy336;
if (yych != 'd') goto yy187;
-yy332:
- YYDEBUG(332, *YYCURSOR);
+yy336:
+ YYDEBUG(336, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(333, *YYCURSOR);
+ YYDEBUG(337, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(334, *YYCURSOR);
+ YYDEBUG(338, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(335, *YYCURSOR);
+ YYDEBUG(339, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1627 "Zend/zend_language_scanner.l"
+#line 1635 "Zend/zend_language_scanner.l"
{
if (CG(active_class_entry)) {
int len = 0;
@@ -4297,58 +4319,58 @@ yy332:
}
return T_METHOD_C;
}
-#line 4301 "Zend/zend_language_scanner.c"
-yy336:
- YYDEBUG(336, *YYCURSOR);
+#line 4323 "Zend/zend_language_scanner.c"
+yy340:
+ YYDEBUG(340, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy347;
- if (yych == 'l') goto yy347;
+ if (yych == 'L') goto yy351;
+ if (yych == 'l') goto yy351;
goto yy187;
-yy337:
- YYDEBUG(337, *YYCURSOR);
+yy341:
+ YYDEBUG(341, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy338;
+ if (yych == 'N') goto yy342;
if (yych != 'n') goto yy187;
-yy338:
- YYDEBUG(338, *YYCURSOR);
+yy342:
+ YYDEBUG(342, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy339;
+ if (yych == 'C') goto yy343;
if (yych != 'c') goto yy187;
-yy339:
- YYDEBUG(339, *YYCURSOR);
+yy343:
+ YYDEBUG(343, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy340;
+ if (yych == 'T') goto yy344;
if (yych != 't') goto yy187;
-yy340:
- YYDEBUG(340, *YYCURSOR);
+yy344:
+ YYDEBUG(344, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy341;
+ if (yych == 'I') goto yy345;
if (yych != 'i') goto yy187;
-yy341:
- YYDEBUG(341, *YYCURSOR);
+yy345:
+ YYDEBUG(345, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy342;
+ if (yych == 'O') goto yy346;
if (yych != 'o') goto yy187;
-yy342:
- YYDEBUG(342, *YYCURSOR);
+yy346:
+ YYDEBUG(346, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy343;
+ if (yych == 'N') goto yy347;
if (yych != 'n') goto yy187;
-yy343:
- YYDEBUG(343, *YYCURSOR);
+yy347:
+ YYDEBUG(347, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(344, *YYCURSOR);
+ YYDEBUG(348, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(345, *YYCURSOR);
+ YYDEBUG(349, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(346, *YYCURSOR);
+ YYDEBUG(350, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1617 "Zend/zend_language_scanner.l"
+#line 1625 "Zend/zend_language_scanner.l"
{
zend_op_array *op_array = CG(active_op_array);
if (op_array && op_array->function_name) {
@@ -4358,27 +4380,27 @@ yy343:
}
return T_FUNC_C;
}
-#line 4362 "Zend/zend_language_scanner.c"
-yy347:
- YYDEBUG(347, *YYCURSOR);
+#line 4384 "Zend/zend_language_scanner.c"
+yy351:
+ YYDEBUG(351, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy348;
+ if (yych == 'E') goto yy352;
if (yych != 'e') goto yy187;
-yy348:
- YYDEBUG(348, *YYCURSOR);
+yy352:
+ YYDEBUG(352, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(349, *YYCURSOR);
+ YYDEBUG(353, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(350, *YYCURSOR);
+ YYDEBUG(354, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(351, *YYCURSOR);
+ YYDEBUG(355, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1664 "Zend/zend_language_scanner.l"
+#line 1672 "Zend/zend_language_scanner.l"
{
zend_string *filename = zend_get_compiled_filename(TSRMLS_C);
@@ -4389,37 +4411,37 @@ yy348:
}
return T_FILE;
}
-#line 4393 "Zend/zend_language_scanner.c"
-yy352:
- YYDEBUG(352, *YYCURSOR);
+#line 4415 "Zend/zend_language_scanner.c"
+yy356:
+ YYDEBUG(356, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy353;
+ if (yych == 'A') goto yy357;
if (yych != 'a') goto yy187;
-yy353:
- YYDEBUG(353, *YYCURSOR);
+yy357:
+ YYDEBUG(357, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy354;
+ if (yych == 'I') goto yy358;
if (yych != 'i') goto yy187;
-yy354:
- YYDEBUG(354, *YYCURSOR);
+yy358:
+ YYDEBUG(358, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy355;
+ if (yych == 'T') goto yy359;
if (yych != 't') goto yy187;
-yy355:
- YYDEBUG(355, *YYCURSOR);
+yy359:
+ YYDEBUG(359, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(356, *YYCURSOR);
+ YYDEBUG(360, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(357, *YYCURSOR);
+ YYDEBUG(361, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(358, *YYCURSOR);
+ YYDEBUG(362, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1607 "Zend/zend_language_scanner.l"
+#line 1615 "Zend/zend_language_scanner.l"
{
zend_class_entry *ce = CG(active_class_entry);
if (ce && ce->name && ZEND_ACC_TRAIT == (ce->ce_flags & ZEND_ACC_TRAIT)) {
@@ -4429,37 +4451,37 @@ yy355:
}
return T_TRAIT_C;
}
-#line 4433 "Zend/zend_language_scanner.c"
-yy359:
- YYDEBUG(359, *YYCURSOR);
+#line 4455 "Zend/zend_language_scanner.c"
+yy363:
+ YYDEBUG(363, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy360;
+ if (yych == 'A') goto yy364;
if (yych != 'a') goto yy187;
-yy360:
- YYDEBUG(360, *YYCURSOR);
+yy364:
+ YYDEBUG(364, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy361;
+ if (yych == 'S') goto yy365;
if (yych != 's') goto yy187;
-yy361:
- YYDEBUG(361, *YYCURSOR);
+yy365:
+ YYDEBUG(365, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy362;
+ if (yych == 'S') goto yy366;
if (yych != 's') goto yy187;
-yy362:
- YYDEBUG(362, *YYCURSOR);
+yy366:
+ YYDEBUG(366, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(363, *YYCURSOR);
+ YYDEBUG(367, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '_') goto yy187;
- YYDEBUG(364, *YYCURSOR);
+ YYDEBUG(368, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(365, *YYCURSOR);
+ YYDEBUG(369, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1590 "Zend/zend_language_scanner.l"
+#line 1598 "Zend/zend_language_scanner.l"
{
zend_class_entry *ce = CG(active_class_entry);
if (ce && ZEND_ACC_TRAIT == (ce->ce_flags & ZEND_ACC_TRAIT)) {
@@ -4476,84 +4498,60 @@ yy362:
}
return T_CLASS_C;
}
-#line 4480 "Zend/zend_language_scanner.c"
-yy366:
- YYDEBUG(366, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy367;
- if (yych != 'l') goto yy187;
-yy367:
- YYDEBUG(367, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy368;
- if (yych != 't') goto yy187;
-yy368:
- YYDEBUG(368, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy187;
- YYDEBUG(369, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy370;
- if (yych != 'c') goto yy187;
+#line 4502 "Zend/zend_language_scanner.c"
yy370:
YYDEBUG(370, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy371;
- if (yych != 'o') goto yy187;
+ if (yych == 'L') goto yy371;
+ if (yych != 'l') goto yy187;
yy371:
YYDEBUG(371, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy372;
- if (yych != 'm') goto yy187;
+ if (yych == 'T') goto yy372;
+ if (yych != 't') goto yy187;
yy372:
YYDEBUG(372, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy373;
- if (yych != 'p') goto yy187;
-yy373:
+ if (yych != '_') goto yy187;
YYDEBUG(373, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy374;
- if (yych != 'i') goto yy187;
+ if (yych == 'C') goto yy374;
+ if (yych != 'c') goto yy187;
yy374:
YYDEBUG(374, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy375;
- if (yych != 'l') goto yy187;
+ if (yych == 'O') goto yy375;
+ if (yych != 'o') goto yy187;
yy375:
YYDEBUG(375, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy376;
- if (yych != 'e') goto yy187;
+ if (yych == 'M') goto yy376;
+ if (yych != 'm') goto yy187;
yy376:
YYDEBUG(376, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy377;
- if (yych != 'r') goto yy187;
+ if (yych == 'P') goto yy377;
+ if (yych != 'p') goto yy187;
yy377:
YYDEBUG(377, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy186;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy378;
+ if (yych != 'i') goto yy187;
+yy378:
YYDEBUG(378, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1313 "Zend/zend_language_scanner.l"
- {
- return T_HALT_COMPILER;
-}
-#line 4546 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy379;
+ if (yych != 'l') goto yy187;
yy379:
YYDEBUG(379, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy383;
- if (yych == 's') goto yy383;
- goto yy187;
+ if (yych == 'E') goto yy380;
+ if (yych != 'e') goto yy187;
yy380:
YYDEBUG(380, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy381;
- if (yych != 'e') goto yy187;
+ if (yych == 'R') goto yy381;
+ if (yych != 'r') goto yy187;
yy381:
YYDEBUG(381, *YYCURSOR);
++YYCURSOR;
@@ -4562,21 +4560,22 @@ yy381:
}
YYDEBUG(382, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1293 "Zend/zend_language_scanner.l"
+#line 1313 "Zend/zend_language_scanner.l"
{
- return T_USE;
+ return T_HALT_COMPILER;
}
-#line 4570 "Zend/zend_language_scanner.c"
+#line 4568 "Zend/zend_language_scanner.c"
yy383:
YYDEBUG(383, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy384;
- if (yych != 'e') goto yy187;
+ if (yych == 'S') goto yy387;
+ if (yych == 's') goto yy387;
+ goto yy187;
yy384:
YYDEBUG(384, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy385;
- if (yych != 't') goto yy187;
+ if (yych == 'E') goto yy385;
+ if (yych != 'e') goto yy187;
yy385:
YYDEBUG(385, *YYCURSOR);
++YYCURSOR;
@@ -4585,2639 +4584,2662 @@ yy385:
}
YYDEBUG(386, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1341 "Zend/zend_language_scanner.l"
+#line 1293 "Zend/zend_language_scanner.l"
{
- return T_UNSET;
+ return T_USE;
}
-#line 4593 "Zend/zend_language_scanner.c"
+#line 4592 "Zend/zend_language_scanner.c"
yy387:
YYDEBUG(387, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy388;
+ if (yych != 'e') goto yy187;
+yy388:
+ YYDEBUG(388, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy389;
+ if (yych != 't') goto yy187;
+yy389:
+ YYDEBUG(389, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 4) {
+ goto yy186;
+ }
+ YYDEBUG(390, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1341 "Zend/zend_language_scanner.l"
+ {
+ return T_UNSET;
+}
+#line 4615 "Zend/zend_language_scanner.c"
+yy391:
+ YYDEBUG(391, *YYCURSOR);
++YYCURSOR;
YYFILL(7);
yych = *YYCURSOR;
-yy388:
- YYDEBUG(388, *YYCURSOR);
+yy392:
+ YYDEBUG(392, *YYCURSOR);
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= ' ') {
- if (yych == '\t') goto yy387;
+ if (yych == '\t') goto yy391;
if (yych <= 0x1F) goto yy194;
- goto yy387;
+ goto yy391;
} else {
if (yych <= 'A') {
if (yych <= '@') goto yy194;
- goto yy392;
+ goto yy396;
} else {
- if (yych <= 'B') goto yy390;
+ if (yych <= 'B') goto yy394;
if (yych <= 'C') goto yy194;
- goto yy395;
+ goto yy399;
}
}
} else {
if (yych <= 'I') {
- if (yych == 'F') goto yy396;
+ if (yych == 'F') goto yy400;
if (yych <= 'H') goto yy194;
- goto yy397;
+ goto yy401;
} else {
if (yych <= 'O') {
if (yych <= 'N') goto yy194;
- goto yy391;
+ goto yy395;
} else {
if (yych <= 'Q') goto yy194;
- if (yych <= 'R') goto yy394;
- goto yy393;
+ if (yych <= 'R') goto yy398;
+ goto yy397;
}
}
}
} else {
if (yych <= 'f') {
if (yych <= 'a') {
- if (yych == 'U') goto yy389;
+ if (yych == 'U') goto yy393;
if (yych <= '`') goto yy194;
- goto yy392;
+ goto yy396;
} else {
if (yych <= 'c') {
- if (yych <= 'b') goto yy390;
+ if (yych <= 'b') goto yy394;
goto yy194;
} else {
- if (yych <= 'd') goto yy395;
+ if (yych <= 'd') goto yy399;
if (yych <= 'e') goto yy194;
- goto yy396;
+ goto yy400;
}
}
} else {
if (yych <= 'q') {
if (yych <= 'i') {
if (yych <= 'h') goto yy194;
- goto yy397;
+ goto yy401;
} else {
- if (yych == 'o') goto yy391;
+ if (yych == 'o') goto yy395;
goto yy194;
}
} else {
if (yych <= 's') {
- if (yych <= 'r') goto yy394;
- goto yy393;
+ if (yych <= 'r') goto yy398;
+ goto yy397;
} else {
if (yych != 'u') goto yy194;
}
}
}
}
-yy389:
- YYDEBUG(389, *YYCURSOR);
+yy393:
+ YYDEBUG(393, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy456;
- if (yych == 'n') goto yy456;
+ if (yych == 'N') goto yy460;
+ if (yych == 'n') goto yy460;
goto yy194;
-yy390:
- YYDEBUG(390, *YYCURSOR);
+yy394:
+ YYDEBUG(394, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy443;
+ if (yych == 'I') goto yy447;
if (yych <= 'N') goto yy194;
- goto yy444;
+ goto yy448;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy194;
- goto yy443;
+ goto yy447;
} else {
- if (yych == 'o') goto yy444;
+ if (yych == 'o') goto yy448;
goto yy194;
}
}
-yy391:
- YYDEBUG(391, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy435;
- if (yych == 'b') goto yy435;
- goto yy194;
-yy392:
- YYDEBUG(392, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy428;
- if (yych == 'r') goto yy428;
- goto yy194;
-yy393:
- YYDEBUG(393, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy420;
- if (yych == 't') goto yy420;
- goto yy194;
-yy394:
- YYDEBUG(394, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy418;
- if (yych == 'e') goto yy418;
- goto yy194;
yy395:
YYDEBUG(395, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy414;
- if (yych == 'o') goto yy414;
+ if (yych == 'B') goto yy439;
+ if (yych == 'b') goto yy439;
goto yy194;
yy396:
YYDEBUG(396, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy407;
- if (yych == 'l') goto yy407;
+ if (yych == 'R') goto yy432;
+ if (yych == 'r') goto yy432;
goto yy194;
yy397:
YYDEBUG(397, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy398;
- if (yych != 'n') goto yy194;
+ if (yych == 'T') goto yy424;
+ if (yych == 't') goto yy424;
+ goto yy194;
yy398:
YYDEBUG(398, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy399;
- if (yych != 't') goto yy194;
+ if (yych == 'E') goto yy422;
+ if (yych == 'e') goto yy422;
+ goto yy194;
yy399:
YYDEBUG(399, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy400;
- if (yych != 'e') goto yy402;
+ if (yych == 'O') goto yy418;
+ if (yych == 'o') goto yy418;
+ goto yy194;
yy400:
YYDEBUG(400, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy405;
- if (yych == 'g') goto yy405;
+ if (yych == 'L') goto yy411;
+ if (yych == 'l') goto yy411;
goto yy194;
yy401:
YYDEBUG(401, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy402;
+ if (yych != 'n') goto yy194;
+yy402:
+ YYDEBUG(402, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy403;
+ if (yych != 't') goto yy194;
+yy403:
+ YYDEBUG(403, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy404;
+ if (yych != 'e') goto yy406;
+yy404:
+ YYDEBUG(404, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'G') goto yy409;
+ if (yych == 'g') goto yy409;
+ goto yy194;
+yy405:
+ YYDEBUG(405, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy402:
- YYDEBUG(402, *YYCURSOR);
+yy406:
+ YYDEBUG(406, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy401;
+ if (yych == '\t') goto yy405;
goto yy194;
} else {
- if (yych <= ' ') goto yy401;
+ if (yych <= ' ') goto yy405;
if (yych != ')') goto yy194;
}
- YYDEBUG(403, *YYCURSOR);
+ YYDEBUG(407, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(404, *YYCURSOR);
+ YYDEBUG(408, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1241 "Zend/zend_language_scanner.l"
{
return T_INT_CAST;
}
-#line 4769 "Zend/zend_language_scanner.c"
-yy405:
- YYDEBUG(405, *YYCURSOR);
+#line 4791 "Zend/zend_language_scanner.c"
+yy409:
+ YYDEBUG(409, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy406;
+ if (yych == 'E') goto yy410;
if (yych != 'e') goto yy194;
-yy406:
- YYDEBUG(406, *YYCURSOR);
+yy410:
+ YYDEBUG(410, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy401;
- if (yych == 'r') goto yy401;
+ if (yych == 'R') goto yy405;
+ if (yych == 'r') goto yy405;
goto yy194;
-yy407:
- YYDEBUG(407, *YYCURSOR);
+yy411:
+ YYDEBUG(411, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy408;
+ if (yych == 'O') goto yy412;
if (yych != 'o') goto yy194;
-yy408:
- YYDEBUG(408, *YYCURSOR);
+yy412:
+ YYDEBUG(412, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy409;
+ if (yych == 'A') goto yy413;
if (yych != 'a') goto yy194;
-yy409:
- YYDEBUG(409, *YYCURSOR);
+yy413:
+ YYDEBUG(413, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy410;
+ if (yych == 'T') goto yy414;
if (yych != 't') goto yy194;
-yy410:
- YYDEBUG(410, *YYCURSOR);
+yy414:
+ YYDEBUG(414, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(411, *YYCURSOR);
+ YYDEBUG(415, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy410;
+ if (yych == '\t') goto yy414;
goto yy194;
} else {
- if (yych <= ' ') goto yy410;
+ if (yych <= ' ') goto yy414;
if (yych != ')') goto yy194;
}
- YYDEBUG(412, *YYCURSOR);
+ YYDEBUG(416, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(413, *YYCURSOR);
+ YYDEBUG(417, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1245 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_CAST;
}
-#line 4817 "Zend/zend_language_scanner.c"
-yy414:
- YYDEBUG(414, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy415;
- if (yych != 'u') goto yy194;
-yy415:
- YYDEBUG(415, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy416;
- if (yych != 'b') goto yy194;
-yy416:
- YYDEBUG(416, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy417;
- if (yych != 'l') goto yy194;
-yy417:
- YYDEBUG(417, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy410;
- if (yych == 'e') goto yy410;
- goto yy194;
+#line 4839 "Zend/zend_language_scanner.c"
yy418:
YYDEBUG(418, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy419;
- if (yych != 'a') goto yy194;
+ if (yych == 'U') goto yy419;
+ if (yych != 'u') goto yy194;
yy419:
YYDEBUG(419, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy410;
- if (yych == 'l') goto yy410;
- goto yy194;
+ if (yych == 'B') goto yy420;
+ if (yych != 'b') goto yy194;
yy420:
YYDEBUG(420, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy421;
- if (yych != 'r') goto yy194;
+ if (yych == 'L') goto yy421;
+ if (yych != 'l') goto yy194;
yy421:
YYDEBUG(421, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy422;
- if (yych != 'i') goto yy194;
+ if (yych == 'E') goto yy414;
+ if (yych == 'e') goto yy414;
+ goto yy194;
yy422:
YYDEBUG(422, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy423;
- if (yych != 'n') goto yy194;
+ if (yych == 'A') goto yy423;
+ if (yych != 'a') goto yy194;
yy423:
YYDEBUG(423, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy424;
- if (yych != 'g') goto yy194;
+ if (yych == 'L') goto yy414;
+ if (yych == 'l') goto yy414;
+ goto yy194;
yy424:
YYDEBUG(424, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy425;
+ if (yych != 'r') goto yy194;
+yy425:
+ YYDEBUG(425, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy426;
+ if (yych != 'i') goto yy194;
+yy426:
+ YYDEBUG(426, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy427;
+ if (yych != 'n') goto yy194;
+yy427:
+ YYDEBUG(427, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'G') goto yy428;
+ if (yych != 'g') goto yy194;
+yy428:
+ YYDEBUG(428, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(425, *YYCURSOR);
+ YYDEBUG(429, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy424;
+ if (yych == '\t') goto yy428;
goto yy194;
} else {
- if (yych <= ' ') goto yy424;
+ if (yych <= ' ') goto yy428;
if (yych != ')') goto yy194;
}
- YYDEBUG(426, *YYCURSOR);
+ YYDEBUG(430, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(427, *YYCURSOR);
+ YYDEBUG(431, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1249 "Zend/zend_language_scanner.l"
{
return T_STRING_CAST;
}
-#line 4891 "Zend/zend_language_scanner.c"
-yy428:
- YYDEBUG(428, *YYCURSOR);
+#line 4913 "Zend/zend_language_scanner.c"
+yy432:
+ YYDEBUG(432, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy429;
+ if (yych == 'R') goto yy433;
if (yych != 'r') goto yy194;
-yy429:
- YYDEBUG(429, *YYCURSOR);
+yy433:
+ YYDEBUG(433, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy430;
+ if (yych == 'A') goto yy434;
if (yych != 'a') goto yy194;
-yy430:
- YYDEBUG(430, *YYCURSOR);
+yy434:
+ YYDEBUG(434, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy431;
+ if (yych == 'Y') goto yy435;
if (yych != 'y') goto yy194;
-yy431:
- YYDEBUG(431, *YYCURSOR);
+yy435:
+ YYDEBUG(435, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(432, *YYCURSOR);
+ YYDEBUG(436, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy431;
+ if (yych == '\t') goto yy435;
goto yy194;
} else {
- if (yych <= ' ') goto yy431;
+ if (yych <= ' ') goto yy435;
if (yych != ')') goto yy194;
}
- YYDEBUG(433, *YYCURSOR);
+ YYDEBUG(437, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(434, *YYCURSOR);
+ YYDEBUG(438, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1253 "Zend/zend_language_scanner.l"
{
return T_ARRAY_CAST;
}
-#line 4928 "Zend/zend_language_scanner.c"
-yy435:
- YYDEBUG(435, *YYCURSOR);
+#line 4950 "Zend/zend_language_scanner.c"
+yy439:
+ YYDEBUG(439, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'J') goto yy436;
+ if (yych == 'J') goto yy440;
if (yych != 'j') goto yy194;
-yy436:
- YYDEBUG(436, *YYCURSOR);
+yy440:
+ YYDEBUG(440, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy437;
+ if (yych == 'E') goto yy441;
if (yych != 'e') goto yy194;
-yy437:
- YYDEBUG(437, *YYCURSOR);
+yy441:
+ YYDEBUG(441, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy438;
+ if (yych == 'C') goto yy442;
if (yych != 'c') goto yy194;
-yy438:
- YYDEBUG(438, *YYCURSOR);
+yy442:
+ YYDEBUG(442, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy439;
+ if (yych == 'T') goto yy443;
if (yych != 't') goto yy194;
-yy439:
- YYDEBUG(439, *YYCURSOR);
+yy443:
+ YYDEBUG(443, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(440, *YYCURSOR);
+ YYDEBUG(444, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy439;
+ if (yych == '\t') goto yy443;
goto yy194;
} else {
- if (yych <= ' ') goto yy439;
+ if (yych <= ' ') goto yy443;
if (yych != ')') goto yy194;
}
- YYDEBUG(441, *YYCURSOR);
+ YYDEBUG(445, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(442, *YYCURSOR);
+ YYDEBUG(446, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1257 "Zend/zend_language_scanner.l"
{
return T_OBJECT_CAST;
}
-#line 4970 "Zend/zend_language_scanner.c"
-yy443:
- YYDEBUG(443, *YYCURSOR);
+#line 4992 "Zend/zend_language_scanner.c"
+yy447:
+ YYDEBUG(447, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy453;
- if (yych == 'n') goto yy453;
+ if (yych == 'N') goto yy457;
+ if (yych == 'n') goto yy457;
goto yy194;
-yy444:
- YYDEBUG(444, *YYCURSOR);
+yy448:
+ YYDEBUG(448, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy445;
+ if (yych == 'O') goto yy449;
if (yych != 'o') goto yy194;
-yy445:
- YYDEBUG(445, *YYCURSOR);
+yy449:
+ YYDEBUG(449, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy446;
+ if (yych == 'L') goto yy450;
if (yych != 'l') goto yy194;
-yy446:
- YYDEBUG(446, *YYCURSOR);
+yy450:
+ YYDEBUG(450, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy451;
- if (yych == 'e') goto yy451;
- goto yy448;
-yy447:
- YYDEBUG(447, *YYCURSOR);
+ if (yych == 'E') goto yy455;
+ if (yych == 'e') goto yy455;
+ goto yy452;
+yy451:
+ YYDEBUG(451, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy448:
- YYDEBUG(448, *YYCURSOR);
+yy452:
+ YYDEBUG(452, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy447;
+ if (yych == '\t') goto yy451;
goto yy194;
} else {
- if (yych <= ' ') goto yy447;
+ if (yych <= ' ') goto yy451;
if (yych != ')') goto yy194;
}
- YYDEBUG(449, *YYCURSOR);
+ YYDEBUG(453, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(450, *YYCURSOR);
+ YYDEBUG(454, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1261 "Zend/zend_language_scanner.l"
{
return T_BOOL_CAST;
}
-#line 5015 "Zend/zend_language_scanner.c"
-yy451:
- YYDEBUG(451, *YYCURSOR);
+#line 5037 "Zend/zend_language_scanner.c"
+yy455:
+ YYDEBUG(455, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy452;
+ if (yych == 'A') goto yy456;
if (yych != 'a') goto yy194;
-yy452:
- YYDEBUG(452, *YYCURSOR);
+yy456:
+ YYDEBUG(456, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy447;
- if (yych == 'n') goto yy447;
+ if (yych == 'N') goto yy451;
+ if (yych == 'n') goto yy451;
goto yy194;
-yy453:
- YYDEBUG(453, *YYCURSOR);
+yy457:
+ YYDEBUG(457, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy454;
+ if (yych == 'A') goto yy458;
if (yych != 'a') goto yy194;
-yy454:
- YYDEBUG(454, *YYCURSOR);
+yy458:
+ YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy455;
+ if (yych == 'R') goto yy459;
if (yych != 'r') goto yy194;
-yy455:
- YYDEBUG(455, *YYCURSOR);
+yy459:
+ YYDEBUG(459, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy424;
- if (yych == 'y') goto yy424;
+ if (yych == 'Y') goto yy428;
+ if (yych == 'y') goto yy428;
goto yy194;
-yy456:
- YYDEBUG(456, *YYCURSOR);
+yy460:
+ YYDEBUG(460, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy457;
+ if (yych == 'S') goto yy461;
if (yych != 's') goto yy194;
-yy457:
- YYDEBUG(457, *YYCURSOR);
+yy461:
+ YYDEBUG(461, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy458;
+ if (yych == 'E') goto yy462;
if (yych != 'e') goto yy194;
-yy458:
- YYDEBUG(458, *YYCURSOR);
+yy462:
+ YYDEBUG(462, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy459;
+ if (yych == 'T') goto yy463;
if (yych != 't') goto yy194;
-yy459:
- YYDEBUG(459, *YYCURSOR);
+yy463:
+ YYDEBUG(463, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(460, *YYCURSOR);
+ YYDEBUG(464, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy459;
+ if (yych == '\t') goto yy463;
goto yy194;
} else {
- if (yych <= ' ') goto yy459;
+ if (yych <= ' ') goto yy463;
if (yych != ')') goto yy194;
}
- YYDEBUG(461, *YYCURSOR);
+ YYDEBUG(465, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(462, *YYCURSOR);
+ YYDEBUG(466, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1265 "Zend/zend_language_scanner.l"
{
return T_UNSET_CAST;
}
-#line 5079 "Zend/zend_language_scanner.c"
-yy463:
- YYDEBUG(463, *YYCURSOR);
+#line 5101 "Zend/zend_language_scanner.c"
+yy467:
+ YYDEBUG(467, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy464;
+ if (yych == 'R') goto yy468;
if (yych != 'r') goto yy187;
-yy464:
- YYDEBUG(464, *YYCURSOR);
+yy468:
+ YYDEBUG(468, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(465, *YYCURSOR);
+ YYDEBUG(469, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1237 "Zend/zend_language_scanner.l"
{
return T_VAR;
}
-#line 5097 "Zend/zend_language_scanner.c"
-yy466:
- YYDEBUG(466, *YYCURSOR);
+#line 5119 "Zend/zend_language_scanner.c"
+yy470:
+ YYDEBUG(470, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy470;
- if (yych == 'm') goto yy470;
+ if (yych == 'M') goto yy474;
+ if (yych == 'm') goto yy474;
goto yy187;
-yy467:
- YYDEBUG(467, *YYCURSOR);
+yy471:
+ YYDEBUG(471, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy468;
+ if (yych == 'W') goto yy472;
if (yych != 'w') goto yy187;
-yy468:
- YYDEBUG(468, *YYCURSOR);
+yy472:
+ YYDEBUG(472, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(469, *YYCURSOR);
+ YYDEBUG(473, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1229 "Zend/zend_language_scanner.l"
{
return T_NEW;
}
-#line 5121 "Zend/zend_language_scanner.c"
-yy470:
- YYDEBUG(470, *YYCURSOR);
+#line 5143 "Zend/zend_language_scanner.c"
+yy474:
+ YYDEBUG(474, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy471;
+ if (yych == 'E') goto yy475;
if (yych != 'e') goto yy187;
-yy471:
- YYDEBUG(471, *YYCURSOR);
+yy475:
+ YYDEBUG(475, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy472;
+ if (yych == 'S') goto yy476;
if (yych != 's') goto yy187;
-yy472:
- YYDEBUG(472, *YYCURSOR);
+yy476:
+ YYDEBUG(476, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy473;
+ if (yych == 'P') goto yy477;
if (yych != 'p') goto yy187;
-yy473:
- YYDEBUG(473, *YYCURSOR);
+yy477:
+ YYDEBUG(477, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy474;
+ if (yych == 'A') goto yy478;
if (yych != 'a') goto yy187;
-yy474:
- YYDEBUG(474, *YYCURSOR);
+yy478:
+ YYDEBUG(478, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy475;
+ if (yych == 'C') goto yy479;
if (yych != 'c') goto yy187;
-yy475:
- YYDEBUG(475, *YYCURSOR);
+yy479:
+ YYDEBUG(479, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy476;
+ if (yych == 'E') goto yy480;
if (yych != 'e') goto yy187;
-yy476:
- YYDEBUG(476, *YYCURSOR);
+yy480:
+ YYDEBUG(480, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(477, *YYCURSOR);
+ YYDEBUG(481, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1289 "Zend/zend_language_scanner.l"
{
return T_NAMESPACE;
}
-#line 5164 "Zend/zend_language_scanner.c"
-yy478:
- YYDEBUG(478, *YYCURSOR);
+#line 5186 "Zend/zend_language_scanner.c"
+yy482:
+ YYDEBUG(482, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(479, *YYCURSOR);
+ YYDEBUG(483, *YYCURSOR);
if (yych <= 'D') {
if (yych <= '/') goto yy190;
- if (yych <= '9') goto yy478;
+ if (yych <= '9') goto yy482;
goto yy190;
} else {
if (yych <= 'E') goto yy193;
if (yych == 'e') goto yy193;
goto yy190;
}
-yy480:
- YYDEBUG(480, *YYCURSOR);
+yy484:
+ YYDEBUG(484, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(481, *YYCURSOR);
+ YYDEBUG(485, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 1417 "Zend/zend_language_scanner.l"
{
return T_CONCAT_EQUAL;
}
-#line 5190 "Zend/zend_language_scanner.c"
-yy482:
- YYDEBUG(482, *YYCURSOR);
+#line 5212 "Zend/zend_language_scanner.c"
+yy486:
+ YYDEBUG(486, *YYCURSOR);
yych = *++YYCURSOR;
if (yych != '.') goto yy194;
- YYDEBUG(483, *YYCURSOR);
+ YYDEBUG(487, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(484, *YYCURSOR);
+ YYDEBUG(488, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1225 "Zend/zend_language_scanner.l"
{
return T_ELLIPSIS;
}
-#line 5203 "Zend/zend_language_scanner.c"
-yy485:
- YYDEBUG(485, *YYCURSOR);
+#line 5225 "Zend/zend_language_scanner.c"
+yy489:
+ YYDEBUG(489, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(486, *YYCURSOR);
+ YYDEBUG(490, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1217 "Zend/zend_language_scanner.l"
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 5213 "Zend/zend_language_scanner.c"
-yy487:
- YYDEBUG(487, *YYCURSOR);
+#line 5235 "Zend/zend_language_scanner.c"
+yy491:
+ YYDEBUG(491, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy488:
- YYDEBUG(488, *YYCURSOR);
+yy492:
+ YYDEBUG(492, *YYCURSOR);
if (yych <= '\f') {
if (yych <= 0x08) goto yy141;
- if (yych <= '\n') goto yy487;
+ if (yych <= '\n') goto yy491;
goto yy141;
} else {
- if (yych <= '\r') goto yy487;
- if (yych == ' ') goto yy487;
+ if (yych <= '\r') goto yy491;
+ if (yych == ' ') goto yy491;
goto yy141;
}
-yy489:
- YYDEBUG(489, *YYCURSOR);
+yy493:
+ YYDEBUG(493, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(490, *YYCURSOR);
+ YYDEBUG(494, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1397 "Zend/zend_language_scanner.l"
{
return T_MINUS_EQUAL;
}
-#line 5239 "Zend/zend_language_scanner.c"
-yy491:
- YYDEBUG(491, *YYCURSOR);
+#line 5261 "Zend/zend_language_scanner.c"
+yy495:
+ YYDEBUG(495, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(492, *YYCURSOR);
+ YYDEBUG(496, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1365 "Zend/zend_language_scanner.l"
{
return T_DEC;
}
-#line 5249 "Zend/zend_language_scanner.c"
-yy493:
- YYDEBUG(493, *YYCURSOR);
+#line 5271 "Zend/zend_language_scanner.c"
+yy497:
+ YYDEBUG(497, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(494, *YYCURSOR);
+ YYDEBUG(498, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1190 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
-#line 5260 "Zend/zend_language_scanner.c"
-yy495:
- YYDEBUG(495, *YYCURSOR);
+#line 5282 "Zend/zend_language_scanner.c"
+yy499:
+ YYDEBUG(499, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy502;
+ if (yych == 'I') goto yy506;
if (yych <= 'N') goto yy187;
- goto yy503;
+ goto yy507;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy187;
- goto yy502;
+ goto yy506;
} else {
- if (yych == 'o') goto yy503;
+ if (yych == 'o') goto yy507;
goto yy187;
}
}
-yy496:
- YYDEBUG(496, *YYCURSOR);
+yy500:
+ YYDEBUG(500, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy497;
+ if (yych == 'B') goto yy501;
if (yych != 'b') goto yy187;
-yy497:
- YYDEBUG(497, *YYCURSOR);
+yy501:
+ YYDEBUG(501, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy498;
+ if (yych == 'L') goto yy502;
if (yych != 'l') goto yy187;
-yy498:
- YYDEBUG(498, *YYCURSOR);
+yy502:
+ YYDEBUG(502, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy499;
+ if (yych == 'I') goto yy503;
if (yych != 'i') goto yy187;
-yy499:
- YYDEBUG(499, *YYCURSOR);
+yy503:
+ YYDEBUG(503, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy500;
+ if (yych == 'C') goto yy504;
if (yych != 'c') goto yy187;
-yy500:
- YYDEBUG(500, *YYCURSOR);
+yy504:
+ YYDEBUG(504, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(501, *YYCURSOR);
+ YYDEBUG(505, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1337 "Zend/zend_language_scanner.l"
{
return T_PUBLIC;
}
-#line 5309 "Zend/zend_language_scanner.c"
-yy502:
- YYDEBUG(502, *YYCURSOR);
+#line 5331 "Zend/zend_language_scanner.c"
+yy506:
+ YYDEBUG(506, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'V') {
- if (yych == 'N') goto yy511;
+ if (yych == 'N') goto yy515;
if (yych <= 'U') goto yy187;
- goto yy512;
+ goto yy516;
} else {
if (yych <= 'n') {
if (yych <= 'm') goto yy187;
- goto yy511;
+ goto yy515;
} else {
- if (yych == 'v') goto yy512;
+ if (yych == 'v') goto yy516;
goto yy187;
}
}
-yy503:
- YYDEBUG(503, *YYCURSOR);
+yy507:
+ YYDEBUG(507, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy504;
+ if (yych == 'T') goto yy508;
if (yych != 't') goto yy187;
-yy504:
- YYDEBUG(504, *YYCURSOR);
+yy508:
+ YYDEBUG(508, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy505;
+ if (yych == 'E') goto yy509;
if (yych != 'e') goto yy187;
-yy505:
- YYDEBUG(505, *YYCURSOR);
+yy509:
+ YYDEBUG(509, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy506;
+ if (yych == 'C') goto yy510;
if (yych != 'c') goto yy187;
-yy506:
- YYDEBUG(506, *YYCURSOR);
+yy510:
+ YYDEBUG(510, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy507;
+ if (yych == 'T') goto yy511;
if (yych != 't') goto yy187;
-yy507:
- YYDEBUG(507, *YYCURSOR);
+yy511:
+ YYDEBUG(511, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy508;
+ if (yych == 'E') goto yy512;
if (yych != 'e') goto yy187;
-yy508:
- YYDEBUG(508, *YYCURSOR);
+yy512:
+ YYDEBUG(512, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy509;
+ if (yych == 'D') goto yy513;
if (yych != 'd') goto yy187;
-yy509:
- YYDEBUG(509, *YYCURSOR);
+yy513:
+ YYDEBUG(513, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(510, *YYCURSOR);
+ YYDEBUG(514, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1333 "Zend/zend_language_scanner.l"
{
return T_PROTECTED;
}
-#line 5368 "Zend/zend_language_scanner.c"
-yy511:
- YYDEBUG(511, *YYCURSOR);
+#line 5390 "Zend/zend_language_scanner.c"
+yy515:
+ YYDEBUG(515, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy517;
- if (yych == 't') goto yy517;
+ if (yych == 'T') goto yy521;
+ if (yych == 't') goto yy521;
goto yy187;
-yy512:
- YYDEBUG(512, *YYCURSOR);
+yy516:
+ YYDEBUG(516, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy513;
+ if (yych == 'A') goto yy517;
if (yych != 'a') goto yy187;
-yy513:
- YYDEBUG(513, *YYCURSOR);
+yy517:
+ YYDEBUG(517, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy514;
+ if (yych == 'T') goto yy518;
if (yych != 't') goto yy187;
-yy514:
- YYDEBUG(514, *YYCURSOR);
+yy518:
+ YYDEBUG(518, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy515;
+ if (yych == 'E') goto yy519;
if (yych != 'e') goto yy187;
-yy515:
- YYDEBUG(515, *YYCURSOR);
+yy519:
+ YYDEBUG(519, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(516, *YYCURSOR);
+ YYDEBUG(520, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1329 "Zend/zend_language_scanner.l"
{
return T_PRIVATE;
}
-#line 5402 "Zend/zend_language_scanner.c"
-yy517:
- YYDEBUG(517, *YYCURSOR);
+#line 5424 "Zend/zend_language_scanner.c"
+yy521:
+ YYDEBUG(521, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(518, *YYCURSOR);
+ YYDEBUG(522, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1166 "Zend/zend_language_scanner.l"
{
return T_PRINT;
}
-#line 5415 "Zend/zend_language_scanner.c"
-yy519:
- YYDEBUG(519, *YYCURSOR);
+#line 5437 "Zend/zend_language_scanner.c"
+yy523:
+ YYDEBUG(523, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy524;
- if (yych == 'o') goto yy524;
+ if (yych == 'O') goto yy528;
+ if (yych == 'o') goto yy528;
goto yy187;
-yy520:
- YYDEBUG(520, *YYCURSOR);
+yy524:
+ YYDEBUG(524, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy521;
+ if (yych == 'T') goto yy525;
if (yych != 't') goto yy187;
-yy521:
- YYDEBUG(521, *YYCURSOR);
+yy525:
+ YYDEBUG(525, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy522;
+ if (yych == 'O') goto yy526;
if (yych != 'o') goto yy187;
-yy522:
- YYDEBUG(522, *YYCURSOR);
+yy526:
+ YYDEBUG(526, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(523, *YYCURSOR);
+ YYDEBUG(527, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1158 "Zend/zend_language_scanner.l"
{
return T_GOTO;
}
-#line 5444 "Zend/zend_language_scanner.c"
-yy524:
- YYDEBUG(524, *YYCURSOR);
+#line 5466 "Zend/zend_language_scanner.c"
+yy528:
+ YYDEBUG(528, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy525;
+ if (yych == 'B') goto yy529;
if (yych != 'b') goto yy187;
-yy525:
- YYDEBUG(525, *YYCURSOR);
+yy529:
+ YYDEBUG(529, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy526;
+ if (yych == 'A') goto yy530;
if (yych != 'a') goto yy187;
-yy526:
- YYDEBUG(526, *YYCURSOR);
+yy530:
+ YYDEBUG(530, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy527;
+ if (yych == 'L') goto yy531;
if (yych != 'l') goto yy187;
-yy527:
- YYDEBUG(527, *YYCURSOR);
+yy531:
+ YYDEBUG(531, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(528, *YYCURSOR);
+ YYDEBUG(532, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1301 "Zend/zend_language_scanner.l"
{
return T_GLOBAL;
}
-#line 5472 "Zend/zend_language_scanner.c"
-yy529:
- YYDEBUG(529, *YYCURSOR);
+#line 5494 "Zend/zend_language_scanner.c"
+yy533:
+ YYDEBUG(533, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '<') goto yy537;
+ if (yych == '<') goto yy541;
goto yy194;
-yy530:
- YYDEBUG(530, *YYCURSOR);
+yy534:
+ YYDEBUG(534, *YYCURSOR);
yych = *++YYCURSOR;
goto yy181;
-yy531:
- YYDEBUG(531, *YYCURSOR);
+yy535:
+ YYDEBUG(535, *YYCURSOR);
yych = *++YYCURSOR;
goto yy179;
-yy532:
- YYDEBUG(532, *YYCURSOR);
+yy536:
+ YYDEBUG(536, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy533;
+ if (yych == 'E') goto yy537;
if (yych != 'e') goto yy187;
-yy533:
- YYDEBUG(533, *YYCURSOR);
+yy537:
+ YYDEBUG(537, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy534;
+ if (yych == 'A') goto yy538;
if (yych != 'a') goto yy187;
-yy534:
- YYDEBUG(534, *YYCURSOR);
+yy538:
+ YYDEBUG(538, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'K') goto yy535;
+ if (yych == 'K') goto yy539;
if (yych != 'k') goto yy187;
-yy535:
- YYDEBUG(535, *YYCURSOR);
+yy539:
+ YYDEBUG(539, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(536, *YYCURSOR);
+ YYDEBUG(540, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1150 "Zend/zend_language_scanner.l"
{
return T_BREAK;
}
-#line 5513 "Zend/zend_language_scanner.c"
-yy537:
- YYDEBUG(537, *YYCURSOR);
+#line 5535 "Zend/zend_language_scanner.c"
+yy541:
+ YYDEBUG(541, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '<') goto yy266;
+ if (yych == '<') goto yy270;
goto yy194;
-yy538:
- YYDEBUG(538, *YYCURSOR);
+yy542:
+ YYDEBUG(542, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy545;
- if (yych == 'a') goto yy545;
+ if (yych == 'A') goto yy549;
+ if (yych == 'a') goto yy549;
goto yy187;
-yy539:
- YYDEBUG(539, *YYCURSOR);
+yy543:
+ YYDEBUG(543, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy540;
+ if (yych == 'I') goto yy544;
if (yych != 'i') goto yy187;
-yy540:
- YYDEBUG(540, *YYCURSOR);
+yy544:
+ YYDEBUG(544, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy541;
+ if (yych == 'T') goto yy545;
if (yych != 't') goto yy187;
-yy541:
- YYDEBUG(541, *YYCURSOR);
+yy545:
+ YYDEBUG(545, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy542;
+ if (yych == 'C') goto yy546;
if (yych != 'c') goto yy187;
-yy542:
- YYDEBUG(542, *YYCURSOR);
+yy546:
+ YYDEBUG(546, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy543;
+ if (yych == 'H') goto yy547;
if (yych != 'h') goto yy187;
-yy543:
- YYDEBUG(543, *YYCURSOR);
+yy547:
+ YYDEBUG(547, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(544, *YYCURSOR);
+ YYDEBUG(548, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1134 "Zend/zend_language_scanner.l"
{
return T_SWITCH;
}
-#line 5557 "Zend/zend_language_scanner.c"
-yy545:
- YYDEBUG(545, *YYCURSOR);
+#line 5579 "Zend/zend_language_scanner.c"
+yy549:
+ YYDEBUG(549, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy546;
+ if (yych == 'T') goto yy550;
if (yych != 't') goto yy187;
-yy546:
- YYDEBUG(546, *YYCURSOR);
+yy550:
+ YYDEBUG(550, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy547;
+ if (yych == 'I') goto yy551;
if (yych != 'i') goto yy187;
-yy547:
- YYDEBUG(547, *YYCURSOR);
+yy551:
+ YYDEBUG(551, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy548;
+ if (yych == 'C') goto yy552;
if (yych != 'c') goto yy187;
-yy548:
- YYDEBUG(548, *YYCURSOR);
+yy552:
+ YYDEBUG(552, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(549, *YYCURSOR);
+ YYDEBUG(553, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1317 "Zend/zend_language_scanner.l"
{
return T_STATIC;
}
-#line 5585 "Zend/zend_language_scanner.c"
-yy550:
- YYDEBUG(550, *YYCURSOR);
+#line 5607 "Zend/zend_language_scanner.c"
+yy554:
+ YYDEBUG(554, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy561;
- if (yych == 's') goto yy561;
+ if (yych == 'S') goto yy565;
+ if (yych == 's') goto yy565;
goto yy187;
-yy551:
- YYDEBUG(551, *YYCURSOR);
+yy555:
+ YYDEBUG(555, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy559;
- if (yych == 'd') goto yy559;
+ if (yych == 'D') goto yy563;
+ if (yych == 'd') goto yy563;
goto yy187;
-yy552:
- YYDEBUG(552, *YYCURSOR);
+yy556:
+ YYDEBUG(556, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy555;
- if (yych == 'r') goto yy555;
+ if (yych == 'R') goto yy559;
+ if (yych == 'r') goto yy559;
goto yy187;
-yy553:
- YYDEBUG(553, *YYCURSOR);
+yy557:
+ YYDEBUG(557, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(554, *YYCURSOR);
+ YYDEBUG(558, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1130 "Zend/zend_language_scanner.l"
{
return T_AS;
}
-#line 5616 "Zend/zend_language_scanner.c"
-yy555:
- YYDEBUG(555, *YYCURSOR);
+#line 5638 "Zend/zend_language_scanner.c"
+yy559:
+ YYDEBUG(559, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy556;
+ if (yych == 'A') goto yy560;
if (yych != 'a') goto yy187;
-yy556:
- YYDEBUG(556, *YYCURSOR);
+yy560:
+ YYDEBUG(560, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy557;
+ if (yych == 'Y') goto yy561;
if (yych != 'y') goto yy187;
-yy557:
- YYDEBUG(557, *YYCURSOR);
+yy561:
+ YYDEBUG(561, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(558, *YYCURSOR);
+ YYDEBUG(562, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1353 "Zend/zend_language_scanner.l"
{
return T_ARRAY;
}
-#line 5639 "Zend/zend_language_scanner.c"
-yy559:
- YYDEBUG(559, *YYCURSOR);
+#line 5661 "Zend/zend_language_scanner.c"
+yy563:
+ YYDEBUG(563, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(560, *YYCURSOR);
+ YYDEBUG(564, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_AND;
}
-#line 5652 "Zend/zend_language_scanner.c"
-yy561:
- YYDEBUG(561, *YYCURSOR);
+#line 5674 "Zend/zend_language_scanner.c"
+yy565:
+ YYDEBUG(565, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy562;
+ if (yych == 'T') goto yy566;
if (yych != 't') goto yy187;
-yy562:
- YYDEBUG(562, *YYCURSOR);
+yy566:
+ YYDEBUG(566, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy563;
+ if (yych == 'R') goto yy567;
if (yych != 'r') goto yy187;
-yy563:
- YYDEBUG(563, *YYCURSOR);
+yy567:
+ YYDEBUG(567, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy564;
+ if (yych == 'A') goto yy568;
if (yych != 'a') goto yy187;
-yy564:
- YYDEBUG(564, *YYCURSOR);
+yy568:
+ YYDEBUG(568, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy565;
+ if (yych == 'C') goto yy569;
if (yych != 'c') goto yy187;
-yy565:
- YYDEBUG(565, *YYCURSOR);
+yy569:
+ YYDEBUG(569, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy566;
+ if (yych == 'T') goto yy570;
if (yych != 't') goto yy187;
-yy566:
- YYDEBUG(566, *YYCURSOR);
+yy570:
+ YYDEBUG(570, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(567, *YYCURSOR);
+ YYDEBUG(571, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1321 "Zend/zend_language_scanner.l"
{
return T_ABSTRACT;
}
-#line 5690 "Zend/zend_language_scanner.c"
-yy568:
- YYDEBUG(568, *YYCURSOR);
+#line 5712 "Zend/zend_language_scanner.c"
+yy572:
+ YYDEBUG(572, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy569;
+ if (yych == 'I') goto yy573;
if (yych != 'i') goto yy187;
-yy569:
- YYDEBUG(569, *YYCURSOR);
+yy573:
+ YYDEBUG(573, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy570;
+ if (yych == 'L') goto yy574;
if (yych != 'l') goto yy187;
-yy570:
- YYDEBUG(570, *YYCURSOR);
+yy574:
+ YYDEBUG(574, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy571;
+ if (yych == 'E') goto yy575;
if (yych != 'e') goto yy187;
-yy571:
- YYDEBUG(571, *YYCURSOR);
+yy575:
+ YYDEBUG(575, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(572, *YYCURSOR);
+ YYDEBUG(576, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1090 "Zend/zend_language_scanner.l"
{
return T_WHILE;
}
-#line 5718 "Zend/zend_language_scanner.c"
-yy573:
- YYDEBUG(573, *YYCURSOR);
+#line 5740 "Zend/zend_language_scanner.c"
+yy577:
+ YYDEBUG(577, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(574, *YYCURSOR);
+ YYDEBUG(578, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1074 "Zend/zend_language_scanner.l"
{
return T_IF;
}
-#line 5731 "Zend/zend_language_scanner.c"
-yy575:
- YYDEBUG(575, *YYCURSOR);
+#line 5753 "Zend/zend_language_scanner.c"
+yy579:
+ YYDEBUG(579, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy617;
- if (yych == 'p') goto yy617;
+ if (yych == 'P') goto yy621;
+ if (yych == 'p') goto yy621;
goto yy187;
-yy576:
- YYDEBUG(576, *YYCURSOR);
+yy580:
+ YYDEBUG(580, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'C') {
if (yych <= 'B') goto yy187;
- goto yy584;
+ goto yy588;
} else {
if (yych <= 'R') goto yy187;
- if (yych <= 'S') goto yy582;
- goto yy583;
+ if (yych <= 'S') goto yy586;
+ goto yy587;
}
} else {
if (yych <= 'r') {
- if (yych == 'c') goto yy584;
+ if (yych == 'c') goto yy588;
goto yy187;
} else {
- if (yych <= 's') goto yy582;
- if (yych <= 't') goto yy583;
+ if (yych <= 's') goto yy586;
+ if (yych <= 't') goto yy587;
goto yy187;
}
}
-yy577:
- YYDEBUG(577, *YYCURSOR);
+yy581:
+ YYDEBUG(581, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy578;
+ if (yych == 'S') goto yy582;
if (yych != 's') goto yy187;
-yy578:
- YYDEBUG(578, *YYCURSOR);
+yy582:
+ YYDEBUG(582, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy579;
+ if (yych == 'E') goto yy583;
if (yych != 'e') goto yy187;
-yy579:
- YYDEBUG(579, *YYCURSOR);
+yy583:
+ YYDEBUG(583, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy580;
+ if (yych == 'T') goto yy584;
if (yych != 't') goto yy187;
-yy580:
- YYDEBUG(580, *YYCURSOR);
+yy584:
+ YYDEBUG(584, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(581, *YYCURSOR);
+ YYDEBUG(585, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1305 "Zend/zend_language_scanner.l"
{
return T_ISSET;
}
-#line 5787 "Zend/zend_language_scanner.c"
-yy582:
- YYDEBUG(582, *YYCURSOR);
+#line 5809 "Zend/zend_language_scanner.c"
+yy586:
+ YYDEBUG(586, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy603;
- if (yych == 't') goto yy603;
+ if (yych == 'T') goto yy607;
+ if (yych == 't') goto yy607;
goto yy187;
-yy583:
- YYDEBUG(583, *YYCURSOR);
+yy587:
+ YYDEBUG(587, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy596;
- if (yych == 'e') goto yy596;
+ if (yych == 'E') goto yy600;
+ if (yych == 'e') goto yy600;
goto yy187;
-yy584:
- YYDEBUG(584, *YYCURSOR);
+yy588:
+ YYDEBUG(588, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy585;
+ if (yych == 'L') goto yy589;
if (yych != 'l') goto yy187;
-yy585:
- YYDEBUG(585, *YYCURSOR);
+yy589:
+ YYDEBUG(589, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy586;
+ if (yych == 'U') goto yy590;
if (yych != 'u') goto yy187;
-yy586:
- YYDEBUG(586, *YYCURSOR);
+yy590:
+ YYDEBUG(590, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy587;
+ if (yych == 'D') goto yy591;
if (yych != 'd') goto yy187;
-yy587:
- YYDEBUG(587, *YYCURSOR);
+yy591:
+ YYDEBUG(591, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy588;
+ if (yych == 'E') goto yy592;
if (yych != 'e') goto yy187;
-yy588:
- YYDEBUG(588, *YYCURSOR);
+yy592:
+ YYDEBUG(592, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
if (yych >= '0') goto yy186;
} else {
- if (yych <= '@') goto yy589;
+ if (yych <= '@') goto yy593;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy590;
+ if (yych <= '_') goto yy594;
} else {
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy589:
- YYDEBUG(589, *YYCURSOR);
+yy593:
+ YYDEBUG(593, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1273 "Zend/zend_language_scanner.l"
{
return T_INCLUDE;
}
-#line 5845 "Zend/zend_language_scanner.c"
-yy590:
- YYDEBUG(590, *YYCURSOR);
+#line 5867 "Zend/zend_language_scanner.c"
+yy594:
+ YYDEBUG(594, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy591;
+ if (yych == 'O') goto yy595;
if (yych != 'o') goto yy187;
-yy591:
- YYDEBUG(591, *YYCURSOR);
+yy595:
+ YYDEBUG(595, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy592;
+ if (yych == 'N') goto yy596;
if (yych != 'n') goto yy187;
-yy592:
- YYDEBUG(592, *YYCURSOR);
+yy596:
+ YYDEBUG(596, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy593;
+ if (yych == 'C') goto yy597;
if (yych != 'c') goto yy187;
-yy593:
- YYDEBUG(593, *YYCURSOR);
+yy597:
+ YYDEBUG(597, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy594;
+ if (yych == 'E') goto yy598;
if (yych != 'e') goto yy187;
-yy594:
- YYDEBUG(594, *YYCURSOR);
+yy598:
+ YYDEBUG(598, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(595, *YYCURSOR);
+ YYDEBUG(599, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1277 "Zend/zend_language_scanner.l"
{
return T_INCLUDE_ONCE;
}
-#line 5878 "Zend/zend_language_scanner.c"
-yy596:
- YYDEBUG(596, *YYCURSOR);
+#line 5900 "Zend/zend_language_scanner.c"
+yy600:
+ YYDEBUG(600, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy597;
+ if (yych == 'R') goto yy601;
if (yych != 'r') goto yy187;
-yy597:
- YYDEBUG(597, *YYCURSOR);
+yy601:
+ YYDEBUG(601, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy598;
+ if (yych == 'F') goto yy602;
if (yych != 'f') goto yy187;
-yy598:
- YYDEBUG(598, *YYCURSOR);
+yy602:
+ YYDEBUG(602, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy599;
+ if (yych == 'A') goto yy603;
if (yych != 'a') goto yy187;
-yy599:
- YYDEBUG(599, *YYCURSOR);
+yy603:
+ YYDEBUG(603, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy600;
+ if (yych == 'C') goto yy604;
if (yych != 'c') goto yy187;
-yy600:
- YYDEBUG(600, *YYCURSOR);
+yy604:
+ YYDEBUG(604, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy601;
+ if (yych == 'E') goto yy605;
if (yych != 'e') goto yy187;
-yy601:
- YYDEBUG(601, *YYCURSOR);
+yy605:
+ YYDEBUG(605, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(602, *YYCURSOR);
+ YYDEBUG(606, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1174 "Zend/zend_language_scanner.l"
{
return T_INTERFACE;
}
-#line 5916 "Zend/zend_language_scanner.c"
-yy603:
- YYDEBUG(603, *YYCURSOR);
+#line 5938 "Zend/zend_language_scanner.c"
+yy607:
+ YYDEBUG(607, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy604;
+ if (yych == 'A') goto yy608;
if (yych <= 'D') goto yy187;
- goto yy605;
+ goto yy609;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
} else {
- if (yych == 'e') goto yy605;
+ if (yych == 'e') goto yy609;
goto yy187;
}
}
-yy604:
- YYDEBUG(604, *YYCURSOR);
+yy608:
+ YYDEBUG(608, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy611;
- if (yych == 'n') goto yy611;
+ if (yych == 'N') goto yy615;
+ if (yych == 'n') goto yy615;
goto yy187;
-yy605:
- YYDEBUG(605, *YYCURSOR);
+yy609:
+ YYDEBUG(609, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy606;
+ if (yych == 'A') goto yy610;
if (yych != 'a') goto yy187;
-yy606:
- YYDEBUG(606, *YYCURSOR);
+yy610:
+ YYDEBUG(610, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy607;
+ if (yych == 'D') goto yy611;
if (yych != 'd') goto yy187;
-yy607:
- YYDEBUG(607, *YYCURSOR);
+yy611:
+ YYDEBUG(611, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy608;
+ if (yych == 'O') goto yy612;
if (yych != 'o') goto yy187;
-yy608:
- YYDEBUG(608, *YYCURSOR);
+yy612:
+ YYDEBUG(612, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy609;
+ if (yych == 'F') goto yy613;
if (yych != 'f') goto yy187;
-yy609:
- YYDEBUG(609, *YYCURSOR);
+yy613:
+ YYDEBUG(613, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(610, *YYCURSOR);
+ YYDEBUG(614, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1297 "Zend/zend_language_scanner.l"
{
return T_INSTEADOF;
}
-#line 5970 "Zend/zend_language_scanner.c"
-yy611:
- YYDEBUG(611, *YYCURSOR);
+#line 5992 "Zend/zend_language_scanner.c"
+yy615:
+ YYDEBUG(615, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy612;
+ if (yych == 'C') goto yy616;
if (yych != 'c') goto yy187;
-yy612:
- YYDEBUG(612, *YYCURSOR);
+yy616:
+ YYDEBUG(616, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy613;
+ if (yych == 'E') goto yy617;
if (yych != 'e') goto yy187;
-yy613:
- YYDEBUG(613, *YYCURSOR);
+yy617:
+ YYDEBUG(617, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy614;
+ if (yych == 'O') goto yy618;
if (yych != 'o') goto yy187;
-yy614:
- YYDEBUG(614, *YYCURSOR);
+yy618:
+ YYDEBUG(618, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy615;
+ if (yych == 'F') goto yy619;
if (yych != 'f') goto yy187;
-yy615:
- YYDEBUG(615, *YYCURSOR);
+yy619:
+ YYDEBUG(619, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(616, *YYCURSOR);
+ YYDEBUG(620, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1126 "Zend/zend_language_scanner.l"
{
return T_INSTANCEOF;
}
-#line 6003 "Zend/zend_language_scanner.c"
-yy617:
- YYDEBUG(617, *YYCURSOR);
+#line 6025 "Zend/zend_language_scanner.c"
+yy621:
+ YYDEBUG(621, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy618;
+ if (yych == 'L') goto yy622;
if (yych != 'l') goto yy187;
-yy618:
- YYDEBUG(618, *YYCURSOR);
+yy622:
+ YYDEBUG(622, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy619;
+ if (yych == 'E') goto yy623;
if (yych != 'e') goto yy187;
-yy619:
- YYDEBUG(619, *YYCURSOR);
+yy623:
+ YYDEBUG(623, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy620;
+ if (yych == 'M') goto yy624;
if (yych != 'm') goto yy187;
-yy620:
- YYDEBUG(620, *YYCURSOR);
+yy624:
+ YYDEBUG(624, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy621;
+ if (yych == 'E') goto yy625;
if (yych != 'e') goto yy187;
-yy621:
- YYDEBUG(621, *YYCURSOR);
+yy625:
+ YYDEBUG(625, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy622;
+ if (yych == 'N') goto yy626;
if (yych != 'n') goto yy187;
-yy622:
- YYDEBUG(622, *YYCURSOR);
+yy626:
+ YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy623;
+ if (yych == 'T') goto yy627;
if (yych != 't') goto yy187;
-yy623:
- YYDEBUG(623, *YYCURSOR);
+yy627:
+ YYDEBUG(627, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy624;
+ if (yych == 'S') goto yy628;
if (yych != 's') goto yy187;
-yy624:
- YYDEBUG(624, *YYCURSOR);
+yy628:
+ YYDEBUG(628, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(625, *YYCURSOR);
+ YYDEBUG(629, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1186 "Zend/zend_language_scanner.l"
{
return T_IMPLEMENTS;
}
-#line 6051 "Zend/zend_language_scanner.c"
-yy626:
- YYDEBUG(626, *YYCURSOR);
+#line 6073 "Zend/zend_language_scanner.c"
+yy630:
+ YYDEBUG(630, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy634;
- if (yych == 'r') goto yy634;
+ if (yych == 'R') goto yy638;
+ if (yych == 'r') goto yy638;
goto yy187;
-yy627:
- YYDEBUG(627, *YYCURSOR);
+yy631:
+ YYDEBUG(631, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'Y') {
- if (yych == 'A') goto yy630;
+ if (yych == 'A') goto yy634;
if (yych <= 'X') goto yy187;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
- goto yy630;
+ goto yy634;
} else {
if (yych != 'y') goto yy187;
}
}
- YYDEBUG(628, *YYCURSOR);
+ YYDEBUG(632, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(629, *YYCURSOR);
+ YYDEBUG(633, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1058 "Zend/zend_language_scanner.l"
{
return T_TRY;
}
-#line 6083 "Zend/zend_language_scanner.c"
-yy630:
- YYDEBUG(630, *YYCURSOR);
+#line 6105 "Zend/zend_language_scanner.c"
+yy634:
+ YYDEBUG(634, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy631;
+ if (yych == 'I') goto yy635;
if (yych != 'i') goto yy187;
-yy631:
- YYDEBUG(631, *YYCURSOR);
+yy635:
+ YYDEBUG(635, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy632;
+ if (yych == 'T') goto yy636;
if (yych != 't') goto yy187;
-yy632:
- YYDEBUG(632, *YYCURSOR);
+yy636:
+ YYDEBUG(636, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(633, *YYCURSOR);
+ YYDEBUG(637, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1178 "Zend/zend_language_scanner.l"
{
return T_TRAIT;
}
-#line 6106 "Zend/zend_language_scanner.c"
-yy634:
- YYDEBUG(634, *YYCURSOR);
+#line 6128 "Zend/zend_language_scanner.c"
+yy638:
+ YYDEBUG(638, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy635;
+ if (yych == 'O') goto yy639;
if (yych != 'o') goto yy187;
-yy635:
- YYDEBUG(635, *YYCURSOR);
+yy639:
+ YYDEBUG(639, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy636;
+ if (yych == 'W') goto yy640;
if (yych != 'w') goto yy187;
-yy636:
- YYDEBUG(636, *YYCURSOR);
+yy640:
+ YYDEBUG(640, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(637, *YYCURSOR);
+ YYDEBUG(641, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1070 "Zend/zend_language_scanner.l"
{
return T_THROW;
}
-#line 6129 "Zend/zend_language_scanner.c"
-yy638:
- YYDEBUG(638, *YYCURSOR);
+#line 6151 "Zend/zend_language_scanner.c"
+yy642:
+ YYDEBUG(642, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy639;
+ if (yych == 'E') goto yy643;
if (yych != 'e') goto yy187;
-yy639:
- YYDEBUG(639, *YYCURSOR);
+yy643:
+ YYDEBUG(643, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy640;
+ if (yych == 'L') goto yy644;
if (yych != 'l') goto yy187;
-yy640:
- YYDEBUG(640, *YYCURSOR);
+yy644:
+ YYDEBUG(644, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy641;
+ if (yych == 'D') goto yy645;
if (yych != 'd') goto yy187;
-yy641:
- YYDEBUG(641, *YYCURSOR);
+yy645:
+ YYDEBUG(645, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(642, *YYCURSOR);
+ YYDEBUG(646, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1054 "Zend/zend_language_scanner.l"
{
return T_YIELD;
}
-#line 6157 "Zend/zend_language_scanner.c"
-yy643:
- YYDEBUG(643, *YYCURSOR);
+#line 6179 "Zend/zend_language_scanner.c"
+yy647:
+ YYDEBUG(647, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
- if (yych == 'Q') goto yy645;
+ if (yych == 'Q') goto yy649;
if (yych <= 'S') goto yy187;
} else {
if (yych <= 'q') {
if (yych <= 'p') goto yy187;
- goto yy645;
+ goto yy649;
} else {
if (yych != 't') goto yy187;
}
}
- YYDEBUG(644, *YYCURSOR);
+ YYDEBUG(648, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy657;
- if (yych == 'u') goto yy657;
+ if (yych == 'U') goto yy661;
+ if (yych == 'u') goto yy661;
goto yy187;
-yy645:
- YYDEBUG(645, *YYCURSOR);
+yy649:
+ YYDEBUG(649, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy646;
+ if (yych == 'U') goto yy650;
if (yych != 'u') goto yy187;
-yy646:
- YYDEBUG(646, *YYCURSOR);
+yy650:
+ YYDEBUG(650, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy647;
+ if (yych == 'I') goto yy651;
if (yych != 'i') goto yy187;
-yy647:
- YYDEBUG(647, *YYCURSOR);
+yy651:
+ YYDEBUG(651, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy648;
+ if (yych == 'R') goto yy652;
if (yych != 'r') goto yy187;
-yy648:
- YYDEBUG(648, *YYCURSOR);
+yy652:
+ YYDEBUG(652, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy649;
+ if (yych == 'E') goto yy653;
if (yych != 'e') goto yy187;
-yy649:
- YYDEBUG(649, *YYCURSOR);
+yy653:
+ YYDEBUG(653, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
if (yych >= '0') goto yy186;
} else {
- if (yych <= '@') goto yy650;
+ if (yych <= '@') goto yy654;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy651;
+ if (yych <= '_') goto yy655;
} else {
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy650:
- YYDEBUG(650, *YYCURSOR);
+yy654:
+ YYDEBUG(654, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1281 "Zend/zend_language_scanner.l"
{
return T_REQUIRE;
}
-#line 6222 "Zend/zend_language_scanner.c"
-yy651:
- YYDEBUG(651, *YYCURSOR);
+#line 6244 "Zend/zend_language_scanner.c"
+yy655:
+ YYDEBUG(655, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy652;
+ if (yych == 'O') goto yy656;
if (yych != 'o') goto yy187;
-yy652:
- YYDEBUG(652, *YYCURSOR);
+yy656:
+ YYDEBUG(656, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy653;
+ if (yych == 'N') goto yy657;
if (yych != 'n') goto yy187;
-yy653:
- YYDEBUG(653, *YYCURSOR);
+yy657:
+ YYDEBUG(657, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy654;
+ if (yych == 'C') goto yy658;
if (yych != 'c') goto yy187;
-yy654:
- YYDEBUG(654, *YYCURSOR);
+yy658:
+ YYDEBUG(658, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy655;
+ if (yych == 'E') goto yy659;
if (yych != 'e') goto yy187;
-yy655:
- YYDEBUG(655, *YYCURSOR);
+yy659:
+ YYDEBUG(659, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(656, *YYCURSOR);
+ YYDEBUG(660, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1285 "Zend/zend_language_scanner.l"
{
return T_REQUIRE_ONCE;
}
-#line 6255 "Zend/zend_language_scanner.c"
-yy657:
- YYDEBUG(657, *YYCURSOR);
+#line 6277 "Zend/zend_language_scanner.c"
+yy661:
+ YYDEBUG(661, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy658;
+ if (yych == 'R') goto yy662;
if (yych != 'r') goto yy187;
-yy658:
- YYDEBUG(658, *YYCURSOR);
+yy662:
+ YYDEBUG(662, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy659;
+ if (yych == 'N') goto yy663;
if (yych != 'n') goto yy187;
-yy659:
- YYDEBUG(659, *YYCURSOR);
+yy663:
+ YYDEBUG(663, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(660, *YYCURSOR);
+ YYDEBUG(664, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1050 "Zend/zend_language_scanner.l"
{
return T_RETURN;
}
-#line 6278 "Zend/zend_language_scanner.c"
-yy661:
- YYDEBUG(661, *YYCURSOR);
+#line 6300 "Zend/zend_language_scanner.c"
+yy665:
+ YYDEBUG(665, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'L') {
if (yych <= 'K') goto yy187;
- goto yy684;
+ goto yy688;
} else {
if (yych <= 'R') goto yy187;
- if (yych <= 'S') goto yy683;
- goto yy682;
+ if (yych <= 'S') goto yy687;
+ goto yy686;
}
} else {
if (yych <= 'r') {
- if (yych == 'l') goto yy684;
+ if (yych == 'l') goto yy688;
goto yy187;
} else {
- if (yych <= 's') goto yy683;
- if (yych <= 't') goto yy682;
+ if (yych <= 's') goto yy687;
+ if (yych <= 't') goto yy686;
goto yy187;
}
}
-yy662:
- YYDEBUG(662, *YYCURSOR);
+yy666:
+ YYDEBUG(666, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'A') goto yy674;
+ if (yych == 'A') goto yy678;
if (yych <= 'N') goto yy187;
- goto yy675;
+ goto yy679;
} else {
if (yych <= 'a') {
if (yych <= '`') goto yy187;
- goto yy674;
+ goto yy678;
} else {
- if (yych == 'o') goto yy675;
+ if (yych == 'o') goto yy679;
goto yy187;
}
}
-yy663:
- YYDEBUG(663, *YYCURSOR);
+yy667:
+ YYDEBUG(667, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy664;
+ if (yych == 'N') goto yy668;
if (yych != 'n') goto yy187;
-yy664:
- YYDEBUG(664, *YYCURSOR);
+yy668:
+ YYDEBUG(668, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'R') goto yy187;
- if (yych >= 'T') goto yy666;
+ if (yych >= 'T') goto yy670;
} else {
if (yych <= 'r') goto yy187;
- if (yych <= 's') goto yy665;
- if (yych <= 't') goto yy666;
+ if (yych <= 's') goto yy669;
+ if (yych <= 't') goto yy670;
goto yy187;
}
-yy665:
- YYDEBUG(665, *YYCURSOR);
+yy669:
+ YYDEBUG(669, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy672;
- if (yych == 't') goto yy672;
+ if (yych == 'T') goto yy676;
+ if (yych == 't') goto yy676;
goto yy187;
-yy666:
- YYDEBUG(666, *YYCURSOR);
+yy670:
+ YYDEBUG(670, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy667;
+ if (yych == 'I') goto yy671;
if (yych != 'i') goto yy187;
-yy667:
- YYDEBUG(667, *YYCURSOR);
+yy671:
+ YYDEBUG(671, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy668;
+ if (yych == 'N') goto yy672;
if (yych != 'n') goto yy187;
-yy668:
- YYDEBUG(668, *YYCURSOR);
+yy672:
+ YYDEBUG(672, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy669;
+ if (yych == 'U') goto yy673;
if (yych != 'u') goto yy187;
-yy669:
- YYDEBUG(669, *YYCURSOR);
+yy673:
+ YYDEBUG(673, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy670;
+ if (yych == 'E') goto yy674;
if (yych != 'e') goto yy187;
-yy670:
- YYDEBUG(670, *YYCURSOR);
+yy674:
+ YYDEBUG(674, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(671, *YYCURSOR);
+ YYDEBUG(675, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1154 "Zend/zend_language_scanner.l"
{
return T_CONTINUE;
}
-#line 6372 "Zend/zend_language_scanner.c"
-yy672:
- YYDEBUG(672, *YYCURSOR);
+#line 6394 "Zend/zend_language_scanner.c"
+yy676:
+ YYDEBUG(676, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(673, *YYCURSOR);
+ YYDEBUG(677, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1046 "Zend/zend_language_scanner.l"
{
return T_CONST;
}
-#line 6385 "Zend/zend_language_scanner.c"
-yy674:
- YYDEBUG(674, *YYCURSOR);
+#line 6407 "Zend/zend_language_scanner.c"
+yy678:
+ YYDEBUG(678, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy679;
- if (yych == 's') goto yy679;
+ if (yych == 'S') goto yy683;
+ if (yych == 's') goto yy683;
goto yy187;
-yy675:
- YYDEBUG(675, *YYCURSOR);
+yy679:
+ YYDEBUG(679, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy676;
+ if (yych == 'N') goto yy680;
if (yych != 'n') goto yy187;
-yy676:
- YYDEBUG(676, *YYCURSOR);
+yy680:
+ YYDEBUG(680, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy677;
+ if (yych == 'E') goto yy681;
if (yych != 'e') goto yy187;
-yy677:
- YYDEBUG(677, *YYCURSOR);
+yy681:
+ YYDEBUG(681, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(678, *YYCURSOR);
+ YYDEBUG(682, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1233 "Zend/zend_language_scanner.l"
{
return T_CLONE;
}
-#line 6414 "Zend/zend_language_scanner.c"
-yy679:
- YYDEBUG(679, *YYCURSOR);
+#line 6436 "Zend/zend_language_scanner.c"
+yy683:
+ YYDEBUG(683, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy680;
+ if (yych == 'S') goto yy684;
if (yych != 's') goto yy187;
-yy680:
- YYDEBUG(680, *YYCURSOR);
+yy684:
+ YYDEBUG(684, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(681, *YYCURSOR);
+ YYDEBUG(685, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1170 "Zend/zend_language_scanner.l"
{
return T_CLASS;
}
-#line 6432 "Zend/zend_language_scanner.c"
-yy682:
- YYDEBUG(682, *YYCURSOR);
+#line 6454 "Zend/zend_language_scanner.c"
+yy686:
+ YYDEBUG(686, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy693;
- if (yych == 'c') goto yy693;
+ if (yych == 'C') goto yy697;
+ if (yych == 'c') goto yy697;
goto yy187;
-yy683:
- YYDEBUG(683, *YYCURSOR);
+yy687:
+ YYDEBUG(687, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy691;
- if (yych == 'e') goto yy691;
+ if (yych == 'E') goto yy695;
+ if (yych == 'e') goto yy695;
goto yy187;
-yy684:
- YYDEBUG(684, *YYCURSOR);
+yy688:
+ YYDEBUG(688, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy685;
+ if (yych == 'L') goto yy689;
if (yych != 'l') goto yy187;
-yy685:
- YYDEBUG(685, *YYCURSOR);
+yy689:
+ YYDEBUG(689, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy686;
+ if (yych == 'A') goto yy690;
if (yych != 'a') goto yy187;
-yy686:
- YYDEBUG(686, *YYCURSOR);
+yy690:
+ YYDEBUG(690, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy687;
+ if (yych == 'B') goto yy691;
if (yych != 'b') goto yy187;
-yy687:
- YYDEBUG(687, *YYCURSOR);
+yy691:
+ YYDEBUG(691, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy688;
+ if (yych == 'L') goto yy692;
if (yych != 'l') goto yy187;
-yy688:
- YYDEBUG(688, *YYCURSOR);
+yy692:
+ YYDEBUG(692, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy689;
+ if (yych == 'E') goto yy693;
if (yych != 'e') goto yy187;
-yy689:
- YYDEBUG(689, *YYCURSOR);
+yy693:
+ YYDEBUG(693, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(690, *YYCURSOR);
+ YYDEBUG(694, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1357 "Zend/zend_language_scanner.l"
{
return T_CALLABLE;
}
-#line 6482 "Zend/zend_language_scanner.c"
-yy691:
- YYDEBUG(691, *YYCURSOR);
+#line 6504 "Zend/zend_language_scanner.c"
+yy695:
+ YYDEBUG(695, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(692, *YYCURSOR);
+ YYDEBUG(696, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1142 "Zend/zend_language_scanner.l"
{
return T_CASE;
}
-#line 6495 "Zend/zend_language_scanner.c"
-yy693:
- YYDEBUG(693, *YYCURSOR);
+#line 6517 "Zend/zend_language_scanner.c"
+yy697:
+ YYDEBUG(697, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy694;
+ if (yych == 'H') goto yy698;
if (yych != 'h') goto yy187;
-yy694:
- YYDEBUG(694, *YYCURSOR);
+yy698:
+ YYDEBUG(698, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(695, *YYCURSOR);
+ YYDEBUG(699, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1062 "Zend/zend_language_scanner.l"
{
return T_CATCH;
}
-#line 6513 "Zend/zend_language_scanner.c"
-yy696:
- YYDEBUG(696, *YYCURSOR);
+#line 6535 "Zend/zend_language_scanner.c"
+yy700:
+ YYDEBUG(700, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy713;
- if (yych == 'n') goto yy713;
+ if (yych == 'N') goto yy717;
+ if (yych == 'n') goto yy717;
goto yy187;
-yy697:
- YYDEBUG(697, *YYCURSOR);
+yy701:
+ YYDEBUG(701, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy706;
- if (yych == 'r') goto yy706;
+ if (yych == 'R') goto yy710;
+ if (yych == 'r') goto yy710;
goto yy187;
-yy698:
- YYDEBUG(698, *YYCURSOR);
+yy702:
+ YYDEBUG(702, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy699;
+ if (yych == 'N') goto yy703;
if (yych != 'n') goto yy187;
-yy699:
- YYDEBUG(699, *YYCURSOR);
+yy703:
+ YYDEBUG(703, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy700;
+ if (yych == 'C') goto yy704;
if (yych != 'c') goto yy187;
-yy700:
- YYDEBUG(700, *YYCURSOR);
+yy704:
+ YYDEBUG(704, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy701;
+ if (yych == 'T') goto yy705;
if (yych != 't') goto yy187;
-yy701:
- YYDEBUG(701, *YYCURSOR);
+yy705:
+ YYDEBUG(705, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy702;
+ if (yych == 'I') goto yy706;
if (yych != 'i') goto yy187;
-yy702:
- YYDEBUG(702, *YYCURSOR);
+yy706:
+ YYDEBUG(706, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy703;
+ if (yych == 'O') goto yy707;
if (yych != 'o') goto yy187;
-yy703:
- YYDEBUG(703, *YYCURSOR);
+yy707:
+ YYDEBUG(707, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy704;
+ if (yych == 'N') goto yy708;
if (yych != 'n') goto yy187;
-yy704:
- YYDEBUG(704, *YYCURSOR);
+yy708:
+ YYDEBUG(708, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(705, *YYCURSOR);
+ YYDEBUG(709, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1042 "Zend/zend_language_scanner.l"
{
return T_FUNCTION;
}
-#line 6568 "Zend/zend_language_scanner.c"
-yy706:
- YYDEBUG(706, *YYCURSOR);
+#line 6590 "Zend/zend_language_scanner.c"
+yy710:
+ YYDEBUG(710, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy707;
+ if (yych <= '/') goto yy711;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'E') goto yy708;
+ if (yych == 'E') goto yy712;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'd') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'e') goto yy708;
+ if (yych <= 'e') goto yy712;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy707:
- YYDEBUG(707, *YYCURSOR);
+yy711:
+ YYDEBUG(711, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1102 "Zend/zend_language_scanner.l"
{
return T_FOR;
}
-#line 6596 "Zend/zend_language_scanner.c"
-yy708:
- YYDEBUG(708, *YYCURSOR);
+#line 6618 "Zend/zend_language_scanner.c"
+yy712:
+ YYDEBUG(712, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy709;
+ if (yych == 'A') goto yy713;
if (yych != 'a') goto yy187;
-yy709:
- YYDEBUG(709, *YYCURSOR);
+yy713:
+ YYDEBUG(713, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy710;
+ if (yych == 'C') goto yy714;
if (yych != 'c') goto yy187;
-yy710:
- YYDEBUG(710, *YYCURSOR);
+yy714:
+ YYDEBUG(714, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy711;
+ if (yych == 'H') goto yy715;
if (yych != 'h') goto yy187;
-yy711:
- YYDEBUG(711, *YYCURSOR);
+yy715:
+ YYDEBUG(715, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(712, *YYCURSOR);
+ YYDEBUG(716, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1110 "Zend/zend_language_scanner.l"
{
return T_FOREACH;
}
-#line 6624 "Zend/zend_language_scanner.c"
-yy713:
- YYDEBUG(713, *YYCURSOR);
+#line 6646 "Zend/zend_language_scanner.c"
+yy717:
+ YYDEBUG(717, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy714;
+ if (yych == 'A') goto yy718;
if (yych != 'a') goto yy187;
-yy714:
- YYDEBUG(714, *YYCURSOR);
+yy718:
+ YYDEBUG(718, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy715;
+ if (yych == 'L') goto yy719;
if (yych != 'l') goto yy187;
-yy715:
- YYDEBUG(715, *YYCURSOR);
+yy719:
+ YYDEBUG(719, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy716;
+ if (yych <= '/') goto yy720;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'L') goto yy717;
+ if (yych == 'L') goto yy721;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'k') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'l') goto yy717;
+ if (yych <= 'l') goto yy721;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy716:
- YYDEBUG(716, *YYCURSOR);
+yy720:
+ YYDEBUG(720, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1325 "Zend/zend_language_scanner.l"
{
return T_FINAL;
}
-#line 6662 "Zend/zend_language_scanner.c"
-yy717:
- YYDEBUG(717, *YYCURSOR);
+#line 6684 "Zend/zend_language_scanner.c"
+yy721:
+ YYDEBUG(721, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy718;
+ if (yych == 'Y') goto yy722;
if (yych != 'y') goto yy187;
-yy718:
- YYDEBUG(718, *YYCURSOR);
+yy722:
+ YYDEBUG(722, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(719, *YYCURSOR);
+ YYDEBUG(723, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1066 "Zend/zend_language_scanner.l"
{
return T_FINALLY;
}
-#line 6680 "Zend/zend_language_scanner.c"
-yy720:
- YYDEBUG(720, *YYCURSOR);
+#line 6702 "Zend/zend_language_scanner.c"
+yy724:
+ YYDEBUG(724, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'F') {
- if (yych == 'C') goto yy726;
+ if (yych == 'C') goto yy730;
if (yych <= 'E') goto yy187;
- goto yy727;
+ goto yy731;
} else {
if (yych <= 'c') {
if (yych <= 'b') goto yy187;
- goto yy726;
+ goto yy730;
} else {
- if (yych == 'f') goto yy727;
+ if (yych == 'f') goto yy731;
goto yy187;
}
}
-yy721:
- YYDEBUG(721, *YYCURSOR);
+yy725:
+ YYDEBUG(725, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy724;
- if (yych == 'e') goto yy724;
+ if (yych == 'E') goto yy728;
+ if (yych == 'e') goto yy728;
goto yy187;
-yy722:
- YYDEBUG(722, *YYCURSOR);
+yy726:
+ YYDEBUG(726, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(723, *YYCURSOR);
+ YYDEBUG(727, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1098 "Zend/zend_language_scanner.l"
{
return T_DO;
}
-#line 6715 "Zend/zend_language_scanner.c"
-yy724:
- YYDEBUG(724, *YYCURSOR);
+#line 6737 "Zend/zend_language_scanner.c"
+yy728:
+ YYDEBUG(728, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(725, *YYCURSOR);
+ YYDEBUG(729, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1038 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6728 "Zend/zend_language_scanner.c"
-yy726:
- YYDEBUG(726, *YYCURSOR);
+#line 6750 "Zend/zend_language_scanner.c"
+yy730:
+ YYDEBUG(730, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy733;
- if (yych == 'l') goto yy733;
+ if (yych == 'L') goto yy737;
+ if (yych == 'l') goto yy737;
goto yy187;
-yy727:
- YYDEBUG(727, *YYCURSOR);
+yy731:
+ YYDEBUG(731, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy728;
+ if (yych == 'A') goto yy732;
if (yych != 'a') goto yy187;
-yy728:
- YYDEBUG(728, *YYCURSOR);
+yy732:
+ YYDEBUG(732, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy729;
+ if (yych == 'U') goto yy733;
if (yych != 'u') goto yy187;
-yy729:
- YYDEBUG(729, *YYCURSOR);
+yy733:
+ YYDEBUG(733, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy730;
+ if (yych == 'L') goto yy734;
if (yych != 'l') goto yy187;
-yy730:
- YYDEBUG(730, *YYCURSOR);
+yy734:
+ YYDEBUG(734, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy731;
+ if (yych == 'T') goto yy735;
if (yych != 't') goto yy187;
-yy731:
- YYDEBUG(731, *YYCURSOR);
+yy735:
+ YYDEBUG(735, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(732, *YYCURSOR);
+ YYDEBUG(736, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1146 "Zend/zend_language_scanner.l"
{
return T_DEFAULT;
}
-#line 6767 "Zend/zend_language_scanner.c"
-yy733:
- YYDEBUG(733, *YYCURSOR);
+#line 6789 "Zend/zend_language_scanner.c"
+yy737:
+ YYDEBUG(737, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy734;
+ if (yych == 'A') goto yy738;
if (yych != 'a') goto yy187;
-yy734:
- YYDEBUG(734, *YYCURSOR);
+yy738:
+ YYDEBUG(738, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy735;
+ if (yych == 'R') goto yy739;
if (yych != 'r') goto yy187;
-yy735:
- YYDEBUG(735, *YYCURSOR);
+yy739:
+ YYDEBUG(739, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy736;
+ if (yych == 'E') goto yy740;
if (yych != 'e') goto yy187;
-yy736:
- YYDEBUG(736, *YYCURSOR);
+yy740:
+ YYDEBUG(740, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(737, *YYCURSOR);
+ YYDEBUG(741, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1118 "Zend/zend_language_scanner.l"
{
return T_DECLARE;
}
-#line 6795 "Zend/zend_language_scanner.c"
-yy738:
- YYDEBUG(738, *YYCURSOR);
+#line 6817 "Zend/zend_language_scanner.c"
+yy742:
+ YYDEBUG(742, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy800;
- if (yych == 'h') goto yy800;
+ if (yych == 'H') goto yy804;
+ if (yych == 'h') goto yy804;
goto yy187;
-yy739:
- YYDEBUG(739, *YYCURSOR);
+yy743:
+ YYDEBUG(743, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy794;
- if (yych == 's') goto yy794;
+ if (yych == 'S') goto yy798;
+ if (yych == 's') goto yy798;
goto yy187;
-yy740:
- YYDEBUG(740, *YYCURSOR);
+yy744:
+ YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy790;
- if (yych == 'p') goto yy790;
+ if (yych == 'P') goto yy794;
+ if (yych == 'p') goto yy794;
goto yy187;
-yy741:
- YYDEBUG(741, *YYCURSOR);
+yy745:
+ YYDEBUG(745, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy756;
- if (yych == 'd') goto yy756;
+ if (yych == 'D') goto yy760;
+ if (yych == 'd') goto yy760;
goto yy187;
-yy742:
- YYDEBUG(742, *YYCURSOR);
+yy746:
+ YYDEBUG(746, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy753;
- if (yych == 'a') goto yy753;
+ if (yych == 'A') goto yy757;
+ if (yych == 'a') goto yy757;
goto yy187;
-yy743:
- YYDEBUG(743, *YYCURSOR);
+yy747:
+ YYDEBUG(747, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
- if (yych == 'I') goto yy744;
+ if (yych == 'I') goto yy748;
if (yych <= 'S') goto yy187;
- goto yy745;
+ goto yy749;
} else {
if (yych <= 'i') {
if (yych <= 'h') goto yy187;
} else {
- if (yych == 't') goto yy745;
+ if (yych == 't') goto yy749;
goto yy187;
}
}
-yy744:
- YYDEBUG(744, *YYCURSOR);
+yy748:
+ YYDEBUG(748, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy751;
- if (yych == 't') goto yy751;
+ if (yych == 'T') goto yy755;
+ if (yych == 't') goto yy755;
goto yy187;
-yy745:
- YYDEBUG(745, *YYCURSOR);
+yy749:
+ YYDEBUG(749, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy746;
+ if (yych == 'E') goto yy750;
if (yych != 'e') goto yy187;
-yy746:
- YYDEBUG(746, *YYCURSOR);
+yy750:
+ YYDEBUG(750, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy747;
+ if (yych == 'N') goto yy751;
if (yych != 'n') goto yy187;
-yy747:
- YYDEBUG(747, *YYCURSOR);
+yy751:
+ YYDEBUG(751, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy748;
+ if (yych == 'D') goto yy752;
if (yych != 'd') goto yy187;
-yy748:
- YYDEBUG(748, *YYCURSOR);
+yy752:
+ YYDEBUG(752, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy749;
+ if (yych == 'S') goto yy753;
if (yych != 's') goto yy187;
-yy749:
- YYDEBUG(749, *YYCURSOR);
+yy753:
+ YYDEBUG(753, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(750, *YYCURSOR);
+ YYDEBUG(754, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1182 "Zend/zend_language_scanner.l"
{
return T_EXTENDS;
}
-#line 6879 "Zend/zend_language_scanner.c"
-yy751:
- YYDEBUG(751, *YYCURSOR);
+#line 6901 "Zend/zend_language_scanner.c"
+yy755:
+ YYDEBUG(755, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(752, *YYCURSOR);
+ YYDEBUG(756, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1034 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 6892 "Zend/zend_language_scanner.c"
-yy753:
- YYDEBUG(753, *YYCURSOR);
+#line 6914 "Zend/zend_language_scanner.c"
+yy757:
+ YYDEBUG(757, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy754;
+ if (yych == 'L') goto yy758;
if (yych != 'l') goto yy187;
-yy754:
- YYDEBUG(754, *YYCURSOR);
+yy758:
+ YYDEBUG(758, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(755, *YYCURSOR);
+ YYDEBUG(759, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1269 "Zend/zend_language_scanner.l"
{
return T_EVAL;
}
-#line 6910 "Zend/zend_language_scanner.c"
-yy756:
- YYDEBUG(756, *YYCURSOR);
+#line 6932 "Zend/zend_language_scanner.c"
+yy760:
+ YYDEBUG(760, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'D':
- case 'd': goto yy757;
+ case 'd': goto yy761;
case 'F':
- case 'f': goto yy758;
+ case 'f': goto yy762;
case 'I':
- case 'i': goto yy759;
+ case 'i': goto yy763;
case 'S':
- case 's': goto yy760;
+ case 's': goto yy764;
case 'W':
- case 'w': goto yy761;
+ case 'w': goto yy765;
default: goto yy187;
}
-yy757:
- YYDEBUG(757, *YYCURSOR);
+yy761:
+ YYDEBUG(761, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy783;
- if (yych == 'e') goto yy783;
+ if (yych == 'E') goto yy787;
+ if (yych == 'e') goto yy787;
goto yy187;
-yy758:
- YYDEBUG(758, *YYCURSOR);
+yy762:
+ YYDEBUG(762, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy775;
- if (yych == 'o') goto yy775;
+ if (yych == 'O') goto yy779;
+ if (yych == 'o') goto yy779;
goto yy187;
-yy759:
- YYDEBUG(759, *YYCURSOR);
+yy763:
+ YYDEBUG(763, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy773;
- if (yych == 'f') goto yy773;
+ if (yych == 'F') goto yy777;
+ if (yych == 'f') goto yy777;
goto yy187;
-yy760:
- YYDEBUG(760, *YYCURSOR);
+yy764:
+ YYDEBUG(764, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy767;
- if (yych == 'w') goto yy767;
+ if (yych == 'W') goto yy771;
+ if (yych == 'w') goto yy771;
goto yy187;
-yy761:
- YYDEBUG(761, *YYCURSOR);
+yy765:
+ YYDEBUG(765, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy762;
+ if (yych == 'H') goto yy766;
if (yych != 'h') goto yy187;
-yy762:
- YYDEBUG(762, *YYCURSOR);
+yy766:
+ YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy763;
+ if (yych == 'I') goto yy767;
if (yych != 'i') goto yy187;
-yy763:
- YYDEBUG(763, *YYCURSOR);
+yy767:
+ YYDEBUG(767, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy764;
+ if (yych == 'L') goto yy768;
if (yych != 'l') goto yy187;
-yy764:
- YYDEBUG(764, *YYCURSOR);
+yy768:
+ YYDEBUG(768, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy765;
+ if (yych == 'E') goto yy769;
if (yych != 'e') goto yy187;
-yy765:
- YYDEBUG(765, *YYCURSOR);
+yy769:
+ YYDEBUG(769, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(766, *YYCURSOR);
+ YYDEBUG(770, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1094 "Zend/zend_language_scanner.l"
{
return T_ENDWHILE;
}
-#line 6984 "Zend/zend_language_scanner.c"
-yy767:
- YYDEBUG(767, *YYCURSOR);
+#line 7006 "Zend/zend_language_scanner.c"
+yy771:
+ YYDEBUG(771, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy768;
+ if (yych == 'I') goto yy772;
if (yych != 'i') goto yy187;
-yy768:
- YYDEBUG(768, *YYCURSOR);
+yy772:
+ YYDEBUG(772, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy769;
+ if (yych == 'T') goto yy773;
if (yych != 't') goto yy187;
-yy769:
- YYDEBUG(769, *YYCURSOR);
+yy773:
+ YYDEBUG(773, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy770;
+ if (yych == 'C') goto yy774;
if (yych != 'c') goto yy187;
-yy770:
- YYDEBUG(770, *YYCURSOR);
+yy774:
+ YYDEBUG(774, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy771;
+ if (yych == 'H') goto yy775;
if (yych != 'h') goto yy187;
-yy771:
- YYDEBUG(771, *YYCURSOR);
+yy775:
+ YYDEBUG(775, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(772, *YYCURSOR);
+ YYDEBUG(776, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1138 "Zend/zend_language_scanner.l"
{
return T_ENDSWITCH;
}
-#line 7017 "Zend/zend_language_scanner.c"
-yy773:
- YYDEBUG(773, *YYCURSOR);
+#line 7039 "Zend/zend_language_scanner.c"
+yy777:
+ YYDEBUG(777, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(774, *YYCURSOR);
+ YYDEBUG(778, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1082 "Zend/zend_language_scanner.l"
{
return T_ENDIF;
}
-#line 7030 "Zend/zend_language_scanner.c"
-yy775:
- YYDEBUG(775, *YYCURSOR);
+#line 7052 "Zend/zend_language_scanner.c"
+yy779:
+ YYDEBUG(779, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy776;
+ if (yych == 'R') goto yy780;
if (yych != 'r') goto yy187;
-yy776:
- YYDEBUG(776, *YYCURSOR);
+yy780:
+ YYDEBUG(780, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy777;
+ if (yych <= '/') goto yy781;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'E') goto yy778;
+ if (yych == 'E') goto yy782;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'd') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'e') goto yy778;
+ if (yych <= 'e') goto yy782;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy777:
- YYDEBUG(777, *YYCURSOR);
+yy781:
+ YYDEBUG(781, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1106 "Zend/zend_language_scanner.l"
{
return T_ENDFOR;
}
-#line 7063 "Zend/zend_language_scanner.c"
-yy778:
- YYDEBUG(778, *YYCURSOR);
+#line 7085 "Zend/zend_language_scanner.c"
+yy782:
+ YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy779;
+ if (yych == 'A') goto yy783;
if (yych != 'a') goto yy187;
-yy779:
- YYDEBUG(779, *YYCURSOR);
+yy783:
+ YYDEBUG(783, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy780;
+ if (yych == 'C') goto yy784;
if (yych != 'c') goto yy187;
-yy780:
- YYDEBUG(780, *YYCURSOR);
+yy784:
+ YYDEBUG(784, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy781;
+ if (yych == 'H') goto yy785;
if (yych != 'h') goto yy187;
-yy781:
- YYDEBUG(781, *YYCURSOR);
+yy785:
+ YYDEBUG(785, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(782, *YYCURSOR);
+ YYDEBUG(786, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1114 "Zend/zend_language_scanner.l"
{
return T_ENDFOREACH;
}
-#line 7091 "Zend/zend_language_scanner.c"
-yy783:
- YYDEBUG(783, *YYCURSOR);
+#line 7113 "Zend/zend_language_scanner.c"
+yy787:
+ YYDEBUG(787, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy784;
+ if (yych == 'C') goto yy788;
if (yych != 'c') goto yy187;
-yy784:
- YYDEBUG(784, *YYCURSOR);
+yy788:
+ YYDEBUG(788, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy785;
+ if (yych == 'L') goto yy789;
if (yych != 'l') goto yy187;
-yy785:
- YYDEBUG(785, *YYCURSOR);
+yy789:
+ YYDEBUG(789, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy786;
+ if (yych == 'A') goto yy790;
if (yych != 'a') goto yy187;
-yy786:
- YYDEBUG(786, *YYCURSOR);
+yy790:
+ YYDEBUG(790, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy787;
+ if (yych == 'R') goto yy791;
if (yych != 'r') goto yy187;
-yy787:
- YYDEBUG(787, *YYCURSOR);
+yy791:
+ YYDEBUG(791, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy788;
+ if (yych == 'E') goto yy792;
if (yych != 'e') goto yy187;
-yy788:
- YYDEBUG(788, *YYCURSOR);
+yy792:
+ YYDEBUG(792, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(789, *YYCURSOR);
+ YYDEBUG(793, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1122 "Zend/zend_language_scanner.l"
{
return T_ENDDECLARE;
}
-#line 7129 "Zend/zend_language_scanner.c"
-yy790:
- YYDEBUG(790, *YYCURSOR);
+#line 7151 "Zend/zend_language_scanner.c"
+yy794:
+ YYDEBUG(794, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy791;
+ if (yych == 'T') goto yy795;
if (yych != 't') goto yy187;
-yy791:
- YYDEBUG(791, *YYCURSOR);
+yy795:
+ YYDEBUG(795, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy792;
+ if (yych == 'Y') goto yy796;
if (yych != 'y') goto yy187;
-yy792:
- YYDEBUG(792, *YYCURSOR);
+yy796:
+ YYDEBUG(796, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(793, *YYCURSOR);
+ YYDEBUG(797, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1309 "Zend/zend_language_scanner.l"
{
return T_EMPTY;
}
-#line 7152 "Zend/zend_language_scanner.c"
-yy794:
- YYDEBUG(794, *YYCURSOR);
+#line 7174 "Zend/zend_language_scanner.c"
+yy798:
+ YYDEBUG(798, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy795;
+ if (yych == 'E') goto yy799;
if (yych != 'e') goto yy187;
-yy795:
- YYDEBUG(795, *YYCURSOR);
+yy799:
+ YYDEBUG(799, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy796;
+ if (yych <= '/') goto yy800;
if (yych <= '9') goto yy186;
} else {
- if (yych == 'I') goto yy797;
+ if (yych == 'I') goto yy801;
if (yych <= 'Z') goto yy186;
}
} else {
if (yych <= 'h') {
if (yych != '`') goto yy186;
} else {
- if (yych <= 'i') goto yy797;
+ if (yych <= 'i') goto yy801;
if (yych <= 'z') goto yy186;
if (yych >= 0x7F) goto yy186;
}
}
-yy796:
- YYDEBUG(796, *YYCURSOR);
+yy800:
+ YYDEBUG(800, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1086 "Zend/zend_language_scanner.l"
{
return T_ELSE;
}
-#line 7185 "Zend/zend_language_scanner.c"
-yy797:
- YYDEBUG(797, *YYCURSOR);
+#line 7207 "Zend/zend_language_scanner.c"
+yy801:
+ YYDEBUG(801, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy798;
+ if (yych == 'F') goto yy802;
if (yych != 'f') goto yy187;
-yy798:
- YYDEBUG(798, *YYCURSOR);
+yy802:
+ YYDEBUG(802, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(799, *YYCURSOR);
+ YYDEBUG(803, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1078 "Zend/zend_language_scanner.l"
{
return T_ELSEIF;
}
-#line 7203 "Zend/zend_language_scanner.c"
-yy800:
- YYDEBUG(800, *YYCURSOR);
+#line 7225 "Zend/zend_language_scanner.c"
+yy804:
+ YYDEBUG(804, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy801;
+ if (yych == 'O') goto yy805;
if (yych != 'o') goto yy187;
-yy801:
- YYDEBUG(801, *YYCURSOR);
+yy805:
+ YYDEBUG(805, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 4) {
goto yy186;
}
- YYDEBUG(802, *YYCURSOR);
+ YYDEBUG(806, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1162 "Zend/zend_language_scanner.l"
{
return T_ECHO;
}
-#line 7221 "Zend/zend_language_scanner.c"
+#line 7243 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7256,39 +7278,39 @@ yyc_ST_LOOKING_FOR_PROPERTY:
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
};
- YYDEBUG(803, *YYCURSOR);
+ YYDEBUG(807, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '-') {
if (yych <= '\r') {
- if (yych <= 0x08) goto yy811;
- if (yych <= '\n') goto yy805;
- if (yych <= '\f') goto yy811;
+ if (yych <= 0x08) goto yy815;
+ if (yych <= '\n') goto yy809;
+ if (yych <= '\f') goto yy815;
} else {
- if (yych == ' ') goto yy805;
- if (yych <= ',') goto yy811;
- goto yy807;
+ if (yych == ' ') goto yy809;
+ if (yych <= ',') goto yy815;
+ goto yy811;
}
} else {
if (yych <= '_') {
- if (yych <= '@') goto yy811;
- if (yych <= 'Z') goto yy809;
- if (yych <= '^') goto yy811;
- goto yy809;
+ if (yych <= '@') goto yy815;
+ if (yych <= 'Z') goto yy813;
+ if (yych <= '^') goto yy815;
+ goto yy813;
} else {
- if (yych <= '`') goto yy811;
- if (yych <= 'z') goto yy809;
- if (yych <= '~') goto yy811;
- goto yy809;
+ if (yych <= '`') goto yy815;
+ if (yych <= 'z') goto yy813;
+ if (yych <= '~') goto yy815;
+ goto yy813;
}
}
-yy805:
- YYDEBUG(805, *YYCURSOR);
+yy809:
+ YYDEBUG(809, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy817;
-yy806:
- YYDEBUG(806, *YYCURSOR);
+ goto yy821;
+yy810:
+ YYDEBUG(810, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1195 "Zend/zend_language_scanner.l"
{
@@ -7296,13 +7318,13 @@ yy806:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 7300 "Zend/zend_language_scanner.c"
-yy807:
- YYDEBUG(807, *YYCURSOR);
+#line 7322 "Zend/zend_language_scanner.c"
+yy811:
+ YYDEBUG(811, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy814;
-yy808:
- YYDEBUG(808, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '>') goto yy818;
+yy812:
+ YYDEBUG(812, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1211 "Zend/zend_language_scanner.l"
{
@@ -7310,14 +7332,14 @@ yy808:
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 7314 "Zend/zend_language_scanner.c"
-yy809:
- YYDEBUG(809, *YYCURSOR);
+#line 7336 "Zend/zend_language_scanner.c"
+yy813:
+ YYDEBUG(813, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy813;
-yy810:
- YYDEBUG(810, *YYCURSOR);
+ goto yy817;
+yy814:
+ YYDEBUG(814, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1205 "Zend/zend_language_scanner.l"
{
@@ -7325,43 +7347,43 @@ yy810:
zend_copy_value(zendlval, yytext, yyleng);
return T_STRING;
}
-#line 7329 "Zend/zend_language_scanner.c"
-yy811:
- YYDEBUG(811, *YYCURSOR);
+#line 7351 "Zend/zend_language_scanner.c"
+yy815:
+ YYDEBUG(815, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy808;
-yy812:
- YYDEBUG(812, *YYCURSOR);
+ goto yy812;
+yy816:
+ YYDEBUG(816, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy813:
- YYDEBUG(813, *YYCURSOR);
+yy817:
+ YYDEBUG(817, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy812;
+ goto yy816;
}
- goto yy810;
-yy814:
- YYDEBUG(814, *YYCURSOR);
+ goto yy814;
+yy818:
+ YYDEBUG(818, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(815, *YYCURSOR);
+ YYDEBUG(819, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1201 "Zend/zend_language_scanner.l"
{
return T_OBJECT_OPERATOR;
}
-#line 7354 "Zend/zend_language_scanner.c"
-yy816:
- YYDEBUG(816, *YYCURSOR);
+#line 7376 "Zend/zend_language_scanner.c"
+yy820:
+ YYDEBUG(820, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy817:
- YYDEBUG(817, *YYCURSOR);
+yy821:
+ YYDEBUG(821, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy816;
+ goto yy820;
}
- goto yy806;
+ goto yy810;
}
/* *********************************** */
yyc_ST_LOOKING_FOR_VARNAME:
@@ -7400,74 +7422,74 @@ yyc_ST_LOOKING_FOR_VARNAME:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(818, *YYCURSOR);
+ YYDEBUG(822, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy822;
- if (yych <= 'Z') goto yy820;
- if (yych <= '^') goto yy822;
+ if (yych <= '@') goto yy826;
+ if (yych <= 'Z') goto yy824;
+ if (yych <= '^') goto yy826;
} else {
- if (yych <= '`') goto yy822;
- if (yych <= 'z') goto yy820;
- if (yych <= '~') goto yy822;
+ if (yych <= '`') goto yy826;
+ if (yych <= 'z') goto yy824;
+ if (yych <= '~') goto yy826;
}
-yy820:
- YYDEBUG(820, *YYCURSOR);
+yy824:
+ YYDEBUG(824, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '_') {
if (yych <= '@') {
- if (yych <= '/') goto yy821;
- if (yych <= '9') goto yy824;
+ if (yych <= '/') goto yy825;
+ if (yych <= '9') goto yy828;
} else {
- if (yych <= '[') goto yy824;
- if (yych >= '_') goto yy824;
+ if (yych <= '[') goto yy828;
+ if (yych >= '_') goto yy828;
}
} else {
if (yych <= '|') {
- if (yych <= '`') goto yy821;
- if (yych <= 'z') goto yy824;
+ if (yych <= '`') goto yy825;
+ if (yych <= 'z') goto yy828;
} else {
- if (yych != '~') goto yy824;
+ if (yych != '~') goto yy828;
}
}
-yy821:
- YYDEBUG(821, *YYCURSOR);
+yy825:
+ YYDEBUG(825, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1500 "Zend/zend_language_scanner.l"
+#line 1508 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 7446 "Zend/zend_language_scanner.c"
-yy822:
- YYDEBUG(822, *YYCURSOR);
+#line 7468 "Zend/zend_language_scanner.c"
+yy826:
+ YYDEBUG(826, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy821;
-yy823:
- YYDEBUG(823, *YYCURSOR);
+ goto yy825;
+yy827:
+ YYDEBUG(827, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy824:
- YYDEBUG(824, *YYCURSOR);
+yy828:
+ YYDEBUG(828, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy823;
+ goto yy827;
}
- if (yych == '[') goto yy826;
- if (yych == '}') goto yy826;
- YYDEBUG(825, *YYCURSOR);
+ if (yych == '[') goto yy830;
+ if (yych == '}') goto yy830;
+ YYDEBUG(829, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy821;
-yy826:
- YYDEBUG(826, *YYCURSOR);
+ goto yy825;
+yy830:
+ YYDEBUG(830, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(827, *YYCURSOR);
+ YYDEBUG(831, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1491 "Zend/zend_language_scanner.l"
+#line 1499 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
zend_copy_value(zendlval, yytext, yyleng);
@@ -7475,18 +7497,18 @@ yy826:
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
-#line 7479 "Zend/zend_language_scanner.c"
+#line 7501 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_NOWDOC:
- YYDEBUG(828, *YYCURSOR);
+ YYDEBUG(832, *YYCURSOR);
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(830, *YYCURSOR);
+ YYDEBUG(834, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(831, *YYCURSOR);
+ YYDEBUG(835, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2331 "Zend/zend_language_scanner.l"
+#line 2339 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -7542,7 +7564,7 @@ nowdoc_scan_done:
HANDLE_NEWLINES(yytext, yyleng - newline);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7546 "Zend/zend_language_scanner.c"
+#line 7568 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
@@ -7580,76 +7602,76 @@ yyc_ST_VAR_OFFSET:
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
};
- YYDEBUG(832, *YYCURSOR);
+ YYDEBUG(836, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '/') {
if (yych <= ' ') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy846;
- if (yych <= '\n') goto yy842;
- goto yy846;
+ if (yych <= 0x08) goto yy850;
+ if (yych <= '\n') goto yy846;
+ goto yy850;
} else {
- if (yych <= '\r') goto yy842;
- if (yych <= 0x1F) goto yy846;
- goto yy842;
+ if (yych <= '\r') goto yy846;
+ if (yych <= 0x1F) goto yy850;
+ goto yy846;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy841;
- if (yych <= '#') goto yy842;
- goto yy837;
- } else {
- if (yych == '\'') goto yy842;
+ if (yych <= '"') goto yy845;
+ if (yych <= '#') goto yy846;
goto yy841;
+ } else {
+ if (yych == '\'') goto yy846;
+ goto yy845;
}
}
} else {
if (yych <= '\\') {
if (yych <= '@') {
- if (yych <= '0') goto yy834;
- if (yych <= '9') goto yy836;
- goto yy841;
+ if (yych <= '0') goto yy838;
+ if (yych <= '9') goto yy840;
+ goto yy845;
} else {
- if (yych <= 'Z') goto yy844;
- if (yych <= '[') goto yy841;
- goto yy842;
+ if (yych <= 'Z') goto yy848;
+ if (yych <= '[') goto yy845;
+ goto yy846;
}
} else {
if (yych <= '_') {
- if (yych <= ']') goto yy839;
- if (yych <= '^') goto yy841;
- goto yy844;
+ if (yych <= ']') goto yy843;
+ if (yych <= '^') goto yy845;
+ goto yy848;
} else {
- if (yych <= '`') goto yy841;
- if (yych <= 'z') goto yy844;
- if (yych <= '~') goto yy841;
- goto yy844;
+ if (yych <= '`') goto yy845;
+ if (yych <= 'z') goto yy848;
+ if (yych <= '~') goto yy845;
+ goto yy848;
}
}
}
-yy834:
- YYDEBUG(834, *YYCURSOR);
+yy838:
+ YYDEBUG(838, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'W') {
if (yych <= '9') {
- if (yych >= '0') goto yy858;
+ if (yych >= '0') goto yy862;
} else {
- if (yych == 'B') goto yy855;
+ if (yych == 'B') goto yy859;
}
} else {
if (yych <= 'b') {
- if (yych <= 'X') goto yy857;
- if (yych >= 'b') goto yy855;
+ if (yych <= 'X') goto yy861;
+ if (yych >= 'b') goto yy859;
} else {
- if (yych == 'x') goto yy857;
+ if (yych == 'x') goto yy861;
}
}
-yy835:
- YYDEBUG(835, *YYCURSOR);
+yy839:
+ YYDEBUG(839, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1571 "Zend/zend_language_scanner.l"
+#line 1579 "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)) {
ZVAL_LONG(zendlval, strtol(yytext, NULL, 10));
@@ -7658,80 +7680,80 @@ yy835:
}
return T_NUM_STRING;
}
-#line 7662 "Zend/zend_language_scanner.c"
-yy836:
- YYDEBUG(836, *YYCURSOR);
+#line 7684 "Zend/zend_language_scanner.c"
+yy840:
+ YYDEBUG(840, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy854;
-yy837:
- YYDEBUG(837, *YYCURSOR);
+ goto yy858;
+yy841:
+ YYDEBUG(841, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy838;
- if (yych <= 'Z') goto yy850;
- if (yych >= '_') goto yy850;
+ if (yych <= '@') goto yy842;
+ if (yych <= 'Z') goto yy854;
+ if (yych >= '_') goto yy854;
} else {
- if (yych <= '`') goto yy838;
- if (yych <= 'z') goto yy850;
- if (yych >= 0x7F) goto yy850;
+ if (yych <= '`') goto yy842;
+ if (yych <= 'z') goto yy854;
+ if (yych >= 0x7F) goto yy854;
}
-yy838:
- YYDEBUG(838, *YYCURSOR);
+yy842:
+ YYDEBUG(842, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1863 "Zend/zend_language_scanner.l"
+#line 1871 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 7687 "Zend/zend_language_scanner.c"
-yy839:
- YYDEBUG(839, *YYCURSOR);
+#line 7709 "Zend/zend_language_scanner.c"
+yy843:
+ YYDEBUG(843, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(840, *YYCURSOR);
+ YYDEBUG(844, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1858 "Zend/zend_language_scanner.l"
+#line 1866 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 7698 "Zend/zend_language_scanner.c"
-yy841:
- YYDEBUG(841, *YYCURSOR);
+#line 7720 "Zend/zend_language_scanner.c"
+yy845:
+ YYDEBUG(845, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy838;
-yy842:
- YYDEBUG(842, *YYCURSOR);
+ goto yy842;
+yy846:
+ YYDEBUG(846, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(843, *YYCURSOR);
+ YYDEBUG(847, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1868 "Zend/zend_language_scanner.l"
+#line 1876 "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 7715 "Zend/zend_language_scanner.c"
-yy844:
- YYDEBUG(844, *YYCURSOR);
+#line 7737 "Zend/zend_language_scanner.c"
+yy848:
+ YYDEBUG(848, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy849;
-yy845:
- YYDEBUG(845, *YYCURSOR);
+ goto yy853;
+yy849:
+ YYDEBUG(849, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1875 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
return T_STRING;
}
-#line 7729 "Zend/zend_language_scanner.c"
-yy846:
- YYDEBUG(846, *YYCURSOR);
+#line 7751 "Zend/zend_language_scanner.c"
+yy850:
+ YYDEBUG(850, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(847, *YYCURSOR);
+ YYDEBUG(851, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2388 "Zend/zend_language_scanner.l"
+#line 2396 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -7740,115 +7762,115 @@ yy846:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 7744 "Zend/zend_language_scanner.c"
-yy848:
- YYDEBUG(848, *YYCURSOR);
+#line 7766 "Zend/zend_language_scanner.c"
+yy852:
+ YYDEBUG(852, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy849:
- YYDEBUG(849, *YYCURSOR);
+yy853:
+ YYDEBUG(853, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy848;
+ goto yy852;
}
- goto yy845;
-yy850:
- YYDEBUG(850, *YYCURSOR);
+ goto yy849;
+yy854:
+ YYDEBUG(854, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(851, *YYCURSOR);
+ YYDEBUG(855, *YYCURSOR);
if (yych <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy850;
+ if (yych >= '0') goto yy854;
} else {
- if (yych <= '@') goto yy852;
- if (yych <= 'Z') goto yy850;
+ if (yych <= '@') goto yy856;
+ if (yych <= 'Z') goto yy854;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy850;
+ if (yych <= '_') goto yy854;
} else {
- if (yych <= 'z') goto yy850;
- if (yych >= 0x7F) goto yy850;
+ if (yych <= 'z') goto yy854;
+ if (yych >= 0x7F) goto yy854;
}
}
-yy852:
- YYDEBUG(852, *YYCURSOR);
+yy856:
+ YYDEBUG(856, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1861 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
return T_VARIABLE;
}
-#line 7785 "Zend/zend_language_scanner.c"
-yy853:
- YYDEBUG(853, *YYCURSOR);
+#line 7807 "Zend/zend_language_scanner.c"
+yy857:
+ YYDEBUG(857, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy854:
- YYDEBUG(854, *YYCURSOR);
+yy858:
+ YYDEBUG(858, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy853;
+ goto yy857;
}
- goto yy835;
-yy855:
- YYDEBUG(855, *YYCURSOR);
+ goto yy839;
+yy859:
+ YYDEBUG(859, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy863;
+ goto yy867;
}
-yy856:
- YYDEBUG(856, *YYCURSOR);
+yy860:
+ YYDEBUG(860, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy835;
-yy857:
- YYDEBUG(857, *YYCURSOR);
+ goto yy839;
+yy861:
+ YYDEBUG(861, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 64) {
- goto yy861;
+ goto yy865;
}
- goto yy856;
-yy858:
- YYDEBUG(858, *YYCURSOR);
+ goto yy860;
+yy862:
+ YYDEBUG(862, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(859, *YYCURSOR);
- if (yych <= '/') goto yy860;
- if (yych <= '9') goto yy858;
-yy860:
- YYDEBUG(860, *YYCURSOR);
+ YYDEBUG(863, *YYCURSOR);
+ if (yych <= '/') goto yy864;
+ if (yych <= '9') goto yy862;
+yy864:
+ YYDEBUG(864, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1580 "Zend/zend_language_scanner.l"
+#line 1588 "Zend/zend_language_scanner.l"
{ /* Offset must be treated as a string */
ZVAL_STRINGL(zendlval, yytext, yyleng);
return T_NUM_STRING;
}
-#line 7830 "Zend/zend_language_scanner.c"
-yy861:
- YYDEBUG(861, *YYCURSOR);
+#line 7852 "Zend/zend_language_scanner.c"
+yy865:
+ YYDEBUG(865, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(862, *YYCURSOR);
+ YYDEBUG(866, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy861;
+ goto yy865;
}
- goto yy860;
-yy863:
- YYDEBUG(863, *YYCURSOR);
+ goto yy864;
+yy867:
+ YYDEBUG(867, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(864, *YYCURSOR);
+ YYDEBUG(868, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy863;
+ goto yy867;
}
- goto yy860;
+ goto yy864;
}
}
-#line 2397 "Zend/zend_language_scanner.l"
+#line 2405 "Zend/zend_language_scanner.l"
}
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 02401df2a9..2204adf064 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -1402,6 +1402,14 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_MUL_EQUAL;
}
+<ST_IN_SCRIPTING>"*\*" {
+ return T_POW;
+}
+
+<ST_IN_SCRIPTING>"*\*=" {
+ return T_POW_EQUAL;
+}
+
<ST_IN_SCRIPTING>"/=" {
return T_DIV_EQUAL;
}
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index 9ec102fb15..a41452dae8 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -137,8 +137,39 @@ ZEND_API HashTable *zend_std_get_gc(zval *object, zval **table, int *n TSRMLS_DC
ZEND_API HashTable *zend_std_get_debug_info(zval *object, int *is_temp TSRMLS_DC) /* {{{ */
{
- *is_temp = 0;
- return zend_std_get_properties(object TSRMLS_CC);
+ zend_class_entry *ce = Z_OBJCE_P(object);
+ zval retval;
+ HashTable *ht;
+
+ if (!ce->__debugInfo) {
+ *is_temp = 0;
+ return Z_OBJ_HANDLER_P(object, get_properties)
+ ? Z_OBJ_HANDLER_P(object, get_properties)(object TSRMLS_CC)
+ : NULL;
+ }
+
+ zend_call_method_with_0_params(object, ce, &ce->__debugInfo, ZEND_DEBUGINFO_FUNC_NAME, &retval);
+ if (Z_TYPE(retval) == IS_ARRAY) {
+ if (Z_REFCOUNT(retval) <= 1) {
+ *is_temp = 1;
+ ALLOC_HASHTABLE(ht);
+ *ht = *Z_ARRVAL(retval);
+ efree(Z_ARR(retval));
+ return ht;
+ } else {
+ *is_temp = 0;
+ zval_ptr_dtor(&retval);
+ }
+ } else if (Z_TYPE(retval) == IS_NULL) {
+ *is_temp = 1;
+ ALLOC_HASHTABLE(ht);
+ zend_hash_init(ht, 0, NULL, ZVAL_PTR_DTOR, 0);
+ return ht;
+ }
+
+ zend_error_noreturn(E_ERROR, ZEND_DEBUGINFO_FUNC_NAME "() must return an array");
+
+ return NULL; /* Compilers are dumb and don't understand that noreturn means that the function does NOT need a return value... */
}
/* }}} */
@@ -1623,7 +1654,7 @@ ZEND_API zend_object_handlers std_object_handlers = {
zend_std_compare_objects, /* compare_objects */
zend_std_cast_object_tostring, /* cast_object */
NULL, /* count_elements */
- NULL, /* get_debug_info */
+ zend_std_get_debug_info, /* get_debug_info */
zend_std_get_closure, /* get_closure */
zend_std_get_gc, /* get_gc */
NULL, /* do_operation */
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 1987d819b8..e38a32a851 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -749,6 +749,9 @@ ZEND_API binary_op_type get_binary_op(int opcode)
case ZEND_ASSIGN_MUL:
return (binary_op_type) mul_function;
break;
+ case ZEND_POW:
+ return (binary_op_type) pow_function;
+ break;
case ZEND_DIV:
case ZEND_ASSIGN_DIV:
return (binary_op_type) div_function;
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 397f8f60d7..764396aa03 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1126,6 +1126,89 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
}
/* }}} */
+ZEND_API int pow_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
+{
+ zval op1_copy, op2_copy;
+ int converted = 0;
+
+ while (1) {
+ switch (TYPE_PAIR(Z_TYPE_P(op1), Z_TYPE_P(op2))) {
+ case TYPE_PAIR(IS_LONG, IS_LONG):
+ if (Z_LVAL_P(op2) >= 0) {
+ long l1 = 1, l2 = Z_LVAL_P(op1), i = Z_LVAL_P(op2);
+
+ if (i == 0) {
+ ZVAL_LONG(result, 1L);
+ return SUCCESS;
+ } else if (l2 == 0) {
+ ZVAL_LONG(result, 0);
+ return SUCCESS;
+ }
+
+ while (i >= 1) {
+ long overflow;
+ double dval = 0.0;
+
+ if (i % 2) {
+ --i;
+ ZEND_SIGNED_MULTIPLY_LONG(l1, l2, l1, dval, overflow);
+ if (overflow) {
+ ZVAL_DOUBLE(result, dval * pow(l2, i));
+ return SUCCESS;
+ }
+ } else {
+ i /= 2;
+ ZEND_SIGNED_MULTIPLY_LONG(l2, l2, l2, dval, overflow);
+ if (overflow) {
+ ZVAL_DOUBLE(result, (double)l1 * pow(dval, i));
+ return SUCCESS;
+ }
+ }
+ }
+ /* i == 0 */
+ ZVAL_LONG(result, l1);
+ } else {
+ ZVAL_DOUBLE(result, pow((double)Z_LVAL_P(op1), (double)Z_LVAL_P(op2)));
+ }
+ return SUCCESS;
+
+ case TYPE_PAIR(IS_LONG, IS_DOUBLE):
+ ZVAL_DOUBLE(result, pow((double)Z_LVAL_P(op1), Z_DVAL_P(op2)));
+ return SUCCESS;
+
+ case TYPE_PAIR(IS_DOUBLE, IS_LONG):
+ ZVAL_DOUBLE(result, pow(Z_DVAL_P(op1), (double)Z_LVAL_P(op2)));
+ return SUCCESS;
+
+ case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE):
+ ZVAL_DOUBLE(result, pow(Z_DVAL_P(op1), Z_DVAL_P(op2)));
+ return SUCCESS;
+
+ default:
+ if (!converted) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_POW);
+
+ if (Z_TYPE_P(op1) == IS_ARRAY) {
+ ZVAL_LONG(result, 0);
+ return SUCCESS;
+ } else {
+ zendi_convert_scalar_to_number(op1, op1_copy, result);
+ }
+ if (Z_TYPE_P(op2) == IS_ARRAY) {
+ ZVAL_LONG(result, 1L);
+ return SUCCESS;
+ } else {
+ zendi_convert_scalar_to_number(op2, op2_copy, result);
+ }
+ converted = 1;
+ } else {
+ zend_error(E_ERROR, "Unsupported operand types");
+ return FAILURE;
+ }
+ }
+ }
+}
+
ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ */
{
zval op1_copy, op2_copy;
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h
index f026ae1dbc..a727df6707 100644
--- a/Zend/zend_operators.h
+++ b/Zend/zend_operators.h
@@ -47,6 +47,7 @@ BEGIN_EXTERN_C()
ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
+ZEND_API int pow_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int mod_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int boolean_xor_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 2d4771c004..812a2acaf9 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1194,7 +1194,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, UNUSED|CONST|
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
FREE_OP1();
}
@@ -2992,9 +2992,8 @@ ZEND_VM_HANDLER(65, ZEND_SEND_VAL, CONST|TMP, ANY)
SAVE_OPLINE();
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
- int arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
- zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", arg_num);
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
+ zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", opline->op2.num);
}
}
@@ -3032,7 +3031,6 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
USE_OPLINE
zend_free_op free_op1;
zval *varptr, *top;
- int arg_num;
SAVE_OPLINE();
if (opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
@@ -3040,8 +3038,7 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
}
} else {
- arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
}
}
@@ -3064,7 +3061,7 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
} else {
if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
!(opline->extended_value & ZEND_ARG_SEND_SILENT) :
- !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
top = zend_vm_stack_top_inc(TSRMLS_C);
@@ -3119,8 +3116,7 @@ ZEND_VM_HANDLER(66, ZEND_SEND_VAR, VAR|CV, ANY)
zend_free_op free_op1;
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
- int arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_REF);
}
}
@@ -3607,8 +3603,6 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, &c->value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
} else {
/* class constant */
zend_class_entry *ce;
@@ -3618,8 +3612,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
value = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
} else if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv))) {
ce = CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv));
} else {
@@ -3636,8 +3629,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
ce = Z_CE_P(EX_VAR(opline->op1.var));
if ((value = CACHED_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(opline->op2.zv), ce)) != NULL) {
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
}
}
@@ -3649,7 +3641,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
- zval_update_constant(value, (void *) 1 TSRMLS_CC);
+ zval_update_constant(value, 1 TSRMLS_CC);
EG(scope) = old_scope;
}
if (OP1_TYPE == IS_CONST) {
@@ -3665,10 +3657,10 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
} else {
zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(opline->op2.zv));
}
-
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
}
+constant_fetch_end:
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
}
ZEND_VM_HANDLER(72, ZEND_ADD_ARRAY_ELEMENT, CONST|TMP|VAR|CV, CONST|TMP|VAR|UNUSED|CV)
@@ -5264,7 +5256,7 @@ ZEND_VM_HANDLER(143, ZEND_DECLARE_CONST, CONST, CONST)
if (Z_TYPE_P(val) == IS_CONSTANT_ARRAY) {
zval_opt_copy_ctor(&c.value);
}
- zval_update_constant(&c.value, NULL TSRMLS_CC);
+ zval_update_constant(&c.value, 0 TSRMLS_CC);
} else {
/* IS_CONST can't be IS_OBJECT, IS_RESOURCE or IS_REFERENCE */
if (UNEXPECTED(Z_OPT_COPYABLE(c.value))) {
@@ -5505,4 +5497,24 @@ ZEND_VM_HANDLER(163, ZEND_FAST_RET, ANY, ANY)
}
}
+ZEND_VM_HANDLER(166, ZEND_POW, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R),
+ GET_OP2_ZVAL_PTR_DEREF(BP_VAR_R) TSRMLS_CC);
+ FREE_OP1();
+ FREE_OP2();
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+ZEND_VM_HANDLER(167, ZEND_ASSIGN_POW, VAR|UNUSED|CV, CONST|TMP|VAR|UNUSED|CV)
+{
+ ZEND_VM_DISPATCH_TO_HELPER_EX(zend_binary_assign_op_helper, binary_op,pow_function);
+}
+
ZEND_VM_EXPORT_HELPER(zend_do_fcall, zend_do_fcall_common_helper)
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 1ec6d97343..f09990fb49 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2687,9 +2687,8 @@ static int ZEND_FASTCALL ZEND_SEND_VAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
SAVE_OPLINE();
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
- int arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
- zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", arg_num);
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
+ zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", opline->op2.num);
}
}
@@ -3622,7 +3621,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_CONST(int type
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
}
@@ -3881,8 +3880,6 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, &c->value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
} else {
/* class constant */
zend_class_entry *ce;
@@ -3892,8 +3889,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
value = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
} else if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv))) {
ce = CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv));
} else {
@@ -3910,8 +3906,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
ce = Z_CE_P(EX_VAR(opline->op1.var));
if ((value = CACHED_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(opline->op2.zv), ce)) != NULL) {
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
}
}
@@ -3923,7 +3918,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
- zval_update_constant(value, (void *) 1 TSRMLS_CC);
+ zval_update_constant(value, 1 TSRMLS_CC);
EG(scope) = old_scope;
}
if (IS_CONST == IS_CONST) {
@@ -3939,10 +3934,10 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO
} else {
zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(opline->op2.zv));
}
-
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
}
+constant_fetch_end:
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4223,7 +4218,7 @@ static int ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCOD
if (Z_TYPE_P(val) == IS_CONSTANT_ARRAY) {
zval_opt_copy_ctor(&c.value);
}
- zval_update_constant(&c.value, NULL TSRMLS_CC);
+ zval_update_constant(&c.value, 0 TSRMLS_CC);
} else {
/* IS_CONST can't be IS_OBJECT, IS_RESOURCE or IS_REFERENCE */
if (UNEXPECTED(Z_OPT_COPYABLE(c.value))) {
@@ -4372,6 +4367,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLE
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ opline->op1.zv,
+ opline->op2.zv TSRMLS_CC);
+
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -5035,6 +5045,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ opline->op1.zv,
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+
+ zval_dtor(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -5398,7 +5423,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_VAR(int type,
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
}
@@ -5995,6 +6020,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ opline->op1.zv,
+ _get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+
+ zval_ptr_dtor_nogc(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int type, ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -6082,7 +6122,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int typ
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
}
@@ -7379,6 +7419,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_A
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ opline->op1.zv,
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
+
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -7722,9 +7777,8 @@ static int ZEND_FASTCALL ZEND_SEND_VAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
SAVE_OPLINE();
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
- int arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
- zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", arg_num);
+ if (ARG_MUST_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
+ zend_error_noreturn(E_ERROR, "Cannot pass parameter %d by reference", opline->op2.num);
}
}
@@ -8708,7 +8762,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_CONST(int type,
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
zval_dtor(free_op1.var);
}
@@ -9319,6 +9373,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ opline->op2.zv TSRMLS_CC);
+ zval_dtor(free_op1.var);
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -9982,6 +10051,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+ zval_dtor(free_op1.var);
+ zval_dtor(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -10345,7 +10429,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_VAR(int type, ZE
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
zval_dtor(free_op1.var);
}
@@ -10942,6 +11026,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+ zval_dtor(free_op1.var);
+ zval_ptr_dtor_nogc(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type, ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -11029,7 +11128,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type,
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
zval_dtor(free_op1.var);
}
@@ -12139,6 +12238,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
+ zval_dtor(free_op1.var);
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -12724,7 +12838,6 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
USE_OPLINE
zend_free_op free_op1;
zval *varptr, *top;
- int arg_num;
SAVE_OPLINE();
if (opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
@@ -12732,8 +12845,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
} else {
- arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
}
@@ -12756,7 +12868,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
} else {
if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
!(opline->extended_value & ZEND_ARG_SEND_SILENT) :
- !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
top = zend_vm_stack_top_inc(TSRMLS_C);
@@ -12811,8 +12923,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
zend_free_op free_op1;
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
- int arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
return ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
}
@@ -14454,7 +14565,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
zval_ptr_dtor_nogc(free_op1.var);
}
@@ -15174,8 +15285,6 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, &c->value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
} else {
/* class constant */
zend_class_entry *ce;
@@ -15185,8 +15294,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
value = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
} else if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv))) {
ce = CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv));
} else {
@@ -15203,8 +15311,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
ce = Z_CE_P(EX_VAR(opline->op1.var));
if ((value = CACHED_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(opline->op2.zv), ce)) != NULL) {
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
}
}
@@ -15216,7 +15323,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
- zval_update_constant(value, (void *) 1 TSRMLS_CC);
+ zval_update_constant(value, 1 TSRMLS_CC);
EG(scope) = old_scope;
}
if (IS_VAR == IS_CONST) {
@@ -15232,10 +15339,10 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE
} else {
zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(opline->op2.zv));
}
-
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
}
+constant_fetch_end:
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15885,6 +15992,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ opline->op2.zv TSRMLS_CC);
+ zval_ptr_dtor_nogc(free_op1.var);
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_VAR_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -17825,6 +17952,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+ zval_ptr_dtor_nogc(free_op1.var);
+ zval_dtor(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_VAR_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -18720,7 +18867,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
zval_ptr_dtor_nogc(free_op1.var);
}
@@ -20126,6 +20273,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1, free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+ zval_ptr_dtor_nogc(free_op1.var);
+ zval_ptr_dtor_nogc(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_VAR_VAR(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -20564,7 +20731,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
zval_ptr_dtor_nogc(free_op1.var);
}
@@ -21290,6 +21457,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_VAR_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -23282,6 +23454,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op1;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
+ zval_ptr_dtor_nogc(free_op1.var);
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_VAR_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -24222,8 +24414,6 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, &c->value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
} else {
/* class constant */
zend_class_entry *ce;
@@ -24233,8 +24423,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
value = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
} else if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv))) {
ce = CACHED_PTR(Z_CACHE_SLOT_P(opline->op1.zv));
} else {
@@ -24251,8 +24440,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
ce = Z_CE_P(EX_VAR(opline->op1.var));
if ((value = CACHED_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(opline->op2.zv), ce)) != NULL) {
ZVAL_DUP(EX_VAR(opline->result.var), value);
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
+ goto constant_fetch_end;
}
}
@@ -24264,7 +24452,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
zend_class_entry *old_scope = EG(scope);
EG(scope) = ce;
- zval_update_constant(value, (void *) 1 TSRMLS_CC);
+ zval_update_constant(value, 1 TSRMLS_CC);
EG(scope) = old_scope;
}
if (IS_UNUSED == IS_CONST) {
@@ -24280,10 +24468,10 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC
} else {
zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(opline->op2.zv));
}
-
- CHECK_EXCEPTION();
- ZEND_VM_NEXT_OPCODE();
}
+constant_fetch_end:
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -24702,6 +24890,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDL
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_UNUSED_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -25960,6 +26153,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_UNUSED_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -27218,6 +27416,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_UNUSED_VAR(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -27729,6 +27932,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HAND
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -28978,6 +29186,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_UNUSED_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -29543,7 +29756,6 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
USE_OPLINE
zval *varptr, *top;
- int arg_num;
SAVE_OPLINE();
if (opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) { /* Had function_ptr at compile_time */
@@ -29551,8 +29763,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
} else {
- arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
}
@@ -29575,7 +29786,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
} else {
if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
!(opline->extended_value & ZEND_ARG_SEND_SILENT) :
- !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ !ARG_MAY_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
top = zend_vm_stack_top_inc(TSRMLS_C);
@@ -29629,8 +29840,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME) {
- int arg_num = opline->op2.num + EX(call)->num_additional_args;
- if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, arg_num)) {
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->fbc, opline->op2.num)) {
return ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
}
@@ -31118,7 +31328,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_CONST(int type, Z
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
}
@@ -32337,6 +32547,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ opline->op2.zv TSRMLS_CC);
+
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_CV_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -34160,6 +34390,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+
+ zval_dtor(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_CV_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -35054,7 +35304,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_VAR(int type, ZEN
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
}
@@ -36343,6 +36593,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+ zend_free_op free_op2;
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ _get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
+
+ zval_ptr_dtor_nogc(free_op2.var);
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_CV_VAR(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -36780,7 +37050,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_UNUSED(int type,
}
}
if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) == ZEND_FETCH_STATIC) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ zval_update_constant(retval, 1 TSRMLS_CC);
} else if ((opline->extended_value & ZEND_FETCH_TYPE_MASK) != ZEND_FETCH_GLOBAL_LOCK) {
}
@@ -37373,6 +37643,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_CV_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -39247,6 +39522,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
ZEND_VM_RETURN();
}
+static int ZEND_FASTCALL ZEND_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+
+ SAVE_OPLINE();
+ pow_function(EX_VAR(opline->result.var),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
+ _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
+
+
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
+static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ return zend_binary_assign_op_helper_SPEC_CV_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+}
+
static int ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);
@@ -43407,6 +43702,56 @@ void zend_init_opcodes_handlers(void)
ZEND_SEND_UNPACK_SPEC_HANDLER,
ZEND_SEND_UNPACK_SPEC_HANDLER,
ZEND_SEND_UNPACK_SPEC_HANDLER,
+ ZEND_POW_SPEC_CONST_CONST_HANDLER,
+ ZEND_POW_SPEC_CONST_TMP_HANDLER,
+ ZEND_POW_SPEC_CONST_VAR_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_POW_SPEC_CONST_CV_HANDLER,
+ ZEND_POW_SPEC_TMP_CONST_HANDLER,
+ ZEND_POW_SPEC_TMP_TMP_HANDLER,
+ ZEND_POW_SPEC_TMP_VAR_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_POW_SPEC_TMP_CV_HANDLER,
+ ZEND_POW_SPEC_VAR_CONST_HANDLER,
+ ZEND_POW_SPEC_VAR_TMP_HANDLER,
+ ZEND_POW_SPEC_VAR_VAR_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_POW_SPEC_VAR_CV_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_POW_SPEC_CV_CONST_HANDLER,
+ ZEND_POW_SPEC_CV_TMP_HANDLER,
+ ZEND_POW_SPEC_CV_VAR_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_POW_SPEC_CV_CV_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_NULL_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_VAR_CONST_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_VAR_TMP_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_VAR_VAR_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_VAR_UNUSED_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_VAR_CV_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_UNUSED_CONST_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_UNUSED_TMP_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_UNUSED_VAR_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_UNUSED_UNUSED_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_UNUSED_CV_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_CV_CONST_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_CV_TMP_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_CV_VAR_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_CV_UNUSED_HANDLER,
+ ZEND_ASSIGN_POW_SPEC_CV_CV_HANDLER,
ZEND_NULL_HANDLER
};
zend_opcode_handlers = (opcode_handler_t*)labels;
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 03d660e2f9..bdc6cc79b8 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -1313,7 +1313,7 @@ function gen_vm($def, $skel) {
out($f, "# pragma warning(once : 6285)\n");
// Suppress (<non-zero constant> || <expression>) warnings on windows
out($f, "# pragma warning(once : 6286)\n");
- // Suppress constant with constant comparsion warnings on windows
+ // Suppress constant with constant comparison warnings on windows
out($f, "# pragma warning(once : 6326)\n");
}
out($f, "#endif\n");
diff --git a/Zend/zend_vm_opcodes.c b/Zend/zend_vm_opcodes.c
index d6f51cce5c..23edabc47f 100644
--- a/Zend/zend_vm_opcodes.c
+++ b/Zend/zend_vm_opcodes.c
@@ -21,7 +21,7 @@
#include <stdio.h>
#include <zend.h>
-const char *zend_vm_opcodes_map[166] = {
+const char *zend_vm_opcodes_map[168] = {
"ZEND_NOP",
"ZEND_ADD",
"ZEND_SUB",
@@ -188,6 +188,8 @@ const char *zend_vm_opcodes_map[166] = {
"ZEND_FAST_RET",
"ZEND_RECV_VARIADIC",
"ZEND_SEND_UNPACK",
+ "ZEND_POW",
+ "ZEND_ASSIGN_POW",
};
ZEND_API const char* zend_get_opcode_name(zend_uchar opcode) {
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index 0f75196ffb..f9c30ca126 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -171,5 +171,7 @@ ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);
#define ZEND_FAST_RET 163
#define ZEND_RECV_VARIADIC 164
#define ZEND_SEND_UNPACK 165
+#define ZEND_POW 166
+#define ZEND_ASSIGN_POW 167
#endif