summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rwxr-xr-xZend/tests/bug42802.phpt10
-rwxr-xr-xZend/tests/bug42819.phpt148
-rwxr-xr-xZend/tests/bug42820.phpt20
-rwxr-xr-xZend/tests/bug42859.phpt6
-rwxr-xr-xZend/tests/bug43183.phpt4
-rw-r--r--Zend/tests/bug43332_1.phpt2
-rw-r--r--Zend/tests/bug43332_2.phpt4
-rw-r--r--Zend/tests/bug43343.phpt2
-rw-r--r--Zend/tests/bug43344_10.phpt2
-rw-r--r--Zend/tests/bug43344_11.phpt2
-rw-r--r--Zend/tests/bug43344_12.phpt2
-rw-r--r--Zend/tests/bug43344_13.phpt2
-rw-r--r--Zend/tests/bug43344_2.phpt2
-rw-r--r--Zend/tests/bug43344_3.phpt2
-rw-r--r--Zend/tests/bug43344_4.phpt2
-rw-r--r--Zend/tests/bug43344_5.phpt2
-rw-r--r--Zend/tests/bug43344_6.phpt4
-rw-r--r--Zend/tests/bug43344_7.phpt4
-rw-r--r--Zend/tests/bug43344_8.phpt4
-rw-r--r--Zend/tests/bug43344_9.phpt4
-rw-r--r--Zend/tests/bug43651.phpt26
-rw-r--r--Zend/tests/bug44653.phpt14
-rw-r--r--Zend/tests/class_alias_012.phpt16
-rw-r--r--Zend/tests/class_alias_013.phpt14
-rw-r--r--Zend/tests/class_alias_015.phpt6
-rw-r--r--Zend/tests/class_alias_016.phpt8
-rw-r--r--Zend/tests/class_alias_019.phpt4
-rw-r--r--Zend/tests/class_alias_020.phpt16
-rw-r--r--Zend/tests/class_alias_021.phpt14
-rw-r--r--Zend/tests/class_constants_004.phpt12
-rw-r--r--Zend/tests/class_exists_001.phpt8
-rw-r--r--Zend/tests/constants_003.phpt2
-rw-r--r--Zend/tests/constants_004.phpt2
-rw-r--r--Zend/tests/constants_006.phpt4
-rw-r--r--Zend/tests/constants_009.phpt8
-rw-r--r--Zend/tests/inter_02.phpt2
-rw-r--r--Zend/tests/interface_exists_002.phpt4
-rw-r--r--Zend/tests/lsb_014.phpt4
-rwxr-xr-xZend/tests/ns_001.phpt18
-rwxr-xr-xZend/tests/ns_002.phpt24
-rwxr-xr-xZend/tests/ns_003.phpt4
-rwxr-xr-xZend/tests/ns_004.phpt2
-rwxr-xr-xZend/tests/ns_005.phpt4
-rwxr-xr-xZend/tests/ns_006.phpt6
-rwxr-xr-xZend/tests/ns_007.phpt2
-rwxr-xr-xZend/tests/ns_008.phpt4
-rwxr-xr-xZend/tests/ns_009.phpt2
-rwxr-xr-xZend/tests/ns_010.phpt24
-rwxr-xr-xZend/tests/ns_011.phpt14
-rwxr-xr-xZend/tests/ns_012.phpt32
-rwxr-xr-xZend/tests/ns_013.phpt4
-rwxr-xr-xZend/tests/ns_014.phpt2
-rwxr-xr-xZend/tests/ns_015.phpt4
-rwxr-xr-xZend/tests/ns_016.phpt6
-rwxr-xr-xZend/tests/ns_017.phpt2
-rwxr-xr-xZend/tests/ns_018.phpt4
-rwxr-xr-xZend/tests/ns_019.phpt2
-rwxr-xr-xZend/tests/ns_020.phpt14
-rwxr-xr-xZend/tests/ns_021.phpt10
-rwxr-xr-xZend/tests/ns_022.phpt10
-rwxr-xr-xZend/tests/ns_023.phpt6
-rwxr-xr-xZend/tests/ns_025.phpt14
-rwxr-xr-xZend/tests/ns_026.phpt23
-rwxr-xr-xZend/tests/ns_027.inc2
-rwxr-xr-xZend/tests/ns_027.phpt8
-rwxr-xr-xZend/tests/ns_028.phpt16
-rwxr-xr-xZend/tests/ns_029.phpt2
-rwxr-xr-xZend/tests/ns_030.phpt4
-rwxr-xr-xZend/tests/ns_031.phpt8
-rwxr-xr-xZend/tests/ns_032.phpt4
-rwxr-xr-xZend/tests/ns_034.phpt12
-rwxr-xr-xZend/tests/ns_035.phpt4
-rwxr-xr-xZend/tests/ns_036.phpt16
-rwxr-xr-xZend/tests/ns_037.phpt24
-rwxr-xr-xZend/tests/ns_038.phpt2
-rw-r--r--Zend/tests/ns_040.phpt12
-rw-r--r--Zend/tests/ns_041.phpt6
-rw-r--r--Zend/tests/ns_042.phpt12
-rw-r--r--Zend/tests/ns_043.phpt2
-rw-r--r--Zend/tests/ns_044.phpt2
-rw-r--r--Zend/tests/ns_045.phpt4
-rw-r--r--Zend/tests/ns_046.phpt4
-rw-r--r--Zend/tests/ns_047.phpt2
-rw-r--r--Zend/tests/ns_048.phpt4
-rw-r--r--Zend/tests/ns_049.phpt2
-rw-r--r--Zend/tests/ns_050.phpt2
-rw-r--r--Zend/tests/ns_051.phpt2
-rw-r--r--Zend/tests/ns_052.phpt4
-rw-r--r--Zend/tests/ns_053.phpt6
-rwxr-xr-xZend/tests/ns_054.phpt8
-rwxr-xr-xZend/tests/ns_055.phpt6
-rwxr-xr-xZend/tests/ns_056.phpt2
-rwxr-xr-xZend/tests/ns_057.phpt30
-rwxr-xr-xZend/tests/ns_058.phpt26
-rw-r--r--Zend/tests/ns_060.phpt12
-rw-r--r--Zend/tests/ns_061.phpt2
-rw-r--r--Zend/tests/ns_062.phpt6
-rw-r--r--Zend/tests/ns_064.phpt2
-rwxr-xr-xZend/tests/ns_065.inc4
-rwxr-xr-xZend/tests/ns_065.phpt10
-rw-r--r--Zend/tests/ns_066.phpt4
-rw-r--r--Zend/tests/ns_067.inc2
-rw-r--r--Zend/tests/ns_067.phpt2
-rw-r--r--Zend/zend_API.c16
-rw-r--r--Zend/zend_API.h2
-rw-r--r--Zend/zend_compile.c431
-rw-r--r--Zend/zend_compile.h3
-rw-r--r--Zend/zend_constants.c111
-rw-r--r--Zend/zend_execute_API.c110
-rw-r--r--Zend/zend_language_parser.y52
-rw-r--r--Zend/zend_language_scanner.c5220
-rw-r--r--Zend/zend_language_scanner.l4
-rw-r--r--Zend/zend_language_scanner_defs.h2
-rw-r--r--Zend/zend_vm_def.h80
-rw-r--r--Zend/zend_vm_execute.h298
-rw-r--r--ext/reflection/php_reflection.c40
-rw-r--r--ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt8
-rw-r--r--ext/reflection/tests/reflectionClass_getNamespaceName.phpt8
-rw-r--r--ext/standard/credits.c4
-rw-r--r--ext/standard/var_unserializer.c4
-rw-r--r--ext/standard/var_unserializer.re2
122 files changed, 3738 insertions, 3570 deletions
diff --git a/NEWS b/NEWS
index 604dc16cad..3057af072e 100644
--- a/NEWS
+++ b/NEWS
@@ -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;