diff options
author | Marcus Boerger <helly@php.net> | 2008-11-04 15:58:55 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2008-11-04 15:58:55 +0000 |
commit | 7126de4912d9d4c7499deb1f9239980400aa7ec7 (patch) | |
tree | dc1bbf251d26825d2f65f599a6139044effdbc48 | |
parent | 6ca3ad3f41fd44b6f00adb9692d5503a33ecd290 (diff) | |
download | php-git-7126de4912d9d4c7499deb1f9239980400aa7ec7.tar.gz |
- Next step in namespaces, using / as namespace separator.
122 files changed, 3738 insertions, 3570 deletions
@@ -157,7 +157,7 @@ PHP NEWS . Improved syntax highlighting and consistency for variables in double-quoted strings and literal text in HEREDOCs and backticks. (Matt) . Added "?:" operator. (Marcus) - . Added support for namespaces. (Dmitry, Stas, Gregory) + . Added support for namespaces. (Dmitry, Stas, Gregory, Marcus) . Added support for Late Static Binding. (Dmitry, Etienne Kneuss) . Added support for __callStatic() magic method. (Sara) . Added forward_static_call(_array) to complete LSB. (Mike Lively) diff --git a/Zend/tests/bug42802.phpt b/Zend/tests/bug42802.phpt index 80ae02ba5e..31d9d34ae3 100755 --- a/Zend/tests/bug42802.phpt +++ b/Zend/tests/bug42802.phpt @@ -11,19 +11,19 @@ function test1(bar $bar) { echo "ok\n"; } -function test2(foo::bar $bar) { +function test2(\foo\bar $bar) { echo "ok\n"; } -function test3(::foo::bar $bar) { +function test3(\foo\bar $bar) { echo "ok\n"; } -function test4(::Exception $e) { +function test4(\Exception $e) { echo "ok\n"; } function test5(Exception $e) { echo "ok\n"; } -function test6(::bar $bar) { +function test6(\bar $bar) { echo "bug\n"; } @@ -42,4 +42,4 @@ ok ok ok -Catchable fatal error: Argument 1 passed to foo::test6() must be an instance of bar, instance of foo::bar given, called in %sbug42802.php on line 23 +Catchable fatal error: Argument 1 passed to foo\test6() must be an instance of bar, instance of foo\bar given, called in %sbug42802.php on line 23 diff --git a/Zend/tests/bug42819.phpt b/Zend/tests/bug42819.phpt index 565a019fac..d0e0dcc887 100755 --- a/Zend/tests/bug42819.phpt +++ b/Zend/tests/bug42819.phpt @@ -4,88 +4,100 @@ Bug #42819 (namespaces in indexes of constant arrays) <?php if (!extension_loaded("spl")) print "skip"; ?> --FILE-- <?php +namespace foo\foo; + +const C = "foo\\foo\\C\n"; +const I = 12; + +class foo { +const I = 32; +const C = "foo\\foo\\foo::C\n"; +} + namespace foo; -const C = "foo::C\n"; +const C = "foo\\C\n"; const I = 11; class foo { - const C = "foo::foo::C\n"; + const C = "foo\\foo::C\n"; const I = 22; const C1 = C; - const C2 = foo::C; - const C3 = foo::foo::C; - const C4 = ::foo::C; - const C5 = ::foo::foo::C; + const C2 = foo\C; + const C3 = foo\foo::C; + const C4 = \foo\C; + const C5 = \foo\foo::C; const C6 = ArrayObject::STD_PROP_LIST; const C7 = E_ERROR; } class bar1 { static $a1 = array(I => 0); - static $a2 = array(foo::I => 0); - static $a3 = array(foo::foo::I => 0); - static $a4 = array(::foo::I => 0); - static $a5 = array(::foo::foo::I => 0); + static $a2 = array(foo\I => 0); + static $a3 = array(foo\foo::I => 0); + static $a4 = array(\foo\I => 0); + static $a5 = array(\foo\foo::I => 0); static $a6 = array(ArrayObject::STD_PROP_LIST => 0); static $a7 = array(E_ERROR => 0); } class bar2 { static $a1 = array(I => I); - static $a2 = array(foo::I => I); - static $a3 = array(foo::foo::I => I); - static $a4 = array(::foo::I => I); - static $a5 = array(::foo::foo::I => I); + static $a2 = array(foo\I => I); + static $a3 = array(foo\foo::I => I); + static $a4 = array(\foo\I => I); + static $a5 = array(\foo\foo::I => I); static $a6 = array(ArrayObject::STD_PROP_LIST => I); static $a7 = array(E_ERROR => I); } class bar3 { - static $a1 = array(I => foo::I); - static $a2 = array(foo::I => foo::I); - static $a3 = array(foo::foo::I => foo::I); - static $a4 = array(::foo::I => foo::I); - static $a5 = array(::foo::foo::I => foo::I); - static $a6 = array(ArrayObject::STD_PROP_LIST => foo::I); - static $a7 = array(E_ERROR => foo::I); + static $a1 = array(I => foo\I); + static $a2 = array(foo\I => foo\I); + static $a3 = array(foo\foo::I => foo\I); + static $a4 = array(\foo\I => foo\I); + static $a5 = array(\foo\foo::I => foo\I); + static $a6 = array(ArrayObject::STD_PROP_LIST => foo\I); + static $a7 = array(E_ERROR => foo\I); } class bar4 { static $a1 = array(I => ArrayObject::STD_PROP_LIST); - static $a2 = array(foo::I => ArrayObject::STD_PROP_LIST); - static $a3 = array(foo::foo::I => ArrayObject::STD_PROP_LIST); - static $a4 = array(::foo::I => ArrayObject::STD_PROP_LIST); - static $a5 = array(::foo::foo::I => ArrayObject::STD_PROP_LIST); + static $a2 = array(foo\I => ArrayObject::STD_PROP_LIST); + static $a3 = array(foo\foo::I => ArrayObject::STD_PROP_LIST); + static $a4 = array(\foo\I => ArrayObject::STD_PROP_LIST); + static $a5 = array(\foo\foo::I => ArrayObject::STD_PROP_LIST); static $a6 = array(ArrayObject::STD_PROP_LIST => ArrayObject::STD_PROP_LIST); static $a7 = array(E_ERROR => ArrayObject::STD_PROP_LIST); } class bar5 { static $a1 = array(I => E_ERROR); - static $a2 = array(foo::I => E_ERROR); - static $a3 = array(foo::foo::I => E_ERROR); - static $a4 = array(::foo::I => E_ERROR); - static $a5 = array(::foo::foo::I => E_ERROR); + static $a2 = array(foo\I => E_ERROR); + static $a3 = array(foo\foo::I => E_ERROR); + static $a4 = array(\foo\I => E_ERROR); + static $a5 = array(\foo\foo::I => E_ERROR); static $a6 = array(ArrayObject::STD_PROP_LIST => E_ERROR); static $a7 = array(E_ERROR => E_ERROR); } +echo "first\n"; echo C; +echo foo\C; +echo foo\foo::C; echo foo::C; -echo foo::foo::C; -echo ::foo::C; -echo ::foo::foo::C; +echo \foo\foo::C; echo ArrayObject::STD_PROP_LIST . "\n"; echo E_ERROR . "\n"; -echo foo::foo::C1; -echo foo::foo::C2; -echo foo::foo::C3; -echo foo::foo::C4; -echo foo::foo::C5; -echo foo::foo::C6 . "\n"; -echo foo::foo::C7 . "\n"; +echo "second\n"; +echo \foo\foo::C1; +echo \foo\foo::C2; +echo \foo\foo::C3; +echo \foo\foo::C4; +echo \foo\foo::C5; +echo \foo\foo::C6 . "\n"; +echo \foo\foo::C7 . "\n"; print_r(bar1::$a1); print_r(bar1::$a2); @@ -126,20 +138,24 @@ print_r(bar5::$a4); print_r(bar5::$a5); print_r(bar5::$a6); print_r(bar5::$a7); +function oops($a = array(foo\unknown)){} +oops(); ?> ---EXPECT-- -foo::C -foo::C -foo::foo::C -foo::C -foo::foo::C +--EXPECTF-- +first +foo\C +foo\foo\C +foo\foo\foo::C +foo\foo::C +foo\foo::C 1 1 -foo::C -foo::C -foo::foo::C -foo::C -foo::foo::C +second +foo\C +foo\foo\C +foo\foo\foo::C +foo\C +foo\foo::C 1 1 Array @@ -148,11 +164,11 @@ Array ) Array ( - [11] => 0 + [12] => 0 ) Array ( - [22] => 0 + [32] => 0 ) Array ( @@ -176,11 +192,11 @@ Array ) Array ( - [11] => 11 + [12] => 11 ) Array ( - [22] => 11 + [32] => 11 ) Array ( @@ -200,31 +216,31 @@ Array ) Array ( - [11] => 11 + [11] => 12 ) Array ( - [11] => 11 + [12] => 12 ) Array ( - [22] => 11 + [32] => 12 ) Array ( - [11] => 11 + [11] => 12 ) Array ( - [22] => 11 + [22] => 12 ) Array ( - [1] => 11 + [1] => 12 ) Array ( - [1] => 11 + [1] => 12 ) Array ( @@ -232,11 +248,11 @@ Array ) Array ( - [11] => 1 + [12] => 1 ) Array ( - [22] => 1 + [32] => 1 ) Array ( @@ -260,11 +276,11 @@ Array ) Array ( - [11] => 1 + [12] => 1 ) Array ( - [22] => 1 + [32] => 1 ) Array ( @@ -282,3 +298,5 @@ Array ( [1] => 1 ) + +Fatal error: Undefined constant 'foo\foo\unknown' in %sbug42819.php on line %d
\ No newline at end of file diff --git a/Zend/tests/bug42820.phpt b/Zend/tests/bug42820.phpt index 0a6c7d7876..921f0090a9 100755 --- a/Zend/tests/bug42820.phpt +++ b/Zend/tests/bug42820.phpt @@ -7,16 +7,16 @@ const ok = 0; class foo { const ok = 0; } -var_dump(defined('ns::ok')); -var_dump(defined('ns::bug')); -var_dump(defined('::ns::ok')); -var_dump(defined('::ns::bug')); -var_dump(defined('ns::foo::ok')); -var_dump(defined('ns::foo::bug')); -var_dump(defined('::ns::foo::ok')); -var_dump(defined('::ns::foo::bug')); -var_dump(defined('ns::bar::bug')); -var_dump(defined('::ns::bar::bug')); +var_dump(defined('ns\\ok')); +var_dump(defined('ns\\bug')); +var_dump(defined('\\ns\\ok')); +var_dump(defined('\\ns\\bug')); +var_dump(defined('ns\\foo::ok')); +var_dump(defined('ns\\foo::bug')); +var_dump(defined('\\ns\\foo::ok')); +var_dump(defined('\\ns\\foo::bug')); +var_dump(defined('ns\\bar::bug')); +var_dump(defined('\\ns\\bar::bug')); --EXPECT-- bool(true) bool(false) diff --git a/Zend/tests/bug42859.phpt b/Zend/tests/bug42859.phpt index 931e7fe0f7..755f41f8d6 100755 --- a/Zend/tests/bug42859.phpt +++ b/Zend/tests/bug42859.phpt @@ -5,8 +5,8 @@ Bug #42859 (import always conflicts with internal classes) namespace Foo; class Ex {} -use Blah::Exception; -use Blah::Ex; +use Blah\Exception; +use Blah\Ex; ?> --EXPECTF-- -Fatal error: Cannot use Blah::Ex as Ex because the name is already in use in %sbug42859.php on line 6 +Fatal error: Cannot use Blah\Ex as Ex because the name is already in use in %sbug42859.php on line 6 diff --git a/Zend/tests/bug43183.phpt b/Zend/tests/bug43183.phpt index 61313eb2c6..a8ca698e9f 100755 --- a/Zend/tests/bug43183.phpt +++ b/Zend/tests/bug43183.phpt @@ -3,10 +3,10 @@ Bug #43183 ("use" of the same class in difference scripts results in a fatal err --FILE-- <?php namespace Test; -use Test::Foo; +use Test\Foo; class Foo {} class Bar {} -use Test::Bar; +use Test\Bar; echo "ok\n"; --EXPECT-- ok
\ No newline at end of file diff --git a/Zend/tests/bug43332_1.phpt b/Zend/tests/bug43332_1.phpt index ef32162100..620725ab4b 100644 --- a/Zend/tests/bug43332_1.phpt +++ b/Zend/tests/bug43332_1.phpt @@ -12,4 +12,4 @@ $foo = new foo; $foo->bar($foo); // Ok! $foo->bar(new stdclass); // Error, ok! --EXPECTF-- -Catchable fatal error: Argument 1 passed to foobar::foo::bar() must be an instance of foobar::foo, instance of stdClass given, called in %sbug43332_1.php on line 10 and defined in %sbug43332_1.php on line 5 +Catchable fatal error: Argument 1 passed to foobar\foo::bar() must be an instance of foobar\foo, instance of stdClass given, called in %sbug43332_1.php on line 10 and defined in %sbug43332_1.php on line 5 diff --git a/Zend/tests/bug43332_2.phpt b/Zend/tests/bug43332_2.phpt index 916f6fa354..884ec71bac 100644 --- a/Zend/tests/bug43332_2.phpt +++ b/Zend/tests/bug43332_2.phpt @@ -5,11 +5,11 @@ Bug #43332.2 (self and parent as type hint in namespace) namespace foobar; class foo { - public function bar(::self $a) { } + public function bar(\self $a) { } } $foo = new foo; $foo->bar($foo); // Ok! $foo->bar(new stdclass); // Error, ok! --EXPECTF-- -Fatal error: '::self' is a wrong class name in %sbug43332_2.php on line 5 +Fatal error: 'self' is an invalid class name in %sbug43332_2.php on line 5 diff --git a/Zend/tests/bug43343.phpt b/Zend/tests/bug43343.phpt index fa1d993ab8..12f64fbd24 100644 --- a/Zend/tests/bug43343.phpt +++ b/Zend/tests/bug43343.phpt @@ -8,4 +8,4 @@ $foo = 'bar'; var_dump(new namespace::$foo); ?> --EXPECTF-- -Fatal error: Cannot use 'namespace' as a class name in %sbug43343.php on line 5 +Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_NS_SEPARATOR in %sbug43343.php on line 5 diff --git a/Zend/tests/bug43344_10.phpt b/Zend/tests/bug43344_10.phpt index d80a06ba05..e9f918cd61 100644 --- a/Zend/tests/bug43344_10.phpt +++ b/Zend/tests/bug43344_10.phpt @@ -2,7 +2,7 @@ Bug #43344.10 (Wrong error message for undefined namespace constant) --FILE-- <?php -echo namespace::bar."\n"; +echo namespace\bar."\n"; ?> --EXPECTF-- Fatal error: Undefined constant 'bar' in %sbug43344_10.php on line %d diff --git a/Zend/tests/bug43344_11.phpt b/Zend/tests/bug43344_11.phpt index 4daa236f87..b55cdccdea 100644 --- a/Zend/tests/bug43344_11.phpt +++ b/Zend/tests/bug43344_11.phpt @@ -2,7 +2,7 @@ Bug #43344.11 (Wrong error message for undefined namespace constant) --FILE-- <?php -function f($a=namespace::bar) { +function f($a=namespace\bar) { return $a; } echo f()."\n"; diff --git a/Zend/tests/bug43344_12.phpt b/Zend/tests/bug43344_12.phpt index 79dfc65cea..4d1e154f31 100644 --- a/Zend/tests/bug43344_12.phpt +++ b/Zend/tests/bug43344_12.phpt @@ -2,7 +2,7 @@ Bug #43344.12 (Wrong error message for undefined namespace constant) --FILE-- <?php -function f($a=array(namespace::bar)) { +function f($a=array(namespace\bar)) { return $a[0]; } echo f()."\n"; diff --git a/Zend/tests/bug43344_13.phpt b/Zend/tests/bug43344_13.phpt index d4fff4ffdd..c6aaf92fb3 100644 --- a/Zend/tests/bug43344_13.phpt +++ b/Zend/tests/bug43344_13.phpt @@ -2,7 +2,7 @@ Bug #43344.13 (Wrong error message for undefined namespace constant) --FILE-- <?php -function f($a=array(namespace::bar=>0)) { +function f($a=array(namespace\bar=>0)) { reset($a); return key($a); } diff --git a/Zend/tests/bug43344_2.phpt b/Zend/tests/bug43344_2.phpt index 1c55559e26..57766afa94 100644 --- a/Zend/tests/bug43344_2.phpt +++ b/Zend/tests/bug43344_2.phpt @@ -6,4 +6,4 @@ namespace Foo; echo Foo::bar."\n"; ?> --EXPECTF-- -Fatal error: Class 'Foo::Foo' not found in %sbug43344_2.php on line %d +Fatal error: Class 'Foo\Foo' not found in %sbug43344_2.php on line %d diff --git a/Zend/tests/bug43344_3.phpt b/Zend/tests/bug43344_3.phpt index 26a6b46a3b..579ed81ada 100644 --- a/Zend/tests/bug43344_3.phpt +++ b/Zend/tests/bug43344_3.phpt @@ -9,4 +9,4 @@ function f($a=Foo::bar) { echo f()."\n"; ?> --EXPECTF-- -Fatal error: Class 'Foo::Foo' not found in %sbug43344_3.php on line %d +Fatal error: Class 'Foo\Foo' not found in %sbug43344_3.php on line %d diff --git a/Zend/tests/bug43344_4.phpt b/Zend/tests/bug43344_4.phpt index 20feaf9afe..97e08b3664 100644 --- a/Zend/tests/bug43344_4.phpt +++ b/Zend/tests/bug43344_4.phpt @@ -9,4 +9,4 @@ function f($a=array(Foo::bar)) { echo f()."\n"; ?> --EXPECTF-- -Fatal error: Class 'Foo::Foo' not found in %sbug43344_4.php on line %d +Fatal error: Class 'Foo\Foo' not found in %sbug43344_4.php on line %d diff --git a/Zend/tests/bug43344_5.phpt b/Zend/tests/bug43344_5.phpt index 2ccd029825..645ef33e7f 100644 --- a/Zend/tests/bug43344_5.phpt +++ b/Zend/tests/bug43344_5.phpt @@ -10,4 +10,4 @@ function f($a=array(Foo::bar=>0)) { echo f()."\n"; ?> --EXPECTF-- -Fatal error: Class 'Foo::Foo' not found in %sbug43344_5.php on line %d +Fatal error: Class 'Foo\Foo' not found in %sbug43344_5.php on line %d diff --git a/Zend/tests/bug43344_6.phpt b/Zend/tests/bug43344_6.phpt index 0597b585e0..38e1961aad 100644 --- a/Zend/tests/bug43344_6.phpt +++ b/Zend/tests/bug43344_6.phpt @@ -3,7 +3,7 @@ Bug #43344.6 (Wrong error message for undefined namespace constant) --FILE-- <?php namespace Foo; -echo namespace::bar."\n"; +echo namespace\bar."\n"; ?> --EXPECTF-- -Fatal error: Undefined constant 'Foo::bar' in %sbug43344_6.php on line %d +Fatal error: Undefined constant 'Foo\bar' in %sbug43344_6.php on line %d diff --git a/Zend/tests/bug43344_7.phpt b/Zend/tests/bug43344_7.phpt index fab79feec2..94e00d9e1f 100644 --- a/Zend/tests/bug43344_7.phpt +++ b/Zend/tests/bug43344_7.phpt @@ -3,10 +3,10 @@ Bug #43344.7 (Wrong error message for undefined namespace constant) --FILE-- <?php namespace Foo; -function f($a=namespace::bar) { +function f($a=namespace\bar) { return $a; } echo f()."\n"; ?> --EXPECTF-- -Fatal error: Undefined constant 'Foo::bar' in %sbug43344_7.php on line %d +Fatal error: Undefined constant 'Foo\bar' in %sbug43344_7.php on line %d diff --git a/Zend/tests/bug43344_8.phpt b/Zend/tests/bug43344_8.phpt index a9272d7472..eb694f7118 100644 --- a/Zend/tests/bug43344_8.phpt +++ b/Zend/tests/bug43344_8.phpt @@ -3,10 +3,10 @@ Bug #43344.8 (Wrong error message for undefined namespace constant) --FILE-- <?php namespace Foo; -function f($a=array(namespace::bar)) { +function f($a=array(namespace\bar)) { return $a[0]; } echo f()."\n"; ?> --EXPECTF-- -Fatal error: Undefined constant 'Foo::bar' in %sbug43344_8.php on line %d +Fatal error: Undefined constant 'Foo\bar' in %sbug43344_8.php on line %d diff --git a/Zend/tests/bug43344_9.phpt b/Zend/tests/bug43344_9.phpt index b3c5dfbdb7..31604e7a94 100644 --- a/Zend/tests/bug43344_9.phpt +++ b/Zend/tests/bug43344_9.phpt @@ -3,11 +3,11 @@ Bug #43344.9 (Wrong error message for undefined namespace constant) --FILE-- <?php namespace Foo; -function f($a=array(namespace::bar=>0)) { +function f($a=array(namespace\bar=>0)) { reset($a); return key($a); } echo f()."\n"; ?> --EXPECTF-- -Fatal error: Undefined constant 'Foo::bar' in %sbug43344_9.php on line %d +Fatal error: Undefined constant 'Foo\bar' in %sbug43344_9.php on line %d diff --git a/Zend/tests/bug43651.phpt b/Zend/tests/bug43651.phpt index bce0601abe..ea70cf1039 100644 --- a/Zend/tests/bug43651.phpt +++ b/Zend/tests/bug43651.phpt @@ -6,22 +6,22 @@ class Test { static function foo() {} } -var_dump(is_callable("::")); -var_dump(is_callable(":")); -var_dump(is_callable("x:")); -var_dump(is_callable(":x")); -var_dump(is_callable("x:x")); -var_dump(is_callable("x::")); -var_dump(is_callable("::x")); -var_dump(is_callable("x::x")); +var_dump(is_callable("\\\\")); +var_dump(is_callable("\\")); +var_dump(is_callable("x\\")); +var_dump(is_callable("\\x")); +var_dump(is_callable("x\\x")); +var_dump(is_callable("x\\\\")); +var_dump(is_callable("\\x")); +var_dump(is_callable("x\\\\x")); var_dump(is_callable("cd")); -var_dump(is_callable("Test::")); -var_dump(is_callable("::Test")); -var_dump(is_callable("::Test::")); +var_dump(is_callable("Test\\")); +var_dump(is_callable("\\Test")); +var_dump(is_callable("\\Test\\")); var_dump(is_callable("Test::foo")); -var_dump(is_callable("::Test::foo")); +var_dump(is_callable("\\Test::foo")); var_dump(is_callable("is_string")); -var_dump(is_callable("::is_string")); +var_dump(is_callable("\\is_string")); --EXPECT-- bool(false) bool(false) diff --git a/Zend/tests/bug44653.phpt b/Zend/tests/bug44653.phpt index defdba810a..1abf9747c7 100644 --- a/Zend/tests/bug44653.phpt +++ b/Zend/tests/bug44653.phpt @@ -14,13 +14,17 @@ class B { static function fooBar() { echo "bag2\n"; } } function fooBar() { echo __FUNCTION__ . PHP_EOL; } -var_dump(A::XX); +var_dump(\A\XX); A::fooBar(); -fooBar(); +\A\fooBar(); B::fooBar(); +fooBar(); +\B\fooBar(); ?> --EXPECT-- int(1) -A::fooBar -B::fooBar -B::fooBar +bag1 +A\fooBar +bag2 +B\fooBar +B\fooBar diff --git a/Zend/tests/class_alias_012.phpt b/Zend/tests/class_alias_012.phpt index 01839668b8..dd1c9b1072 100644 --- a/Zend/tests/class_alias_012.phpt +++ b/Zend/tests/class_alias_012.phpt @@ -3,31 +3,31 @@ Testing dynamic alias name --FILE-- <?php -namespace test::baz; +namespace test\baz; class foo { } new foo; -class_alias(__NAMESPACE__ .'::foo', __NAMESPACE__ .'::T'); +class_alias(__NAMESPACE__ .'\foo', __NAMESPACE__ .'\T'); var_dump(new foo); var_dump(new T); -$var = __NAMESPACE__ .'::foo'; +$var = __NAMESPACE__ .'\foo'; var_dump(new $var); -$var = __NAMESPACE__ .'::T'; +$var = __NAMESPACE__ .'\T'; var_dump(new $var); ?> --EXPECTF-- -object(test::baz::foo)#%d (0) { +object(test\baz\foo)#%d (0) { } -object(test::baz::foo)#%d (0) { +object(test\baz\foo)#%d (0) { } -object(test::baz::foo)#%d (0) { +object(test\baz\foo)#%d (0) { } -object(test::baz::foo)#%d (0) { +object(test\baz\foo)#%d (0) { } diff --git a/Zend/tests/class_alias_013.phpt b/Zend/tests/class_alias_013.phpt index d032e26541..4991d0fd31 100644 --- a/Zend/tests/class_alias_013.phpt +++ b/Zend/tests/class_alias_013.phpt @@ -3,24 +3,24 @@ Testing alias of alias --FILE-- <?php -namespace test::baz; +namespace test\baz; class foo { } new foo; -$alias1 = __NAMESPACE__ .'::T'; -class_alias(__NAMESPACE__ .'::foo', $alias1); +$alias1 = __NAMESPACE__ .'\T'; +class_alias(__NAMESPACE__ .'\foo', $alias1); -$alias2 = $alias1 .'::BAR'; +$alias2 = $alias1 .'\BAR'; class_alias($alias1, $alias2); -var_dump(new test::baz::foo, new test::baz::T::BAR); +var_dump(new \test\baz\foo, new \test\baz\T\BAR); ?> --EXPECTF-- -object(test::baz::foo)#%d (0) { +object(test\baz\foo)#%d (0) { } -object(test::baz::foo)#%d (0) { +object(test\baz\foo)#%d (0) { } diff --git a/Zend/tests/class_alias_015.phpt b/Zend/tests/class_alias_015.phpt index d694e10752..c79c077187 100644 --- a/Zend/tests/class_alias_015.phpt +++ b/Zend/tests/class_alias_015.phpt @@ -8,11 +8,11 @@ namespace foo; class bar { } -class_alias('foo::bar', 'foo::baz'); +class_alias('foo\bar', 'foo\baz'); -var_dump(new namespace::baz); +var_dump(new namespace\baz); ?> --EXPECTF-- -object(foo::bar)#%d (0) { +object(foo\bar)#%d (0) { } diff --git a/Zend/tests/class_alias_016.phpt b/Zend/tests/class_alias_016.phpt index 6e5c0093e8..930f2ee0e4 100644 --- a/Zend/tests/class_alias_016.phpt +++ b/Zend/tests/class_alias_016.phpt @@ -8,14 +8,14 @@ namespace foo; class bar { } -class_alias('foo::bar', 'foo'); +class_alias('foo\bar', 'foo'); -var_dump(new ::foo); +var_dump(new \foo); var_dump(new foo); ?> --EXPECTF-- -object(foo::bar)#%d (0) { +object(foo\bar)#%d (0) { } -Fatal error: Class 'foo::foo' not found in %s on line %d +Fatal error: Class 'foo\foo' not found in %s on line %d diff --git a/Zend/tests/class_alias_019.phpt b/Zend/tests/class_alias_019.phpt index 4bcc5d9d0c..a0dd249d55 100644 --- a/Zend/tests/class_alias_019.phpt +++ b/Zend/tests/class_alias_019.phpt @@ -9,8 +9,8 @@ namespace foo; class foo { } -class_alias(__NAMESPACE__ .'::foo', 'foo'); -class_alias('::foo', 'foo'); +class_alias(__NAMESPACE__ .'\foo', 'foo'); +class_alias('\foo', 'foo'); ?> --EXPECTF-- diff --git a/Zend/tests/class_alias_020.phpt b/Zend/tests/class_alias_020.phpt index 1c2452cd7f..e2c7d9245e 100644 --- a/Zend/tests/class_alias_020.phpt +++ b/Zend/tests/class_alias_020.phpt @@ -9,25 +9,25 @@ namespace foo; class foo { } -class_alias(__NAMESPACE__ .'::foo', 'foo'); +class_alias(__NAMESPACE__ .'\foo', 'foo'); -namespace foo::bar; +namespace foo\bar; class foo { } -class_alias(__NAMESPACE__ .'::foo', 'bar'); +class_alias(__NAMESPACE__ .'\foo', 'bar'); -var_dump(new ::foo, new ::bar); +var_dump(new \foo, new \bar); -var_dump(new foo::foo, new foo::bar); +var_dump(new \foo\foo, new \foo\bar); ?> --EXPECTF-- -object(foo::foo)#1 (0) { +object(foo\foo)#1 (0) { } -object(foo::bar::foo)#2 (0) { +object(foo\bar\foo)#2 (0) { } -Fatal error: Class 'foo::bar' not found in %s on line %d +Fatal error: Class 'foo\bar' not found in %s on line %d diff --git a/Zend/tests/class_alias_021.phpt b/Zend/tests/class_alias_021.phpt index 79049623f0..09144b813c 100644 --- a/Zend/tests/class_alias_021.phpt +++ b/Zend/tests/class_alias_021.phpt @@ -7,19 +7,19 @@ namespace foo; class bar { } -class_alias('foo::bar', 'baz'); +class_alias('foo\bar', 'baz'); -use ::baz as stdClass; +use \baz as stdClass; -var_dump(new foo::bar); +var_dump(new foo\bar); var_dump(new stdClass); -var_dump(new ::baz); +var_dump(new \baz); ?> --EXPECTF-- -object(foo::bar)#%d (0) { +object(foo\bar)#%d (0) { } -object(foo::bar)#%d (0) { +object(foo\bar)#%d (0) { } -object(foo::bar)#%d (0) { +object(foo\bar)#%d (0) { } diff --git a/Zend/tests/class_constants_004.phpt b/Zend/tests/class_constants_004.phpt index 104ceb1bb6..73a42ede7a 100644 --- a/Zend/tests/class_constants_004.phpt +++ b/Zend/tests/class_constants_004.phpt @@ -17,15 +17,15 @@ interface Ifoo { const foo = 4; } -$const = __NAMESPACE__ .'::foo'; // class -$const2 = __NAMESPACE__ .'::Ifoo'; // interface +$const = __NAMESPACE__ .'\\foo'; // class +$const2 = __NAMESPACE__ .'\\Ifoo'; // interface var_dump( foo, - foo::foo, - namespace::foo, - foo::foo::foo, + \foo\foo, + namespace\foo, + \foo\foo::foo, $const::foo, - ::foo, + \foo, constant('foo'), Ifoo::foo, $const2::foo diff --git a/Zend/tests/class_exists_001.phpt b/Zend/tests/class_exists_001.phpt index 4ee1ee2925..8af96a49fc 100644 --- a/Zend/tests/class_exists_001.phpt +++ b/Zend/tests/class_exists_001.phpt @@ -9,13 +9,13 @@ class foo { } -class_alias(__NAMESPACE__ .'::foo', 'bar'); +class_alias(__NAMESPACE__ .'\foo', 'bar'); -var_dump(class_exists('::bar')); +var_dump(class_exists('\bar')); var_dump(class_exists('bar')); -var_dump(class_exists('foo::bar')); -var_dump(class_exists('foo::foo')); +var_dump(class_exists('foo\bar')); +var_dump(class_exists('foo\foo')); var_dump(class_exists('foo')); ?> diff --git a/Zend/tests/constants_003.phpt b/Zend/tests/constants_003.phpt index ec3eb6d4ff..205f95f036 100644 --- a/Zend/tests/constants_003.phpt +++ b/Zend/tests/constants_003.phpt @@ -9,7 +9,7 @@ const foo = 1; define('foo', 2); -var_dump(foo, namespace::foo, foo::foo, ::foo, constant('foo'), constant('foo::foo')); +var_dump(foo, namespace\foo, \foo\foo, \foo, constant('foo'), constant('foo\foo')); ?> --EXPECT-- diff --git a/Zend/tests/constants_004.phpt b/Zend/tests/constants_004.phpt index 787ec26e72..69369aa3d9 100644 --- a/Zend/tests/constants_004.phpt +++ b/Zend/tests/constants_004.phpt @@ -10,4 +10,4 @@ const foo = 2; ?> --EXPECTF-- -Notice: Constant foo::foo already defined in %s on line %d +Notice: Constant foo\foo already defined in %s on line %d diff --git a/Zend/tests/constants_006.phpt b/Zend/tests/constants_006.phpt index 24851531bc..6458a07825 100644 --- a/Zend/tests/constants_006.phpt +++ b/Zend/tests/constants_006.phpt @@ -26,7 +26,7 @@ var_dump(__namespace__); string(%d) "%s" string(%d) "%s" int(%d) -string(22) "test::foo::__construct" -string(9) "test::foo" +string(21) "test\foo::__construct" +string(8) "test\foo" string(11) "__construct" string(4) "test" diff --git a/Zend/tests/constants_009.phpt b/Zend/tests/constants_009.phpt index c84760be81..ea986dd3c7 100644 --- a/Zend/tests/constants_009.phpt +++ b/Zend/tests/constants_009.phpt @@ -3,7 +3,7 @@ Accessing constants inside namespace --FILE-- <?php -namespace foo::x; +namespace foo\x; const x = 2; @@ -12,8 +12,10 @@ class x { } -var_dump(namespace::x, x::x, namespace::x::x); -var_dump(defined('foo::x::x')); +var_dump(namespace\x, +x::x, +namespace\x::x); +var_dump(defined('foo\x\x')); ?> --EXPECT-- diff --git a/Zend/tests/inter_02.phpt b/Zend/tests/inter_02.phpt index 18db230b21..34e8baa5dc 100644 --- a/Zend/tests/inter_02.phpt +++ b/Zend/tests/inter_02.phpt @@ -11,7 +11,7 @@ interface foo { const foo = 2; } -function foo($x = foo::foo::foo) { +function foo($x = \foo\foo::foo) { var_dump($x); } diff --git a/Zend/tests/interface_exists_002.phpt b/Zend/tests/interface_exists_002.phpt index f4d8a03cd8..be78784d55 100644 --- a/Zend/tests/interface_exists_002.phpt +++ b/Zend/tests/interface_exists_002.phpt @@ -13,8 +13,8 @@ interface IBar extends IFoo { } var_dump(interface_exists('IFoo')); -var_dump(interface_exists('foo::IFoo')); -var_dump(interface_exists('FOO::ITEST')); +var_dump(interface_exists('foo\\IFoo')); +var_dump(interface_exists('FOO\\ITEST')); ?> --EXPECT-- diff --git a/Zend/tests/lsb_014.phpt b/Zend/tests/lsb_014.phpt index 34ee7b48ce..19cf913710 100644 --- a/Zend/tests/lsb_014.phpt +++ b/Zend/tests/lsb_014.phpt @@ -1,5 +1,5 @@ ---TEST-- -ZE2 Late Static Binding access to static::const through defined() anf get_constant() +--TEST-- +ZE2 Late Static Binding access to static::const through defined() and get_constant() --FILE-- <?php diff --git a/Zend/tests/ns_001.phpt b/Zend/tests/ns_001.phpt index 6821756a43..67715947af 100755 --- a/Zend/tests/ns_001.phpt +++ b/Zend/tests/ns_001.phpt @@ -2,7 +2,7 @@ 001: Class in namespace --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Foo { @@ -22,13 +22,13 @@ class Foo { $x = new Foo; $x->bar(); Foo::baz(); -$y = new test::ns1::Foo; +$y = new \test\ns1\Foo; $y->bar(); -test::ns1::Foo::baz(); +\test\ns1\Foo::baz(); --EXPECT-- -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo diff --git a/Zend/tests/ns_002.phpt b/Zend/tests/ns_002.phpt index 7faca97cd3..000928c3d6 100755 --- a/Zend/tests/ns_002.phpt +++ b/Zend/tests/ns_002.phpt @@ -2,7 +2,7 @@ 002: Import in namespace --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Foo { static function bar() { @@ -10,18 +10,18 @@ class Foo { } } -use test::ns1::Foo as Bar; -use test::ns1 as ns2; -use test::ns1; +use test\ns1\Foo as Bar; +use test\ns1 as ns2; +use test\ns1; Foo::bar(); -test::ns1::Foo::bar(); +test\ns1\Foo::bar(); Bar::bar(); -ns2::Foo::bar(); -ns1::Foo::bar(); +ns2\Foo::bar(); +ns1\Foo::bar(); --EXPECT-- -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo -test::ns1::Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo +test\ns1\Foo diff --git a/Zend/tests/ns_003.phpt b/Zend/tests/ns_003.phpt index 26c21a9ff0..4372722c25 100755 --- a/Zend/tests/ns_003.phpt +++ b/Zend/tests/ns_003.phpt @@ -2,11 +2,11 @@ 003: Name conflict (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Exception { } echo get_class(new Exception()),"\n"; --EXPECT-- -test::ns1::Exception +test\ns1\Exception diff --git a/Zend/tests/ns_004.phpt b/Zend/tests/ns_004.phpt index 2aa4a809d9..792367cdf6 100755 --- a/Zend/tests/ns_004.phpt +++ b/Zend/tests/ns_004.phpt @@ -2,7 +2,7 @@ 004: Name conflict (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; echo get_class(new Exception()),"\n"; --EXPECT-- diff --git a/Zend/tests/ns_005.phpt b/Zend/tests/ns_005.phpt index fc1d6570fd..c082afc481 100755 --- a/Zend/tests/ns_005.phpt +++ b/Zend/tests/ns_005.phpt @@ -2,11 +2,11 @@ 005: Name conflict (php name in case if ns name exists) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Exception { } -echo get_class(new ::Exception()),"\n"; +echo get_class(new \Exception()),"\n"; --EXPECT-- Exception diff --git a/Zend/tests/ns_006.phpt b/Zend/tests/ns_006.phpt index f4027408d4..1c0ec3ab08 100755 --- a/Zend/tests/ns_006.phpt +++ b/Zend/tests/ns_006.phpt @@ -2,12 +2,12 @@ 006: Run-time name conflict (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Exception { } -$x = "test::ns1::Exception"; +$x = "test\\ns1\\Exception"; echo get_class(new $x),"\n"; --EXPECT-- -test::ns1::Exception +test\ns1\Exception diff --git a/Zend/tests/ns_007.phpt b/Zend/tests/ns_007.phpt index 60ccced504..2f4d1361dc 100755 --- a/Zend/tests/ns_007.phpt +++ b/Zend/tests/ns_007.phpt @@ -2,7 +2,7 @@ 007: Run-time name conflict (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Exception { } diff --git a/Zend/tests/ns_008.phpt b/Zend/tests/ns_008.phpt index 1c0d116483..2c2c9180cf 100755 --- a/Zend/tests/ns_008.phpt +++ b/Zend/tests/ns_008.phpt @@ -7,7 +7,7 @@ namespace test; class foo { } -$x = __NAMESPACE__ . "::foo"; +$x = __NAMESPACE__ . "\\foo"; echo get_class(new $x),"\n"; --EXPECT-- -test::foo +test\foo diff --git a/Zend/tests/ns_009.phpt b/Zend/tests/ns_009.phpt index 3d6aa225d6..3481316f28 100755 --- a/Zend/tests/ns_009.phpt +++ b/Zend/tests/ns_009.phpt @@ -5,7 +5,7 @@ class foo { } -$x = __NAMESPACE__ . "::foo"; +$x = __NAMESPACE__ . "\\foo"; echo get_class(new $x),"\n"; --EXPECT-- foo diff --git a/Zend/tests/ns_010.phpt b/Zend/tests/ns_010.phpt index 95172e0ec3..c921f134bd 100755 --- a/Zend/tests/ns_010.phpt +++ b/Zend/tests/ns_010.phpt @@ -15,21 +15,21 @@ class Foo { } } new Foo(); -new X::Foo(); -new Y::Foo(); -new ::X::Foo(); +new X\Foo(); +new Y\Foo(); +new \X\Foo(); Foo::bar(); -X::Foo::bar(); -Y::Foo::bar(); -::X::Foo::bar(); +X\Foo::bar(); +Y\Foo::bar(); +\X\Foo::bar(); echo Foo::C; -echo X::Foo::C; -echo Y::Foo::C; -echo ::X::Foo::C; +echo X\Foo::C; +echo Y\Foo::C; +echo \X\Foo::C; echo Foo::$var; -echo X::Foo::$var; -echo Y::Foo::$var; -echo ::X::Foo::$var; +echo X\Foo::$var; +echo Y\Foo::$var; +echo \X\Foo::$var; --EXPECT-- class ok class ok diff --git a/Zend/tests/ns_011.phpt b/Zend/tests/ns_011.phpt index c1d9ac3018..1706f2a00d 100755 --- a/Zend/tests/ns_011.phpt +++ b/Zend/tests/ns_011.phpt @@ -2,23 +2,23 @@ 011: Function in namespace --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function foo() { echo __FUNCTION__,"\n"; } foo(); -test::ns1::foo(); +\test\ns1\foo(); bar(); -test::ns1::bar(); +\test\ns1\bar(); function bar() { echo __FUNCTION__,"\n"; } --EXPECT-- -test::ns1::foo -test::ns1::foo -test::ns1::bar -test::ns1::bar +test\ns1\foo +test\ns1\foo +test\ns1\bar +test\ns1\bar diff --git a/Zend/tests/ns_012.phpt b/Zend/tests/ns_012.phpt index ce16db1ab9..034f124924 100755 --- a/Zend/tests/ns_012.phpt +++ b/Zend/tests/ns_012.phpt @@ -2,34 +2,34 @@ 012: Import in namespace and functions --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function foo() { echo __FUNCTION__,"\n"; } -use test::ns1 as ns2; +use test\ns1 as ns2; use test as ns3; foo(); bar(); -test::ns1::foo(); -test::ns1::bar(); -ns2::foo(); -ns2::bar(); -ns3::ns1::foo(); -ns3::ns1::bar(); +\test\ns1\foo(); +\test\ns1\bar(); +ns2\foo(); +ns2\bar(); +ns3\ns1\foo(); +ns3\ns1\bar(); function bar() { echo __FUNCTION__,"\n"; } --EXPECT-- -test::ns1::foo -test::ns1::bar -test::ns1::foo -test::ns1::bar -test::ns1::foo -test::ns1::bar -test::ns1::foo -test::ns1::bar +test\ns1\foo +test\ns1\bar +test\ns1\foo +test\ns1\bar +test\ns1\foo +test\ns1\bar +test\ns1\foo +test\ns1\bar diff --git a/Zend/tests/ns_013.phpt b/Zend/tests/ns_013.phpt index 945b6bc4ec..ef73b1395f 100755 --- a/Zend/tests/ns_013.phpt +++ b/Zend/tests/ns_013.phpt @@ -2,7 +2,7 @@ 013: Name conflict and functions (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function strlen($x) { return __FUNCTION__; @@ -10,4 +10,4 @@ function strlen($x) { echo strlen("Hello"),"\n"; --EXPECT-- -test::ns1::strlen +test\ns1\strlen diff --git a/Zend/tests/ns_014.phpt b/Zend/tests/ns_014.phpt index 9614b481a4..6bcab51c83 100755 --- a/Zend/tests/ns_014.phpt +++ b/Zend/tests/ns_014.phpt @@ -2,7 +2,7 @@ 014: Name conflict and functions (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; echo strlen("Hello"),"\n"; --EXPECT-- diff --git a/Zend/tests/ns_015.phpt b/Zend/tests/ns_015.phpt index 1ad05b963f..ae2c818345 100755 --- a/Zend/tests/ns_015.phpt +++ b/Zend/tests/ns_015.phpt @@ -2,13 +2,13 @@ 015: Name conflict and functions (php name in case if ns name exists) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function strlen($x) { return __FUNCTION__; } -echo ::strlen("Hello"),"\n"; +echo \strlen("Hello"),"\n"; --EXPECT-- 5 diff --git a/Zend/tests/ns_016.phpt b/Zend/tests/ns_016.phpt index e278625e61..bee8b5bee3 100755 --- a/Zend/tests/ns_016.phpt +++ b/Zend/tests/ns_016.phpt @@ -2,13 +2,13 @@ 016: Run-time name conflict and functions (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function strlen($x) { return __FUNCTION__; } -$x = "test::ns1::strlen"; +$x = "test\\ns1\\strlen"; echo $x("Hello"),"\n"; --EXPECT-- -test::ns1::strlen +test\ns1\strlen diff --git a/Zend/tests/ns_017.phpt b/Zend/tests/ns_017.phpt index 15ff1efee8..888d8e5ef4 100755 --- a/Zend/tests/ns_017.phpt +++ b/Zend/tests/ns_017.phpt @@ -2,7 +2,7 @@ 017: Run-time name conflict and functions (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function strlen($x) { return __FUNCTION__; diff --git a/Zend/tests/ns_018.phpt b/Zend/tests/ns_018.phpt index be8b4b7d34..5c2495c631 100755 --- a/Zend/tests/ns_018.phpt +++ b/Zend/tests/ns_018.phpt @@ -8,7 +8,7 @@ function foo() { return __FUNCTION__; } -$x = __NAMESPACE__ . "::foo"; +$x = __NAMESPACE__ . "\\foo"; echo $x(),"\n"; --EXPECT-- -test::foo +test\foo diff --git a/Zend/tests/ns_019.phpt b/Zend/tests/ns_019.phpt index c42e97ed18..c3db786867 100755 --- a/Zend/tests/ns_019.phpt +++ b/Zend/tests/ns_019.phpt @@ -6,7 +6,7 @@ function foo() { return __FUNCTION__; } -$x = __NAMESPACE__ . "::foo"; +$x = __NAMESPACE__ . "\\foo"; echo $x(),"\n"; --EXPECT-- foo diff --git a/Zend/tests/ns_020.phpt b/Zend/tests/ns_020.phpt index 9d2e8a7ccb..ec4fda0298 100755 --- a/Zend/tests/ns_020.phpt +++ b/Zend/tests/ns_020.phpt @@ -8,11 +8,11 @@ function foo() { echo __FUNCTION__,"\n"; } foo(); -X::foo(); -Y::foo(); -::X::foo(); +\X\foo(); +Y\foo(); +\X\foo(); --EXPECT-- -X::foo -X::foo -X::foo -X::foo +X\foo +X\foo +X\foo +X\foo diff --git a/Zend/tests/ns_021.phpt b/Zend/tests/ns_021.phpt index 01609bb607..405468399f 100755 --- a/Zend/tests/ns_021.phpt +++ b/Zend/tests/ns_021.phpt @@ -15,9 +15,9 @@ function foo() { } foo(); -test::foo(); -test::test::foo(); +\test\foo(); +\test\test::foo(); --EXPECT-- -test::foo -test::foo -test::Test::foo +test\foo +test\foo +test\Test::foo diff --git a/Zend/tests/ns_022.phpt b/Zend/tests/ns_022.phpt index 6944ca403f..7aebe1d5a2 100755 --- a/Zend/tests/ns_022.phpt +++ b/Zend/tests/ns_022.phpt @@ -2,9 +2,9 @@ 022: Name search priority (first look into import, then into current namespace and then for class) --FILE-- <?php -namespace a::b::c; +namespace a\b\c; -use a::b::c as test; +use a\b\c as test; require "ns_022.inc"; @@ -12,8 +12,8 @@ function foo() { echo __FUNCTION__,"\n"; } -test::foo(); -::test::foo(); +test\foo(); +\test::foo(); --EXPECT-- -a::b::c::foo +a\b\c\foo Test::foo diff --git a/Zend/tests/ns_023.phpt b/Zend/tests/ns_023.phpt index 4be9dc700a..bc1681c122 100755 --- a/Zend/tests/ns_023.phpt +++ b/Zend/tests/ns_023.phpt @@ -2,10 +2,10 @@ 023: __NAMESPACE__ constant --FILE-- <?php -namespace test::foo; +namespace test\foo; var_dump(__NAMESPACE__); --EXPECT-- -string(9) "test::foo" +string(8) "test\foo" --UEXPECT-- -unicode(9) "test::foo" +unicode(8) "test\foo" diff --git a/Zend/tests/ns_025.phpt b/Zend/tests/ns_025.phpt index e5c8ab0044..917a710d95 100755 --- a/Zend/tests/ns_025.phpt +++ b/Zend/tests/ns_025.phpt @@ -2,7 +2,7 @@ 025: Name ambiguity (class name & part of namespace name) --FILE-- <?php -namespace Foo::Bar; +namespace Foo\Bar; class Foo { function __construct() { @@ -15,10 +15,10 @@ class Foo { $x = new Foo; Foo::Bar(); -$x = new Foo::Bar::Foo; -Foo::Bar::Foo::Bar(); +$x = new \Foo\Bar\Foo; +\Foo\Bar\Foo::Bar(); --EXPECT-- -Foo::Bar::Foo -Foo::Bar::Foo -Foo::Bar::Foo -Foo::Bar::Foo +Foo\Bar\Foo +Foo\Bar\Foo +Foo\Bar\Foo +Foo\Bar\Foo diff --git a/Zend/tests/ns_026.phpt b/Zend/tests/ns_026.phpt index ad8654db5f..af2bf2ca55 100755 --- a/Zend/tests/ns_026.phpt +++ b/Zend/tests/ns_026.phpt @@ -18,13 +18,16 @@ function Bar() { } $x = new Foo; -Foo::Bar(); -$x = new Foo::Foo; -Foo::Foo::Bar(); -::Foo::Bar(); ---EXPECT-- -Method - Foo::Foo::__construct -Func - Foo::Bar -Method - Foo::Foo::__construct -Method - Foo::Foo::Bar -Func - Foo::Bar +\Foo\Bar(); +$x = new \Foo\Foo; +\Foo\Foo::Bar(); +\Foo\Bar(); +Foo\Bar(); +--EXPECTF-- +Method - Foo\Foo::__construct +Func - Foo\Bar +Method - Foo\Foo::__construct +Method - Foo\Foo::Bar +Func - Foo\Bar + +Fatal error: Call to undefined function Foo\Foo\Bar() in %sns_026.php on line %d
\ No newline at end of file diff --git a/Zend/tests/ns_027.inc b/Zend/tests/ns_027.inc index 014bc40552..3823818290 100755 --- a/Zend/tests/ns_027.inc +++ b/Zend/tests/ns_027.inc @@ -1,5 +1,5 @@ <?php -namespace Foo::Bar; +namespace Foo\Bar; class Foo { function __construct() { diff --git a/Zend/tests/ns_027.phpt b/Zend/tests/ns_027.phpt index 064d0521f9..88ef22f93b 100755 --- a/Zend/tests/ns_027.phpt +++ b/Zend/tests/ns_027.phpt @@ -15,10 +15,10 @@ class Foo { $x = new Foo; Foo::Bar(); -$x = new Foo::Bar::Foo; -Foo::Bar::Foo::Bar(); +$x = new Foo\Bar\Foo; +Foo\Bar\Foo::Bar(); --EXPECT-- Foo Foo -Foo::Bar::Foo -Foo::Bar::Foo +Foo\Bar\Foo +Foo\Bar\Foo diff --git a/Zend/tests/ns_028.phpt b/Zend/tests/ns_028.phpt index 1b34a594b1..ec23dac818 100755 --- a/Zend/tests/ns_028.phpt +++ b/Zend/tests/ns_028.phpt @@ -14,13 +14,13 @@ class Foo { } $x = new Foo; -Foo::Bar(); -$x = new Foo::Foo; -Foo::Foo::Bar(); -::Foo::Bar(); +Foo\Bar(); +$x = new Foo\Foo; +Foo\Foo::Bar(); +\Foo\Bar(); --EXPECT-- Method - Foo::__construct -Func - Foo::Bar -Method - Foo::Foo::__construct -Method - Foo::Foo::Bar -Func - Foo::Bar +Func - Foo\Bar +Method - Foo\Foo::__construct +Method - Foo\Foo::Bar +Func - Foo\Bar diff --git a/Zend/tests/ns_029.phpt b/Zend/tests/ns_029.phpt index d719e9e7cf..f1aa954ae3 100755 --- a/Zend/tests/ns_029.phpt +++ b/Zend/tests/ns_029.phpt @@ -2,7 +2,7 @@ 029: Name ambiguity (class name & import name) --FILE-- <?php -use A::B as Foo; +use A\B as Foo; class Foo { } diff --git a/Zend/tests/ns_030.phpt b/Zend/tests/ns_030.phpt index 8aa3223f7e..69724159ee 100755 --- a/Zend/tests/ns_030.phpt +++ b/Zend/tests/ns_030.phpt @@ -5,8 +5,8 @@ class Foo { } -use A::B as Foo; +use A\B as Foo; new Foo(); --EXPECTF-- -Fatal error: Cannot use A::B as Foo because the name is already in use in %sns_030.php on line 5 +Fatal error: Cannot use A\B as Foo because the name is already in use in %sns_030.php on line 5 diff --git a/Zend/tests/ns_031.phpt b/Zend/tests/ns_031.phpt index 3991c5a107..840c08621c 100755 --- a/Zend/tests/ns_031.phpt +++ b/Zend/tests/ns_031.phpt @@ -14,8 +14,8 @@ function foo() { echo __FUNCTION__,"\n"; } -call_user_func(__NAMESPACE__."::foo"); -call_user_func(__NAMESPACE__."::test::foo"); +call_user_func(__NAMESPACE__."\\foo"); +call_user_func(__NAMESPACE__."\\test::foo"); --EXPECT-- -test::foo -test::Test::foo +test\foo +test\Test::foo diff --git a/Zend/tests/ns_032.phpt b/Zend/tests/ns_032.phpt index 86b24fcdc4..5717a33685 100755 --- a/Zend/tests/ns_032.phpt +++ b/Zend/tests/ns_032.phpt @@ -12,8 +12,8 @@ function foo() { echo __FUNCTION__,"\n"; } -call_user_func(__NAMESPACE__."::foo"); -call_user_func(__NAMESPACE__."::test::foo"); +call_user_func(__NAMESPACE__."\\foo"); +call_user_func(__NAMESPACE__."\\test::foo"); --EXPECT-- foo Test::foo diff --git a/Zend/tests/ns_034.phpt b/Zend/tests/ns_034.phpt index f8669cfb74..1ab793e17d 100755 --- a/Zend/tests/ns_034.phpt +++ b/Zend/tests/ns_034.phpt @@ -10,19 +10,19 @@ class Foo { function f1($x=Foo::C) { echo $x; } -function f2($x=A::Foo::C) { +function f2($x=A\Foo::C) { echo $x; } -function f3($x=B::Foo::C) { +function f3($x=B\Foo::C) { echo $x; } -function f4($x=::A::Foo::C) { +function f4($x=\A\Foo::C) { echo $x; } echo Foo::C; -echo A::Foo::C; -echo B::Foo::C; -echo ::A::Foo::C; +echo A\Foo::C; +echo B\Foo::C; +echo \A\Foo::C; f1(); f2(); f3(); diff --git a/Zend/tests/ns_035.phpt b/Zend/tests/ns_035.phpt index 259d17f6e3..b8aa717a07 100755 --- a/Zend/tests/ns_035.phpt +++ b/Zend/tests/ns_035.phpt @@ -8,11 +8,11 @@ namespace A; function f1($x = ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f2($x = ::ArrayObject::STD_PROP_LIST) { +function f2($x = \ArrayObject::STD_PROP_LIST) { var_dump($x); } var_dump(ArrayObject::STD_PROP_LIST); -var_dump(::ArrayObject::STD_PROP_LIST); +var_dump(\ArrayObject::STD_PROP_LIST); f1(); f2(); diff --git a/Zend/tests/ns_036.phpt b/Zend/tests/ns_036.phpt index 6fee2cb006..e63a7a4448 100755 --- a/Zend/tests/ns_036.phpt +++ b/Zend/tests/ns_036.phpt @@ -12,23 +12,23 @@ class ArrayObject { function f1($x = ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f2($x = ::ArrayObject::STD_PROP_LIST) { +function f2($x = \ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f3($x = A::ArrayObject::STD_PROP_LIST) { +function f3($x = A\ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f4($x = B::ArrayObject::STD_PROP_LIST) { +function f4($x = B\ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f5($x = ::A::ArrayObject::STD_PROP_LIST) { +function f5($x = \A\ArrayObject::STD_PROP_LIST) { var_dump($x); } var_dump(ArrayObject::STD_PROP_LIST); -var_dump(::ArrayObject::STD_PROP_LIST); -var_dump(A::ArrayObject::STD_PROP_LIST); -var_dump(B::ArrayObject::STD_PROP_LIST); -var_dump(::A::ArrayObject::STD_PROP_LIST); +var_dump(\ArrayObject::STD_PROP_LIST); +var_dump(A\ArrayObject::STD_PROP_LIST); +var_dump(B\ArrayObject::STD_PROP_LIST); +var_dump(\A\ArrayObject::STD_PROP_LIST); f1(); f2(); f3(); diff --git a/Zend/tests/ns_037.phpt b/Zend/tests/ns_037.phpt index ed36e0bb57..ba665925b4 100755 --- a/Zend/tests/ns_037.phpt +++ b/Zend/tests/ns_037.phpt @@ -15,21 +15,21 @@ class X { } } new X(); -new X::X(); -new Y::X(); -new ::X::X(); +new X\X(); +new Y\X(); +new \X\X(); X::bar(); -X::X::bar(); -Y::X::bar(); -::X::X::bar(); +X\X::bar(); +Y\X::bar(); +\X\X::bar(); echo X::C; -echo X::X::C; -echo Y::X::C; -echo ::X::X::C; +echo X\X::C; +echo Y\X::C; +echo \X\X::C; echo X::$var; -echo X::X::$var; -echo Y::X::$var; -echo ::X::X::$var; +echo X\X::$var; +echo Y\X::$var; +echo \X\X::$var; --EXPECT-- class ok class ok diff --git a/Zend/tests/ns_038.phpt b/Zend/tests/ns_038.phpt index fcaa3c4454..86cdaea30d 100755 --- a/Zend/tests/ns_038.phpt +++ b/Zend/tests/ns_038.phpt @@ -6,7 +6,7 @@ namespace Exception; function foo() { echo "ok\n"; } -Exception::foo(); +\Exception\foo(); Exception::bar(); --EXPECTF-- ok diff --git a/Zend/tests/ns_040.phpt b/Zend/tests/ns_040.phpt index fb2314466c..42a3ac07e9 100644 --- a/Zend/tests/ns_040.phpt +++ b/Zend/tests/ns_040.phpt @@ -9,13 +9,13 @@ const B = A; function f1($x=A) { echo $x; } -function f2($x=X::A) { +function f2($x=\X\A) { echo $x; } -function f3($x=Y::A) { +function f3($x=Y\A) { echo $x; } -function f4($x=::X::A) { +function f4($x=\X\A) { echo $x; } function f5($x=B) { @@ -31,9 +31,9 @@ function f8($x=array(A=>"aaa\n")) { echo $x["ok\n"]; } echo A; -echo X::A; -echo Y::A; -echo ::X::A; +echo \X\A; +echo Y\A; +echo \X\A; f1(); f2(); f3(); diff --git a/Zend/tests/ns_041.phpt b/Zend/tests/ns_041.phpt index 889f3d82c9..0632fc9815 100644 --- a/Zend/tests/ns_041.phpt +++ b/Zend/tests/ns_041.phpt @@ -2,13 +2,13 @@ 041: Constants in namespace --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const FOO = "ok\n"; echo(FOO); -echo(test::ns1::FOO); -echo(::test::ns1::FOO); +echo(\test\ns1\FOO); +echo(\test\ns1\FOO); echo(BAR); const BAR = "ok\n"; diff --git a/Zend/tests/ns_042.phpt b/Zend/tests/ns_042.phpt index eecd5f9256..ba420a7c80 100644 --- a/Zend/tests/ns_042.phpt +++ b/Zend/tests/ns_042.phpt @@ -2,18 +2,18 @@ 042: Import in namespace and constants --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const FOO = "ok\n"; -use test::ns1 as ns2; +use test\ns1 as ns2; use test as ns3; echo FOO; -echo test::ns1::FOO; -echo ::test::ns1::FOO; -echo ns2::FOO; -echo ns3::ns1::FOO; +echo \test\ns1\FOO; +echo \test\ns1\FOO; +echo ns2\FOO; +echo ns3\ns1\FOO; --EXPECT-- ok ok diff --git a/Zend/tests/ns_043.phpt b/Zend/tests/ns_043.phpt index 63bd05eaaf..bd5ee7440b 100644 --- a/Zend/tests/ns_043.phpt +++ b/Zend/tests/ns_043.phpt @@ -2,7 +2,7 @@ 043: Name conflict and constants (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const INI_ALL = 0; diff --git a/Zend/tests/ns_044.phpt b/Zend/tests/ns_044.phpt index d379b97a24..dbdee2e523 100644 --- a/Zend/tests/ns_044.phpt +++ b/Zend/tests/ns_044.phpt @@ -2,7 +2,7 @@ 044: Name conflict and constants (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; var_dump(INI_ALL); --EXPECT-- diff --git a/Zend/tests/ns_045.phpt b/Zend/tests/ns_045.phpt index d8c942948e..d45f9cf99d 100644 --- a/Zend/tests/ns_045.phpt +++ b/Zend/tests/ns_045.phpt @@ -2,10 +2,10 @@ 045: Name conflict and constants (php name in case if ns name exists) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const INI_ALL = 0; -var_dump(::INI_ALL); +var_dump(\INI_ALL); --EXPECT-- int(7) diff --git a/Zend/tests/ns_046.phpt b/Zend/tests/ns_046.phpt index e48f0cef24..d5203f14dc 100644 --- a/Zend/tests/ns_046.phpt +++ b/Zend/tests/ns_046.phpt @@ -2,10 +2,10 @@ 046: Run-time name conflict and constants (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const INI_ALL = 0; -var_dump(constant("test::ns1::INI_ALL")); +var_dump(constant("test\\ns1\\INI_ALL")); --EXPECT-- int(0) diff --git a/Zend/tests/ns_047.phpt b/Zend/tests/ns_047.phpt index 89795da256..73e32a0de7 100644 --- a/Zend/tests/ns_047.phpt +++ b/Zend/tests/ns_047.phpt @@ -2,7 +2,7 @@ 047: Run-time name conflict and constants (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const INI_ALL = 0; diff --git a/Zend/tests/ns_048.phpt b/Zend/tests/ns_048.phpt index 3837643cf2..db21f89103 100644 --- a/Zend/tests/ns_048.phpt +++ b/Zend/tests/ns_048.phpt @@ -2,10 +2,10 @@ 048: __NAMESPACE__ constant and runtime names (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const FOO = 0; -var_dump(constant(__NAMESPACE__ . "::FOO")); +var_dump(constant(__NAMESPACE__ . "\\FOO")); --EXPECT-- int(0) diff --git a/Zend/tests/ns_049.phpt b/Zend/tests/ns_049.phpt index 3e5ccc6783..91e516579b 100644 --- a/Zend/tests/ns_049.phpt +++ b/Zend/tests/ns_049.phpt @@ -4,6 +4,6 @@ <?php const FOO = 0; -var_dump(constant(__NAMESPACE__ . "::FOO")); +var_dump(constant(__NAMESPACE__ . "\\FOO")); --EXPECT-- int(0) diff --git a/Zend/tests/ns_050.phpt b/Zend/tests/ns_050.phpt index 9171f6c4b1..f827ec858d 100644 --- a/Zend/tests/ns_050.phpt +++ b/Zend/tests/ns_050.phpt @@ -2,7 +2,7 @@ 050: Name conflict and compile-time constants (ns name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const INI_ALL = 0; diff --git a/Zend/tests/ns_051.phpt b/Zend/tests/ns_051.phpt index 07985ba106..b95b53f78b 100644 --- a/Zend/tests/ns_051.phpt +++ b/Zend/tests/ns_051.phpt @@ -2,7 +2,7 @@ 051: Name conflict and compile-time constants (php name) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; function foo($x = INI_ALL) { var_dump($x); diff --git a/Zend/tests/ns_052.phpt b/Zend/tests/ns_052.phpt index 1f2c4a073f..cb0a05ff9f 100644 --- a/Zend/tests/ns_052.phpt +++ b/Zend/tests/ns_052.phpt @@ -2,11 +2,11 @@ 052: Name conflict and compile-time constants (php name in case if ns name exists) --FILE-- <?php -namespace test::ns1; +namespace test\ns1; const INI_ALL = 0; -function foo($x = ::INI_ALL) { +function foo($x = \INI_ALL) { var_dump($x); } foo(); diff --git a/Zend/tests/ns_053.phpt b/Zend/tests/ns_053.phpt index 8df545face..bc5ab12cdb 100644 --- a/Zend/tests/ns_053.phpt +++ b/Zend/tests/ns_053.phpt @@ -2,11 +2,11 @@ 053: Run-time constant definition --FILE-- <?php -namespace test::ns1; +namespace test\ns1; -define(__NAMESPACE__ . '::NAME', basename(__FILE__)); +define(__NAMESPACE__ . '\\NAME', basename(__FILE__)); echo NAME."\n"; -echo test::ns1::NAME."\n"; +echo \test\ns1\NAME."\n"; --EXPECT-- ns_053.php ns_053.php diff --git a/Zend/tests/ns_054.phpt b/Zend/tests/ns_054.phpt index 0eb9e0448f..528a3f8fb2 100755 --- a/Zend/tests/ns_054.phpt +++ b/Zend/tests/ns_054.phpt @@ -4,21 +4,21 @@ <?php if (!extension_loaded("spl")) die("skip SPL is no available"); ?> --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Foo implements SplObserver { - function update(::SplSubject $x) { + function update(\SplSubject $x) { echo "ok\n"; } } class Bar implements SplSubject { - function attach(::SplObserver $x) { + function attach(\SplObserver $x) { echo "ok\n"; } function notify() { } - function detach(::SplObserver $x) { + function detach(\SplObserver $x) { } } $foo = new Foo(); diff --git a/Zend/tests/ns_055.phpt b/Zend/tests/ns_055.phpt index 83d0613c1e..e10a55c513 100755 --- a/Zend/tests/ns_055.phpt +++ b/Zend/tests/ns_055.phpt @@ -2,19 +2,19 @@ 055: typehints in namespaces --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Foo { function test1(Foo $x) { echo "ok\n"; } - function test2(test::ns1::Foo $x) { + function test2(\test\ns1\Foo $x) { echo "ok\n"; } function test3(Exception $x) { echo "ok\n"; } - function test4(::Exception $x) { + function test4(\Exception $x) { echo "ok\n"; } } diff --git a/Zend/tests/ns_056.phpt b/Zend/tests/ns_056.phpt index 0bc4f0087d..2df5d6d6c4 100755 --- a/Zend/tests/ns_056.phpt +++ b/Zend/tests/ns_056.phpt @@ -4,7 +4,7 @@ <?php if (!extension_loaded("spl")) die("skip SPL is no available"); ?> --FILE-- <?php -namespace test::ns1; +namespace test\ns1; class Foo implements SplObserver { function update(SplSubject $x) { diff --git a/Zend/tests/ns_057.phpt b/Zend/tests/ns_057.phpt index cfa02f923f..7a994f6182 100755 --- a/Zend/tests/ns_057.phpt +++ b/Zend/tests/ns_057.phpt @@ -1,8 +1,8 @@ --TEST-- -057: Usage of 'namespace' in compound names (inside namespase) +057: Usage of 'namespace' in compound names (inside namespace) --FILE-- <?php -namespace Test::ns1; +namespace Test\ns1; const C = "const ok\n"; @@ -12,7 +12,7 @@ function foo() { class foo { const C = "const ok\n"; - const C2 = namespace::C; + const C2 = namespace\C; static $var = "var ok\n"; function __construct() { echo "class ok\n"; @@ -22,26 +22,26 @@ class foo { } } -function f1($x=namespace::C) { +function f1($x=namespace\C) { return $x; } -function f2($x=namespace::foo::C) { +function f2($x=namespace\foo::C) { return $x; } -function f3(namespace::foo $x) { +function f3(namespace\foo $x) { return "ok\n"; } -echo namespace::C; -echo namespace::foo(); -echo namespace::foo::C; -echo namespace::foo::C2; -echo namespace::foo::$var; -echo namespace::foo::bar(); -echo namespace::f1(); -echo namespace::f2(); -echo namespace::f3(new namespace::foo()); +echo namespace\C; +echo namespace\foo(); +echo namespace\foo::C; +echo namespace\foo::C2; +echo namespace\foo::$var; +echo namespace\foo::bar(); +echo namespace\f1(); +echo namespace\f2(); +echo namespace\f3(new namespace\foo()); ?> --EXPECTF-- const ok diff --git a/Zend/tests/ns_058.phpt b/Zend/tests/ns_058.phpt index 6c86f10f9d..7fc5909bef 100755 --- a/Zend/tests/ns_058.phpt +++ b/Zend/tests/ns_058.phpt @@ -10,7 +10,7 @@ function foo() { class foo { const C = "const ok\n"; - const C2 = namespace::C; + const C2 = namespace\C; static $var = "var ok\n"; function __construct() { echo "class ok\n"; @@ -20,26 +20,26 @@ class foo { } } -function f1($x=namespace::C) { +function f1($x=namespace\C) { return $x; } -function f2($x=namespace::foo::C) { +function f2($x=namespace\foo::C) { return $x; } -function f3(namespace::foo $x) { +function f3(namespace\foo $x) { return "ok\n"; } -echo namespace::C; -echo namespace::foo(); -echo namespace::foo::C; -echo namespace::foo::C2; -echo namespace::foo::$var; -echo namespace::foo::bar(); -echo namespace::f1(); -echo namespace::f2(); -echo namespace::f3(new namespace::foo()); +echo namespace\C; +echo namespace\foo(); +echo namespace\foo::C; +echo namespace\foo::C2; +echo namespace\foo::$var; +echo namespace\foo::bar(); +echo namespace\f1(); +echo namespace\f2(); +echo namespace\f3(new namespace\foo()); ?> --EXPECT-- const ok diff --git a/Zend/tests/ns_060.phpt b/Zend/tests/ns_060.phpt index cc86d0e087..16c8024f00 100644 --- a/Zend/tests/ns_060.phpt +++ b/Zend/tests/ns_060.phpt @@ -3,21 +3,21 @@ --FILE-- <?php namespace Foo; -use Bar::A as B; +use Bar\A as B; class A {} $a = new B; $b = new A; echo get_class($a)."\n"; echo get_class($b)."\n"; namespace Bar; -use Foo::A as B; +use Foo\A as B; $a = new B; $b = new A; echo get_class($a)."\n"; echo get_class($b)."\n"; class A {} --EXPECT-- -Bar::A -Foo::A -Foo::A -Bar::A +Bar\A +Foo\A +Foo\A +Bar\A diff --git a/Zend/tests/ns_061.phpt b/Zend/tests/ns_061.phpt index a02f63d71f..948f675d6d 100644 --- a/Zend/tests/ns_061.phpt +++ b/Zend/tests/ns_061.phpt @@ -3,7 +3,7 @@ --FILE-- <?php class A {} -use ::A as B; +use \A as B; echo get_class(new B)."\n"; --EXPECT-- A diff --git a/Zend/tests/ns_062.phpt b/Zend/tests/ns_062.phpt index 07043dbf68..d795da4c68 100644 --- a/Zend/tests/ns_062.phpt +++ b/Zend/tests/ns_062.phpt @@ -1,10 +1,10 @@ --TEST-- -062: use ::global class +062: use \global class --FILE-- <?php namespace Foo; -use ::stdClass; -use ::stdClass as A; +use \stdClass; +use \stdClass as A; echo get_class(new stdClass)."\n"; echo get_class(new A)."\n"; --EXPECT-- diff --git a/Zend/tests/ns_064.phpt b/Zend/tests/ns_064.phpt index 29e9e56714..0a7c4bc82d 100644 --- a/Zend/tests/ns_064.phpt +++ b/Zend/tests/ns_064.phpt @@ -21,7 +21,7 @@ class foo { } } -use test::foo as stdClass; +use test\foo as stdClass; $x = new stdClass; $x->a = 1; diff --git a/Zend/tests/ns_065.inc b/Zend/tests/ns_065.inc index a625a4a1b4..963a74e140 100755 --- a/Zend/tests/ns_065.inc +++ b/Zend/tests/ns_065.inc @@ -1,9 +1,9 @@ <?php -namespace X::Y; +namespace X\Y; function foo() { echo __FUNCTION__."\n"; } -namespace X::Z; +namespace X\Z; function foo() { echo __FUNCTION__."\n"; } diff --git a/Zend/tests/ns_065.phpt b/Zend/tests/ns_065.phpt index 8d7e7fbb1a..40ccd1e153 100755 --- a/Zend/tests/ns_065.phpt +++ b/Zend/tests/ns_065.phpt @@ -2,12 +2,12 @@ 065: Multiple names in use statement --FILE-- <?php -use X::Y as test, X::Z as test2; +use X\Y as test, X\Z as test2; require "ns_065.inc"; -test::foo(); -test2::foo(); +test\foo(); +test2\foo(); --EXPECT-- -X::Y::foo -X::Z::foo +X\Y\foo +X\Z\foo diff --git a/Zend/tests/ns_066.phpt b/Zend/tests/ns_066.phpt index 3a7d9a521f..881589cf2c 100644 --- a/Zend/tests/ns_066.phpt +++ b/Zend/tests/ns_066.phpt @@ -3,8 +3,8 @@ --FILE-- <?php include __DIR__ . '/ns_027.inc'; -use Foo::Bar::Foo as stdClass; +use Foo\Bar\Foo as stdClass; new stdClass(); --EXPECT-- -Foo::Bar::Foo +Foo\Bar\Foo diff --git a/Zend/tests/ns_067.inc b/Zend/tests/ns_067.inc index 09327b276d..c3c14b1468 100644 --- a/Zend/tests/ns_067.inc +++ b/Zend/tests/ns_067.inc @@ -1,3 +1,3 @@ <?php -use Foo::Bar::Foo as Test; +use Foo\Bar\Foo as Test; new Test(); diff --git a/Zend/tests/ns_067.phpt b/Zend/tests/ns_067.phpt index c5096278db..b94eb30ead 100644 --- a/Zend/tests/ns_067.phpt +++ b/Zend/tests/ns_067.phpt @@ -6,4 +6,4 @@ include __DIR__ . '/ns_022.inc'; include __DIR__ . '/ns_027.inc'; include __DIR__ . '/ns_067.inc'; --EXPECT-- -Foo::Bar::Foo +Foo\Bar\Foo diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 36a7639a2d..23a3dbbe31 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1794,8 +1794,8 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio if (scope) { class_name_len = strlen(scope->name); - if ((lc_class_name = zend_memrchr(scope->name, ':', class_name_len))) { - lc_class_name++; + if ((lc_class_name = zend_memrchr(scope->name, '\\', class_name_len))) { + ++lc_class_name; class_name_len -= (lc_class_name - scope->name); lc_class_name = zend_str_tolower_dup(lc_class_name, class_name_len); } else { @@ -2394,13 +2394,11 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca fcc->function_handler = NULL; if (!ce_org) { - /* Skip leading :: */ - if (Z_STRVAL_P(callable)[0] == ':' && - Z_STRVAL_P(callable)[1] == ':' - ) { - mlen = Z_STRLEN_P(callable) - 2; - mname = Z_STRVAL_P(callable) + 2; - lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 2, mlen); + /* Skip leading \ */ + if (Z_STRVAL_P(callable)[0] == '\\') { + mlen = Z_STRLEN_P(callable) - 1; + mname = Z_STRVAL_P(callable) + 1; + lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 1, mlen); } else { mlen = Z_STRLEN_P(callable); mname = Z_STRVAL_P(callable); diff --git a/Zend/zend_API.h b/Zend/zend_API.h index d8b2b3fcff..9b5bb70781 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -60,7 +60,7 @@ typedef struct _zend_fcall_info_cache { zval **object_pp; } zend_fcall_info_cache; -#define ZEND_NS_NAME(ns, name) ns"::"name +#define ZEND_NS_NAME(ns, name) ns"\\"name #define ZEND_FN(name) zif_##name #define ZEND_MN(name) zim_##name diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 368f8e92a9..5d1c583fb1 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1242,9 +1242,9 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n int short_class_name_length; char *short_class_lcname; - if ((short_class_name = zend_memrchr(CG(active_class_entry)->name, ':', CG(active_class_entry)->name_length))) { - short_class_name++; - short_class_name_length = CG(active_class_entry)->name_length - (short_class_name - CG(active_class_entry)->name); + if ((short_class_name = zend_memrchr(CG(active_class_entry)->name, '\\', CG(active_class_entry)->name_length))) { + short_class_name_length = CG(active_class_entry)->name_length - (short_class_name - CG(active_class_entry)->name) - 1; + ++short_class_name; } else { short_class_name = CG(active_class_entry)->name; short_class_name_length = CG(active_class_entry)->name_length; @@ -1535,21 +1535,32 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace zend_function *function; char *lcname; int prefix_len = 0; + char *is_compound = NULL; - if (check_namespace && CG(current_namespace)) { - /* We assume we call function from the current namespace - if it is not prefixed. */ - znode tmp; + if (Z_STRVAL(function_name->u.constant)[0] == '\\') { + is_compound = memchr(Z_STRVAL(function_name->u.constant)+1, '\\', Z_STRLEN(function_name->u.constant)-1); + } else { + is_compound = memchr(Z_STRVAL(function_name->u.constant), '\\', Z_STRLEN(function_name->u.constant)); + } + if (check_namespace) { + ulong unused; - tmp.op_type = IS_CONST; - tmp.u.constant = *CG(current_namespace); - zval_copy_ctor(&tmp.u.constant); - zend_do_build_namespace_name(&tmp, &tmp, function_name TSRMLS_CC); - *function_name = tmp; + zend_resolve_non_class_name(function_name, &unused, 2, 1 TSRMLS_CC); + if (Z_STRVAL(function_name->u.constant)[0] == '\\') { + memmove(Z_STRVAL(function_name->u.constant), Z_STRVAL(function_name->u.constant)+1, Z_STRLEN(function_name->u.constant)); + --Z_STRLEN(function_name->u.constant); + } + if (CG(current_namespace) && !is_compound) { + /* We assume we call function from the current namespace + if it is not prefixed. */ - /* In run-time PHP will check for function with full name and - internal function with short name */ - prefix_len = Z_STRLEN_P(CG(current_namespace)) + 2; + /* In run-time PHP will check for function with full name and + internal function with short name */ + prefix_len = Z_STRLEN_P(CG(current_namespace)) + 1; + } + } else if (Z_STRVAL(function_name->u.constant)[0] == '\\') { + memmove(Z_STRVAL(function_name->u.constant), Z_STRVAL(function_name->u.constant)+1, Z_STRLEN(function_name->u.constant)); + --Z_STRLEN(function_name->u.constant); } lcname = zend_str_tolower_dup(function_name->u.constant.value.str.val, function_name->u.constant.value.str.len); @@ -1649,7 +1660,8 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TS Z_TYPE(opline->op1.u.constant) = IS_STRING; Z_STRLEN(opline->op1.u.constant) = Z_STRLEN(function_name->u.constant) - prefix_len; Z_STRVAL(opline->op1.u.constant) = zend_str_tolower_dup(Z_STRVAL(function_name->u.constant) + prefix_len, Z_STRLEN(opline->op1.u.constant)); - SET_UNUSED(opline->op2); + opline->op2.op_type = IS_CONST; + ZVAL_BOOL(&opline->op2.u.constant, (memchr(Z_STRVAL(opline->op1.u.constant), '\\', Z_STRLEN(opline->op1.u.constant)) != NULL)); opline->extended_value = zend_hash_func(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant) + 1); } else { opline->opcode = ZEND_INIT_FCALL_BY_NAME; @@ -1672,6 +1684,68 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TS zend_do_extended_fcall_begin(TSRMLS_C); } +/* type = 1 for constant, 2 for function */ +void zend_resolve_non_class_name(znode *element_name, ulong *fetch_type, int type, int check_namespace TSRMLS_DC) +{ + znode tmp; + int len; + zval **ns; + char *lcname, *check_import = memchr(Z_STRVAL(element_name->u.constant), '\\', Z_STRLEN(element_name->u.constant)); + + if (Z_STRVAL(element_name->u.constant)[0] == '\\') { + check_namespace = 0; + check_import = 0; + } + + if (check_import && CG(current_import)) { + len = check_import - Z_STRVAL(element_name->u.constant); + lcname = zend_str_tolower_dup(Z_STRVAL(element_name->u.constant), len); + /* Check if first part of compound name is an import name */ + if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) { + if (!check_import && type == 1) { + /* tell zend_get_constant_ex this is an ambiguous T_STRING */ + *fetch_type |= IS_CONSTANT_RT_NS_CHECK; + } + /* Substitute import name */ + tmp.op_type = IS_CONST; + tmp.u.constant = **ns; + zval_copy_ctor(&tmp.u.constant); + len += 1; + Z_STRLEN(element_name->u.constant) -= len; + memmove(Z_STRVAL(element_name->u.constant), Z_STRVAL(element_name->u.constant)+len, Z_STRLEN(element_name->u.constant)+1); + zend_do_build_namespace_name(&tmp, &tmp, element_name TSRMLS_CC); + if (Z_STRVAL(tmp.u.constant)[0] != '\\') { + /* make this a \global\namespaced\element */ + znode global; + + zend_do_build_namespace_name(&global, NULL, &tmp TSRMLS_CC); + *element_name = global; + } else { + *element_name = tmp; + } + efree(lcname); + return; + } + efree(lcname); + } + + if (check_namespace && CG(current_namespace)) { + tmp = *element_name; + Z_STRLEN(tmp.u.constant) = sizeof("\\")-1 + Z_STRLEN(element_name->u.constant) + Z_STRLEN_P(CG(current_namespace)); + Z_STRVAL(tmp.u.constant) = (char *) emalloc(Z_STRLEN(tmp.u.constant)+1); + memcpy(Z_STRVAL(tmp.u.constant), Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace))); + memcpy(&(Z_STRVAL(tmp.u.constant)[Z_STRLEN_P(CG(current_namespace))]), "\\", sizeof("\\")-1); + memcpy(&(Z_STRVAL(tmp.u.constant)[Z_STRLEN_P(CG(current_namespace)) + sizeof("\\")-1]), Z_STRVAL(element_name->u.constant), Z_STRLEN(element_name->u.constant)+1); + STR_FREE(Z_STRVAL(element_name->u.constant)); + *element_name = tmp; + if (type == 1) { + /* We assume we use constant from the current namespace + if it is not prefixed. */ + *fetch_type |= IS_CONSTANT_RT_NS_CHECK; + } + } +} + void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC) { char *compound; @@ -1680,40 +1754,51 @@ void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_ znode tmp; int len; - compound = memchr(Z_STRVAL(class_name->u.constant), ':', Z_STRLEN(class_name->u.constant)); + compound = memchr(Z_STRVAL(class_name->u.constant), '\\', Z_STRLEN(class_name->u.constant)); if (compound) { - /* This is a compound class name that cotains namespace prefix */ + /* This is a compound class name that contains namespace prefix */ if (Z_TYPE(class_name->u.constant) == IS_STRING && - Z_STRVAL(class_name->u.constant)[0] == ':') { - /* The STRING name has "::" prefix */ - Z_STRLEN(class_name->u.constant) -= 2; - memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+2, Z_STRLEN(class_name->u.constant)+1); + Z_STRVAL(class_name->u.constant)[0] == '\\') { + /* The STRING name has "\" prefix */ + Z_STRLEN(class_name->u.constant) -= 1; + memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+1, Z_STRLEN(class_name->u.constant)+1); Z_STRVAL(class_name->u.constant) = erealloc( Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant) + 1); if (ZEND_FETCH_CLASS_DEFAULT != zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant))) { - zend_error(E_COMPILE_ERROR, "'::%s' is a wrong class name", Z_STRVAL(class_name->u.constant)); + zend_error(E_COMPILE_ERROR, "'\\%s' is an invalid class name", Z_STRVAL(class_name->u.constant)); } - } else if (CG(current_import)) { - len = compound - Z_STRVAL(class_name->u.constant); - lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), len); - /* Check if first part of compound name is an import name */ - if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) { - /* Substitute import name */ + } else { + if (CG(current_import)) { + len = compound - Z_STRVAL(class_name->u.constant); + lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), len); + /* Check if first part of compound name is an import name */ + if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) { + /* Substitute import name */ + tmp.op_type = IS_CONST; + tmp.u.constant = **ns; + zval_copy_ctor(&tmp.u.constant); + len += 1; + Z_STRLEN(class_name->u.constant) -= len; + memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+len, Z_STRLEN(class_name->u.constant)+1); + zend_do_build_namespace_name(&tmp, &tmp, class_name TSRMLS_CC); + *class_name = tmp; + } + efree(lcname); + return; + } + + if (CG(current_namespace)) { tmp.op_type = IS_CONST; - tmp.u.constant = **ns; + tmp.u.constant = *CG(current_namespace); zval_copy_ctor(&tmp.u.constant); - len += 2; - Z_STRLEN(class_name->u.constant) -= len; - memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+len, Z_STRLEN(class_name->u.constant)+1); zend_do_build_namespace_name(&tmp, &tmp, class_name TSRMLS_CC); *class_name = tmp; } - efree(lcname); } } else if (CG(current_import) || CG(current_namespace)) { - /* this is a plain name (without ::) */ + /* this is a plain name (without \) */ lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant)); if (CG(current_import) && @@ -1726,7 +1811,7 @@ void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_ zend_class_entry **pce; if (check_ns_name) { - /* PHP will need to perform additional cheks at run-time to + /* PHP will need to perform additional checks at run-time to determine if we assume namespace or class name. */ *fetch_type |= ZEND_FETCH_CLASS_RT_NS_NAME; } @@ -1902,7 +1987,7 @@ void zend_release_labels(TSRMLS_D) /* {{{ */ } /* }}} */ -void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC) +void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_class_member TSRMLS_DC) { zend_uint length; @@ -1912,12 +1997,21 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC *result = *prefix; } - length = sizeof("::")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len; - result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1); - memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "::", sizeof("::")-1); - memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1); - STR_FREE(name->u.constant.value.str.val); - result->u.constant.value.str.len = length; + if (is_class_member) { + length = sizeof("::")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len; + result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1); + memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "::", sizeof("::")-1); + memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1); + STR_FREE(name->u.constant.value.str.val); + result->u.constant.value.str.len = length; + } else { + length = sizeof("\\")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len; + result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1); + memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "\\", sizeof("\\")-1); + memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("\\")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1); + STR_FREE(name->u.constant.value.str.val); + result->u.constant.value.str.len = length; + } } int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC) @@ -1985,15 +2079,14 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na nsname_len = Z_STRLEN(class_node.u.constant); if (fetch_type & ZEND_FETCH_CLASS_RT_NS_NAME) { /* Remove namespace name */ - nsname = (char *)memchr(nsname, ':', nsname_len) + 2; + nsname = (char *)memchr(nsname, '\\', nsname_len) + 1; nsname_len -= (nsname - Z_STRVAL(class_node.u.constant)); } - len = nsname_len + 2 + Z_STRLEN(method_name->u.constant); + len = nsname_len + 1 + Z_STRLEN(method_name->u.constant); fname = emalloc(len + 1); memcpy(fname, nsname, nsname_len); - fname[nsname_len] = ':'; - fname[nsname_len + 1] = ':'; - memcpy(fname + nsname_len + 2, + fname[nsname_len] = '\\'; + memcpy(fname + nsname_len + 1, Z_STRVAL(method_name->u.constant), Z_STRLEN(method_name->u.constant)+1); zend_str_tolower(fname, len); @@ -2523,8 +2616,8 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c char *colon; if (fe->common.type != ZEND_USER_FUNCTION || - strchr(proto->common.arg_info[i].class_name, ':') != NULL || - (colon = zend_memrchr(fe->common.arg_info[i].class_name, ':', fe->common.arg_info[i].class_name_len)) == NULL || + strchr(proto->common.arg_info[i].class_name, '\\') != NULL || + (colon = zend_memrchr(fe->common.arg_info[i].class_name, '\\', fe->common.arg_info[i].class_name_len)) == NULL || strcasecmp(colon+1, proto->common.arg_info[i].class_name) != 0) { return 0; } @@ -3771,7 +3864,20 @@ static zend_constant* zend_get_ct_const(const zval *const_name, int all_internal { zend_constant *c = NULL; - if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)+1, (void **) &c) == FAILURE) { + if (Z_STRVAL_P(const_name)[0] == '\\') { + if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name)+1, Z_STRLEN_P(const_name), (void **) &c) == FAILURE) { + char *lookup_name = zend_str_tolower_dup(Z_STRVAL_P(const_name)+1, Z_STRLEN_P(const_name)-1); + + if (zend_hash_find(EG(zend_constants), lookup_name, Z_STRLEN_P(const_name), (void **) &c)==SUCCESS) { + if ((c->flags & CONST_CT_SUBST) && !(c->flags & CONST_CS)) { + efree(lookup_name); + return c; + } + } + efree(lookup_name); + return NULL; + } + } else if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)+1, (void **) &c) == FAILURE) { char *lookup_name = zend_str_tolower_dup(Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)); if (zend_hash_find(EG(zend_constants), lookup_name, Z_STRLEN_P(const_name)+1, (void **) &c)==SUCCESS) { @@ -3815,112 +3921,144 @@ static int zend_constant_ct_subst(znode *result, zval *const_name, int all_inter void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode, zend_bool check_namespace TSRMLS_DC) /* {{{ */ { - ulong fetch_type = 0; znode tmp; + zend_op *opline; + int type; + char *check_import; + ulong fetch_type = 0; + int unknown_should_fatal = 0; - if (constant_container && - constant_container->op_type == IS_CONST && - Z_TYPE(constant_container->u.constant) == IS_STRING && - Z_STRLEN(constant_container->u.constant) == 0) { - /* namespace::const */ - zval_dtor(&constant_container->u.constant); - check_namespace = 1; - constant_container = NULL; - fetch_type = ZEND_FETCH_CLASS_RT_NS_CHECK | IS_CONSTANT_RT_NS_CHECK; - } - - switch (mode) { - case ZEND_CT: - if (constant_container) { - int type = zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant)); - + if (constant_container) { + switch (mode) { + case ZEND_CT: + /* this is a class constant */ + type = zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant)); + if (ZEND_FETCH_CLASS_STATIC == type) { zend_error(E_ERROR, "\"static::\" is not allowed in compile-time constants"); } else if (ZEND_FETCH_CLASS_DEFAULT == type) { zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); } - zend_do_build_full_name(NULL, constant_container, constant_name TSRMLS_CC); + zend_do_build_full_name(NULL, constant_container, constant_name, 1 TSRMLS_CC); *result = *constant_container; result->u.constant.type = IS_CONSTANT | fetch_type; - } else if (fetch_type || !zend_constant_ct_subst(result, &constant_name->u.constant, 0 TSRMLS_CC)) { - if (check_namespace && CG(current_namespace)) { - /* We assume we use constant from the current namespace - if it is not prefixed. */ - tmp.op_type = IS_CONST; - tmp.u.constant = *CG(current_namespace); - zval_copy_ctor(&tmp.u.constant); - zend_do_build_namespace_name(&tmp, &tmp, constant_name TSRMLS_CC); - *constant_name = tmp; - fetch_type |= IS_CONSTANT_RT_NS_CHECK; - } - *result = *constant_name; - result->u.constant.type = IS_CONSTANT | fetch_type; - } - break; - case ZEND_RT: - if (constant_container || - !zend_constant_ct_subst(result, &constant_name->u.constant, (!CG(current_namespace) || !check_namespace) TSRMLS_CC)) { - zend_op *opline; - - if (constant_container) { - if (constant_container->op_type == IS_CONST && - ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant))) { - zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); - } else { - zend_do_fetch_class(&tmp, constant_container TSRMLS_CC); - constant_container = &tmp; - } - } else if (check_namespace && CG(current_namespace)) { - /* We assume we use constant from the current namespace - if it is not prefixed. */ - tmp.op_type = IS_CONST; - tmp.u.constant = *CG(current_namespace); - zval_copy_ctor(&tmp.u.constant); + break; + case ZEND_RT: + if (constant_container->op_type == IS_CONST && + ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant))) { + zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); + } else { + zend_do_fetch_class(&tmp, constant_container TSRMLS_CC); constant_container = &tmp; - fetch_type |= IS_CONSTANT_RT_NS_CHECK; } opline = get_next_op(CG(active_op_array) TSRMLS_CC); opline->opcode = ZEND_FETCH_CONSTANT; - opline->extended_value = fetch_type & ~ZEND_FETCH_CLASS_RT_NS_NAME; opline->result.op_type = IS_TMP_VAR; opline->result.u.var = get_temporary_variable(CG(active_op_array)); - if (constant_container) { - opline->op1 = *constant_container; - } else { - SET_UNUSED(opline->op1); - } + opline->extended_value = fetch_type & ~ZEND_FETCH_CLASS_RT_NS_NAME; + opline->op1 = *constant_container; opline->op2 = *constant_name; *result = opline->result; + break; + } + return; + } + /* namespace constant */ + switch (mode) { + case ZEND_CT: + if (check_namespace == 2) { + unknown_should_fatal = 1; + check_namespace = 0; + } + type = zend_get_class_fetch_type(Z_STRVAL(constant_name->u.constant), Z_STRLEN(constant_name->u.constant)); + check_import = memchr(Z_STRVAL(constant_name->u.constant), '\\', Z_STRLEN(constant_name->u.constant)); + /* this is a namespace constant, or an unprefixed constant */ + + if (Z_STRVAL(constant_name->u.constant)[0] == '\\') { + check_namespace = 0; + if (memchr(Z_STRVAL(constant_name->u.constant)+1, '\\', Z_STRLEN(constant_name->u.constant)-1)) { + /* tell engine this is an explicit namespaced constant, which + results in fatal error if constant not found, see + zend_execute_API.c::zval_update_constant_ex() */ + unknown_should_fatal = 1; + } + check_import = 0; + } else if (check_import) { + unknown_should_fatal = 1; + } + if (ZEND_FETCH_CLASS_STATIC == type) { + zend_error(E_ERROR, "\"static\\\" is not allowed in compile-time constants"); + } - if (opline->op1.op_type == IS_CONST) { - /* Prebuild ns::func name to speedup run-time check. - The additional names are stored in additional OP_DATA opcode. */ - char *nsname; - unsigned int nsname_len; - - opline = get_next_op(CG(active_op_array) TSRMLS_CC); - opline->opcode = ZEND_OP_DATA; - opline->op1.op_type = IS_CONST; - SET_UNUSED(opline->op2); - - nsname = Z_STRVAL(constant_container->u.constant); - nsname_len = Z_STRLEN(constant_container->u.constant); - if (fetch_type & ZEND_FETCH_CLASS_RT_NS_NAME) { - /* Remove namespace name */ - nsname = (char *)memchr(nsname, ':', nsname_len) + 2; - nsname_len -= (nsname - Z_STRVAL(constant_container->u.constant)); - } + zend_resolve_non_class_name(constant_name, &fetch_type, 1, check_namespace TSRMLS_CC); + if (zend_constant_ct_subst(result, &constant_name->u.constant, 0 TSRMLS_CC)) { + break; + } + fetch_type &= IS_CONSTANT_RT_NS_CHECK; + if (unknown_should_fatal) { + fetch_type |= ZEND_FETCH_CLASS_RT_NS_CHECK; + } + *result = *constant_name; + result->u.constant.type = IS_CONSTANT | fetch_type; + break; + case ZEND_RT: + /* this is a namespace constant, or an unprefixed constant */ + /* check_namespace = 2 means namespace\ prefix passed in */ + /* check_namespace = 0 means \constant\name passed in */ + /* check_namespace = 1 means constant\name passed in or name passed in */ + + if (check_namespace == 2) { + unknown_should_fatal = 1; + check_namespace = 0; + } + type = zend_get_class_fetch_type(Z_STRVAL(constant_name->u.constant), Z_STRLEN(constant_name->u.constant)); + if (ZEND_FETCH_CLASS_STATIC == type) { + zend_error(E_ERROR, "\"static::\" is not allowed in compile-time constants"); + } + + if (Z_STRVAL(constant_name->u.constant)[0] == '\\') { + check_namespace = 0; + check_import = 0; + if (memchr(Z_STRVAL(constant_name->u.constant)+1, '\\', Z_STRLEN(constant_name->u.constant)-1)) { + /* tell engine this is an explicit namespaced constant, which + results in fatal error if constant not found */ + unknown_should_fatal = 1; + } - Z_TYPE(opline->op1.u.constant) = IS_STRING; - Z_STRVAL(opline->op1.u.constant) = emalloc(nsname_len + 2 + Z_STRLEN(constant_name->u.constant) + 1); - zend_str_tolower_copy(Z_STRVAL(opline->op1.u.constant), nsname, nsname_len); - Z_STRVAL(opline->op1.u.constant)[nsname_len] = ':'; - Z_STRVAL(opline->op1.u.constant)[nsname_len+1] = ':'; - memcpy(Z_STRVAL(opline->op1.u.constant)+nsname_len+2, Z_STRVAL(constant_name->u.constant), Z_STRLEN(constant_name->u.constant) + 1); - Z_STRLEN(opline->op1.u.constant) = nsname_len + 2 + Z_STRLEN(constant_name->u.constant); - opline->extended_value = zend_hash_func(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant) + 1); + /* we can only check for compile-time if the constant is explicitly + \top\level */ +check_compile_time: + if (zend_constant_ct_subst(result, &constant_name->u.constant, 1 TSRMLS_CC)) { + break; } + } else { + check_import = memchr(Z_STRVAL(constant_name->u.constant), '\\', Z_STRLEN(constant_name->u.constant)); + if (check_import) { + unknown_should_fatal = 1; + } + + if (!check_namespace || !CG(current_namespace)) { + goto check_compile_time; + } + } + /* we reach here if the constant name is ambiguous (not \this) */ + /* we will store nsname and <whatever>, where + <whatever> is the actual constant name passed in (foo or foo/foo) + and ZEND_FETCH_CONSTANT will first look for nsname/<whatever> and then + <whatever> after current_import is applied to <whatever> */ + opline = get_next_op(CG(active_op_array) TSRMLS_CC); + if (unknown_should_fatal) { + fetch_type = ZEND_FETCH_CLASS_RT_NS_CHECK; } + opline->opcode = ZEND_FETCH_CONSTANT; + opline->result.op_type = IS_TMP_VAR; + opline->result.u.var = get_temporary_variable(CG(active_op_array)); + *result = opline->result; + + SET_UNUSED(opline->op1); + zend_resolve_non_class_name(constant_name, &fetch_type, 1, check_namespace TSRMLS_CC); + opline->extended_value = fetch_type; + opline->op2 = *constant_name; break; } } @@ -5013,7 +5151,7 @@ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRM *result = *prefix; if (Z_TYPE(result->u.constant) == IS_STRING && Z_STRLEN(result->u.constant) == 0) { - /* namespace:: */ + /* namespace\ */ if (CG(current_namespace)) { znode tmp; @@ -5031,7 +5169,7 @@ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRM Z_STRLEN(result->u.constant) = 0; } /* prefix = result */ - zend_do_build_full_name(NULL, result, name TSRMLS_CC); + zend_do_build_full_name(NULL, result, name, 0 TSRMLS_CC); } /* }}} */ @@ -5094,10 +5232,10 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{ } else { char *p; - /* The form "use A::B" is eqivalent to "use A::B as B". - So we extract the last part of compound name ti use as a new_name */ + /* The form "use A\B" is eqivalent to "use A\B as B". + So we extract the last part of compound name to use as a new_name */ name = &tmp; - p = zend_memrchr(Z_STRVAL_P(ns), ':', Z_STRLEN_P(ns)); + p = zend_memrchr(Z_STRVAL_P(ns), '\\', Z_STRLEN_P(ns)); if (p) { ZVAL_STRING(name, p+1, 1); } else { @@ -5118,16 +5256,15 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{ if (CG(current_namespace)) { /* Prefix import name with current namespace name to avoid conflicts with classes */ - char *ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 2 + Z_STRLEN_P(name) + 1); + char *ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) + 1); zend_str_tolower_copy(ns_name, Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace))); - ns_name[Z_STRLEN_P(CG(current_namespace))] = ':'; - ns_name[Z_STRLEN_P(CG(current_namespace))+1] = ':'; - memcpy(ns_name+Z_STRLEN_P(CG(current_namespace))+2, lcname, Z_STRLEN_P(name)+1); - if (zend_hash_exists(CG(class_table), ns_name, Z_STRLEN_P(CG(current_namespace)) + 2 + Z_STRLEN_P(name)+1)) { + ns_name[Z_STRLEN_P(CG(current_namespace))] = '\\'; + memcpy(ns_name+Z_STRLEN_P(CG(current_namespace))+1, lcname, Z_STRLEN_P(name)+1); + if (zend_hash_exists(CG(class_table), ns_name, Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name)+1)) { char *tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns)); - if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 2 + Z_STRLEN_P(name) || + if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) || memcmp(tmp, ns_name, Z_STRLEN_P(ns))) { zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name)); } diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index cb76bc4780..25c2c5f13d 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -359,6 +359,7 @@ ZEND_API char *zend_get_compiled_filename(TSRMLS_D); ZEND_API int zend_get_compiled_lineno(TSRMLS_D); ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D); +void zend_resolve_non_class_name(znode *element_name, ulong *fetch_type, int type, int check_namespace TSRMLS_DC); void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC); ZEND_API char* zend_get_compiled_variable_name(const zend_op_array *op_array, zend_uint var, int* name_len); @@ -427,7 +428,7 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC); void zend_do_clone(znode *result, const znode *expr TSRMLS_DC); void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TSRMLS_DC); void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC); -void zend_do_build_full_name(znode *result, znode *prefix, znode *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_return(znode *expr, int do_end_vparse TSRMLS_DC); diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 0b76ab28ad..4bff7b6e7e 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -277,27 +277,27 @@ ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result, zend_constant *c; int retval = 1; char *colon; + zend_class_entry *ce = NULL; + char *class_name; + zval **ret_constant; /* Skip leading :: */ - if (name[0] == ':' && name[1] == ':') { - name += 2; - name_len -= 2; + if (name[0] == '\\') { + name += 1; + name_len -= 1; flags &= ZEND_FETCH_CLASS_SILENT; } - + if ((colon = zend_memrchr(name, ':', name_len)) && - colon > name && - *(colon-1) == ':') { - /* compound constant name */ - zend_class_entry *ce = NULL; + colon > name && (*(colon - 1) == ':')) { int class_name_len = colon - name - 1; int const_name_len = name_len - class_name_len - 2; - char *constant_name = constant_name = colon + 1; - char *class_name = estrndup(name, class_name_len); - char *lcname = zend_str_tolower_dup(class_name, class_name_len); - zval **ret_constant; + char *constant_name = colon + 1; + char *lcname; + class_name = estrndup(name, class_name_len); + lcname = zend_str_tolower_dup(class_name, class_name_len); if (!scope) { if (EG(in_execution)) { scope = EG(scope); @@ -334,59 +334,68 @@ ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result, } efree(lcname); } else { - /* Check for namespace constant */ - char *nsname; - unsigned int nsname_len; - - /* Concatenate lowercase namespace name and constant name */ - lcname = erealloc(lcname, class_name_len + 2 + const_name_len + 1); - lcname[class_name_len] = ':'; - lcname[class_name_len+1] = ':'; - memcpy(lcname + class_name_len + 2, constant_name, const_name_len + 1); - - nsname = lcname; - nsname_len = class_name_len + 2 + const_name_len; - if (flags & ZEND_FETCH_CLASS_RT_NS_NAME) { - nsname = (char *)memchr(nsname, ':', nsname_len) + 2; - nsname_len -= (nsname - lcname); - } - - if (zend_hash_find(EG(zend_constants), nsname, nsname_len+1, (void **) &c) == SUCCESS) { - efree(lcname); - efree(class_name); - *result = c->value; - zval_update_constant_ex(&result, (void*)1, NULL TSRMLS_CC); - zval_copy_ctor(result); - Z_SET_REFCOUNT_P(result, 1); - Z_UNSET_ISREF_P(result); - return 1; - } efree(lcname); - if ((flags & IS_CONSTANT_RT_NS_CHECK) == 0) { /* Check for class */ ce = zend_fetch_class(class_name, class_name_len, flags TSRMLS_CC); } } - if (retval && ce) { if (zend_hash_find(&ce->constants_table, constant_name, const_name_len+1, (void **) &ret_constant) != SUCCESS) { retval = 0; - } - } else { - if ((flags & ZEND_FETCH_CLASS_RT_NS_NAME) == 0) { - if ((flags & IS_CONSTANT_RT_NS_CHECK) != 0) { - name = constant_name; - name_len = const_name_len; - efree(class_name); - return zend_get_constant(name, name_len, result TSRMLS_CC); - } if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) { - zend_error(E_ERROR, "Class '%s' not found", class_name); + zend_error(E_ERROR, "Undefined class constant '%s::%s'", class_name, constant_name); } } + } else if (!ce) { retval = 0; } + goto finish; + } + + if ((colon = zend_memrchr(name, '\\', name_len)) && + colon > name) { + /* compound constant name */ + int class_name_len = colon - name; + int const_name_len = name_len - class_name_len - 1; + char *constant_name = colon + 1; + char *lcname; + char *nsname; + unsigned int nsname_len; + + class_name = estrndup(name, class_name_len); + lcname = zend_str_tolower_dup(class_name, class_name_len); + /* Check for namespace constant */ + + /* Concatenate lowercase namespace name and constant name */ + lcname = erealloc(lcname, class_name_len + 1 + const_name_len + 1); + lcname[class_name_len] = '\\'; + memcpy(lcname + class_name_len + 1, constant_name, const_name_len + 1); + + nsname = lcname; + nsname_len = class_name_len + 1 + const_name_len; + + if (zend_hash_find(EG(zend_constants), nsname, nsname_len+1, (void **) &c) == SUCCESS) { + efree(lcname); + efree(class_name); + *result = c->value; + zval_update_constant_ex(&result, (void*)1, NULL TSRMLS_CC); + zval_copy_ctor(result); + Z_SET_REFCOUNT_P(result, 1); + Z_UNSET_ISREF_P(result); + return 1; + } + + efree(lcname); + + if ((flags & IS_CONSTANT_RT_NS_CHECK) != 0) { + name = constant_name; + name_len = const_name_len; + efree(class_name); + return zend_get_constant(name, name_len, result TSRMLS_CC); + } + retval = 0; +finish: efree(class_name); if (retval) { diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 808505366d..8e2c734091 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -504,29 +504,64 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco is_ref = Z_ISREF_P(p); if (!zend_get_constant_ex(p->value.str.val, p->value.str.len, &const_value, scope, Z_REAL_TYPE_P(p) TSRMLS_CC)) { - if ((colon = zend_memrchr(Z_STRVAL_P(p), ':', Z_STRLEN_P(p))) && - colon > Z_STRVAL_P(p) && - *(colon-1) == ':') { - if ((Z_TYPE_P(p) & IS_CONSTANT_RT_NS_CHECK) == 0) { - zend_error(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(p)); - } else if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error(E_ERROR, "Undefined constant '%s'", Z_STRVAL_P(p)); - } + char *actual = Z_STRVAL_P(p); + + if ((colon = zend_memrchr(Z_STRVAL_P(p), ':', Z_STRLEN_P(p)))) { + zend_error(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(p)); Z_STRLEN_P(p) -= ((colon - Z_STRVAL_P(p)) + 1); if (inline_change) { - colon = estrndup(colon + 1, Z_STRLEN_P(p)); + colon = estrndup(colon, Z_STRLEN_P(p)); efree(Z_STRVAL_P(p)); Z_STRVAL_P(p) = colon; } else { Z_STRVAL_P(p) = colon + 1; } - } else if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error(E_ERROR, "Undefined constant '%s'", Z_STRVAL_P(p)); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", Z_STRVAL_P(p), Z_STRVAL_P(p)); - p->type = IS_STRING; - if (!inline_change) { - zval_copy_ctor(p); + } else { + char *save = actual; + int actual_len = Z_STRLEN_P(p); + if (Z_TYPE_P(p) & IS_CONSTANT_RT_NS_CHECK) { + actual = zend_memrchr(actual, '\\', actual_len) + 1; + actual_len -= (actual - Z_STRVAL_P(p)); + if (inline_change) { + actual = estrndup(actual, actual_len); + Z_STRVAL_P(p) = actual; + Z_STRLEN_P(p) = actual_len; + } + } + if (actual[0] == '\\') { + if (inline_change) { + memmove(Z_STRVAL_P(p), Z_STRVAL_P(p)+1, Z_STRLEN_P(p)); + --Z_STRLEN_P(p); + } else { + ++actual; + } + --actual_len; + } + if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) { + int fix_save = 0; + if (save[0] == '\\') { + save++; + fix_save = 1; + } + zend_error(E_ERROR, "Undefined constant '%s'", save); + if (fix_save) { + save--; + } + if (inline_change) { + efree(save); + } + save = NULL; + } + if (inline_change && save && save != actual) { + efree(save); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual); + p->type = IS_STRING; + if (!inline_change) { + Z_STRVAL_P(p) = actual; + Z_STRLEN_P(p) = actual_len; + zval_copy_ctor(p); + } } } else { if (inline_change) { @@ -571,20 +606,29 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco continue; } if (!zend_get_constant_ex(str_index, str_index_len - 3, &const_value, scope, str_index[str_index_len - 2] TSRMLS_CC)) { - if ((colon = zend_memrchr(str_index, ':', str_index_len - 3)) && - colon > str_index && - *(colon-1) == ':') { - if ((str_index[str_index_len - 2] & IS_CONSTANT_RT_NS_CHECK) == 0) { - zend_error(E_ERROR, "Undefined class constant '%s'", str_index); - } else if (str_index[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error(E_ERROR, "Undefined constant '%s'", str_index); - } + char *actual, *save = str_index; + if ((colon = zend_memrchr(str_index, ':', str_index_len - 3))) { + zend_error(E_ERROR, "Undefined class constant '%s'", str_index); str_index_len -= ((colon - str_index) + 1); - str_index = colon + 1; - } else if (str_index[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error(E_ERROR, "Undefined constant '%s'", str_index); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", str_index, str_index); + str_index = colon; + } else { + if (str_index[str_index_len - 2] & IS_CONSTANT_RT_NS_CHECK) { + actual = zend_memrchr(str_index, '\\', str_index_len - 3) + 1; + str_index_len -= (actual - str_index); + str_index = actual; + } + if (str_index[0] == '\\') { + ++str_index; + --str_index_len; + } + if (save[0] == '\\') { + ++save; + } + if (str_index[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error(E_ERROR, "Undefined constant '%s'", save); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", str_index, str_index); + } ZVAL_STRINGL(&const_value, str_index, str_index_len-3, 1); } @@ -983,9 +1027,9 @@ ZEND_API int zend_lookup_class_ex(const char *name, int name_length, int use_aut lc_free = lc_name = do_alloca(name_length + 1, use_heap); zend_str_tolower_copy(lc_name, name, name_length); - if (lc_name[0] == ':' && lc_name[1] == ':') { - lc_name += 2; - name_length -= 2; + if (lc_name[0] == '\\') { + lc_name += 1; + name_length -= 1; } if (zend_hash_find(EG(class_table), lc_name, name_length + 1, (void **) ce) == SUCCESS) { @@ -1468,7 +1512,7 @@ check_fetch_type: char *php_name; uint php_name_len; - php_name = zend_memrchr(class_name, ':', class_name_len); + php_name = zend_memrchr(class_name, '\\', class_name_len); if (php_name) { php_name++; php_name_len = class_name_len - (php_name - class_name); diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 57844cede4..b17a1abdf5 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -147,6 +147,7 @@ %token T_NAMESPACE %token T_NS_C %token T_DIR +%token T_NS_SEPARATOR %% /* Rules */ @@ -161,7 +162,7 @@ top_statement_list: namespace_name: T_STRING { $$ = $1; } - | namespace_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } + | namespace_name T_NS_SEPARATOR T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } ; top_statement: @@ -182,8 +183,8 @@ use_declarations: use_declaration: namespace_name { zend_do_use(&$1, NULL, 0 TSRMLS_CC); } | namespace_name T_AS T_STRING { zend_do_use(&$1, &$3, 0 TSRMLS_CC); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_use(&$2, NULL, 1 TSRMLS_CC); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); } + | T_NS_SEPARATOR T_STRING { zend_do_use(&$2, NULL, 1 TSRMLS_CC); } + | T_NS_SEPARATOR T_STRING T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); } ; constant_declaration: @@ -665,12 +666,15 @@ lexical_var_list: ; function_call: - T_STRING '(' { $2.u.opline_num = zend_do_begin_function_call(&$1, 1 TSRMLS_CC); } + namespace_name '(' { $2.u.opline_num = zend_do_begin_function_call(&$1, 1 TSRMLS_CC); } function_call_parameter_list ')' { zend_do_end_function_call(&$1, &$$, &$4, 0, $2.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' { $3.u.opline_num = zend_do_begin_function_call(&$2, 0 TSRMLS_CC); } - function_call_parameter_list - ')' { zend_do_end_function_call(&$2, &$$, &$5, 0, $3.u.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); $4.u.opline_num = zend_do_begin_function_call(&$1, 0 TSRMLS_CC); } + function_call_parameter_list + ')' { zend_do_end_function_call(&$1, &$$, &$6, 0, $4.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + | T_NS_SEPARATOR namespace_name '(' { $3.u.opline_num = zend_do_begin_function_call(&$2, 0 TSRMLS_CC); } + function_call_parameter_list + ')' { zend_do_end_function_call(&$2, &$$, &$5, 0, $3.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } | class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' { $4.u.opline_num = zend_do_begin_class_member_function_call(&$1, &$3 TSRMLS_CC); } function_call_parameter_list ')' { zend_do_end_function_call($4.u.opline_num?NULL:&$3, &$$, &$6, $4.u.opline_num, $4.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);} @@ -689,18 +693,16 @@ function_call: ; class_name: - T_STRING { $$ = $1; } - | T_STATIC { $$.op_type = IS_CONST; ZVAL_STRINGL(&$$.u.constant, "static", sizeof("static")-1, 1);} - | T_NAMESPACE { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, NULL, &$2 TSRMLS_CC); } - | class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } + T_STATIC { $$.op_type = IS_CONST; ZVAL_STRINGL(&$$.u.constant, "static", sizeof("static")-1, 1);} + | namespace_name { $$ = $1; } + | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); } + | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+2); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); $$ = $2; } ; fully_qualified_class_name: - T_STRING { $$ = $1; } - | T_NAMESPACE { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, NULL, &$2 TSRMLS_CC); } - | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } + namespace_name { $$ = $1; } + | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); } + | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+2); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); $$ = $2; } ; @@ -766,8 +768,9 @@ common_scalar: static_scalar: /* compile-time evaluated scalars */ common_scalar { $$ = $1; } - | T_STRING { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT, 1 TSRMLS_CC); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, NULL, &$2, ZEND_CT, 0 TSRMLS_CC); } + | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT, 1 TSRMLS_CC); } + | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_CT, 2 TSRMLS_CC); } + | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+2); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_CT, 0 TSRMLS_CC); } | '+' static_scalar { ZVAL_LONG(&$1.u.constant, 0); add_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; } | '-' static_scalar { ZVAL_LONG(&$1.u.constant, 0); sub_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; } | T_ARRAY '(' static_array_pair_list ')' { $$ = $3; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; } @@ -775,14 +778,15 @@ static_scalar: /* compile-time evaluated scalars */ ; static_class_constant: - class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_CT, 0 TSRMLS_CC); } + class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_CT, 2 TSRMLS_CC); } ; scalar: - T_STRING { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC); } - | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, NULL, &$2, ZEND_RT, 0 TSRMLS_CC); } - | T_STRING_VARNAME { $$ = $1; } - | class_constant { $$ = $1; } + T_STRING_VARNAME { $$ = $1; } + | class_constant { $$ = $1; } + | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC); } + | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_RT, 2 TSRMLS_CC); } + | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+2); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_RT, 0 TSRMLS_CC); } | common_scalar { $$ = $1; } | '"' encaps_list '"' { $$ = $2; } | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; } @@ -989,7 +993,7 @@ isset_variables: ; class_constant: - class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_RT, 0 TSRMLS_CC); } + class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_RT, 2 TSRMLS_CC); } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_fetch_constant(&$$, &$1, &$3, ZEND_RT, 0 TSRMLS_CC); } ; diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 6e57f57f31..05a698a321 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Fri Oct 24 12:09:58 2008 */ +/* Generated by re2c 0.13.6.dev on Tue Nov 4 01:40:34 2008 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -978,7 +978,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1637 "Zend/zend_language_scanner.l" +#line 1641 "Zend/zend_language_scanner.l" { inline_char_handler: @@ -1042,7 +1042,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1625 "Zend/zend_language_scanner.l" +#line 1629 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1061,7 +1061,7 @@ yy7: if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1602 "Zend/zend_language_scanner.l" +#line 1606 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1259,7 +1259,7 @@ yy35: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1566 "Zend/zend_language_scanner.l" +#line 1570 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1295,7 +1295,7 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1576 "Zend/zend_language_scanner.l" +#line 1580 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1313,7 +1313,7 @@ yy45: ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1589 "Zend/zend_language_scanner.l" +#line 1593 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1352,7 +1352,7 @@ yy50: yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1615 "Zend/zend_language_scanner.l" +#line 1619 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1452,7 +1452,7 @@ yy56: yy57: YYDEBUG(57, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2017 "Zend/zend_language_scanner.l" +#line 2021 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1476,7 +1476,7 @@ yy59: yy60: YYDEBUG(60, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2042 "Zend/zend_language_scanner.l" +#line 2046 "Zend/zend_language_scanner.l" { zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; @@ -1493,7 +1493,7 @@ yy62: ++YYCURSOR; YYDEBUG(63, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2120 "Zend/zend_language_scanner.l" +#line 2124 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1586,7 +1586,7 @@ yy68: yy70: YYDEBUG(70, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2047 "Zend/zend_language_scanner.l" +#line 2051 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC); @@ -1626,7 +1626,7 @@ yy74: yy76: YYDEBUG(76, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" +#line 1709 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1638,7 +1638,7 @@ yy77: ++YYCURSOR; YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1359 "Zend/zend_language_scanner.l" +#line 1363 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; @@ -1654,7 +1654,7 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1697 "Zend/zend_language_scanner.l" +#line 1701 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1680,7 +1680,7 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1687 "Zend/zend_language_scanner.l" +#line 1691 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1745,7 +1745,7 @@ yy87: } YYDEBUG(89, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1797 "Zend/zend_language_scanner.l" +#line 1801 "Zend/zend_language_scanner.l" { yymore(); } @@ -1756,7 +1756,7 @@ yy90: if ((yych = *YYCURSOR) == '/') goto yy92; YYDEBUG(91, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1815 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { yymore(); } @@ -1766,7 +1766,7 @@ yy92: ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1809 "Zend/zend_language_scanner.l" +#line 1813 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); BEGIN(ST_IN_SCRIPTING); @@ -1829,7 +1829,7 @@ yy96: } YYDEBUG(98, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1797 "Zend/zend_language_scanner.l" +#line 1801 "Zend/zend_language_scanner.l" { yymore(); } @@ -1840,7 +1840,7 @@ yy99: if ((yych = *YYCURSOR) == '/') goto yy101; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1815 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { yymore(); } @@ -1850,7 +1850,7 @@ yy101: ++YYCURSOR; YYDEBUG(102, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1801 "Zend/zend_language_scanner.l" +#line 1805 "Zend/zend_language_scanner.l" { CG(doc_comment) = estrndup(yytext, yyleng); CG(doc_comment_len) = yyleng; @@ -1945,7 +1945,7 @@ yy106: yy107: YYDEBUG(107, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2017 "Zend/zend_language_scanner.l" +#line 2021 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1970,7 +1970,7 @@ yy109: yy110: YYDEBUG(110, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2024 "Zend/zend_language_scanner.l" +#line 2028 "Zend/zend_language_scanner.l" { zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; @@ -1987,7 +1987,7 @@ yy112: ++YYCURSOR; YYDEBUG(113, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2114 "Zend/zend_language_scanner.l" +#line 2118 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -2083,7 +2083,7 @@ yy118: yy120: YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2035 "Zend/zend_language_scanner.l" +#line 2039 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC); @@ -2123,7 +2123,7 @@ yy124: yy126: YYDEBUG(126, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" +#line 1709 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2135,7 +2135,7 @@ yy127: ++YYCURSOR; YYDEBUG(128, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1359 "Zend/zend_language_scanner.l" +#line 1363 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; @@ -2151,7 +2151,7 @@ yy130: ++YYCURSOR; YYDEBUG(131, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1697 "Zend/zend_language_scanner.l" +#line 1701 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2177,7 +2177,7 @@ yy133: ++YYCURSOR; YYDEBUG(134, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1687 "Zend/zend_language_scanner.l" +#line 1691 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2196,7 +2196,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(138, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2003 "Zend/zend_language_scanner.l" +#line 2007 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -2265,7 +2265,7 @@ yyc_ST_HEREDOC: yy141: YYDEBUG(141, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2061 "Zend/zend_language_scanner.l" +#line 2065 "Zend/zend_language_scanner.l" { zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; @@ -2316,7 +2316,7 @@ yy143: yy144: YYDEBUG(144, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2017 "Zend/zend_language_scanner.l" +#line 2021 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2573,7 +2573,7 @@ yy161: yy163: YYDEBUG(163, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2066 "Zend/zend_language_scanner.l" +#line 2070 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC); @@ -2678,7 +2678,7 @@ yy170: ++YYCURSOR; YYDEBUG(171, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1966 "Zend/zend_language_scanner.l" +#line 1970 "Zend/zend_language_scanner.l" { char *end = yytext + yyleng - 1; @@ -2975,7 +2975,7 @@ yy191: yy193: YYDEBUG(193, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" +#line 1709 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2987,7 +2987,7 @@ yy194: ++YYCURSOR; YYDEBUG(195, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1359 "Zend/zend_language_scanner.l" +#line 1363 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; @@ -3003,7 +3003,7 @@ yy197: ++YYCURSOR; YYDEBUG(198, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1697 "Zend/zend_language_scanner.l" +#line 1701 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -3029,7 +3029,7 @@ yy200: ++YYCURSOR; YYDEBUG(201, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1687 "Zend/zend_language_scanner.l" +#line 1691 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -3143,33 +3143,32 @@ yyc_ST_IN_SCRIPTING: case 0x1C: case 0x1D: case 0x1E: - case 0x1F: - case '\\': goto yy262; + case 0x1F: goto yy264; case '\t': case '\n': case '\r': case ' ': goto yy220; - case '!': goto yy231; - case '"': goto yy256; - case '#': goto yy254; - case '$': goto yy243; - case '%': goto yy237; - case '&': goto yy238; - case '\'': goto yy258; - case '(': goto yy225; + case '!': goto yy233; + case '"': goto yy258; + case '#': goto yy256; + case '$': goto yy245; + case '%': goto yy239; + case '&': goto yy240; + case '\'': goto yy260; + case '(': goto yy227; case ')': case ',': case ';': case '@': case '[': case ']': - case '~': goto yy244; - case '*': goto yy234; - case '+': goto yy230; + case '~': goto yy246; + case '*': goto yy236; + case '+': goto yy232; case '-': goto yy218; - case '.': goto yy236; - case '/': goto yy235; - case '0': goto yy250; + case '.': goto yy238; + case '/': goto yy237; + case '0': goto yy252; case '1': case '2': case '3': @@ -3178,12 +3177,12 @@ yyc_ST_IN_SCRIPTING: case '6': case '7': case '8': - case '9': goto yy252; + case '9': goto yy254; case ':': goto yy222; - case '<': goto yy232; - case '=': goto yy228; - case '>': goto yy233; - case '?': goto yy245; + case '<': goto yy234; + case '=': goto yy230; + case '>': goto yy235; + case '?': goto yy247; case 'A': case 'a': goto yy213; case 'B': @@ -3201,11 +3200,11 @@ yyc_ST_IN_SCRIPTING: case 'I': case 'i': goto yy211; case 'L': - case 'l': goto yy229; + case 'l': goto yy231; case 'N': - case 'n': goto yy223; + case 'n': goto yy225; case 'O': - case 'o': goto yy241; + case 'o': goto yy243; case 'P': case 'p': goto yy217; case 'R': @@ -3215,20 +3214,21 @@ yyc_ST_IN_SCRIPTING: case 'T': case 't': goto yy210; case 'U': - case 'u': goto yy226; + case 'u': goto yy228; case 'V': - case 'v': goto yy224; + case 'v': goto yy226; case 'W': case 'w': goto yy212; case 'X': - case 'x': goto yy242; - case '^': goto yy240; - case '_': goto yy227; - case '`': goto yy260; - case '{': goto yy246; - case '|': goto yy239; - case '}': goto yy248; - default: goto yy253; + case 'x': goto yy244; + case '\\': goto yy223; + case '^': goto yy242; + case '_': goto yy229; + case '`': goto yy262; + case '{': goto yy248; + case '|': goto yy241; + case '}': goto yy250; + default: goto yy255; } yy204: YYDEBUG(204, *YYCURSOR); @@ -3236,23 +3236,23 @@ yy204: YYDEBUG(-1, yych); switch ((yych = *YYCURSOR)) { case 'C': - case 'c': goto yy794; + case 'c': goto yy796; case 'L': - case 'l': goto yy795; + case 'l': goto yy797; case 'M': - case 'm': goto yy796; + case 'm': goto yy798; case 'N': - case 'n': goto yy797; + case 'n': goto yy799; case 'V': - case 'v': goto yy798; + case 'v': goto yy800; case 'X': - case 'x': goto yy799; - default: goto yy280; + case 'x': goto yy801; + default: goto yy282; } yy205: YYDEBUG(205, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1729 "Zend/zend_language_scanner.l" +#line 1733 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -3264,21 +3264,21 @@ yy206: yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'H') { - if (yych == 'E') goto yy776; - goto yy280; + if (yych == 'E') goto yy778; + goto yy282; } else { - if (yych <= 'I') goto yy777; - if (yych <= 'N') goto yy280; - goto yy778; + if (yych <= 'I') goto yy779; + if (yych <= 'N') goto yy282; + goto yy780; } } else { if (yych <= 'h') { - if (yych == 'e') goto yy776; - goto yy280; + if (yych == 'e') goto yy778; + goto yy282; } else { - if (yych <= 'i') goto yy777; - if (yych == 'o') goto yy778; - goto yy280; + if (yych <= 'i') goto yy779; + if (yych == 'o') goto yy780; + goto yy282; } } yy207: @@ -3286,21 +3286,21 @@ yy207: yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'N') { - if (yych == 'I') goto yy755; - goto yy280; + if (yych == 'I') goto yy757; + goto yy282; } else { - if (yych <= 'O') goto yy756; - if (yych <= 'T') goto yy280; - goto yy757; + if (yych <= 'O') goto yy758; + if (yych <= 'T') goto yy282; + goto yy759; } } else { if (yych <= 'n') { - if (yych == 'i') goto yy755; - goto yy280; + if (yych == 'i') goto yy757; + goto yy282; } else { - if (yych <= 'o') goto yy756; - if (yych == 'u') goto yy757; - goto yy280; + if (yych <= 'o') goto yy758; + if (yych == 'u') goto yy759; + goto yy282; } } yy208: @@ -3308,43 +3308,43 @@ yy208: yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'K') { - if (yych == 'A') goto yy727; - goto yy280; + if (yych == 'A') goto yy729; + goto yy282; } else { - if (yych <= 'L') goto yy728; - if (yych <= 'N') goto yy280; - goto yy729; + if (yych <= 'L') goto yy730; + if (yych <= 'N') goto yy282; + goto yy731; } } else { if (yych <= 'k') { - if (yych == 'a') goto yy727; - goto yy280; + if (yych == 'a') goto yy729; + goto yy282; } else { - if (yych <= 'l') goto yy728; - if (yych == 'o') goto yy729; - goto yy280; + if (yych <= 'l') goto yy730; + if (yych == 'o') goto yy731; + goto yy282; } } yy209: YYDEBUG(209, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy709; - if (yych == 'e') goto yy709; - goto yy280; + if (yych == 'E') goto yy711; + if (yych == 'e') goto yy711; + goto yy282; yy210: YYDEBUG(210, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { - if (yych == 'H') goto yy701; - if (yych <= 'Q') goto yy280; - goto yy702; + if (yych == 'H') goto yy703; + if (yych <= 'Q') goto yy282; + goto yy704; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy280; - goto yy701; + if (yych <= 'g') goto yy282; + goto yy703; } else { - if (yych == 'r') goto yy702; - goto yy280; + if (yych == 'r') goto yy704; + goto yy282; } } yy211: @@ -3352,70 +3352,70 @@ yy211: yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= 'L') { - if (yych == 'F') goto yy654; - goto yy280; + if (yych == 'F') goto yy656; + goto yy282; } else { - if (yych <= 'M') goto yy656; - if (yych <= 'N') goto yy657; - if (yych <= 'R') goto yy280; - goto yy658; + if (yych <= 'M') goto yy658; + if (yych <= 'N') goto yy659; + if (yych <= 'R') goto yy282; + goto yy660; } } else { if (yych <= 'm') { - if (yych == 'f') goto yy654; - if (yych <= 'l') goto yy280; - goto yy656; + if (yych == 'f') goto yy656; + if (yych <= 'l') goto yy282; + goto yy658; } else { - if (yych <= 'n') goto yy657; - if (yych == 's') goto yy658; - goto yy280; + if (yych <= 'n') goto yy659; + if (yych == 's') goto yy660; + goto yy282; } } yy212: YYDEBUG(212, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy649; - if (yych == 'h') goto yy649; - goto yy280; + if (yych == 'H') goto yy651; + if (yych == 'h') goto yy651; + goto yy282; yy213: YYDEBUG(213, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= 'M') { - if (yych == 'B') goto yy631; - goto yy280; + if (yych == 'B') goto yy633; + goto yy282; } else { - if (yych <= 'N') goto yy632; - if (yych <= 'Q') goto yy280; - if (yych <= 'R') goto yy633; - goto yy634; + if (yych <= 'N') goto yy634; + if (yych <= 'Q') goto yy282; + if (yych <= 'R') goto yy635; + goto yy636; } } else { if (yych <= 'n') { - if (yych == 'b') goto yy631; - if (yych <= 'm') goto yy280; - goto yy632; + if (yych == 'b') goto yy633; + if (yych <= 'm') goto yy282; + goto yy634; } else { - if (yych <= 'q') goto yy280; - if (yych <= 'r') goto yy633; - if (yych <= 's') goto yy634; - goto yy280; + if (yych <= 'q') goto yy282; + if (yych <= 'r') goto yy635; + if (yych <= 's') goto yy636; + goto yy282; } } yy214: YYDEBUG(214, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'W') { - if (yych == 'T') goto yy619; - if (yych <= 'V') goto yy280; - goto yy620; + if (yych == 'T') goto yy621; + if (yych <= 'V') goto yy282; + goto yy622; } else { if (yych <= 't') { - if (yych <= 's') goto yy280; - goto yy619; + if (yych <= 's') goto yy282; + goto yy621; } else { - if (yych == 'w') goto yy620; - goto yy280; + if (yych == 'w') goto yy622; + goto yy282; } } yy215: @@ -3426,38 +3426,38 @@ yy215: if (yych <= '/') { if (yych <= '"') { if (yych <= '!') goto yy205; - goto yy612; + goto yy614; } else { - if (yych == '\'') goto yy263; + if (yych == '\'') goto yy265; goto yy205; } } else { if (yych <= ';') { - if (yych <= '9') goto yy279; + if (yych <= '9') goto yy281; goto yy205; } else { - if (yych <= '<') goto yy611; + if (yych <= '<') goto yy613; if (yych <= '@') goto yy205; - goto yy279; + goto yy281; } } } else { if (yych <= '`') { if (yych <= 'Z') { - if (yych <= 'R') goto yy613; - goto yy279; + if (yych <= 'R') goto yy615; + goto yy281; } else { - if (yych == '_') goto yy279; + if (yych == '_') goto yy281; goto yy205; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy279; - goto yy613; + if (yych <= 'q') goto yy281; + goto yy615; } else { - if (yych <= 'z') goto yy279; + if (yych <= 'z') goto yy281; if (yych <= '~') goto yy205; - goto yy279; + goto yy281; } } } @@ -3465,47 +3465,47 @@ yy216: YYDEBUG(216, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'L') goto yy601; - if (yych <= 'N') goto yy280; - goto yy602; + if (yych == 'L') goto yy603; + if (yych <= 'N') goto yy282; + goto yy604; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy280; - goto yy601; + if (yych <= 'k') goto yy282; + goto yy603; } else { - if (yych == 'o') goto yy602; - goto yy280; + if (yych == 'o') goto yy604; + goto yy282; } } yy217: YYDEBUG(217, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'R') goto yy577; - if (yych <= 'T') goto yy280; - goto yy578; + if (yych == 'R') goto yy579; + if (yych <= 'T') goto yy282; + goto yy580; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy280; - goto yy577; + if (yych <= 'q') goto yy282; + goto yy579; } else { - if (yych == 'u') goto yy578; - goto yy280; + if (yych == 'u') goto yy580; + goto yy282; } } yy218: YYDEBUG(218, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '<') { - if (yych == '-') goto yy573; + if (yych == '-') goto yy575; } else { - if (yych <= '=') goto yy571; - if (yych <= '>') goto yy575; + if (yych <= '=') goto yy573; + if (yych <= '>') goto yy577; } yy219: YYDEBUG(219, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1348 "Zend/zend_language_scanner.l" +#line 1352 "Zend/zend_language_scanner.l" { return yytext[0]; } @@ -3514,7 +3514,7 @@ yy220: YYDEBUG(220, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy570; + goto yy572; yy221: YYDEBUG(221, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); @@ -3530,247 +3530,257 @@ yy221: yy222: YYDEBUG(222, *YYCURSOR); yych = *++YYCURSOR; - if (yych == ':') goto yy567; + if (yych == ':') goto yy569; goto yy219; yy223: YYDEBUG(223, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(224, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1116 "Zend/zend_language_scanner.l" + { + return T_NS_SEPARATOR; +} +#line 3545 "Zend/zend_language_scanner.c" +yy225: + YYDEBUG(225, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { - if (yych == 'A') goto yy555; - if (yych <= 'D') goto yy280; - goto yy556; + if (yych == 'A') goto yy557; + if (yych <= 'D') goto yy282; + goto yy558; } else { if (yych <= 'a') { - if (yych <= '`') goto yy280; - goto yy555; + if (yych <= '`') goto yy282; + goto yy557; } else { - if (yych == 'e') goto yy556; - goto yy280; + if (yych == 'e') goto yy558; + goto yy282; } } -yy224: - YYDEBUG(224, *YYCURSOR); +yy226: + YYDEBUG(226, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy552; - if (yych == 'a') goto yy552; - goto yy280; -yy225: - YYDEBUG(225, *YYCURSOR); + if (yych == 'A') goto yy554; + if (yych == 'a') goto yy554; + goto yy282; +yy227: + YYDEBUG(227, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy473; + if (yych == '\t') goto yy475; if (yych <= 0x1F) goto yy219; - goto yy473; + goto yy475; } else { if (yych <= '@') goto yy219; if (yych == 'C') goto yy219; - goto yy473; + goto yy475; } } else { if (yych <= 'I') { - if (yych == 'F') goto yy473; + if (yych == 'F') goto yy475; if (yych <= 'H') goto yy219; - goto yy473; + goto yy475; } else { - if (yych == 'O') goto yy473; + if (yych == 'O') goto yy475; if (yych <= 'Q') goto yy219; - goto yy473; + goto yy475; } } } else { if (yych <= 'f') { if (yych <= 'b') { - if (yych == 'U') goto yy473; + if (yych == 'U') goto yy475; if (yych <= '`') goto yy219; - goto yy473; + goto yy475; } else { - if (yych == 'd') goto yy473; + if (yych == 'd') goto yy475; if (yych <= 'e') goto yy219; - goto yy473; + goto yy475; } } else { if (yych <= 'o') { - if (yych == 'i') goto yy473; + if (yych == 'i') goto yy475; if (yych <= 'n') goto yy219; - goto yy473; + goto yy475; } else { if (yych <= 's') { if (yych <= 'q') goto yy219; - goto yy473; + goto yy475; } else { - if (yych == 'u') goto yy473; + if (yych == 'u') goto yy475; goto yy219; } } } } -yy226: - YYDEBUG(226, *YYCURSOR); +yy228: + YYDEBUG(228, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == 'N') goto yy464; - if (yych <= 'R') goto yy280; - goto yy465; + if (yych == 'N') goto yy466; + if (yych <= 'R') goto yy282; + goto yy467; } else { if (yych <= 'n') { - if (yych <= 'm') goto yy280; - goto yy464; + if (yych <= 'm') goto yy282; + goto yy466; } else { - if (yych == 's') goto yy465; - goto yy280; + if (yych == 's') goto yy467; + goto yy282; } } -yy227: - YYDEBUG(227, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy390; - goto yy280; -yy228: - YYDEBUG(228, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '<') goto yy219; - if (yych <= '=') goto yy384; - if (yych <= '>') goto yy386; - goto yy219; yy229: YYDEBUG(229, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy380; - if (yych == 'i') goto yy380; - goto yy280; + if (yych == '_') goto yy392; + goto yy282; yy230: YYDEBUG(230, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '+') goto yy378; - if (yych == '=') goto yy376; + if (yych <= '<') goto yy219; + if (yych <= '=') goto yy386; + if (yych <= '>') goto yy388; goto yy219; yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy373; - goto yy219; + if (yych == 'I') goto yy382; + if (yych == 'i') goto yy382; + goto yy282; yy232: YYDEBUG(232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '+') goto yy380; + if (yych == '=') goto yy378; + goto yy219; +yy233: + YYDEBUG(233, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy375; + goto yy219; +yy234: + YYDEBUG(234, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ';') { - if (yych == '/') goto yy345; + if (yych == '/') goto yy347; goto yy219; } else { - if (yych <= '<') goto yy343; - if (yych <= '=') goto yy346; - if (yych <= '>') goto yy348; + if (yych <= '<') goto yy345; + if (yych <= '=') goto yy348; + if (yych <= '>') goto yy350; goto yy219; } -yy233: - YYDEBUG(233, *YYCURSOR); +yy235: + YYDEBUG(235, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '<') goto yy219; - if (yych <= '=') goto yy339; - if (yych <= '>') goto yy337; + if (yych <= '=') goto yy341; + if (yych <= '>') goto yy339; goto yy219; -yy234: - YYDEBUG(234, *YYCURSOR); +yy236: + YYDEBUG(236, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy335; + if (yych == '=') goto yy337; goto yy219; -yy235: - YYDEBUG(235, *YYCURSOR); +yy237: + YYDEBUG(237, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych == '*') goto yy326; + if (yych == '*') goto yy328; goto yy219; } else { - if (yych <= '/') goto yy328; - if (yych == '=') goto yy329; + if (yych <= '/') goto yy330; + if (yych == '=') goto yy331; goto yy219; } -yy236: - YYDEBUG(236, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy219; - if (yych <= '9') goto yy322; - if (yych == '=') goto yy324; - goto yy219; -yy237: - YYDEBUG(237, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '<') goto yy219; - if (yych <= '=') goto yy318; - if (yych <= '>') goto yy316; - goto yy219; yy238: YYDEBUG(238, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '&') goto yy312; - if (yych == '=') goto yy314; + if (yych <= '/') goto yy219; + if (yych <= '9') goto yy324; + if (yych == '=') goto yy326; goto yy219; yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy310; - if (yych == '|') goto yy308; + if (yych <= '<') goto yy219; + if (yych <= '=') goto yy320; + if (yych <= '>') goto yy318; goto yy219; yy240: YYDEBUG(240, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy306; + if (yych == '&') goto yy314; + if (yych == '=') goto yy316; goto yy219; yy241: YYDEBUG(241, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy304; - if (yych == 'r') goto yy304; - goto yy280; + if (yych == '=') goto yy312; + if (yych == '|') goto yy310; + goto yy219; yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy301; - if (yych == 'o') goto yy301; - goto yy280; + if (yych == '=') goto yy308; + goto yy219; yy243: YYDEBUG(243, *YYCURSOR); yych = *++YYCURSOR; + if (yych == 'R') goto yy306; + if (yych == 'r') goto yy306; + goto yy282; +yy244: + YYDEBUG(244, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy303; + if (yych == 'o') goto yy303; + goto yy282; +yy245: + YYDEBUG(245, *YYCURSOR); + yych = *++YYCURSOR; if (yych <= '_') { if (yych <= '@') goto yy219; - if (yych <= 'Z') goto yy298; + if (yych <= 'Z') goto yy300; if (yych <= '^') goto yy219; - goto yy298; + goto yy300; } else { if (yych <= '`') goto yy219; - if (yych <= 'z') goto yy298; + if (yych <= 'z') goto yy300; if (yych <= '~') goto yy219; - goto yy298; + goto yy300; } -yy244: - YYDEBUG(244, *YYCURSOR); +yy246: + YYDEBUG(246, *YYCURSOR); yych = *++YYCURSOR; goto yy219; -yy245: - YYDEBUG(245, *YYCURSOR); +yy247: + YYDEBUG(247, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy294; + if (yych == '>') goto yy296; goto yy219; -yy246: - YYDEBUG(246, *YYCURSOR); +yy248: + YYDEBUG(248, *YYCURSOR); ++YYCURSOR; - YYDEBUG(247, *YYCURSOR); + YYDEBUG(249, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" +#line 1357 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return '{'; } -#line 3768 "Zend/zend_language_scanner.c" -yy248: - YYDEBUG(248, *YYCURSOR); +#line 3778 "Zend/zend_language_scanner.c" +yy250: + YYDEBUG(250, *YYCURSOR); ++YYCURSOR; - YYDEBUG(249, *YYCURSOR); + YYDEBUG(251, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" +#line 1369 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); if (!zend_stack_is_empty(&SCNG(state_stack))) { @@ -3778,30 +3788,30 @@ yy248: } return '}'; } -#line 3782 "Zend/zend_language_scanner.c" -yy250: - YYDEBUG(250, *YYCURSOR); +#line 3792 "Zend/zend_language_scanner.c" +yy252: + YYDEBUG(252, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '/') { - if (yych == '.') goto yy281; + if (yych == '.') goto yy283; } else { - if (yych <= '9') goto yy284; - if (yych >= 'E') goto yy286; + if (yych <= '9') goto yy286; + if (yych >= 'E') goto yy288; } } else { if (yych <= 'd') { - if (yych == 'X') goto yy290; + if (yych == 'X') goto yy292; } else { - if (yych <= 'e') goto yy286; - if (yych == 'x') goto yy290; + if (yych <= 'e') goto yy288; + if (yych == 'x') goto yy292; } } -yy251: - YYDEBUG(251, *YYCURSOR); +yy253: + YYDEBUG(253, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1391 "Zend/zend_language_scanner.l" +#line 1395 "Zend/zend_language_scanner.l" { if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ zendlval->value.lval = strtol(yytext, NULL, 0); @@ -3822,105 +3832,105 @@ yy251: zendlval->type = IS_LONG; return T_LNUMBER; } -#line 3826 "Zend/zend_language_scanner.c" -yy252: - YYDEBUG(252, *YYCURSOR); +#line 3836 "Zend/zend_language_scanner.c" +yy254: + YYDEBUG(254, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { - if (yych == '.') goto yy281; - if (yych <= '/') goto yy251; - goto yy284; + if (yych == '.') goto yy283; + if (yych <= '/') goto yy253; + goto yy286; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy251; - goto yy286; + if (yych <= 'D') goto yy253; + goto yy288; } else { - if (yych == 'e') goto yy286; - goto yy251; + if (yych == 'e') goto yy288; + goto yy253; } } -yy253: - YYDEBUG(253, *YYCURSOR); - yych = *++YYCURSOR; - goto yy280; -yy254: - YYDEBUG(254, *YYCURSOR); - ++YYCURSOR; yy255: YYDEBUG(255, *YYCURSOR); + yych = *++YYCURSOR; + goto yy282; +yy256: + YYDEBUG(256, *YYCURSOR); + ++YYCURSOR; +yy257: + YYDEBUG(257, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1736 "Zend/zend_language_scanner.l" +#line 1740 "Zend/zend_language_scanner.l" { BEGIN(ST_ONE_LINE_COMMENT); yymore(); } -#line 3859 "Zend/zend_language_scanner.c" -yy256: - YYDEBUG(256, *YYCURSOR); +#line 3869 "Zend/zend_language_scanner.c" +yy258: + YYDEBUG(258, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - goto yy272; -yy257: - YYDEBUG(257, *YYCURSOR); + goto yy274; +yy259: + YYDEBUG(259, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1903 "Zend/zend_language_scanner.l" +#line 1907 "Zend/zend_language_scanner.l" { BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 3873 "Zend/zend_language_scanner.c" -yy258: - YYDEBUG(258, *YYCURSOR); +#line 3883 "Zend/zend_language_scanner.c" +yy260: + YYDEBUG(260, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - goto yy264; -yy259: - YYDEBUG(259, *YYCURSOR); + goto yy266; +yy261: + YYDEBUG(261, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2126 "Zend/zend_language_scanner.l" +#line 2130 "Zend/zend_language_scanner.l" { zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 3887 "Zend/zend_language_scanner.c" -yy260: - YYDEBUG(260, *YYCURSOR); +#line 3897 "Zend/zend_language_scanner.c" +yy262: + YYDEBUG(262, *YYCURSOR); ++YYCURSOR; - YYDEBUG(261, *YYCURSOR); + YYDEBUG(263, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1954 "Zend/zend_language_scanner.l" +#line 1958 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 3898 "Zend/zend_language_scanner.c" -yy262: - YYDEBUG(262, *YYCURSOR); +#line 3908 "Zend/zend_language_scanner.c" +yy264: + YYDEBUG(264, *YYCURSOR); yych = *++YYCURSOR; - goto yy259; -yy263: - YYDEBUG(263, *YYCURSOR); + goto yy261; +yy265: + YYDEBUG(265, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy264: - YYDEBUG(264, *YYCURSOR); +yy266: + YYDEBUG(266, *YYCURSOR); if (yybm[256+yych] & 128) { - goto yy263; + goto yy265; } - if (yych <= '[') goto yy266; - YYDEBUG(265, *YYCURSOR); + if (yych <= '[') goto yy268; + YYDEBUG(267, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy263; -yy266: - YYDEBUG(266, *YYCURSOR); + goto yy265; +yy268: + YYDEBUG(268, *YYCURSOR); ++YYCURSOR; - YYDEBUG(267, *YYCURSOR); + YYDEBUG(269, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1852 "Zend/zend_language_scanner.l" +#line 1856 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3970,22 +3980,22 @@ yy266: #endif /* ZEND_MULTIBYTE */ return T_CONSTANT_ENCAPSED_STRING; } -#line 3974 "Zend/zend_language_scanner.c" -yy268: - YYDEBUG(268, *YYCURSOR); +#line 3984 "Zend/zend_language_scanner.c" +yy270: + YYDEBUG(270, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(269, *YYCURSOR); + YYDEBUG(271, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy271; + goto yy273; } - if (yych <= '#') goto yy276; - if (yych <= '$') goto yy270; - if (yych <= 'z') goto yy273; - goto yy268; -yy270: - YYDEBUG(270, *YYCURSOR); + if (yych <= '#') goto yy278; + if (yych <= '$') goto yy272; + if (yych <= 'z') goto yy275; + goto yy270; +yy272: + YYDEBUG(272, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 3) { if (yyaccept <= 1) { @@ -3996,186 +4006,186 @@ yy270: } } else { if (yyaccept <= 2) { - goto yy251; + goto yy253; } else { - goto yy257; + goto yy259; } } } else { if (yyaccept <= 5) { if (yyaccept <= 4) { - goto yy259; + goto yy261; } else { - goto yy283; + goto yy285; } } else { if (yyaccept <= 6) { - goto yy327; + goto yy329; } else { - goto yy344; + goto yy346; } } } -yy271: - YYDEBUG(271, *YYCURSOR); +yy273: + YYDEBUG(273, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy272: - YYDEBUG(272, *YYCURSOR); +yy274: + YYDEBUG(274, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy271; + goto yy273; } - if (yych <= '#') goto yy276; - if (yych <= '$') goto yy274; - if (yych >= '{') goto yy268; -yy273: - YYDEBUG(273, *YYCURSOR); + if (yych <= '#') goto yy278; + if (yych <= '$') goto yy276; + if (yych >= '{') goto yy270; +yy275: + YYDEBUG(275, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy271; -yy274: - YYDEBUG(274, *YYCURSOR); + goto yy273; +yy276: + YYDEBUG(276, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(275, *YYCURSOR); + YYDEBUG(277, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy274; + goto yy276; } if (yych <= '\\') { if (yych <= '@') { - if (yych != '"') goto yy271; + if (yych != '"') goto yy273; } else { - if (yych <= 'Z') goto yy270; - if (yych <= '[') goto yy271; - goto yy278; + if (yych <= 'Z') goto yy272; + if (yych <= '[') goto yy273; + goto yy280; } } else { if (yych <= '`') { - if (yych == '_') goto yy270; - goto yy271; + if (yych == '_') goto yy272; + goto yy273; } else { - if (yych <= '{') goto yy270; - if (yych <= '~') goto yy271; - goto yy270; + if (yych <= '{') goto yy272; + if (yych <= '~') goto yy273; + goto yy272; } } -yy276: - YYDEBUG(276, *YYCURSOR); +yy278: + YYDEBUG(278, *YYCURSOR); ++YYCURSOR; - YYDEBUG(277, *YYCURSOR); + YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1844 "Zend/zend_language_scanner.l" +#line 1848 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC); return T_CONSTANT_ENCAPSED_STRING; } -#line 4078 "Zend/zend_language_scanner.c" -yy278: - YYDEBUG(278, *YYCURSOR); +#line 4088 "Zend/zend_language_scanner.c" +yy280: + YYDEBUG(280, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy271; -yy279: - YYDEBUG(279, *YYCURSOR); + goto yy273; +yy281: + YYDEBUG(281, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy280: - YYDEBUG(280, *YYCURSOR); +yy282: + YYDEBUG(282, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy279; + goto yy281; } goto yy205; -yy281: - YYDEBUG(281, *YYCURSOR); +yy283: + YYDEBUG(283, *YYCURSOR); yyaccept = 5; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(282, *YYCURSOR); + YYDEBUG(284, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy281; + goto yy283; } - if (yych == 'E') goto yy286; - if (yych == 'e') goto yy286; -yy283: - YYDEBUG(283, *YYCURSOR); + if (yych == 'E') goto yy288; + if (yych == 'e') goto yy288; +yy285: + YYDEBUG(285, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1452 "Zend/zend_language_scanner.l" +#line 1456 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; return T_DNUMBER; } -#line 4117 "Zend/zend_language_scanner.c" -yy284: - YYDEBUG(284, *YYCURSOR); +#line 4127 "Zend/zend_language_scanner.c" +yy286: + YYDEBUG(286, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(285, *YYCURSOR); + YYDEBUG(287, *YYCURSOR); if (yych <= '9') { - if (yych == '.') goto yy281; - if (yych <= '/') goto yy251; - goto yy284; + if (yych == '.') goto yy283; + if (yych <= '/') goto yy253; + goto yy286; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy251; + if (yych <= 'D') goto yy253; } else { - if (yych != 'e') goto yy251; + if (yych != 'e') goto yy253; } } -yy286: - YYDEBUG(286, *YYCURSOR); +yy288: + YYDEBUG(288, *YYCURSOR); yych = *++YYCURSOR; if (yych <= ',') { - if (yych != '+') goto yy270; + if (yych != '+') goto yy272; } else { - if (yych <= '-') goto yy287; - if (yych <= '/') goto yy270; - if (yych <= '9') goto yy288; - goto yy270; + if (yych <= '-') goto yy289; + if (yych <= '/') goto yy272; + if (yych <= '9') goto yy290; + goto yy272; } -yy287: - YYDEBUG(287, *YYCURSOR); +yy289: + YYDEBUG(289, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy270; - if (yych >= ':') goto yy270; -yy288: - YYDEBUG(288, *YYCURSOR); + if (yych <= '/') goto yy272; + if (yych >= ':') goto yy272; +yy290: + YYDEBUG(290, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(289, *YYCURSOR); - if (yych <= '/') goto yy283; - if (yych <= '9') goto yy288; - goto yy283; -yy290: - YYDEBUG(290, *YYCURSOR); + YYDEBUG(291, *YYCURSOR); + if (yych <= '/') goto yy285; + if (yych <= '9') goto yy290; + goto yy285; +yy292: + YYDEBUG(292, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 32) { - goto yy291; + goto yy293; } - goto yy270; -yy291: - YYDEBUG(291, *YYCURSOR); + goto yy272; +yy293: + YYDEBUG(293, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(292, *YYCURSOR); + YYDEBUG(294, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy291; + goto yy293; } - YYDEBUG(293, *YYCURSOR); + YYDEBUG(295, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1412 "Zend/zend_language_scanner.l" +#line 1416 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -4196,16 +4206,16 @@ yy291: return T_DNUMBER; } } -#line 4200 "Zend/zend_language_scanner.c" -yy294: - YYDEBUG(294, *YYCURSOR); +#line 4210 "Zend/zend_language_scanner.c" +yy296: + YYDEBUG(296, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy296; - if (yych == '\r') goto yy297; -yy295: - YYDEBUG(295, *YYCURSOR); + if ((yych = *YYCURSOR) == '\n') goto yy298; + if (yych == '\r') goto yy299; +yy297: + YYDEBUG(297, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1819 "Zend/zend_language_scanner.l" +#line 1823 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -4213,86 +4223,76 @@ yy295: BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 4217 "Zend/zend_language_scanner.c" -yy296: - YYDEBUG(296, *YYCURSOR); - yych = *++YYCURSOR; - goto yy295; -yy297: - YYDEBUG(297, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy296; - goto yy295; +#line 4227 "Zend/zend_language_scanner.c" yy298: YYDEBUG(298, *YYCURSOR); + yych = *++YYCURSOR; + goto yy297; +yy299: + YYDEBUG(299, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy298; + goto yy297; +yy300: + YYDEBUG(300, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(299, *YYCURSOR); + YYDEBUG(301, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy298; + if (yych >= '0') goto yy300; } else { - if (yych <= '@') goto yy300; - if (yych <= 'Z') goto yy298; + if (yych <= '@') goto yy302; + if (yych <= 'Z') goto yy300; } } else { if (yych <= '`') { - if (yych <= '_') goto yy298; + if (yych <= '_') goto yy300; } else { - if (yych <= 'z') goto yy298; - if (yych >= 0x7F) goto yy298; + if (yych <= 'z') goto yy300; + if (yych >= 0x7F) goto yy300; } } -yy300: - YYDEBUG(300, *YYCURSOR); +yy302: + YYDEBUG(302, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" +#line 1709 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 4257 "Zend/zend_language_scanner.c" -yy301: - YYDEBUG(301, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy302; - if (yych != 'r') goto yy280; -yy302: - YYDEBUG(302, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; - } +#line 4267 "Zend/zend_language_scanner.c" +yy303: YYDEBUG(303, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1336 "Zend/zend_language_scanner.l" - { - return T_LOGICAL_XOR; -} -#line 4275 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy304; + if (yych != 'r') goto yy282; yy304: YYDEBUG(304, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } YYDEBUG(305, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1328 "Zend/zend_language_scanner.l" +#line 1340 "Zend/zend_language_scanner.l" { - return T_LOGICAL_OR; + return T_LOGICAL_XOR; } -#line 4288 "Zend/zend_language_scanner.c" +#line 4285 "Zend/zend_language_scanner.c" yy306: YYDEBUG(306, *YYCURSOR); ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy281; + } YYDEBUG(307, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1316 "Zend/zend_language_scanner.l" +#line 1332 "Zend/zend_language_scanner.l" { - return T_XOR_EQUAL; + return T_LOGICAL_OR; } #line 4298 "Zend/zend_language_scanner.c" yy308: @@ -4302,7 +4302,7 @@ yy308: yyleng = YYCURSOR - SCNG(yy_text); #line 1320 "Zend/zend_language_scanner.l" { - return T_BOOLEAN_OR; + return T_XOR_EQUAL; } #line 4308 "Zend/zend_language_scanner.c" yy310: @@ -4310,9 +4310,9 @@ yy310: ++YYCURSOR; YYDEBUG(311, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1312 "Zend/zend_language_scanner.l" +#line 1324 "Zend/zend_language_scanner.l" { - return T_OR_EQUAL; + return T_BOOLEAN_OR; } #line 4318 "Zend/zend_language_scanner.c" yy312: @@ -4320,9 +4320,9 @@ yy312: ++YYCURSOR; YYDEBUG(313, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1324 "Zend/zend_language_scanner.l" +#line 1316 "Zend/zend_language_scanner.l" { - return T_BOOLEAN_AND; + return T_OR_EQUAL; } #line 4328 "Zend/zend_language_scanner.c" yy314: @@ -4330,20 +4330,30 @@ yy314: ++YYCURSOR; YYDEBUG(315, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1308 "Zend/zend_language_scanner.l" +#line 1328 "Zend/zend_language_scanner.l" { - return T_AND_EQUAL; + return T_BOOLEAN_AND; } #line 4338 "Zend/zend_language_scanner.c" yy316: YYDEBUG(316, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy320; - if (yych == '\r') goto yy321; -yy317: YYDEBUG(317, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1828 "Zend/zend_language_scanner.l" +#line 1312 "Zend/zend_language_scanner.l" + { + return T_AND_EQUAL; +} +#line 4348 "Zend/zend_language_scanner.c" +yy318: + YYDEBUG(318, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy322; + if (yych == '\r') goto yy323; +yy319: + YYDEBUG(319, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1832 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -4356,134 +4366,124 @@ yy317: return yytext[0]; } } -#line 4360 "Zend/zend_language_scanner.c" -yy318: - YYDEBUG(318, *YYCURSOR); +#line 4370 "Zend/zend_language_scanner.c" +yy320: + YYDEBUG(320, *YYCURSOR); ++YYCURSOR; - YYDEBUG(319, *YYCURSOR); + YYDEBUG(321, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1296 "Zend/zend_language_scanner.l" +#line 1300 "Zend/zend_language_scanner.l" { return T_MOD_EQUAL; } -#line 4370 "Zend/zend_language_scanner.c" -yy320: - YYDEBUG(320, *YYCURSOR); - yych = *++YYCURSOR; - goto yy317; -yy321: - YYDEBUG(321, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy320; - goto yy317; +#line 4380 "Zend/zend_language_scanner.c" yy322: YYDEBUG(322, *YYCURSOR); + yych = *++YYCURSOR; + goto yy319; +yy323: + YYDEBUG(323, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy322; + goto yy319; +yy324: + YYDEBUG(324, *YYCURSOR); yyaccept = 5; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(323, *YYCURSOR); + YYDEBUG(325, *YYCURSOR); if (yych <= 'D') { - if (yych <= '/') goto yy283; - if (yych <= '9') goto yy322; - goto yy283; + if (yych <= '/') goto yy285; + if (yych <= '9') goto yy324; + goto yy285; } else { - if (yych <= 'E') goto yy286; - if (yych == 'e') goto yy286; - goto yy283; + if (yych <= 'E') goto yy288; + if (yych == 'e') goto yy288; + goto yy285; } -yy324: - YYDEBUG(324, *YYCURSOR); +yy326: + YYDEBUG(326, *YYCURSOR); ++YYCURSOR; - YYDEBUG(325, *YYCURSOR); + YYDEBUG(327, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1292 "Zend/zend_language_scanner.l" +#line 1296 "Zend/zend_language_scanner.l" { return T_CONCAT_EQUAL; } -#line 4405 "Zend/zend_language_scanner.c" -yy326: - YYDEBUG(326, *YYCURSOR); +#line 4415 "Zend/zend_language_scanner.c" +yy328: + YYDEBUG(328, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy331; -yy327: - YYDEBUG(327, *YYCURSOR); + if (yych == '*') goto yy333; +yy329: + YYDEBUG(329, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1791 "Zend/zend_language_scanner.l" +#line 1795 "Zend/zend_language_scanner.l" { BEGIN(ST_COMMENT); yymore(); } -#line 4419 "Zend/zend_language_scanner.c" -yy328: - YYDEBUG(328, *YYCURSOR); +#line 4429 "Zend/zend_language_scanner.c" +yy330: + YYDEBUG(330, *YYCURSOR); yych = *++YYCURSOR; - goto yy255; -yy329: - YYDEBUG(329, *YYCURSOR); + goto yy257; +yy331: + YYDEBUG(331, *YYCURSOR); ++YYCURSOR; - YYDEBUG(330, *YYCURSOR); + YYDEBUG(332, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1288 "Zend/zend_language_scanner.l" +#line 1292 "Zend/zend_language_scanner.l" { return T_DIV_EQUAL; } -#line 4433 "Zend/zend_language_scanner.c" -yy331: - YYDEBUG(331, *YYCURSOR); +#line 4443 "Zend/zend_language_scanner.c" +yy333: + YYDEBUG(333, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy332; + goto yy334; } - goto yy270; -yy332: - YYDEBUG(332, *YYCURSOR); + goto yy272; +yy334: + YYDEBUG(334, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(333, *YYCURSOR); + YYDEBUG(335, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy332; + goto yy334; } - YYDEBUG(334, *YYCURSOR); + YYDEBUG(336, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1785 "Zend/zend_language_scanner.l" +#line 1789 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); BEGIN(ST_DOC_COMMENT); yymore(); } -#line 4458 "Zend/zend_language_scanner.c" -yy335: - YYDEBUG(335, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(336, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1284 "Zend/zend_language_scanner.l" - { - return T_MUL_EQUAL; -} #line 4468 "Zend/zend_language_scanner.c" yy337: YYDEBUG(337, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy341; YYDEBUG(338, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1344 "Zend/zend_language_scanner.l" +#line 1288 "Zend/zend_language_scanner.l" { - return T_SR; + return T_MUL_EQUAL; } -#line 4479 "Zend/zend_language_scanner.c" +#line 4478 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy343; YYDEBUG(340, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1272 "Zend/zend_language_scanner.l" +#line 1348 "Zend/zend_language_scanner.l" { - return T_IS_GREATER_OR_EQUAL; + return T_SR; } #line 4489 "Zend/zend_language_scanner.c" yy341: @@ -4491,213 +4491,223 @@ yy341: ++YYCURSOR; YYDEBUG(342, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1304 "Zend/zend_language_scanner.l" +#line 1276 "Zend/zend_language_scanner.l" { - return T_SR_EQUAL; + return T_IS_GREATER_OR_EQUAL; } #line 4499 "Zend/zend_language_scanner.c" yy343: YYDEBUG(343, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy344; - if (yych <= '<') goto yy359; - if (yych <= '=') goto yy357; -yy344: + ++YYCURSOR; YYDEBUG(344, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1340 "Zend/zend_language_scanner.l" +#line 1308 "Zend/zend_language_scanner.l" { - return T_SL; + return T_SR_EQUAL; } -#line 4514 "Zend/zend_language_scanner.c" +#line 4509 "Zend/zend_language_scanner.c" yy345: YYDEBUG(345, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy350; - if (yych == 's') goto yy350; - goto yy270; + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ';') goto yy346; + if (yych <= '<') goto yy361; + if (yych <= '=') goto yy359; yy346: YYDEBUG(346, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(347, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1268 "Zend/zend_language_scanner.l" +#line 1344 "Zend/zend_language_scanner.l" { - return T_IS_SMALLER_OR_EQUAL; + return T_SL; } -#line 4530 "Zend/zend_language_scanner.c" +#line 4524 "Zend/zend_language_scanner.c" +yy347: + YYDEBUG(347, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy352; + if (yych == 's') goto yy352; + goto yy272; yy348: YYDEBUG(348, *YYCURSOR); ++YYCURSOR; -yy349: YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1264 "Zend/zend_language_scanner.l" +#line 1272 "Zend/zend_language_scanner.l" { - return T_IS_NOT_EQUAL; + return T_IS_SMALLER_OR_EQUAL; } -#line 4541 "Zend/zend_language_scanner.c" +#line 4540 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy351; - if (yych != 'c') goto yy270; + ++YYCURSOR; yy351: YYDEBUG(351, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy352; - if (yych != 'r') goto yy270; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1268 "Zend/zend_language_scanner.l" + { + return T_IS_NOT_EQUAL; +} +#line 4551 "Zend/zend_language_scanner.c" yy352: YYDEBUG(352, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy353; - if (yych != 'i') goto yy270; + if (yych == 'C') goto yy353; + if (yych != 'c') goto yy272; yy353: YYDEBUG(353, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy354; - if (yych != 'p') goto yy270; + if (yych == 'R') goto yy354; + if (yych != 'r') goto yy272; yy354: YYDEBUG(354, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy355; - if (yych != 't') goto yy270; + if (yych == 'I') goto yy355; + if (yych != 'i') goto yy272; yy355: YYDEBUG(355, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy356; + if (yych != 'p') goto yy272; +yy356: + YYDEBUG(356, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy357; + if (yych != 't') goto yy272; +yy357: + YYDEBUG(357, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(356, *YYCURSOR); + YYDEBUG(358, *YYCURSOR); if (yych <= '\r') { - if (yych <= 0x08) goto yy270; - if (yych <= '\n') goto yy355; - if (yych <= '\f') goto yy270; - goto yy355; + if (yych <= 0x08) goto yy272; + if (yych <= '\n') goto yy357; + if (yych <= '\f') goto yy272; + goto yy357; } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy270; - goto yy355; + if (yych <= 0x1F) goto yy272; + goto yy357; } else { - if (yych == '>') goto yy294; - goto yy270; + if (yych == '>') goto yy296; + goto yy272; } } -yy357: - YYDEBUG(357, *YYCURSOR); +yy359: + YYDEBUG(359, *YYCURSOR); ++YYCURSOR; - YYDEBUG(358, *YYCURSOR); + YYDEBUG(360, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1300 "Zend/zend_language_scanner.l" +#line 1304 "Zend/zend_language_scanner.l" { return T_SL_EQUAL; } -#line 4596 "Zend/zend_language_scanner.c" -yy359: - YYDEBUG(359, *YYCURSOR); +#line 4606 "Zend/zend_language_scanner.c" +yy361: + YYDEBUG(361, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(360, *YYCURSOR); + YYDEBUG(362, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy359; + goto yy361; } if (yych <= 'Z') { if (yych <= '&') { - if (yych == '"') goto yy364; - goto yy270; + if (yych == '"') goto yy366; + goto yy272; } else { - if (yych <= '\'') goto yy363; - if (yych <= '@') goto yy270; + if (yych <= '\'') goto yy365; + if (yych <= '@') goto yy272; } } else { if (yych <= '`') { - if (yych != '_') goto yy270; + if (yych != '_') goto yy272; } else { - if (yych <= 'z') goto yy361; - if (yych <= '~') goto yy270; + if (yych <= 'z') goto yy363; + if (yych <= '~') goto yy272; } } -yy361: - YYDEBUG(361, *YYCURSOR); +yy363: + YYDEBUG(363, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(362, *YYCURSOR); + YYDEBUG(364, *YYCURSOR); if (yych <= '@') { if (yych <= '\f') { - if (yych == '\n') goto yy368; - goto yy270; + if (yych == '\n') goto yy370; + goto yy272; } else { - if (yych <= '\r') goto yy370; - if (yych <= '/') goto yy270; - if (yych <= '9') goto yy361; - goto yy270; + if (yych <= '\r') goto yy372; + if (yych <= '/') goto yy272; + if (yych <= '9') goto yy363; + goto yy272; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy361; - if (yych <= '^') goto yy270; - goto yy361; + if (yych <= 'Z') goto yy363; + if (yych <= '^') goto yy272; + goto yy363; } else { - if (yych <= '`') goto yy270; - if (yych <= 'z') goto yy361; - if (yych <= '~') goto yy270; - goto yy361; + if (yych <= '`') goto yy272; + if (yych <= 'z') goto yy363; + if (yych <= '~') goto yy272; + goto yy363; } } -yy363: - YYDEBUG(363, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\'') goto yy270; - if (yych <= '/') goto yy372; - if (yych <= '9') goto yy270; - goto yy372; -yy364: - YYDEBUG(364, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '"') goto yy270; - if (yych <= '/') goto yy366; - if (yych <= '9') goto yy270; - goto yy366; yy365: YYDEBUG(365, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\'') goto yy272; + if (yych <= '/') goto yy374; + if (yych <= '9') goto yy272; + goto yy374; +yy366: + YYDEBUG(366, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '"') goto yy272; + if (yych <= '/') goto yy368; + if (yych <= '9') goto yy272; + goto yy368; +yy367: + YYDEBUG(367, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy366: - YYDEBUG(366, *YYCURSOR); +yy368: + YYDEBUG(368, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych != '"') goto yy270; + if (yych != '"') goto yy272; } else { - if (yych <= '9') goto yy365; - if (yych <= '@') goto yy270; - goto yy365; + if (yych <= '9') goto yy367; + if (yych <= '@') goto yy272; + goto yy367; } } else { if (yych <= '`') { - if (yych == '_') goto yy365; - goto yy270; + if (yych == '_') goto yy367; + goto yy272; } else { - if (yych <= 'z') goto yy365; - if (yych <= '~') goto yy270; - goto yy365; + if (yych <= 'z') goto yy367; + if (yych <= '~') goto yy272; + goto yy367; } } -yy367: - YYDEBUG(367, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy368; - if (yych == '\r') goto yy370; - goto yy270; -yy368: - YYDEBUG(368, *YYCURSOR); - ++YYCURSOR; yy369: YYDEBUG(369, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy370; + if (yych == '\r') goto yy372; + goto yy272; +yy370: + YYDEBUG(370, *YYCURSOR); + ++YYCURSOR; +yy371: + YYDEBUG(371, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1909 "Zend/zend_language_scanner.l" +#line 1913 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -4741,59 +4751,49 @@ yy369: return T_START_HEREDOC; } -#line 4745 "Zend/zend_language_scanner.c" -yy370: - YYDEBUG(370, *YYCURSOR); +#line 4755 "Zend/zend_language_scanner.c" +yy372: + YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy368; - goto yy369; -yy371: - YYDEBUG(371, *YYCURSOR); + if (yych == '\n') goto yy370; + goto yy371; +yy373: + YYDEBUG(373, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy372: - YYDEBUG(372, *YYCURSOR); +yy374: + YYDEBUG(374, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych == '\'') goto yy367; - goto yy270; + if (yych == '\'') goto yy369; + goto yy272; } else { - if (yych <= '9') goto yy371; - if (yych <= '@') goto yy270; - goto yy371; + if (yych <= '9') goto yy373; + if (yych <= '@') goto yy272; + goto yy373; } } else { if (yych <= '`') { - if (yych == '_') goto yy371; - goto yy270; + if (yych == '_') goto yy373; + goto yy272; } else { - if (yych <= 'z') goto yy371; - if (yych <= '~') goto yy270; - goto yy371; + if (yych <= 'z') goto yy373; + if (yych <= '~') goto yy272; + goto yy373; } } -yy373: - YYDEBUG(373, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '=') goto yy349; - YYDEBUG(374, *YYCURSOR); - ++YYCURSOR; +yy375: YYDEBUG(375, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1256 "Zend/zend_language_scanner.l" - { - return T_IS_NOT_IDENTICAL; -} -#line 4789 "Zend/zend_language_scanner.c" -yy376: + yych = *++YYCURSOR; + if (yych != '=') goto yy351; YYDEBUG(376, *YYCURSOR); ++YYCURSOR; YYDEBUG(377, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1276 "Zend/zend_language_scanner.l" +#line 1260 "Zend/zend_language_scanner.l" { - return T_PLUS_EQUAL; + return T_IS_NOT_IDENTICAL; } #line 4799 "Zend/zend_language_scanner.c" yy378: @@ -4801,53 +4801,53 @@ yy378: ++YYCURSOR; YYDEBUG(379, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1244 "Zend/zend_language_scanner.l" +#line 1280 "Zend/zend_language_scanner.l" { - return T_INC; + return T_PLUS_EQUAL; } #line 4809 "Zend/zend_language_scanner.c" yy380: YYDEBUG(380, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy381; - if (yych != 's') goto yy280; -yy381: - YYDEBUG(381, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy382; - if (yych != 't') goto yy280; -yy382: - YYDEBUG(382, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; - } - YYDEBUG(383, *YYCURSOR); + YYDEBUG(381, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1236 "Zend/zend_language_scanner.l" +#line 1248 "Zend/zend_language_scanner.l" { - return T_LIST; + return T_INC; } -#line 4832 "Zend/zend_language_scanner.c" +#line 4819 "Zend/zend_language_scanner.c" +yy382: + YYDEBUG(382, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy383; + if (yych != 's') goto yy282; +yy383: + YYDEBUG(383, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy384; + if (yych != 't') goto yy282; yy384: YYDEBUG(384, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy388; + if (yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy281; + } YYDEBUG(385, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1260 "Zend/zend_language_scanner.l" +#line 1240 "Zend/zend_language_scanner.l" { - return T_IS_EQUAL; + return T_LIST; } -#line 4843 "Zend/zend_language_scanner.c" +#line 4842 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy390; YYDEBUG(387, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1232 "Zend/zend_language_scanner.l" +#line 1264 "Zend/zend_language_scanner.l" { - return T_DOUBLE_ARROW; + return T_IS_EQUAL; } #line 4853 "Zend/zend_language_scanner.c" yy388: @@ -4855,133 +4855,143 @@ yy388: ++YYCURSOR; YYDEBUG(389, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1252 "Zend/zend_language_scanner.l" +#line 1236 "Zend/zend_language_scanner.l" { - return T_IS_IDENTICAL; + return T_DOUBLE_ARROW; } #line 4863 "Zend/zend_language_scanner.c" yy390: YYDEBUG(390, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(391, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1256 "Zend/zend_language_scanner.l" + { + return T_IS_IDENTICAL; +} +#line 4873 "Zend/zend_language_scanner.c" +yy392: + YYDEBUG(392, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'C': - case 'c': goto yy392; + case 'c': goto yy394; case 'D': - case 'd': goto yy396; + case 'd': goto yy398; case 'F': - case 'f': goto yy393; + case 'f': goto yy395; case 'H': - case 'h': goto yy391; + case 'h': goto yy393; case 'L': - case 'l': goto yy395; + case 'l': goto yy397; case 'M': - case 'm': goto yy394; + case 'm': goto yy396; case 'N': - case 'n': goto yy397; - default: goto yy280; + case 'n': goto yy399; + default: goto yy282; } -yy391: - YYDEBUG(391, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy451; - if (yych == 'a') goto yy451; - goto yy280; -yy392: - YYDEBUG(392, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy444; - if (yych == 'l') goto yy444; - goto yy280; yy393: YYDEBUG(393, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'I') goto yy428; - if (yych <= 'T') goto yy280; - goto yy429; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy280; - goto yy428; - } else { - if (yych == 'u') goto yy429; - goto yy280; - } - } + if (yych == 'A') goto yy453; + if (yych == 'a') goto yy453; + goto yy282; yy394: YYDEBUG(394, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy420; - if (yych == 'e') goto yy420; - goto yy280; + if (yych == 'L') goto yy446; + if (yych == 'l') goto yy446; + goto yy282; yy395: YYDEBUG(395, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy414; - if (yych == 'i') goto yy414; - goto yy280; + if (yych <= 'U') { + if (yych == 'I') goto yy430; + if (yych <= 'T') goto yy282; + goto yy431; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy282; + goto yy430; + } else { + if (yych == 'u') goto yy431; + goto yy282; + } + } yy396: YYDEBUG(396, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy409; - if (yych == 'i') goto yy409; - goto yy280; + if (yych == 'E') goto yy422; + if (yych == 'e') goto yy422; + goto yy282; yy397: YYDEBUG(397, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy398; - if (yych != 'a') goto yy280; + if (yych == 'I') goto yy416; + if (yych == 'i') goto yy416; + goto yy282; yy398: YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy399; - if (yych != 'm') goto yy280; + if (yych == 'I') goto yy411; + if (yych == 'i') goto yy411; + goto yy282; yy399: YYDEBUG(399, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy400; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy400; + if (yych != 'a') goto yy282; yy400: YYDEBUG(400, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy401; - if (yych != 's') goto yy280; + if (yych == 'M') goto yy401; + if (yych != 'm') goto yy282; yy401: YYDEBUG(401, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy402; - if (yych != 'p') goto yy280; + if (yych == 'E') goto yy402; + if (yych != 'e') goto yy282; yy402: YYDEBUG(402, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy403; - if (yych != 'a') goto yy280; + if (yych == 'S') goto yy403; + if (yych != 's') goto yy282; yy403: YYDEBUG(403, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy404; - if (yych != 'c') goto yy280; + if (yych == 'P') goto yy404; + if (yych != 'p') goto yy282; yy404: YYDEBUG(404, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy405; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy405; + if (yych != 'a') goto yy282; yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'C') goto yy406; + if (yych != 'c') goto yy282; +yy406: YYDEBUG(406, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'E') goto yy407; + if (yych != 'e') goto yy282; +yy407: YYDEBUG(407, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(408, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(409, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(408, *YYCURSOR); + YYDEBUG(410, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1556 "Zend/zend_language_scanner.l" +#line 1560 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -4991,27 +5001,27 @@ yy405: } return T_NS_C; } -#line 4995 "Zend/zend_language_scanner.c" -yy409: - YYDEBUG(409, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy410; - if (yych != 'r') goto yy280; -yy410: - YYDEBUG(410, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy280; +#line 5005 "Zend/zend_language_scanner.c" +yy411: YYDEBUG(411, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'R') goto yy412; + if (yych != 'r') goto yy282; +yy412: YYDEBUG(412, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(413, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(414, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(413, *YYCURSOR); + YYDEBUG(415, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1529 "Zend/zend_language_scanner.l" +#line 1533 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -5038,73 +5048,73 @@ yy410: zendlval->type = IS_STRING; return T_DIR; } -#line 5042 "Zend/zend_language_scanner.c" -yy414: - YYDEBUG(414, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy415; - if (yych != 'n') goto yy280; -yy415: - YYDEBUG(415, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy416; - if (yych != 'e') goto yy280; +#line 5052 "Zend/zend_language_scanner.c" yy416: YYDEBUG(416, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'N') goto yy417; + if (yych != 'n') goto yy282; +yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'E') goto yy418; + if (yych != 'e') goto yy282; +yy418: YYDEBUG(418, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(419, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(420, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(419, *YYCURSOR); + YYDEBUG(421, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1511 "Zend/zend_language_scanner.l" +#line 1515 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 5073 "Zend/zend_language_scanner.c" -yy420: - YYDEBUG(420, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy421; - if (yych != 't') goto yy280; -yy421: - YYDEBUG(421, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy422; - if (yych != 'h') goto yy280; +#line 5083 "Zend/zend_language_scanner.c" yy422: YYDEBUG(422, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy423; - if (yych != 'o') goto yy280; + if (yych == 'T') goto yy423; + if (yych != 't') goto yy282; yy423: YYDEBUG(423, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy424; - if (yych != 'd') goto yy280; + if (yych == 'H') goto yy424; + if (yych != 'h') goto yy282; yy424: YYDEBUG(424, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'O') goto yy425; + if (yych != 'o') goto yy282; +yy425: YYDEBUG(425, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'D') goto yy426; + if (yych != 'd') goto yy282; +yy426: YYDEBUG(426, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(427, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(428, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(427, *YYCURSOR); + YYDEBUG(429, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1490 "Zend/zend_language_scanner.l" +#line 1494 "Zend/zend_language_scanner.l" { char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL; char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL; @@ -5125,58 +5135,58 @@ yy424: zendlval->type = IS_STRING; return T_METHOD_C; } -#line 5129 "Zend/zend_language_scanner.c" -yy428: - YYDEBUG(428, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy439; - if (yych == 'l') goto yy439; - goto yy280; -yy429: - YYDEBUG(429, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy430; - if (yych != 'n') goto yy280; +#line 5139 "Zend/zend_language_scanner.c" yy430: YYDEBUG(430, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy431; - if (yych != 'c') goto yy280; + if (yych == 'L') goto yy441; + if (yych == 'l') goto yy441; + goto yy282; yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy432; - if (yych != 't') goto yy280; + if (yych == 'N') goto yy432; + if (yych != 'n') goto yy282; yy432: YYDEBUG(432, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy433; - if (yych != 'i') goto yy280; + if (yych == 'C') goto yy433; + if (yych != 'c') goto yy282; yy433: YYDEBUG(433, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy434; - if (yych != 'o') goto yy280; + if (yych == 'T') goto yy434; + if (yych != 't') goto yy282; yy434: YYDEBUG(434, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy435; - if (yych != 'n') goto yy280; + if (yych == 'I') goto yy435; + if (yych != 'i') goto yy282; yy435: YYDEBUG(435, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'O') goto yy436; + if (yych != 'o') goto yy282; +yy436: YYDEBUG(436, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'N') goto yy437; + if (yych != 'n') goto yy282; +yy437: YYDEBUG(437, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(438, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(439, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(438, *YYCURSOR); + YYDEBUG(440, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1474 "Zend/zend_language_scanner.l" +#line 1478 "Zend/zend_language_scanner.l" { char *func_name = NULL; @@ -5192,27 +5202,27 @@ yy435: zendlval->type = IS_STRING; return T_FUNC_C; } -#line 5196 "Zend/zend_language_scanner.c" -yy439: - YYDEBUG(439, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy440; - if (yych != 'e') goto yy280; -yy440: - YYDEBUG(440, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy280; +#line 5206 "Zend/zend_language_scanner.c" +yy441: YYDEBUG(441, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'E') goto yy442; + if (yych != 'e') goto yy282; +yy442: YYDEBUG(442, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(443, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(444, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(443, *YYCURSOR); + YYDEBUG(445, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1517 "Zend/zend_language_scanner.l" +#line 1521 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -5224,37 +5234,37 @@ yy440: zendlval->type = IS_STRING; return T_FILE; } -#line 5228 "Zend/zend_language_scanner.c" -yy444: - YYDEBUG(444, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy445; - if (yych != 'a') goto yy280; -yy445: - YYDEBUG(445, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy446; - if (yych != 's') goto yy280; +#line 5238 "Zend/zend_language_scanner.c" yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy447; - if (yych != 's') goto yy280; + if (yych == 'A') goto yy447; + if (yych != 'a') goto yy282; yy447: YYDEBUG(447, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'S') goto yy448; + if (yych != 's') goto yy282; +yy448: YYDEBUG(448, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'S') goto yy449; + if (yych != 's') goto yy282; +yy449: YYDEBUG(449, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(450, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '_') goto yy282; + YYDEBUG(451, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(450, *YYCURSOR); + YYDEBUG(452, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1458 "Zend/zend_language_scanner.l" +#line 1462 "Zend/zend_language_scanner.l" { char *class_name = NULL; @@ -5270,756 +5280,746 @@ yy447: zendlval->type = IS_STRING; return T_CLASS_C; } -#line 5274 "Zend/zend_language_scanner.c" -yy451: - YYDEBUG(451, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy452; - if (yych != 'l') goto yy280; -yy452: - YYDEBUG(452, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy453; - if (yych != 't') goto yy280; +#line 5284 "Zend/zend_language_scanner.c" yy453: YYDEBUG(453, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy280; + if (yych == 'L') goto yy454; + if (yych != 'l') goto yy282; +yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy455; - if (yych != 'c') goto yy280; + if (yych == 'T') goto yy455; + if (yych != 't') goto yy282; yy455: YYDEBUG(455, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy456; - if (yych != 'o') goto yy280; -yy456: + if (yych != '_') goto yy282; YYDEBUG(456, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy457; - if (yych != 'm') goto yy280; + if (yych == 'C') goto yy457; + if (yych != 'c') goto yy282; yy457: YYDEBUG(457, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy458; - if (yych != 'p') goto yy280; + if (yych == 'O') goto yy458; + if (yych != 'o') goto yy282; yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy459; - if (yych != 'i') goto yy280; + if (yych == 'M') goto yy459; + if (yych != 'm') goto yy282; yy459: YYDEBUG(459, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy460; - if (yych != 'l') goto yy280; + if (yych == 'P') goto yy460; + if (yych != 'p') goto yy282; yy460: YYDEBUG(460, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy461; - if (yych != 'e') goto yy280; + if (yych == 'I') goto yy461; + if (yych != 'i') goto yy282; yy461: YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy462; - if (yych != 'r') goto yy280; + if (yych == 'L') goto yy462; + if (yych != 'l') goto yy282; yy462: YYDEBUG(462, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy463; + if (yych != 'e') goto yy282; +yy463: + YYDEBUG(463, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy464; + if (yych != 'r') goto yy282; +yy464: + YYDEBUG(464, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(463, *YYCURSOR); + YYDEBUG(465, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1200 "Zend/zend_language_scanner.l" +#line 1204 "Zend/zend_language_scanner.l" { return T_HALT_COMPILER; } -#line 5340 "Zend/zend_language_scanner.c" -yy464: - YYDEBUG(464, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy468; - if (yych == 's') goto yy468; - goto yy280; -yy465: - YYDEBUG(465, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy466; - if (yych != 'e') goto yy280; +#line 5350 "Zend/zend_language_scanner.c" yy466: YYDEBUG(466, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy470; + if (yych == 's') goto yy470; + goto yy282; +yy467: + YYDEBUG(467, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy468; + if (yych != 'e') goto yy282; +yy468: + YYDEBUG(468, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(467, *YYCURSOR); + YYDEBUG(469, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1184 "Zend/zend_language_scanner.l" +#line 1188 "Zend/zend_language_scanner.l" { return T_USE; } -#line 5364 "Zend/zend_language_scanner.c" -yy468: - YYDEBUG(468, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy469; - if (yych != 'e') goto yy280; -yy469: - YYDEBUG(469, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy470; - if (yych != 't') goto yy280; +#line 5374 "Zend/zend_language_scanner.c" yy470: YYDEBUG(470, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy471; + if (yych != 'e') goto yy282; +yy471: + YYDEBUG(471, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy472; + if (yych != 't') goto yy282; +yy472: + YYDEBUG(472, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(471, *YYCURSOR); + YYDEBUG(473, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1228 "Zend/zend_language_scanner.l" +#line 1232 "Zend/zend_language_scanner.l" { return T_UNSET; } -#line 5387 "Zend/zend_language_scanner.c" -yy472: - YYDEBUG(472, *YYCURSOR); +#line 5397 "Zend/zend_language_scanner.c" +yy474: + YYDEBUG(474, *YYCURSOR); ++YYCURSOR; YYFILL(7); yych = *YYCURSOR; -yy473: - YYDEBUG(473, *YYCURSOR); +yy475: + YYDEBUG(475, *YYCURSOR); if (yych <= 'S') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy472; - if (yych <= 0x1F) goto yy270; - goto yy472; + if (yych == '\t') goto yy474; + if (yych <= 0x1F) goto yy272; + goto yy474; } else { if (yych <= 'A') { - if (yych <= '@') goto yy270; - goto yy477; + if (yych <= '@') goto yy272; + goto yy479; } else { - if (yych <= 'B') goto yy475; - if (yych <= 'C') goto yy270; - goto yy480; + if (yych <= 'B') goto yy477; + if (yych <= 'C') goto yy272; + goto yy482; } } } else { if (yych <= 'I') { - if (yych == 'F') goto yy481; - if (yych <= 'H') goto yy270; - goto yy482; + if (yych == 'F') goto yy483; + if (yych <= 'H') goto yy272; + goto yy484; } else { if (yych <= 'O') { - if (yych <= 'N') goto yy270; - goto yy476; - } else { - if (yych <= 'Q') goto yy270; - if (yych <= 'R') goto yy479; + if (yych <= 'N') goto yy272; goto yy478; + } else { + if (yych <= 'Q') goto yy272; + if (yych <= 'R') goto yy481; + goto yy480; } } } } else { if (yych <= 'f') { if (yych <= 'a') { - if (yych == 'U') goto yy474; - if (yych <= '`') goto yy270; - goto yy477; + if (yych == 'U') goto yy476; + if (yych <= '`') goto yy272; + goto yy479; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy475; - goto yy270; + if (yych <= 'b') goto yy477; + goto yy272; } else { - if (yych <= 'd') goto yy480; - if (yych <= 'e') goto yy270; - goto yy481; + if (yych <= 'd') goto yy482; + if (yych <= 'e') goto yy272; + goto yy483; } } } else { if (yych <= 'q') { if (yych <= 'i') { - if (yych <= 'h') goto yy270; - goto yy482; + if (yych <= 'h') goto yy272; + goto yy484; } else { - if (yych == 'o') goto yy476; - goto yy270; + if (yych == 'o') goto yy478; + goto yy272; } } else { if (yych <= 's') { - if (yych <= 'r') goto yy479; - goto yy478; + if (yych <= 'r') goto yy481; + goto yy480; } else { - if (yych != 'u') goto yy270; + if (yych != 'u') goto yy272; } } } } -yy474: - YYDEBUG(474, *YYCURSOR); +yy476: + YYDEBUG(476, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy545; - if (yych == 'n') goto yy545; - goto yy270; -yy475: - YYDEBUG(475, *YYCURSOR); + if (yych == 'N') goto yy547; + if (yych == 'n') goto yy547; + goto yy272; +yy477: + YYDEBUG(477, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy528; - if (yych <= 'N') goto yy270; - goto yy529; + if (yych == 'I') goto yy530; + if (yych <= 'N') goto yy272; + goto yy531; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy270; - goto yy528; + if (yych <= 'h') goto yy272; + goto yy530; } else { - if (yych == 'o') goto yy529; - goto yy270; + if (yych == 'o') goto yy531; + goto yy272; } } -yy476: - YYDEBUG(476, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy520; - if (yych == 'b') goto yy520; - goto yy270; -yy477: - YYDEBUG(477, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy513; - if (yych == 'r') goto yy513; - goto yy270; yy478: YYDEBUG(478, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy505; - if (yych == 't') goto yy505; - goto yy270; + if (yych == 'B') goto yy522; + if (yych == 'b') goto yy522; + goto yy272; yy479: YYDEBUG(479, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy503; - if (yych == 'e') goto yy503; - goto yy270; + if (yych == 'R') goto yy515; + if (yych == 'r') goto yy515; + goto yy272; yy480: YYDEBUG(480, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy499; - if (yych == 'o') goto yy499; - goto yy270; + if (yych == 'T') goto yy507; + if (yych == 't') goto yy507; + goto yy272; yy481: YYDEBUG(481, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy492; - if (yych == 'l') goto yy492; - goto yy270; + if (yych == 'E') goto yy505; + if (yych == 'e') goto yy505; + goto yy272; yy482: YYDEBUG(482, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy483; - if (yych != 'n') goto yy270; + if (yych == 'O') goto yy501; + if (yych == 'o') goto yy501; + goto yy272; yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy484; - if (yych != 't') goto yy270; + if (yych == 'L') goto yy494; + if (yych == 'l') goto yy494; + goto yy272; yy484: YYDEBUG(484, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy485; - if (yych != 'e') goto yy487; + if (yych == 'N') goto yy485; + if (yych != 'n') goto yy272; yy485: YYDEBUG(485, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy490; - if (yych == 'g') goto yy490; - goto yy270; + if (yych == 'T') goto yy486; + if (yych != 't') goto yy272; yy486: YYDEBUG(486, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy487; + if (yych != 'e') goto yy489; +yy487: + YYDEBUG(487, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy492; + if (yych == 'g') goto yy492; + goto yy272; +yy488: + YYDEBUG(488, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy487: - YYDEBUG(487, *YYCURSOR); +yy489: + YYDEBUG(489, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy486; - goto yy270; + if (yych == '\t') goto yy488; + goto yy272; } else { - if (yych <= ' ') goto yy486; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy488; + if (yych != ')') goto yy272; } - YYDEBUG(488, *YYCURSOR); + YYDEBUG(490, *YYCURSOR); ++YYCURSOR; - YYDEBUG(489, *YYCURSOR); + YYDEBUG(491, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1128 "Zend/zend_language_scanner.l" +#line 1132 "Zend/zend_language_scanner.l" { return T_INT_CAST; } -#line 5563 "Zend/zend_language_scanner.c" -yy490: - YYDEBUG(490, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy491; - if (yych != 'e') goto yy270; -yy491: - YYDEBUG(491, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy486; - if (yych == 'r') goto yy486; - goto yy270; +#line 5573 "Zend/zend_language_scanner.c" yy492: YYDEBUG(492, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy493; - if (yych != 'o') goto yy270; + if (yych == 'E') goto yy493; + if (yych != 'e') goto yy272; yy493: YYDEBUG(493, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy494; - if (yych != 'a') goto yy270; + if (yych == 'R') goto yy488; + if (yych == 'r') goto yy488; + goto yy272; yy494: YYDEBUG(494, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy495; - if (yych != 't') goto yy270; + if (yych == 'O') goto yy495; + if (yych != 'o') goto yy272; yy495: YYDEBUG(495, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy496; + if (yych != 'a') goto yy272; +yy496: + YYDEBUG(496, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy497; + if (yych != 't') goto yy272; +yy497: + YYDEBUG(497, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(496, *YYCURSOR); + YYDEBUG(498, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy495; - goto yy270; + if (yych == '\t') goto yy497; + goto yy272; } else { - if (yych <= ' ') goto yy495; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy497; + if (yych != ')') goto yy272; } - YYDEBUG(497, *YYCURSOR); + YYDEBUG(499, *YYCURSOR); ++YYCURSOR; - YYDEBUG(498, *YYCURSOR); + YYDEBUG(500, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1132 "Zend/zend_language_scanner.l" +#line 1136 "Zend/zend_language_scanner.l" { return T_DOUBLE_CAST; } -#line 5611 "Zend/zend_language_scanner.c" -yy499: - YYDEBUG(499, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy500; - if (yych != 'u') goto yy270; -yy500: - YYDEBUG(500, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy501; - if (yych != 'b') goto yy270; +#line 5621 "Zend/zend_language_scanner.c" yy501: YYDEBUG(501, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy502; - if (yych != 'l') goto yy270; + if (yych == 'U') goto yy502; + if (yych != 'u') goto yy272; yy502: YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy495; - if (yych == 'e') goto yy495; - goto yy270; + if (yych == 'B') goto yy503; + if (yych != 'b') goto yy272; yy503: YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy504; - if (yych != 'a') goto yy270; + if (yych == 'L') goto yy504; + if (yych != 'l') goto yy272; yy504: YYDEBUG(504, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy495; - if (yych == 'l') goto yy495; - goto yy270; + if (yych == 'E') goto yy497; + if (yych == 'e') goto yy497; + goto yy272; yy505: YYDEBUG(505, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy506; - if (yych != 'r') goto yy270; + if (yych == 'A') goto yy506; + if (yych != 'a') goto yy272; yy506: YYDEBUG(506, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy507; - if (yych != 'i') goto yy270; + if (yych == 'L') goto yy497; + if (yych == 'l') goto yy497; + goto yy272; yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy508; - if (yych != 'n') goto yy270; + if (yych == 'R') goto yy508; + if (yych != 'r') goto yy272; yy508: YYDEBUG(508, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy509; - if (yych != 'g') goto yy270; + if (yych == 'I') goto yy509; + if (yych != 'i') goto yy272; yy509: YYDEBUG(509, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy510; + if (yych != 'n') goto yy272; +yy510: + YYDEBUG(510, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy511; + if (yych != 'g') goto yy272; +yy511: + YYDEBUG(511, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(510, *YYCURSOR); + YYDEBUG(512, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy509; - goto yy270; + if (yych == '\t') goto yy511; + goto yy272; } else { - if (yych <= ' ') goto yy509; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy511; + if (yych != ')') goto yy272; } - YYDEBUG(511, *YYCURSOR); + YYDEBUG(513, *YYCURSOR); ++YYCURSOR; - YYDEBUG(512, *YYCURSOR); + YYDEBUG(514, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1136 "Zend/zend_language_scanner.l" +#line 1140 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 5685 "Zend/zend_language_scanner.c" -yy513: - YYDEBUG(513, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy514; - if (yych != 'r') goto yy270; -yy514: - YYDEBUG(514, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy515; - if (yych != 'a') goto yy270; +#line 5695 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy516; - if (yych != 'y') goto yy270; + if (yych == 'R') goto yy516; + if (yych != 'r') goto yy272; yy516: YYDEBUG(516, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy517; + if (yych != 'a') goto yy272; +yy517: + YYDEBUG(517, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy518; + if (yych != 'y') goto yy272; +yy518: + YYDEBUG(518, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(517, *YYCURSOR); + YYDEBUG(519, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy516; - goto yy270; + if (yych == '\t') goto yy518; + goto yy272; } else { - if (yych <= ' ') goto yy516; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy518; + if (yych != ')') goto yy272; } - YYDEBUG(518, *YYCURSOR); + YYDEBUG(520, *YYCURSOR); ++YYCURSOR; - YYDEBUG(519, *YYCURSOR); + YYDEBUG(521, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1144 "Zend/zend_language_scanner.l" +#line 1148 "Zend/zend_language_scanner.l" { return T_ARRAY_CAST; } -#line 5722 "Zend/zend_language_scanner.c" -yy520: - YYDEBUG(520, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'J') goto yy521; - if (yych != 'j') goto yy270; -yy521: - YYDEBUG(521, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy522; - if (yych != 'e') goto yy270; +#line 5732 "Zend/zend_language_scanner.c" yy522: YYDEBUG(522, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy523; - if (yych != 'c') goto yy270; + if (yych == 'J') goto yy523; + if (yych != 'j') goto yy272; yy523: YYDEBUG(523, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy524; - if (yych != 't') goto yy270; + if (yych == 'E') goto yy524; + if (yych != 'e') goto yy272; yy524: YYDEBUG(524, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy525; + if (yych != 'c') goto yy272; +yy525: + YYDEBUG(525, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy526; + if (yych != 't') goto yy272; +yy526: + YYDEBUG(526, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(525, *YYCURSOR); + YYDEBUG(527, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy524; - goto yy270; + if (yych == '\t') goto yy526; + goto yy272; } else { - if (yych <= ' ') goto yy524; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy526; + if (yych != ')') goto yy272; } - YYDEBUG(526, *YYCURSOR); + YYDEBUG(528, *YYCURSOR); ++YYCURSOR; - YYDEBUG(527, *YYCURSOR); + YYDEBUG(529, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1148 "Zend/zend_language_scanner.l" +#line 1152 "Zend/zend_language_scanner.l" { return T_OBJECT_CAST; } -#line 5764 "Zend/zend_language_scanner.c" -yy528: - YYDEBUG(528, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy538; - if (yych == 'n') goto yy538; - goto yy270; -yy529: - YYDEBUG(529, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy530; - if (yych != 'o') goto yy270; +#line 5774 "Zend/zend_language_scanner.c" yy530: YYDEBUG(530, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy531; - if (yych != 'l') goto yy270; + if (yych == 'N') goto yy540; + if (yych == 'n') goto yy540; + goto yy272; yy531: YYDEBUG(531, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy536; - if (yych == 'e') goto yy536; - goto yy533; + if (yych == 'O') goto yy532; + if (yych != 'o') goto yy272; yy532: YYDEBUG(532, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy533; + if (yych != 'l') goto yy272; +yy533: + YYDEBUG(533, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy538; + if (yych == 'e') goto yy538; + goto yy535; +yy534: + YYDEBUG(534, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy533: - YYDEBUG(533, *YYCURSOR); +yy535: + YYDEBUG(535, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy270; + if (yych == '\t') goto yy534; + goto yy272; } else { - if (yych <= ' ') goto yy532; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy534; + if (yych != ')') goto yy272; } - YYDEBUG(534, *YYCURSOR); + YYDEBUG(536, *YYCURSOR); ++YYCURSOR; - YYDEBUG(535, *YYCURSOR); + YYDEBUG(537, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1152 "Zend/zend_language_scanner.l" +#line 1156 "Zend/zend_language_scanner.l" { return T_BOOL_CAST; } -#line 5809 "Zend/zend_language_scanner.c" -yy536: - YYDEBUG(536, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy537; - if (yych != 'a') goto yy270; -yy537: - YYDEBUG(537, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy532; - if (yych == 'n') goto yy532; - goto yy270; +#line 5819 "Zend/zend_language_scanner.c" yy538: YYDEBUG(538, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'A') goto yy539; - if (yych != 'a') goto yy270; + if (yych != 'a') goto yy272; yy539: YYDEBUG(539, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy540; - if (yych != 'r') goto yy270; + if (yych == 'N') goto yy534; + if (yych == 'n') goto yy534; + goto yy272; yy540: YYDEBUG(540, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy541; - if (yych != 'y') goto yy270; + if (yych == 'A') goto yy541; + if (yych != 'a') goto yy272; yy541: YYDEBUG(541, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy542; + if (yych != 'r') goto yy272; +yy542: + YYDEBUG(542, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy543; + if (yych != 'y') goto yy272; +yy543: + YYDEBUG(543, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(542, *YYCURSOR); + YYDEBUG(544, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy541; - goto yy270; + if (yych == '\t') goto yy543; + goto yy272; } else { - if (yych <= ' ') goto yy541; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy543; + if (yych != ')') goto yy272; } - YYDEBUG(543, *YYCURSOR); + YYDEBUG(545, *YYCURSOR); ++YYCURSOR; - YYDEBUG(544, *YYCURSOR); + YYDEBUG(546, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1140 "Zend/zend_language_scanner.l" +#line 1144 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 5857 "Zend/zend_language_scanner.c" -yy545: - YYDEBUG(545, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy546; - if (yych != 's') goto yy270; -yy546: - YYDEBUG(546, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy547; - if (yych != 'e') goto yy270; +#line 5867 "Zend/zend_language_scanner.c" yy547: YYDEBUG(547, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy548; - if (yych != 't') goto yy270; + if (yych == 'S') goto yy548; + if (yych != 's') goto yy272; yy548: YYDEBUG(548, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy549; + if (yych != 'e') goto yy272; +yy549: + YYDEBUG(549, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy550; + if (yych != 't') goto yy272; +yy550: + YYDEBUG(550, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(549, *YYCURSOR); + YYDEBUG(551, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy548; - goto yy270; + if (yych == '\t') goto yy550; + goto yy272; } else { - if (yych <= ' ') goto yy548; - if (yych != ')') goto yy270; + if (yych <= ' ') goto yy550; + if (yych != ')') goto yy272; } - YYDEBUG(550, *YYCURSOR); + YYDEBUG(552, *YYCURSOR); ++YYCURSOR; - YYDEBUG(551, *YYCURSOR); + YYDEBUG(553, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1156 "Zend/zend_language_scanner.l" +#line 1160 "Zend/zend_language_scanner.l" { return T_UNSET_CAST; } -#line 5894 "Zend/zend_language_scanner.c" -yy552: - YYDEBUG(552, *YYCURSOR); +#line 5904 "Zend/zend_language_scanner.c" +yy554: + YYDEBUG(554, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy553; - if (yych != 'r') goto yy280; -yy553: - YYDEBUG(553, *YYCURSOR); + if (yych == 'R') goto yy555; + if (yych != 'r') goto yy282; +yy555: + YYDEBUG(555, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(554, *YYCURSOR); + YYDEBUG(556, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1124 "Zend/zend_language_scanner.l" +#line 1128 "Zend/zend_language_scanner.l" { return T_VAR; } -#line 5912 "Zend/zend_language_scanner.c" -yy555: - YYDEBUG(555, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy559; - if (yych == 'm') goto yy559; - goto yy280; -yy556: - YYDEBUG(556, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy557; - if (yych != 'w') goto yy280; +#line 5922 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy561; + if (yych == 'm') goto yy561; + goto yy282; +yy558: + YYDEBUG(558, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy559; + if (yych != 'w') goto yy282; +yy559: + YYDEBUG(559, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(558, *YYCURSOR); + YYDEBUG(560, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1116 "Zend/zend_language_scanner.l" +#line 1120 "Zend/zend_language_scanner.l" { return T_NEW; } -#line 5936 "Zend/zend_language_scanner.c" -yy559: - YYDEBUG(559, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy560; - if (yych != 'e') goto yy280; -yy560: - YYDEBUG(560, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy561; - if (yych != 's') goto yy280; +#line 5946 "Zend/zend_language_scanner.c" yy561: YYDEBUG(561, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy562; - if (yych != 'p') goto yy280; + if (yych == 'E') goto yy562; + if (yych != 'e') goto yy282; yy562: YYDEBUG(562, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy563; - if (yych != 'a') goto yy280; + if (yych == 'S') goto yy563; + if (yych != 's') goto yy282; yy563: YYDEBUG(563, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy564; - if (yych != 'c') goto yy280; + if (yych == 'P') goto yy564; + if (yych != 'p') goto yy282; yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy565; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy565; + if (yych != 'a') goto yy282; yy565: YYDEBUG(565, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy566; + if (yych != 'c') goto yy282; +yy566: + YYDEBUG(566, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy567; + if (yych != 'e') goto yy282; +yy567: + YYDEBUG(567, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(566, *YYCURSOR); + YYDEBUG(568, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1180 "Zend/zend_language_scanner.l" +#line 1184 "Zend/zend_language_scanner.l" { return T_NAMESPACE; } -#line 5979 "Zend/zend_language_scanner.c" -yy567: - YYDEBUG(567, *YYCURSOR); +#line 5989 "Zend/zend_language_scanner.c" +yy569: + YYDEBUG(569, *YYCURSOR); ++YYCURSOR; - YYDEBUG(568, *YYCURSOR); + YYDEBUG(570, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1112 "Zend/zend_language_scanner.l" { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5989 "Zend/zend_language_scanner.c" -yy569: - YYDEBUG(569, *YYCURSOR); +#line 5999 "Zend/zend_language_scanner.c" +yy571: + YYDEBUG(571, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy570: - YYDEBUG(570, *YYCURSOR); +yy572: + YYDEBUG(572, *YYCURSOR); if (yych <= '\f') { if (yych <= 0x08) goto yy221; - if (yych <= '\n') goto yy569; + if (yych <= '\n') goto yy571; goto yy221; } else { - if (yych <= '\r') goto yy569; - if (yych == ' ') goto yy569; + if (yych <= '\r') goto yy571; + if (yych == ' ') goto yy571; goto yy221; } -yy571: - YYDEBUG(571, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(572, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1280 "Zend/zend_language_scanner.l" - { - return T_MINUS_EQUAL; -} -#line 6015 "Zend/zend_language_scanner.c" yy573: YYDEBUG(573, *YYCURSOR); ++YYCURSOR; YYDEBUG(574, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1248 "Zend/zend_language_scanner.l" +#line 1284 "Zend/zend_language_scanner.l" { - return T_DEC; + return T_MINUS_EQUAL; } #line 6025 "Zend/zend_language_scanner.c" yy575: @@ -6027,1786 +6027,1796 @@ yy575: ++YYCURSOR; YYDEBUG(576, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); +#line 1252 "Zend/zend_language_scanner.l" + { + return T_DEC; +} +#line 6035 "Zend/zend_language_scanner.c" +yy577: + YYDEBUG(577, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(578, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); #line 1082 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 6036 "Zend/zend_language_scanner.c" -yy577: - YYDEBUG(577, *YYCURSOR); +#line 6046 "Zend/zend_language_scanner.c" +yy579: + YYDEBUG(579, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy584; - if (yych <= 'N') goto yy280; - goto yy585; + if (yych == 'I') goto yy586; + if (yych <= 'N') goto yy282; + goto yy587; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy280; - goto yy584; + if (yych <= 'h') goto yy282; + goto yy586; } else { - if (yych == 'o') goto yy585; - goto yy280; + if (yych == 'o') goto yy587; + goto yy282; } } -yy578: - YYDEBUG(578, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy579; - if (yych != 'b') goto yy280; -yy579: - YYDEBUG(579, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy580; - if (yych != 'l') goto yy280; yy580: YYDEBUG(580, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy581; - if (yych != 'i') goto yy280; + if (yych == 'B') goto yy581; + if (yych != 'b') goto yy282; yy581: YYDEBUG(581, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy582; - if (yych != 'c') goto yy280; + if (yych == 'L') goto yy582; + if (yych != 'l') goto yy282; yy582: YYDEBUG(582, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy583; + if (yych != 'i') goto yy282; +yy583: + YYDEBUG(583, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy584; + if (yych != 'c') goto yy282; +yy584: + YYDEBUG(584, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(583, *YYCURSOR); + YYDEBUG(585, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1224 "Zend/zend_language_scanner.l" +#line 1228 "Zend/zend_language_scanner.l" { return T_PUBLIC; } -#line 6085 "Zend/zend_language_scanner.c" -yy584: - YYDEBUG(584, *YYCURSOR); +#line 6095 "Zend/zend_language_scanner.c" +yy586: + YYDEBUG(586, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'V') { - if (yych == 'N') goto yy593; - if (yych <= 'U') goto yy280; - goto yy594; + if (yych == 'N') goto yy595; + if (yych <= 'U') goto yy282; + goto yy596; } else { if (yych <= 'n') { - if (yych <= 'm') goto yy280; - goto yy593; + if (yych <= 'm') goto yy282; + goto yy595; } else { - if (yych == 'v') goto yy594; - goto yy280; + if (yych == 'v') goto yy596; + goto yy282; } } -yy585: - YYDEBUG(585, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy586; - if (yych != 't') goto yy280; -yy586: - YYDEBUG(586, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy587; - if (yych != 'e') goto yy280; yy587: YYDEBUG(587, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy588; - if (yych != 'c') goto yy280; + if (yych == 'T') goto yy588; + if (yych != 't') goto yy282; yy588: YYDEBUG(588, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy589; - if (yych != 't') goto yy280; + if (yych == 'E') goto yy589; + if (yych != 'e') goto yy282; yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy590; - if (yych != 'e') goto yy280; + if (yych == 'C') goto yy590; + if (yych != 'c') goto yy282; yy590: YYDEBUG(590, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy591; - if (yych != 'd') goto yy280; + if (yych == 'T') goto yy591; + if (yych != 't') goto yy282; yy591: YYDEBUG(591, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy592; + if (yych != 'e') goto yy282; +yy592: + YYDEBUG(592, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy593; + if (yych != 'd') goto yy282; +yy593: + YYDEBUG(593, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(592, *YYCURSOR); + YYDEBUG(594, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1220 "Zend/zend_language_scanner.l" +#line 1224 "Zend/zend_language_scanner.l" { return T_PROTECTED; } -#line 6144 "Zend/zend_language_scanner.c" -yy593: - YYDEBUG(593, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy599; - if (yych == 't') goto yy599; - goto yy280; -yy594: - YYDEBUG(594, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy595; - if (yych != 'a') goto yy280; +#line 6154 "Zend/zend_language_scanner.c" yy595: YYDEBUG(595, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy596; - if (yych != 't') goto yy280; + if (yych == 'T') goto yy601; + if (yych == 't') goto yy601; + goto yy282; yy596: YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy597; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy597; + if (yych != 'a') goto yy282; yy597: YYDEBUG(597, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy598; + if (yych != 't') goto yy282; +yy598: + YYDEBUG(598, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy599; + if (yych != 'e') goto yy282; +yy599: + YYDEBUG(599, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(598, *YYCURSOR); + YYDEBUG(600, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1216 "Zend/zend_language_scanner.l" +#line 1220 "Zend/zend_language_scanner.l" { return T_PRIVATE; } -#line 6178 "Zend/zend_language_scanner.c" -yy599: - YYDEBUG(599, *YYCURSOR); +#line 6188 "Zend/zend_language_scanner.c" +yy601: + YYDEBUG(601, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(600, *YYCURSOR); + YYDEBUG(602, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1062 "Zend/zend_language_scanner.l" { return T_PRINT; } -#line 6191 "Zend/zend_language_scanner.c" -yy601: - YYDEBUG(601, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy606; - if (yych == 'o') goto yy606; - goto yy280; -yy602: - YYDEBUG(602, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy603; - if (yych != 't') goto yy280; +#line 6201 "Zend/zend_language_scanner.c" yy603: YYDEBUG(603, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy604; - if (yych != 'o') goto yy280; + if (yych == 'O') goto yy608; + if (yych == 'o') goto yy608; + goto yy282; yy604: YYDEBUG(604, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy605; + if (yych != 't') goto yy282; +yy605: + YYDEBUG(605, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy606; + if (yych != 'o') goto yy282; +yy606: + YYDEBUG(606, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(605, *YYCURSOR); + YYDEBUG(607, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1054 "Zend/zend_language_scanner.l" { return T_GOTO; } -#line 6220 "Zend/zend_language_scanner.c" -yy606: - YYDEBUG(606, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy607; - if (yych != 'b') goto yy280; -yy607: - YYDEBUG(607, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy608; - if (yych != 'a') goto yy280; +#line 6230 "Zend/zend_language_scanner.c" yy608: YYDEBUG(608, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy609; - if (yych != 'l') goto yy280; + if (yych == 'B') goto yy609; + if (yych != 'b') goto yy282; yy609: YYDEBUG(609, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy610; + if (yych != 'a') goto yy282; +yy610: + YYDEBUG(610, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy611; + if (yych != 'l') goto yy282; +yy611: + YYDEBUG(611, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(610, *YYCURSOR); + YYDEBUG(612, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1188 "Zend/zend_language_scanner.l" +#line 1192 "Zend/zend_language_scanner.l" { return T_GLOBAL; } -#line 6248 "Zend/zend_language_scanner.c" -yy611: - YYDEBUG(611, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy618; - goto yy270; -yy612: - YYDEBUG(612, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - goto yy272; +#line 6258 "Zend/zend_language_scanner.c" yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy614; - if (yych != 'e') goto yy280; + if (yych == '<') goto yy620; + goto yy272; yy614: YYDEBUG(614, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy615; - if (yych != 'a') goto yy280; + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + goto yy274; yy615: YYDEBUG(615, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy616; - if (yych != 'k') goto yy280; + if (yych == 'E') goto yy616; + if (yych != 'e') goto yy282; yy616: YYDEBUG(616, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy617; + if (yych != 'a') goto yy282; +yy617: + YYDEBUG(617, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy618; + if (yych != 'k') goto yy282; +yy618: + YYDEBUG(618, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(617, *YYCURSOR); + YYDEBUG(619, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1046 "Zend/zend_language_scanner.l" { return T_BREAK; } -#line 6286 "Zend/zend_language_scanner.c" -yy618: - YYDEBUG(618, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy359; - goto yy270; -yy619: - YYDEBUG(619, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy626; - if (yych == 'a') goto yy626; - goto yy280; +#line 6296 "Zend/zend_language_scanner.c" yy620: YYDEBUG(620, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy621; - if (yych != 'i') goto yy280; + if (yych == '<') goto yy361; + goto yy272; yy621: YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy622; - if (yych != 't') goto yy280; + if (yych == 'A') goto yy628; + if (yych == 'a') goto yy628; + goto yy282; yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy623; - if (yych != 'c') goto yy280; + if (yych == 'I') goto yy623; + if (yych != 'i') goto yy282; yy623: YYDEBUG(623, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy624; - if (yych != 'h') goto yy280; + if (yych == 'T') goto yy624; + if (yych != 't') goto yy282; yy624: YYDEBUG(624, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy625; + if (yych != 'c') goto yy282; +yy625: + YYDEBUG(625, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy626; + if (yych != 'h') goto yy282; +yy626: + YYDEBUG(626, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(625, *YYCURSOR); + YYDEBUG(627, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1030 "Zend/zend_language_scanner.l" { return T_SWITCH; } -#line 6330 "Zend/zend_language_scanner.c" -yy626: - YYDEBUG(626, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy627; - if (yych != 't') goto yy280; -yy627: - YYDEBUG(627, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy628; - if (yych != 'i') goto yy280; +#line 6340 "Zend/zend_language_scanner.c" yy628: YYDEBUG(628, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy629; - if (yych != 'c') goto yy280; + if (yych == 'T') goto yy629; + if (yych != 't') goto yy282; yy629: YYDEBUG(629, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy630; + if (yych != 'i') goto yy282; +yy630: + YYDEBUG(630, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy631; + if (yych != 'c') goto yy282; +yy631: + YYDEBUG(631, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(630, *YYCURSOR); + YYDEBUG(632, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1204 "Zend/zend_language_scanner.l" +#line 1208 "Zend/zend_language_scanner.l" { return T_STATIC; } -#line 6358 "Zend/zend_language_scanner.c" -yy631: - YYDEBUG(631, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy642; - if (yych == 's') goto yy642; - goto yy280; -yy632: - YYDEBUG(632, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy640; - if (yych == 'd') goto yy640; - goto yy280; +#line 6368 "Zend/zend_language_scanner.c" yy633: YYDEBUG(633, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy636; - if (yych == 'r') goto yy636; - goto yy280; + if (yych == 'S') goto yy644; + if (yych == 's') goto yy644; + goto yy282; yy634: YYDEBUG(634, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy642; + if (yych == 'd') goto yy642; + goto yy282; +yy635: + YYDEBUG(635, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy638; + if (yych == 'r') goto yy638; + goto yy282; +yy636: + YYDEBUG(636, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(635, *YYCURSOR); + YYDEBUG(637, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1026 "Zend/zend_language_scanner.l" { return T_AS; } -#line 6389 "Zend/zend_language_scanner.c" -yy636: - YYDEBUG(636, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy637; - if (yych != 'a') goto yy280; -yy637: - YYDEBUG(637, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy638; - if (yych != 'y') goto yy280; +#line 6399 "Zend/zend_language_scanner.c" yy638: YYDEBUG(638, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy639; + if (yych != 'a') goto yy282; +yy639: + YYDEBUG(639, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy640; + if (yych != 'y') goto yy282; +yy640: + YYDEBUG(640, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(639, *YYCURSOR); + YYDEBUG(641, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1240 "Zend/zend_language_scanner.l" +#line 1244 "Zend/zend_language_scanner.l" { return T_ARRAY; } -#line 6412 "Zend/zend_language_scanner.c" -yy640: - YYDEBUG(640, *YYCURSOR); +#line 6422 "Zend/zend_language_scanner.c" +yy642: + YYDEBUG(642, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(641, *YYCURSOR); + YYDEBUG(643, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1332 "Zend/zend_language_scanner.l" +#line 1336 "Zend/zend_language_scanner.l" { return T_LOGICAL_AND; } -#line 6425 "Zend/zend_language_scanner.c" -yy642: - YYDEBUG(642, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy643; - if (yych != 't') goto yy280; -yy643: - YYDEBUG(643, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy644; - if (yych != 'r') goto yy280; +#line 6435 "Zend/zend_language_scanner.c" yy644: YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy645; - if (yych != 'a') goto yy280; + if (yych == 'T') goto yy645; + if (yych != 't') goto yy282; yy645: YYDEBUG(645, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy646; - if (yych != 'c') goto yy280; + if (yych == 'R') goto yy646; + if (yych != 'r') goto yy282; yy646: YYDEBUG(646, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy647; - if (yych != 't') goto yy280; + if (yych == 'A') goto yy647; + if (yych != 'a') goto yy282; yy647: YYDEBUG(647, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy648; + if (yych != 'c') goto yy282; +yy648: + YYDEBUG(648, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy649; + if (yych != 't') goto yy282; +yy649: + YYDEBUG(649, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(648, *YYCURSOR); + YYDEBUG(650, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1208 "Zend/zend_language_scanner.l" +#line 1212 "Zend/zend_language_scanner.l" { return T_ABSTRACT; } -#line 6463 "Zend/zend_language_scanner.c" -yy649: - YYDEBUG(649, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy650; - if (yych != 'i') goto yy280; -yy650: - YYDEBUG(650, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy651; - if (yych != 'l') goto yy280; +#line 6473 "Zend/zend_language_scanner.c" yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy652; - if (yych != 'e') goto yy280; + if (yych == 'I') goto yy652; + if (yych != 'i') goto yy282; yy652: YYDEBUG(652, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy653; + if (yych != 'l') goto yy282; +yy653: + YYDEBUG(653, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy654; + if (yych != 'e') goto yy282; +yy654: + YYDEBUG(654, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(653, *YYCURSOR); + YYDEBUG(655, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 986 "Zend/zend_language_scanner.l" { return T_WHILE; } -#line 6491 "Zend/zend_language_scanner.c" -yy654: - YYDEBUG(654, *YYCURSOR); +#line 6501 "Zend/zend_language_scanner.c" +yy656: + YYDEBUG(656, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(655, *YYCURSOR); + YYDEBUG(657, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 970 "Zend/zend_language_scanner.l" { return T_IF; } -#line 6504 "Zend/zend_language_scanner.c" -yy656: - YYDEBUG(656, *YYCURSOR); +#line 6514 "Zend/zend_language_scanner.c" +yy658: + YYDEBUG(658, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy692; - if (yych == 'p') goto yy692; - goto yy280; -yy657: - YYDEBUG(657, *YYCURSOR); + if (yych == 'P') goto yy694; + if (yych == 'p') goto yy694; + goto yy282; +yy659: + YYDEBUG(659, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= 'C') { - if (yych <= 'B') goto yy280; - goto yy665; + if (yych <= 'B') goto yy282; + goto yy667; } else { - if (yych <= 'R') goto yy280; - if (yych <= 'S') goto yy663; - goto yy664; + if (yych <= 'R') goto yy282; + if (yych <= 'S') goto yy665; + goto yy666; } } else { if (yych <= 'r') { - if (yych == 'c') goto yy665; - goto yy280; + if (yych == 'c') goto yy667; + goto yy282; } else { - if (yych <= 's') goto yy663; - if (yych <= 't') goto yy664; - goto yy280; + if (yych <= 's') goto yy665; + if (yych <= 't') goto yy666; + goto yy282; } } -yy658: - YYDEBUG(658, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy659; - if (yych != 's') goto yy280; -yy659: - YYDEBUG(659, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy660; - if (yych != 'e') goto yy280; yy660: YYDEBUG(660, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy661; - if (yych != 't') goto yy280; + if (yych == 'S') goto yy661; + if (yych != 's') goto yy282; yy661: YYDEBUG(661, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy662; + if (yych != 'e') goto yy282; +yy662: + YYDEBUG(662, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy663; + if (yych != 't') goto yy282; +yy663: + YYDEBUG(663, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(662, *YYCURSOR); + YYDEBUG(664, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1192 "Zend/zend_language_scanner.l" +#line 1196 "Zend/zend_language_scanner.l" { return T_ISSET; } -#line 6560 "Zend/zend_language_scanner.c" -yy663: - YYDEBUG(663, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy684; - if (yych == 't') goto yy684; - goto yy280; -yy664: - YYDEBUG(664, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy677; - if (yych == 'e') goto yy677; - goto yy280; +#line 6570 "Zend/zend_language_scanner.c" yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy666; - if (yych != 'l') goto yy280; + if (yych == 'T') goto yy686; + if (yych == 't') goto yy686; + goto yy282; yy666: YYDEBUG(666, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy667; - if (yych != 'u') goto yy280; + if (yych == 'E') goto yy679; + if (yych == 'e') goto yy679; + goto yy282; yy667: YYDEBUG(667, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy668; - if (yych != 'd') goto yy280; + if (yych == 'L') goto yy668; + if (yych != 'l') goto yy282; yy668: YYDEBUG(668, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy669; - if (yych != 'e') goto yy280; + if (yych == 'U') goto yy669; + if (yych != 'u') goto yy282; yy669: YYDEBUG(669, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy670; + if (yych != 'd') goto yy282; +yy670: + YYDEBUG(670, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy671; + if (yych != 'e') goto yy282; +yy671: + YYDEBUG(671, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy279; + if (yych >= '0') goto yy281; } else { - if (yych <= '@') goto yy670; - if (yych <= 'Z') goto yy279; + if (yych <= '@') goto yy672; + if (yych <= 'Z') goto yy281; } } else { if (yych <= '`') { - if (yych <= '_') goto yy671; + if (yych <= '_') goto yy673; } else { - if (yych <= 'z') goto yy279; - if (yych >= 0x7F) goto yy279; + if (yych <= 'z') goto yy281; + if (yych >= 0x7F) goto yy281; } } -yy670: - YYDEBUG(670, *YYCURSOR); +yy672: + YYDEBUG(672, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1164 "Zend/zend_language_scanner.l" +#line 1168 "Zend/zend_language_scanner.l" { return T_INCLUDE; } -#line 6618 "Zend/zend_language_scanner.c" -yy671: - YYDEBUG(671, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy672; - if (yych != 'o') goto yy280; -yy672: - YYDEBUG(672, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy673; - if (yych != 'n') goto yy280; +#line 6628 "Zend/zend_language_scanner.c" yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy674; - if (yych != 'c') goto yy280; + if (yych == 'O') goto yy674; + if (yych != 'o') goto yy282; yy674: YYDEBUG(674, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy675; - if (yych != 'e') goto yy280; + if (yych == 'N') goto yy675; + if (yych != 'n') goto yy282; yy675: YYDEBUG(675, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy676; + if (yych != 'c') goto yy282; +yy676: + YYDEBUG(676, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy677; + if (yych != 'e') goto yy282; +yy677: + YYDEBUG(677, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(676, *YYCURSOR); + YYDEBUG(678, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1168 "Zend/zend_language_scanner.l" +#line 1172 "Zend/zend_language_scanner.l" { return T_INCLUDE_ONCE; } -#line 6651 "Zend/zend_language_scanner.c" -yy677: - YYDEBUG(677, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy678; - if (yych != 'r') goto yy280; -yy678: - YYDEBUG(678, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy679; - if (yych != 'f') goto yy280; +#line 6661 "Zend/zend_language_scanner.c" yy679: YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy680; - if (yych != 'a') goto yy280; + if (yych == 'R') goto yy680; + if (yych != 'r') goto yy282; yy680: YYDEBUG(680, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy681; - if (yych != 'c') goto yy280; + if (yych == 'F') goto yy681; + if (yych != 'f') goto yy282; yy681: YYDEBUG(681, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy682; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy682; + if (yych != 'a') goto yy282; yy682: YYDEBUG(682, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy683; + if (yych != 'c') goto yy282; +yy683: + YYDEBUG(683, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy684; + if (yych != 'e') goto yy282; +yy684: + YYDEBUG(684, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(683, *YYCURSOR); + YYDEBUG(685, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1070 "Zend/zend_language_scanner.l" { return T_INTERFACE; } -#line 6689 "Zend/zend_language_scanner.c" -yy684: - YYDEBUG(684, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy685; - if (yych != 'a') goto yy280; -yy685: - YYDEBUG(685, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy686; - if (yych != 'n') goto yy280; +#line 6699 "Zend/zend_language_scanner.c" yy686: YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy687; - if (yych != 'c') goto yy280; + if (yych == 'A') goto yy687; + if (yych != 'a') goto yy282; yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy688; - if (yych != 'e') goto yy280; + if (yych == 'N') goto yy688; + if (yych != 'n') goto yy282; yy688: YYDEBUG(688, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy689; - if (yych != 'o') goto yy280; + if (yych == 'C') goto yy689; + if (yych != 'c') goto yy282; yy689: YYDEBUG(689, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy690; - if (yych != 'f') goto yy280; + if (yych == 'E') goto yy690; + if (yych != 'e') goto yy282; yy690: YYDEBUG(690, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy691; + if (yych != 'o') goto yy282; +yy691: + YYDEBUG(691, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy692; + if (yych != 'f') goto yy282; +yy692: + YYDEBUG(692, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(691, *YYCURSOR); + YYDEBUG(693, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1022 "Zend/zend_language_scanner.l" { return T_INSTANCEOF; } -#line 6732 "Zend/zend_language_scanner.c" -yy692: - YYDEBUG(692, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy693; - if (yych != 'l') goto yy280; -yy693: - YYDEBUG(693, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy694; - if (yych != 'e') goto yy280; +#line 6742 "Zend/zend_language_scanner.c" yy694: YYDEBUG(694, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy695; - if (yych != 'm') goto yy280; + if (yych == 'L') goto yy695; + if (yych != 'l') goto yy282; yy695: YYDEBUG(695, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'E') goto yy696; - if (yych != 'e') goto yy280; + if (yych != 'e') goto yy282; yy696: YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy697; - if (yych != 'n') goto yy280; + if (yych == 'M') goto yy697; + if (yych != 'm') goto yy282; yy697: YYDEBUG(697, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy698; - if (yych != 't') goto yy280; + if (yych == 'E') goto yy698; + if (yych != 'e') goto yy282; yy698: YYDEBUG(698, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy699; - if (yych != 's') goto yy280; + if (yych == 'N') goto yy699; + if (yych != 'n') goto yy282; yy699: YYDEBUG(699, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy700; + if (yych != 't') goto yy282; +yy700: + YYDEBUG(700, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy701; + if (yych != 's') goto yy282; +yy701: + YYDEBUG(701, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(700, *YYCURSOR); + YYDEBUG(702, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1078 "Zend/zend_language_scanner.l" { return T_IMPLEMENTS; } -#line 6780 "Zend/zend_language_scanner.c" -yy701: - YYDEBUG(701, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy705; - if (yych == 'r') goto yy705; - goto yy280; -yy702: - YYDEBUG(702, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy703; - if (yych != 'y') goto yy280; +#line 6790 "Zend/zend_language_scanner.c" yy703: YYDEBUG(703, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy707; + if (yych == 'r') goto yy707; + goto yy282; +yy704: + YYDEBUG(704, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy705; + if (yych != 'y') goto yy282; +yy705: + YYDEBUG(705, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(704, *YYCURSOR); + YYDEBUG(706, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 958 "Zend/zend_language_scanner.l" { return T_TRY; } -#line 6804 "Zend/zend_language_scanner.c" -yy705: - YYDEBUG(705, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy706; - if (yych != 'o') goto yy280; -yy706: - YYDEBUG(706, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy707; - if (yych != 'w') goto yy280; +#line 6814 "Zend/zend_language_scanner.c" yy707: YYDEBUG(707, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy708; + if (yych != 'o') goto yy282; +yy708: + YYDEBUG(708, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy709; + if (yych != 'w') goto yy282; +yy709: + YYDEBUG(709, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(708, *YYCURSOR); + YYDEBUG(710, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 966 "Zend/zend_language_scanner.l" { return T_THROW; } -#line 6827 "Zend/zend_language_scanner.c" -yy709: - YYDEBUG(709, *YYCURSOR); +#line 6837 "Zend/zend_language_scanner.c" +yy711: + YYDEBUG(711, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { - if (yych == 'Q') goto yy711; - if (yych <= 'S') goto yy280; + if (yych == 'Q') goto yy713; + if (yych <= 'S') goto yy282; } else { if (yych <= 'q') { - if (yych <= 'p') goto yy280; - goto yy711; + if (yych <= 'p') goto yy282; + goto yy713; } else { - if (yych != 't') goto yy280; + if (yych != 't') goto yy282; } } - YYDEBUG(710, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy723; - if (yych == 'u') goto yy723; - goto yy280; -yy711: - YYDEBUG(711, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy712; - if (yych != 'u') goto yy280; -yy712: YYDEBUG(712, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy713; - if (yych != 'i') goto yy280; + if (yych == 'U') goto yy725; + if (yych == 'u') goto yy725; + goto yy282; yy713: YYDEBUG(713, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy714; - if (yych != 'r') goto yy280; + if (yych == 'U') goto yy714; + if (yych != 'u') goto yy282; yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy715; - if (yych != 'e') goto yy280; + if (yych == 'I') goto yy715; + if (yych != 'i') goto yy282; yy715: YYDEBUG(715, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy716; + if (yych != 'r') goto yy282; +yy716: + YYDEBUG(716, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy717; + if (yych != 'e') goto yy282; +yy717: + YYDEBUG(717, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy279; + if (yych >= '0') goto yy281; } else { - if (yych <= '@') goto yy716; - if (yych <= 'Z') goto yy279; + if (yych <= '@') goto yy718; + if (yych <= 'Z') goto yy281; } } else { if (yych <= '`') { - if (yych <= '_') goto yy717; + if (yych <= '_') goto yy719; } else { - if (yych <= 'z') goto yy279; - if (yych >= 0x7F) goto yy279; + if (yych <= 'z') goto yy281; + if (yych >= 0x7F) goto yy281; } } -yy716: - YYDEBUG(716, *YYCURSOR); +yy718: + YYDEBUG(718, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1172 "Zend/zend_language_scanner.l" +#line 1176 "Zend/zend_language_scanner.l" { return T_REQUIRE; } -#line 6892 "Zend/zend_language_scanner.c" -yy717: - YYDEBUG(717, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy718; - if (yych != 'o') goto yy280; -yy718: - YYDEBUG(718, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy719; - if (yych != 'n') goto yy280; +#line 6902 "Zend/zend_language_scanner.c" yy719: YYDEBUG(719, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy720; - if (yych != 'c') goto yy280; + if (yych == 'O') goto yy720; + if (yych != 'o') goto yy282; yy720: YYDEBUG(720, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy721; - if (yych != 'e') goto yy280; + if (yych == 'N') goto yy721; + if (yych != 'n') goto yy282; yy721: YYDEBUG(721, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy722; + if (yych != 'c') goto yy282; +yy722: + YYDEBUG(722, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy723; + if (yych != 'e') goto yy282; +yy723: + YYDEBUG(723, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(722, *YYCURSOR); + YYDEBUG(724, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1176 "Zend/zend_language_scanner.l" +#line 1180 "Zend/zend_language_scanner.l" { return T_REQUIRE_ONCE; } -#line 6925 "Zend/zend_language_scanner.c" -yy723: - YYDEBUG(723, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy724; - if (yych != 'r') goto yy280; -yy724: - YYDEBUG(724, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy725; - if (yych != 'n') goto yy280; +#line 6935 "Zend/zend_language_scanner.c" yy725: YYDEBUG(725, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy726; + if (yych != 'r') goto yy282; +yy726: + YYDEBUG(726, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy727; + if (yych != 'n') goto yy282; +yy727: + YYDEBUG(727, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(726, *YYCURSOR); + YYDEBUG(728, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 954 "Zend/zend_language_scanner.l" { return T_RETURN; } -#line 6948 "Zend/zend_language_scanner.c" -yy727: - YYDEBUG(727, *YYCURSOR); +#line 6958 "Zend/zend_language_scanner.c" +yy729: + YYDEBUG(729, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { - if (yych <= 'R') goto yy280; - if (yych <= 'S') goto yy749; - goto yy748; + if (yych <= 'R') goto yy282; + if (yych <= 'S') goto yy751; + goto yy750; } else { - if (yych <= 'r') goto yy280; - if (yych <= 's') goto yy749; - if (yych <= 't') goto yy748; - goto yy280; + if (yych <= 'r') goto yy282; + if (yych <= 's') goto yy751; + if (yych <= 't') goto yy750; + goto yy282; } -yy728: - YYDEBUG(728, *YYCURSOR); +yy730: + YYDEBUG(730, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'A') goto yy740; - if (yych <= 'N') goto yy280; - goto yy741; + if (yych == 'A') goto yy742; + if (yych <= 'N') goto yy282; + goto yy743; } else { if (yych <= 'a') { - if (yych <= '`') goto yy280; - goto yy740; + if (yych <= '`') goto yy282; + goto yy742; } else { - if (yych == 'o') goto yy741; - goto yy280; + if (yych == 'o') goto yy743; + goto yy282; } } -yy729: - YYDEBUG(729, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy730; - if (yych != 'n') goto yy280; -yy730: - YYDEBUG(730, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'R') goto yy280; - if (yych >= 'T') goto yy732; - } else { - if (yych <= 'r') goto yy280; - if (yych <= 's') goto yy731; - if (yych <= 't') goto yy732; - goto yy280; - } yy731: YYDEBUG(731, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy738; - if (yych == 't') goto yy738; - goto yy280; + if (yych == 'N') goto yy732; + if (yych != 'n') goto yy282; yy732: YYDEBUG(732, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy733; - if (yych != 'i') goto yy280; + if (yych <= 'T') { + if (yych <= 'R') goto yy282; + if (yych >= 'T') goto yy734; + } else { + if (yych <= 'r') goto yy282; + if (yych <= 's') goto yy733; + if (yych <= 't') goto yy734; + goto yy282; + } yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy734; - if (yych != 'n') goto yy280; + if (yych == 'T') goto yy740; + if (yych == 't') goto yy740; + goto yy282; yy734: YYDEBUG(734, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy735; - if (yych != 'u') goto yy280; + if (yych == 'I') goto yy735; + if (yych != 'i') goto yy282; yy735: YYDEBUG(735, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy736; - if (yych != 'e') goto yy280; + if (yych == 'N') goto yy736; + if (yych != 'n') goto yy282; yy736: YYDEBUG(736, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy737; + if (yych != 'u') goto yy282; +yy737: + YYDEBUG(737, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy738; + if (yych != 'e') goto yy282; +yy738: + YYDEBUG(738, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(737, *YYCURSOR); + YYDEBUG(739, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1050 "Zend/zend_language_scanner.l" { return T_CONTINUE; } -#line 7033 "Zend/zend_language_scanner.c" -yy738: - YYDEBUG(738, *YYCURSOR); +#line 7043 "Zend/zend_language_scanner.c" +yy740: + YYDEBUG(740, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(739, *YYCURSOR); + YYDEBUG(741, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 950 "Zend/zend_language_scanner.l" { return T_CONST; } -#line 7046 "Zend/zend_language_scanner.c" -yy740: - YYDEBUG(740, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy745; - if (yych == 's') goto yy745; - goto yy280; -yy741: - YYDEBUG(741, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy742; - if (yych != 'n') goto yy280; +#line 7056 "Zend/zend_language_scanner.c" yy742: YYDEBUG(742, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy743; - if (yych != 'e') goto yy280; + if (yych == 'S') goto yy747; + if (yych == 's') goto yy747; + goto yy282; yy743: YYDEBUG(743, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy744; + if (yych != 'n') goto yy282; +yy744: + YYDEBUG(744, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy745; + if (yych != 'e') goto yy282; +yy745: + YYDEBUG(745, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(744, *YYCURSOR); + YYDEBUG(746, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1120 "Zend/zend_language_scanner.l" +#line 1124 "Zend/zend_language_scanner.l" { return T_CLONE; } -#line 7075 "Zend/zend_language_scanner.c" -yy745: - YYDEBUG(745, *YYCURSOR); +#line 7085 "Zend/zend_language_scanner.c" +yy747: + YYDEBUG(747, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy746; - if (yych != 's') goto yy280; -yy746: - YYDEBUG(746, *YYCURSOR); + if (yych == 'S') goto yy748; + if (yych != 's') goto yy282; +yy748: + YYDEBUG(748, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(747, *YYCURSOR); + YYDEBUG(749, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1066 "Zend/zend_language_scanner.l" { return T_CLASS; } -#line 7093 "Zend/zend_language_scanner.c" -yy748: - YYDEBUG(748, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy752; - if (yych == 'c') goto yy752; - goto yy280; -yy749: - YYDEBUG(749, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy750; - if (yych != 'e') goto yy280; +#line 7103 "Zend/zend_language_scanner.c" yy750: YYDEBUG(750, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy754; + if (yych == 'c') goto yy754; + goto yy282; +yy751: + YYDEBUG(751, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy752; + if (yych != 'e') goto yy282; +yy752: + YYDEBUG(752, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(751, *YYCURSOR); + YYDEBUG(753, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1038 "Zend/zend_language_scanner.l" { return T_CASE; } -#line 7117 "Zend/zend_language_scanner.c" -yy752: - YYDEBUG(752, *YYCURSOR); +#line 7127 "Zend/zend_language_scanner.c" +yy754: + YYDEBUG(754, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy753; - if (yych != 'h') goto yy280; -yy753: - YYDEBUG(753, *YYCURSOR); + if (yych == 'H') goto yy755; + if (yych != 'h') goto yy282; +yy755: + YYDEBUG(755, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(754, *YYCURSOR); + YYDEBUG(756, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 962 "Zend/zend_language_scanner.l" { return T_CATCH; } -#line 7135 "Zend/zend_language_scanner.c" -yy755: - YYDEBUG(755, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy772; - if (yych == 'n') goto yy772; - goto yy280; -yy756: - YYDEBUG(756, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy765; - if (yych == 'r') goto yy765; - goto yy280; +#line 7145 "Zend/zend_language_scanner.c" yy757: YYDEBUG(757, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy758; - if (yych != 'n') goto yy280; + if (yych == 'N') goto yy774; + if (yych == 'n') goto yy774; + goto yy282; yy758: YYDEBUG(758, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy759; - if (yych != 'c') goto yy280; + if (yych == 'R') goto yy767; + if (yych == 'r') goto yy767; + goto yy282; yy759: YYDEBUG(759, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy760; - if (yych != 't') goto yy280; + if (yych == 'N') goto yy760; + if (yych != 'n') goto yy282; yy760: YYDEBUG(760, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy761; - if (yych != 'i') goto yy280; + if (yych == 'C') goto yy761; + if (yych != 'c') goto yy282; yy761: YYDEBUG(761, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy762; - if (yych != 'o') goto yy280; + if (yych == 'T') goto yy762; + if (yych != 't') goto yy282; yy762: YYDEBUG(762, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy763; - if (yych != 'n') goto yy280; + if (yych == 'I') goto yy763; + if (yych != 'i') goto yy282; yy763: YYDEBUG(763, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy764; + if (yych != 'o') goto yy282; +yy764: + YYDEBUG(764, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy765; + if (yych != 'n') goto yy282; +yy765: + YYDEBUG(765, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(764, *YYCURSOR); + YYDEBUG(766, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 946 "Zend/zend_language_scanner.l" { return T_FUNCTION; } -#line 7190 "Zend/zend_language_scanner.c" -yy765: - YYDEBUG(765, *YYCURSOR); +#line 7200 "Zend/zend_language_scanner.c" +yy767: + YYDEBUG(767, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy766; - if (yych <= '9') goto yy279; + if (yych <= '/') goto yy768; + if (yych <= '9') goto yy281; } else { - if (yych == 'E') goto yy767; - if (yych <= 'Z') goto yy279; + if (yych == 'E') goto yy769; + if (yych <= 'Z') goto yy281; } } else { if (yych <= 'd') { - if (yych != '`') goto yy279; + if (yych != '`') goto yy281; } else { - if (yych <= 'e') goto yy767; - if (yych <= 'z') goto yy279; - if (yych >= 0x7F) goto yy279; + if (yych <= 'e') goto yy769; + if (yych <= 'z') goto yy281; + if (yych >= 0x7F) goto yy281; } } -yy766: - YYDEBUG(766, *YYCURSOR); +yy768: + YYDEBUG(768, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 998 "Zend/zend_language_scanner.l" { return T_FOR; } -#line 7218 "Zend/zend_language_scanner.c" -yy767: - YYDEBUG(767, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy768; - if (yych != 'a') goto yy280; -yy768: - YYDEBUG(768, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy769; - if (yych != 'c') goto yy280; +#line 7228 "Zend/zend_language_scanner.c" yy769: YYDEBUG(769, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy770; - if (yych != 'h') goto yy280; + if (yych == 'A') goto yy770; + if (yych != 'a') goto yy282; yy770: YYDEBUG(770, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy771; + if (yych != 'c') goto yy282; +yy771: + YYDEBUG(771, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy772; + if (yych != 'h') goto yy282; +yy772: + YYDEBUG(772, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(771, *YYCURSOR); + YYDEBUG(773, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1006 "Zend/zend_language_scanner.l" { return T_FOREACH; } -#line 7246 "Zend/zend_language_scanner.c" -yy772: - YYDEBUG(772, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy773; - if (yych != 'a') goto yy280; -yy773: - YYDEBUG(773, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy774; - if (yych != 'l') goto yy280; +#line 7256 "Zend/zend_language_scanner.c" yy774: YYDEBUG(774, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy775; + if (yych != 'a') goto yy282; +yy775: + YYDEBUG(775, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy776; + if (yych != 'l') goto yy282; +yy776: + YYDEBUG(776, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(775, *YYCURSOR); + YYDEBUG(777, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1212 "Zend/zend_language_scanner.l" +#line 1216 "Zend/zend_language_scanner.l" { return T_FINAL; } -#line 7269 "Zend/zend_language_scanner.c" -yy776: - YYDEBUG(776, *YYCURSOR); +#line 7279 "Zend/zend_language_scanner.c" +yy778: + YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'F') { - if (yych == 'C') goto yy782; - if (yych <= 'E') goto yy280; - goto yy783; + if (yych == 'C') goto yy784; + if (yych <= 'E') goto yy282; + goto yy785; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy280; - goto yy782; + if (yych <= 'b') goto yy282; + goto yy784; } else { - if (yych == 'f') goto yy783; - goto yy280; + if (yych == 'f') goto yy785; + goto yy282; } } -yy777: - YYDEBUG(777, *YYCURSOR); +yy779: + YYDEBUG(779, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy780; - if (yych == 'e') goto yy780; - goto yy280; -yy778: - YYDEBUG(778, *YYCURSOR); + if (yych == 'E') goto yy782; + if (yych == 'e') goto yy782; + goto yy282; +yy780: + YYDEBUG(780, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(779, *YYCURSOR); + YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 994 "Zend/zend_language_scanner.l" { return T_DO; } -#line 7304 "Zend/zend_language_scanner.c" -yy780: - YYDEBUG(780, *YYCURSOR); +#line 7314 "Zend/zend_language_scanner.c" +yy782: + YYDEBUG(782, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(781, *YYCURSOR); + YYDEBUG(783, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 942 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 7317 "Zend/zend_language_scanner.c" -yy782: - YYDEBUG(782, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy789; - if (yych == 'l') goto yy789; - goto yy280; -yy783: - YYDEBUG(783, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy784; - if (yych != 'a') goto yy280; +#line 7327 "Zend/zend_language_scanner.c" yy784: YYDEBUG(784, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy785; - if (yych != 'u') goto yy280; + if (yych == 'L') goto yy791; + if (yych == 'l') goto yy791; + goto yy282; yy785: YYDEBUG(785, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy786; - if (yych != 'l') goto yy280; + if (yych == 'A') goto yy786; + if (yych != 'a') goto yy282; yy786: YYDEBUG(786, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy787; - if (yych != 't') goto yy280; + if (yych == 'U') goto yy787; + if (yych != 'u') goto yy282; yy787: YYDEBUG(787, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy788; + if (yych != 'l') goto yy282; +yy788: + YYDEBUG(788, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy789; + if (yych != 't') goto yy282; +yy789: + YYDEBUG(789, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(788, *YYCURSOR); + YYDEBUG(790, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1042 "Zend/zend_language_scanner.l" { return T_DEFAULT; } -#line 7356 "Zend/zend_language_scanner.c" -yy789: - YYDEBUG(789, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy790; - if (yych != 'a') goto yy280; -yy790: - YYDEBUG(790, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy791; - if (yych != 'r') goto yy280; +#line 7366 "Zend/zend_language_scanner.c" yy791: YYDEBUG(791, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy792; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy792; + if (yych != 'a') goto yy282; yy792: YYDEBUG(792, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy793; + if (yych != 'r') goto yy282; +yy793: + YYDEBUG(793, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy794; + if (yych != 'e') goto yy282; +yy794: + YYDEBUG(794, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(793, *YYCURSOR); + YYDEBUG(795, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1014 "Zend/zend_language_scanner.l" { return T_DECLARE; } -#line 7384 "Zend/zend_language_scanner.c" -yy794: - YYDEBUG(794, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy856; - if (yych == 'h') goto yy856; - goto yy280; -yy795: - YYDEBUG(795, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy850; - if (yych == 's') goto yy850; - goto yy280; +#line 7394 "Zend/zend_language_scanner.c" yy796: YYDEBUG(796, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy846; - if (yych == 'p') goto yy846; - goto yy280; + if (yych == 'H') goto yy858; + if (yych == 'h') goto yy858; + goto yy282; yy797: YYDEBUG(797, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy812; - if (yych == 'd') goto yy812; - goto yy280; + if (yych == 'S') goto yy852; + if (yych == 's') goto yy852; + goto yy282; yy798: YYDEBUG(798, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy809; - if (yych == 'a') goto yy809; - goto yy280; + if (yych == 'P') goto yy848; + if (yych == 'p') goto yy848; + goto yy282; yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'I') goto yy800; - if (yych <= 'S') goto yy280; - goto yy801; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy280; - } else { - if (yych == 't') goto yy801; - goto yy280; - } - } + if (yych == 'D') goto yy814; + if (yych == 'd') goto yy814; + goto yy282; yy800: YYDEBUG(800, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy807; - if (yych == 't') goto yy807; - goto yy280; + if (yych == 'A') goto yy811; + if (yych == 'a') goto yy811; + goto yy282; yy801: YYDEBUG(801, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy802; - if (yych != 'e') goto yy280; + if (yych <= 'T') { + if (yych == 'I') goto yy802; + if (yych <= 'S') goto yy282; + goto yy803; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy282; + } else { + if (yych == 't') goto yy803; + goto yy282; + } + } yy802: YYDEBUG(802, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy803; - if (yych != 'n') goto yy280; + if (yych == 'T') goto yy809; + if (yych == 't') goto yy809; + goto yy282; yy803: YYDEBUG(803, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy804; - if (yych != 'd') goto yy280; + if (yych == 'E') goto yy804; + if (yych != 'e') goto yy282; yy804: YYDEBUG(804, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy805; - if (yych != 's') goto yy280; + if (yych == 'N') goto yy805; + if (yych != 'n') goto yy282; yy805: YYDEBUG(805, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy806; + if (yych != 'd') goto yy282; +yy806: + YYDEBUG(806, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy807; + if (yych != 's') goto yy282; +yy807: + YYDEBUG(807, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(806, *YYCURSOR); + YYDEBUG(808, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1074 "Zend/zend_language_scanner.l" { return T_EXTENDS; } -#line 7468 "Zend/zend_language_scanner.c" -yy807: - YYDEBUG(807, *YYCURSOR); +#line 7478 "Zend/zend_language_scanner.c" +yy809: + YYDEBUG(809, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(808, *YYCURSOR); + YYDEBUG(810, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 938 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 7481 "Zend/zend_language_scanner.c" -yy809: - YYDEBUG(809, *YYCURSOR); +#line 7491 "Zend/zend_language_scanner.c" +yy811: + YYDEBUG(811, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy810; - if (yych != 'l') goto yy280; -yy810: - YYDEBUG(810, *YYCURSOR); + if (yych == 'L') goto yy812; + if (yych != 'l') goto yy282; +yy812: + YYDEBUG(812, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(811, *YYCURSOR); + YYDEBUG(813, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1160 "Zend/zend_language_scanner.l" +#line 1164 "Zend/zend_language_scanner.l" { return T_EVAL; } -#line 7499 "Zend/zend_language_scanner.c" -yy812: - YYDEBUG(812, *YYCURSOR); +#line 7509 "Zend/zend_language_scanner.c" +yy814: + YYDEBUG(814, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'D': - case 'd': goto yy813; + case 'd': goto yy815; case 'F': - case 'f': goto yy814; + case 'f': goto yy816; case 'I': - case 'i': goto yy815; + case 'i': goto yy817; case 'S': - case 's': goto yy816; + case 's': goto yy818; case 'W': - case 'w': goto yy817; - default: goto yy280; + case 'w': goto yy819; + default: goto yy282; } -yy813: - YYDEBUG(813, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy839; - if (yych == 'e') goto yy839; - goto yy280; -yy814: - YYDEBUG(814, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy831; - if (yych == 'o') goto yy831; - goto yy280; yy815: YYDEBUG(815, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy829; - if (yych == 'f') goto yy829; - goto yy280; + if (yych == 'E') goto yy841; + if (yych == 'e') goto yy841; + goto yy282; yy816: YYDEBUG(816, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy823; - if (yych == 'w') goto yy823; - goto yy280; + if (yych == 'O') goto yy833; + if (yych == 'o') goto yy833; + goto yy282; yy817: YYDEBUG(817, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy818; - if (yych != 'h') goto yy280; + if (yych == 'F') goto yy831; + if (yych == 'f') goto yy831; + goto yy282; yy818: YYDEBUG(818, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy819; - if (yych != 'i') goto yy280; + if (yych == 'W') goto yy825; + if (yych == 'w') goto yy825; + goto yy282; yy819: YYDEBUG(819, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy820; - if (yych != 'l') goto yy280; + if (yych == 'H') goto yy820; + if (yych != 'h') goto yy282; yy820: YYDEBUG(820, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy821; - if (yych != 'e') goto yy280; + if (yych == 'I') goto yy821; + if (yych != 'i') goto yy282; yy821: YYDEBUG(821, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy822; + if (yych != 'l') goto yy282; +yy822: + YYDEBUG(822, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy823; + if (yych != 'e') goto yy282; +yy823: + YYDEBUG(823, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(822, *YYCURSOR); + YYDEBUG(824, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 990 "Zend/zend_language_scanner.l" { return T_ENDWHILE; } -#line 7573 "Zend/zend_language_scanner.c" -yy823: - YYDEBUG(823, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy824; - if (yych != 'i') goto yy280; -yy824: - YYDEBUG(824, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy825; - if (yych != 't') goto yy280; +#line 7583 "Zend/zend_language_scanner.c" yy825: YYDEBUG(825, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy826; - if (yych != 'c') goto yy280; + if (yych == 'I') goto yy826; + if (yych != 'i') goto yy282; yy826: YYDEBUG(826, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy827; - if (yych != 'h') goto yy280; + if (yych == 'T') goto yy827; + if (yych != 't') goto yy282; yy827: YYDEBUG(827, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy828; + if (yych != 'c') goto yy282; +yy828: + YYDEBUG(828, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy829; + if (yych != 'h') goto yy282; +yy829: + YYDEBUG(829, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(828, *YYCURSOR); + YYDEBUG(830, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1034 "Zend/zend_language_scanner.l" { return T_ENDSWITCH; } -#line 7606 "Zend/zend_language_scanner.c" -yy829: - YYDEBUG(829, *YYCURSOR); +#line 7616 "Zend/zend_language_scanner.c" +yy831: + YYDEBUG(831, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(830, *YYCURSOR); + YYDEBUG(832, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 978 "Zend/zend_language_scanner.l" { return T_ENDIF; } -#line 7619 "Zend/zend_language_scanner.c" -yy831: - YYDEBUG(831, *YYCURSOR); +#line 7629 "Zend/zend_language_scanner.c" +yy833: + YYDEBUG(833, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy832; - if (yych != 'r') goto yy280; -yy832: - YYDEBUG(832, *YYCURSOR); + if (yych == 'R') goto yy834; + if (yych != 'r') goto yy282; +yy834: + YYDEBUG(834, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy833; - if (yych <= '9') goto yy279; + if (yych <= '/') goto yy835; + if (yych <= '9') goto yy281; } else { - if (yych == 'E') goto yy834; - if (yych <= 'Z') goto yy279; + if (yych == 'E') goto yy836; + if (yych <= 'Z') goto yy281; } } else { if (yych <= 'd') { - if (yych != '`') goto yy279; + if (yych != '`') goto yy281; } else { - if (yych <= 'e') goto yy834; - if (yych <= 'z') goto yy279; - if (yych >= 0x7F) goto yy279; + if (yych <= 'e') goto yy836; + if (yych <= 'z') goto yy281; + if (yych >= 0x7F) goto yy281; } } -yy833: - YYDEBUG(833, *YYCURSOR); +yy835: + YYDEBUG(835, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1002 "Zend/zend_language_scanner.l" { return T_ENDFOR; } -#line 7652 "Zend/zend_language_scanner.c" -yy834: - YYDEBUG(834, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy835; - if (yych != 'a') goto yy280; -yy835: - YYDEBUG(835, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy836; - if (yych != 'c') goto yy280; +#line 7662 "Zend/zend_language_scanner.c" yy836: YYDEBUG(836, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy837; - if (yych != 'h') goto yy280; + if (yych == 'A') goto yy837; + if (yych != 'a') goto yy282; yy837: YYDEBUG(837, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy838; + if (yych != 'c') goto yy282; +yy838: + YYDEBUG(838, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy839; + if (yych != 'h') goto yy282; +yy839: + YYDEBUG(839, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(838, *YYCURSOR); + YYDEBUG(840, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1010 "Zend/zend_language_scanner.l" { return T_ENDFOREACH; } -#line 7680 "Zend/zend_language_scanner.c" -yy839: - YYDEBUG(839, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy840; - if (yych != 'c') goto yy280; -yy840: - YYDEBUG(840, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy841; - if (yych != 'l') goto yy280; +#line 7690 "Zend/zend_language_scanner.c" yy841: YYDEBUG(841, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy842; - if (yych != 'a') goto yy280; + if (yych == 'C') goto yy842; + if (yych != 'c') goto yy282; yy842: YYDEBUG(842, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy843; - if (yych != 'r') goto yy280; + if (yych == 'L') goto yy843; + if (yych != 'l') goto yy282; yy843: YYDEBUG(843, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy844; - if (yych != 'e') goto yy280; + if (yych == 'A') goto yy844; + if (yych != 'a') goto yy282; yy844: YYDEBUG(844, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy845; + if (yych != 'r') goto yy282; +yy845: + YYDEBUG(845, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy846; + if (yych != 'e') goto yy282; +yy846: + YYDEBUG(846, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(845, *YYCURSOR); + YYDEBUG(847, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1018 "Zend/zend_language_scanner.l" { return T_ENDDECLARE; } -#line 7718 "Zend/zend_language_scanner.c" -yy846: - YYDEBUG(846, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy847; - if (yych != 't') goto yy280; -yy847: - YYDEBUG(847, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy848; - if (yych != 'y') goto yy280; +#line 7728 "Zend/zend_language_scanner.c" yy848: YYDEBUG(848, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy849; + if (yych != 't') goto yy282; +yy849: + YYDEBUG(849, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy850; + if (yych != 'y') goto yy282; +yy850: + YYDEBUG(850, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(849, *YYCURSOR); + YYDEBUG(851, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1196 "Zend/zend_language_scanner.l" +#line 1200 "Zend/zend_language_scanner.l" { return T_EMPTY; } -#line 7741 "Zend/zend_language_scanner.c" -yy850: - YYDEBUG(850, *YYCURSOR); +#line 7751 "Zend/zend_language_scanner.c" +yy852: + YYDEBUG(852, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy851; - if (yych != 'e') goto yy280; -yy851: - YYDEBUG(851, *YYCURSOR); + if (yych == 'E') goto yy853; + if (yych != 'e') goto yy282; +yy853: + YYDEBUG(853, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy852; - if (yych <= '9') goto yy279; + if (yych <= '/') goto yy854; + if (yych <= '9') goto yy281; } else { - if (yych == 'I') goto yy853; - if (yych <= 'Z') goto yy279; + if (yych == 'I') goto yy855; + if (yych <= 'Z') goto yy281; } } else { if (yych <= 'h') { - if (yych != '`') goto yy279; + if (yych != '`') goto yy281; } else { - if (yych <= 'i') goto yy853; - if (yych <= 'z') goto yy279; - if (yych >= 0x7F) goto yy279; + if (yych <= 'i') goto yy855; + if (yych <= 'z') goto yy281; + if (yych >= 0x7F) goto yy281; } } -yy852: - YYDEBUG(852, *YYCURSOR); +yy854: + YYDEBUG(854, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 982 "Zend/zend_language_scanner.l" { return T_ELSE; } -#line 7774 "Zend/zend_language_scanner.c" -yy853: - YYDEBUG(853, *YYCURSOR); +#line 7784 "Zend/zend_language_scanner.c" +yy855: + YYDEBUG(855, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy854; - if (yych != 'f') goto yy280; -yy854: - YYDEBUG(854, *YYCURSOR); + if (yych == 'F') goto yy856; + if (yych != 'f') goto yy282; +yy856: + YYDEBUG(856, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(855, *YYCURSOR); + YYDEBUG(857, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 974 "Zend/zend_language_scanner.l" { return T_ELSEIF; } -#line 7792 "Zend/zend_language_scanner.c" -yy856: - YYDEBUG(856, *YYCURSOR); +#line 7802 "Zend/zend_language_scanner.c" +yy858: + YYDEBUG(858, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy857; - if (yych != 'o') goto yy280; -yy857: - YYDEBUG(857, *YYCURSOR); + if (yych == 'O') goto yy859; + if (yych != 'o') goto yy282; +yy859: + YYDEBUG(859, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy279; + goto yy281; } - YYDEBUG(858, *YYCURSOR); + YYDEBUG(860, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1058 "Zend/zend_language_scanner.l" { return T_ECHO; } -#line 7810 "Zend/zend_language_scanner.c" +#line 7820 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7845,39 +7855,39 @@ yyc_ST_LOOKING_FOR_PROPERTY: 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, }; - YYDEBUG(859, *YYCURSOR); + YYDEBUG(861, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '-') { if (yych <= '\r') { - if (yych <= 0x08) goto yy867; - if (yych <= '\n') goto yy861; - if (yych <= '\f') goto yy867; + if (yych <= 0x08) goto yy869; + if (yych <= '\n') goto yy863; + if (yych <= '\f') goto yy869; } else { - if (yych == ' ') goto yy861; - if (yych <= ',') goto yy867; - goto yy863; + if (yych == ' ') goto yy863; + if (yych <= ',') goto yy869; + goto yy865; } } else { if (yych <= '_') { - if (yych <= '@') goto yy867; - if (yych <= 'Z') goto yy865; - if (yych <= '^') goto yy867; - goto yy865; + if (yych <= '@') goto yy869; + if (yych <= 'Z') goto yy867; + if (yych <= '^') goto yy869; + goto yy867; } else { - if (yych <= '`') goto yy867; - if (yych <= 'z') goto yy865; - if (yych <= '~') goto yy867; - goto yy865; + if (yych <= '`') goto yy869; + if (yych <= 'z') goto yy867; + if (yych <= '~') goto yy869; + goto yy867; } } -yy861: - YYDEBUG(861, *YYCURSOR); +yy863: + YYDEBUG(863, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy873; -yy862: - YYDEBUG(862, *YYCURSOR); + goto yy875; +yy864: + YYDEBUG(864, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1087 "Zend/zend_language_scanner.l" { @@ -7887,13 +7897,13 @@ yy862: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7891 "Zend/zend_language_scanner.c" -yy863: - YYDEBUG(863, *YYCURSOR); +#line 7901 "Zend/zend_language_scanner.c" +yy865: + YYDEBUG(865, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy870; -yy864: - YYDEBUG(864, *YYCURSOR); + if ((yych = *YYCURSOR) == '>') goto yy872; +yy866: + YYDEBUG(866, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1106 "Zend/zend_language_scanner.l" { @@ -7901,14 +7911,14 @@ yy864: yy_pop_state(TSRMLS_C); goto restart; } -#line 7905 "Zend/zend_language_scanner.c" -yy865: - YYDEBUG(865, *YYCURSOR); +#line 7915 "Zend/zend_language_scanner.c" +yy867: + YYDEBUG(867, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy869; -yy866: - YYDEBUG(866, *YYCURSOR); + goto yy871; +yy868: + YYDEBUG(868, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1099 "Zend/zend_language_scanner.l" { @@ -7917,43 +7927,43 @@ yy866: zendlval->type = IS_STRING; return T_STRING; } -#line 7921 "Zend/zend_language_scanner.c" -yy867: - YYDEBUG(867, *YYCURSOR); - yych = *++YYCURSOR; - goto yy864; -yy868: - YYDEBUG(868, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; +#line 7931 "Zend/zend_language_scanner.c" yy869: YYDEBUG(869, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy868; - } + yych = *++YYCURSOR; goto yy866; yy870: YYDEBUG(870, *YYCURSOR); ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy871: YYDEBUG(871, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy870; + } + goto yy868; +yy872: + YYDEBUG(872, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(873, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1095 "Zend/zend_language_scanner.l" { return T_OBJECT_OPERATOR; } -#line 7946 "Zend/zend_language_scanner.c" -yy872: - YYDEBUG(872, *YYCURSOR); +#line 7956 "Zend/zend_language_scanner.c" +yy874: + YYDEBUG(874, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy873: - YYDEBUG(873, *YYCURSOR); +yy875: + YYDEBUG(875, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy872; + goto yy874; } - goto yy862; + goto yy864; } /* *********************************** */ yyc_ST_LOOKING_FOR_VARNAME: @@ -7992,27 +8002,27 @@ yyc_ST_LOOKING_FOR_VARNAME: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(874, *YYCURSOR); + YYDEBUG(876, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy878; - if (yych <= 'Z') goto yy876; - if (yych <= '^') goto yy878; + if (yych <= '@') goto yy880; + if (yych <= 'Z') goto yy878; + if (yych <= '^') goto yy880; } else { - if (yych <= '`') goto yy878; - if (yych <= 'z') goto yy876; - if (yych <= '~') goto yy878; + if (yych <= '`') goto yy880; + if (yych <= 'z') goto yy878; + if (yych <= '~') goto yy880; } -yy876: - YYDEBUG(876, *YYCURSOR); +yy878: + YYDEBUG(878, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy881; -yy877: - YYDEBUG(877, *YYCURSOR); + goto yy883; +yy879: + YYDEBUG(879, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1374 "Zend/zend_language_scanner.l" +#line 1378 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -8020,31 +8030,31 @@ yy877: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 8024 "Zend/zend_language_scanner.c" -yy878: - YYDEBUG(878, *YYCURSOR); +#line 8034 "Zend/zend_language_scanner.c" +yy880: + YYDEBUG(880, *YYCURSOR); ++YYCURSOR; - YYDEBUG(879, *YYCURSOR); + YYDEBUG(881, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1383 "Zend/zend_language_scanner.l" +#line 1387 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(TSRMLS_C); yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 8037 "Zend/zend_language_scanner.c" -yy880: - YYDEBUG(880, *YYCURSOR); +#line 8047 "Zend/zend_language_scanner.c" +yy882: + YYDEBUG(882, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy881: - YYDEBUG(881, *YYCURSOR); +yy883: + YYDEBUG(883, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy880; + goto yy882; } - goto yy877; + goto yy879; } /* *********************************** */ yyc_ST_NOWDOC: @@ -8083,106 +8093,106 @@ yyc_ST_NOWDOC: 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, }; - YYDEBUG(882, *YYCURSOR); + YYDEBUG(884, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 16) { - goto yy884; + goto yy886; } - if (yych <= '\f') goto yy886; - goto yy888; -yy884: - YYDEBUG(884, *YYCURSOR); + if (yych <= '\f') goto yy888; + goto yy890; +yy886: + YYDEBUG(886, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(885, *YYCURSOR); + YYDEBUG(887, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy884; + goto yy886; } - if (yych <= '\f') goto yy895; - goto yy897; -yy886: - YYDEBUG(886, *YYCURSOR); + if (yych <= '\f') goto yy897; + goto yy899; +yy888: + YYDEBUG(888, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(887, *YYCURSOR); + YYDEBUG(889, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy886; + goto yy888; } if (yych <= '^') { if (yych <= '\r') { - if (yych <= '\f') goto yy884; + if (yych <= '\f') goto yy886; } else { - if (yych <= '@') goto yy884; - if (yych <= 'Z') goto yy890; - goto yy884; + if (yych <= '@') goto yy886; + if (yych <= 'Z') goto yy892; + goto yy886; } } else { if (yych <= '`') { - if (yych <= '_') goto yy890; - goto yy884; + if (yych <= '_') goto yy892; + goto yy886; } else { - if (yych <= 'z') goto yy890; - if (yych <= '~') goto yy884; - goto yy890; + if (yych <= 'z') goto yy892; + if (yych <= '~') goto yy886; + goto yy892; } } -yy888: - YYDEBUG(888, *YYCURSOR); +yy890: + YYDEBUG(890, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(889, *YYCURSOR); + YYDEBUG(891, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy886; + goto yy888; } if (yych <= '^') { if (yych <= '\r') { - if (yych <= '\f') goto yy884; - goto yy888; + if (yych <= '\f') goto yy886; + goto yy890; } else { - if (yych <= '@') goto yy884; - if (yych >= '[') goto yy884; + if (yych <= '@') goto yy886; + if (yych >= '[') goto yy886; } } else { if (yych <= '`') { - if (yych >= '`') goto yy884; + if (yych >= '`') goto yy886; } else { - if (yych <= 'z') goto yy890; - if (yych <= '~') goto yy884; + if (yych <= 'z') goto yy892; + if (yych <= '~') goto yy886; } } -yy890: - YYDEBUG(890, *YYCURSOR); +yy892: + YYDEBUG(892, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(891, *YYCURSOR); + YYDEBUG(893, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy890; + goto yy892; } if (yych <= '\f') { - if (yych == '\n') goto yy893; - goto yy884; + if (yych == '\n') goto yy895; + goto yy886; } else { - if (yych <= '\r') goto yy893; - if (yych != ';') goto yy884; + if (yych <= '\r') goto yy895; + if (yych != ';') goto yy886; } - YYDEBUG(892, *YYCURSOR); + YYDEBUG(894, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 16) { - goto yy884; + goto yy886; } -yy893: - YYDEBUG(893, *YYCURSOR); +yy895: + YYDEBUG(895, *YYCURSOR); ++YYCURSOR; - YYDEBUG(894, *YYCURSOR); + YYDEBUG(896, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2073 "Zend/zend_language_scanner.l" +#line 2077 "Zend/zend_language_scanner.l" { char *end = yytext + yyleng - 1; @@ -8222,55 +8232,55 @@ yy893: yymore(); } } -#line 8226 "Zend/zend_language_scanner.c" -yy895: - YYDEBUG(895, *YYCURSOR); +#line 8236 "Zend/zend_language_scanner.c" +yy897: + YYDEBUG(897, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(896, *YYCURSOR); + YYDEBUG(898, *YYCURSOR); if (yych <= 'Z') { if (yych <= '\f') { - if (yych == '\n') goto yy895; - goto yy884; + if (yych == '\n') goto yy897; + goto yy886; } else { - if (yych <= '\r') goto yy897; - if (yych <= '@') goto yy884; - goto yy890; + if (yych <= '\r') goto yy899; + if (yych <= '@') goto yy886; + goto yy892; } } else { if (yych <= '`') { - if (yych == '_') goto yy890; - goto yy884; + if (yych == '_') goto yy892; + goto yy886; } else { - if (yych <= 'z') goto yy890; - if (yych <= '~') goto yy884; - goto yy890; + if (yych <= 'z') goto yy892; + if (yych <= '~') goto yy886; + goto yy892; } } -yy897: - YYDEBUG(897, *YYCURSOR); +yy899: + YYDEBUG(899, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(898, *YYCURSOR); + YYDEBUG(900, *YYCURSOR); if (yych <= 'Z') { if (yych <= '\f') { - if (yych == '\n') goto yy895; - goto yy884; + if (yych == '\n') goto yy897; + goto yy886; } else { - if (yych <= '\r') goto yy897; - if (yych <= '@') goto yy884; - goto yy890; + if (yych <= '\r') goto yy899; + if (yych <= '@') goto yy886; + goto yy892; } } else { if (yych <= '`') { - if (yych == '_') goto yy890; - goto yy884; + if (yych == '_') goto yy892; + goto yy886; } else { - if (yych <= 'z') goto yy890; - if (yych <= '~') goto yy884; - goto yy890; + if (yych <= 'z') goto yy892; + if (yych <= '~') goto yy886; + goto yy892; } } } @@ -8311,52 +8321,52 @@ yyc_ST_ONE_LINE_COMMENT: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(899, *YYCURSOR); + YYDEBUG(901, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yybm[0+yych] & 128) { - goto yy905; + goto yy907; } - if (yych <= '\f') goto yy908; - if (yych <= '\r') goto yy909; - if (yych <= '=') goto yy901; - if (yych <= '>') goto yy903; - goto yy904; -yy901: - YYDEBUG(901, *YYCURSOR); + if (yych <= '\f') goto yy910; + if (yych <= '\r') goto yy911; + if (yych <= '=') goto yy903; + if (yych <= '>') goto yy905; + goto yy906; +yy903: + YYDEBUG(903, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy913; -yy902: - YYDEBUG(902, *YYCURSOR); + if ((yych = *YYCURSOR) == '>') goto yy915; +yy904: + YYDEBUG(904, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1741 "Zend/zend_language_scanner.l" +#line 1745 "Zend/zend_language_scanner.l" { yymore(); } -#line 8337 "Zend/zend_language_scanner.c" -yy903: - YYDEBUG(903, *YYCURSOR); - yych = *++YYCURSOR; - goto yy902; -yy904: - YYDEBUG(904, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy913; - goto yy902; +#line 8347 "Zend/zend_language_scanner.c" yy905: YYDEBUG(905, *YYCURSOR); + yych = *++YYCURSOR; + goto yy904; +yy906: + YYDEBUG(906, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy915; + goto yy904; +yy907: + YYDEBUG(907, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(906, *YYCURSOR); + YYDEBUG(908, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy905; + goto yy907; } - goto yy912; -yy907: - YYDEBUG(907, *YYCURSOR); + goto yy914; +yy909: + YYDEBUG(909, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1745 "Zend/zend_language_scanner.l" +#line 1749 "Zend/zend_language_scanner.l" { switch (yytext[yyleng-1]) { case '?': case '%': case '>': @@ -8374,20 +8384,20 @@ yy907: return T_COMMENT; } } -#line 8378 "Zend/zend_language_scanner.c" -yy908: - YYDEBUG(908, *YYCURSOR); +#line 8388 "Zend/zend_language_scanner.c" +yy910: + YYDEBUG(910, *YYCURSOR); yych = *++YYCURSOR; - goto yy907; -yy909: - YYDEBUG(909, *YYCURSOR); + goto yy909; +yy911: + YYDEBUG(911, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '\n') goto yy907; - YYDEBUG(910, *YYCURSOR); + if (yych != '\n') goto yy909; + YYDEBUG(912, *YYCURSOR); ++YYCURSOR; - YYDEBUG(911, *YYCURSOR); + YYDEBUG(913, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1763 "Zend/zend_language_scanner.l" +#line 1767 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -8396,17 +8406,17 @@ yy909: CG(zend_lineno)++; return T_COMMENT; } -#line 8400 "Zend/zend_language_scanner.c" -yy912: - YYDEBUG(912, *YYCURSOR); +#line 8410 "Zend/zend_language_scanner.c" +yy914: + YYDEBUG(914, *YYCURSOR); yych = *++YYCURSOR; - goto yy907; -yy913: - YYDEBUG(913, *YYCURSOR); + goto yy909; +yy915: + YYDEBUG(915, *YYCURSOR); ++YYCURSOR; - YYDEBUG(914, *YYCURSOR); + YYDEBUG(916, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1772 "Zend/zend_language_scanner.l" +#line 1776 "Zend/zend_language_scanner.l" { if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */ zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -8419,7 +8429,7 @@ yy913: yymore(); } } -#line 8423 "Zend/zend_language_scanner.c" +#line 8433 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_VAR_OFFSET: @@ -8458,69 +8468,69 @@ yyc_ST_VAR_OFFSET: 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, }; - YYDEBUG(915, *YYCURSOR); + YYDEBUG(917, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '/') { if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy929; - if (yych <= '\n') goto yy925; - goto yy929; + if (yych <= 0x08) goto yy931; + if (yych <= '\n') goto yy927; + goto yy931; } else { - if (yych <= '\r') goto yy925; - if (yych <= 0x1F) goto yy929; - goto yy925; + if (yych <= '\r') goto yy927; + if (yych <= 0x1F) goto yy931; + goto yy927; } } else { if (yych <= '$') { - if (yych <= '"') goto yy924; - if (yych <= '#') goto yy925; - goto yy920; + if (yych <= '"') goto yy926; + if (yych <= '#') goto yy927; + goto yy922; } else { - if (yych == '\'') goto yy925; - goto yy924; + if (yych == '\'') goto yy927; + goto yy926; } } } else { if (yych <= '\\') { if (yych <= '@') { - if (yych <= '0') goto yy917; - if (yych <= '9') goto yy919; - goto yy924; + if (yych <= '0') goto yy919; + if (yych <= '9') goto yy921; + goto yy926; } else { - if (yych <= 'Z') goto yy927; - if (yych <= '[') goto yy924; - goto yy925; + if (yych <= 'Z') goto yy929; + if (yych <= '[') goto yy926; + goto yy927; } } else { if (yych <= '_') { - if (yych <= ']') goto yy922; - if (yych <= '^') goto yy924; - goto yy927; + if (yych <= ']') goto yy924; + if (yych <= '^') goto yy926; + goto yy929; } else { - if (yych <= '`') goto yy924; - if (yych <= 'z') goto yy927; - if (yych <= '~') goto yy924; - goto yy927; + if (yych <= '`') goto yy926; + if (yych <= 'z') goto yy929; + if (yych <= '~') goto yy926; + goto yy929; } } } -yy917: - YYDEBUG(917, *YYCURSOR); +yy919: + YYDEBUG(919, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { - if (yych <= '/') goto yy918; - if (yych <= '9') goto yy940; + if (yych <= '/') goto yy920; + if (yych <= '9') goto yy942; } else { - if (yych <= 'X') goto yy938; - if (yych == 'x') goto yy938; + if (yych <= 'X') goto yy940; + if (yych == 'x') goto yy940; } -yy918: - YYDEBUG(918, *YYCURSOR); +yy920: + YYDEBUG(920, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1433 "Zend/zend_language_scanner.l" +#line 1437 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { zendlval->value.lval = strtol(yytext, NULL, 10); @@ -8532,53 +8542,53 @@ yy918: } return T_NUM_STRING; } -#line 8536 "Zend/zend_language_scanner.c" -yy919: - YYDEBUG(919, *YYCURSOR); +#line 8546 "Zend/zend_language_scanner.c" +yy921: + YYDEBUG(921, *YYCURSOR); yych = *++YYCURSOR; - goto yy937; -yy920: - YYDEBUG(920, *YYCURSOR); + goto yy939; +yy922: + YYDEBUG(922, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy921; - if (yych <= 'Z') goto yy933; - if (yych >= '_') goto yy933; + if (yych <= '@') goto yy923; + if (yych <= 'Z') goto yy935; + if (yych >= '_') goto yy935; } else { - if (yych <= '`') goto yy921; - if (yych <= 'z') goto yy933; - if (yych >= 0x7F) goto yy933; + if (yych <= '`') goto yy923; + if (yych <= 'z') goto yy935; + if (yych >= 0x7F) goto yy935; } -yy921: - YYDEBUG(921, *YYCURSOR); +yy923: + YYDEBUG(923, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1716 "Zend/zend_language_scanner.l" +#line 1720 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 8561 "Zend/zend_language_scanner.c" -yy922: - YYDEBUG(922, *YYCURSOR); +#line 8571 "Zend/zend_language_scanner.c" +yy924: + YYDEBUG(924, *YYCURSOR); ++YYCURSOR; - YYDEBUG(923, *YYCURSOR); + YYDEBUG(925, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1711 "Zend/zend_language_scanner.l" +#line 1715 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 8572 "Zend/zend_language_scanner.c" -yy924: - YYDEBUG(924, *YYCURSOR); +#line 8582 "Zend/zend_language_scanner.c" +yy926: + YYDEBUG(926, *YYCURSOR); yych = *++YYCURSOR; - goto yy921; -yy925: - YYDEBUG(925, *YYCURSOR); + goto yy923; +yy927: + YYDEBUG(927, *YYCURSOR); ++YYCURSOR; - YYDEBUG(926, *YYCURSOR); + YYDEBUG(928, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1721 "Zend/zend_language_scanner.l" +#line 1725 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -8586,126 +8596,126 @@ yy925: ZVAL_EMPTY_STRING(zendlval); /* Empty since it won't be used */ return T_ENCAPSED_AND_WHITESPACE; } -#line 8590 "Zend/zend_language_scanner.c" -yy927: - YYDEBUG(927, *YYCURSOR); +#line 8600 "Zend/zend_language_scanner.c" +yy929: + YYDEBUG(929, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy932; -yy928: - YYDEBUG(928, *YYCURSOR); + goto yy934; +yy930: + YYDEBUG(930, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1729 "Zend/zend_language_scanner.l" +#line 1733 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 8605 "Zend/zend_language_scanner.c" -yy929: - YYDEBUG(929, *YYCURSOR); +#line 8615 "Zend/zend_language_scanner.c" +yy931: + YYDEBUG(931, *YYCURSOR); ++YYCURSOR; - YYDEBUG(930, *YYCURSOR); + YYDEBUG(932, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2126 "Zend/zend_language_scanner.l" +#line 2130 "Zend/zend_language_scanner.l" { zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 8616 "Zend/zend_language_scanner.c" -yy931: - YYDEBUG(931, *YYCURSOR); +#line 8626 "Zend/zend_language_scanner.c" +yy933: + YYDEBUG(933, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy932: - YYDEBUG(932, *YYCURSOR); +yy934: + YYDEBUG(934, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy931; + goto yy933; } - goto yy928; -yy933: - YYDEBUG(933, *YYCURSOR); + goto yy930; +yy935: + YYDEBUG(935, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(934, *YYCURSOR); + YYDEBUG(936, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy933; + if (yych >= '0') goto yy935; } else { - if (yych <= '@') goto yy935; - if (yych <= 'Z') goto yy933; + if (yych <= '@') goto yy937; + if (yych <= 'Z') goto yy935; } } else { if (yych <= '`') { - if (yych <= '_') goto yy933; + if (yych <= '_') goto yy935; } else { - if (yych <= 'z') goto yy933; - if (yych >= 0x7F) goto yy933; + if (yych <= 'z') goto yy935; + if (yych >= 0x7F) goto yy935; } } -yy935: - YYDEBUG(935, *YYCURSOR); +yy937: + YYDEBUG(937, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" +#line 1709 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 8658 "Zend/zend_language_scanner.c" -yy936: - YYDEBUG(936, *YYCURSOR); +#line 8668 "Zend/zend_language_scanner.c" +yy938: + YYDEBUG(938, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy937: - YYDEBUG(937, *YYCURSOR); +yy939: + YYDEBUG(939, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy936; + goto yy938; } - goto yy918; -yy938: - YYDEBUG(938, *YYCURSOR); + goto yy920; +yy940: + YYDEBUG(940, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy943; + goto yy945; } - YYDEBUG(939, *YYCURSOR); + YYDEBUG(941, *YYCURSOR); YYCURSOR = YYMARKER; - goto yy918; -yy940: - YYDEBUG(940, *YYCURSOR); + goto yy920; +yy942: + YYDEBUG(942, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(941, *YYCURSOR); - if (yych <= '/') goto yy942; - if (yych <= '9') goto yy940; -yy942: - YYDEBUG(942, *YYCURSOR); + YYDEBUG(943, *YYCURSOR); + if (yych <= '/') goto yy944; + if (yych <= '9') goto yy942; +yy944: + YYDEBUG(944, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1445 "Zend/zend_language_scanner.l" +#line 1449 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ zendlval->value.str.val = (char *)estrndup(yytext, yyleng); zendlval->value.str.len = yyleng; zendlval->type = IS_STRING; return T_NUM_STRING; } -#line 8697 "Zend/zend_language_scanner.c" -yy943: - YYDEBUG(943, *YYCURSOR); +#line 8707 "Zend/zend_language_scanner.c" +yy945: + YYDEBUG(945, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(944, *YYCURSOR); + YYDEBUG(946, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy943; + goto yy945; } - goto yy942; + goto yy944; } } -#line 2131 "Zend/zend_language_scanner.l" +#line 2135 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 8952b8ee46..cd7d2ba530 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1113,6 +1113,10 @@ NOWDOC_CHARS ([^\n\r]|{NEWLINE}+([^a-zA-Z_\x7f-\xff\n\r]|({LABEL}([^a-zA- return T_PAAMAYIM_NEKUDOTAYIM; } +<ST_IN_SCRIPTING>"\\" { + return T_NS_SEPARATOR; +} + <ST_IN_SCRIPTING>"new" { return T_NEW; } diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index 756241e714..3b2d270fd0 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Fri Oct 24 12:09:58 2008 */ +/* Generated by re2c 0.13.6.dev on Tue Nov 4 01:40:34 2008 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index c9657dbdeb..a6b4c88415 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -1957,16 +1957,9 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -2087,11 +2080,10 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == ':' && - function_name_strval[1] == ':') { + if (function_name_strval[0] == '\\') { - function_name_strlen -= 2; - lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); + function_name_strlen -= 1; + lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -2117,7 +2109,7 @@ ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST) if (zend_hash_quick_find(EG(function_table), Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant)+1, opline->extended_value, (void **) &EX(fbc))==FAILURE) { if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE || - EX(fbc)->type != ZEND_INTERNAL_FUNCTION) { + (Z_BVAL(op_data->op2.u.constant) && EX(fbc)->type != ZEND_INTERNAL_FUNCTION)) { zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL(opline->op2.u.constant)); } } @@ -2980,46 +2972,50 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST) zend_op *opline = EX(opline); if (OP1_TYPE == IS_UNUSED) { - if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); + /* namespaced constant */ + if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { + char *actual = Z_STRVAL(opline->op2.u.constant); + + if (opline->extended_value & IS_CONSTANT_RT_NS_CHECK) { + actual = zend_memrchr(actual, '\\', Z_STRLEN(opline->op2.u.constant)) + 1; + Z_STRLEN(opline->op2.u.constant) -= (actual - Z_STRVAL(opline->op2.u.constant)); + actual = estrndup(actual, Z_STRLEN(opline->op2.u.constant)); + efree(Z_STRVAL(opline->op2.u.constant)); + Z_STRVAL(opline->op2.u.constant) = actual; + } + if (Z_STRVAL(opline->op2.u.constant)[0] == '\\') { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + ++Z_STRVAL(EX_T(opline->result.u.var).tmp_var); + --Z_STRLEN(EX_T(opline->result.u.var).tmp_var); + } else { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { + /* class constant */ zend_class_entry *ce; zval **value; if (OP1_TYPE == IS_CONST) { - zend_op *op_data = opline + 1; - zend_constant *c; - - ZEND_VM_INC_OPCODE(); - - /* try a constant in namespace */ - if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { - EX_T(opline->result.u.var).tmp_var = c->value; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - ZEND_VM_NEXT_OPCODE(); - } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); - } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - } - ZEND_VM_NEXT_OPCODE(); - } - /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 09a49379f9..5b698207e4 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -768,11 +768,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == ':' && - function_name_strval[1] == ':') { + if (function_name_strval[0] == '\\') { - function_name_strlen -= 2; - lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); + function_name_strlen -= 1; + lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -798,7 +797,7 @@ static int ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPC if (zend_hash_quick_find(EG(function_table), Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant)+1, opline->extended_value, (void **) &EX(fbc))==FAILURE) { if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE || - EX(fbc)->type != ZEND_INTERNAL_FUNCTION) { + (Z_BVAL(op_data->op2.u.constant) && EX(fbc)->type != ZEND_INTERNAL_FUNCTION)) { zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL(opline->op2.u.constant)); } } @@ -966,11 +965,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == ':' && - function_name_strval[1] == ':') { + if (function_name_strval[0] == '\\') { - function_name_strlen -= 2; - lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); + function_name_strlen -= 1; + lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -1072,11 +1070,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == ':' && - function_name_strval[1] == ':') { + if (function_name_strval[0] == '\\') { - function_name_strlen -= 2; - lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); + function_name_strlen -= 1; + lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -1206,11 +1203,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == ':' && - function_name_strval[1] == ':') { + if (function_name_strval[0] == '\\') { - function_name_strlen -= 2; - lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); + function_name_strlen -= 1; + lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -2604,16 +2600,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER( zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -2738,46 +2727,50 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO zend_op *opline = EX(opline); if (IS_CONST == IS_UNUSED) { - if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + /* namespaced constant */ + if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { + char *actual = Z_STRVAL(opline->op2.u.constant); + + if (opline->extended_value & IS_CONSTANT_RT_NS_CHECK) { + actual = zend_memrchr(actual, '\\', Z_STRLEN(opline->op2.u.constant)) + 1; + Z_STRLEN(opline->op2.u.constant) -= (actual - Z_STRVAL(opline->op2.u.constant)); + actual = estrndup(actual, Z_STRLEN(opline->op2.u.constant)); + efree(Z_STRVAL(opline->op2.u.constant)); + Z_STRVAL(opline->op2.u.constant) = actual; + } + if (Z_STRVAL(opline->op2.u.constant)[0] == '\\') { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + ++Z_STRVAL(EX_T(opline->result.u.var).tmp_var); + --Z_STRLEN(EX_T(opline->result.u.var).tmp_var); + } else { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + } zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { + /* class constant */ zend_class_entry *ce; zval **value; if (IS_CONST == IS_CONST) { - zend_op *op_data = opline + 1; - zend_constant *c; - ZEND_VM_INC_OPCODE(); - - /* try a constant in namespace */ - if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { - EX_T(opline->result.u.var).tmp_var = c->value; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - ZEND_VM_NEXT_OPCODE(); - } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); - } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - } - ZEND_VM_NEXT_OPCODE(); - } - - /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); @@ -3200,16 +3193,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_TMP_VAR == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -3676,16 +3662,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_VAR == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -3908,16 +3887,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_UNUSED == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -4352,16 +4324,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_CV == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -10345,16 +10310,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_CONST == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -10479,46 +10437,50 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE zend_op *opline = EX(opline); if (IS_VAR == IS_UNUSED) { - if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + /* namespaced constant */ + if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { + char *actual = Z_STRVAL(opline->op2.u.constant); + + if (opline->extended_value & IS_CONSTANT_RT_NS_CHECK) { + actual = zend_memrchr(actual, '\\', Z_STRLEN(opline->op2.u.constant)) + 1; + Z_STRLEN(opline->op2.u.constant) -= (actual - Z_STRVAL(opline->op2.u.constant)); + actual = estrndup(actual, Z_STRLEN(opline->op2.u.constant)); + efree(Z_STRVAL(opline->op2.u.constant)); + Z_STRVAL(opline->op2.u.constant) = actual; + } + if (Z_STRVAL(opline->op2.u.constant)[0] == '\\') { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + ++Z_STRVAL(EX_T(opline->result.u.var).tmp_var); + --Z_STRLEN(EX_T(opline->result.u.var).tmp_var); + } else { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + } zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { + /* class constant */ zend_class_entry *ce; zval **value; if (IS_VAR == IS_CONST) { - zend_op *op_data = opline + 1; - zend_constant *c; - - ZEND_VM_INC_OPCODE(); - - /* try a constant in namespace */ - if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { - EX_T(opline->result.u.var).tmp_var = c->value; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - ZEND_VM_NEXT_OPCODE(); - } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); - } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - } - ZEND_VM_NEXT_OPCODE(); - } - /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); @@ -12199,16 +12161,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_TMP_VAR == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -14033,16 +13988,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_VAR == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -14960,16 +14908,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_UNUSED == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -16481,16 +16422,9 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_ zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_CV == IS_CONST) { - /* try a function in namespace */ - zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); - if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { - EX(object) = NULL; - ZEND_VM_NEXT_OPCODE(); - } - /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -17850,46 +17784,50 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC zend_op *opline = EX(opline); if (IS_UNUSED == IS_UNUSED) { - if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + /* namespaced constant */ + if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { + char *actual = Z_STRVAL(opline->op2.u.constant); + + if (opline->extended_value & IS_CONSTANT_RT_NS_CHECK) { + actual = zend_memrchr(actual, '\\', Z_STRLEN(opline->op2.u.constant)) + 1; + Z_STRLEN(opline->op2.u.constant) -= (actual - Z_STRVAL(opline->op2.u.constant)); + actual = estrndup(actual, Z_STRLEN(opline->op2.u.constant)); + efree(Z_STRVAL(opline->op2.u.constant)); + Z_STRVAL(opline->op2.u.constant) = actual; + } + if (Z_STRVAL(opline->op2.u.constant)[0] == '\\') { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant)+1, + Z_STRVAL(opline->op2.u.constant)+1); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + ++Z_STRVAL(EX_T(opline->result.u.var).tmp_var); + --Z_STRLEN(EX_T(opline->result.u.var).tmp_var); + } else { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + } zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { + /* class constant */ zend_class_entry *ce; zval **value; if (IS_UNUSED == IS_CONST) { - zend_op *op_data = opline + 1; - zend_constant *c; - - ZEND_VM_INC_OPCODE(); - - /* try a constant in namespace */ - if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { - EX_T(opline->result.u.var).tmp_var = c->value; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - ZEND_VM_NEXT_OPCODE(); - } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { - if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { - zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); - } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", - Z_STRVAL(opline->op2.u.constant), - Z_STRVAL(opline->op2.u.constant)); - EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; - zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); - } - ZEND_VM_NEXT_OPCODE(); - } - /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 6952d26341..7c08329130 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2714,8 +2714,8 @@ ZEND_METHOD(reflection_function, inNamespace) RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon > Z_STRVAL_PP(name) && *(colon-1) == ':') + && (colon = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && colon > Z_STRVAL_PP(name)) { RETURN_TRUE; } @@ -2728,17 +2728,17 @@ ZEND_METHOD(reflection_function, inNamespace) ZEND_METHOD(reflection_function, getNamespaceName) { zval **name; - char *colon; + char *backslash; METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void **) &name) == FAILURE) { RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon > Z_STRVAL_PP(name) && *(colon-1) == ':') + && (backslash = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && backslash > Z_STRVAL_PP(name)) { - RETURN_STRINGL(Z_STRVAL_PP(name), colon - Z_STRVAL_PP(name) - 1, 1); + RETURN_STRINGL(Z_STRVAL_PP(name), backslash - Z_STRVAL_PP(name), 1); } RETURN_EMPTY_STRING(); } @@ -2749,17 +2749,17 @@ ZEND_METHOD(reflection_function, getNamespaceName) ZEND_METHOD(reflection_function, getShortName) { zval **name; - char *colon; + char *backslash; METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void **) &name) == FAILURE) { RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon > Z_STRVAL_PP(name) && *(colon-1) == ':') + && (backslash = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && backslash > Z_STRVAL_PP(name)) { - RETURN_STRINGL(colon + 1, Z_STRLEN_PP(name) - (colon - Z_STRVAL_PP(name) + 1), 1); + RETURN_STRINGL(backslash + 1, Z_STRLEN_PP(name) - (backslash - Z_STRVAL_PP(name) + 1), 1); } RETURN_ZVAL(*name, 1, 0); } @@ -4032,8 +4032,8 @@ ZEND_METHOD(reflection_class, inNamespace) RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon > Z_STRVAL_PP(name) && *(colon-1) == ':') + && (colon = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && colon > Z_STRVAL_PP(name)) { RETURN_TRUE; } @@ -4046,17 +4046,17 @@ ZEND_METHOD(reflection_class, inNamespace) ZEND_METHOD(reflection_class, getNamespaceName) { zval **name; - char *colon; + char *backslash; METHOD_NOTSTATIC_NUMPARAMS(reflection_class_ptr, 0); if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void **) &name) == FAILURE) { RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon > Z_STRVAL_PP(name) && *(colon-1) == ':') + && (backslash = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && backslash > Z_STRVAL_PP(name)) { - RETURN_STRINGL(Z_STRVAL_PP(name), colon - Z_STRVAL_PP(name) - 1, 1); + RETURN_STRINGL(Z_STRVAL_PP(name), backslash - Z_STRVAL_PP(name), 1); } RETURN_EMPTY_STRING(); } @@ -4067,17 +4067,17 @@ ZEND_METHOD(reflection_class, getNamespaceName) ZEND_METHOD(reflection_class, getShortName) { zval **name; - char *colon; + char *backslash; METHOD_NOTSTATIC_NUMPARAMS(reflection_class_ptr, 0); if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void **) &name) == FAILURE) { RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon > Z_STRVAL_PP(name) && *(colon-1) == ':') + && (backslash = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && backslash > Z_STRVAL_PP(name)) { - RETURN_STRINGL(colon + 1, Z_STRLEN_PP(name) - (colon - Z_STRVAL_PP(name) + 1), 1); + RETURN_STRINGL(backslash + 1, Z_STRLEN_PP(name) - (backslash - Z_STRVAL_PP(name) + 1), 1); } RETURN_ZVAL(*name, 1, 0); } diff --git a/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt b/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt index cd1f52c2ab..a17e1a7226 100644 --- a/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt +++ b/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt @@ -2,7 +2,7 @@ ReflectionFunction::getNamespaceName() --FILE-- <?php -namespace A::B; +namespace A\B; function foo() {} $function = new ReflectionFunction('sort'); @@ -11,7 +11,7 @@ var_dump($function->getName()); var_dump($function->getNamespaceName()); var_dump($function->getShortName()); -$function = new ReflectionFunction('A::B::foo'); +$function = new ReflectionFunction('A\\B\\foo'); var_dump($function->inNamespace()); var_dump($function->getName()); var_dump($function->getNamespaceName()); @@ -23,7 +23,7 @@ string(4) "sort" string(0) "" string(4) "sort" bool(true) -string(9) "A::B::foo" -string(4) "A::B" +string(7) "A\B\foo" +string(3) "A\B" string(3) "foo" diff --git a/ext/reflection/tests/reflectionClass_getNamespaceName.phpt b/ext/reflection/tests/reflectionClass_getNamespaceName.phpt index 4b511908fe..921cd5b1f3 100644 --- a/ext/reflection/tests/reflectionClass_getNamespaceName.phpt +++ b/ext/reflection/tests/reflectionClass_getNamespaceName.phpt @@ -2,7 +2,7 @@ ReflectionClass::getNamespaceName() --FILE-- <?php -namespace A::B; +namespace A\B; class Foo { } @@ -12,7 +12,7 @@ var_dump($function->getName()); var_dump($function->getNamespaceName()); var_dump($function->getShortName()); -$function = new ReflectionClass('A::B::Foo'); +$function = new ReflectionClass('A\\B\\Foo'); var_dump($function->inNamespace()); var_dump($function->getName()); var_dump($function->getNamespaceName()); @@ -24,7 +24,7 @@ string(8) "stdClass" string(0) "" string(8) "stdClass" bool(true) -string(9) "A::B::Foo" -string(4) "A::B" +string(7) "A\B\Foo" +string(3) "A\B" string(3) "Foo" diff --git a/ext/standard/credits.c b/ext/standard/credits.c index 655725dca6..2d007b6ee1 100644 --- a/ext/standard/credits.c +++ b/ext/standard/credits.c @@ -54,14 +54,14 @@ PHPAPI void php_print_credits(int flag TSRMLS_DC) /* {{{ */ } else { php_info_print_table_header(1, "Language Design & Concept"); } - php_info_print_table_row(1, "Andi Gutmans, Rasmus Lerdorf, Zeev Suraski"); + php_info_print_table_row(1, "Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger"); php_info_print_table_end(); /* PHP Language */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHP Authors"); php_info_print_table_header(2, "Contribution", "Authors"); - CREDIT_LINE("Zend Scripting Language Engine", "Andi Gutmans, Zeev Suraski"); + CREDIT_LINE("Zend Scripting Language Engine", "Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov"); CREDIT_LINE("Extension Module API", "Andi Gutmans, Zeev Suraski, Andrei Zmievski"); CREDIT_LINE("UNIX Build and Modularization", "Stig Bakken, Sascha Schumann"); CREDIT_LINE("Win32 Port", "Shane Caraveo, Zeev Suraski, Wez Furlong"); diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index 7dc84b0bc2..241321a187 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Fri Aug 29 18:39:52 2008 */ +/* Generated by re2c 0.13.6.dev on Tue Nov 4 01:37:59 2008 */ #line 1 "ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+ @@ -578,7 +578,7 @@ yy20: return 0; } - len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377:"); + len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\\"); if (len3 != len) { *p = YYCURSOR + len3 - len; diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index 1c009462b2..3661641857 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -613,7 +613,7 @@ object ":" uiv ":" ["] { return 0; } - len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377:"); + len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\\"); if (len3 != len) { *p = YYCURSOR + len3 - len; |