summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2008-12-04 20:12:30 +0000
committerStanislav Malyshev <stas@php.net>2008-12-04 20:12:30 +0000
commit636b2c9a6feed3683f44f10953622889a6023e9a (patch)
treed749cdc72cd877524d1536d99494eee2187a21f9
parent1b893ea4bcd2498485eaa8577f8b6fb03416ea20 (diff)
downloadphp-git-636b2c9a6feed3683f44f10953622889a6023e9a.tar.gz
MF5: Merge namespaces changes
-rwxr-xr-xZend/tests/bug41633_2.phpt2
-rwxr-xr-xZend/tests/bug42802.phpt19
-rwxr-xr-xZend/tests/bug42819.phpt150
-rwxr-xr-xZend/tests/bug42820.phpt21
-rwxr-xr-xZend/tests/bug42859.phpt6
-rwxr-xr-xZend/tests/bug43128.phpt2
-rwxr-xr-xZend/tests/bug43183.phpt6
-rw-r--r--Zend/tests/bug43332_1.phpt4
-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.phpt12
-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
-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.phpt8
-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.phpt4
-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_033.phpt1
-rwxr-xr-xZend/tests/ns_034.phpt15
-rwxr-xr-xZend/tests/ns_035.phpt6
-rwxr-xr-xZend/tests/ns_036.phpt19
-rwxr-xr-xZend/tests/ns_037.phpt24
-rwxr-xr-xZend/tests/ns_038.phpt5
-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.phpt7
-rwxr-xr-xZend/tests/ns_054.phpt12
-rwxr-xr-xZend/tests/ns_055.phpt13
-rwxr-xr-xZend/tests/ns_056.phpt7
-rwxr-xr-xZend/tests/ns_057.phpt35
-rwxr-xr-xZend/tests/ns_058.phpt31
-rwxr-xr-xZend/tests/ns_059.phpt1
-rw-r--r--Zend/tests/ns_060.phpt12
-rw-r--r--Zend/tests/ns_061.phpt9
-rw-r--r--Zend/tests/ns_062.phpt12
-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/tests/ns_070.phpt2
-rw-r--r--Zend/tests/ns_071.phpt2
-rw-r--r--Zend/tests/ns_072.phpt2
-rw-r--r--Zend/tests/ns_073.phpt3
-rw-r--r--Zend/tests/ns_074.phpt8
-rwxr-xr-xZend/tests/ns_075.phpt10
-rwxr-xr-xZend/tests/ns_076.phpt25
-rwxr-xr-xZend/tests/ns_077_1.phpt13
-rwxr-xr-xZend/tests/ns_077_2.phpt13
-rwxr-xr-xZend/tests/ns_077_3.phpt13
-rwxr-xr-xZend/tests/ns_077_4.phpt13
-rwxr-xr-xZend/tests/ns_077_5.phpt12
-rwxr-xr-xZend/tests/ns_077_6.phpt12
-rwxr-xr-xZend/tests/ns_077_7.phpt12
-rwxr-xr-xZend/tests/ns_077_8.phpt12
-rwxr-xr-xZend/tests/ns_078.phpt33
-rw-r--r--Zend/tests/ns_079.phpt12
-rw-r--r--Zend/tests/ns_080.phpt15
-rw-r--r--Zend/tests/ns_081.phpt23
-rw-r--r--Zend/tests/ns_082.phpt12
-rw-r--r--Zend/tests/ns_083.phpt14
-rw-r--r--Zend/tests/ns_084.phpt23
-rw-r--r--Zend/tests/ns_085.phpt27
-rw-r--r--Zend/tests/ns_086.phpt28
-rw-r--r--Zend/tests/ns_087.phpt24
-rw-r--r--Zend/zend.h2
-rw-r--r--Zend/zend_API.c18
-rw-r--r--Zend/zend_compile.c651
-rw-r--r--Zend/zend_compile.h10
-rw-r--r--Zend/zend_constants.c136
-rw-r--r--Zend/zend_execute_API.c211
-rw-r--r--Zend/zend_globals.h2
-rw-r--r--Zend/zend_language_parser.y64
-rw-r--r--Zend/zend_language_scanner.c5599
-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.h236
144 files changed, 4425 insertions, 3945 deletions
diff --git a/Zend/tests/bug41633_2.phpt b/Zend/tests/bug41633_2.phpt
index 23c0e6b649..3deb4516ac 100755
--- a/Zend/tests/bug41633_2.phpt
+++ b/Zend/tests/bug41633_2.phpt
@@ -8,4 +8,4 @@ class Foo {
echo Foo::A."\n";
?>
--EXPECTF--
-Fatal error: Undefined class constant 'B' in %sbug41633_2.php on line 5
+Fatal error: Undefined class constant 'self::B' in %sbug41633_2.php on line 5
diff --git a/Zend/tests/bug42802.phpt b/Zend/tests/bug42802.phpt
index 80ae02ba5e..2aa7061f35 100755
--- a/Zend/tests/bug42802.phpt
+++ b/Zend/tests/bug42802.phpt
@@ -11,35 +11,30 @@ 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 test5(\bar $bar) {
echo "bug\n";
}
$x = new bar();
-$y = new Exception();
+$y = new \Exception();
test1($x);
test2($x);
test3($x);
test4($y);
-test5($y);
-test6($x);
+test5($x);
--EXPECTF--
ok
ok
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\test5() must be an instance of bar, instance of foo\bar given, called in %sbug42802.php on line %d and defined in %sbug42802.php on line %d
diff --git a/Zend/tests/bug42819.phpt b/Zend/tests/bug42819.phpt
index 565a019fac..f4387eb93b 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;
+use \ArrayObject;
-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 c5b13b43eb..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)
@@ -28,3 +28,4 @@ bool(true)
bool(false)
bool(false)
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/bug43128.phpt b/Zend/tests/bug43128.phpt
index 629f46c594..d492bfe59a 100755
--- a/Zend/tests/bug43128.phpt
+++ b/Zend/tests/bug43128.phpt
@@ -1,7 +1,7 @@
--TEST--
Bug #43128 (Very long class name causes segfault)
--INI--
-memory_limit=128000000
+memory_limit=512000000
--FILE--
<?php
diff --git a/Zend/tests/bug43183.phpt b/Zend/tests/bug43183.phpt
index 8da2c833a1..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
+ok \ No newline at end of file
diff --git a/Zend/tests/bug43332_1.phpt b/Zend/tests/bug43332_1.phpt
index ef32162100..807c6cb545 100644
--- a/Zend/tests/bug43332_1.phpt
+++ b/Zend/tests/bug43332_1.phpt
@@ -10,6 +10,6 @@ class foo {
$foo = new foo;
$foo->bar($foo); // Ok!
-$foo->bar(new stdclass); // Error, 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..b8adef3b13 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..dd90e127f4 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 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 2bd7397a3a..c1e794462b 100644
--- a/Zend/tests/constants_006.phpt
+++ b/Zend/tests/constants_006.phpt
@@ -23,10 +23,10 @@ var_dump(__namespace__);
?>
--EXPECTF--
-unicode(%d) "%s"
-unicode(%d) "%s"
+string(%d) "%s"
+%string|unicode%(%d) "%s"
int(%d)
-unicode(22) "test::foo::__construct"
-unicode(9) "test::foo"
-unicode(11) "__construct"
-unicode(4) "test"
+%string|unicode%(21) "test\foo::__construct"
+%string|unicode%(8) "test\foo"
+%string|unicode%(11) "__construct"
+%string|unicode%(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/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..3d9e09869d 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..d293f65dce 100755
--- a/Zend/tests/ns_004.phpt
+++ b/Zend/tests/ns_004.phpt
@@ -1,9 +1,9 @@
--TEST--
-004: Name conflict (php name)
+004: Using global class name from namespace (unqualified - fail)
--FILE--
<?php
-namespace test::ns1;
+namespace test\ns1;
echo get_class(new Exception()),"\n";
---EXPECT--
-Exception
+--EXPECTF--
+Fatal error: Class 'test\ns1\Exception' not found in %sns_004.php on line %d \ No newline at end of file
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..28ef61bcdd 100755
--- a/Zend/tests/ns_010.phpt
+++ b/Zend/tests/ns_010.phpt
@@ -15,35 +15,27 @@ class Foo {
}
}
new Foo();
-new X::Foo();
-new Y::Foo();
-new ::X::Foo();
+new Y\Foo();
+new \X\Foo();
Foo::bar();
-X::Foo::bar();
-Y::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 Y\Foo::C;
+echo \X\Foo::C;
echo Foo::$var;
-echo X::Foo::$var;
-echo Y::Foo::$var;
-echo ::X::Foo::$var;
+echo Y\Foo::$var;
+echo \X\Foo::$var;
--EXPECT--
class ok
class ok
class ok
-class ok
-method ok
method ok
method ok
method ok
const ok
const ok
const ok
-const ok
-var ok
var ok
var ok
var 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 b2e67eda1f..c552bcae92 100755
--- a/Zend/tests/ns_023.phpt
+++ b/Zend/tests/ns_023.phpt
@@ -2,8 +2,8 @@
023: __NAMESPACE__ constant
--FILE--
<?php
-namespace test::foo;
+namespace test\foo;
var_dump(__NAMESPACE__);
--EXPECT--
-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_033.phpt b/Zend/tests/ns_033.phpt
index 8d616c1db2..dc431d82b9 100755
--- a/Zend/tests/ns_033.phpt
+++ b/Zend/tests/ns_033.phpt
@@ -5,3 +5,4 @@
use A;
--EXPECTF--
Warning: The use statement with non-compound name 'A' has no effect in %sns_033.php on line 2
+
diff --git a/Zend/tests/ns_034.phpt b/Zend/tests/ns_034.phpt
index f8669cfb74..76775f1180 100755
--- a/Zend/tests/ns_034.phpt
+++ b/Zend/tests/ns_034.phpt
@@ -10,23 +10,18 @@ class Foo {
function f1($x=Foo::C) {
echo $x;
}
-function f2($x=A::Foo::C) {
+function f2($x=B\Foo::C) {
echo $x;
}
-function f3($x=B::Foo::C) {
- echo $x;
-}
-function f4($x=::A::Foo::C) {
+function f3($x=\A\Foo::C) {
echo $x;
}
echo Foo::C;
-echo A::Foo::C;
-echo B::Foo::C;
-echo ::A::Foo::C;
+echo B\Foo::C;
+echo \A\Foo::C;
f1();
f2();
f3();
-f4();
--EXPECT--
ok
ok
@@ -34,5 +29,3 @@ ok
ok
ok
ok
-ok
-ok
diff --git a/Zend/tests/ns_035.phpt b/Zend/tests/ns_035.phpt
index 259d17f6e3..fcc771a74e 100755
--- a/Zend/tests/ns_035.phpt
+++ b/Zend/tests/ns_035.phpt
@@ -5,14 +5,16 @@
--FILE--
<?php
namespace A;
+use \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);
}
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..245cf7d5b5 100755
--- a/Zend/tests/ns_036.phpt
+++ b/Zend/tests/ns_036.phpt
@@ -12,28 +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) {
- var_dump($x);
-}
-function f5($x = ::A::ArrayObject::STD_PROP_LIST) {
+function f4($x = B\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(B\ArrayObject::STD_PROP_LIST);
+var_dump(\A\ArrayObject::STD_PROP_LIST);
f1();
f2();
f3();
f4();
-f5();
?>
--EXPECT--
int(2)
@@ -41,8 +36,6 @@ int(1)
int(2)
int(2)
int(2)
-int(2)
int(1)
int(2)
int(2)
-int(2)
diff --git a/Zend/tests/ns_037.phpt b/Zend/tests/ns_037.phpt
index ed36e0bb57..db0a76e940 100755
--- a/Zend/tests/ns_037.phpt
+++ b/Zend/tests/ns_037.phpt
@@ -15,35 +15,27 @@ class X {
}
}
new X();
-new X::X();
-new Y::X();
-new ::X::X();
+new Y\X();
+new \X\X();
X::bar();
-X::X::bar();
-Y::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 Y\X::C;
+echo \X\X::C;
echo X::$var;
-echo X::X::$var;
-echo Y::X::$var;
-echo ::X::X::$var;
+echo Y\X::$var;
+echo \X\X::$var;
--EXPECT--
class ok
class ok
class ok
-class ok
-method ok
method ok
method ok
method ok
const ok
const ok
const ok
-const ok
-var ok
var ok
var ok
var ok
diff --git a/Zend/tests/ns_038.phpt b/Zend/tests/ns_038.phpt
index c0ce428f72..f3a8c8cc63 100755
--- a/Zend/tests/ns_038.phpt
+++ b/Zend/tests/ns_038.phpt
@@ -6,9 +6,10 @@ namespace Exception;
function foo() {
echo "ok\n";
}
-Exception::foo();
-Exception::bar();
+\Exception\foo();
+\Exception::bar();
--EXPECTF--
ok
Fatal error: Call to undefined method Exception::bar() in %sns_038.php on line 7
+
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 b127da581e..bc5ab12cdb 100644
--- a/Zend/tests/ns_053.phpt
+++ b/Zend/tests/ns_053.phpt
@@ -2,11 +2,12 @@
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..54ab958611 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) {
+class Foo implements \SplObserver {
+ function update(\SplSubject $x) {
echo "ok\n";
}
}
-class Bar implements SplSubject {
- function attach(::SplObserver $x) {
+class Bar implements \SplSubject {
+ 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..a692e47601 100755
--- a/Zend/tests/ns_055.phpt
+++ b/Zend/tests/ns_055.phpt
@@ -2,32 +2,27 @@
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 test3(\Exception $x) {
echo "ok\n";
}
}
$foo = new Foo();
-$ex = new Exception();
+$ex = new \Exception();
$foo->test1($foo);
$foo->test2($foo);
$foo->test3($ex);
-$foo->test4($ex);
?>
--EXPECT--
ok
ok
ok
-ok
diff --git a/Zend/tests/ns_056.phpt b/Zend/tests/ns_056.phpt
index 0bc4f0087d..2390608d4e 100755
--- a/Zend/tests/ns_056.phpt
+++ b/Zend/tests/ns_056.phpt
@@ -4,15 +4,16 @@
<?php if (!extension_loaded("spl")) die("skip SPL is no available"); ?>
--FILE--
<?php
-namespace test::ns1;
+namespace test\ns1;
+use \SplObserver;
class Foo implements SplObserver {
- function update(SplSubject $x) {
+ function update(\SplSubject $x) {
echo "ok\n";
}
}
-class Bar implements SplSubject {
+class Bar implements \SplSubject {
function attach(SplObserver $x) {
echo "ok\n";
}
diff --git a/Zend/tests/ns_057.phpt b/Zend/tests/ns_057.phpt
index bd17d6c318..13bf3054cc 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,28 +22,29 @@ 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());
+echo namespace\unknown;
?>
---EXPECT--
+--EXPECTF--
const ok
func ok
const ok
@@ -54,3 +55,5 @@ const ok
const ok
class ok
ok
+
+Fatal error: Undefined constant 'Test\ns1\unknown' in %sns_057.php on line %d \ No newline at end of file
diff --git a/Zend/tests/ns_058.phpt b/Zend/tests/ns_058.phpt
index 6c86f10f9d..7a0cd97d92 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,28 +20,29 @@ 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());
+echo namespace\unknown;
?>
---EXPECT--
+--EXPECTF--
const ok
func ok
const ok
@@ -52,3 +53,5 @@ const ok
const ok
class ok
ok
+
+Fatal error: Undefined constant 'unknown' in %sns_058.php on line %d
diff --git a/Zend/tests/ns_059.phpt b/Zend/tests/ns_059.phpt
index ae96128f0b..ea66037b43 100755
--- a/Zend/tests/ns_059.phpt
+++ b/Zend/tests/ns_059.phpt
@@ -5,3 +5,4 @@
const C = array();
--EXPECTF--
Fatal error: Arrays are not allowed as constants in %sns_059.php on line 2
+
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
new file mode 100644
index 0000000000..948f675d6d
--- /dev/null
+++ b/Zend/tests/ns_061.phpt
@@ -0,0 +1,9 @@
+--TEST--
+061: use in global scope
+--FILE--
+<?php
+class A {}
+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
new file mode 100644
index 0000000000..d795da4c68
--- /dev/null
+++ b/Zend/tests/ns_062.phpt
@@ -0,0 +1,12 @@
+--TEST--
+062: use \global class
+--FILE--
+<?php
+namespace Foo;
+use \stdClass;
+use \stdClass as A;
+echo get_class(new stdClass)."\n";
+echo get_class(new A)."\n";
+--EXPECT--
+stdClass
+stdClass
diff --git a/Zend/tests/ns_064.phpt b/Zend/tests/ns_064.phpt
index bc6d65ba68..b8c6d3c3b7 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/tests/ns_070.phpt b/Zend/tests/ns_070.phpt
index 850b82040c..37cb6a0068 100644
--- a/Zend/tests/ns_070.phpt
+++ b/Zend/tests/ns_070.phpt
@@ -11,7 +11,7 @@ class bar {
}
}
-new bar(new stdclass);
+new bar(new \stdclass);
new bar(null);
?>
diff --git a/Zend/tests/ns_071.phpt b/Zend/tests/ns_071.phpt
index f31e0cc683..1fdaec9db3 100644
--- a/Zend/tests/ns_071.phpt
+++ b/Zend/tests/ns_071.phpt
@@ -12,7 +12,7 @@ class bar {
}
new bar(null);
-new bar(new stdclass);
+new bar(new \stdclass);
?>
--EXPECTF--
diff --git a/Zend/tests/ns_072.phpt b/Zend/tests/ns_072.phpt
index aaba0ddb5f..c500bfddb7 100644
--- a/Zend/tests/ns_072.phpt
+++ b/Zend/tests/ns_072.phpt
@@ -22,7 +22,7 @@ class test implements foo {
new bar(new test);
new bar(null);
-new bar(new stdclass);
+new bar(new \stdclass);
?>
--EXPECTF--
diff --git a/Zend/tests/ns_073.phpt b/Zend/tests/ns_073.phpt
index 4f37aa58b4..bb03308d71 100644
--- a/Zend/tests/ns_073.phpt
+++ b/Zend/tests/ns_073.phpt
@@ -11,12 +11,9 @@ $x = function (\stdclass $x = NULL) {
$x(NULL);
$x(new \stdclass);
-$x(new stdclass);
?>
--EXPECTF--
NULL
object(stdClass)#%d (0) {
}
-object(stdClass)#%d (0) {
-}
diff --git a/Zend/tests/ns_074.phpt b/Zend/tests/ns_074.phpt
index 5b15e3b42f..28d8bf96b6 100644
--- a/Zend/tests/ns_074.phpt
+++ b/Zend/tests/ns_074.phpt
@@ -9,16 +9,16 @@ $x = function (\stdclass $x = NULL) {
var_dump($x);
};
-class stdclass { }
+class stdclass extends \stdclass { }
$x(NULL);
$x(new stdclass);
-$x(new stdclass);
+$x(new \stdclass);
?>
--EXPECTF--
NULL
-object(foo\stdClass)#%d (0) {
+object(foo\stdclass)#%d (0) {
}
-object(foo\stdClass)#%d (0) {
+object(stdClass)#%d (0) {
}
diff --git a/Zend/tests/ns_075.phpt b/Zend/tests/ns_075.phpt
new file mode 100755
index 0000000000..0156e99eb4
--- /dev/null
+++ b/Zend/tests/ns_075.phpt
@@ -0,0 +1,10 @@
+--TEST--
+075: Redefining compile-time constants
+--FILE--
+<?php
+namespace foo;
+const NULL = 1;
+
+echo NULL;
+--EXPECTF--
+Fatal error: Cannot redeclare constant 'NULL' in %sns_075.php on line %d
diff --git a/Zend/tests/ns_076.phpt b/Zend/tests/ns_076.phpt
new file mode 100755
index 0000000000..7d4881c2d4
--- /dev/null
+++ b/Zend/tests/ns_076.phpt
@@ -0,0 +1,25 @@
+--TEST--
+076: Unknown constants in namespace
+--FILE--
+<?php
+namespace foo;
+
+$a = array(unknown => unknown);
+
+echo unknown;
+echo "\n";
+var_dump($a);
+echo \unknown;
+--EXPECTF--
+Notice: Use of undefined constant unknown - assumed 'unknown' in %sns_076.php on line %d
+
+Notice: Use of undefined constant unknown - assumed 'unknown' in %sns_076.php on line %d
+
+Notice: Use of undefined constant unknown - assumed 'unknown' in %sns_076.php on line %d
+unknown
+array(1) {
+ [u"unknown"]=>
+ %s(7) "unknown"
+}
+
+Fatal error: Undefined constant 'unknown' in %sns_076.php on line %d
diff --git a/Zend/tests/ns_077_1.phpt b/Zend/tests/ns_077_1.phpt
new file mode 100755
index 0000000000..5a9c4b1539
--- /dev/null
+++ b/Zend/tests/ns_077_1.phpt
@@ -0,0 +1,13 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+namespace foo;
+
+function foo($a = array(0 => \unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_2.phpt b/Zend/tests/ns_077_2.phpt
new file mode 100755
index 0000000000..8c26721855
--- /dev/null
+++ b/Zend/tests/ns_077_2.phpt
@@ -0,0 +1,13 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+namespace foo;
+
+function foo($a = array(\unknown => unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_3.phpt b/Zend/tests/ns_077_3.phpt
new file mode 100755
index 0000000000..bdeb7924e6
--- /dev/null
+++ b/Zend/tests/ns_077_3.phpt
@@ -0,0 +1,13 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+namespace foo;
+
+function foo($a = array(namespace\unknown => unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'foo\unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_4.phpt b/Zend/tests/ns_077_4.phpt
new file mode 100755
index 0000000000..aef91fd3e6
--- /dev/null
+++ b/Zend/tests/ns_077_4.phpt
@@ -0,0 +1,13 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+namespace foo;
+
+function foo($a = array(0 => namespace\unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'foo\unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_5.phpt b/Zend/tests/ns_077_5.phpt
new file mode 100755
index 0000000000..17afe03f4b
--- /dev/null
+++ b/Zend/tests/ns_077_5.phpt
@@ -0,0 +1,12 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+
+function foo($a = array(0 => \unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_6.phpt b/Zend/tests/ns_077_6.phpt
new file mode 100755
index 0000000000..17afe03f4b
--- /dev/null
+++ b/Zend/tests/ns_077_6.phpt
@@ -0,0 +1,12 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+
+function foo($a = array(0 => \unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_7.phpt b/Zend/tests/ns_077_7.phpt
new file mode 100755
index 0000000000..9bf5baf058
--- /dev/null
+++ b/Zend/tests/ns_077_7.phpt
@@ -0,0 +1,12 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+
+function foo($a = array(0 => namespace\unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_077_8.phpt b/Zend/tests/ns_077_8.phpt
new file mode 100755
index 0000000000..9f9240db07
--- /dev/null
+++ b/Zend/tests/ns_077_8.phpt
@@ -0,0 +1,12 @@
+--TEST--
+077: Unknown compile-time constants in namespace
+--FILE--
+<?php
+
+function foo($a = array(namespace\unknown => unknown))
+{
+}
+
+foo();
+--EXPECTF--
+Fatal error: Undefined constant 'unknown' in %sns_077_%d.php on line %d
diff --git a/Zend/tests/ns_078.phpt b/Zend/tests/ns_078.phpt
new file mode 100755
index 0000000000..ed6770ff47
--- /dev/null
+++ b/Zend/tests/ns_078.phpt
@@ -0,0 +1,33 @@
+--TEST--
+002: Import - different syntaxes
+--FILE--
+<?php
+namespace test\ns1;
+
+class Foo {
+ static function bar() {
+ echo __CLASS__,"\n";
+ }
+}
+
+class Foo2 {
+ static function bar() {
+ echo __CLASS__,"\n";
+ }
+}
+
+namespace xyz;
+use test\ns1\Foo;
+use test\ns1\Foo as Bar;
+use \test\ns1\Foo2;
+use \test\ns1\Foo2 as Bar2;
+
+Foo::bar();
+Bar::bar();
+Foo2::bar();
+Bar2::bar();
+--EXPECT--
+test\ns1\Foo
+test\ns1\Foo
+test\ns1\Foo2
+test\ns1\Foo2
diff --git a/Zend/tests/ns_079.phpt b/Zend/tests/ns_079.phpt
new file mode 100644
index 0000000000..c11181c54b
--- /dev/null
+++ b/Zend/tests/ns_079.phpt
@@ -0,0 +1,12 @@
+--TEST--
+079: nested namespaces
+--FILE--
+<?php
+namespace foo {
+ namespace oops {
+ }
+}
+?>
+===DONE===
+--EXPECTF--
+Fatal error: Namespace declarations cannot be nested in %s on line %d
diff --git a/Zend/tests/ns_080.phpt b/Zend/tests/ns_080.phpt
new file mode 100644
index 0000000000..9c81c0d4c8
--- /dev/null
+++ b/Zend/tests/ns_080.phpt
@@ -0,0 +1,15 @@
+--TEST--
+080: bracketed namespaces and __HALT_COMPILER();
+--FILE--
+<?php
+namespace foo {
+echo "hi\n";
+}
+__HALT_COMPILER();
+namespace unprocessed {
+echo "should not echo\n";
+}
+?>
+===DONE===
+--EXPECT--
+hi \ No newline at end of file
diff --git a/Zend/tests/ns_081.phpt b/Zend/tests/ns_081.phpt
new file mode 100644
index 0000000000..e08a8088e0
--- /dev/null
+++ b/Zend/tests/ns_081.phpt
@@ -0,0 +1,23 @@
+--TEST--
+081: bracketed namespace with nested unbracketed namespace
+--FILE--
+<?php
+namespace foo {
+use \foo;
+class bar {
+ function __construct() {echo __METHOD__,"\n";}
+}
+new foo;
+new bar;
+namespace oops;
+class foo {
+ function __construct() {echo __METHOD__,"\n";}
+}
+use foo\bar as foo1;
+new foo1;
+new foo;
+}
+?>
+===DONE===
+--EXPECTF--
+Fatal error: Cannot mix bracketed namespace declarations with unbracketed namespace declarations in %sns_081.php on line 9
diff --git a/Zend/tests/ns_082.phpt b/Zend/tests/ns_082.phpt
new file mode 100644
index 0000000000..3220974047
--- /dev/null
+++ b/Zend/tests/ns_082.phpt
@@ -0,0 +1,12 @@
+--TEST--
+082: bracketed namespace with closing tag
+--FILE--
+<?php
+namespace foo {
+}
+namespace ok {
+echo "ok\n";
+}
+?>
+--EXPECT--
+ok \ No newline at end of file
diff --git a/Zend/tests/ns_083.phpt b/Zend/tests/ns_083.phpt
new file mode 100644
index 0000000000..4b821dbf0b
--- /dev/null
+++ b/Zend/tests/ns_083.phpt
@@ -0,0 +1,14 @@
+--TEST--
+083: bracketed namespace with junk before the ns declaration
+--FILE--
+<?php
+$a = 'oops';
+echo $a;
+namespace foo {
+}
+namespace ok {
+echo "ok\n";
+}
+?>
+--EXPECTF--
+Fatal error: Namespace declaration statement has to be the very first statement in the script in %s on line %d
diff --git a/Zend/tests/ns_084.phpt b/Zend/tests/ns_084.phpt
new file mode 100644
index 0000000000..cb1ae55e28
--- /dev/null
+++ b/Zend/tests/ns_084.phpt
@@ -0,0 +1,23 @@
+--TEST--
+084: unbracketed namespace with nested bracketed namespace
+--FILE--
+<?php
+namespace foo;
+use \foo;
+class bar {
+ function __construct() {echo __METHOD__,"\n";}
+}
+new foo;
+new bar;
+namespace oops {
+class foo {
+ function __construct() {echo __METHOD__,"\n";}
+}
+use foo\bar as foo1;
+new foo1;
+new foo;
+}
+?>
+===DONE===
+--EXPECTF--
+Fatal error: Cannot mix bracketed namespace declarations with unbracketed namespace declarations in %sns_084.php on line 9
diff --git a/Zend/tests/ns_085.phpt b/Zend/tests/ns_085.phpt
new file mode 100644
index 0000000000..377da6a8dc
--- /dev/null
+++ b/Zend/tests/ns_085.phpt
@@ -0,0 +1,27 @@
+--TEST--
+085: bracketed namespace
+--FILE--
+<?php
+namespace foo {
+use \foo;
+class bar {
+ function __construct() {echo __METHOD__,"\n";}
+}
+new foo;
+new bar;
+}
+namespace {
+class foo {
+ function __construct() {echo __METHOD__,"\n";}
+}
+use foo\bar as foo1;
+new foo1;
+new foo;
+echo "===DONE===\n";
+}
+--EXPECT--
+foo::__construct
+foo\bar::__construct
+foo\bar::__construct
+foo::__construct
+===DONE=== \ No newline at end of file
diff --git a/Zend/tests/ns_086.phpt b/Zend/tests/ns_086.phpt
new file mode 100644
index 0000000000..ce3e2a6476
--- /dev/null
+++ b/Zend/tests/ns_086.phpt
@@ -0,0 +1,28 @@
+--TEST--
+086: bracketed namespace with encoding
+--FILE--
+<?php
+declare(encoding='utf-8');
+namespace foo {
+use \foo;
+class bar {
+ function __construct() {echo __METHOD__,"\n";}
+}
+new foo;
+new bar;
+}
+namespace {
+class foo {
+ function __construct() {echo __METHOD__,"\n";}
+}
+use foo\bar as foo1;
+new foo1;
+new foo;
+echo "===DONE===\n";
+}
+--EXPECT--
+foo::__construct
+foo\bar::__construct
+foo\bar::__construct
+foo::__construct
+===DONE=== \ No newline at end of file
diff --git a/Zend/tests/ns_087.phpt b/Zend/tests/ns_087.phpt
new file mode 100644
index 0000000000..b2f0a89b22
--- /dev/null
+++ b/Zend/tests/ns_087.phpt
@@ -0,0 +1,24 @@
+--TEST--
+087: bracketed namespace with stuff in between
+--FILE--
+<?php
+namespace foo {
+use \foo;
+class bar {
+ function __construct() {echo __METHOD__,"\n";}
+}
+new foo;
+new bar;
+}
+$a = 'oops';
+namespace {
+class foo {
+ function __construct() {echo __METHOD__,"\n";}
+}
+use foo\bar as foo1;
+new foo1;
+new foo;
+echo "===DONE===\n";
+}
+--EXPECTF--
+Fatal error: No code may exist outside of namespace {} in %s on line 10
diff --git a/Zend/zend.h b/Zend/zend.h
index 8475b2eb74..a9d7574a59 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -560,7 +560,7 @@ typedef int (*zend_write_func_t)(const char *str, uint str_length);
/* Ugly hack to support constants as static array indices */
#define IS_CONSTANT_TYPE_MASK 0x0f
-#define IS_CONSTANT_RT_NS_CHECK 0x10
+#define IS_CONSTANT_UNQUALIFIED 0x10
#define IS_CONSTANT_INDEX 0x80
#define IS_LEXICAL_VAR 0x20
#define IS_LEXICAL_REF 0x40
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index b085d26ac4..d6ce5fbca5 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2792,20 +2792,16 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
fcc->function_handler = NULL;
if (!ce_org) {
- /* Skip leading :: */
+ /* Skip leading \ */
if (Z_TYPE_P(callable) == IS_UNICODE &&
- Z_USTRVAL_P(callable)[0] == ':' &&
- Z_USTRVAL_P(callable)[1] == ':'
- ) {
- mlen = Z_USTRLEN_P(callable) - 2;
- mname.u = Z_USTRVAL_P(callable) + 2;
+ Z_USTRVAL_P(callable)[0] == '\\') {
+ mlen = Z_USTRLEN_P(callable) - 1;
+ mname.u = Z_USTRVAL_P(callable) + 1;
lmname = zend_u_str_case_fold(IS_UNICODE, mname, mlen, 1, &lmlen);
} else if (Z_TYPE_P(callable) == IS_STRING &&
- Z_STRVAL_P(callable)[0] == ':' &&
- Z_STRVAL_P(callable)[1] == ':'
- ) {
- mlen = Z_USTRLEN_P(callable) - 2;
- mname.u = Z_USTRVAL_P(callable) + 2;
+ Z_STRVAL_P(callable)[0] == '\\') {
+ mlen = Z_USTRLEN_P(callable) - 1;
+ mname.u = Z_USTRVAL_P(callable) + 1;
lmname = zend_u_str_case_fold(IS_STRING, mname, mlen, 1, &lmlen);
} else {
mlen = Z_UNILEN_P(callable);
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index ca3695f9bf..a7dd2688a4 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -165,6 +165,8 @@ void zend_init_compiler_data_structures(TSRMLS_D) /* {{{ */
zend_stack_init(&CG(labels_stack));
CG(labels) = NULL;
CG(current_namespace) = NULL;
+ CG(in_namespace) = 0;
+ CG(has_bracketed_namespaces) = 0;
CG(current_import) = NULL;
}
/* }}} */
@@ -662,10 +664,13 @@ void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC
last_op->result.u.var == variable->u.var) {
if (last_op->opcode == ZEND_FETCH_OBJ_W) {
if (n > 0) {
+ int opline_no = (opline-CG(active_op_array)->opcodes)/sizeof(*opline);
*opline = *last_op;
MAKE_NOP(last_op);
- last_op = opline;
+ /* last_op = opline; */
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ /* get_next_op can realloc, we need to move last_op */
+ last_op = &CG(active_op_array)->opcodes[opline_no];
}
last_op->opcode = ZEND_ASSIGN_OBJ;
zend_do_op_data(opline, value TSRMLS_CC);
@@ -674,10 +679,13 @@ void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC
return;
} else if (last_op->opcode == ZEND_FETCH_DIM_W) {
if (n > 0) {
+ int opline_no = (opline-CG(active_op_array)->opcodes)/sizeof(*opline);
*opline = *last_op;
MAKE_NOP(last_op);
- last_op = opline;
+ /* last_op = opline; */
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ /* get_next_op can realloc, we need to move last_op */
+ last_op = &CG(active_op_array)->opcodes[opline_no];
}
last_op->opcode = ZEND_ASSIGN_DIM;
zend_do_op_data(opline, value TSRMLS_CC);
@@ -1308,17 +1316,17 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
zstr short_class_lcname;
if (UG(unicode)) {
- if ((short_class_name.u = u_memrchr(CG(active_class_entry)->name.u, ':', CG(active_class_entry)->name_length))) {
+ if ((short_class_name.u = u_memrchr(CG(active_class_entry)->name.u, '\\', CG(active_class_entry)->name_length))) {
+ short_class_name_length = CG(active_class_entry)->name_length - (short_class_name.u - CG(active_class_entry)->name.u) - 1;
short_class_name.u++;
- short_class_name_length = CG(active_class_entry)->name_length - (short_class_name.u - CG(active_class_entry)->name.u);
} else {
short_class_name = CG(active_class_entry)->name;
short_class_name_length = CG(active_class_entry)->name_length;
}
} else {
- if ((short_class_name.s = zend_memrchr(CG(active_class_entry)->name.s, ':', CG(active_class_entry)->name_length))) {
+ if ((short_class_name.s = zend_memrchr(CG(active_class_entry)->name.s, '\\', CG(active_class_entry)->name_length))) {
+ short_class_name_length = CG(active_class_entry)->name_length - (short_class_name.s - CG(active_class_entry)->name.s) - 1;
short_class_name.s++;
- short_class_name_length = CG(active_class_entry)->name_length - (short_class_name.s - CG(active_class_entry)->name.s);
} else {
short_class_name = CG(active_class_entry)->name;
short_class_name_length = CG(active_class_entry)->name_length;
@@ -1637,29 +1645,30 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace
zend_function *function;
unsigned int lcname_len;
zstr lcname;
- int prefix_len = 0;
+ zstr is_compound;
+
+ if(Z_TYPE(function_name->u.constant) == IS_UNICODE) {
+ is_compound.u = u_memchr(Z_USTRVAL(function_name->u.constant), '\\', Z_USTRLEN(function_name->u.constant));
+ } else {
+ is_compound.s = memchr(Z_STRVAL(function_name->u.constant), '\\', Z_STRLEN(function_name->u.constant));
+ }
+
+ zend_resolve_non_class_name(function_name, check_namespace TSRMLS_CC);
- if (check_namespace && CG(current_namespace)) {
+ if (check_namespace && CG(current_namespace) && !is_compound.v) {
/* We assume we call function from the current namespace
if it is not prefixed. */
- znode tmp;
-
- 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;
-
/* In run-time PHP will check for function with full name and
internal function with short name */
- prefix_len = Z_UNILEN_P(CG(current_namespace)) + 2;
+ zend_do_begin_dynamic_function_call(function_name, 1 TSRMLS_CC);
+ return 1;
}
lcname = zend_u_str_case_fold(Z_TYPE(function_name->u.constant), Z_UNIVAL(function_name->u.constant), Z_UNILEN(function_name->u.constant), 0, &lcname_len);
if ((zend_u_hash_find(CG(function_table), Z_TYPE(function_name->u.constant), lcname, lcname_len+1, (void **) &function)==FAILURE) ||
((CG(compiler_options) & ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS) &&
(function->type == ZEND_INTERNAL_FUNCTION))) {
- zend_do_begin_dynamic_function_call(function_name, prefix_len TSRMLS_CC);
+ zend_do_begin_dynamic_function_call(function_name, 0 TSRMLS_CC);
efree(lcname.v);
return 1; /* Dynamic */
}
@@ -1739,39 +1748,52 @@ 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_begin_dynamic_function_call(znode *function_name, int ns_call TSRMLS_DC) /* {{{ */
{
unsigned char *ptr = NULL;
unsigned int len;
- zend_op *opline;
+ zend_op *opline, *opline2;
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
- if (prefix_len) {
+ if (ns_call) {
+ zstr slash;
+ unsigned int prefix_len, name_len;
+ int type;
/* In run-time PHP will check for function with full name and
internal function with short name */
opline->opcode = ZEND_INIT_NS_FCALL_BY_NAME;
opline->op2 = *function_name;
opline->extended_value = 0;
opline->op1.op_type = IS_CONST;
- Z_TYPE(opline->op1.u.constant) = Z_TYPE(opline->op2.u.constant);
+ type = Z_TYPE(opline->op1.u.constant) = Z_TYPE(opline->op2.u.constant);
Z_UNIVAL(opline->op1.u.constant) = zend_u_str_case_fold(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), 0, &len);
Z_UNILEN(opline->op1.u.constant) = len;
opline->extended_value = zend_u_hash_func(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant) + 1);
- opline = get_next_op(CG(active_op_array) TSRMLS_CC);
- opline->opcode = ZEND_OP_DATA;
- opline->op1.op_type = IS_CONST;
- if (Z_TYPE(function_name->u.constant) == IS_UNICODE) {
- Z_TYPE(opline->op1.u.constant) = IS_UNICODE;
- Z_UNIVAL(opline->op1.u.constant) = zend_u_str_case_fold(IS_UNICODE, ZSTR(Z_USTRVAL(function_name->u.constant) + prefix_len), Z_USTRLEN(function_name->u.constant) - prefix_len, 0, &len);
- Z_UNILEN(opline->op1.u.constant) = len;
+ if(Z_TYPE(opline->op1.u.constant) == IS_UNICODE) {
+ slash.u = u_memrchr(Z_USTRVAL(opline->op1.u.constant), '\\', Z_USTRLEN(opline->op1.u.constant));
+ if(!slash.u) {
+ zend_error(E_CORE_ERROR, "Namespaced name %R should contain slash", Z_UNIVAL(opline->op1.u.constant));
+ }
+ slash.u++;
+ prefix_len = slash.u-Z_USTRVAL(opline->op1.u.constant);
+ name_len = Z_USTRLEN(opline->op1.u.constant)-prefix_len;
} else {
- 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));
- }
- opline->extended_value = zend_u_hash_func(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant) + 1);
- SET_UNUSED(opline->op2);
+ slash.s = zend_memrchr(Z_STRVAL(opline->op1.u.constant), '\\', Z_STRLEN(opline->op1.u.constant));
+ if(!slash.s) {
+ zend_error(E_CORE_ERROR, "Namespaced name %R should contain slash", Z_UNIVAL(opline->op1.u.constant));
+ }
+ slash.s++;
+ prefix_len = slash.s-Z_STRVAL(opline->op1.u.constant);
+ name_len = Z_STRLEN(opline->op1.u.constant)-prefix_len;
+ }
+ opline2 = get_next_op(CG(active_op_array) TSRMLS_CC);
+ opline2->opcode = ZEND_OP_DATA;
+ opline2->op1.op_type = IS_CONST;
+ /* this is the length of namespace prefix */
+ Z_LVAL(opline2->op1.u.constant) = prefix_len;
+ /* this is the hash of the non-prefixed part, lowercased */
+ opline2->extended_value = zend_u_hash_func(type, slash, name_len+1);
} else {
opline->opcode = ZEND_INIT_FCALL_BY_NAME;
opline->op2 = *function_name;
@@ -1792,6 +1814,74 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TS
}
/* }}} */
+void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC)
+{
+ znode tmp;
+ int len;
+ zval **ns;
+ zstr lcname;
+ zstr compound;
+ unsigned int lcname_len;
+
+ if (Z_TYPE(element_name->u.constant) == IS_UNICODE) {
+ compound.u = u_memchr(Z_USTRVAL(element_name->u.constant), '\\', Z_USTRLEN(element_name->u.constant));
+ } else {
+ compound.s = memchr(Z_STRVAL(element_name->u.constant), '\\', Z_STRLEN(element_name->u.constant));
+ }
+
+ if (Z_TYPE(element_name->u.constant) == IS_UNICODE && Z_USTRVAL(element_name->u.constant)[0] == '\\') {
+ /* name starts with \ so it is known and unambiguos, nothing to do here but shorten it */
+ memmove(Z_USTRVAL(element_name->u.constant), Z_USTRVAL(element_name->u.constant)+1, UBYTES(Z_USTRLEN(element_name->u.constant)));
+ --Z_USTRLEN(element_name->u.constant);
+ return;
+ } else if (Z_TYPE(element_name->u.constant) == IS_STRING && Z_STRVAL(element_name->u.constant)[0] == '\\') {
+ /* name starts with \ so it is known and unambiguos, nothing to do here but shorten it */
+ memmove(Z_STRVAL(element_name->u.constant), Z_STRVAL(element_name->u.constant)+1, Z_STRLEN(element_name->u.constant));
+ --Z_STRLEN(element_name->u.constant);
+ return;
+ }
+
+ if(!check_namespace) {
+ return;
+ }
+
+ if (compound.v != NULL && CG(current_import)) {
+ if (Z_TYPE(element_name->u.constant) == IS_UNICODE) {
+ len = compound.u - Z_USTRVAL(element_name->u.constant);
+ } else {
+ len = compound.s - Z_STRVAL(element_name->u.constant);
+ }
+ lcname = zend_u_str_case_fold(Z_TYPE(element_name->u.constant), Z_UNIVAL(element_name->u.constant), len , 0, &lcname_len);
+ /* Check if first part of compound name is an import name */
+ if (zend_u_hash_find(CG(current_import), Z_TYPE(element_name->u.constant), lcname, 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_UNILEN(element_name->u.constant) -= len;
+ if (Z_TYPE(element_name->u.constant) == IS_UNICODE) {
+ memmove(Z_USTRVAL(element_name->u.constant), Z_USTRVAL(element_name->u.constant)+len, UBYTES(Z_USTRLEN(element_name->u.constant)+1));
+ } else {
+ 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);
+ *element_name = tmp;
+ efree(lcname.v);
+ return;
+ }
+ efree(lcname.v);
+ }
+
+ if (CG(current_namespace)) {
+ tmp.op_type = IS_CONST;
+ tmp.u.constant = *CG(current_namespace);
+ zval_copy_ctor(&tmp.u.constant);
+ zend_do_build_namespace_name(&tmp, &tmp, element_name TSRMLS_CC);
+ *element_name = tmp;
+ }
+}
+
void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC) /* {{{ */
{
zstr compound;
@@ -1802,62 +1892,74 @@ void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_
int len;
if (Z_TYPE(class_name->u.constant) == IS_UNICODE) {
- compound.u = u_memchr(Z_USTRVAL(class_name->u.constant), ':', Z_USTRLEN(class_name->u.constant));
+ compound.u = u_memchr(Z_USTRVAL(class_name->u.constant), '\\', Z_USTRLEN(class_name->u.constant));
} else {
- compound.s = memchr(Z_STRVAL(class_name->u.constant), ':', Z_STRLEN(class_name->u.constant));
+ compound.s = memchr(Z_STRVAL(class_name->u.constant), '\\', Z_STRLEN(class_name->u.constant));
}
if (compound.v) {
/* This is a compound class name that cotains namespace prefix */
if (Z_TYPE(class_name->u.constant) == IS_UNICODE &&
- Z_USTRVAL(class_name->u.constant)[0] == ':') {
- /* The unicode name has "::" prefix */
- Z_USTRLEN(class_name->u.constant) -= 2;
- memmove(Z_USTRVAL(class_name->u.constant), Z_USTRVAL(class_name->u.constant)+2, UBYTES(Z_USTRLEN(class_name->u.constant)+1));
+ Z_USTRVAL(class_name->u.constant)[0] == '\\') {
+ /* The unicode name has \ prefix */
+ Z_USTRLEN(class_name->u.constant) -= 1;
+ memmove(Z_USTRVAL(class_name->u.constant), Z_USTRVAL(class_name->u.constant)+1, UBYTES(Z_USTRLEN(class_name->u.constant)+1));
Z_USTRVAL(class_name->u.constant) = eurealloc(
Z_USTRVAL(class_name->u.constant),
Z_USTRLEN(class_name->u.constant) + 1);
if (ZEND_FETCH_CLASS_DEFAULT != zend_get_class_fetch_type(Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant), Z_UNILEN(class_name->u.constant))) {
- zend_error(E_COMPILE_ERROR, "'::%R' is a wrong class name", Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant));
+ zend_error(E_COMPILE_ERROR, "'\\%R' is an invalid class name", Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant));
}
} else 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_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant), Z_UNILEN(class_name->u.constant))) {
- zend_error(E_COMPILE_ERROR, "'::%R' is a wrong class name", Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant));
+ zend_error(E_COMPILE_ERROR, "'\\%R' is an invalid class name", Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant));
}
- } else if (CG(current_import)) {
- if (Z_TYPE(class_name->u.constant) == IS_UNICODE) {
- len = compound.u - Z_USTRVAL(class_name->u.constant);
+ } else {
+ if (CG(current_import)) {
+ if (Z_TYPE(class_name->u.constant) == IS_UNICODE) {
+ len = compound.u - Z_USTRVAL(class_name->u.constant);
+ } else {
+ len = compound.s - Z_STRVAL(class_name->u.constant);
+ }
lcname = zend_u_str_case_fold(Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant), len, 0, &lcname_len);
- } else {
- len = compound.s - Z_STRVAL(class_name->u.constant);
- lcname = zend_u_str_case_fold(Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant), len , 0, &lcname_len);
+ /* Check if first part of compound name is an import name */
+ if (zend_u_hash_find(CG(current_import), Z_TYPE(class_name->u.constant), lcname, 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_UNILEN(class_name->u.constant) -= len;
+ if (Z_TYPE(class_name->u.constant) == IS_UNICODE) {
+ memmove(Z_USTRVAL(class_name->u.constant), Z_USTRVAL(class_name->u.constant)+len, UBYTES(Z_USTRLEN(class_name->u.constant)+1));
+ } else {
+ 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.v);
+ return;
+ }
+ efree(lcname.v);
}
- /* Check if first part of compound name is an import name */
- if (zend_u_hash_find(CG(current_import), Z_TYPE(class_name->u.constant), lcname, lcname_len+1, (void**)&ns) == SUCCESS) {
- /* Substitute import name */
+
+ /* Here name is not prefixed with \ and not imported */
+ 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_UNILEN(class_name->u.constant) -= len;
- if (Z_TYPE(class_name->u.constant) == IS_UNICODE) {
- memmove(Z_USTRVAL(class_name->u.constant), Z_USTRVAL(class_name->u.constant)+len, UBYTES(Z_USTRLEN(class_name->u.constant)+1));
- } else {
- 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.v);
}
} else if (CG(current_import) || CG(current_namespace)) {
- /* this is a plain name (without ::) */
+ /* this is a plain name (without \) */
lcname = zend_u_str_case_fold(Z_TYPE(class_name->u.constant), Z_UNIVAL(class_name->u.constant), Z_UNILEN(class_name->u.constant), 0, &lcname_len);
if (CG(current_import) &&
@@ -1867,23 +1969,6 @@ void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_
class_name->u.constant = **ns;
zval_copy_ctor(&class_name->u.constant);
} else if (CG(current_namespace)) {
- zend_class_entry **pce;
-
- if (check_ns_name) {
- /* PHP will need to perform additional cheks at run-time to
- determine if we assume namespace or class name. */
- *fetch_type |= ZEND_FETCH_CLASS_RT_NS_NAME;
- }
-
- if ((CG(compiler_options) & ZEND_COMPILE_IGNORE_INTERNAL_CLASSES) ||
- (zend_u_hash_find(CG(class_table), Z_TYPE(class_name->u.constant), lcname, lcname_len+1, (void**)&pce) == SUCCESS &&
- (*pce)->type == ZEND_INTERNAL_CLASS)) {
- /* There is an internal class with the same name exists.
- PHP will need to perform additional cheks at run-time to
- determine if we assume class in current namespace or
- internal one. */
- *fetch_type |= ZEND_FETCH_CLASS_RT_NS_CHECK;
- }
tmp.op_type = IS_CONST;
tmp.u.constant = *CG(current_namespace);
zval_copy_ctor(&tmp.u.constant);
@@ -1944,7 +2029,7 @@ 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) /* {{{ */
{
zend_uint length;
@@ -1954,20 +2039,36 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC
*result = *prefix;
}
- length = sizeof("::")-1 + Z_UNILEN(result->u.constant) + Z_UNILEN(name->u.constant);
- if (Z_TYPE(result->u.constant) == IS_UNICODE) {
- Z_USTRVAL(result->u.constant) = erealloc(Z_USTRVAL(result->u.constant), UBYTES(length+1));
- Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant)] = ':';
- Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant)+1] = ':';
- memcpy(&Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant) + sizeof("::")-1], Z_STRVAL(name->u.constant), UBYTES(Z_USTRLEN(name->u.constant)+1));
- STR_FREE(Z_USTRVAL(name->u.constant));
+ if(is_class_member) {
+ length = sizeof("::")-1 + Z_UNILEN(result->u.constant) + Z_UNILEN(name->u.constant);
+ if (Z_TYPE(result->u.constant) == IS_UNICODE) {
+ Z_USTRVAL(result->u.constant) = erealloc(Z_USTRVAL(result->u.constant), UBYTES(length+1));
+ Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant)] = ':';
+ Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant)+1] = ':';
+ memcpy(&Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant) + sizeof("::")-1], Z_STRVAL(name->u.constant), UBYTES(Z_USTRLEN(name->u.constant)+1));
+ STR_FREE(Z_USTRVAL(name->u.constant));
+ } else {
+ Z_STRVAL(result->u.constant) = erealloc(Z_STRVAL(result->u.constant), length+1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)], "::", sizeof("::")-1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant) + sizeof("::")-1], Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1);
+ STR_FREE(Z_STRVAL(name->u.constant));
+ }
+ Z_UNILEN(result->u.constant) = length;
} else {
- Z_STRVAL(result->u.constant) = erealloc(Z_STRVAL(result->u.constant), length+1);
- memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)], "::", sizeof("::")-1);
- memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant) + sizeof("::")-1], Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1);
- STR_FREE(Z_STRVAL(name->u.constant));
+ length = sizeof("\\")-1 + Z_UNILEN(result->u.constant) + Z_UNILEN(name->u.constant);
+ if (Z_TYPE(result->u.constant) == IS_UNICODE) {
+ Z_USTRVAL(result->u.constant) = erealloc(Z_USTRVAL(result->u.constant), UBYTES(length+1));
+ Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant)] = '\\';
+ memcpy(&Z_USTRVAL(result->u.constant)[Z_USTRLEN(result->u.constant) + sizeof("\\")-1], Z_USTRVAL(name->u.constant), UBYTES(Z_USTRLEN(name->u.constant)+1));
+ STR_FREE(Z_USTRVAL(name->u.constant));
+ } else {
+ Z_STRVAL(result->u.constant) = erealloc(Z_STRVAL(result->u.constant), length+1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)], "\\", sizeof("\\")-1);
+ memcpy(&Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant) + sizeof("\\")-1], Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)+1);
+ STR_FREE(Z_STRVAL(name->u.constant));
+ }
+ Z_UNILEN(result->u.constant) = length;
}
- Z_UNILEN(result->u.constant) = length;
}
/* }}} */
@@ -1978,23 +2079,6 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
zend_op *opline;
ulong fetch_type = 0;
- if (class_name->op_type == IS_CONST &&
- Z_TYPE(class_name->u.constant) == ZEND_STR_TYPE &&
- Z_UNILEN(class_name->u.constant) == 0) {
- /* namespace::func() not in namespace */
- zval_dtor(&class_name->u.constant);
- if (CG(current_namespace)) {
- znode tmp;
-
- tmp.op_type = IS_CONST;
- tmp.u.constant = *CG(current_namespace);
- zval_copy_ctor(&tmp.u.constant);
- zend_do_build_namespace_name(&tmp, &tmp, method_name TSRMLS_CC);
- *method_name = tmp;
- }
- return zend_do_begin_function_call(method_name, 0 TSRMLS_CC);
- }
-
if (method_name->op_type == IS_CONST) {
zstr lcname;
unsigned int lcname_len;
@@ -2020,13 +2104,12 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
}
opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_INIT_STATIC_METHOD_CALL;
- opline->extended_value = fetch_type & ~ZEND_FETCH_CLASS_RT_NS_NAME;
opline->op1 = class_node;
opline->op2 = *method_name;
if (class_node.op_type == IS_CONST &&
method_name->op_type == IS_CONST) {
- /* Prebuild ns::func name to speedup run-time check.
+ /* Prebuild ns\func name to speedup run-time check.
The additional names are stored in additional OP_DATA opcode. */
zstr nsname, fname, lcname;
unsigned int nsname_len, len, lcname_len;
@@ -2038,23 +2121,12 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
nsname = Z_UNIVAL(class_node.u.constant);
nsname_len = Z_UNILEN(class_node.u.constant);
- if (fetch_type & ZEND_FETCH_CLASS_RT_NS_NAME) {
- /* Remove namespace name */
- if (UG(unicode)) {
- nsname.u = u_memchr(nsname.u, ':', nsname_len) + 2;
- nsname_len -= (nsname.u - Z_USTRVAL(class_node.u.constant));
- } else {
- nsname.s = (char *)memchr(nsname.s, ':', nsname_len) + 2;
- nsname_len -= (nsname.s - Z_STRVAL(class_node.u.constant));
- }
- }
- len = nsname_len + 2 + Z_UNILEN(method_name->u.constant);
+ len = nsname_len + 1 + Z_UNILEN(method_name->u.constant);
if (UG(unicode)) {
fname.u = eumalloc(len + 1);
memcpy(fname.u, nsname.u, UBYTES(nsname_len));
- fname.u[nsname_len] = ':';
- fname.u[nsname_len + 1] = ':';
- memcpy(fname.u + nsname_len + 2,
+ fname.u[nsname_len] = '\\';
+ memcpy(fname.u + nsname_len + 1,
Z_USTRVAL(method_name->u.constant),
UBYTES(Z_USTRLEN(method_name->u.constant)+1));
lcname = zend_u_str_case_fold(IS_UNICODE, fname, len, 1, &lcname_len);
@@ -2063,9 +2135,8 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na
} else {
fname.s = emalloc(len + 1);
memcpy(fname.s, nsname.s, nsname_len);
- fname.s[nsname_len] = ':';
- fname.s[nsname_len + 1] = ':';
- memcpy(fname.s + nsname_len + 2,
+ fname.s[nsname_len] = '\\';
+ memcpy(fname.s + nsname_len + 1,
Z_STRVAL(method_name->u.constant),
Z_STRLEN(method_name->u.constant)+1);
lcname = zend_u_str_case_fold(IS_STRING, fname, len, 1, &lcname_len);
@@ -3524,13 +3595,7 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name
opline->opcode = ZEND_DECLARE_CLASS;
}
- if (Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
- Z_USTRVAL(opline->op2.u.constant) = lcname.u;
- Z_USTRLEN(opline->op2.u.constant) = lcname_len;
- } else {
- Z_STRVAL(opline->op2.u.constant) = lcname.s;
- Z_STRLEN(opline->op2.u.constant) = lcname_len;
- }
+ ZVAL_ZSTRL(&opline->op2.u.constant, Z_TYPE(opline->op2.u.constant), lcname, lcname_len, 0);
zend_u_hash_update(CG(class_table), Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), &new_class_entry, sizeof(zend_class_entry *), NULL);
CG(active_class_entry) = new_class_entry;
@@ -3974,10 +4039,31 @@ void zend_do_end_new_object(znode *result, const znode *new_token, const znode *
static zend_constant* zend_get_ct_const(const zval *const_name, int all_internal_constants_substitution TSRMLS_DC) /* {{{ */
{
zend_constant *c = NULL;
-
- if (zend_u_hash_find(EG(zend_constants), Z_TYPE_P(const_name), Z_UNIVAL_P(const_name), Z_UNILEN_P(const_name)+1, (void **) &c) == FAILURE) {
+ zstr lookup_name;
+
+ lookup_name.v = NULL;
+ if(Z_TYPE_P(const_name) == IS_UNICODE && Z_USTRVAL_P(const_name)[0] == '\\') {
+ lookup_name.u = Z_USTRVAL_P(const_name)+1;
+ } else if(Z_TYPE_P(const_name) == IS_STRING && Z_STRVAL_P(const_name)[0] == '\\') {
+ lookup_name.s = Z_STRVAL_P(const_name)+1;
+ }
+ if(lookup_name.v != NULL) {
+ if (zend_u_hash_find(EG(zend_constants), Z_TYPE_P(const_name), lookup_name, Z_UNILEN_P(const_name), (void **) &c) == FAILURE) {
+ unsigned int lookup_name_len;
+ lookup_name = zend_u_str_case_fold(Z_TYPE_P(const_name), lookup_name, Z_UNILEN_P(const_name)-1, 1, &lookup_name_len);
+
+ if (zend_u_hash_find(EG(zend_constants), Z_TYPE_P(const_name), lookup_name, lookup_name_len+1, (void **) &c)==SUCCESS) {
+ if ((c->flags & CONST_CT_SUBST) && !(c->flags & CONST_CS)) {
+ efree(lookup_name.v);
+ return c;
+ }
+ }
+ efree(lookup_name.v);
+ return NULL;
+ }
+ } else if (zend_u_hash_find(EG(zend_constants), Z_TYPE_P(const_name), Z_UNIVAL_P(const_name), Z_UNILEN_P(const_name)+1, (void **) &c) == FAILURE) {
unsigned int lookup_name_len;
- zstr lookup_name = zend_u_str_case_fold(Z_TYPE_P(const_name), Z_UNIVAL_P(const_name), Z_UNILEN_P(const_name), 1, &lookup_name_len);
+ lookup_name = zend_u_str_case_fold(Z_TYPE_P(const_name), Z_UNIVAL_P(const_name), Z_UNILEN_P(const_name), 1, &lookup_name_len);
if (zend_u_hash_find(EG(zend_constants), Z_TYPE_P(const_name), lookup_name, lookup_name_len+1, (void **) &c)==SUCCESS) {
if ((c->flags & CONST_CT_SUBST) && !(c->flags & CONST_CS)) {
@@ -3997,7 +4083,7 @@ static zend_constant* zend_get_ct_const(const zval *const_name, int all_internal
Z_TYPE(c->value) != IS_CONSTANT &&
Z_TYPE(c->value) != IS_CONSTANT_ARRAY) {
return c;
- }
+ }
return NULL;
}
/* }}} */
@@ -4022,126 +4108,97 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
{
ulong fetch_type = 0;
znode tmp;
+ zend_op *opline;
+ int type;
+ zstr compound;
- if (constant_container &&
- constant_container->op_type == IS_CONST &&
- Z_TYPE(constant_container->u.constant) == ZEND_STR_TYPE &&
- Z_UNILEN(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_TYPE(constant_container->u.constant), Z_UNIVAL(constant_container->u.constant), Z_UNILEN(constant_container->u.constant));
+ if (constant_container) {
+ switch (mode) {
+ case ZEND_CT:
+ type = zend_get_class_fetch_type(Z_TYPE(constant_container->u.constant), Z_UNIVAL(constant_container->u.constant), Z_UNILEN(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_TYPE(constant_container->u.constant), Z_UNIVAL(constant_container->u.constant), Z_UNILEN(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_TYPE(constant_container->u.constant), Z_UNIVAL(constant_container->u.constant), Z_UNILEN(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->extended_value = fetch_type;
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->op1 = *constant_container;
opline->op2 = *constant_name;
*result = opline->result;
+ break;
+ }
+ return;
+ }
+ /* namespace constant */
+ /* only one that did not contain \ from the start can be converted to string if unknown */
+ switch (mode) {
+ case ZEND_CT:
+ if(Z_TYPE(constant_name->u.constant) == IS_UNICODE) {
+ compound.u = u_memchr(Z_USTRVAL(constant_name->u.constant), '\\', Z_USTRLEN(constant_name->u.constant));
+ } else {
+ compound.s = memchr(Z_STRVAL(constant_name->u.constant), '\\', Z_STRLEN(constant_name->u.constant));
+ }
+ /* this is a namespace constant, or an unprefixed constant */
- 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. */
- zstr nsname;
- unsigned int nsname_len;
- unsigned int len;
+ if (zend_constant_ct_subst(result, &constant_name->u.constant, 0 TSRMLS_CC)) {
+ break;
+ }
- 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);
+ zend_resolve_non_class_name(constant_name, check_namespace TSRMLS_CC);
- nsname = Z_UNIVAL(constant_container->u.constant);
- nsname_len = Z_UNILEN(constant_container->u.constant);
- if (fetch_type & ZEND_FETCH_CLASS_RT_NS_NAME) {
- /* Remove namespace name */
- if (Z_TYPE(constant_container->u.constant) == IS_UNICODE) {
- nsname.u = u_memchr(nsname.u, ':', nsname_len) + 2;
- nsname_len -= (nsname.u - Z_USTRVAL(constant_container->u.constant));
- } else {
- nsname.s = (char *)memchr(nsname.s, ':', nsname_len) + 2;
- nsname_len -= (nsname.s - Z_STRVAL(constant_container->u.constant));
- }
- }
+ if(!compound.v) {
+ fetch_type |= IS_CONSTANT_UNQUALIFIED;
+ }
- Z_TYPE(opline->op1.u.constant) = Z_TYPE(constant_container->u.constant);
- Z_UNIVAL(opline->op1.u.constant) = zend_u_str_case_fold(Z_TYPE(constant_container->u.constant), nsname, nsname_len, 0, &len);
- Z_UNILEN(opline->op1.u.constant) = len;
- if (UG(unicode)) {
- Z_USTRVAL(opline->op1.u.constant) = erealloc(Z_USTRVAL(opline->op1.u.constant), UBYTES(Z_USTRLEN(opline->op1.u.constant) + 2 + Z_USTRLEN(constant_name->u.constant) + 1));
- Z_USTRVAL(opline->op1.u.constant)[Z_USTRLEN(opline->op1.u.constant)] = ':';
- Z_USTRVAL(opline->op1.u.constant)[Z_USTRLEN(opline->op1.u.constant)+1] = ':';
- memcpy(Z_USTRVAL(opline->op1.u.constant)+Z_USTRLEN(opline->op1.u.constant)+2, Z_USTRVAL(constant_name->u.constant), UBYTES(Z_USTRLEN(constant_name->u.constant) + 1));
- } else {
- Z_STRVAL(opline->op1.u.constant) = erealloc(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant) + 2 + Z_STRLEN(constant_name->u.constant) + 1);
- Z_STRVAL(opline->op1.u.constant)[Z_STRLEN(opline->op1.u.constant)] = ':';
- Z_STRVAL(opline->op1.u.constant)[Z_STRLEN(opline->op1.u.constant)+1] = ':';
- memcpy(Z_STRVAL(opline->op1.u.constant)+Z_STRLEN(opline->op1.u.constant)+2, Z_STRVAL(constant_name->u.constant), Z_STRLEN(constant_name->u.constant) + 1);
- }
- Z_UNILEN(opline->op1.u.constant) += 2 + Z_UNILEN(constant_name->u.constant);
- opline->extended_value = zend_u_hash_func(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant) + 1);
- }
+ *result = *constant_name;
+ result->u.constant.type = IS_CONSTANT | fetch_type;
+ break;
+ case ZEND_RT:
+ if(Z_TYPE(constant_name->u.constant) == IS_UNICODE) {
+ compound.u = u_memchr(Z_USTRVAL(constant_name->u.constant), '\\', Z_USTRLEN(constant_name->u.constant));
+ } else {
+ compound.s = memchr(Z_STRVAL(constant_name->u.constant), '\\', Z_STRLEN(constant_name->u.constant));
+ }
+
+ zend_resolve_non_class_name(constant_name, check_namespace TSRMLS_CC);
+
+ if(zend_constant_ct_subst(result, &constant_name->u.constant, 1 TSRMLS_CC)) {
+ break;
}
+
+ opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ 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);
+ if(compound.v != NULL) {
+ /* the name is unambiguous */
+ opline->extended_value = 0;
+ } else {
+ opline->extended_value = IS_CONSTANT_UNQUALIFIED;
+ }
+ opline->op2 = *constant_name;
break;
}
+
}
/* }}} */
@@ -5130,6 +5187,9 @@ again:
if (LANG_SCNG(yy_text)[LANG_SCNG(yy_leng)-1] != '>') {
CG(increment_lineno) = 1;
}
+ if (CG(has_bracketed_namespaces) && !CG(in_namespace)) {
+ goto again;
+ }
retval = ';'; /* implicit ; */
break;
case T_OPEN_TAG_WITH_ECHO:
@@ -5367,7 +5427,7 @@ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRM
*result = *prefix;
if (Z_TYPE(result->u.constant) == ZEND_STR_TYPE &&
Z_UNILEN(result->u.constant) == 0) {
- /* namespace:: */
+ /* namespace\ */
if (CG(current_namespace)) {
znode tmp;
@@ -5385,16 +5445,33 @@ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRM
Z_UNILEN(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);
}
/* }}} */
-void zend_do_namespace(const znode *name TSRMLS_DC) /* {{{ */
+void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC) /* {{{ */
{
unsigned int lcname_len;
zstr lcname;
- if (CG(active_op_array)->last > 0) {
+ /* handle mixed syntax declaration or nested namespaces */
+ if (!CG(has_bracketed_namespaces)) {
+ if (CG(current_namespace)) {
+ /* previous namespace declarations were unbracketed */
+ if (with_bracket) {
+ zend_error(E_COMPILE_ERROR, "Cannot mix bracketed namespace declarations with unbracketed namespace declarations");
+ }
+ }
+ } else {
+ /* previous namespace declarations were bracketed */
+ if (!with_bracket) {
+ zend_error(E_COMPILE_ERROR, "Cannot mix bracketed namespace declarations with unbracketed namespace declarations");
+ } else if (CG(current_namespace) || CG(in_namespace)) {
+ zend_error(E_COMPILE_ERROR, "Namespace declarations cannot be nested");
+ }
+ }
+
+ if (((!with_bracket && !CG(current_namespace)) || (with_bracket && !CG(has_bracketed_namespaces))) && CG(active_op_array)->last > 0) {
/* ignore ZEND_EXT_STMT and ZEND_TICKS */
int num = CG(active_op_array)->last;
while (num > 0 &&
@@ -5402,31 +5479,43 @@ void zend_do_namespace(const znode *name TSRMLS_DC) /* {{{ */
CG(active_op_array)->opcodes[num-1].opcode == ZEND_TICKS)) {
--num;
}
- if (!CG(current_namespace) && num > 0) {
+ if (num > 0) {
zend_error(E_COMPILE_ERROR, "Namespace declaration statement has to be the very first statement in the script");
}
}
- lcname = zend_u_str_case_fold(Z_TYPE(name->u.constant), Z_UNIVAL(name->u.constant), Z_UNILEN(name->u.constant), 0, &lcname_len);
- if (((lcname_len == sizeof("self")-1) &&
- ZEND_U_EQUAL(Z_TYPE(name->u.constant), lcname, lcname_len, "self", sizeof("self")-1)) ||
- ((lcname_len == sizeof("parent")-1) &&
- ZEND_U_EQUAL(Z_TYPE(name->u.constant), lcname, lcname_len, "parent", sizeof("parent")-1))) {
- zend_error(E_COMPILE_ERROR, "Cannot use '%R' as namespace name", Z_TYPE(name->u.constant), Z_UNIVAL(name->u.constant));
+ CG(in_namespace) = 1;
+ if (with_bracket) {
+ CG(has_bracketed_namespaces) = 1;
}
- efree(lcname.v);
- if (CG(current_namespace)) {
- zval_dtor(CG(current_namespace));
+ if(name) {
+ lcname = zend_u_str_case_fold(Z_TYPE(name->u.constant), Z_UNIVAL(name->u.constant), Z_UNILEN(name->u.constant), 0, &lcname_len);
+ if (((lcname_len == sizeof("self")-1) &&
+ ZEND_U_EQUAL(Z_TYPE(name->u.constant), lcname, lcname_len, "self", sizeof("self")-1)) ||
+ ((lcname_len == sizeof("parent")-1) &&
+ ZEND_U_EQUAL(Z_TYPE(name->u.constant), lcname, lcname_len, "parent", sizeof("parent")-1))) {
+ zend_error(E_COMPILE_ERROR, "Cannot use '%R' as namespace name", Z_TYPE(name->u.constant), Z_UNIVAL(name->u.constant));
+ }
+ efree(lcname.v);
+
+ if (CG(current_namespace)) {
+ zval_dtor(CG(current_namespace));
+ } else {
+ ALLOC_ZVAL(CG(current_namespace));
+ }
+ *CG(current_namespace) = name->u.constant;
} else {
- ALLOC_ZVAL(CG(current_namespace));
+ if (CG(current_namespace)) {
+ zval_dtor(CG(current_namespace));
+ FREE_ZVAL(CG(current_namespace));
+ CG(current_namespace) = NULL;
+ }
}
if (CG(current_import)) {
zend_hash_destroy(CG(current_import));
efree(CG(current_import));
CG(current_import) = NULL;
}
-
- *CG(current_namespace) = name->u.constant;
}
/* }}} */
@@ -5448,11 +5537,11 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
if (new_name) {
name = &new_name->u.constant;
} else {
- /* The form "use A::B" is eqivalent to "use A::B as B".
+ /* 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;
if (UG(unicode)) {
- UChar *p = u_memrchr(Z_USTRVAL_P(ns), ':', Z_USTRLEN_P(ns));
+ UChar *p = u_memrchr(Z_USTRVAL_P(ns), '\\', Z_USTRLEN_P(ns));
if (p) {
ZVAL_UNICODE(name, p+1, 1);
} else {
@@ -5461,7 +5550,7 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
warn = !is_global;
}
} else {
- char *p = zend_memrchr(Z_STRVAL_P(ns), ':', Z_STRLEN_P(ns));
+ char *p = zend_memrchr(Z_STRVAL_P(ns), '\\', Z_STRLEN_P(ns));
if (p) {
ZVAL_STRING(name, p+1, 1);
} else {
@@ -5487,21 +5576,19 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{
zstr ns_name = zend_u_str_case_fold(Z_TYPE_P(CG(current_namespace)), Z_UNIVAL_P(CG(current_namespace)), Z_UNILEN_P(CG(current_namespace)), 0, &ns_name_len);
if (Z_TYPE_P(CG(current_namespace)) == IS_UNICODE) {
- ns_name.u = eurealloc(ns_name.u, ns_name_len + 2 + lcname_len + 1);
- ns_name.u[ns_name_len] = ':';
- ns_name.u[ns_name_len+1] = ':';
- memcpy(ns_name.u + ns_name_len + 2, lcname.u, UBYTES(lcname_len + 1));
+ ns_name.u = eurealloc(ns_name.u, ns_name_len + 1 + lcname_len + 1);
+ ns_name.u[ns_name_len] = '\\';
+ memcpy(ns_name.u + ns_name_len + 1, lcname.u, UBYTES(lcname_len + 1));
} else {
- ns_name.s = erealloc(ns_name.s, ns_name_len + 2 + lcname_len + 1);
- ns_name.s[ns_name_len] = ':';
- ns_name.s[ns_name_len+1] = ':';
- memcpy(ns_name.s + ns_name_len + 2, lcname.s, lcname_len + 1);
+ ns_name.s = erealloc(ns_name.s, ns_name_len + 1 + lcname_len + 1);
+ ns_name.s[ns_name_len] = '\\';
+ memcpy(ns_name.s + ns_name_len + 1, lcname.s, lcname_len + 1);
}
- if (zend_u_hash_exists(CG(class_table), Z_TYPE_P(CG(current_namespace)), ns_name, ns_name_len + 2 + lcname_len + 1)) {
+ if (zend_u_hash_exists(CG(class_table), Z_TYPE_P(CG(current_namespace)), ns_name, ns_name_len + 1 + lcname_len + 1)) {
unsigned int tmp_len;
zstr tmp = zend_u_str_case_fold(Z_TYPE_P(ns), Z_UNIVAL_P(ns), Z_UNILEN_P(ns), 0, &tmp_len);
- if (tmp_len != ns_name_len + 2 + lcname_len ||
+ if (tmp_len != ns_name_len + 1 + lcname_len ||
memcmp(tmp.v, ns_name.v, UG(unicode)?UBYTES(tmp_len):tmp_len)) {
zend_error(E_COMPILE_ERROR, "Cannot use %R as %R because the name is already in use", Z_TYPE_P(ns), Z_UNIVAL_P(ns), Z_TYPE_P(name), Z_UNIVAL_P(name));
}
@@ -5545,7 +5632,7 @@ void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC) /* {{{ */
}
if (CG(current_namespace)) {
- /* Prefix constant name with name of current namespace */
+ /* Prefix constant name with name of current namespace, lowercased */
znode tmp;
zstr lcname;
uint lcname_len;
@@ -5567,6 +5654,30 @@ void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC) /* {{{ */
}
/* }}} */
+void zend_verify_namespace(TSRMLS_D) /* {{{ */
+{
+ if (CG(has_bracketed_namespaces) && !CG(in_namespace)) {
+ zend_error(E_COMPILE_ERROR, "No code may exist outside of namespace {}");
+ }
+}
+/* }}} */
+
+void zend_do_end_namespace(TSRMLS_D) /* {{{ */
+{
+ CG(in_namespace) = 0;
+ if (CG(current_namespace)) {
+ zval_dtor(CG(current_namespace));
+ FREE_ZVAL(CG(current_namespace));
+ CG(current_namespace) = NULL;
+ }
+ if (CG(current_import)) {
+ zend_hash_destroy(CG(current_import));
+ efree(CG(current_import));
+ CG(current_import) = NULL;
+ }
+}
+/* }}} */
+
void zend_do_end_compilation(TSRMLS_D) /* {{{ */
{
if (CG(current_namespace)) {
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index 83d9cb5bb3..3560c67e11 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -346,6 +346,7 @@ void init_compiler(TSRMLS_D);
void shutdown_compiler(TSRMLS_D);
void zend_init_compiler_data_structures(TSRMLS_D);
+void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC);
void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC);
extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
@@ -435,7 +436,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);
@@ -544,7 +545,9 @@ void zend_do_abstract_method(const znode *function_name, znode *modifiers, const
void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC);
void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRMLS_DC);
-void zend_do_namespace(const znode *name TSRMLS_DC);
+void zend_do_begin_namespace(const znode *name, zend_bool with_brackets TSRMLS_DC);
+void zend_do_end_namespace(TSRMLS_D);
+void zend_verify_namespace(TSRMLS_D);
void zend_do_use(znode *name, znode *new_name, int is_global TSRMLS_DC);
void zend_do_end_compilation(TSRMLS_D);
@@ -658,9 +661,6 @@ int zendlex(znode *zendlval TSRMLS_DC);
#define ZEND_FETCH_CLASS_INTERFACE 6
#define ZEND_FETCH_CLASS_STATIC 7
#define ZEND_FETCH_CLASS_MASK 0x0f
-#define ZEND_FETCH_CLASS_NO_NORMALIZE 0x10
-#define ZEND_FETCH_CLASS_RT_NS_CHECK 0x20
-#define ZEND_FETCH_CLASS_RT_NS_NAME 0x40
#define ZEND_FETCH_CLASS_NO_AUTOLOAD 0x80
#define ZEND_FETCH_CLASS_SILENT 0x0100
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index a617adcc7c..aaa42437fd 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -322,30 +322,26 @@ ZEND_API int zend_u_get_constant_ex(zend_uchar type, zstr name, uint name_len, z
zend_constant *c;
int retval = 1;
zstr colon;
+ zend_class_entry *ce = NULL;
+ zval **ret_constant;
- /* Skip leading :: */
+ /* Skip leading \ */
if (type == IS_UNICODE &&
- name.u[0] == ':' &&
- name.u[1] == ':') {
- name.u += 2;
- name_len -= 2;
- flags &= ZEND_FETCH_CLASS_SILENT;
+ name.u[0] == '\\') {
+ name.u += 1;
+ name_len -= 1;
} else if (type == IS_STRING &&
- name.s[0] == ':' &&
- name.s[1] == ':') {
- name.s += 2;
- name_len -= 2;
- flags &= ZEND_FETCH_CLASS_SILENT;
+ name.s[0] == '\\') {
+ name.s += 1;
+ name_len -= 1;
}
if ((type == IS_UNICODE && (colon.u = u_memrchr(name.u, ':', name_len)) && colon.u > name.u && *(colon.u-1) == ':') ||
(!type == IS_STRING && (colon.s = zend_memrchr(name.s, ':', name_len))&& colon.s > name.s && *(colon.s-1) == ':')) {
/* compound constant name */
- zend_class_entry *ce = NULL;
int class_name_len = (type == IS_UNICODE) ? colon.u-name.u-1 : colon.s-name.s-1;
int const_name_len = name_len - class_name_len - 2;
zstr constant_name, class_name;
- zval **ret_constant;
zstr lcname;
unsigned int lcname_len;
@@ -382,6 +378,7 @@ ZEND_API int zend_u_get_constant_ex(zend_uchar type, zstr name, uint name_len, z
efree(lcname.v);
} else if (lcname_len == sizeof("parent")-1 &&
ZEND_U_EQUAL(type, lcname, lcname_len, "parent", sizeof("parent")-1)) {
+ efree(lcname.v);
if (!scope) {
zend_error(E_ERROR, "Cannot access parent:: when no class scope is active");
} else if (!scope->parent) {
@@ -389,85 +386,82 @@ ZEND_API int zend_u_get_constant_ex(zend_uchar type, zstr name, uint name_len, z
} else {
ce = scope->parent;
}
- efree(lcname.v);
} else if (lcname_len == sizeof("static")-1 &&
ZEND_U_EQUAL(type, lcname, lcname_len, "static", sizeof("static")-1)) {
+ efree(lcname.v);
if (EG(called_scope)) {
ce = EG(called_scope);
} else {
zend_error(E_ERROR, "Cannot access static:: when no class scope is active");
}
- efree(lcname.v);
} else {
- /* Check for namespace constant */
- zstr nsname;
- unsigned int nsname_len;
-
- /* Concatenate lowercase namespace name and constant name */
- if (type == IS_UNICODE) {
- lcname.u = erealloc(lcname.u, UBYTES(lcname_len + 2 + const_name_len + 1));
- lcname.u[lcname_len] = ':';
- lcname.u[lcname_len+1] = ':';
- memcpy(lcname.u+lcname_len+2, constant_name.u, UBYTES(const_name_len + 1));
- } else {
- lcname.s = erealloc(lcname.s, lcname_len + 2 + const_name_len + 1);
- lcname.s[lcname_len] = ':';
- lcname.s[lcname_len+1] = ':';
- memcpy(lcname.s+lcname_len+2, constant_name.s, const_name_len + 1);
- }
- lcname_len += 2 + const_name_len;
-
- nsname = lcname;
- nsname_len = lcname_len;
- if (flags & ZEND_FETCH_CLASS_RT_NS_NAME) {
- /* Remove namespace name */
- if (type == IS_UNICODE) {
- nsname.u = u_memchr(nsname.u, ':', nsname_len) + 2;
- nsname_len -= (nsname.u - lcname.u);
- } else {
- nsname.s = (char *)memchr(nsname.s, ':', nsname_len) + 2;
- nsname_len -= (nsname.s - lcname.s);
- }
- }
-
- if (zend_u_hash_find(EG(zend_constants), type, nsname, nsname_len+1, (void **) &c) == SUCCESS) {
- efree(lcname.v);
- efree(class_name.v);
- *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.v);
-
- if ((flags & IS_CONSTANT_RT_NS_CHECK) == 0) {
- /* Check for class */
- ce = zend_u_fetch_class(type, class_name, class_name_len, flags TSRMLS_CC);
- }
+ ce = zend_u_fetch_class(type, class_name, class_name_len, flags TSRMLS_CC);
}
if (retval && ce) {
if (zend_u_hash_find(&ce->constants_table, type, 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.v);
- return zend_u_get_constant(type, name, name_len, result TSRMLS_CC);
- }
if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) {
- zend_error(E_ERROR, "Class '%R' not found", type, class_name);
+ zend_error(E_ERROR, "Undefined class constant '%R::%R'", type, class_name, type, constant_name);
}
}
+ } else if (!ce) {
retval = 0;
}
efree(class_name.v);
+ goto finish;
+ }
+ /* non-class constant */
+ if(type == IS_UNICODE) {
+ colon.u = u_memrchr(name.u, '\\', name_len);
+ } else {
+ colon.s = zend_memrchr(name.s, '\\', name_len);
+ }
+ if(colon.v != NULL) {
+ /* compound constant name */
+ zstr lcname, constant_name;
+ unsigned int lcname_len, prefix_len, const_name_len;
+
+ if(type == IS_UNICODE) {
+ prefix_len = colon.u - name.u;
+ constant_name.u = colon.u+1;
+ } else {
+ prefix_len = colon.s - name.s;
+ constant_name.s = colon.s+1;
+ }
+ const_name_len = name_len - prefix_len - 1;
+
+ lcname = zend_u_str_case_fold(type, name, prefix_len, 0, &lcname_len);
+ if(type == IS_UNICODE) {
+ lcname.u = erealloc(lcname.u, UBYTES(const_name_len + 1 + lcname_len + 1));
+ lcname.u[lcname_len] = '\\';
+ memcpy(lcname.u+lcname_len+1, constant_name.u, UBYTES(const_name_len + 1));
+ } else {
+ lcname.s = erealloc(lcname.s, const_name_len + 1 + lcname_len + 1);
+ lcname.s[lcname_len] = '\\';
+ memcpy(lcname.s+lcname_len+1, constant_name.s, const_name_len + 1);
+ }
+
+ if (zend_u_hash_find(EG(zend_constants), type, lcname, const_name_len + 1 + lcname_len + 1, (void **) &c) == SUCCESS) {
+ efree(lcname.v);
+ *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.v);
+ /* name requires runtime resolution, need to check non-namespaced name */
+ if ((flags & IS_CONSTANT_UNQUALIFIED) != 0) {
+ name = constant_name;
+ name_len = const_name_len;
+ return zend_u_get_constant(type, name, name_len, result TSRMLS_CC);
+ }
+ retval = 0;
+finish:
if (retval) {
zval_update_constant_ex(ret_constant, (void*)1, ce TSRMLS_CC);
*result = **ret_constant;
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 2ce48737c8..22f0d71cac 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -530,45 +530,79 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
is_ref = Z_ISREF_P(p);
if (!zend_u_get_constant_ex(ZEND_STR_TYPE, Z_UNIVAL_P(p), Z_UNILEN_P(p), &const_value, scope, Z_REAL_TYPE_P(p) TSRMLS_CC)) {
+ zstr actual = Z_UNIVAL_P(p);
if ((UG(unicode) && (colon.u = u_memrchr(Z_USTRVAL_P(p), ':', Z_USTRLEN_P(p))) && colon.u > Z_USTRVAL_P(p) && *(colon.u - 1) == ':') ||
(!UG(unicode) && (colon.s = zend_memrchr(Z_STRVAL_P(p), ':', Z_STRLEN_P(p))) && colon.s > Z_STRVAL_P(p) && *(colon.s - 1) == ':')
) {
- if (UG(unicode)) {
- colon.u++;
+ zend_error(E_ERROR, "Undefined class constant '%v'", actual);
+ } else {
+ zstr save = actual, slash;
+ int actual_len = Z_UNILEN_P(p);
+ if(ZEND_STR_TYPE == IS_UNICODE) {
+ slash.u = u_memrchr(actual.u, '\\', actual_len);
} else {
- colon.s++;
+ slash.s = zend_memrchr(actual.s, '\\', actual_len);
}
- if ((Z_TYPE_P(p) & IS_CONSTANT_RT_NS_CHECK) == 0) {
- zend_error(E_ERROR, "Undefined class constant '%v'", colon);
- } else if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) {
- zend_error(E_ERROR, "Undefined constant '%v'", Z_STRVAL_P(p));
+ if ((Z_TYPE_P(p) & IS_CONSTANT_UNQUALIFIED) && slash.v != NULL) {
+ if(ZEND_STR_TYPE == IS_UNICODE) {
+ actual.u = slash.u + 1;
+ actual_len -= (actual.u - Z_USTRVAL_P(p));
+ } else {
+ actual.s = slash.s + 1;
+ actual_len -= (actual.s - Z_STRVAL_P(p));
+ }
+
+ if (inline_change) {
+ int type = Z_TYPE_P(p);
+ ZVAL_ZSTRL(p, ZEND_STR_TYPE, actual, actual_len, 1);
+ Z_TYPE_P(p) = type;
+ actual = Z_UNIVAL_P(p);
+ }
}
- if (UG(unicode)) {
- Z_USTRLEN_P(p) -= ((colon.u - Z_USTRVAL_P(p)));
+ if(ZEND_STR_TYPE == IS_UNICODE && actual.u[0] == '\\') {
if (inline_change) {
- colon.u = eustrndup(colon.u, Z_USTRLEN_P(p));
- efree(Z_USTRVAL_P(p));
- Z_USTRVAL_P(p) = colon.u;
+ memmove(Z_USTRVAL_P(p), Z_USTRVAL_P(p)+1, UBYTES(Z_USTRLEN_P(p)));
+ --Z_USTRLEN_P(p);
} else {
- Z_USTRVAL_P(p) = colon.u;
+ ++actual.u;
}
- } else {
- Z_STRLEN_P(p) -= ((colon.s - Z_STRVAL_P(p)));
+ --actual_len;
+ } else if(ZEND_STR_TYPE == IS_STRING && actual.s[0] == '\\') {
if (inline_change) {
- colon.s = estrndup(colon.s, Z_STRLEN_P(p));
- efree(Z_STRVAL_P(p));
- Z_STRVAL_P(p) = colon.s;
+ memmove(Z_STRVAL_P(p), Z_STRVAL_P(p)+1, Z_STRLEN_P(p));
+ --Z_STRLEN_P(p);
} else {
- Z_STRVAL_P(p) = colon.s;
+ ++actual.s;
}
+ --actual_len;
+ }
+ if ((Z_TYPE_P(p) & IS_CONSTANT_UNQUALIFIED) == 0) {
+ int fix_save = 0;
+ if (ZEND_STR_TYPE == IS_UNICODE && save.u[0] == '\\') {
+ save.u++;
+ fix_save = 1;
+ } else if (ZEND_STR_TYPE == IS_STRING && save.s[0] == '\\') {
+ save.s++;
+ fix_save = 1;
+ }
+ zend_error(E_ERROR, "Undefined constant '%v'", save);
+ if (fix_save) {
+ (ZEND_STR_TYPE == IS_UNICODE)?--save.u:--save.s;
+ }
+ if (inline_change) {
+ efree(save.v);
+ }
+ save.v = NULL;
+ }
+ if (inline_change && save.v && save.v != actual.v) {
+ efree(save.v);
+ }
+ zend_error(E_NOTICE, "Use of undefined constant %v - assumed '%v'", actual, actual);
+ Z_TYPE_P(p) = UG(unicode) ? IS_UNICODE : IS_STRING;
+ if (!inline_change) {
+ ZVAL_ZSTRL(p, Z_TYPE_P(p), actual, actual_len, 0);
+ zval_copy_ctor(p);
}
- } else if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) {
- zend_error(E_ERROR, "Undefined constant '%v'", Z_UNIVAL_P(p));
- }
- zend_error(E_NOTICE, "Use of undefined constant %v - assumed '%v'", Z_UNIVAL_P(p), Z_UNIVAL_P(p));
- Z_TYPE_P(p) = UG(unicode) ? IS_UNICODE : IS_STRING;
- if (!inline_change) {
- zval_copy_ctor(p);
}
} else {
if (inline_change) {
@@ -614,28 +648,50 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco
}
if (!zend_u_get_constant_ex(ZEND_STR_TYPE, str_index, str_index_len - 3, &const_value, scope, (UG(unicode) ? str_index.u[str_index_len-2] : str_index.s[str_index_len-2]) TSRMLS_CC)) {
if (UG(unicode)) {
+ UChar *actual, *save = str_index.u;
if ((colon.u = u_memrchr(str_index.u, ':', str_index_len - 3)) && colon.u > str_index.u && *(colon.u-1) == ':') {
- if ((str_index.u[str_index_len - 2] & IS_CONSTANT_RT_NS_CHECK) == 0) {
- zend_error(E_ERROR, "Undefined class constant '%v'", str_index);
- } else if (str_index.u[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) {
- zend_error(E_ERROR, "Undefined constant '%v'", str_index);
- }
+ zend_error(E_ERROR, "Undefined class constant '%v'", str_index);
str_index_len -= ((colon.u - str_index.u) + 1);
str_index.u = colon.u + 1;
- } else if (str_index.u[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) {
- zend_error(E_ERROR, "Undefined constant '%v'", str_index);
+ } else {
+ if (str_index.u[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) {
+ actual = (UChar *)u_memrchr(str_index.u, '\\', str_index_len - 3) + 1;
+ str_index_len -= (actual - str_index.u);
+ str_index.u = actual;
+ }
+ if (str_index.u[0] == '\\') {
+ ++str_index.u;
+ --str_index_len;
+ }
+ if (save[0] == '\\') {
+ ++save;
+ }
+ if ((str_index.u[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) == 0) {
+ zend_error(E_ERROR, "Undefined constant '%r'", save);
+ }
}
} else {
+ char *actual, *save = str_index.s;
if ((colon.s = zend_memrchr(str_index.s, ':', str_index_len - 3)) && colon.s > str_index.s && *(colon.s-1) == ':') {
- if ((str_index.s[str_index_len - 2] & IS_CONSTANT_RT_NS_CHECK) == 0) {
- zend_error(E_ERROR, "Undefined class constant '%v'", str_index);
- } else if (str_index.s[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) {
- zend_error(E_ERROR, "Undefined constant '%v'", str_index);
- }
+ zend_error(E_ERROR, "Undefined class constant '%v'", str_index);
str_index_len -= ((colon.s - str_index.s) + 1);
str_index.s = colon.s + 1;
- } else if (str_index.s[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) {
- zend_error(E_ERROR, "Undefined constant '%v'", str_index);
+ } else {
+ if (str_index.s[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) {
+ actual = (char *)zend_memrchr(str_index.s, '\\', str_index_len - 3) + 1;
+ str_index_len -= (actual - str_index.s);
+ str_index.s = actual;
+ }
+ if (str_index.s[0] == '\\') {
+ ++str_index.s;
+ --str_index_len;
+ }
+ if (save[0] == '\\') {
+ ++save;
+ }
+ if ((str_index.s[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) == 0) {
+ zend_error(E_ERROR, "Undefined constant '%s'", save);
+ }
}
}
zend_error(E_NOTICE, "Use of undefined constant %v - assumed '%v'", str_index, str_index);
@@ -1042,19 +1098,15 @@ ZEND_API int zend_u_lookup_class_ex(zend_uchar type, zstr name, int name_length,
lc_name_len = name_length;
}
- /* Ignore leading "::" */
+ /* Ignore leading "\" */
if (type == IS_UNICODE &&
- lc_name.u[0] == ':' &&
- lc_name.u[1] == ':'
- ) {
- lc_name.u += 2;
- lc_name_len -= 2;
+ lc_name.u[0] == '\\') {
+ lc_name.u += 1;
+ lc_name_len -= 1;
} else if (type == IS_STRING &&
- lc_name.s[0] == ':' &&
- lc_name.s[1] == ':'
- ) {
- lc_name.s += 2;
- lc_name_len -= 2;
+ lc_name.s[0] == '\\') {
+ lc_name.s += 1;
+ lc_name_len -= 1;
}
if (zend_u_hash_find(EG(class_table), type, lc_name, lc_name_len + 1, (void **) ce) == SUCCESS) {
@@ -1090,7 +1142,7 @@ ZEND_API int zend_u_lookup_class_ex(zend_uchar type, zstr name, int name_length,
ALLOC_ZVAL(class_name_ptr);
INIT_PZVAL(class_name_ptr);
- ZVAL_ZSTRL(class_name_ptr, type, autoload_name, lc_name_len, 1);
+ ZVAL_ZSTRL(class_name_ptr, type, autoload_name, name_length, 1);
args[0] = &class_name_ptr;
@@ -1547,8 +1599,6 @@ ZEND_API zend_class_entry *zend_u_fetch_class(zend_uchar type, zstr class_name,
{
zend_class_entry **pce;
int use_autoload = (fetch_type & ZEND_FETCH_CLASS_NO_AUTOLOAD) ? 0 : 1;
- int do_normalize = (fetch_type & ZEND_FETCH_CLASS_NO_NORMALIZE) ? 0 : 1;
- int rt_ns_check = (fetch_type & ZEND_FETCH_CLASS_RT_NS_CHECK) ? 1 : 0;
int silent = (fetch_type & ZEND_FETCH_CLASS_SILENT) != 0;
zstr lcname = class_name;
@@ -1575,10 +1625,6 @@ check_fetch_type:
}
return EG(called_scope);
case ZEND_FETCH_CLASS_AUTO: {
- if (do_normalize) {
- lcname = zend_u_str_case_fold(type, class_name, class_name_len, 1, &class_name_len);
- do_normalize = 0; /* we've normalized it already, don't do it twice */
- }
fetch_type = zend_get_class_fetch_type(type, lcname, class_name_len);
if (fetch_type!=ZEND_FETCH_CLASS_DEFAULT) {
if (lcname.v != class_name.v) {
@@ -1590,46 +1636,8 @@ check_fetch_type:
break;
}
- if (do_normalize) {
- lcname = zend_u_str_case_fold(type, class_name, class_name_len, 1, &class_name_len);
- }
-
- if (zend_u_lookup_class_ex(type, lcname, class_name_len, ((!rt_ns_check && use_autoload) ? class_name : NULL_ZSTR), 0, &pce TSRMLS_CC) == FAILURE) {
- if (rt_ns_check) {
- /* Check if we have internal class with the same name */
- zstr php_name = NULL_ZSTR;
- uint php_name_len;
-
- if (type == IS_UNICODE) {
- php_name.u = u_memrchr(lcname.u, ':', class_name_len);
- if (php_name.u) {
- php_name.u++;
- php_name_len = class_name_len-(php_name.u-lcname.u);
- }
- } else {
- php_name.s = zend_memrchr(lcname.s, ':', class_name_len);
- if (php_name.s) {
- php_name.s++;
- php_name_len = class_name_len-(php_name.s-lcname.s);
- }
- }
- if (php_name.v &&
- zend_u_hash_find(EG(class_table), type, php_name, php_name_len + 1, (void **) &pce) == SUCCESS &&
- (*pce)->type == ZEND_INTERNAL_CLASS
- ) {
- if (lcname.v != class_name.v) {
- efree(lcname.v);
- }
- return *pce;
- }
- }
+ if (zend_u_lookup_class_ex(type, lcname, class_name_len, (use_autoload ? class_name : NULL_ZSTR), 1, &pce TSRMLS_CC) == FAILURE) {
if (use_autoload) {
- if (rt_ns_check && zend_u_lookup_class_ex(type, lcname, class_name_len, class_name, 0, &pce TSRMLS_CC) == SUCCESS) {
- if (lcname.v != class_name.v) {
- efree(lcname.v);
- }
- return *pce;
- }
if (!silent && !EG(exception)) {
if (fetch_type == ZEND_FETCH_CLASS_INTERFACE) {
zend_error(E_ERROR, "Interface '%R' not found", type, class_name);
@@ -1638,16 +1646,9 @@ check_fetch_type:
}
}
}
- if (lcname.v != class_name.v) {
- efree(lcname.v);
- }
return NULL;
- } else {
- if (lcname.v != class_name.v) {
- efree(lcname.v);
- }
- return *pce;
}
+ return *pce;
}
/* }}} */
diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h
index ea26e3f210..4309cd0fe6 100644
--- a/Zend/zend_globals.h
+++ b/Zend/zend_globals.h
@@ -139,6 +139,8 @@ struct _zend_compiler_globals {
zval *current_namespace;
HashTable *current_import;
+ zend_bool in_namespace;
+ zend_bool has_bracketed_namespaces;
#ifdef ZTS
HashTable **static_members;
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 1e872547c7..421450ed36 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -149,6 +149,7 @@
%token T_NAMESPACE
%token T_NS_C
%token T_DIR
+%token T_NS_SEPARATOR
%% /* Rules */
@@ -163,17 +164,21 @@ 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:
- statement
- | function_declaration_statement { zend_do_early_binding(TSRMLS_C); }
- | class_declaration_statement { zend_do_early_binding(TSRMLS_C); }
+ statement { zend_verify_namespace(TSRMLS_C); }
+ | function_declaration_statement { zend_verify_namespace(TSRMLS_C); zend_do_early_binding(TSRMLS_C); }
+ | class_declaration_statement { zend_verify_namespace(TSRMLS_C); zend_do_early_binding(TSRMLS_C); }
| T_HALT_COMPILER '(' ')' ';' { zend_do_halt_compiler_register(TSRMLS_C); YYACCEPT; }
- | T_NAMESPACE namespace_name ';' { zend_do_namespace(&$2 TSRMLS_CC); }
- | T_USE use_declarations ';'
- | constant_declaration ';'
+ | T_NAMESPACE namespace_name ';' { zend_do_begin_namespace(&$2, 0 TSRMLS_CC); }
+ | T_NAMESPACE namespace_name '{' { zend_do_begin_namespace(&$2, 1 TSRMLS_CC); }
+ top_statement_list '}' { zend_do_end_namespace(TSRMLS_C); }
+ | T_NAMESPACE '{' { zend_do_begin_namespace(NULL, 1 TSRMLS_CC); }
+ top_statement_list '}' { zend_do_end_namespace(TSRMLS_C); }
+ | T_USE use_declarations ';' { zend_verify_namespace(TSRMLS_C); }
+ | constant_declaration ';' { zend_verify_namespace(TSRMLS_C); }
;
use_declarations:
@@ -184,8 +189,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 namespace_name { zend_do_use(&$2, NULL, 1 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); }
;
constant_declaration:
@@ -669,12 +674,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_TEXT(&$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);}
@@ -693,18 +701,16 @@ function_call:
;
class_name:
- T_STRING { $$ = $1; }
- | T_STATIC { $$.op_type = IS_CONST; ZVAL_ASCII_STRINGL(&$$.u.constant, "static", sizeof("static")-1, 1);}
- | T_NAMESPACE { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.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_ASCII_STRINGL(&$$.u.constant, "static", sizeof("static")-1, 1);}
+ | namespace_name { $$ = $1; }
+ | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.u.constant); zend_do_build_full_name(NULL, &$$, &$2, 0 TSRMLS_CC); }
;
fully_qualified_class_name:
- T_STRING { $$ = $1; }
- | T_NAMESPACE { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.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_TEXT(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.u.constant); zend_do_build_full_name(NULL, &$$, &$2, 0 TSRMLS_CC); }
;
@@ -774,8 +780,9 @@ start_heredoc:
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_TEXT(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_CT, 0 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.u.constant); zend_do_build_full_name(NULL, &$$, &$2, 0 TSRMLS_CC); $2 = $$;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; }
@@ -787,10 +794,11 @@ static_class_constant:
;
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_TEXT(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_RT, 0 TSRMLS_CC); }
+ | T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_TEXT(&$$.u.constant); zend_do_build_full_name(NULL, &$$, &$2, 0 TSRMLS_CC); $2 = $$; zend_do_fetch_constant(&$$, NULL, &$2, ZEND_RT, 0 TSRMLS_CC); }
| common_scalar { $$ = $1; }
| '"' { CG(literal_type) = UG(unicode)?IS_UNICODE:IS_STRING; } encaps_list '"' { $$ = $3; }
| T_BINARY_DOUBLE { CG(literal_type) = IS_STRING; } encaps_list '"' { $$ = $3; }
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index c8048137e9..7948d19c27 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 Aug 15 14:35:03 2008 */
+/* Generated by re2c 0.13.5 on Tue Dec 2 17:02:51 2008 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -594,7 +594,7 @@ ZEND_API int zend_convert_scanner_output(UConverter *conv, UChar **target, int *
int zend_unicode_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC)
{
- size_t n;
+ size_t n = len;
const char *src = buf;
#ifdef scottmac_0
@@ -616,10 +616,11 @@ int zend_unicode_yyinput(zend_file_handle *file_handle, char *buf, size_t len TS
n = zend_stream_read(file_handle, buf, len TSRMLS_CC);
}
#endif
+
/* Don't make any conversions if unicode=off */
- if (!UG(unicode)) {
- return n;
- }
+ if (!UG(unicode)) {
+ return n;
+ }
/* Autodetect encoding */
if (!SCNG(encoding_checked)) {
@@ -1359,7 +1360,7 @@ yymore_restart:
}
-#line 1363 "Zend/zend_language_scanner.c"
+#line 1364 "Zend/zend_language_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -1470,7 +1471,7 @@ yyc_INITIAL:
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2164 "Zend/zend_language_scanner.l"
+#line 2169 "Zend/zend_language_scanner.l"
{
inline_char_handler:
@@ -1501,7 +1502,7 @@ inline_char_handler:
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
-#line 1505 "Zend/zend_language_scanner.c"
+#line 1506 "Zend/zend_language_scanner.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1519,7 +1520,7 @@ yy5:
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2152 "Zend/zend_language_scanner.l"
+#line 2157 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1531,14 +1532,14 @@ yy6:
goto inline_char_handler;
}
}
-#line 1535 "Zend/zend_language_scanner.c"
+#line 1536 "Zend/zend_language_scanner.c"
yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2129 "Zend/zend_language_scanner.l"
+#line 2134 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1550,7 +1551,7 @@ yy7:
goto inline_char_handler;
}
}
-#line 1554 "Zend/zend_language_scanner.c"
+#line 1555 "Zend/zend_language_scanner.c"
yy9:
YYDEBUG(9, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1736,7 +1737,7 @@ yy35:
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2094 "Zend/zend_language_scanner.l"
+#line 2099 "Zend/zend_language_scanner.l"
{
HANDLE_NEWLINES(yytext, yyleng);
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1745,7 +1746,7 @@ yy35:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1749 "Zend/zend_language_scanner.c"
+#line 1750 "Zend/zend_language_scanner.c"
yy39:
YYDEBUG(39, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1772,7 +1773,7 @@ yy43:
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2103 "Zend/zend_language_scanner.l"
+#line 2108 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1784,13 +1785,13 @@ yy43:
goto inline_char_handler;
}
}
-#line 1788 "Zend/zend_language_scanner.c"
+#line 1789 "Zend/zend_language_scanner.c"
yy45:
YYDEBUG(45, *YYCURSOR);
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2116 "Zend/zend_language_scanner.l"
+#line 2121 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1802,7 +1803,7 @@ yy45:
goto inline_char_handler;
}
}
-#line 1806 "Zend/zend_language_scanner.c"
+#line 1807 "Zend/zend_language_scanner.c"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1829,7 +1830,7 @@ yy50:
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2142 "Zend/zend_language_scanner.l"
+#line 2147 "Zend/zend_language_scanner.l"
{
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
Z_STRLEN_P(zendlval) = yyleng;
@@ -1838,7 +1839,7 @@ yy51:
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1842 "Zend/zend_language_scanner.c"
+#line 1843 "Zend/zend_language_scanner.c"
yy52:
YYDEBUG(52, *YYCURSOR);
++YYCURSOR;
@@ -1929,13 +1930,13 @@ yy56:
yy57:
YYDEBUG(57, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2540 "Zend/zend_language_scanner.l"
+#line 2545 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_CURLY_OPEN;
}
-#line 1939 "Zend/zend_language_scanner.c"
+#line 1940 "Zend/zend_language_scanner.c"
yy58:
YYDEBUG(58, *YYCURSOR);
yyaccept = 1;
@@ -1953,7 +1954,7 @@ yy59:
yy60:
YYDEBUG(60, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2574 "Zend/zend_language_scanner.l"
+#line 2579 "Zend/zend_language_scanner.l"
{
if (CG(literal_type) == IS_UNICODE) {
return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -1962,7 +1963,7 @@ yy60:
return T_ENCAPSED_AND_WHITESPACE;
}
}
-#line 1966 "Zend/zend_language_scanner.c"
+#line 1967 "Zend/zend_language_scanner.c"
yy61:
YYDEBUG(61, *YYCURSOR);
++YYCURSOR;
@@ -1974,12 +1975,12 @@ yy62:
++YYCURSOR;
YYDEBUG(63, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2671 "Zend/zend_language_scanner.l"
+#line 2676 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
-#line 1983 "Zend/zend_language_scanner.c"
+#line 1984 "Zend/zend_language_scanner.c"
yy64:
YYDEBUG(64, *YYCURSOR);
++YYCURSOR;
@@ -2067,7 +2068,7 @@ yy68:
yy70:
YYDEBUG(70, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2583 "Zend/zend_language_scanner.l"
+#line 2588 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
@@ -2078,7 +2079,7 @@ yy70:
return T_ENCAPSED_AND_WHITESPACE;
}
}
-#line 2082 "Zend/zend_language_scanner.c"
+#line 2083 "Zend/zend_language_scanner.c"
yy71:
YYDEBUG(71, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2112,7 +2113,7 @@ yy74:
yy76:
YYDEBUG(76, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2226 "Zend/zend_language_scanner.l"
+#line 2231 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -2122,18 +2123,18 @@ yy76:
}
return T_VARIABLE;
}
-#line 2126 "Zend/zend_language_scanner.c"
+#line 2127 "Zend/zend_language_scanner.c"
yy77:
YYDEBUG(77, *YYCURSOR);
++YYCURSOR;
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1859 "Zend/zend_language_scanner.l"
+#line 1864 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 2137 "Zend/zend_language_scanner.c"
+#line 2138 "Zend/zend_language_scanner.c"
yy79:
YYDEBUG(79, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2144,7 +2145,7 @@ yy80:
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2213 "Zend/zend_language_scanner.l"
+#line 2218 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2157,7 +2158,7 @@ yy80:
}
return T_VARIABLE;
}
-#line 2161 "Zend/zend_language_scanner.c"
+#line 2162 "Zend/zend_language_scanner.c"
yy82:
YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2175,7 +2176,7 @@ yy83:
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2198 "Zend/zend_language_scanner.l"
+#line 2203 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2188,7 +2189,7 @@ yy83:
}
return T_VARIABLE;
}
-#line 2192 "Zend/zend_language_scanner.c"
+#line 2193 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_COMMENT:
@@ -2245,34 +2246,34 @@ yy87:
}
YYDEBUG(89, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2333 "Zend/zend_language_scanner.l"
+#line 2338 "Zend/zend_language_scanner.l"
{
yymore();
}
-#line 2253 "Zend/zend_language_scanner.c"
+#line 2254 "Zend/zend_language_scanner.c"
yy90:
YYDEBUG(90, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '/') goto yy92;
YYDEBUG(91, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2356 "Zend/zend_language_scanner.l"
+#line 2361 "Zend/zend_language_scanner.l"
{
yymore();
}
-#line 2264 "Zend/zend_language_scanner.c"
+#line 2265 "Zend/zend_language_scanner.c"
yy92:
YYDEBUG(92, *YYCURSOR);
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2350 "Zend/zend_language_scanner.l"
+#line 2355 "Zend/zend_language_scanner.l"
{
HANDLE_NEWLINES(yytext, yyleng);
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
}
-#line 2276 "Zend/zend_language_scanner.c"
+#line 2277 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOC_COMMENT:
@@ -2329,28 +2330,28 @@ yy96:
}
YYDEBUG(98, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2333 "Zend/zend_language_scanner.l"
+#line 2338 "Zend/zend_language_scanner.l"
{
yymore();
}
-#line 2337 "Zend/zend_language_scanner.c"
+#line 2338 "Zend/zend_language_scanner.c"
yy99:
YYDEBUG(99, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '/') goto yy101;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2356 "Zend/zend_language_scanner.l"
+#line 2361 "Zend/zend_language_scanner.l"
{
yymore();
}
-#line 2348 "Zend/zend_language_scanner.c"
+#line 2349 "Zend/zend_language_scanner.c"
yy101:
YYDEBUG(101, *YYCURSOR);
++YYCURSOR;
YYDEBUG(102, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2337 "Zend/zend_language_scanner.l"
+#line 2342 "Zend/zend_language_scanner.l"
{
zval temp;
@@ -2363,7 +2364,7 @@ yy101:
BEGIN(ST_IN_SCRIPTING);
return T_DOC_COMMENT;
}
-#line 2367 "Zend/zend_language_scanner.c"
+#line 2368 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
@@ -2450,13 +2451,13 @@ yy106:
yy107:
YYDEBUG(107, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2540 "Zend/zend_language_scanner.l"
+#line 2545 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_CURLY_OPEN;
}
-#line 2460 "Zend/zend_language_scanner.c"
+#line 2461 "Zend/zend_language_scanner.c"
yy108:
YYDEBUG(108, *YYCURSOR);
yyaccept = 1;
@@ -2475,7 +2476,7 @@ yy109:
yy110:
YYDEBUG(110, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2547 "Zend/zend_language_scanner.l"
+#line 2552 "Zend/zend_language_scanner.l"
{
if (CG(literal_type) == IS_UNICODE) {
return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2484,7 +2485,7 @@ yy110:
return T_ENCAPSED_AND_WHITESPACE;
}
}
-#line 2488 "Zend/zend_language_scanner.c"
+#line 2489 "Zend/zend_language_scanner.c"
yy111:
YYDEBUG(111, *YYCURSOR);
++YYCURSOR;
@@ -2496,12 +2497,12 @@ yy112:
++YYCURSOR;
YYDEBUG(113, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2665 "Zend/zend_language_scanner.l"
+#line 2670 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
}
-#line 2505 "Zend/zend_language_scanner.c"
+#line 2506 "Zend/zend_language_scanner.c"
yy114:
YYDEBUG(114, *YYCURSOR);
++YYCURSOR;
@@ -2592,7 +2593,7 @@ yy118:
yy120:
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2562 "Zend/zend_language_scanner.l"
+#line 2567 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
@@ -2603,7 +2604,7 @@ yy120:
return T_ENCAPSED_AND_WHITESPACE;
}
}
-#line 2607 "Zend/zend_language_scanner.c"
+#line 2608 "Zend/zend_language_scanner.c"
yy121:
YYDEBUG(121, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2637,7 +2638,7 @@ yy124:
yy126:
YYDEBUG(126, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2226 "Zend/zend_language_scanner.l"
+#line 2231 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -2647,18 +2648,18 @@ yy126:
}
return T_VARIABLE;
}
-#line 2651 "Zend/zend_language_scanner.c"
+#line 2652 "Zend/zend_language_scanner.c"
yy127:
YYDEBUG(127, *YYCURSOR);
++YYCURSOR;
YYDEBUG(128, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1859 "Zend/zend_language_scanner.l"
+#line 1864 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 2662 "Zend/zend_language_scanner.c"
+#line 2663 "Zend/zend_language_scanner.c"
yy129:
YYDEBUG(129, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2669,7 +2670,7 @@ yy130:
++YYCURSOR;
YYDEBUG(131, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2213 "Zend/zend_language_scanner.l"
+#line 2218 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2682,7 +2683,7 @@ yy130:
}
return T_VARIABLE;
}
-#line 2686 "Zend/zend_language_scanner.c"
+#line 2687 "Zend/zend_language_scanner.c"
yy132:
YYDEBUG(132, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2700,7 +2701,7 @@ yy133:
++YYCURSOR;
YYDEBUG(134, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2198 "Zend/zend_language_scanner.l"
+#line 2203 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2713,7 +2714,7 @@ yy133:
}
return T_VARIABLE;
}
-#line 2717 "Zend/zend_language_scanner.c"
+#line 2718 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_END_HEREDOC:
@@ -2724,7 +2725,7 @@ yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(138, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2526 "Zend/zend_language_scanner.l"
+#line 2531 "Zend/zend_language_scanner.l"
{
YYCURSOR += CG(heredoc_len) - 1;
yyleng = CG(heredoc_len);
@@ -2736,7 +2737,7 @@ yyc_ST_END_HEREDOC:
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
}
-#line 2740 "Zend/zend_language_scanner.c"
+#line 2741 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_HEREDOC:
{
@@ -2793,7 +2794,7 @@ yyc_ST_HEREDOC:
yy141:
YYDEBUG(141, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2602 "Zend/zend_language_scanner.l"
+#line 2607 "Zend/zend_language_scanner.l"
{
if (CG(literal_type) == IS_UNICODE) {
return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2802,7 +2803,7 @@ yy141:
return T_ENCAPSED_AND_WHITESPACE;
}
}
-#line 2806 "Zend/zend_language_scanner.c"
+#line 2807 "Zend/zend_language_scanner.c"
yy142:
YYDEBUG(142, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2848,13 +2849,13 @@ yy143:
yy144:
YYDEBUG(144, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2540 "Zend/zend_language_scanner.l"
+#line 2545 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_CURLY_OPEN;
}
-#line 2858 "Zend/zend_language_scanner.c"
+#line 2859 "Zend/zend_language_scanner.c"
yy145:
YYDEBUG(145, *YYCURSOR);
yyaccept = 0;
@@ -3105,7 +3106,7 @@ yy161:
yy163:
YYDEBUG(163, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2611 "Zend/zend_language_scanner.l"
+#line 2616 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
@@ -3116,7 +3117,7 @@ yy163:
return T_ENCAPSED_AND_WHITESPACE;
}
}
-#line 3120 "Zend/zend_language_scanner.c"
+#line 3121 "Zend/zend_language_scanner.c"
yy164:
YYDEBUG(164, *YYCURSOR);
yyaccept = 2;
@@ -3215,7 +3216,7 @@ yy170:
++YYCURSOR;
YYDEBUG(171, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2484 "Zend/zend_language_scanner.l"
+#line 2489 "Zend/zend_language_scanner.l"
{
char *end = yytext + yyleng - 1;
@@ -3257,7 +3258,7 @@ yy170:
yymore();
}
}
-#line 3261 "Zend/zend_language_scanner.c"
+#line 3262 "Zend/zend_language_scanner.c"
yy172:
YYDEBUG(172, *YYCURSOR);
yyaccept = 2;
@@ -3517,7 +3518,7 @@ yy191:
yy193:
YYDEBUG(193, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2226 "Zend/zend_language_scanner.l"
+#line 2231 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -3527,18 +3528,18 @@ yy193:
}
return T_VARIABLE;
}
-#line 3531 "Zend/zend_language_scanner.c"
+#line 3532 "Zend/zend_language_scanner.c"
yy194:
YYDEBUG(194, *YYCURSOR);
++YYCURSOR;
YYDEBUG(195, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1859 "Zend/zend_language_scanner.l"
+#line 1864 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 3542 "Zend/zend_language_scanner.c"
+#line 3543 "Zend/zend_language_scanner.c"
yy196:
YYDEBUG(196, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3549,7 +3550,7 @@ yy197:
++YYCURSOR;
YYDEBUG(198, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2213 "Zend/zend_language_scanner.l"
+#line 2218 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -3562,7 +3563,7 @@ yy197:
}
return T_VARIABLE;
}
-#line 3566 "Zend/zend_language_scanner.c"
+#line 3567 "Zend/zend_language_scanner.c"
yy199:
YYDEBUG(199, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3580,7 +3581,7 @@ yy200:
++YYCURSOR;
YYDEBUG(201, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2198 "Zend/zend_language_scanner.l"
+#line 2203 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -3593,7 +3594,7 @@ yy200:
}
return T_VARIABLE;
}
-#line 3597 "Zend/zend_language_scanner.c"
+#line 3598 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_IN_SCRIPTING:
@@ -3699,33 +3700,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':
@@ -3734,12 +3734,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':
@@ -3757,11 +3757,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':
@@ -3771,20 +3771,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);
@@ -3792,23 +3793,23 @@ yy204:
YYDEBUG(-1, yych);
switch ((yych = *YYCURSOR)) {
case 'C':
- case 'c': goto yy818;
+ case 'c': goto yy820;
case 'L':
- case 'l': goto yy819;
+ case 'l': goto yy821;
case 'M':
- case 'm': goto yy820;
+ case 'm': goto yy822;
case 'N':
- case 'n': goto yy821;
+ case 'n': goto yy823;
case 'V':
- case 'v': goto yy822;
+ case 'v': goto yy824;
case 'X':
- case 'x': goto yy823;
- default: goto yy280;
+ case 'x': goto yy825;
+ default: goto yy282;
}
yy205:
YYDEBUG(205, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2254 "Zend/zend_language_scanner.l"
+#line 2259 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -3818,27 +3819,27 @@ yy205:
}
return T_STRING;
}
-#line 3822 "Zend/zend_language_scanner.c"
+#line 3823 "Zend/zend_language_scanner.c"
yy206:
YYDEBUG(206, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'H') {
- if (yych == 'E') goto yy800;
- goto yy280;
+ if (yych == 'E') goto yy802;
+ goto yy282;
} else {
- if (yych <= 'I') goto yy801;
- if (yych <= 'N') goto yy280;
- goto yy802;
+ if (yych <= 'I') goto yy803;
+ if (yych <= 'N') goto yy282;
+ goto yy804;
}
} else {
if (yych <= 'h') {
- if (yych == 'e') goto yy800;
- goto yy280;
+ if (yych == 'e') goto yy802;
+ goto yy282;
} else {
- if (yych <= 'i') goto yy801;
- if (yych == 'o') goto yy802;
- goto yy280;
+ if (yych <= 'i') goto yy803;
+ if (yych == 'o') goto yy804;
+ goto yy282;
}
}
yy207:
@@ -3846,21 +3847,21 @@ yy207:
yych = *++YYCURSOR;
if (yych <= 'U') {
if (yych <= 'N') {
- if (yych == 'I') goto yy779;
- goto yy280;
+ if (yych == 'I') goto yy781;
+ goto yy282;
} else {
- if (yych <= 'O') goto yy780;
- if (yych <= 'T') goto yy280;
- goto yy781;
+ if (yych <= 'O') goto yy782;
+ if (yych <= 'T') goto yy282;
+ goto yy783;
}
} else {
if (yych <= 'n') {
- if (yych == 'i') goto yy779;
- goto yy280;
+ if (yych == 'i') goto yy781;
+ goto yy282;
} else {
- if (yych <= 'o') goto yy780;
- if (yych == 'u') goto yy781;
- goto yy280;
+ if (yych <= 'o') goto yy782;
+ if (yych == 'u') goto yy783;
+ goto yy282;
}
}
yy208:
@@ -3868,43 +3869,43 @@ yy208:
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= 'K') {
- if (yych == 'A') goto yy751;
- goto yy280;
+ if (yych == 'A') goto yy753;
+ goto yy282;
} else {
- if (yych <= 'L') goto yy752;
- if (yych <= 'N') goto yy280;
- goto yy753;
+ if (yych <= 'L') goto yy754;
+ if (yych <= 'N') goto yy282;
+ goto yy755;
}
} else {
if (yych <= 'k') {
- if (yych == 'a') goto yy751;
- goto yy280;
+ if (yych == 'a') goto yy753;
+ goto yy282;
} else {
- if (yych <= 'l') goto yy752;
- if (yych == 'o') goto yy753;
- goto yy280;
+ if (yych <= 'l') goto yy754;
+ if (yych == 'o') goto yy755;
+ goto yy282;
}
}
yy209:
YYDEBUG(209, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy733;
- if (yych == 'e') goto yy733;
- goto yy280;
+ if (yych == 'E') goto yy735;
+ if (yych == 'e') goto yy735;
+ goto yy282;
yy210:
YYDEBUG(210, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'R') {
- if (yych == 'H') goto yy725;
- if (yych <= 'Q') goto yy280;
- goto yy726;
+ if (yych == 'H') goto yy727;
+ if (yych <= 'Q') goto yy282;
+ goto yy728;
} else {
if (yych <= 'h') {
- if (yych <= 'g') goto yy280;
- goto yy725;
+ if (yych <= 'g') goto yy282;
+ goto yy727;
} else {
- if (yych == 'r') goto yy726;
- goto yy280;
+ if (yych == 'r') goto yy728;
+ goto yy282;
}
}
yy211:
@@ -3912,70 +3913,70 @@ yy211:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'L') {
- if (yych == 'F') goto yy678;
- goto yy280;
+ if (yych == 'F') goto yy680;
+ goto yy282;
} else {
- if (yych <= 'M') goto yy680;
- if (yych <= 'N') goto yy681;
- if (yych <= 'R') goto yy280;
- goto yy682;
+ if (yych <= 'M') goto yy682;
+ if (yych <= 'N') goto yy683;
+ if (yych <= 'R') goto yy282;
+ goto yy684;
}
} else {
if (yych <= 'm') {
- if (yych == 'f') goto yy678;
- if (yych <= 'l') goto yy280;
- goto yy680;
+ if (yych == 'f') goto yy680;
+ if (yych <= 'l') goto yy282;
+ goto yy682;
} else {
- if (yych <= 'n') goto yy681;
- if (yych == 's') goto yy682;
- goto yy280;
+ if (yych <= 'n') goto yy683;
+ if (yych == 's') goto yy684;
+ goto yy282;
}
}
yy212:
YYDEBUG(212, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy673;
- if (yych == 'h') goto yy673;
- goto yy280;
+ if (yych == 'H') goto yy675;
+ if (yych == 'h') goto yy675;
+ goto yy282;
yy213:
YYDEBUG(213, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= 'M') {
- if (yych == 'B') goto yy655;
- goto yy280;
+ if (yych == 'B') goto yy657;
+ goto yy282;
} else {
- if (yych <= 'N') goto yy656;
- if (yych <= 'Q') goto yy280;
- if (yych <= 'R') goto yy657;
- goto yy658;
+ if (yych <= 'N') goto yy658;
+ if (yych <= 'Q') goto yy282;
+ if (yych <= 'R') goto yy659;
+ goto yy660;
}
} else {
if (yych <= 'n') {
- if (yych == 'b') goto yy655;
- if (yych <= 'm') goto yy280;
- goto yy656;
+ if (yych == 'b') goto yy657;
+ if (yych <= 'm') goto yy282;
+ goto yy658;
} else {
- if (yych <= 'q') goto yy280;
- if (yych <= 'r') goto yy657;
- if (yych <= 's') goto yy658;
- goto yy280;
+ if (yych <= 'q') goto yy282;
+ if (yych <= 'r') goto yy659;
+ if (yych <= 's') goto yy660;
+ goto yy282;
}
}
yy214:
YYDEBUG(214, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'W') {
- if (yych == 'T') goto yy643;
- if (yych <= 'V') goto yy280;
- goto yy644;
+ if (yych == 'T') goto yy645;
+ if (yych <= 'V') goto yy282;
+ goto yy646;
} else {
if (yych <= 't') {
- if (yych <= 's') goto yy280;
- goto yy643;
+ if (yych <= 's') goto yy282;
+ goto yy645;
} else {
- if (yych == 'w') goto yy644;
- goto yy280;
+ if (yych == 'w') goto yy646;
+ goto yy282;
}
}
yy215:
@@ -3986,38 +3987,38 @@ yy215:
if (yych <= '/') {
if (yych <= '"') {
if (yych <= '!') goto yy205;
- goto yy620;
+ goto yy622;
} else {
- if (yych == '\'') goto yy622;
+ if (yych == '\'') goto yy624;
goto yy205;
}
} else {
if (yych <= ';') {
- if (yych <= '9') goto yy279;
+ if (yych <= '9') goto yy281;
goto yy205;
} else {
- if (yych <= '<') goto yy619;
+ if (yych <= '<') goto yy621;
if (yych <= '@') goto yy205;
- goto yy279;
+ goto yy281;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= 'R') goto yy624;
- goto yy279;
+ if (yych <= 'R') goto yy626;
+ goto yy281;
} else {
- if (yych == '_') goto yy279;
+ if (yych == '_') goto yy281;
goto yy205;
}
} else {
if (yych <= 'r') {
- if (yych <= 'q') goto yy279;
- goto yy624;
+ if (yych <= 'q') goto yy281;
+ goto yy626;
} else {
- if (yych <= 'z') goto yy279;
+ if (yych <= 'z') goto yy281;
if (yych <= '~') goto yy205;
- goto yy279;
+ goto yy281;
}
}
}
@@ -4025,60 +4026,60 @@ yy216:
YYDEBUG(216, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'L') goto yy609;
- if (yych <= 'N') goto yy280;
- goto yy610;
+ if (yych == 'L') goto yy611;
+ if (yych <= 'N') goto yy282;
+ goto yy612;
} else {
if (yych <= 'l') {
- if (yych <= 'k') goto yy280;
- goto yy609;
+ if (yych <= 'k') goto yy282;
+ goto yy611;
} else {
- if (yych == 'o') goto yy610;
- goto yy280;
+ if (yych == 'o') goto yy612;
+ goto yy282;
}
}
yy217:
YYDEBUG(217, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'R') goto yy585;
- if (yych <= 'T') goto yy280;
- goto yy586;
+ if (yych == 'R') goto yy587;
+ if (yych <= 'T') goto yy282;
+ goto yy588;
} else {
if (yych <= 'r') {
- if (yych <= 'q') goto yy280;
- goto yy585;
+ if (yych <= 'q') goto yy282;
+ goto yy587;
} else {
- if (yych == 'u') goto yy586;
- goto yy280;
+ if (yych == 'u') goto yy588;
+ goto yy282;
}
}
yy218:
YYDEBUG(218, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy581;
+ if (yych == '-') goto yy583;
} else {
- if (yych <= '=') goto yy579;
- if (yych <= '>') goto yy583;
+ if (yych <= '=') goto yy581;
+ if (yych <= '>') goto yy585;
}
yy219:
YYDEBUG(219, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1848 "Zend/zend_language_scanner.l"
+#line 1853 "Zend/zend_language_scanner.l"
{
return yytext[0];
}
-#line 4073 "Zend/zend_language_scanner.c"
+#line 4074 "Zend/zend_language_scanner.c"
yy220:
YYDEBUG(220, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy578;
+ goto yy580;
yy221:
YYDEBUG(221, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1579 "Zend/zend_language_scanner.l"
+#line 1580 "Zend/zend_language_scanner.l"
{
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
Z_STRLEN_P(zendlval) = yyleng;
@@ -4086,251 +4087,261 @@ yy221:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 4090 "Zend/zend_language_scanner.c"
+#line 4091 "Zend/zend_language_scanner.c"
yy222:
YYDEBUG(222, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == ':') goto yy575;
+ if (yych == ':') goto yy577;
goto yy219;
yy223:
YYDEBUG(223, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(224, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1613 "Zend/zend_language_scanner.l"
+ {
+ return T_NS_SEPARATOR;
+}
+#line 4106 "Zend/zend_language_scanner.c"
+yy225:
+ YYDEBUG(225, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'E') {
- if (yych == 'A') goto yy563;
- if (yych <= 'D') goto yy280;
- goto yy564;
+ if (yych == 'A') goto yy565;
+ if (yych <= 'D') goto yy282;
+ goto yy566;
} else {
if (yych <= 'a') {
- if (yych <= '`') goto yy280;
- goto yy563;
+ if (yych <= '`') goto yy282;
+ goto yy565;
} else {
- if (yych == 'e') goto yy564;
- goto yy280;
+ if (yych == 'e') goto yy566;
+ goto yy282;
}
}
-yy224:
- YYDEBUG(224, *YYCURSOR);
+yy226:
+ YYDEBUG(226, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy560;
- if (yych == 'a') goto yy560;
- goto yy280;
-yy225:
- YYDEBUG(225, *YYCURSOR);
+ if (yych == 'A') goto yy562;
+ if (yych == 'a') goto yy562;
+ 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 1853 "Zend/zend_language_scanner.l"
+#line 1858 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
-#line 4328 "Zend/zend_language_scanner.c"
-yy248:
- YYDEBUG(248, *YYCURSOR);
+#line 4339 "Zend/zend_language_scanner.c"
+yy250:
+ YYDEBUG(250, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(249, *YYCURSOR);
+ YYDEBUG(251, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1865 "Zend/zend_language_scanner.l"
+#line 1870 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -4338,30 +4349,30 @@ yy248:
}
return '}';
}
-#line 4342 "Zend/zend_language_scanner.c"
-yy250:
- YYDEBUG(250, *YYCURSOR);
+#line 4353 "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 1895 "Zend/zend_language_scanner.l"
+#line 1900 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
@@ -4382,105 +4393,105 @@ yy251:
Z_TYPE_P(zendlval) = IS_LONG;
return T_LNUMBER;
}
-#line 4386 "Zend/zend_language_scanner.c"
-yy252:
- YYDEBUG(252, *YYCURSOR);
+#line 4397 "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 2272 "Zend/zend_language_scanner.l"
+#line 2277 "Zend/zend_language_scanner.l"
{
BEGIN(ST_ONE_LINE_COMMENT);
yymore();
}
-#line 4419 "Zend/zend_language_scanner.c"
-yy256:
- YYDEBUG(256, *YYCURSOR);
+#line 4430 "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 2417 "Zend/zend_language_scanner.l"
+#line 2422 "Zend/zend_language_scanner.l"
{
BEGIN(ST_DOUBLE_QUOTES);
return '"';
}
-#line 4433 "Zend/zend_language_scanner.c"
-yy258:
- YYDEBUG(258, *YYCURSOR);
+#line 4444 "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 2677 "Zend/zend_language_scanner.l"
+#line 2682 "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 4447 "Zend/zend_language_scanner.c"
-yy260:
- YYDEBUG(260, *YYCURSOR);
+#line 4458 "Zend/zend_language_scanner.c"
+yy262:
+ YYDEBUG(262, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(261, *YYCURSOR);
+ YYDEBUG(263, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2472 "Zend/zend_language_scanner.l"
+#line 2477 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
}
-#line 4458 "Zend/zend_language_scanner.c"
-yy262:
- YYDEBUG(262, *YYCURSOR);
+#line 4469 "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 2401 "Zend/zend_language_scanner.l"
+#line 2406 "Zend/zend_language_scanner.l"
{
if (UG(unicode)) {
return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
@@ -4489,22 +4500,22 @@ yy266:
return T_CONSTANT_ENCAPSED_STRING;
}
}
-#line 4493 "Zend/zend_language_scanner.c"
-yy268:
- YYDEBUG(268, *YYCURSOR);
+#line 4504 "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 <= 4) {
if (yyaccept <= 2) {
@@ -4515,82 +4526,82 @@ yy270:
goto yy219;
}
} else {
- goto yy251;
+ goto yy253;
}
} else {
if (yyaccept <= 3) {
- goto yy257;
- } else {
goto yy259;
+ } else {
+ goto yy261;
}
}
} else {
if (yyaccept <= 6) {
if (yyaccept <= 5) {
- goto yy283;
+ goto yy285;
} else {
- goto yy327;
+ goto yy329;
}
} else {
if (yyaccept <= 7) {
- goto yy344;
+ goto yy346;
} else {
- goto yy621;
+ goto yy623;
}
}
}
-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 2385 "Zend/zend_language_scanner.l"
+#line 2390 "Zend/zend_language_scanner.l"
{
if (UG(unicode)) {
return zend_scan_unicode_escape_string(zendlval, yytext+1, yyleng-2, 0x22 /*'"'*/, T_CONSTANT_ENCAPSED_STRING TSRMLS_CC);
@@ -4599,108 +4610,108 @@ yy276:
return T_CONSTANT_ENCAPSED_STRING;
}
}
-#line 4603 "Zend/zend_language_scanner.c"
-yy278:
- YYDEBUG(278, *YYCURSOR);
+#line 4614 "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 1956 "Zend/zend_language_scanner.l"
+#line 1961 "Zend/zend_language_scanner.l"
{
Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
Z_TYPE_P(zendlval) = IS_DOUBLE;
return T_DNUMBER;
}
-#line 4642 "Zend/zend_language_scanner.c"
-yy284:
- YYDEBUG(284, *YYCURSOR);
+#line 4653 "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 1916 "Zend/zend_language_scanner.l"
+#line 1921 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
@@ -4721,16 +4732,16 @@ yy291:
return T_DNUMBER;
}
}
-#line 4725 "Zend/zend_language_scanner.c"
-yy294:
- YYDEBUG(294, *YYCURSOR);
+#line 4736 "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 2360 "Zend/zend_language_scanner.l"
+#line 2365 "Zend/zend_language_scanner.l"
{
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
Z_STRLEN_P(zendlval) = yyleng;
@@ -4738,41 +4749,41 @@ yy295:
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 4742 "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 4753 "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 2226 "Zend/zend_language_scanner.l"
+#line 2231 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -4782,97 +4793,97 @@ yy300:
}
return T_VARIABLE;
}
-#line 4786 "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 4797 "Zend/zend_language_scanner.c"
+yy303:
YYDEBUG(303, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1836 "Zend/zend_language_scanner.l"
- {
- return T_LOGICAL_XOR;
-}
-#line 4804 "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 1828 "Zend/zend_language_scanner.l"
+#line 1841 "Zend/zend_language_scanner.l"
{
- return T_LOGICAL_OR;
+ return T_LOGICAL_XOR;
}
-#line 4817 "Zend/zend_language_scanner.c"
+#line 4815 "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 1816 "Zend/zend_language_scanner.l"
+#line 1833 "Zend/zend_language_scanner.l"
{
- return T_XOR_EQUAL;
+ return T_LOGICAL_OR;
}
-#line 4827 "Zend/zend_language_scanner.c"
+#line 4828 "Zend/zend_language_scanner.c"
yy308:
YYDEBUG(308, *YYCURSOR);
++YYCURSOR;
YYDEBUG(309, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1820 "Zend/zend_language_scanner.l"
+#line 1821 "Zend/zend_language_scanner.l"
{
- return T_BOOLEAN_OR;
+ return T_XOR_EQUAL;
}
-#line 4837 "Zend/zend_language_scanner.c"
+#line 4838 "Zend/zend_language_scanner.c"
yy310:
YYDEBUG(310, *YYCURSOR);
++YYCURSOR;
YYDEBUG(311, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1812 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
{
- return T_OR_EQUAL;
+ return T_BOOLEAN_OR;
}
-#line 4847 "Zend/zend_language_scanner.c"
+#line 4848 "Zend/zend_language_scanner.c"
yy312:
YYDEBUG(312, *YYCURSOR);
++YYCURSOR;
YYDEBUG(313, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1817 "Zend/zend_language_scanner.l"
{
- return T_BOOLEAN_AND;
+ return T_OR_EQUAL;
}
-#line 4857 "Zend/zend_language_scanner.c"
+#line 4858 "Zend/zend_language_scanner.c"
yy314:
YYDEBUG(314, *YYCURSOR);
++YYCURSOR;
YYDEBUG(315, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1808 "Zend/zend_language_scanner.l"
+#line 1829 "Zend/zend_language_scanner.l"
{
- return T_AND_EQUAL;
+ return T_BOOLEAN_AND;
}
-#line 4867 "Zend/zend_language_scanner.c"
+#line 4868 "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 2369 "Zend/zend_language_scanner.l"
+#line 1813 "Zend/zend_language_scanner.l"
+ {
+ return T_AND_EQUAL;
+}
+#line 4878 "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 2374 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
@@ -4885,348 +4896,348 @@ yy317:
return yytext[0];
}
}
-#line 4889 "Zend/zend_language_scanner.c"
-yy318:
- YYDEBUG(318, *YYCURSOR);
+#line 4900 "Zend/zend_language_scanner.c"
+yy320:
+ YYDEBUG(320, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(319, *YYCURSOR);
+ YYDEBUG(321, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1796 "Zend/zend_language_scanner.l"
+#line 1801 "Zend/zend_language_scanner.l"
{
return T_MOD_EQUAL;
}
-#line 4899 "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 4910 "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 1792 "Zend/zend_language_scanner.l"
+#line 1797 "Zend/zend_language_scanner.l"
{
return T_CONCAT_EQUAL;
}
-#line 4934 "Zend/zend_language_scanner.c"
-yy326:
- YYDEBUG(326, *YYCURSOR);
+#line 4945 "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 2327 "Zend/zend_language_scanner.l"
+#line 2332 "Zend/zend_language_scanner.l"
{
BEGIN(ST_COMMENT);
yymore();
}
-#line 4948 "Zend/zend_language_scanner.c"
-yy328:
- YYDEBUG(328, *YYCURSOR);
+#line 4959 "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 1788 "Zend/zend_language_scanner.l"
+#line 1793 "Zend/zend_language_scanner.l"
{
return T_DIV_EQUAL;
}
-#line 4962 "Zend/zend_language_scanner.c"
-yy331:
- YYDEBUG(331, *YYCURSOR);
+#line 4973 "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 2321 "Zend/zend_language_scanner.l"
+#line 2326 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
BEGIN(ST_DOC_COMMENT);
yymore();
}
-#line 4987 "Zend/zend_language_scanner.c"
-yy335:
- YYDEBUG(335, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(336, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1784 "Zend/zend_language_scanner.l"
- {
- return T_MUL_EQUAL;
-}
-#line 4997 "Zend/zend_language_scanner.c"
+#line 4998 "Zend/zend_language_scanner.c"
yy337:
YYDEBUG(337, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy341;
YYDEBUG(338, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1844 "Zend/zend_language_scanner.l"
+#line 1789 "Zend/zend_language_scanner.l"
{
- return T_SR;
+ return T_MUL_EQUAL;
}
#line 5008 "Zend/zend_language_scanner.c"
yy339:
YYDEBUG(339, *YYCURSOR);
++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy343;
YYDEBUG(340, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1772 "Zend/zend_language_scanner.l"
+#line 1849 "Zend/zend_language_scanner.l"
{
- return T_IS_GREATER_OR_EQUAL;
+ return T_SR;
}
-#line 5018 "Zend/zend_language_scanner.c"
+#line 5019 "Zend/zend_language_scanner.c"
yy341:
YYDEBUG(341, *YYCURSOR);
++YYCURSOR;
YYDEBUG(342, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1804 "Zend/zend_language_scanner.l"
+#line 1777 "Zend/zend_language_scanner.l"
{
- return T_SR_EQUAL;
+ return T_IS_GREATER_OR_EQUAL;
}
-#line 5028 "Zend/zend_language_scanner.c"
+#line 5029 "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 1840 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
{
- return T_SL;
+ return T_SR_EQUAL;
}
-#line 5043 "Zend/zend_language_scanner.c"
+#line 5039 "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 1768 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
{
- return T_IS_SMALLER_OR_EQUAL;
+ return T_SL;
}
-#line 5059 "Zend/zend_language_scanner.c"
+#line 5054 "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 1764 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
{
- return T_IS_NOT_EQUAL;
+ return T_IS_SMALLER_OR_EQUAL;
}
#line 5070 "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 1769 "Zend/zend_language_scanner.l"
+ {
+ return T_IS_NOT_EQUAL;
+}
+#line 5081 "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 1800 "Zend/zend_language_scanner.l"
+#line 1805 "Zend/zend_language_scanner.l"
{
return T_SL_EQUAL;
}
-#line 5125 "Zend/zend_language_scanner.c"
-yy359:
- YYDEBUG(359, *YYCURSOR);
+#line 5136 "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 2427 "Zend/zend_language_scanner.l"
+#line 2432 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -5270,247 +5281,247 @@ yy369:
return bprefix ? T_BINARY_HEREDOC : T_START_HEREDOC;
}
-#line 5274 "Zend/zend_language_scanner.c"
-yy370:
- YYDEBUG(370, *YYCURSOR);
+#line 5285 "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 1756 "Zend/zend_language_scanner.l"
- {
- return T_IS_NOT_IDENTICAL;
-}
-#line 5318 "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 1776 "Zend/zend_language_scanner.l"
+#line 1761 "Zend/zend_language_scanner.l"
{
- return T_PLUS_EQUAL;
+ return T_IS_NOT_IDENTICAL;
}
-#line 5328 "Zend/zend_language_scanner.c"
+#line 5329 "Zend/zend_language_scanner.c"
yy378:
YYDEBUG(378, *YYCURSOR);
++YYCURSOR;
YYDEBUG(379, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1744 "Zend/zend_language_scanner.l"
+#line 1781 "Zend/zend_language_scanner.l"
{
- return T_INC;
+ return T_PLUS_EQUAL;
}
-#line 5338 "Zend/zend_language_scanner.c"
+#line 5339 "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 1736 "Zend/zend_language_scanner.l"
+#line 1749 "Zend/zend_language_scanner.l"
{
- return T_LIST;
+ return T_INC;
}
-#line 5361 "Zend/zend_language_scanner.c"
+#line 5349 "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 1760 "Zend/zend_language_scanner.l"
+#line 1741 "Zend/zend_language_scanner.l"
{
- return T_IS_EQUAL;
+ return T_LIST;
}
#line 5372 "Zend/zend_language_scanner.c"
yy386:
YYDEBUG(386, *YYCURSOR);
++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy390;
YYDEBUG(387, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1765 "Zend/zend_language_scanner.l"
{
- return T_DOUBLE_ARROW;
+ return T_IS_EQUAL;
}
-#line 5382 "Zend/zend_language_scanner.c"
+#line 5383 "Zend/zend_language_scanner.c"
yy388:
YYDEBUG(388, *YYCURSOR);
++YYCURSOR;
YYDEBUG(389, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1752 "Zend/zend_language_scanner.l"
+#line 1737 "Zend/zend_language_scanner.l"
{
- return T_IS_IDENTICAL;
+ return T_DOUBLE_ARROW;
}
-#line 5392 "Zend/zend_language_scanner.c"
+#line 5393 "Zend/zend_language_scanner.c"
yy390:
YYDEBUG(390, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(391, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1757 "Zend/zend_language_scanner.l"
+ {
+ return T_IS_IDENTICAL;
+}
+#line 5403 "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 2084 "Zend/zend_language_scanner.l"
+#line 2089 "Zend/zend_language_scanner.l"
{
if (CG(current_namespace)) {
*zendlval = *CG(current_namespace);
@@ -5520,27 +5531,27 @@ yy405:
}
return T_NS_C;
}
-#line 5524 "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 5535 "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 2057 "Zend/zend_language_scanner.l"
+#line 2062 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
const size_t filename_len = strlen(filename);
@@ -5567,73 +5578,73 @@ yy410:
zendlval->type = IS_STRING;
return T_DIR;
}
-#line 5571 "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 5582 "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 2041 "Zend/zend_language_scanner.l"
+#line 2046 "Zend/zend_language_scanner.l"
{
Z_LVAL_P(zendlval) = CG(zend_lineno);
Z_TYPE_P(zendlval) = IS_LONG;
return T_LINE;
}
-#line 5602 "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 5613 "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 1992 "Zend/zend_language_scanner.l"
+#line 1997 "Zend/zend_language_scanner.l"
{
zstr class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL_ZSTR;
zstr func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL_ZSTR;
@@ -5682,58 +5693,58 @@ yy424:
}
return T_METHOD_C;
}
-#line 5686 "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 5697 "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 1977 "Zend/zend_language_scanner.l"
+#line 1982 "Zend/zend_language_scanner.l"
{
zstr func_name = NULL_ZSTR;
@@ -5748,27 +5759,27 @@ yy435:
}
return T_FUNC_C;
}
-#line 5752 "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 5763 "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 2047 "Zend/zend_language_scanner.l"
+#line 2052 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
@@ -5778,37 +5789,37 @@ yy440:
ZVAL_RT_STRING(zendlval, filename, 1);
return T_FILE;
}
-#line 5782 "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 5793 "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 1962 "Zend/zend_language_scanner.l"
+#line 1967 "Zend/zend_language_scanner.l"
{
zstr class_name = NULL_ZSTR;
@@ -5823,2714 +5834,2714 @@ yy447:
}
return T_CLASS_C;
}
-#line 5827 "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 5838 "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 1700 "Zend/zend_language_scanner.l"
+#line 1705 "Zend/zend_language_scanner.l"
{
return T_HALT_COMPILER;
}
-#line 5893 "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 5904 "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 1684 "Zend/zend_language_scanner.l"
+#line 1689 "Zend/zend_language_scanner.l"
{
return T_USE;
}
-#line 5917 "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 5928 "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 1728 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
{
return T_UNSET;
}
-#line 5940 "Zend/zend_language_scanner.c"
-yy472:
- YYDEBUG(472, *YYCURSOR);
+#line 5951 "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 1624 "Zend/zend_language_scanner.l"
+#line 1629 "Zend/zend_language_scanner.l"
{
return T_INT_CAST;
}
-#line 6116 "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 6127 "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 1628 "Zend/zend_language_scanner.l"
+#line 1633 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_CAST;
}
-#line 6164 "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 6175 "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 1632 "Zend/zend_language_scanner.l"
+#line 1637 "Zend/zend_language_scanner.l"
{
return T_STRING_CAST;
}
-#line 6238 "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 6249 "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 1644 "Zend/zend_language_scanner.l"
+#line 1649 "Zend/zend_language_scanner.l"
{
return T_ARRAY_CAST;
}
-#line 6275 "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 6286 "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 1648 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
{
return T_OBJECT_CAST;
}
-#line 6317 "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 6328 "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 1652 "Zend/zend_language_scanner.l"
+#line 1657 "Zend/zend_language_scanner.l"
{
return T_BOOL_CAST;
}
-#line 6362 "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 6373 "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 1640 "Zend/zend_language_scanner.l"
+#line 1645 "Zend/zend_language_scanner.l"
{
return T_BINARY_CAST;
}
-#line 6410 "Zend/zend_language_scanner.c"
-yy545:
- YYDEBUG(545, *YYCURSOR);
+#line 6421 "Zend/zend_language_scanner.c"
+yy547:
+ YYDEBUG(547, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'S') {
- if (yych == 'I') goto yy547;
- if (yych <= 'R') goto yy270;
+ if (yych == 'I') goto yy549;
+ if (yych <= 'R') goto yy272;
} else {
if (yych <= 'i') {
- if (yych <= 'h') goto yy270;
- goto yy547;
+ if (yych <= 'h') goto yy272;
+ goto yy549;
} else {
- if (yych != 's') goto yy270;
+ if (yych != 's') goto yy272;
}
}
- YYDEBUG(546, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy555;
- if (yych == 'e') goto yy555;
- goto yy270;
-yy547:
- YYDEBUG(547, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy548;
- if (yych != 'c') goto yy270;
-yy548:
YYDEBUG(548, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy549;
- if (yych != 'o') goto yy270;
+ if (yych == 'E') goto yy557;
+ if (yych == 'e') goto yy557;
+ goto yy272;
yy549:
YYDEBUG(549, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy550;
- if (yych != 'd') goto yy270;
+ if (yych == 'C') goto yy550;
+ if (yych != 'c') goto yy272;
yy550:
YYDEBUG(550, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy551;
- if (yych != 'e') goto yy270;
+ if (yych == 'O') goto yy551;
+ if (yych != 'o') goto yy272;
yy551:
YYDEBUG(551, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy552;
+ if (yych != 'd') goto yy272;
+yy552:
+ YYDEBUG(552, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy553;
+ if (yych != 'e') goto yy272;
+yy553:
+ YYDEBUG(553, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(552, *YYCURSOR);
+ YYDEBUG(554, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy551;
- goto yy270;
+ if (yych == '\t') goto yy553;
+ goto yy272;
} else {
- if (yych <= ' ') goto yy551;
- if (yych != ')') goto yy270;
+ if (yych <= ' ') goto yy553;
+ if (yych != ')') goto yy272;
}
- YYDEBUG(553, *YYCURSOR);
+ YYDEBUG(555, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(554, *YYCURSOR);
+ YYDEBUG(556, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1636 "Zend/zend_language_scanner.l"
+#line 1641 "Zend/zend_language_scanner.l"
{
return T_UNICODE_CAST;
}
-#line 6471 "Zend/zend_language_scanner.c"
-yy555:
- YYDEBUG(555, *YYCURSOR);
+#line 6482 "Zend/zend_language_scanner.c"
+yy557:
+ YYDEBUG(557, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy556;
- if (yych != 't') goto yy270;
-yy556:
- YYDEBUG(556, *YYCURSOR);
+ if (yych == 'T') goto yy558;
+ if (yych != 't') goto yy272;
+yy558:
+ YYDEBUG(558, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(557, *YYCURSOR);
+ YYDEBUG(559, *YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy556;
- goto yy270;
+ if (yych == '\t') goto yy558;
+ goto yy272;
} else {
- if (yych <= ' ') goto yy556;
- if (yych != ')') goto yy270;
+ if (yych <= ' ') goto yy558;
+ if (yych != ')') goto yy272;
}
- YYDEBUG(558, *YYCURSOR);
+ YYDEBUG(560, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(559, *YYCURSOR);
+ YYDEBUG(561, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1656 "Zend/zend_language_scanner.l"
+#line 1661 "Zend/zend_language_scanner.l"
{
return T_UNSET_CAST;
}
-#line 6498 "Zend/zend_language_scanner.c"
-yy560:
- YYDEBUG(560, *YYCURSOR);
+#line 6509 "Zend/zend_language_scanner.c"
+yy562:
+ YYDEBUG(562, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy561;
- if (yych != 'r') goto yy280;
-yy561:
- YYDEBUG(561, *YYCURSOR);
+ if (yych == 'R') goto yy563;
+ if (yych != 'r') goto yy282;
+yy563:
+ YYDEBUG(563, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(562, *YYCURSOR);
+ YYDEBUG(564, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1620 "Zend/zend_language_scanner.l"
+#line 1625 "Zend/zend_language_scanner.l"
{
return T_VAR;
}
-#line 6516 "Zend/zend_language_scanner.c"
-yy563:
- YYDEBUG(563, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'M') goto yy567;
- if (yych == 'm') goto yy567;
- goto yy280;
-yy564:
- YYDEBUG(564, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'W') goto yy565;
- if (yych != 'w') goto yy280;
+#line 6527 "Zend/zend_language_scanner.c"
yy565:
YYDEBUG(565, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'M') goto yy569;
+ if (yych == 'm') goto yy569;
+ goto yy282;
+yy566:
+ YYDEBUG(566, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'W') goto yy567;
+ if (yych != 'w') 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 1612 "Zend/zend_language_scanner.l"
+#line 1617 "Zend/zend_language_scanner.l"
{
return T_NEW;
}
-#line 6540 "Zend/zend_language_scanner.c"
-yy567:
- YYDEBUG(567, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy568;
- if (yych != 'e') goto yy280;
-yy568:
- YYDEBUG(568, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy569;
- if (yych != 's') goto yy280;
+#line 6551 "Zend/zend_language_scanner.c"
yy569:
YYDEBUG(569, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy570;
- if (yych != 'p') goto yy280;
+ if (yych == 'E') goto yy570;
+ if (yych != 'e') goto yy282;
yy570:
YYDEBUG(570, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy571;
- if (yych != 'a') goto yy280;
+ if (yych == 'S') goto yy571;
+ if (yych != 's') goto yy282;
yy571:
YYDEBUG(571, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy572;
- if (yych != 'c') goto yy280;
+ if (yych == 'P') goto yy572;
+ if (yych != 'p') goto yy282;
yy572:
YYDEBUG(572, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy573;
- if (yych != 'e') goto yy280;
+ if (yych == 'A') goto yy573;
+ if (yych != 'a') goto yy282;
yy573:
YYDEBUG(573, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy574;
+ if (yych != 'c') goto yy282;
+yy574:
+ YYDEBUG(574, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy575;
+ if (yych != 'e') goto yy282;
+yy575:
+ YYDEBUG(575, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(574, *YYCURSOR);
+ YYDEBUG(576, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1680 "Zend/zend_language_scanner.l"
+#line 1685 "Zend/zend_language_scanner.l"
{
return T_NAMESPACE;
}
-#line 6583 "Zend/zend_language_scanner.c"
-yy575:
- YYDEBUG(575, *YYCURSOR);
+#line 6594 "Zend/zend_language_scanner.c"
+yy577:
+ YYDEBUG(577, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(576, *YYCURSOR);
+ YYDEBUG(578, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1608 "Zend/zend_language_scanner.l"
+#line 1609 "Zend/zend_language_scanner.l"
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 6593 "Zend/zend_language_scanner.c"
-yy577:
- YYDEBUG(577, *YYCURSOR);
+#line 6604 "Zend/zend_language_scanner.c"
+yy579:
+ YYDEBUG(579, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy578:
- YYDEBUG(578, *YYCURSOR);
+yy580:
+ YYDEBUG(580, *YYCURSOR);
if (yych <= '\f') {
if (yych <= 0x08) goto yy221;
- if (yych <= '\n') goto yy577;
+ if (yych <= '\n') goto yy579;
goto yy221;
} else {
- if (yych <= '\r') goto yy577;
- if (yych == ' ') goto yy577;
+ if (yych <= '\r') goto yy579;
+ if (yych == ' ') goto yy579;
goto yy221;
}
-yy579:
- YYDEBUG(579, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(580, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1780 "Zend/zend_language_scanner.l"
- {
- return T_MINUS_EQUAL;
-}
-#line 6619 "Zend/zend_language_scanner.c"
yy581:
YYDEBUG(581, *YYCURSOR);
++YYCURSOR;
YYDEBUG(582, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1748 "Zend/zend_language_scanner.l"
+#line 1785 "Zend/zend_language_scanner.l"
{
- return T_DEC;
+ return T_MINUS_EQUAL;
}
-#line 6629 "Zend/zend_language_scanner.c"
+#line 6630 "Zend/zend_language_scanner.c"
yy583:
YYDEBUG(583, *YYCURSOR);
++YYCURSOR;
YYDEBUG(584, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1574 "Zend/zend_language_scanner.l"
+#line 1753 "Zend/zend_language_scanner.l"
{
- yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
- return T_OBJECT_OPERATOR;
+ return T_DEC;
}
#line 6640 "Zend/zend_language_scanner.c"
yy585:
YYDEBUG(585, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(586, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1575 "Zend/zend_language_scanner.l"
+ {
+ yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+ return T_OBJECT_OPERATOR;
+}
+#line 6651 "Zend/zend_language_scanner.c"
+yy587:
+ YYDEBUG(587, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'I') goto yy592;
- if (yych <= 'N') goto yy280;
- goto yy593;
+ if (yych == 'I') goto yy594;
+ if (yych <= 'N') goto yy282;
+ goto yy595;
} else {
if (yych <= 'i') {
- if (yych <= 'h') goto yy280;
- goto yy592;
+ if (yych <= 'h') goto yy282;
+ goto yy594;
} else {
- if (yych == 'o') goto yy593;
- goto yy280;
+ if (yych == 'o') goto yy595;
+ goto yy282;
}
}
-yy586:
- YYDEBUG(586, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy587;
- if (yych != 'b') goto yy280;
-yy587:
- YYDEBUG(587, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy588;
- if (yych != 'l') goto yy280;
yy588:
YYDEBUG(588, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy589;
- if (yych != 'i') goto yy280;
+ if (yych == 'B') goto yy589;
+ if (yych != 'b') goto yy282;
yy589:
YYDEBUG(589, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy590;
- if (yych != 'c') goto yy280;
+ if (yych == 'L') goto yy590;
+ if (yych != 'l') goto yy282;
yy590:
YYDEBUG(590, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy591;
+ if (yych != 'i') goto yy282;
+yy591:
+ YYDEBUG(591, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy592;
+ if (yych != 'c') goto yy282;
+yy592:
+ YYDEBUG(592, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(591, *YYCURSOR);
+ YYDEBUG(593, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1724 "Zend/zend_language_scanner.l"
+#line 1729 "Zend/zend_language_scanner.l"
{
return T_PUBLIC;
}
-#line 6689 "Zend/zend_language_scanner.c"
-yy592:
- YYDEBUG(592, *YYCURSOR);
+#line 6700 "Zend/zend_language_scanner.c"
+yy594:
+ YYDEBUG(594, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'V') {
- if (yych == 'N') goto yy601;
- if (yych <= 'U') goto yy280;
- goto yy602;
+ if (yych == 'N') goto yy603;
+ if (yych <= 'U') goto yy282;
+ goto yy604;
} else {
if (yych <= 'n') {
- if (yych <= 'm') goto yy280;
- goto yy601;
+ if (yych <= 'm') goto yy282;
+ goto yy603;
} else {
- if (yych == 'v') goto yy602;
- goto yy280;
+ if (yych == 'v') goto yy604;
+ goto yy282;
}
}
-yy593:
- YYDEBUG(593, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy594;
- if (yych != 't') goto yy280;
-yy594:
- YYDEBUG(594, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy595;
- if (yych != 'e') goto yy280;
yy595:
YYDEBUG(595, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy596;
- if (yych != 'c') goto yy280;
+ if (yych == 'T') goto yy596;
+ if (yych != 't') goto yy282;
yy596:
YYDEBUG(596, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy597;
- if (yych != 't') goto yy280;
+ if (yych == 'E') goto yy597;
+ if (yych != 'e') goto yy282;
yy597:
YYDEBUG(597, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy598;
- if (yych != 'e') goto yy280;
+ if (yych == 'C') goto yy598;
+ if (yych != 'c') goto yy282;
yy598:
YYDEBUG(598, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy599;
- if (yych != 'd') goto yy280;
+ if (yych == 'T') goto yy599;
+ if (yych != 't') goto yy282;
yy599:
YYDEBUG(599, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy600;
+ if (yych != 'e') goto yy282;
+yy600:
+ YYDEBUG(600, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy601;
+ if (yych != 'd') goto yy282;
+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 1720 "Zend/zend_language_scanner.l"
+#line 1725 "Zend/zend_language_scanner.l"
{
return T_PROTECTED;
}
-#line 6748 "Zend/zend_language_scanner.c"
-yy601:
- YYDEBUG(601, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy607;
- if (yych == 't') goto yy607;
- goto yy280;
-yy602:
- YYDEBUG(602, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy603;
- if (yych != 'a') goto yy280;
+#line 6759 "Zend/zend_language_scanner.c"
yy603:
YYDEBUG(603, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy604;
- if (yych != 't') goto yy280;
+ if (yych == 'T') goto yy609;
+ if (yych == 't') goto yy609;
+ goto yy282;
yy604:
YYDEBUG(604, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy605;
- if (yych != 'e') goto yy280;
+ if (yych == 'A') goto yy605;
+ if (yych != 'a') goto yy282;
yy605:
YYDEBUG(605, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy606;
+ if (yych != 't') goto yy282;
+yy606:
+ YYDEBUG(606, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy607;
+ if (yych != 'e') goto yy282;
+yy607:
+ YYDEBUG(607, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(606, *YYCURSOR);
+ YYDEBUG(608, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1716 "Zend/zend_language_scanner.l"
+#line 1721 "Zend/zend_language_scanner.l"
{
return T_PRIVATE;
}
-#line 6782 "Zend/zend_language_scanner.c"
-yy607:
- YYDEBUG(607, *YYCURSOR);
+#line 6793 "Zend/zend_language_scanner.c"
+yy609:
+ YYDEBUG(609, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(608, *YYCURSOR);
+ YYDEBUG(610, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1554 "Zend/zend_language_scanner.l"
+#line 1555 "Zend/zend_language_scanner.l"
{
return T_PRINT;
}
-#line 6795 "Zend/zend_language_scanner.c"
-yy609:
- YYDEBUG(609, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy614;
- if (yych == 'o') goto yy614;
- goto yy280;
-yy610:
- YYDEBUG(610, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy611;
- if (yych != 't') goto yy280;
+#line 6806 "Zend/zend_language_scanner.c"
yy611:
YYDEBUG(611, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy612;
- if (yych != 'o') goto yy280;
+ if (yych == 'O') goto yy616;
+ if (yych == 'o') goto yy616;
+ goto yy282;
yy612:
YYDEBUG(612, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy613;
+ if (yych != 't') goto yy282;
+yy613:
+ YYDEBUG(613, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy614;
+ if (yych != 'o') goto yy282;
+yy614:
+ YYDEBUG(614, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(613, *YYCURSOR);
+ YYDEBUG(615, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1546 "Zend/zend_language_scanner.l"
+#line 1547 "Zend/zend_language_scanner.l"
{
return T_GOTO;
}
-#line 6824 "Zend/zend_language_scanner.c"
-yy614:
- YYDEBUG(614, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy615;
- if (yych != 'b') goto yy280;
-yy615:
- YYDEBUG(615, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy616;
- if (yych != 'a') goto yy280;
+#line 6835 "Zend/zend_language_scanner.c"
yy616:
YYDEBUG(616, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy617;
- if (yych != 'l') goto yy280;
+ if (yych == 'B') goto yy617;
+ if (yych != 'b') goto yy282;
yy617:
YYDEBUG(617, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy618;
+ if (yych != 'a') goto yy282;
+yy618:
+ YYDEBUG(618, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy619;
+ if (yych != 'l') goto yy282;
+yy619:
+ YYDEBUG(619, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(618, *YYCURSOR);
+ YYDEBUG(620, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1688 "Zend/zend_language_scanner.l"
+#line 1693 "Zend/zend_language_scanner.l"
{
return T_GLOBAL;
}
-#line 6852 "Zend/zend_language_scanner.c"
-yy619:
- YYDEBUG(619, *YYCURSOR);
+#line 6863 "Zend/zend_language_scanner.c"
+yy621:
+ YYDEBUG(621, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '<') goto yy642;
- goto yy270;
-yy620:
- YYDEBUG(620, *YYCURSOR);
+ if (yych == '<') goto yy644;
+ goto yy272;
+yy622:
+ YYDEBUG(622, *YYCURSOR);
yyaccept = 8;
yych = *(YYMARKER = ++YYCURSOR);
- goto yy635;
-yy621:
- YYDEBUG(621, *YYCURSOR);
+ goto yy637;
+yy623:
+ YYDEBUG(623, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2422 "Zend/zend_language_scanner.l"
+#line 2427 "Zend/zend_language_scanner.l"
{
BEGIN(ST_DOUBLE_QUOTES);
return T_BINARY_DOUBLE;
}
-#line 6871 "Zend/zend_language_scanner.c"
-yy622:
- YYDEBUG(622, *YYCURSOR);
+#line 6882 "Zend/zend_language_scanner.c"
+yy624:
+ YYDEBUG(624, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(623, *YYCURSOR);
- if (yych == '\'') goto yy630;
- if (yych == '\\') goto yy629;
- goto yy622;
-yy624:
- YYDEBUG(624, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy625;
- if (yych != 'e') goto yy280;
-yy625:
YYDEBUG(625, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy626;
- if (yych != 'a') goto yy280;
+ if (yych == '\'') goto yy632;
+ if (yych == '\\') goto yy631;
+ goto yy624;
yy626:
YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'K') goto yy627;
- if (yych != 'k') goto yy280;
+ if (yych == 'E') goto yy627;
+ if (yych != 'e') goto yy282;
yy627:
YYDEBUG(627, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy628;
+ if (yych != 'a') goto yy282;
+yy628:
+ YYDEBUG(628, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'K') goto yy629;
+ if (yych != 'k') goto yy282;
+yy629:
+ YYDEBUG(629, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(628, *YYCURSOR);
+ YYDEBUG(630, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1538 "Zend/zend_language_scanner.l"
+#line 1539 "Zend/zend_language_scanner.l"
{
return T_BREAK;
}
-#line 6908 "Zend/zend_language_scanner.c"
-yy629:
- YYDEBUG(629, *YYCURSOR);
+#line 6919 "Zend/zend_language_scanner.c"
+yy631:
+ YYDEBUG(631, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- goto yy622;
-yy630:
- YYDEBUG(630, *YYCURSOR);
+ goto yy624;
+yy632:
+ YYDEBUG(632, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(631, *YYCURSOR);
+ YYDEBUG(633, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2411 "Zend/zend_language_scanner.l"
+#line 2416 "Zend/zend_language_scanner.l"
{
zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 6925 "Zend/zend_language_scanner.c"
-yy632:
- YYDEBUG(632, *YYCURSOR);
+#line 6936 "Zend/zend_language_scanner.c"
+yy634:
+ YYDEBUG(634, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(633, *YYCURSOR);
+ YYDEBUG(635, *YYCURSOR);
if (yych <= '$') {
- if (yych == '"') goto yy639;
- if (yych >= '$') goto yy270;
+ if (yych == '"') goto yy641;
+ if (yych >= '$') goto yy272;
} else {
if (yych <= '\\') {
- if (yych >= '\\') goto yy636;
+ if (yych >= '\\') goto yy638;
} else {
- if (yych == '{') goto yy632;
+ if (yych == '{') goto yy634;
}
}
-yy634:
- YYDEBUG(634, *YYCURSOR);
+yy636:
+ YYDEBUG(636, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy635:
- YYDEBUG(635, *YYCURSOR);
+yy637:
+ YYDEBUG(637, *YYCURSOR);
if (yych <= '$') {
- if (yych == '"') goto yy639;
- if (yych <= '#') goto yy634;
- goto yy637;
+ if (yych == '"') goto yy641;
+ if (yych <= '#') goto yy636;
+ goto yy639;
} else {
if (yych <= '\\') {
- if (yych <= '[') goto yy634;
+ if (yych <= '[') goto yy636;
} else {
- if (yych == '{') goto yy632;
- goto yy634;
+ if (yych == '{') goto yy634;
+ goto yy636;
}
}
-yy636:
- YYDEBUG(636, *YYCURSOR);
+yy638:
+ YYDEBUG(638, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- goto yy634;
-yy637:
- YYDEBUG(637, *YYCURSOR);
+ goto yy636;
+yy639:
+ YYDEBUG(639, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(638, *YYCURSOR);
+ YYDEBUG(640, *YYCURSOR);
if (yych <= '[') {
if (yych <= '#') {
- if (yych != '"') goto yy634;
+ if (yych != '"') goto yy636;
} else {
- if (yych <= '$') goto yy637;
- if (yych <= '@') goto yy634;
- if (yych <= 'Z') goto yy270;
- goto yy634;
+ if (yych <= '$') goto yy639;
+ if (yych <= '@') goto yy636;
+ if (yych <= 'Z') goto yy272;
+ goto yy636;
}
} else {
if (yych <= '_') {
- if (yych <= '\\') goto yy641;
- if (yych <= '^') goto yy634;
- goto yy270;
+ if (yych <= '\\') goto yy643;
+ if (yych <= '^') goto yy636;
+ goto yy272;
} else {
- if (yych <= '`') goto yy634;
- if (yych <= '{') goto yy270;
- if (yych <= '~') goto yy634;
- goto yy270;
+ if (yych <= '`') goto yy636;
+ if (yych <= '{') goto yy272;
+ if (yych <= '~') goto yy636;
+ goto yy272;
}
}
-yy639:
- YYDEBUG(639, *YYCURSOR);
+yy641:
+ YYDEBUG(641, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(640, *YYCURSOR);
+ YYDEBUG(642, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2395 "Zend/zend_language_scanner.l"
+#line 2400 "Zend/zend_language_scanner.l"
{
zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 7004 "Zend/zend_language_scanner.c"
-yy641:
- YYDEBUG(641, *YYCURSOR);
+#line 7015 "Zend/zend_language_scanner.c"
+yy643:
+ YYDEBUG(643, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- goto yy634;
-yy642:
- YYDEBUG(642, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '<') goto yy359;
- goto yy270;
-yy643:
- YYDEBUG(643, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy650;
- if (yych == 'a') goto yy650;
- goto yy280;
+ goto yy636;
yy644:
YYDEBUG(644, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy645;
- if (yych != 'i') goto yy280;
+ if (yych == '<') goto yy361;
+ goto yy272;
yy645:
YYDEBUG(645, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy646;
- if (yych != 't') goto yy280;
+ if (yych == 'A') goto yy652;
+ if (yych == 'a') goto yy652;
+ goto yy282;
yy646:
YYDEBUG(646, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy647;
- if (yych != 'c') goto yy280;
+ if (yych == 'I') goto yy647;
+ if (yych != 'i') goto yy282;
yy647:
YYDEBUG(647, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy648;
- if (yych != 'h') goto yy280;
+ if (yych == 'T') goto yy648;
+ if (yych != 't') goto yy282;
yy648:
YYDEBUG(648, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy649;
+ if (yych != 'c') goto yy282;
+yy649:
+ YYDEBUG(649, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy650;
+ if (yych != 'h') goto yy282;
+yy650:
+ YYDEBUG(650, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(649, *YYCURSOR);
+ YYDEBUG(651, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1522 "Zend/zend_language_scanner.l"
+#line 1523 "Zend/zend_language_scanner.l"
{
return T_SWITCH;
}
-#line 7054 "Zend/zend_language_scanner.c"
-yy650:
- YYDEBUG(650, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy651;
- if (yych != 't') goto yy280;
-yy651:
- YYDEBUG(651, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy652;
- if (yych != 'i') goto yy280;
+#line 7065 "Zend/zend_language_scanner.c"
yy652:
YYDEBUG(652, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy653;
- if (yych != 'c') goto yy280;
+ if (yych == 'T') goto yy653;
+ if (yych != 't') goto yy282;
yy653:
YYDEBUG(653, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy654;
+ if (yych != 'i') goto yy282;
+yy654:
+ YYDEBUG(654, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy655;
+ if (yych != 'c') goto yy282;
+yy655:
+ YYDEBUG(655, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(654, *YYCURSOR);
+ YYDEBUG(656, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1704 "Zend/zend_language_scanner.l"
+#line 1709 "Zend/zend_language_scanner.l"
{
return T_STATIC;
}
-#line 7082 "Zend/zend_language_scanner.c"
-yy655:
- YYDEBUG(655, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy666;
- if (yych == 's') goto yy666;
- goto yy280;
-yy656:
- YYDEBUG(656, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy664;
- if (yych == 'd') goto yy664;
- goto yy280;
+#line 7093 "Zend/zend_language_scanner.c"
yy657:
YYDEBUG(657, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy660;
- if (yych == 'r') goto yy660;
- goto yy280;
+ if (yych == 'S') goto yy668;
+ if (yych == 's') goto yy668;
+ goto yy282;
yy658:
YYDEBUG(658, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy666;
+ if (yych == 'd') goto yy666;
+ goto yy282;
+yy659:
+ YYDEBUG(659, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy662;
+ if (yych == 'r') goto yy662;
+ goto yy282;
+yy660:
+ YYDEBUG(660, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(659, *YYCURSOR);
+ YYDEBUG(661, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1518 "Zend/zend_language_scanner.l"
+#line 1519 "Zend/zend_language_scanner.l"
{
return T_AS;
}
-#line 7113 "Zend/zend_language_scanner.c"
-yy660:
- YYDEBUG(660, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy661;
- if (yych != 'a') goto yy280;
-yy661:
- YYDEBUG(661, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'Y') goto yy662;
- if (yych != 'y') goto yy280;
+#line 7124 "Zend/zend_language_scanner.c"
yy662:
YYDEBUG(662, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy663;
+ if (yych != 'a') goto yy282;
+yy663:
+ YYDEBUG(663, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy664;
+ if (yych != 'y') goto yy282;
+yy664:
+ YYDEBUG(664, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(663, *YYCURSOR);
+ YYDEBUG(665, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1740 "Zend/zend_language_scanner.l"
+#line 1745 "Zend/zend_language_scanner.l"
{
return T_ARRAY;
}
-#line 7136 "Zend/zend_language_scanner.c"
-yy664:
- YYDEBUG(664, *YYCURSOR);
+#line 7147 "Zend/zend_language_scanner.c"
+yy666:
+ YYDEBUG(666, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(665, *YYCURSOR);
+ YYDEBUG(667, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1832 "Zend/zend_language_scanner.l"
+#line 1837 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_AND;
}
-#line 7149 "Zend/zend_language_scanner.c"
-yy666:
- YYDEBUG(666, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy667;
- if (yych != 't') goto yy280;
-yy667:
- YYDEBUG(667, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy668;
- if (yych != 'r') goto yy280;
+#line 7160 "Zend/zend_language_scanner.c"
yy668:
YYDEBUG(668, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy669;
- if (yych != 'a') goto yy280;
+ if (yych == 'T') goto yy669;
+ if (yych != 't') goto yy282;
yy669:
YYDEBUG(669, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy670;
- if (yych != 'c') goto yy280;
+ if (yych == 'R') goto yy670;
+ if (yych != 'r') goto yy282;
yy670:
YYDEBUG(670, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy671;
- if (yych != 't') goto yy280;
+ if (yych == 'A') goto yy671;
+ if (yych != 'a') goto yy282;
yy671:
YYDEBUG(671, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy672;
+ if (yych != 'c') goto yy282;
+yy672:
+ YYDEBUG(672, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy673;
+ if (yych != 't') goto yy282;
+yy673:
+ YYDEBUG(673, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(672, *YYCURSOR);
+ YYDEBUG(674, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1708 "Zend/zend_language_scanner.l"
+#line 1713 "Zend/zend_language_scanner.l"
{
return T_ABSTRACT;
}
-#line 7187 "Zend/zend_language_scanner.c"
-yy673:
- YYDEBUG(673, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy674;
- if (yych != 'i') goto yy280;
-yy674:
- YYDEBUG(674, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy675;
- if (yych != 'l') goto yy280;
+#line 7198 "Zend/zend_language_scanner.c"
yy675:
YYDEBUG(675, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy676;
- if (yych != 'e') goto yy280;
+ if (yych == 'I') goto yy676;
+ if (yych != 'i') goto yy282;
yy676:
YYDEBUG(676, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy677;
+ if (yych != 'l') goto yy282;
+yy677:
+ YYDEBUG(677, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy678;
+ if (yych != 'e') goto yy282;
+yy678:
+ YYDEBUG(678, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(677, *YYCURSOR);
+ YYDEBUG(679, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1478 "Zend/zend_language_scanner.l"
+#line 1479 "Zend/zend_language_scanner.l"
{
return T_WHILE;
}
-#line 7215 "Zend/zend_language_scanner.c"
-yy678:
- YYDEBUG(678, *YYCURSOR);
+#line 7226 "Zend/zend_language_scanner.c"
+yy680:
+ YYDEBUG(680, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(679, *YYCURSOR);
+ YYDEBUG(681, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1462 "Zend/zend_language_scanner.l"
+#line 1463 "Zend/zend_language_scanner.l"
{
return T_IF;
}
-#line 7228 "Zend/zend_language_scanner.c"
-yy680:
- YYDEBUG(680, *YYCURSOR);
+#line 7239 "Zend/zend_language_scanner.c"
+yy682:
+ YYDEBUG(682, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy716;
- if (yych == 'p') goto yy716;
- goto yy280;
-yy681:
- YYDEBUG(681, *YYCURSOR);
+ if (yych == 'P') goto yy718;
+ if (yych == 'p') goto yy718;
+ goto yy282;
+yy683:
+ YYDEBUG(683, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= 'C') {
- if (yych <= 'B') goto yy280;
- goto yy689;
+ if (yych <= 'B') goto yy282;
+ goto yy691;
} else {
- if (yych <= 'R') goto yy280;
- if (yych <= 'S') goto yy687;
- goto yy688;
+ if (yych <= 'R') goto yy282;
+ if (yych <= 'S') goto yy689;
+ goto yy690;
}
} else {
if (yych <= 'r') {
- if (yych == 'c') goto yy689;
- goto yy280;
+ if (yych == 'c') goto yy691;
+ goto yy282;
} else {
- if (yych <= 's') goto yy687;
- if (yych <= 't') goto yy688;
- goto yy280;
+ if (yych <= 's') goto yy689;
+ if (yych <= 't') goto yy690;
+ goto yy282;
}
}
-yy682:
- YYDEBUG(682, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy683;
- if (yych != 's') goto yy280;
-yy683:
- YYDEBUG(683, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy684;
- if (yych != 'e') goto yy280;
yy684:
YYDEBUG(684, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy685;
- if (yych != 't') goto yy280;
+ if (yych == 'S') goto yy685;
+ if (yych != 's') goto yy282;
yy685:
YYDEBUG(685, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy686;
+ if (yych != 'e') goto yy282;
+yy686:
+ YYDEBUG(686, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy687;
+ if (yych != 't') goto yy282;
+yy687:
+ YYDEBUG(687, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(686, *YYCURSOR);
+ YYDEBUG(688, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1692 "Zend/zend_language_scanner.l"
+#line 1697 "Zend/zend_language_scanner.l"
{
return T_ISSET;
}
-#line 7284 "Zend/zend_language_scanner.c"
-yy687:
- YYDEBUG(687, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy708;
- if (yych == 't') goto yy708;
- goto yy280;
-yy688:
- YYDEBUG(688, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy701;
- if (yych == 'e') goto yy701;
- goto yy280;
+#line 7295 "Zend/zend_language_scanner.c"
yy689:
YYDEBUG(689, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy690;
- if (yych != 'l') goto yy280;
+ if (yych == 'T') goto yy710;
+ if (yych == 't') goto yy710;
+ goto yy282;
yy690:
YYDEBUG(690, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy691;
- if (yych != 'u') goto yy280;
+ if (yych == 'E') goto yy703;
+ if (yych == 'e') goto yy703;
+ goto yy282;
yy691:
YYDEBUG(691, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy692;
- if (yych != 'd') goto yy280;
+ if (yych == 'L') goto yy692;
+ if (yych != 'l') goto yy282;
yy692:
YYDEBUG(692, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy693;
- if (yych != 'e') goto yy280;
+ if (yych == 'U') goto yy693;
+ if (yych != 'u') goto yy282;
yy693:
YYDEBUG(693, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy694;
+ if (yych != 'd') goto yy282;
+yy694:
+ YYDEBUG(694, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy695;
+ if (yych != 'e') goto yy282;
+yy695:
+ YYDEBUG(695, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy279;
+ if (yych >= '0') goto yy281;
} else {
- if (yych <= '@') goto yy694;
- if (yych <= 'Z') goto yy279;
+ if (yych <= '@') goto yy696;
+ if (yych <= 'Z') goto yy281;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy695;
+ if (yych <= '_') goto yy697;
} else {
- if (yych <= 'z') goto yy279;
- if (yych >= 0x7F) goto yy279;
+ if (yych <= 'z') goto yy281;
+ if (yych >= 0x7F) goto yy281;
}
}
-yy694:
- YYDEBUG(694, *YYCURSOR);
+yy696:
+ YYDEBUG(696, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1664 "Zend/zend_language_scanner.l"
+#line 1669 "Zend/zend_language_scanner.l"
{
return T_INCLUDE;
}
-#line 7342 "Zend/zend_language_scanner.c"
-yy695:
- YYDEBUG(695, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy696;
- if (yych != 'o') goto yy280;
-yy696:
- YYDEBUG(696, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy697;
- if (yych != 'n') goto yy280;
+#line 7353 "Zend/zend_language_scanner.c"
yy697:
YYDEBUG(697, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy698;
- if (yych != 'c') goto yy280;
+ if (yych == 'O') goto yy698;
+ if (yych != 'o') goto yy282;
yy698:
YYDEBUG(698, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy699;
- if (yych != 'e') goto yy280;
+ if (yych == 'N') goto yy699;
+ if (yych != 'n') goto yy282;
yy699:
YYDEBUG(699, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy700;
+ if (yych != 'c') goto yy282;
+yy700:
+ YYDEBUG(700, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy701;
+ if (yych != 'e') 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 1668 "Zend/zend_language_scanner.l"
+#line 1673 "Zend/zend_language_scanner.l"
{
return T_INCLUDE_ONCE;
}
-#line 7375 "Zend/zend_language_scanner.c"
-yy701:
- YYDEBUG(701, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy702;
- if (yych != 'r') goto yy280;
-yy702:
- YYDEBUG(702, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy703;
- if (yych != 'f') goto yy280;
+#line 7386 "Zend/zend_language_scanner.c"
yy703:
YYDEBUG(703, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy704;
- if (yych != 'a') goto yy280;
+ if (yych == 'R') goto yy704;
+ if (yych != 'r') goto yy282;
yy704:
YYDEBUG(704, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy705;
- if (yych != 'c') goto yy280;
+ if (yych == 'F') goto yy705;
+ if (yych != 'f') goto yy282;
yy705:
YYDEBUG(705, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy706;
- if (yych != 'e') goto yy280;
+ if (yych == 'A') goto yy706;
+ if (yych != 'a') goto yy282;
yy706:
YYDEBUG(706, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy707;
+ if (yych != 'c') goto yy282;
+yy707:
+ YYDEBUG(707, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy708;
+ if (yych != 'e') goto yy282;
+yy708:
+ YYDEBUG(708, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(707, *YYCURSOR);
+ YYDEBUG(709, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1562 "Zend/zend_language_scanner.l"
+#line 1563 "Zend/zend_language_scanner.l"
{
return T_INTERFACE;
}
-#line 7413 "Zend/zend_language_scanner.c"
-yy708:
- YYDEBUG(708, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy709;
- if (yych != 'a') goto yy280;
-yy709:
- YYDEBUG(709, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy710;
- if (yych != 'n') goto yy280;
+#line 7424 "Zend/zend_language_scanner.c"
yy710:
YYDEBUG(710, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy711;
- if (yych != 'c') goto yy280;
+ if (yych == 'A') goto yy711;
+ if (yych != 'a') goto yy282;
yy711:
YYDEBUG(711, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy712;
- if (yych != 'e') goto yy280;
+ if (yych == 'N') goto yy712;
+ if (yych != 'n') goto yy282;
yy712:
YYDEBUG(712, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy713;
- if (yych != 'o') goto yy280;
+ if (yych == 'C') goto yy713;
+ if (yych != 'c') goto yy282;
yy713:
YYDEBUG(713, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy714;
- if (yych != 'f') goto yy280;
+ if (yych == 'E') goto yy714;
+ if (yych != 'e') goto yy282;
yy714:
YYDEBUG(714, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy715;
+ if (yych != 'o') goto yy282;
+yy715:
+ YYDEBUG(715, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy716;
+ if (yych != 'f') goto yy282;
+yy716:
+ YYDEBUG(716, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(715, *YYCURSOR);
+ YYDEBUG(717, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1514 "Zend/zend_language_scanner.l"
+#line 1515 "Zend/zend_language_scanner.l"
{
return T_INSTANCEOF;
}
-#line 7456 "Zend/zend_language_scanner.c"
-yy716:
- YYDEBUG(716, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy717;
- if (yych != 'l') goto yy280;
-yy717:
- YYDEBUG(717, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy718;
- if (yych != 'e') goto yy280;
+#line 7467 "Zend/zend_language_scanner.c"
yy718:
YYDEBUG(718, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy719;
- if (yych != 'm') goto yy280;
+ if (yych == 'L') goto yy719;
+ if (yych != 'l') goto yy282;
yy719:
YYDEBUG(719, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == 'E') goto yy720;
- if (yych != 'e') goto yy280;
+ if (yych != 'e') goto yy282;
yy720:
YYDEBUG(720, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy721;
- if (yych != 'n') goto yy280;
+ if (yych == 'M') goto yy721;
+ if (yych != 'm') goto yy282;
yy721:
YYDEBUG(721, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy722;
- if (yych != 't') goto yy280;
+ if (yych == 'E') goto yy722;
+ if (yych != 'e') goto yy282;
yy722:
YYDEBUG(722, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy723;
- if (yych != 's') goto yy280;
+ if (yych == 'N') goto yy723;
+ if (yych != 'n') goto yy282;
yy723:
YYDEBUG(723, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy724;
+ if (yych != 't') goto yy282;
+yy724:
+ YYDEBUG(724, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy725;
+ if (yych != 's') goto yy282;
+yy725:
+ YYDEBUG(725, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(724, *YYCURSOR);
+ YYDEBUG(726, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1570 "Zend/zend_language_scanner.l"
+#line 1571 "Zend/zend_language_scanner.l"
{
return T_IMPLEMENTS;
}
-#line 7504 "Zend/zend_language_scanner.c"
-yy725:
- YYDEBUG(725, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy729;
- if (yych == 'r') goto yy729;
- goto yy280;
-yy726:
- YYDEBUG(726, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'Y') goto yy727;
- if (yych != 'y') goto yy280;
+#line 7515 "Zend/zend_language_scanner.c"
yy727:
YYDEBUG(727, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy731;
+ if (yych == 'r') goto yy731;
+ goto yy282;
+yy728:
+ YYDEBUG(728, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy729;
+ if (yych != 'y') goto yy282;
+yy729:
+ YYDEBUG(729, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(728, *YYCURSOR);
+ YYDEBUG(730, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1450 "Zend/zend_language_scanner.l"
+#line 1451 "Zend/zend_language_scanner.l"
{
return T_TRY;
}
-#line 7528 "Zend/zend_language_scanner.c"
-yy729:
- YYDEBUG(729, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy730;
- if (yych != 'o') goto yy280;
-yy730:
- YYDEBUG(730, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'W') goto yy731;
- if (yych != 'w') goto yy280;
+#line 7539 "Zend/zend_language_scanner.c"
yy731:
YYDEBUG(731, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy732;
+ if (yych != 'o') goto yy282;
+yy732:
+ YYDEBUG(732, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'W') goto yy733;
+ if (yych != 'w') goto yy282;
+yy733:
+ YYDEBUG(733, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(732, *YYCURSOR);
+ YYDEBUG(734, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1458 "Zend/zend_language_scanner.l"
+#line 1459 "Zend/zend_language_scanner.l"
{
return T_THROW;
}
-#line 7551 "Zend/zend_language_scanner.c"
-yy733:
- YYDEBUG(733, *YYCURSOR);
+#line 7562 "Zend/zend_language_scanner.c"
+yy735:
+ YYDEBUG(735, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
- if (yych == 'Q') goto yy735;
- if (yych <= 'S') goto yy280;
+ if (yych == 'Q') goto yy737;
+ if (yych <= 'S') goto yy282;
} else {
if (yych <= 'q') {
- if (yych <= 'p') goto yy280;
- goto yy735;
+ if (yych <= 'p') goto yy282;
+ goto yy737;
} else {
- if (yych != 't') goto yy280;
+ if (yych != 't') goto yy282;
}
}
- YYDEBUG(734, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy747;
- if (yych == 'u') goto yy747;
- goto yy280;
-yy735:
- YYDEBUG(735, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy736;
- if (yych != 'u') goto yy280;
-yy736:
YYDEBUG(736, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy737;
- if (yych != 'i') goto yy280;
+ if (yych == 'U') goto yy749;
+ if (yych == 'u') goto yy749;
+ goto yy282;
yy737:
YYDEBUG(737, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy738;
- if (yych != 'r') goto yy280;
+ if (yych == 'U') goto yy738;
+ if (yych != 'u') goto yy282;
yy738:
YYDEBUG(738, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy739;
- if (yych != 'e') goto yy280;
+ if (yych == 'I') goto yy739;
+ if (yych != 'i') goto yy282;
yy739:
YYDEBUG(739, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy740;
+ if (yych != 'r') goto yy282;
+yy740:
+ YYDEBUG(740, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy741;
+ if (yych != 'e') goto yy282;
+yy741:
+ YYDEBUG(741, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy279;
+ if (yych >= '0') goto yy281;
} else {
- if (yych <= '@') goto yy740;
- if (yych <= 'Z') goto yy279;
+ if (yych <= '@') goto yy742;
+ if (yych <= 'Z') goto yy281;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy741;
+ if (yych <= '_') goto yy743;
} else {
- if (yych <= 'z') goto yy279;
- if (yych >= 0x7F) goto yy279;
+ if (yych <= 'z') goto yy281;
+ if (yych >= 0x7F) goto yy281;
}
}
-yy740:
- YYDEBUG(740, *YYCURSOR);
+yy742:
+ YYDEBUG(742, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1672 "Zend/zend_language_scanner.l"
+#line 1677 "Zend/zend_language_scanner.l"
{
return T_REQUIRE;
}
-#line 7616 "Zend/zend_language_scanner.c"
-yy741:
- YYDEBUG(741, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy742;
- if (yych != 'o') goto yy280;
-yy742:
- YYDEBUG(742, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy743;
- if (yych != 'n') goto yy280;
+#line 7627 "Zend/zend_language_scanner.c"
yy743:
YYDEBUG(743, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy744;
- if (yych != 'c') goto yy280;
+ if (yych == 'O') goto yy744;
+ if (yych != 'o') goto yy282;
yy744:
YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy745;
- if (yych != 'e') goto yy280;
+ if (yych == 'N') goto yy745;
+ if (yych != 'n') goto yy282;
yy745:
YYDEBUG(745, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy746;
+ if (yych != 'c') goto yy282;
+yy746:
+ YYDEBUG(746, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy747;
+ if (yych != 'e') goto yy282;
+yy747:
+ YYDEBUG(747, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(746, *YYCURSOR);
+ YYDEBUG(748, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1676 "Zend/zend_language_scanner.l"
+#line 1681 "Zend/zend_language_scanner.l"
{
return T_REQUIRE_ONCE;
}
-#line 7649 "Zend/zend_language_scanner.c"
-yy747:
- YYDEBUG(747, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy748;
- if (yych != 'r') goto yy280;
-yy748:
- YYDEBUG(748, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy749;
- if (yych != 'n') goto yy280;
+#line 7660 "Zend/zend_language_scanner.c"
yy749:
YYDEBUG(749, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy750;
+ if (yych != 'r') goto yy282;
+yy750:
+ YYDEBUG(750, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy751;
+ if (yych != 'n') goto yy282;
+yy751:
+ YYDEBUG(751, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(750, *YYCURSOR);
+ YYDEBUG(752, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1446 "Zend/zend_language_scanner.l"
+#line 1447 "Zend/zend_language_scanner.l"
{
return T_RETURN;
}
-#line 7672 "Zend/zend_language_scanner.c"
-yy751:
- YYDEBUG(751, *YYCURSOR);
+#line 7683 "Zend/zend_language_scanner.c"
+yy753:
+ YYDEBUG(753, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'T') {
- if (yych <= 'R') goto yy280;
- if (yych <= 'S') goto yy773;
- goto yy772;
+ if (yych <= 'R') goto yy282;
+ if (yych <= 'S') goto yy775;
+ goto yy774;
} else {
- if (yych <= 'r') goto yy280;
- if (yych <= 's') goto yy773;
- if (yych <= 't') goto yy772;
- goto yy280;
+ if (yych <= 'r') goto yy282;
+ if (yych <= 's') goto yy775;
+ if (yych <= 't') goto yy774;
+ goto yy282;
}
-yy752:
- YYDEBUG(752, *YYCURSOR);
+yy754:
+ YYDEBUG(754, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'O') {
- if (yych == 'A') goto yy764;
- if (yych <= 'N') goto yy280;
- goto yy765;
+ if (yych == 'A') goto yy766;
+ if (yych <= 'N') goto yy282;
+ goto yy767;
} else {
if (yych <= 'a') {
- if (yych <= '`') goto yy280;
- goto yy764;
+ if (yych <= '`') goto yy282;
+ goto yy766;
} else {
- if (yych == 'o') goto yy765;
- goto yy280;
+ if (yych == 'o') goto yy767;
+ goto yy282;
}
}
-yy753:
- YYDEBUG(753, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy754;
- if (yych != 'n') goto yy280;
-yy754:
- YYDEBUG(754, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych <= 'R') goto yy280;
- if (yych >= 'T') goto yy756;
- } else {
- if (yych <= 'r') goto yy280;
- if (yych <= 's') goto yy755;
- if (yych <= 't') goto yy756;
- goto yy280;
- }
yy755:
YYDEBUG(755, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy762;
- if (yych == 't') goto yy762;
- goto yy280;
+ if (yych == 'N') goto yy756;
+ if (yych != 'n') goto yy282;
yy756:
YYDEBUG(756, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy757;
- if (yych != 'i') goto yy280;
+ if (yych <= 'T') {
+ if (yych <= 'R') goto yy282;
+ if (yych >= 'T') goto yy758;
+ } else {
+ if (yych <= 'r') goto yy282;
+ if (yych <= 's') goto yy757;
+ if (yych <= 't') goto yy758;
+ goto yy282;
+ }
yy757:
YYDEBUG(757, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy758;
- if (yych != 'n') goto yy280;
+ if (yych == 'T') goto yy764;
+ if (yych == 't') goto yy764;
+ goto yy282;
yy758:
YYDEBUG(758, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy759;
- if (yych != 'u') goto yy280;
+ if (yych == 'I') goto yy759;
+ if (yych != 'i') goto yy282;
yy759:
YYDEBUG(759, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy760;
- if (yych != 'e') goto yy280;
+ if (yych == 'N') goto yy760;
+ if (yych != 'n') goto yy282;
yy760:
YYDEBUG(760, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy761;
+ if (yych != 'u') goto yy282;
+yy761:
+ YYDEBUG(761, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy762;
+ if (yych != 'e') goto yy282;
+yy762:
+ YYDEBUG(762, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(761, *YYCURSOR);
+ YYDEBUG(763, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1542 "Zend/zend_language_scanner.l"
+#line 1543 "Zend/zend_language_scanner.l"
{
return T_CONTINUE;
}
-#line 7757 "Zend/zend_language_scanner.c"
-yy762:
- YYDEBUG(762, *YYCURSOR);
+#line 7768 "Zend/zend_language_scanner.c"
+yy764:
+ YYDEBUG(764, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(763, *YYCURSOR);
+ YYDEBUG(765, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1442 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
{
return T_CONST;
}
-#line 7770 "Zend/zend_language_scanner.c"
-yy764:
- YYDEBUG(764, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy769;
- if (yych == 's') goto yy769;
- goto yy280;
-yy765:
- YYDEBUG(765, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy766;
- if (yych != 'n') goto yy280;
+#line 7781 "Zend/zend_language_scanner.c"
yy766:
YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy767;
- if (yych != 'e') goto yy280;
+ if (yych == 'S') goto yy771;
+ if (yych == 's') goto yy771;
+ goto yy282;
yy767:
YYDEBUG(767, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy768;
+ if (yych != 'n') goto yy282;
+yy768:
+ YYDEBUG(768, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy769;
+ if (yych != 'e') goto yy282;
+yy769:
+ YYDEBUG(769, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(768, *YYCURSOR);
+ YYDEBUG(770, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1616 "Zend/zend_language_scanner.l"
+#line 1621 "Zend/zend_language_scanner.l"
{
return T_CLONE;
}
-#line 7799 "Zend/zend_language_scanner.c"
-yy769:
- YYDEBUG(769, *YYCURSOR);
+#line 7810 "Zend/zend_language_scanner.c"
+yy771:
+ YYDEBUG(771, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy770;
- if (yych != 's') goto yy280;
-yy770:
- YYDEBUG(770, *YYCURSOR);
+ if (yych == 'S') goto yy772;
+ if (yych != 's') 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 1558 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
{
return T_CLASS;
}
-#line 7817 "Zend/zend_language_scanner.c"
-yy772:
- YYDEBUG(772, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy776;
- if (yych == 'c') goto yy776;
- goto yy280;
-yy773:
- YYDEBUG(773, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy774;
- if (yych != 'e') goto yy280;
+#line 7828 "Zend/zend_language_scanner.c"
yy774:
YYDEBUG(774, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy778;
+ if (yych == 'c') goto yy778;
+ goto yy282;
+yy775:
+ YYDEBUG(775, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy776;
+ if (yych != 'e') 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 1530 "Zend/zend_language_scanner.l"
+#line 1531 "Zend/zend_language_scanner.l"
{
return T_CASE;
}
-#line 7841 "Zend/zend_language_scanner.c"
-yy776:
- YYDEBUG(776, *YYCURSOR);
+#line 7852 "Zend/zend_language_scanner.c"
+yy778:
+ YYDEBUG(778, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy777;
- if (yych != 'h') goto yy280;
-yy777:
- YYDEBUG(777, *YYCURSOR);
+ if (yych == 'H') goto yy779;
+ if (yych != 'h') goto yy282;
+yy779:
+ YYDEBUG(779, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(778, *YYCURSOR);
+ YYDEBUG(780, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1454 "Zend/zend_language_scanner.l"
+#line 1455 "Zend/zend_language_scanner.l"
{
return T_CATCH;
}
-#line 7859 "Zend/zend_language_scanner.c"
-yy779:
- YYDEBUG(779, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy796;
- if (yych == 'n') goto yy796;
- goto yy280;
-yy780:
- YYDEBUG(780, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy789;
- if (yych == 'r') goto yy789;
- goto yy280;
+#line 7870 "Zend/zend_language_scanner.c"
yy781:
YYDEBUG(781, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy782;
- if (yych != 'n') goto yy280;
+ if (yych == 'N') goto yy798;
+ if (yych == 'n') goto yy798;
+ goto yy282;
yy782:
YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy783;
- if (yych != 'c') goto yy280;
+ if (yych == 'R') goto yy791;
+ if (yych == 'r') goto yy791;
+ goto yy282;
yy783:
YYDEBUG(783, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy784;
- if (yych != 't') goto yy280;
+ if (yych == 'N') goto yy784;
+ if (yych != 'n') goto yy282;
yy784:
YYDEBUG(784, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy785;
- if (yych != 'i') goto yy280;
+ if (yych == 'C') goto yy785;
+ if (yych != 'c') goto yy282;
yy785:
YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy786;
- if (yych != 'o') goto yy280;
+ if (yych == 'T') goto yy786;
+ if (yych != 't') goto yy282;
yy786:
YYDEBUG(786, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy787;
- if (yych != 'n') goto yy280;
+ if (yych == 'I') goto yy787;
+ if (yych != 'i') goto yy282;
yy787:
YYDEBUG(787, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy788;
+ if (yych != 'o') goto yy282;
+yy788:
+ YYDEBUG(788, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy789;
+ if (yych != 'n') 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 1438 "Zend/zend_language_scanner.l"
+#line 1439 "Zend/zend_language_scanner.l"
{
return T_FUNCTION;
}
-#line 7914 "Zend/zend_language_scanner.c"
-yy789:
- YYDEBUG(789, *YYCURSOR);
+#line 7925 "Zend/zend_language_scanner.c"
+yy791:
+ YYDEBUG(791, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy790;
- if (yych <= '9') goto yy279;
+ if (yych <= '/') goto yy792;
+ if (yych <= '9') goto yy281;
} else {
- if (yych == 'E') goto yy791;
- if (yych <= 'Z') goto yy279;
+ if (yych == 'E') goto yy793;
+ if (yych <= 'Z') goto yy281;
}
} else {
if (yych <= 'd') {
- if (yych != '`') goto yy279;
+ if (yych != '`') goto yy281;
} else {
- if (yych <= 'e') goto yy791;
- if (yych <= 'z') goto yy279;
- if (yych >= 0x7F) goto yy279;
+ if (yych <= 'e') goto yy793;
+ if (yych <= 'z') goto yy281;
+ if (yych >= 0x7F) goto yy281;
}
}
-yy790:
- YYDEBUG(790, *YYCURSOR);
+yy792:
+ YYDEBUG(792, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1490 "Zend/zend_language_scanner.l"
+#line 1491 "Zend/zend_language_scanner.l"
{
return T_FOR;
}
-#line 7942 "Zend/zend_language_scanner.c"
-yy791:
- YYDEBUG(791, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy792;
- if (yych != 'a') goto yy280;
-yy792:
- YYDEBUG(792, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy793;
- if (yych != 'c') goto yy280;
+#line 7953 "Zend/zend_language_scanner.c"
yy793:
YYDEBUG(793, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy794;
- if (yych != 'h') goto yy280;
+ if (yych == 'A') goto yy794;
+ if (yych != 'a') goto yy282;
yy794:
YYDEBUG(794, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy795;
+ if (yych != 'c') goto yy282;
+yy795:
+ YYDEBUG(795, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy796;
+ if (yych != 'h') goto yy282;
+yy796:
+ YYDEBUG(796, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(795, *YYCURSOR);
+ YYDEBUG(797, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1498 "Zend/zend_language_scanner.l"
+#line 1499 "Zend/zend_language_scanner.l"
{
return T_FOREACH;
}
-#line 7970 "Zend/zend_language_scanner.c"
-yy796:
- YYDEBUG(796, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy797;
- if (yych != 'a') goto yy280;
-yy797:
- YYDEBUG(797, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy798;
- if (yych != 'l') goto yy280;
+#line 7981 "Zend/zend_language_scanner.c"
yy798:
YYDEBUG(798, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy799;
+ if (yych != 'a') goto yy282;
+yy799:
+ YYDEBUG(799, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy800;
+ if (yych != 'l') goto yy282;
+yy800:
+ YYDEBUG(800, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(799, *YYCURSOR);
+ YYDEBUG(801, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1712 "Zend/zend_language_scanner.l"
+#line 1717 "Zend/zend_language_scanner.l"
{
return T_FINAL;
}
-#line 7993 "Zend/zend_language_scanner.c"
-yy800:
- YYDEBUG(800, *YYCURSOR);
+#line 8004 "Zend/zend_language_scanner.c"
+yy802:
+ YYDEBUG(802, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'F') {
- if (yych == 'C') goto yy806;
- if (yych <= 'E') goto yy280;
- goto yy807;
+ if (yych == 'C') goto yy808;
+ if (yych <= 'E') goto yy282;
+ goto yy809;
} else {
if (yych <= 'c') {
- if (yych <= 'b') goto yy280;
- goto yy806;
+ if (yych <= 'b') goto yy282;
+ goto yy808;
} else {
- if (yych == 'f') goto yy807;
- goto yy280;
+ if (yych == 'f') goto yy809;
+ goto yy282;
}
}
-yy801:
- YYDEBUG(801, *YYCURSOR);
+yy803:
+ YYDEBUG(803, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy804;
- if (yych == 'e') goto yy804;
- goto yy280;
-yy802:
- YYDEBUG(802, *YYCURSOR);
+ if (yych == 'E') goto yy806;
+ if (yych == 'e') goto yy806;
+ goto yy282;
+yy804:
+ YYDEBUG(804, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(803, *YYCURSOR);
+ YYDEBUG(805, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1486 "Zend/zend_language_scanner.l"
+#line 1487 "Zend/zend_language_scanner.l"
{
return T_DO;
}
-#line 8028 "Zend/zend_language_scanner.c"
-yy804:
- YYDEBUG(804, *YYCURSOR);
+#line 8039 "Zend/zend_language_scanner.c"
+yy806:
+ YYDEBUG(806, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(805, *YYCURSOR);
+ YYDEBUG(807, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1434 "Zend/zend_language_scanner.l"
+#line 1435 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 8041 "Zend/zend_language_scanner.c"
-yy806:
- YYDEBUG(806, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy813;
- if (yych == 'l') goto yy813;
- goto yy280;
-yy807:
- YYDEBUG(807, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy808;
- if (yych != 'a') goto yy280;
+#line 8052 "Zend/zend_language_scanner.c"
yy808:
YYDEBUG(808, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy809;
- if (yych != 'u') goto yy280;
+ if (yych == 'L') goto yy815;
+ if (yych == 'l') goto yy815;
+ goto yy282;
yy809:
YYDEBUG(809, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy810;
- if (yych != 'l') goto yy280;
+ if (yych == 'A') goto yy810;
+ if (yych != 'a') goto yy282;
yy810:
YYDEBUG(810, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy811;
- if (yych != 't') goto yy280;
+ if (yych == 'U') goto yy811;
+ if (yych != 'u') goto yy282;
yy811:
YYDEBUG(811, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy812;
+ if (yych != 'l') goto yy282;
+yy812:
+ YYDEBUG(812, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy813;
+ if (yych != 't') goto yy282;
+yy813:
+ YYDEBUG(813, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(812, *YYCURSOR);
+ YYDEBUG(814, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1534 "Zend/zend_language_scanner.l"
+#line 1535 "Zend/zend_language_scanner.l"
{
return T_DEFAULT;
}
-#line 8080 "Zend/zend_language_scanner.c"
-yy813:
- YYDEBUG(813, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy814;
- if (yych != 'a') goto yy280;
-yy814:
- YYDEBUG(814, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy815;
- if (yych != 'r') goto yy280;
+#line 8091 "Zend/zend_language_scanner.c"
yy815:
YYDEBUG(815, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy816;
- if (yych != 'e') goto yy280;
+ if (yych == 'A') goto yy816;
+ if (yych != 'a') goto yy282;
yy816:
YYDEBUG(816, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy817;
+ if (yych != 'r') goto yy282;
+yy817:
+ YYDEBUG(817, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy818;
+ if (yych != 'e') goto yy282;
+yy818:
+ YYDEBUG(818, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(817, *YYCURSOR);
+ YYDEBUG(819, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1506 "Zend/zend_language_scanner.l"
+#line 1507 "Zend/zend_language_scanner.l"
{
return T_DECLARE;
}
-#line 8108 "Zend/zend_language_scanner.c"
-yy818:
- YYDEBUG(818, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy880;
- if (yych == 'h') goto yy880;
- goto yy280;
-yy819:
- YYDEBUG(819, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy874;
- if (yych == 's') goto yy874;
- goto yy280;
+#line 8119 "Zend/zend_language_scanner.c"
yy820:
YYDEBUG(820, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy870;
- if (yych == 'p') goto yy870;
- goto yy280;
+ if (yych == 'H') goto yy882;
+ if (yych == 'h') goto yy882;
+ goto yy282;
yy821:
YYDEBUG(821, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy836;
- if (yych == 'd') goto yy836;
- goto yy280;
+ if (yych == 'S') goto yy876;
+ if (yych == 's') goto yy876;
+ goto yy282;
yy822:
YYDEBUG(822, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy833;
- if (yych == 'a') goto yy833;
- goto yy280;
+ if (yych == 'P') goto yy872;
+ if (yych == 'p') goto yy872;
+ goto yy282;
yy823:
YYDEBUG(823, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych == 'I') goto yy824;
- if (yych <= 'S') goto yy280;
- goto yy825;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy280;
- } else {
- if (yych == 't') goto yy825;
- goto yy280;
- }
- }
+ if (yych == 'D') goto yy838;
+ if (yych == 'd') goto yy838;
+ goto yy282;
yy824:
YYDEBUG(824, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy831;
- if (yych == 't') goto yy831;
- goto yy280;
+ if (yych == 'A') goto yy835;
+ if (yych == 'a') goto yy835;
+ goto yy282;
yy825:
YYDEBUG(825, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy826;
- if (yych != 'e') goto yy280;
+ if (yych <= 'T') {
+ if (yych == 'I') goto yy826;
+ if (yych <= 'S') goto yy282;
+ goto yy827;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy282;
+ } else {
+ if (yych == 't') goto yy827;
+ goto yy282;
+ }
+ }
yy826:
YYDEBUG(826, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy827;
- if (yych != 'n') goto yy280;
+ if (yych == 'T') goto yy833;
+ if (yych == 't') goto yy833;
+ goto yy282;
yy827:
YYDEBUG(827, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy828;
- if (yych != 'd') goto yy280;
+ if (yych == 'E') goto yy828;
+ if (yych != 'e') goto yy282;
yy828:
YYDEBUG(828, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy829;
- if (yych != 's') goto yy280;
+ if (yych == 'N') goto yy829;
+ if (yych != 'n') goto yy282;
yy829:
YYDEBUG(829, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy830;
+ if (yych != 'd') goto yy282;
+yy830:
+ YYDEBUG(830, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy831;
+ if (yych != 's') goto yy282;
+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 1566 "Zend/zend_language_scanner.l"
+#line 1567 "Zend/zend_language_scanner.l"
{
return T_EXTENDS;
}
-#line 8192 "Zend/zend_language_scanner.c"
-yy831:
- YYDEBUG(831, *YYCURSOR);
+#line 8203 "Zend/zend_language_scanner.c"
+yy833:
+ YYDEBUG(833, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(832, *YYCURSOR);
+ YYDEBUG(834, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1431 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 8205 "Zend/zend_language_scanner.c"
-yy833:
- YYDEBUG(833, *YYCURSOR);
+#line 8216 "Zend/zend_language_scanner.c"
+yy835:
+ YYDEBUG(835, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy834;
- if (yych != 'l') goto yy280;
-yy834:
- YYDEBUG(834, *YYCURSOR);
+ if (yych == 'L') goto yy836;
+ if (yych != 'l') goto yy282;
+yy836:
+ YYDEBUG(836, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(835, *YYCURSOR);
+ YYDEBUG(837, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1660 "Zend/zend_language_scanner.l"
+#line 1665 "Zend/zend_language_scanner.l"
{
return T_EVAL;
}
-#line 8223 "Zend/zend_language_scanner.c"
-yy836:
- YYDEBUG(836, *YYCURSOR);
+#line 8234 "Zend/zend_language_scanner.c"
+yy838:
+ YYDEBUG(838, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
case 'D':
- case 'd': goto yy837;
+ case 'd': goto yy839;
case 'F':
- case 'f': goto yy838;
+ case 'f': goto yy840;
case 'I':
- case 'i': goto yy839;
+ case 'i': goto yy841;
case 'S':
- case 's': goto yy840;
+ case 's': goto yy842;
case 'W':
- case 'w': goto yy841;
- default: goto yy280;
+ case 'w': goto yy843;
+ default: goto yy282;
}
-yy837:
- YYDEBUG(837, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy863;
- if (yych == 'e') goto yy863;
- goto yy280;
-yy838:
- YYDEBUG(838, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy855;
- if (yych == 'o') goto yy855;
- goto yy280;
yy839:
YYDEBUG(839, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy853;
- if (yych == 'f') goto yy853;
- goto yy280;
+ if (yych == 'E') goto yy865;
+ if (yych == 'e') goto yy865;
+ goto yy282;
yy840:
YYDEBUG(840, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'W') goto yy847;
- if (yych == 'w') goto yy847;
- goto yy280;
+ if (yych == 'O') goto yy857;
+ if (yych == 'o') goto yy857;
+ goto yy282;
yy841:
YYDEBUG(841, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy842;
- if (yych != 'h') goto yy280;
+ if (yych == 'F') goto yy855;
+ if (yych == 'f') goto yy855;
+ goto yy282;
yy842:
YYDEBUG(842, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy843;
- if (yych != 'i') goto yy280;
+ if (yych == 'W') goto yy849;
+ if (yych == 'w') goto yy849;
+ goto yy282;
yy843:
YYDEBUG(843, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy844;
- if (yych != 'l') goto yy280;
+ if (yych == 'H') goto yy844;
+ if (yych != 'h') goto yy282;
yy844:
YYDEBUG(844, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy845;
- if (yych != 'e') goto yy280;
+ if (yych == 'I') goto yy845;
+ if (yych != 'i') goto yy282;
yy845:
YYDEBUG(845, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy846;
+ if (yych != 'l') goto yy282;
+yy846:
+ YYDEBUG(846, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy847;
+ if (yych != 'e') goto yy282;
+yy847:
+ YYDEBUG(847, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(846, *YYCURSOR);
+ YYDEBUG(848, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1482 "Zend/zend_language_scanner.l"
+#line 1483 "Zend/zend_language_scanner.l"
{
return T_ENDWHILE;
}
-#line 8297 "Zend/zend_language_scanner.c"
-yy847:
- YYDEBUG(847, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy848;
- if (yych != 'i') goto yy280;
-yy848:
- YYDEBUG(848, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy849;
- if (yych != 't') goto yy280;
+#line 8308 "Zend/zend_language_scanner.c"
yy849:
YYDEBUG(849, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy850;
- if (yych != 'c') goto yy280;
+ if (yych == 'I') goto yy850;
+ if (yych != 'i') goto yy282;
yy850:
YYDEBUG(850, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy851;
- if (yych != 'h') goto yy280;
+ if (yych == 'T') goto yy851;
+ if (yych != 't') goto yy282;
yy851:
YYDEBUG(851, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy852;
+ if (yych != 'c') goto yy282;
+yy852:
+ YYDEBUG(852, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy853;
+ if (yych != 'h') goto yy282;
+yy853:
+ YYDEBUG(853, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(852, *YYCURSOR);
+ YYDEBUG(854, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1526 "Zend/zend_language_scanner.l"
+#line 1527 "Zend/zend_language_scanner.l"
{
return T_ENDSWITCH;
}
-#line 8330 "Zend/zend_language_scanner.c"
-yy853:
- YYDEBUG(853, *YYCURSOR);
+#line 8341 "Zend/zend_language_scanner.c"
+yy855:
+ YYDEBUG(855, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(854, *YYCURSOR);
+ YYDEBUG(856, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1470 "Zend/zend_language_scanner.l"
+#line 1471 "Zend/zend_language_scanner.l"
{
return T_ENDIF;
}
-#line 8343 "Zend/zend_language_scanner.c"
-yy855:
- YYDEBUG(855, *YYCURSOR);
+#line 8354 "Zend/zend_language_scanner.c"
+yy857:
+ YYDEBUG(857, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy856;
- if (yych != 'r') goto yy280;
-yy856:
- YYDEBUG(856, *YYCURSOR);
+ if (yych == 'R') goto yy858;
+ if (yych != 'r') goto yy282;
+yy858:
+ YYDEBUG(858, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy857;
- if (yych <= '9') goto yy279;
+ if (yych <= '/') goto yy859;
+ if (yych <= '9') goto yy281;
} else {
- if (yych == 'E') goto yy858;
- if (yych <= 'Z') goto yy279;
+ if (yych == 'E') goto yy860;
+ if (yych <= 'Z') goto yy281;
}
} else {
if (yych <= 'd') {
- if (yych != '`') goto yy279;
+ if (yych != '`') goto yy281;
} else {
- if (yych <= 'e') goto yy858;
- if (yych <= 'z') goto yy279;
- if (yych >= 0x7F) goto yy279;
+ if (yych <= 'e') goto yy860;
+ if (yych <= 'z') goto yy281;
+ if (yych >= 0x7F) goto yy281;
}
}
-yy857:
- YYDEBUG(857, *YYCURSOR);
+yy859:
+ YYDEBUG(859, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1494 "Zend/zend_language_scanner.l"
+#line 1495 "Zend/zend_language_scanner.l"
{
return T_ENDFOR;
}
-#line 8376 "Zend/zend_language_scanner.c"
-yy858:
- YYDEBUG(858, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy859;
- if (yych != 'a') goto yy280;
-yy859:
- YYDEBUG(859, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy860;
- if (yych != 'c') goto yy280;
+#line 8387 "Zend/zend_language_scanner.c"
yy860:
YYDEBUG(860, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy861;
- if (yych != 'h') goto yy280;
+ if (yych == 'A') goto yy861;
+ if (yych != 'a') goto yy282;
yy861:
YYDEBUG(861, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy862;
+ if (yych != 'c') goto yy282;
+yy862:
+ YYDEBUG(862, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy863;
+ if (yych != 'h') goto yy282;
+yy863:
+ YYDEBUG(863, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(862, *YYCURSOR);
+ YYDEBUG(864, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1502 "Zend/zend_language_scanner.l"
+#line 1503 "Zend/zend_language_scanner.l"
{
return T_ENDFOREACH;
}
-#line 8404 "Zend/zend_language_scanner.c"
-yy863:
- YYDEBUG(863, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy864;
- if (yych != 'c') goto yy280;
-yy864:
- YYDEBUG(864, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy865;
- if (yych != 'l') goto yy280;
+#line 8415 "Zend/zend_language_scanner.c"
yy865:
YYDEBUG(865, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy866;
- if (yych != 'a') goto yy280;
+ if (yych == 'C') goto yy866;
+ if (yych != 'c') goto yy282;
yy866:
YYDEBUG(866, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy867;
- if (yych != 'r') goto yy280;
+ if (yych == 'L') goto yy867;
+ if (yych != 'l') goto yy282;
yy867:
YYDEBUG(867, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy868;
- if (yych != 'e') goto yy280;
+ if (yych == 'A') goto yy868;
+ if (yych != 'a') goto yy282;
yy868:
YYDEBUG(868, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy869;
+ if (yych != 'r') goto yy282;
+yy869:
+ YYDEBUG(869, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy870;
+ if (yych != 'e') goto yy282;
+yy870:
+ YYDEBUG(870, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(869, *YYCURSOR);
+ YYDEBUG(871, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1510 "Zend/zend_language_scanner.l"
+#line 1511 "Zend/zend_language_scanner.l"
{
return T_ENDDECLARE;
}
-#line 8442 "Zend/zend_language_scanner.c"
-yy870:
- YYDEBUG(870, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy871;
- if (yych != 't') goto yy280;
-yy871:
- YYDEBUG(871, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'Y') goto yy872;
- if (yych != 'y') goto yy280;
+#line 8453 "Zend/zend_language_scanner.c"
yy872:
YYDEBUG(872, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy873;
+ if (yych != 't') goto yy282;
+yy873:
+ YYDEBUG(873, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy874;
+ if (yych != 'y') goto yy282;
+yy874:
+ YYDEBUG(874, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(873, *YYCURSOR);
+ YYDEBUG(875, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1696 "Zend/zend_language_scanner.l"
+#line 1701 "Zend/zend_language_scanner.l"
{
return T_EMPTY;
}
-#line 8465 "Zend/zend_language_scanner.c"
-yy874:
- YYDEBUG(874, *YYCURSOR);
+#line 8476 "Zend/zend_language_scanner.c"
+yy876:
+ YYDEBUG(876, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy875;
- if (yych != 'e') goto yy280;
-yy875:
- YYDEBUG(875, *YYCURSOR);
+ if (yych == 'E') goto yy877;
+ if (yych != 'e') goto yy282;
+yy877:
+ YYDEBUG(877, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '^') {
if (yych <= '@') {
- if (yych <= '/') goto yy876;
- if (yych <= '9') goto yy279;
+ if (yych <= '/') goto yy878;
+ if (yych <= '9') goto yy281;
} else {
- if (yych == 'I') goto yy877;
- if (yych <= 'Z') goto yy279;
+ if (yych == 'I') goto yy879;
+ if (yych <= 'Z') goto yy281;
}
} else {
if (yych <= 'h') {
- if (yych != '`') goto yy279;
+ if (yych != '`') goto yy281;
} else {
- if (yych <= 'i') goto yy877;
- if (yych <= 'z') goto yy279;
- if (yych >= 0x7F) goto yy279;
+ if (yych <= 'i') goto yy879;
+ if (yych <= 'z') goto yy281;
+ if (yych >= 0x7F) goto yy281;
}
}
-yy876:
- YYDEBUG(876, *YYCURSOR);
+yy878:
+ YYDEBUG(878, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1474 "Zend/zend_language_scanner.l"
+#line 1475 "Zend/zend_language_scanner.l"
{
return T_ELSE;
}
-#line 8498 "Zend/zend_language_scanner.c"
-yy877:
- YYDEBUG(877, *YYCURSOR);
+#line 8509 "Zend/zend_language_scanner.c"
+yy879:
+ YYDEBUG(879, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy878;
- if (yych != 'f') goto yy280;
-yy878:
- YYDEBUG(878, *YYCURSOR);
+ if (yych == 'F') goto yy880;
+ if (yych != 'f') goto yy282;
+yy880:
+ YYDEBUG(880, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(879, *YYCURSOR);
+ YYDEBUG(881, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1466 "Zend/zend_language_scanner.l"
+#line 1467 "Zend/zend_language_scanner.l"
{
return T_ELSEIF;
}
-#line 8516 "Zend/zend_language_scanner.c"
-yy880:
- YYDEBUG(880, *YYCURSOR);
+#line 8527 "Zend/zend_language_scanner.c"
+yy882:
+ YYDEBUG(882, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy881;
- if (yych != 'o') goto yy280;
-yy881:
- YYDEBUG(881, *YYCURSOR);
+ if (yych == 'O') goto yy883;
+ if (yych != 'o') goto yy282;
+yy883:
+ YYDEBUG(883, *YYCURSOR);
++YYCURSOR;
if (yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy279;
+ goto yy281;
}
- YYDEBUG(882, *YYCURSOR);
+ YYDEBUG(884, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1550 "Zend/zend_language_scanner.l"
+#line 1551 "Zend/zend_language_scanner.l"
{
return T_ECHO;
}
-#line 8534 "Zend/zend_language_scanner.c"
+#line 8545 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
@@ -8569,41 +8580,41 @@ yyc_ST_LOOKING_FOR_PROPERTY:
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
};
- YYDEBUG(883, *YYCURSOR);
+ YYDEBUG(885, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '-') {
if (yych <= '\r') {
- if (yych <= 0x08) goto yy891;
- if (yych <= '\n') goto yy885;
- if (yych <= '\f') goto yy891;
+ if (yych <= 0x08) goto yy893;
+ if (yych <= '\n') goto yy887;
+ if (yych <= '\f') goto yy893;
} else {
- if (yych == ' ') goto yy885;
- if (yych <= ',') goto yy891;
- goto yy887;
+ if (yych == ' ') goto yy887;
+ if (yych <= ',') goto yy893;
+ goto yy889;
}
} else {
if (yych <= '_') {
- if (yych <= '@') goto yy891;
- if (yych <= 'Z') goto yy889;
- if (yych <= '^') goto yy891;
- goto yy889;
+ if (yych <= '@') goto yy893;
+ if (yych <= 'Z') goto yy891;
+ if (yych <= '^') goto yy893;
+ goto yy891;
} else {
- if (yych <= '`') goto yy891;
- if (yych <= 'z') goto yy889;
- if (yych <= '~') goto yy891;
- goto yy889;
+ if (yych <= '`') goto yy893;
+ if (yych <= 'z') goto yy891;
+ if (yych <= '~') goto yy893;
+ goto yy891;
}
}
-yy885:
- YYDEBUG(885, *YYCURSOR);
+yy887:
+ YYDEBUG(887, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy897;
-yy886:
- YYDEBUG(886, *YYCURSOR);
+ goto yy899;
+yy888:
+ YYDEBUG(888, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1579 "Zend/zend_language_scanner.l"
+#line 1580 "Zend/zend_language_scanner.l"
{
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
Z_STRLEN_P(zendlval) = yyleng;
@@ -8611,30 +8622,30 @@ yy886:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 8615 "Zend/zend_language_scanner.c"
-yy887:
- YYDEBUG(887, *YYCURSOR);
+#line 8626 "Zend/zend_language_scanner.c"
+yy889:
+ YYDEBUG(889, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy894;
-yy888:
- YYDEBUG(888, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '>') goto yy896;
+yy890:
+ YYDEBUG(890, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1602 "Zend/zend_language_scanner.l"
+#line 1603 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 8629 "Zend/zend_language_scanner.c"
-yy889:
- YYDEBUG(889, *YYCURSOR);
+#line 8640 "Zend/zend_language_scanner.c"
+yy891:
+ YYDEBUG(891, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy893;
-yy890:
- YYDEBUG(890, *YYCURSOR);
+ goto yy895;
+yy892:
+ YYDEBUG(892, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1591 "Zend/zend_language_scanner.l"
+#line 1592 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -8645,43 +8656,43 @@ yy890:
}
return T_STRING;
}
-#line 8649 "Zend/zend_language_scanner.c"
-yy891:
- YYDEBUG(891, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy888;
-yy892:
- YYDEBUG(892, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+#line 8660 "Zend/zend_language_scanner.c"
yy893:
YYDEBUG(893, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy892;
- }
+ yych = *++YYCURSOR;
goto yy890;
yy894:
YYDEBUG(894, *YYCURSOR);
++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+yy895:
YYDEBUG(895, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy894;
+ }
+ goto yy892;
+yy896:
+ YYDEBUG(896, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(897, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1587 "Zend/zend_language_scanner.l"
+#line 1588 "Zend/zend_language_scanner.l"
{
return T_OBJECT_OPERATOR;
}
-#line 8674 "Zend/zend_language_scanner.c"
-yy896:
- YYDEBUG(896, *YYCURSOR);
+#line 8685 "Zend/zend_language_scanner.c"
+yy898:
+ YYDEBUG(898, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy897:
- YYDEBUG(897, *YYCURSOR);
+yy899:
+ YYDEBUG(899, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy896;
+ goto yy898;
}
- goto yy886;
+ goto yy888;
}
/* *********************************** */
yyc_ST_LOOKING_FOR_VARNAME:
@@ -8720,27 +8731,27 @@ yyc_ST_LOOKING_FOR_VARNAME:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(898, *YYCURSOR);
+ YYDEBUG(900, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy902;
- if (yych <= 'Z') goto yy900;
- if (yych <= '^') goto yy902;
+ if (yych <= '@') goto yy904;
+ if (yych <= 'Z') goto yy902;
+ if (yych <= '^') goto yy904;
} else {
- if (yych <= '`') goto yy902;
- if (yych <= 'z') goto yy900;
- if (yych <= '~') goto yy902;
+ if (yych <= '`') goto yy904;
+ if (yych <= 'z') goto yy902;
+ if (yych <= '~') goto yy904;
}
-yy900:
- YYDEBUG(900, *YYCURSOR);
+yy902:
+ YYDEBUG(902, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy905;
-yy901:
- YYDEBUG(901, *YYCURSOR);
+ goto yy907;
+yy903:
+ YYDEBUG(903, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1879 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -8752,31 +8763,31 @@ yy901:
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
-#line 8756 "Zend/zend_language_scanner.c"
-yy902:
- YYDEBUG(902, *YYCURSOR);
+#line 8767 "Zend/zend_language_scanner.c"
+yy904:
+ YYDEBUG(904, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(903, *YYCURSOR);
+ YYDEBUG(905, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1887 "Zend/zend_language_scanner.l"
+#line 1892 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 8769 "Zend/zend_language_scanner.c"
-yy904:
- YYDEBUG(904, *YYCURSOR);
+#line 8780 "Zend/zend_language_scanner.c"
+yy906:
+ YYDEBUG(906, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy905:
- YYDEBUG(905, *YYCURSOR);
+yy907:
+ YYDEBUG(907, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy904;
+ goto yy906;
}
- goto yy901;
+ goto yy903;
}
/* *********************************** */
yyc_ST_NOWDOC:
@@ -8815,106 +8826,106 @@ yyc_ST_NOWDOC:
144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144,
};
- YYDEBUG(906, *YYCURSOR);
+ YYDEBUG(908, *YYCURSOR);
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 16) {
- goto yy908;
+ goto yy910;
}
- if (yych <= '\f') goto yy910;
- goto yy912;
-yy908:
- YYDEBUG(908, *YYCURSOR);
+ if (yych <= '\f') goto yy912;
+ goto yy914;
+yy910:
+ YYDEBUG(910, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(909, *YYCURSOR);
+ YYDEBUG(911, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy908;
+ goto yy910;
}
- if (yych <= '\f') goto yy919;
- goto yy921;
-yy910:
- YYDEBUG(910, *YYCURSOR);
+ if (yych <= '\f') goto yy921;
+ goto yy923;
+yy912:
+ YYDEBUG(912, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(911, *YYCURSOR);
+ YYDEBUG(913, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy910;
+ goto yy912;
}
if (yych <= '^') {
if (yych <= '\r') {
- if (yych <= '\f') goto yy908;
+ if (yych <= '\f') goto yy910;
} else {
- if (yych <= '@') goto yy908;
- if (yych <= 'Z') goto yy914;
- goto yy908;
+ if (yych <= '@') goto yy910;
+ if (yych <= 'Z') goto yy916;
+ goto yy910;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy914;
- goto yy908;
+ if (yych <= '_') goto yy916;
+ goto yy910;
} else {
- if (yych <= 'z') goto yy914;
- if (yych <= '~') goto yy908;
- goto yy914;
+ if (yych <= 'z') goto yy916;
+ if (yych <= '~') goto yy910;
+ goto yy916;
}
}
-yy912:
- YYDEBUG(912, *YYCURSOR);
+yy914:
+ YYDEBUG(914, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(913, *YYCURSOR);
+ YYDEBUG(915, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy910;
+ goto yy912;
}
if (yych <= '^') {
if (yych <= '\r') {
- if (yych <= '\f') goto yy908;
- goto yy912;
+ if (yych <= '\f') goto yy910;
+ goto yy914;
} else {
- if (yych <= '@') goto yy908;
- if (yych >= '[') goto yy908;
+ if (yych <= '@') goto yy910;
+ if (yych >= '[') goto yy910;
}
} else {
if (yych <= '`') {
- if (yych >= '`') goto yy908;
+ if (yych >= '`') goto yy910;
} else {
- if (yych <= 'z') goto yy914;
- if (yych <= '~') goto yy908;
+ if (yych <= 'z') goto yy916;
+ if (yych <= '~') goto yy910;
}
}
-yy914:
- YYDEBUG(914, *YYCURSOR);
+yy916:
+ YYDEBUG(916, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(915, *YYCURSOR);
+ YYDEBUG(917, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy914;
+ goto yy916;
}
if (yych <= '\f') {
- if (yych == '\n') goto yy917;
- goto yy908;
+ if (yych == '\n') goto yy919;
+ goto yy910;
} else {
- if (yych <= '\r') goto yy917;
- if (yych != ';') goto yy908;
+ if (yych <= '\r') goto yy919;
+ if (yych != ';') goto yy910;
}
- YYDEBUG(916, *YYCURSOR);
+ YYDEBUG(918, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 16) {
- goto yy908;
+ goto yy910;
}
-yy917:
- YYDEBUG(917, *YYCURSOR);
+yy919:
+ YYDEBUG(919, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(918, *YYCURSOR);
+ YYDEBUG(920, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2623 "Zend/zend_language_scanner.l"
+#line 2628 "Zend/zend_language_scanner.l"
{
char *end = yytext + yyleng - 1;
@@ -8955,55 +8966,55 @@ yy917:
yymore();
}
}
-#line 8959 "Zend/zend_language_scanner.c"
-yy919:
- YYDEBUG(919, *YYCURSOR);
+#line 8970 "Zend/zend_language_scanner.c"
+yy921:
+ YYDEBUG(921, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(920, *YYCURSOR);
+ YYDEBUG(922, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '\f') {
- if (yych == '\n') goto yy919;
- goto yy908;
+ if (yych == '\n') goto yy921;
+ goto yy910;
} else {
- if (yych <= '\r') goto yy921;
- if (yych <= '@') goto yy908;
- goto yy914;
+ if (yych <= '\r') goto yy923;
+ if (yych <= '@') goto yy910;
+ goto yy916;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy914;
- goto yy908;
+ if (yych == '_') goto yy916;
+ goto yy910;
} else {
- if (yych <= 'z') goto yy914;
- if (yych <= '~') goto yy908;
- goto yy914;
+ if (yych <= 'z') goto yy916;
+ if (yych <= '~') goto yy910;
+ goto yy916;
}
}
-yy921:
- YYDEBUG(921, *YYCURSOR);
+yy923:
+ YYDEBUG(923, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(922, *YYCURSOR);
+ YYDEBUG(924, *YYCURSOR);
if (yych <= 'Z') {
if (yych <= '\f') {
- if (yych == '\n') goto yy919;
- goto yy908;
+ if (yych == '\n') goto yy921;
+ goto yy910;
} else {
- if (yych <= '\r') goto yy921;
- if (yych <= '@') goto yy908;
- goto yy914;
+ if (yych <= '\r') goto yy923;
+ if (yych <= '@') goto yy910;
+ goto yy916;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy914;
- goto yy908;
+ if (yych == '_') goto yy916;
+ goto yy910;
} else {
- if (yych <= 'z') goto yy914;
- if (yych <= '~') goto yy908;
- goto yy914;
+ if (yych <= 'z') goto yy916;
+ if (yych <= '~') goto yy910;
+ goto yy916;
}
}
}
@@ -9044,52 +9055,52 @@ yyc_ST_ONE_LINE_COMMENT:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(923, *YYCURSOR);
+ YYDEBUG(925, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy929;
+ goto yy931;
}
- if (yych <= '\f') goto yy932;
- if (yych <= '\r') goto yy933;
- if (yych <= '=') goto yy925;
- if (yych <= '>') goto yy927;
- goto yy928;
-yy925:
- YYDEBUG(925, *YYCURSOR);
+ if (yych <= '\f') goto yy934;
+ if (yych <= '\r') goto yy935;
+ if (yych <= '=') goto yy927;
+ if (yych <= '>') goto yy929;
+ goto yy930;
+yy927:
+ YYDEBUG(927, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy937;
-yy926:
- YYDEBUG(926, *YYCURSOR);
+ if ((yych = *YYCURSOR) == '>') goto yy939;
+yy928:
+ YYDEBUG(928, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2277 "Zend/zend_language_scanner.l"
+#line 2282 "Zend/zend_language_scanner.l"
{
yymore();
}
-#line 9070 "Zend/zend_language_scanner.c"
-yy927:
- YYDEBUG(927, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy926;
-yy928:
- YYDEBUG(928, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '>') goto yy937;
- goto yy926;
+#line 9081 "Zend/zend_language_scanner.c"
yy929:
YYDEBUG(929, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy928;
+yy930:
+ YYDEBUG(930, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy939;
+ goto yy928;
+yy931:
+ YYDEBUG(931, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(930, *YYCURSOR);
+ YYDEBUG(932, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy929;
+ goto yy931;
}
- goto yy936;
-yy931:
- YYDEBUG(931, *YYCURSOR);
+ goto yy938;
+yy933:
+ YYDEBUG(933, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2281 "Zend/zend_language_scanner.l"
+#line 2286 "Zend/zend_language_scanner.l"
{
switch (yytext[yyleng-1]) {
case '?': case '%': case '>':
@@ -9107,20 +9118,20 @@ yy931:
return T_COMMENT;
}
}
-#line 9111 "Zend/zend_language_scanner.c"
-yy932:
- YYDEBUG(932, *YYCURSOR);
+#line 9122 "Zend/zend_language_scanner.c"
+yy934:
+ YYDEBUG(934, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy931;
-yy933:
- YYDEBUG(933, *YYCURSOR);
+ goto yy933;
+yy935:
+ YYDEBUG(935, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '\n') goto yy931;
- YYDEBUG(934, *YYCURSOR);
+ if (yych != '\n') goto yy933;
+ YYDEBUG(936, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(935, *YYCURSOR);
+ YYDEBUG(937, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2299 "Zend/zend_language_scanner.l"
+#line 2304 "Zend/zend_language_scanner.l"
{
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
Z_STRLEN_P(zendlval) = yyleng;
@@ -9129,17 +9140,17 @@ yy933:
CG(zend_lineno)++;
return T_COMMENT;
}
-#line 9133 "Zend/zend_language_scanner.c"
-yy936:
- YYDEBUG(936, *YYCURSOR);
+#line 9144 "Zend/zend_language_scanner.c"
+yy938:
+ YYDEBUG(938, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy931;
-yy937:
- YYDEBUG(937, *YYCURSOR);
+ goto yy933;
+yy939:
+ YYDEBUG(939, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(938, *YYCURSOR);
+ YYDEBUG(940, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2308 "Zend/zend_language_scanner.l"
+#line 2313 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -9152,7 +9163,7 @@ yy937:
yymore();
}
}
-#line 9156 "Zend/zend_language_scanner.c"
+#line 9167 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_VAR_OFFSET:
@@ -9191,69 +9202,69 @@ yyc_ST_VAR_OFFSET:
32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32,
};
- YYDEBUG(939, *YYCURSOR);
+ YYDEBUG(941, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '/') {
if (yych <= ' ') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy953;
- if (yych <= '\n') goto yy949;
- goto yy953;
+ if (yych <= 0x08) goto yy955;
+ if (yych <= '\n') goto yy951;
+ goto yy955;
} else {
- if (yych <= '\r') goto yy949;
- if (yych <= 0x1F) goto yy953;
- goto yy949;
+ if (yych <= '\r') goto yy951;
+ if (yych <= 0x1F) goto yy955;
+ goto yy951;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy948;
- if (yych <= '#') goto yy949;
- goto yy944;
+ if (yych <= '"') goto yy950;
+ if (yych <= '#') goto yy951;
+ goto yy946;
} else {
- if (yych == '\'') goto yy949;
- goto yy948;
+ if (yych == '\'') goto yy951;
+ goto yy950;
}
}
} else {
if (yych <= '\\') {
if (yych <= '@') {
- if (yych <= '0') goto yy941;
- if (yych <= '9') goto yy943;
- goto yy948;
+ if (yych <= '0') goto yy943;
+ if (yych <= '9') goto yy945;
+ goto yy950;
} else {
- if (yych <= 'Z') goto yy951;
- if (yych <= '[') goto yy948;
- goto yy949;
+ if (yych <= 'Z') goto yy953;
+ if (yych <= '[') goto yy950;
+ goto yy951;
}
} else {
if (yych <= '_') {
- if (yych <= ']') goto yy946;
- if (yych <= '^') goto yy948;
- goto yy951;
+ if (yych <= ']') goto yy948;
+ if (yych <= '^') goto yy950;
+ goto yy953;
} else {
- if (yych <= '`') goto yy948;
- if (yych <= 'z') goto yy951;
- if (yych <= '~') goto yy948;
- goto yy951;
+ if (yych <= '`') goto yy950;
+ if (yych <= 'z') goto yy953;
+ if (yych <= '~') goto yy950;
+ goto yy953;
}
}
}
-yy941:
- YYDEBUG(941, *YYCURSOR);
+yy943:
+ YYDEBUG(943, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'W') {
- if (yych <= '/') goto yy942;
- if (yych <= '9') goto yy964;
+ if (yych <= '/') goto yy944;
+ if (yych <= '9') goto yy966;
} else {
- if (yych <= 'X') goto yy962;
- if (yych == 'x') goto yy962;
+ if (yych <= 'X') goto yy964;
+ if (yych == 'x') goto yy964;
}
-yy942:
- YYDEBUG(942, *YYCURSOR);
+yy944:
+ YYDEBUG(944, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1937 "Zend/zend_language_scanner.l"
+#line 1942 "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)) {
Z_LVAL_P(zendlval) = strtol(yytext, NULL, 10);
@@ -9265,53 +9276,53 @@ yy942:
}
return T_NUM_STRING;
}
-#line 9269 "Zend/zend_language_scanner.c"
-yy943:
- YYDEBUG(943, *YYCURSOR);
+#line 9280 "Zend/zend_language_scanner.c"
+yy945:
+ YYDEBUG(945, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy961;
-yy944:
- YYDEBUG(944, *YYCURSOR);
+ goto yy963;
+yy946:
+ YYDEBUG(946, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy945;
- if (yych <= 'Z') goto yy957;
- if (yych >= '_') goto yy957;
+ if (yych <= '@') goto yy947;
+ if (yych <= 'Z') goto yy959;
+ if (yych >= '_') goto yy959;
} else {
- if (yych <= '`') goto yy945;
- if (yych <= 'z') goto yy957;
- if (yych >= 0x7F) goto yy957;
+ if (yych <= '`') goto yy947;
+ if (yych <= 'z') goto yy959;
+ if (yych >= 0x7F) goto yy959;
}
-yy945:
- YYDEBUG(945, *YYCURSOR);
+yy947:
+ YYDEBUG(947, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2241 "Zend/zend_language_scanner.l"
+#line 2246 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 9294 "Zend/zend_language_scanner.c"
-yy946:
- YYDEBUG(946, *YYCURSOR);
+#line 9305 "Zend/zend_language_scanner.c"
+yy948:
+ YYDEBUG(948, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(947, *YYCURSOR);
+ YYDEBUG(949, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2236 "Zend/zend_language_scanner.l"
+#line 2241 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 9305 "Zend/zend_language_scanner.c"
-yy948:
- YYDEBUG(948, *YYCURSOR);
+#line 9316 "Zend/zend_language_scanner.c"
+yy950:
+ YYDEBUG(950, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy945;
-yy949:
- YYDEBUG(949, *YYCURSOR);
+ goto yy947;
+yy951:
+ YYDEBUG(951, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(950, *YYCURSOR);
+ YYDEBUG(952, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2246 "Zend/zend_language_scanner.l"
+#line 2251 "Zend/zend_language_scanner.l"
{
/* Invalid rule to return a more explicit parse error with proper line number */
yyless(0);
@@ -9319,70 +9330,70 @@ yy949:
ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 9323 "Zend/zend_language_scanner.c"
-yy951:
- YYDEBUG(951, *YYCURSOR);
+#line 9334 "Zend/zend_language_scanner.c"
+yy953:
+ YYDEBUG(953, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy956;
-yy952:
- YYDEBUG(952, *YYCURSOR);
+ goto yy958;
+yy954:
+ YYDEBUG(954, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2264 "Zend/zend_language_scanner.l"
+#line 2269 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
return 0;
}
return T_STRING;
}
-#line 9339 "Zend/zend_language_scanner.c"
-yy953:
- YYDEBUG(953, *YYCURSOR);
+#line 9350 "Zend/zend_language_scanner.c"
+yy955:
+ YYDEBUG(955, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(954, *YYCURSOR);
+ YYDEBUG(956, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2677 "Zend/zend_language_scanner.l"
+#line 2682 "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 9350 "Zend/zend_language_scanner.c"
-yy955:
- YYDEBUG(955, *YYCURSOR);
+#line 9361 "Zend/zend_language_scanner.c"
+yy957:
+ YYDEBUG(957, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy956:
- YYDEBUG(956, *YYCURSOR);
+yy958:
+ YYDEBUG(958, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy955;
+ goto yy957;
}
- goto yy952;
-yy957:
- YYDEBUG(957, *YYCURSOR);
+ goto yy954;
+yy959:
+ YYDEBUG(959, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(958, *YYCURSOR);
+ YYDEBUG(960, *YYCURSOR);
if (yych <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy957;
+ if (yych >= '0') goto yy959;
} else {
- if (yych <= '@') goto yy959;
- if (yych <= 'Z') goto yy957;
+ if (yych <= '@') goto yy961;
+ if (yych <= 'Z') goto yy959;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy957;
+ if (yych <= '_') goto yy959;
} else {
- if (yych <= 'z') goto yy957;
- if (yych >= 0x7F) goto yy957;
+ if (yych <= 'z') goto yy959;
+ if (yych >= 0x7F) goto yy959;
}
}
-yy959:
- YYDEBUG(959, *YYCURSOR);
+yy961:
+ YYDEBUG(961, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2226 "Zend/zend_language_scanner.l"
+#line 2231 "Zend/zend_language_scanner.l"
{
if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
return 0;
@@ -9392,58 +9403,58 @@ yy959:
}
return T_VARIABLE;
}
-#line 9396 "Zend/zend_language_scanner.c"
-yy960:
- YYDEBUG(960, *YYCURSOR);
+#line 9407 "Zend/zend_language_scanner.c"
+yy962:
+ YYDEBUG(962, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy961:
- YYDEBUG(961, *YYCURSOR);
+yy963:
+ YYDEBUG(963, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy960;
+ goto yy962;
}
- goto yy942;
-yy962:
- YYDEBUG(962, *YYCURSOR);
+ goto yy944;
+yy964:
+ YYDEBUG(964, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy967;
+ goto yy969;
}
- YYDEBUG(963, *YYCURSOR);
+ YYDEBUG(965, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy942;
-yy964:
- YYDEBUG(964, *YYCURSOR);
+ goto yy944;
+yy966:
+ YYDEBUG(966, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(965, *YYCURSOR);
- if (yych <= '/') goto yy966;
- if (yych <= '9') goto yy964;
-yy966:
- YYDEBUG(966, *YYCURSOR);
+ YYDEBUG(967, *YYCURSOR);
+ if (yych <= '/') goto yy968;
+ if (yych <= '9') goto yy966;
+yy968:
+ YYDEBUG(968, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1949 "Zend/zend_language_scanner.l"
+#line 1954 "Zend/zend_language_scanner.l"
{ /* Offset must be treated as a string */
if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
return 0;
}
return T_NUM_STRING;
}
-#line 9435 "Zend/zend_language_scanner.c"
-yy967:
- YYDEBUG(967, *YYCURSOR);
+#line 9446 "Zend/zend_language_scanner.c"
+yy969:
+ YYDEBUG(969, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(968, *YYCURSOR);
+ YYDEBUG(970, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy967;
+ goto yy969;
}
- goto yy966;
+ goto yy968;
}
}
-#line 2682 "Zend/zend_language_scanner.l"
+#line 2687 "Zend/zend_language_scanner.l"
}
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index c6fc51d6cc..c57771ea49 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -1610,6 +1610,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 552b091432..eb4e6489e1 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 Wed Aug 13 11:32:11 2008 */
+/* Generated by re2c 0.13.5 on Tue Dec 2 17:02:52 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 df86f10863..db15ad5bb7 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2146,15 +2146,13 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
function_name_strval = Z_UNIVAL_P(function_name);
function_name_strlen = Z_UNILEN_P(function_name);
if (Z_TYPE_P(function_name) == IS_UNICODE &&
- function_name_strval.u[0] == ':' &&
- function_name_strval.u[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.u[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+1), function_name_strlen, 1, &lcname_len);
} else if (Z_TYPE_P(function_name) == IS_STRING &&
- function_name_strval.s[0] == ':' &&
- function_name_strval.s[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.s[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+1), function_name_strlen, 1, &lcname_len);
} else {
lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), function_name_strval, function_name_strlen, 1, &lcname_len);
}
@@ -2179,8 +2177,13 @@ ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST)
zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope));
if (zend_u_hash_quick_find(EG(function_table), Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant)+1, opline->extended_value, (void **) &EX(fbc))==FAILURE) {
- if (zend_u_hash_quick_find(EG(function_table), Z_TYPE(op_data->op1.u.constant), Z_UNIVAL(op_data->op1.u.constant), Z_UNILEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE ||
- EX(fbc)->type != ZEND_INTERNAL_FUNCTION) {
+ zstr short_name;
+ if(Z_TYPE(opline->op1.u.constant) == IS_UNICODE) {
+ short_name.u = Z_USTRVAL(opline->op1.u.constant)+Z_LVAL(op_data->op1.u.constant);
+ } else {
+ short_name.s = Z_STRVAL(opline->op1.u.constant)+Z_LVAL(op_data->op1.u.constant);
+ }
+ if (zend_u_hash_quick_find(EG(function_table), Z_TYPE(opline->op1.u.constant), short_name, Z_UNILEN(opline->op1.u.constant)-Z_LVAL(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE) {
zend_error_noreturn(E_ERROR, "Call to undefined function %R()", Z_TYPE(opline->op2.u.constant), Z_USTRVAL(opline->op2.u.constant));
}
}
@@ -3036,46 +3039,43 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|UNUSED|CONST, CONST)
zend_op *opline = EX(opline);
if (OP1_TYPE == IS_UNUSED) {
- if (!zend_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) {
+ if (!zend_u_get_constant_ex(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) {
+ if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) {
+ zstr actual;
+ unsigned int actual_len;
+ if(Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
+ actual.u = u_memrchr(Z_USTRVAL(opline->op2.u.constant), '\\', Z_USTRLEN(opline->op2.u.constant));
+ if(actual.u) {
+ actual.u++;
+ actual_len = Z_USTRLEN(opline->op2.u.constant) - (actual.u - Z_USTRVAL(opline->op2.u.constant));
+ }
+ } else {
+ actual.s = zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant));
+ if(actual.s) {
+ actual.s++;
+ actual_len = Z_STRLEN(opline->op2.u.constant) - (actual.s - Z_STRVAL(opline->op2.u.constant));
+ }
+ }
+ if(!actual.v) {
+ actual = Z_UNIVAL(opline->op2.u.constant);
+ actual_len = Z_UNILEN(opline->op2.u.constant);
+ }
+ /* non-qualified constant - allow text substitution */
+ zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
+ Z_TYPE(opline->op2.u.constant), actual, Z_TYPE(opline->op2.u.constant), actual);
+ ZVAL_ZSTRL(&EX_T(opline->result.u.var).tmp_var, Z_TYPE(opline->op2.u.constant), actual, actual_len, 1);
+ } else {
zend_error_noreturn(E_ERROR, "Undefined constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
}
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_hash_quick_find(EG(zend_constants), Z_TYPE(op_data->op1.u.constant), Z_UNIVAL(op_data->op1.u.constant), Z_UNILEN(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 '%R::%R'", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
- } else if (!zend_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
if (!ce) {
zend_error_noreturn(E_ERROR, "Undefined class constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index a06591705a..292e720971 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -772,15 +772,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
function_name_strval = Z_UNIVAL_P(function_name);
function_name_strlen = Z_UNILEN_P(function_name);
if (Z_TYPE_P(function_name) == IS_UNICODE &&
- function_name_strval.u[0] == ':' &&
- function_name_strval.u[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.u[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+1), function_name_strlen, 1, &lcname_len);
} else if (Z_TYPE_P(function_name) == IS_STRING &&
- function_name_strval.s[0] == ':' &&
- function_name_strval.s[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.s[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+1), function_name_strlen, 1, &lcname_len);
} else {
lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), function_name_strval, function_name_strlen, 1, &lcname_len);
}
@@ -805,8 +803,13 @@ static int ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPC
zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope));
if (zend_u_hash_quick_find(EG(function_table), Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant)+1, opline->extended_value, (void **) &EX(fbc))==FAILURE) {
- if (zend_u_hash_quick_find(EG(function_table), Z_TYPE(op_data->op1.u.constant), Z_UNIVAL(op_data->op1.u.constant), Z_UNILEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE ||
- EX(fbc)->type != ZEND_INTERNAL_FUNCTION) {
+ zstr short_name;
+ if(Z_TYPE(opline->op1.u.constant) == IS_UNICODE) {
+ short_name.u = Z_USTRVAL(opline->op1.u.constant)+Z_LVAL(op_data->op1.u.constant);
+ } else {
+ short_name.s = Z_STRVAL(opline->op1.u.constant)+Z_LVAL(op_data->op1.u.constant);
+ }
+ if (zend_u_hash_quick_find(EG(function_table), Z_TYPE(opline->op1.u.constant), short_name, Z_UNILEN(opline->op1.u.constant)-Z_LVAL(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE) {
zend_error_noreturn(E_ERROR, "Call to undefined function %R()", Z_TYPE(opline->op2.u.constant), Z_USTRVAL(opline->op2.u.constant));
}
}
@@ -972,15 +975,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H
function_name_strval = Z_UNIVAL_P(function_name);
function_name_strlen = Z_UNILEN_P(function_name);
if (Z_TYPE_P(function_name) == IS_UNICODE &&
- function_name_strval.u[0] == ':' &&
- function_name_strval.u[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.u[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+1), function_name_strlen, 1, &lcname_len);
} else if (Z_TYPE_P(function_name) == IS_STRING &&
- function_name_strval.s[0] == ':' &&
- function_name_strval.s[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.s[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+1), function_name_strlen, 1, &lcname_len);
} else {
lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), function_name_strval, function_name_strlen, 1, &lcname_len);
}
@@ -1060,15 +1061,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
function_name_strval = Z_UNIVAL_P(function_name);
function_name_strlen = Z_UNILEN_P(function_name);
if (Z_TYPE_P(function_name) == IS_UNICODE &&
- function_name_strval.u[0] == ':' &&
- function_name_strval.u[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.u[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+1), function_name_strlen, 1, &lcname_len);
} else if (Z_TYPE_P(function_name) == IS_STRING &&
- function_name_strval.s[0] == ':' &&
- function_name_strval.s[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.s[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+1), function_name_strlen, 1, &lcname_len);
} else {
lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), function_name_strval, function_name_strlen, 1, &lcname_len);
}
@@ -1177,15 +1176,13 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
function_name_strval = Z_UNIVAL_P(function_name);
function_name_strlen = Z_UNILEN_P(function_name);
if (Z_TYPE_P(function_name) == IS_UNICODE &&
- function_name_strval.u[0] == ':' &&
- function_name_strval.u[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.u[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.u+1), function_name_strlen, 1, &lcname_len);
} else if (Z_TYPE_P(function_name) == IS_STRING &&
- function_name_strval.s[0] == ':' &&
- function_name_strval.s[1] == ':') {
- function_name_strlen -= 2;
- lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+2), function_name_strlen, 1, &lcname_len);
+ function_name_strval.s[0] == '\\') {
+ function_name_strlen -= 1;
+ lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), ZSTR(function_name_strval.s+1), function_name_strlen, 1, &lcname_len);
} else {
lcname = zend_u_str_case_fold(Z_TYPE_P(function_name), function_name_strval, function_name_strlen, 1, &lcname_len);
}
@@ -2812,46 +2809,43 @@ 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_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) {
+ if (!zend_u_get_constant_ex(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) {
+ if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) {
+ zstr actual;
+ unsigned int actual_len;
+ if(Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
+ actual.u = u_memrchr(Z_USTRVAL(opline->op2.u.constant), '\\', Z_USTRLEN(opline->op2.u.constant));
+ if(actual.u) {
+ actual.u++;
+ actual_len = Z_USTRLEN(opline->op2.u.constant) - (actual.u - Z_USTRVAL(opline->op2.u.constant));
+ }
+ } else {
+ actual.s = zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant));
+ if(actual.s) {
+ actual.s++;
+ actual_len = Z_STRLEN(opline->op2.u.constant) - (actual.s - Z_STRVAL(opline->op2.u.constant));
+ }
+ }
+ if(!actual.v) {
+ actual = Z_UNIVAL(opline->op2.u.constant);
+ actual_len = Z_UNILEN(opline->op2.u.constant);
+ }
+ /* non-qualified constant - allow text substitution */
+ zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
+ Z_TYPE(opline->op2.u.constant), actual, Z_TYPE(opline->op2.u.constant), actual);
+ ZVAL_ZSTRL(&EX_T(opline->result.u.var).tmp_var, Z_TYPE(opline->op2.u.constant), actual, actual_len, 1);
+ } else {
zend_error_noreturn(E_ERROR, "Undefined constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
}
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_hash_quick_find(EG(zend_constants), Z_TYPE(op_data->op1.u.constant), Z_UNIVAL(op_data->op1.u.constant), Z_UNILEN(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 '%R::%R'", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
- } else if (!zend_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
if (!ce) {
zend_error_noreturn(E_ERROR, "Undefined class constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
@@ -10876,46 +10870,43 @@ 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_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) {
+ if (!zend_u_get_constant_ex(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) {
+ if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) {
+ zstr actual;
+ unsigned int actual_len;
+ if(Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
+ actual.u = u_memrchr(Z_USTRVAL(opline->op2.u.constant), '\\', Z_USTRLEN(opline->op2.u.constant));
+ if(actual.u) {
+ actual.u++;
+ actual_len = Z_USTRLEN(opline->op2.u.constant) - (actual.u - Z_USTRVAL(opline->op2.u.constant));
+ }
+ } else {
+ actual.s = zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant));
+ if(actual.s) {
+ actual.s++;
+ actual_len = Z_STRLEN(opline->op2.u.constant) - (actual.s - Z_STRVAL(opline->op2.u.constant));
+ }
+ }
+ if(!actual.v) {
+ actual = Z_UNIVAL(opline->op2.u.constant);
+ actual_len = Z_UNILEN(opline->op2.u.constant);
+ }
+ /* non-qualified constant - allow text substitution */
+ zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
+ Z_TYPE(opline->op2.u.constant), actual, Z_TYPE(opline->op2.u.constant), actual);
+ ZVAL_ZSTRL(&EX_T(opline->result.u.var).tmp_var, Z_TYPE(opline->op2.u.constant), actual, actual_len, 1);
+ } else {
zend_error_noreturn(E_ERROR, "Undefined constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
}
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_hash_quick_find(EG(zend_constants), Z_TYPE(op_data->op1.u.constant), Z_UNIVAL(op_data->op1.u.constant), Z_UNILEN(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 '%R::%R'", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
- } else if (!zend_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
if (!ce) {
zend_error_noreturn(E_ERROR, "Undefined class constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
@@ -18488,46 +18479,43 @@ 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_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) {
+ if (!zend_u_get_constant_ex(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) {
+ if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) {
+ zstr actual;
+ unsigned int actual_len;
+ if(Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
+ actual.u = u_memrchr(Z_USTRVAL(opline->op2.u.constant), '\\', Z_USTRLEN(opline->op2.u.constant));
+ if(actual.u) {
+ actual.u++;
+ actual_len = Z_USTRLEN(opline->op2.u.constant) - (actual.u - Z_USTRVAL(opline->op2.u.constant));
+ }
+ } else {
+ actual.s = zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant));
+ if(actual.s) {
+ actual.s++;
+ actual_len = Z_STRLEN(opline->op2.u.constant) - (actual.s - Z_STRVAL(opline->op2.u.constant));
+ }
+ }
+ if(!actual.v) {
+ actual = Z_UNIVAL(opline->op2.u.constant);
+ actual_len = Z_UNILEN(opline->op2.u.constant);
+ }
+ /* non-qualified constant - allow text substitution */
+ zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
+ Z_TYPE(opline->op2.u.constant), actual, Z_TYPE(opline->op2.u.constant), actual);
+ ZVAL_ZSTRL(&EX_T(opline->result.u.var).tmp_var, Z_TYPE(opline->op2.u.constant), actual, actual_len, 1);
+ } else {
zend_error_noreturn(E_ERROR, "Undefined constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
}
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_hash_quick_find(EG(zend_constants), Z_TYPE(op_data->op1.u.constant), Z_UNIVAL(op_data->op1.u.constant), Z_UNILEN(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 '%R::%R'", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));
- } else if (!zend_u_get_constant(Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant), Z_UNILEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {
- zend_error(E_NOTICE, "Use of undefined constant %R - assumed '%R'",
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant),
- Z_TYPE(opline->op2.u.constant), Z_UNIVAL(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_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
if (!ce) {
zend_error_noreturn(E_ERROR, "Undefined class constant '%R'", Z_TYPE(opline->op2.u.constant), Z_UNIVAL(opline->op2.u.constant));